DM8:达梦数据库备份还原到指定时间
1 安装达梦数据库
2 开启归档
管理工具 或 disql 连接数据库后执行
alter database archivelog;
--路径配置为实际路径
--FILE_SIZE 单个归档文件最大值,单位 M
--SPACE_LIMIT 归档存储总空间最大值,到达空间限制后会循环覆盖归档日志;
alter database add archivelog 'DEST=/home/dmdba/dmdata5236_arch, TYPE=LOCAL, FILE_SIZE=128, SPACE_LIMIT=1024';
3 备份
数据库运行过程中在管理工具 或 disql 中执行
默认备份路径为 dm.ini配置文件中的 BAK_PATH= 的路径值
backup database full to "DB_DAMENG_FULL_2022_02_18_13_33_20" backupset 'DB_DAMENG_FULL_2022_02_18_13_33_20';
4 创建表
CREATE TABLE "DM"."DM_TEST"
(
"A1" VARCHAR(50),
"A2" VARCHAR(50),
"A3" TIMESTAMP(6) DEFAULT SYSDATE()) STORAGE(ON "TBS_DM", CLUSTERBTR) ;
5 生成测试数据
INSERT INTO DM.DM_TEST(A1,A2)VALUES('A1','A2');
commit;
5.2 关闭数据库服务使归档刷盘(记录时间点)
5.3 启动数据库删除数据
DROP TABLE DM.DM_TEST;
6 还原达梦数据库,使用归档还原到指定时间;
6.1 备份还原
-
全部使用dmdba 用户操作 , 确保操作相关路径与文件有读写权限
-
在数据库bin目录执行还原操作
-
(生产环境不可在原实例还原(警告),
要重新初始化一个实例,正常启动后,正常关闭,才能执行还原操作) -
初始化实例前 查看原库实例初始化参数 要保持一致(页大小 ,簇大小 ,字符集编码 ,大小写是否敏感 ,varchar是否以字符为单位 )
-
初始化实例名 , 端口 要和原库不一致 , 便于区分测试库和生产库
-
原实例dm.ini 同级目录有初始化日志文件 : dminit+时间戳 .log
[dmdba@localhost ~]$ cat /home/dmdba/dmdata/DAMENG/dminit20230905165739.log
start init database: V8, 2023-09-05 16:57:39
init params:
db path: /home/dmdba/dmdata/DAMENG
db name: DAMENG (数据库名)
auto overwrite: 0
page size: 32768 (页 32)
extent size: 32 (簇 32)
char_fix_storage: 0
sql_log_forbid: 0
secur_flag: 2
time zone: +08:00
string case sensitive: 1 ( 1 : 大小写敏感 , 0 : 大小写不敏感)
charset: 0 ( 0 : GBK 编码 , 1 : UTF-8)
length in char: 0 ( 0 : varchar 以字节为单位 , 1 : varchar 以字符为单位)
page check mode: 1
page check algorithm id: 0
priv flag: 0
env label: 0
rlog enc flag: 0
use new hash: 1
blank pad mode: 0
sec priv mode: 0
huge with delta: 1
rlog gen for huge: 1
pseg_mgr_flag: 0
log file path: /home/dmdba/dmdata/DAMENG/DAMENG01.log
log file path: /home/dmdba/dmdata/DAMENG/DAMENG02.log
create ini file /home/dmdba/dmdata/DAMENG/dm.ini success.
create rlog file /home/dmdba/dmdata/DAMENG/DAMENG01.log success.
create rlog file /home/dmdba/dmdata/DAMENG/DAMENG02.log success.
SYSTEM file : /home/dmdba/dmdata/DAMENG/SYSTEM.DBF
MAIN file : /home/dmdba/dmdata/DAMENG/MAIN.DBF
ROLL file : /home/dmdba/dmdata/DAMENG/ROLL.DBF
create dm database success. 2023-09-05 16:57:42
[dmdba@localhost ~]$
-
查看数据库 bin 执行目录和新实例 dm.ini 路径方法
ps -ef|grep dmserver
./dmrman CTLSTMT="RESTORE DATABASE '/home/dmdba/dmdata5237/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmdata5236/DAMENG/bak/DB_DAMENG_FULL_2022_02_18_14_08_47'"
6.2 通过归档恢复到指定时间(受归档刷盘时间影响)
在数据库bin 执行目录对数据库执行恢复操作,
6.2.1 指定新初始化的实例 dm.ini,
6.2.2 原库的归档路径,
- /home/dmdba/dmdata5236_arch
6.2.3 还原到记录的时间点;
./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdata5237/DAMENG/dm.ini' WITH ARCHIVEDIR '/home/dmdba/dmdata5236_arch' UNTIL TIME '2022-02-18 14:42:44'"
6.3 更新数据库db_magic
在数据库 bin 执行目录执行
./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdata5237/DAMENG/dm.ini' UPDATE DB_MAGIC";
7 启动新实例服务,查看已经还原的数据情况(完成)
./dmserver /home/dmdba/dmdata5237/DAMENG/dm.ini

本文提供了一步一步的指导,介绍如何在达梦数据库DM8中进行备份并还原到指定时间点的过程,包括开启归档、创建表及测试数据、备份、还原等关键步骤。
547

被折叠的 条评论
为什么被折叠?



