一、概述
用于解决达梦数据库手动备份操作麻烦,不同项目备份需求不同,备份目录不好找,需要定期管理备份文件等情况
通过简单修改配置文件,完成物理备份、逻辑备份、指定模式、指定表空间、配置定期删除等功能
1.1文件结构:
1.2配置文件内容:
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文件
时间结尾的物理备份
异地备份:
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
四、定时任务执行
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定时执行备份脚本