Loading... ### 一、概述 用于解决达梦数据库手动备份操作麻烦,不同项目备份需求不同,备份目录不好找,需要定期管理备份文件等情况 通过简单修改配置文件,完成物理备份、逻辑备份、指定模式、指定表空间、配置定期删除等功能 1.1文件结构: ![img](https://cdn.ashitakaze.cn/img/20230215/1676457019906.png) 1.2配置文件内容: ![img](https://cdn.ashitakaze.cn/img/20230215/1676457063342.png) DM_HOME=/dm8 #达梦数据库安装目录 dmbakdir=/dm8/dmbakdir #达梦数据库备份目录 mountdir= /home/nfs #异地备份nfs挂载目录 dmid=127.0.0.1:5236 #达梦数据库服务地址 (如不是本地host,执行脚本的服务器需安装达梦数据库服务) dmuser=SYSDBA #用户 dmpwd=SYSDBA #密码 daysdel=10 #备份保留天数 schemas= #逻辑备份时指定模式名,如schemas=SYSDBA,SYSSSO 不填时为全量备份 tablespace= #物理备份时指定表空间,如tablespace=MAIN,SYSTEM 不填时为全量备份 ### 二、NFS挂载 2.1服务端nfs配置 2.1.1 nfs配置 1.登录异地备份目标服务器 2.安装nfs yum install -y nfs-utils rpcbind 3.启动服务 systemctl start nfs rpcbind 4.加入开机启动 systemctl enable nfs rpcbind 5.配置挂载目录 sudo mkdir /home/nfs sudo chmod 777 /home/nfs 6.编辑挂载配置 vim /etc/exports /home/nfs *(rw,sync) *代表不限制ip 7.验证 systemctl restart nfs showmount -e 控制台显示 /home/nfs * 即nfs服务端部署成功 2.1.2 服务端端口配置 1.设置固定端口 vi /etc/sysconfig/nfs RQUOTAD_PORT=30001 LOCKD_TCPPORT=30002 LOCKD_UDPPORT=30002 MOUNTD_PORT=30003 STATD_PORT=30004 2.重启rpc、nfs的配置与服务: systemctl restart rpcbind.service systemctl restart nfs.service 3.在/etc/modprobe.d/lockd.conf中添加以下设置: options lockd nlm_tcpport=30002 options lockd nlm_udpport=30002 4.重新加载nfs配置和服务: systemctl restart nfs-config systemctl restart nfs-idmap systemctl restart nfs-lock systemctl restart nfs-server 5:查看修改后的NFS端口使用情况: [root@server1 ~]# rpcinfo -p program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 30004 status 100024 1 tcp 30004 status 100005 1 udp 30003 mountd 100005 1 tcp 30003 mountd 100005 2 udp 30003 mountd 100005 2 tcp 30003 mountd 100005 3 udp 30003 mountd 100005 3 tcp 30003 mountd 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 3 tcp 2049 nfs_acl 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 3 udp 2049 nfs_acl 100021 1 udp 30002 nlockmgr 100021 3 udp 30002 nlockmgr 100021 4 udp 30002 nlockmgr 100021 1 tcp 30002 nlockmgr 100021 3 tcp 30002 nlockmgr 100021 4 tcp 30002 nlockmgr //这样端口就都固定了 6.编写防火墙规则(firewalld),开放NFS端口访问 ``` firewall-cmd --permanent --add-port=111/tcp firewall-cmd --permanent --add-port=111/udp firewall-cmd --permanent --add-port=2049/tcp firewall-cmd --permanent --add-port=2049/udp firewall-cmd --permanent --add-port=30003/tcp ``` firewall-cmd --permanent --add-port=30003/udp firewall-cmd --reload 2.2客户端nfs配置 2.2.1 nfs配置 yum install -y nfs rpcbind #启动服务 systemctl start rpcbind #加入开机启动 systemctl enable rpcbind #查看服务端挂载配置 showmount -e 服务端IP 控制台显示 /home/nfs * 即访问服务端成功 2.2.2 永久挂载共享目录 mkdir /home/nfs vim /etc/fstab 192.168.2.165:/home/nfs /home/nfs nfs defaults,_netdev 0 0 保存,退出 mount -a #刷新挂载目录 192.168.2.165:/home/nfs为服务端共享目录 /home/nfs :即挂载在客户端的虚拟目录,也是config.ini配置文件中的mountdir ### 三、备份还原 1.文件结构 tar.gz结尾的逻辑备份,解压后会得到log文件和dmp文件 时间结尾的物理备份 ![img](https://cdn.ashitakaze.cn/img/20230215/1676457085192.png) 异地备份: ![img](https://cdn.ashitakaze.cn/img/20230215/1676457101986.png) 2.由于物理备份需要开启归档,以下步骤: #开启归档(数据库在mount状态下,不能修改数据,不能访问表,视图等数据库对象。生产环境谨慎操作) alter database mount; alter database add archivelog ‘dest=/dm8/dmbakdir,TYPE=local,FILE_SIZE=1024, SPACE_LIMIT=0’; alter database archivelog; #修改回open状态 alter database open; 数据库还原参考达梦官方文档 [https://eco.dameng.com/document/dm/zh-cn/ops/physical-backup-restore.html](https://eco.dameng.com/document/dm/zh-cn/ops/physical-backup-restore.html) ### 四、定时任务执行 1.将dmbak.sh和config文件夹上传服务器任意目录,如/home/shell cd /home/shell chmod u+x dmbak.sh #授权可执行文件 crontab -e #编辑定时任务 30 23 * * * cd /home/shell && sh dmbak.sh 保存,退出 验证crontab -l 控制台显示30 23 * * * cd /home/shell && sh dmbak.sh则每天23:30定时执行备份脚本 最后修改:2023 年 02 月 15 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏