注册
达梦数据库异地备份的方式和策略-【达梦日常运维篇】
技术分享/ 文章详情 /

达梦数据库异地备份的方式和策略-【达梦日常运维篇】

神雕大侠 2024/12/20 2874 26 0

众所周知,数据库的“两地三中心”方案是现在比较主流的容灾方案,即生产中心、同城容灾中心、异地容灾中心,从意义上来看就是,兼具同城容灾和异地容灾。但在实际项目应用中,往往数据库只建设了生产数据库,甚至很多都不是集群,而是采用单机方式。数据库运行数据和备份数据都存放在同一个服务器上,存在较大的风险。从而产生了异地备份的想法,本文将讨论如何在有异地服务器的情况下,进行数据库的异地逻辑备份和物理备份。但在数据库架构设计中,作为核心系统建议还是选择数据库集群,保证本地多活,并进行同城备机,或再增加异地备机的方式。
异地备份思路:

  1. 异地逻辑备份,通过disql远程连接数据库(本文主要讨论);
  2. 继续利用达梦数据库的定时作业,挂在异地服务器文件系统(本文主要讨论);
  3. 本地备份,通过定时脚本传输备份文件至备机;

一、总体规划

image.png

二、 异地逻辑备份

异地逻辑备份即在备份机器远程逻辑备份源端数据库,脚本及说明如下:

1.创建执行脚本:

touch dmbak_luoji.sh

2.增加如下脚本内容(根据实际情况修改):

#!/bin/sh
export 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-8
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
#备份设置
date=$(date +%Y%m%d)  #当前时间
days=10  #设置删除10天前的数据
dmid=192.168.237.117:5236 #要备份的DM数据库IP、端口
bakuser=SYSDBA  #使用此用户来导出dmp
bakpass="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 -e
30 23 * * * cd /home/dmdba/ && sh dmbak_luoji.sh

三、继续利用达梦数据库的定时作业异地备份

如下图所示,达梦数据库的定时作业备份目录只能填写当前服务器的路径,若要想实现异地备份,即将备机数据库的路径共享给源端数据库。
image.png
将备机数据库/dmbak1路径挂载到源端数据库/dmbak1路径。

1.检查nfs软件是否安装(两台)、

rpm -qa | grep nfs-utils
rpm -qa | grep rpcbind

2.修改NFS的配置文件 /etc/exports (备份服务器默认是空文件)

vi /etc/exports  
#增加以下一行内容 如需多个往下面加即可我这边是指定ip  
/dmbak1 192.168.237.116(rw,sync,no_root_squash)

修改完后重启

service nfs restart 
service rpcbind restart

3.查看是否生效

showmount -e

显示如下即表示成功
image.png

4.开启挂载(源端数据库)

mount -t nfs 192.168.237.116:/dmbak1 /opt/dmbak1

四、本地备份,定时传输

在方案2.2,备份的IP地址填写本机,并增加定时传输的脚本内容,同样适用了本地的物理备份传输。

scp /dmbak_luoji/$bakuser"_"$date.tar.gz 192.168.237.116:/dmbak_luoji #将备份文件传到备份服务器上
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服