
-----正文-----

众所周知,数据库的“两地三中心”方案是现在比较主流的容灾方案,即生产中心、同城容灾中心、异地容灾中心,从意义上来看就是,兼具同城容灾和异地容灾。但在实际项目应用中,往往数据库只建设了生产数据库,甚至很多都不是集群,而是采用单机方式。数据库运行数据和备份数据都存放在同一个服务器上,存在较大的风险,从而产生了异地备份的想法。
本文将讨论如何在有异地服务器的情况下,进行数据库的异地逻辑备份和物理备份。但在数据库架构设计中,作为核心系统建议还是选择数据库集群,保证本地多活,并进行同城备机,或再增加异地备机的方式。
异地备份思路:
1.异地逻辑备份,通过disql远程连接数据库(本文主要讨论);
2.继续利用达梦数据库的定时作业,挂在异地服务器文件系统(本文主要讨论);
3.本地备份,通过定时脚本传输备份文件至备机;
一、总体规划
| 相关参数 | 源端数据库 | 备份机数据库 |
| IP地址 | 192.168.237.117 | 192.168.237.116 |
| 数据库安装目录 | /dm8 | /dm8 |
| 数据库文件及dm.ini目录 | /dmdata | 无 |
| Dmserver服务是否启动 | 是 | 否 |
| Dmap服务是否启动 | 是 | 否 |
| 物理备份路径 | /dmbak | /dmbak1 |
| 逻辑备份路径 | /dmbak_luoji | /dmbak_luoji |
二、异地逻辑备份
异地逻辑备份即在备份机器远程逻辑备份源端数据库,脚本及说明如下:
1.创建执行脚本:
touch dmbak_luoji.sh
2.增加如下脚本内容(红色字体需要修改,并包含说明):
vi dmbak_luoji.sh
#!/bin/shexport bakdir=/dmbak_luoji #逻辑备份路径#环境变量export DM_HOME="/dm8" #数据库安装路径export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/bin"export PATH="$DM_HOME/bin:$PATH"export LANG=en_US.UTF-8export NLS_LANG=AMERICAN_AMERICA.AL32UTF8#备份设置date=$(date +%Y%m%d) #当前时间days=10 #设置删除10天前的数据dmid=192.168.237.117:5236 #要备份的DM数据库IP、端口bakuser=SYSDBA #使用此用户来导出dmpbakpass="SYSDBA" #用户密码bakdir=/dmbak_luoji #备份文件路径bakdata=$bakuser"_"$date.dmp #备份的dmp名称baklog=$bakuser"_"$date.log #备份时产生的log名称dmdatabak=$bakuser"_"$date.tar.gz #将备份的dmp和log压缩后的文件名称cd $bakdir#导出dmp和log文件dexp $bakuser/$bakpass@$dmid file=$bakdata log=$baklog directory=$bakdir full=y #可以编辑其他的备份条件tar -zcvf $dmdatabak $bakdata $baklog #压缩dmp和log文件find $bakdir -type f -name "*.log" -exec rm {} \; #删除log文件find $bakdir -type f -name "*.dmp" -exec rm {} \; #删除dmp文件find $bakdir -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \; #删除10天前备份文件
3.逻辑备份脚本授权
chmod 755 dmbak_luoji.sh
4.增加定时任务
添加定时任务,设定为每天23:30执行脚本
crontab -e30 23 * * * cd home/dmdba/ && sh dmbak_luoji.sh
三、继续利用达梦数据库的定时作业异地备份
如下图所示,达梦数据库的定时作业备份目录只能填写当前服务器的路径,若要想实现异地备份,即将备机数据库的路径共享给源端数据库。

将备机数据库/dmbak1路径挂载到源端数据库/dmbak1路径。
1.检查nfs软件是否安装(两台)
rpm -qa | grep nfs-utilsrpm -qa | grep rpcbind
2.修改NFS的配置文件 etc/exports (备份服务器默认是空文件)
vi etc/exports#增加以下一行内容 如需多个往下面加即可我这边是指定ip/dmbak1 192.168.237.116(rw,sync,no_root_squash)
修改完后重启
service nfs restartservice rpcbind restart
3.查看是否生效
showmount -e
显示如下即表示成功

4.开启挂载(源端数据库)
mount -t nfs 192.168.237.116:/dmbak1 opt/dmbak1
四、本地备份,定时传输
在方案2.2,备份的IP地址填写本机,并增加定时传输的脚本内容,同样适用了本地的物理备份传输。
scp /dmbak_luoji/$bakuser"_"$date.tar.gz192.168.237.116:/dmbak_luoji #将备份文件传到备份服务器上
>>> THE END <<<
相关推荐





