Server数据库的需要。定时备份到本机的话,还是挺容易的,计划任务就可以完成,但如果是整机挂了,那备份到本机是没意义的,那么就需要来考虑备份到局域网中,其它电脑里。
下面就分享一份在网上找了之后,自己再简单整理过的代码,配合
SQL
Server
代理中的作业功能,已经稳定运行一个星期了,每小时就备份一次。
复制代码
代码如下:
--
创建网络映射(Y是盘符;IP地址后面要带共享文件夹的名称;password是密码,双引号引起;account是远程电脑的登录名)
exec
master..xp_cmdshell
'net
use
Y:
\\192.168.0.69\sqlbackup
"password"
/user:192.168.0.69\account'
--
按日期时间做文件名(注意路径中的文件夹,需要先建立好)
declare
@filename
varchar(200)
select
@filename
=
'Y:\DB\'
+
replace(replace(replace(CONVERT(varchar,
getdate(),
120
),'-',''),'
','-'),':','')
+
'.bak'
--
执行备份(DB是要备份的数据库名称)
backup
database
[DB]
to
disk
=
@filename
--
删除网络映射(Y是盘符,同上)
exec
master..xp_cmdshell
'net
use
Y:
/delete'
每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据;需求:
1,每天4点备份mysql数据;
2,为节省空间,删除超过3个月的所有备份数据;
3,删除超过7天的备份数据,保留3个月里的
10号
20号
30号的备份数据;
#创建shell文件
vim
backup_mysql.sh
mysqldump
-uroot
-p123456
--all-databases
>
/data/dbdata/mysqlbak/`date
+%Y%m%d`.sql
find
/data/dbdata/mysqlbak/
-mtime
+7
-name
'*[1-9].sql'
-exec
rm
-rf
{}
\
find
/data/dbdata/mysqlbak/
-mtime
+92
-name
'*.sql'
-exec
rm
-rf
{}
\
#创建定时任务
crontab
–e
0
4
*
*
*
/data/dbdata/backup_mysql.sh
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)