暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

【干货攻略】达梦数据库异地备份的方式和策略

达梦E学 2022-06-09
4155

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


众所周知,数据库的“两地三中心”方案是现在比较主流的容灾方案,即生产中心、同城容灾中心、异地容灾中心,从意义上来看就是,兼具同城容灾和异地容灾。但在实际项目应用中,往往数据库只建设了生产数据库,甚至很多都不是集群,而是采用单机方式。数据库运行数据和备份数据都存放在同一个服务器上,存在较大的风险,从而产生了异地备份的想法。


本文将讨论如何在有异地服务器的情况下,进行数据库的异地逻辑备份和物理备份。但在数据库架构设计中,作为核心系统建议还是选择数据库集群,保证本地多活,并进行同城备机,或再增加异地备机的方式。


异地备份思路:

1.异地逻辑备份,通过disql远程连接数据库(本文主要讨论);

2.继续利用达梦数据库的定时作业,挂在异地服务器文件系统(本文主要讨论);

3.本地备份,通过定时脚本传输备份文件至备机;


一、总体规划


相关参数
源端数据库备份机数据库
IP地址
192.168.237.117192.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/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


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

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

        将备机数据库/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

                显示如下即表示成功

                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 #将备份文件传到备份服务器上


                    >>> THE END <<<

                    好,以上是本期干货分享内容,希望能给大家带来帮助。



                     
                     


                    相关推荐

                    干货 | 使用PowerDesigner工具连接达梦数据库
                    干货 | 利用Docker搭建达梦主备集群
                    干货 | 达梦LINUX下误删数据文件如何进行数据恢复
                    开班 | 达梦DM8-DCA在线认证培训开班通知
                    开班达梦DM8-DCP开班招生中
                    内容丨张亮
                    审核丨林夕
                    编辑丨Hh

                    文章转载自达梦E学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                    评论