disql 增量备份SQL脚本DM7/DM8
- 环境介绍
- [1 全量备份](#1 全量备份)
- [2 增量备份](#2 增量备份)
-
- [2.1 cd 到数据库bin 目录,并编辑文件](#2.1 cd 到数据库bin 目录,并编辑文件)
- [2.2 编写sql 增量备份脚本](#2.2 编写sql 增量备份脚本)
- [2.3 执行编写的sql脚本](#2.3 执行编写的sql脚本)
- [2.4 编写Linux定时任务 , 每天执行增量备份](#2.4 编写Linux定时任务 , 每天执行增量备份)
- [3 备份还原](#3 备份还原)
- [4 更多达梦数据库学习使用列表](#4 更多达梦数据库学习使用列表)
环境介绍
- 增量备份之前必须有全量备份作为基备份 , 没有全量备份作为基备份执行增量备份会报错
1 全量备份
2 增量备份
2.1 cd 到数据库bin 目录,并编辑文件
- 编写数据库增量备份SQL 脚本
shell
cd /opt/dmdba/dmdbmsdm7_170808;vi increment.sql
2.2 编写sql 增量备份脚本
sql
SELECT SYSDATE() START_TIM
DECLARE
--修改备份路径(dmdba用户具有权限)
DIR_PATH VARCHAR(256):='/opt/dmdba/dmdbmsdm7_170808/data/DAMENG/bak/';
FILE_NAME VARCHAR(256):='DB_DAMENG_INCREMENT_'||TO_CHAR(SYSDATE,'YYYYMMDD-HH24MISS');
SQL_STR VARCHAR(512);
BEGIN
--SELECT SYSDATE() START_TIME;
SQL_STR='backup database increment backupset '''||DIR_PATH||FILE_NAME||''' MAXSIZE 128000 compressed' ;
EXECUTE IMMEDIATE(SQL_STR);
SELECT SYSDATE() END_TIME;
END;
/
exit;
2.3 执行编写的sql脚本
- 测试没问题继续 2.4 配置 定时任务
shell
cd /opt/dmdba/dmdbmsdm7_170808; ./disql SYSDBA/'"SYSDBA"':5237 \`increment.sql > INCREMENT.LOG
2.4 编写Linux定时任务 , 每天执行增量备份
xml
#每晚23点 20 分开始执行
[root@localhost backup]$ crontab -e
20 23 * * * cd /opt/dmdba/dmdbmsdm7_170808; ./disql SYSDBA/'"SYSDBA"':5237 \`increment.sql >> INCREMENT.LOG
[root@localhost backup]$
3 备份还原
- 使用 dmdba 用户操作(路径替换为实际的路径)
- cd 到数据库bin 目录
xml
## 数据库还原
./dmrman CTLSTMT="RESTORE DATABASE '/opt/dmdba/dmdbmsdm7_170808/data7808/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdba/dmdbmsdm7_170808/data/DAMENG/bak/DB_DAMENG_INCREMENT_20241016-111746'"
## 数据库恢复
./dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdba/dmdbmsdm7_170808/data7808/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdba/dmdbmsdm7_170808/data/DAMENG/bak/DB_DAMENG_INCREMENT_20241016-111746'"
## 更新数据库魔数,这步骤DM7会报错可忽略
./dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdba/dmdbmsdm7_170808/data7808/DAMENG/dm.ini' UPDATE DB_MAGIC"
## 启动数据库
./dmserver /opt/dmdba/dmdbmsdm7_170808/data7808/DAMENG/dm.ini