达梦DM8还原数据
背景
在终端操作DM8时把表空间DMTBS.DBF文件删除了,并关闭了数据库。
操作过程
- 重启数据库
[dmdba@dameng01 dm8]$ /dm8/bin/DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]
[dmdba@dameng01 dm8]$
- 此时状态是mount状态,可以启动到open状态;
[dmdba@dameng01 dm8]$ disql sysdba/dameng123
服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 9.580(ms)
disql V8
SQL> select * from v$database;
行号 NAME CREATE_TIME ARCH_MODE LAST_CKPT_TIME STATUS$ ROLE$
---------- ------ ------------------- --------- -------------- ----------- -----------
MAX_SIZE TOTAL_SIZE DSC_NODES OPEN_COUNT STARTUP_COUNT
LAST_STARTUP_TIME
-------------------
1 DAMENG 2020-12-05 00:23:14 Y NULL 3 0
0 61312 1 4 4
2020-12-16 17:42:46
已用时间: 6.578(毫秒). 执行号:0.
SQL> alter database open;
操作已执行
已用时间: 00:00:01.795. 执行号:0.
SQL>
- 执行表空间online操作
SQL> alter tablespace dmtbs online;
alter tablespace dmtbs online;
[-2405]:文件或目录[/dm8/data/DAMENG/DMTBS01.DBF]不存在.
已用时间: 98.613(毫秒). 执行号:0.
SQL>
- 接下来,需要恢复表空间,从达梦8开始,表空间恢复需要关闭数据库实例,从而使用dmrman工具进行;
[dmdba@dameng01 dm8]$ /dm8/bin/DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]
- 使用dmrman工具,restore表空间
[dmdba@dameng01 ~]$ cd /dm8/bin
[dmdba@dameng01 bin]$ ./dmrman
dmrman V8
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace "DMTBS" from backupset '/dm8/backup/DMDB_bak';
restore database '/dm8/data/DAMENG/dm.ini' tablespace "DMTBS" from backupset '/dm8/backup/DMDB_bak';
file dm.key not found, use default license!
Database mode = 0, oguid = 0
[WARN]tablespace DMTBS is corrupted(state: 2), restore or drop please.
EP[0]'s cur_lsn[53740]
restore successfully.
time used: 448.964(ms)
RMAN>
- 使用dmrman工具,recover表空间
RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace dmtbs;
recover database '/dm8/data/DAMENG/dm.ini' tablespace dmtbs;
Database mode = 0, oguid = 0
[WARN]tablespace DMTBS is corrupted(state: 2), restore or drop please.
EP[0]'s cur_lsn[53740]
EP[0]'s cur_lsn[53740]
EP:0 total 2 pkgs applied, percent: 12%
EP:0 total 4 pkgs applied, percent: 25%
EP:0 total 6 pkgs applied, percent: 37%
EP:0 total 8 pkgs applied, percent: 50%
EP:0 total 10 pkgs applied, percent: 62%
EP:0 total 12 pkgs applied, percent: 75%
EP:0 total 14 pkgs applied, percent: 87%
EP:0 total 16 pkgs applied, percent: 100%
recover successfully.
time used: 612.732(ms)
RMAN>
- 启动数据库实例
[dmdba@dameng01 dm8]$ /dm8/bin/DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]
[dmdba@dameng01 dm8]$
注意
应使用与 DM 数据库版本配套的 DMRMAN 工具进行操作。当使用 DM7 的 DMRMAN 工具操作 DM8 数据库时,无法检测 DM8
数据库实例是否处于启动 状态。