使用SQL Server代理,新建一个作业,备份数据库的核心SQL语句如下:
--新建名为AutoBackUpDataBase作业,新建名为BackUp的步骤,定时每周六(可以自己设置定时备份周期)备份数据库Test,备份文件存储在位置F:\DB_Backup\
--备份文件的格式为: yyyy-MM-ddbak,如2017-01-10bak
DECLARE @str varchar(100)
SET @str='F:\DB_Backup\'+convert(varchar,getdate(),23)+'bak'
BACKUP DATABASE Test TO DISK=@str
将MySql中的数据库导出到文件中 备份
import javaio;
import javalang;
public class BeiFen {
public static void main(String[] args) {
// 数据库导出
String user = "root"; // 数据库帐号
String password = "root"; // 登陆密码
String database = "test"; // 需要备份的数据库名
String filepath = "e:\\testsql"; // 备份的路径地址
String stmt1 = "mysqldump " + database + " -u " + user + " -p"
+ password + " --result-file=" + filepath;
/
String mysql="mysqldump test -u root -proot
--result-file=d:\\testsql";
/
try {
RuntimegetRuntime()exec(stmt1);
Systemoutprintln("数据已导出到文件" + filepath + "中");
}
catch (IOException e) {
eprintStackTrace();
}
}
}
将数据从磁盘上的文本文件还原到MySql中的数据库
import javaio;
import javalang;
/
还原MySql数据库
/
public class Recover {
public static void main(String[] args) {
String filepath = "d:\\testsql"; // 备份的路径地址
//新建数据库test
String stmt1 = "mysqladmin -u root -proot create test";
String stmt2 = "mysql -u root -proot test < " + filepath;
String[] cmd = { "cmd", "/c", stmt2 };
try {
RuntimegetRuntime()exec(stmt1);
RuntimegetRuntime()exec(cmd);
Systemoutprintln("数据已从 " + filepath + " 导入到数据库中");
} catch (IOException e) {
eprintStackTrace();
}
}
}
两个思路:
1、在备份机共享一个目录出来,在生产机建立到备份机共享目录的网络映射驱动器,之后在生产机执行数据库备份时,直接将备份卷质指定为网络驱动器。
2、备份数据库到生产机的某个磁盘,然后用定时任务传送到备份机。备份机可以安装一个ftp server软件,直接用ftp的方式传送,这样也比较安全、可靠。
两个思路:
1、在备份机共享一个目录出来,在生产机建立到备份机共享目录的网络映射驱动器,之后在生产机执行数据库备份时,直接将备份卷质指定为网络驱动器。
2、备份数据库到生产机的某个磁盘,然后用定时任务传送到备份机。备份机可以安装一个ftp server软件,直接用ftp的方式传送,这样也比较安全、可靠。
下载navicat for mysql,然后按下列图文教程进行:
首先打开需要进行备份的数据库,使之被高亮选中。点击“Schedule”菜单,点击后将出现如下图所示的功能界面:
点击“New Batch Job”,点击后将出现如下图所示的功能界面:
“General”选项卡中显示了指定数据库连接下各个数据库实例中可供使用的JOB,鼠标左键双击可用的JOB,即可使之成为当前即将要创建的Schedule中的JOB,如下图所示:
点击“Save”,点击后会d出一个名为"Profile Name"的对话框,在此对话框中可以给Schedule一个自定义的名称,名称键入完毕后,点击“OK”。具体 *** 作如下图所示:
点击“Set Task Schedule”按钮,以对计划进行更详细地配置,相关 *** 作所下图所示;如果在点击“Set Task Schedule”按钮的时候提示没有打开Task Scheduler服务,请到 *** 作系统“服务”管理界面打开指定服务即可。
计划设置完毕后,可以点击“Start”按钮,以测试Schedule的运行结果是否正确。
也可以使用BAT批处理来进行自动备份,但是批处理的原理是首先停止MYSQL,然后进行数据库文件复制。但这违反了不停止MYSQL服务的前提。所以这里不细表。
企业管理器-》进入你使用的数据库界面-》管理-》数据库维护计划-》新建维护计划-》选中你的数据库-》下一步-》进行到指定数据库备份页面时,选择执行的时间-》下一步,选对保存的位置和方式。继续下一步直到完成。
注意
SQL
server
agent
服务必须运行,才会自动执行维护计划。你可以把
启动os时自动启动服务勾上。
首先利用数据库自带的命令行工具将数据库备份下来,例如对MySQL将databasename数据库备份到D:\datasql(具体查阅数据库说明书)
mysqldump databasename > "D:\datasql"
然后将该文件以日期参量重名名。如果指定保留N天的数据可能有一定困难,不过既然要求7天,不妨以星期作为区分。
假设文件名具有格式“data_日期sql”,则更名语句为(建议先创建后改名,对于很大的数据库可能要备份很长时间并超过0点)
ren "datasql" "data_%date%sql"
若系统时间格式为“2009-04-05 星期日”,则产生文件“data_2009-04-05 星期日txt”。
获取星期几的语句:%date:~11,3%
其中11表示从第11个字符开始(从0开始计算),总共截取3个字符。由此可获得字符串“星期日”。重名名前,删除以data_开头,包含“星期日”的文件
del "data_%date:~11,3%sql"
这样就把上星期的那个文件删除了。
注意:如果系统日期格式与上面的不一致,数字需重新计算,特别是若日期中含有“/”、“:”等字符会导致创建文件失败,此时年月日星期均需手动提取,例如对“04/05/2009 Sun”,应使用“%DATE:~6,4%%DATE:~0,2%%DATE:~3,2%%DATE:~11,3%”得到“20090405Sun”。查看日期格式可使用“echo %date%”。
另外,如果某项(时间格式、文件名、路径等)包含空格则必须使用引号。
脚本源代码
mysqldump databasename > "D:\datasql"
del "D:\data_%date:~11,3%sql"
ren "D:\datasql" "data_%date%sql"
编为一个bat文件,添加计划任务,每天定时执行即可。
以上就是关于如何让SQL Server自动定时备份数据库并按日期命名全部的内容,包括:如何让SQL Server自动定时备份数据库并按日期命名、如何用java代码实现定时备份数据库表记录到、一台电脑的数据库每天晚上自动备份到另一台电脑上,怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)