以Windows为例,可将下列代码,复新到.bat脚本文件中,计划定时执行。
1、可建立bat脚本,定时清理过期的备份数据库文件
::自动删除F:\CTLMES\oracle_data\DATA_BAK\下超过7天的备份文件
forfiles /p "D:\CTLMES\oracle_data\DATA_BAK" /s /m *.dump /d -7 /c "cmd /c del @path"
forfiles /p "D:\CTLMES\oracle_data\DATA_BAK" /s /m *.sql /d -7 /c "cmd /c del @path"
2、生成新的备份文件
a) 生成oracle备份文件
ORACLE_DATA_BAK 是
set backupDate=%date:~0,4%%date:~5,2%%date:~8,2%
set backFileName=ctlmes%backupDate%.dump
expdp username/password@SERVICENAME directory=ORACLE_DATA_BAK dumpfile=%backFileName%
set source=D:\CTLMES\oracle_data\DATA_BAK\%backFileName%
set target=\D\CTLMES
会在如下目录根据日期生成备份文件:D:\CTLMES\oracle_data\DATA_BAK\CTLMES20220606.DUMP
b) 生成mysql备份文件(也可借助MySQL Administrator来定时备份)
::确保用户有备份权限,也可如下新建一个专门的备份用户
::create user dumper@'127.0.0.1' identified by '123456';
::grant select on * to dumper@'127.0.0.1';
::grant select on * to dumper@'127.0.0.1';
::grant show view on * to dumper@'127.0.0.1';
::grant lock tables on * to dumper@'127.0.0.1';
::grant trigger on * to dumper@'127.0.0.1';
::开始备份数据库ctlmes_aps_data和ctlmes_execute_data_,如果有多个自行添加,如果是动态备份一定要加上--skip-opt,它表示禁用下面这些选项 Disable --opt. Disables --add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset,
and --disable-keys,否则可能会锁表
mysqldump --skip-opt -udumper -p123456 ctlmes_aps_data > ctlmes_aps_data_%backupDate%.sql
mysqldump --skip-opt -udumper -p123456 ctlmes_execute_data > ctlmes_execute_data_%backupDate%.sql
3、异地灾备
这里比较弱,没有借助专业软件,纯粹利用共享同步(拷备)备份文件到另一台物理服务器上,达到异地灾备的效果。
a) 首先将异地服务器(如:10.36.31.168),共享一个文件夹出来(如:数据库灾备)。提供该服务器的登录用户名和密码(可新增低权限用户)
b)利用xcopy拷备到异地服务器的共享目录中去
::这里的source指的就是上面定义的oracle备份文件全路径变量
net use \\10.36.31.168 "电脑密码" /user:"电脑用户名"
xcopy %source% \\10.36.31.168\数据库灾备 /y
::拷备mysql的备份文件
set mysqlSource1=D:\CTLMES\oracle_data\DATA_BAK\ctlmes_aps_data_%backupDate%.sql
xcopy %mysqlSource1% \\10.36.31.168\数据库灾备 /y
set mysqlSource1=D:\CTLMES\oracle_data\DATA_BAK\ctlmes_execute_data_%backupDate%.sql
xcopy %mysqlSource1% \\10.36.31.168\数据库灾备 /y