一、概述

用于解决达梦数据库手动备份操作麻烦,不同项目备份需求不同,备份目录不好找,需要定期管理备份文件等情况

通过简单修改配置文件,完成物理备份、逻辑备份、指定模式、指定表空间、配置定期删除等功能

1.1文件结构:

达梦数据库异地备份脚本_数据库

img

1.2配置文件内容:

达梦数据库异地备份脚本_服务端_02

img

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文件

时间结尾的物理备份

达梦数据库异地备份脚本_配置文件_03

img

异地备份:

达梦数据库异地备份脚本_数据库_04

img

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定时执行备份脚本