达梦数据库物理备份恢复_表空间级备份还原

参考文档《DM8备份恢复手册》

1、表空间级备份还原

联机备份,脱机还原

表空间备份还原的先决条件以及限制条件参考《DM8备份恢复手册》。

1.1 备份

BACKUP V1.0:

backup tablespace main full to TBS_BAK bakfile '/dm8/dmbak/TBS_MAIN_BAK/main.bak';

image-20210326171315513

BACKUP V2.0:

backup tablespace main backupset '/dm8/dmbak/tbs_main_bak_v2';

image-20210326171334657

DM8注意backup v1.0 :
V1.0:backup tablespace main full to TBS_BAK bakfile ‘xxx’;
如果xxx为一个目录,非.bak文件,则会生成一个xxx目录下xxx.bak和xxx.meta。
如果xxx为一个.bak文件,则会在相应目录下生成一个.bak文件,但是dm8无法直接恢复这种方式备份出来的.bak文件。
在DM7中无论xxx有没有带.bak后缀,在备份的时候都只会生成一个.bak的文件。
DM8只能使用dmrman脱机进行恢复还原。

1.2 还原恢复

DM7表空间还原:

v1.0: 
   restore tablespace main from '/dm7/backup/tbs_main.bak';
V2.0: 
   restore tablespace main from backupset '/dm7/backup/test_tbsbak';
DM7测试(BACKUP V1.0)

###建表

SQL> desc ttt;
[-20001]:无效的对象名.
已用时间: 0.819(毫秒). 执行号:0.
SQL> create table ttt (id int) storage(on main);
操作已执行
已用时间: 2.155(毫秒). 执行号:63.

###备份

SQL> backup tablespace main full to TBS_BAK bakfile '/dm7/backup/tbs_main.bak';
操作已执行
已用时间: 00:00:01.165. 执行号:61.

###模拟表空间数据文件丢失
rm MAIN.DBF

###重启数据库
日志信息:

Use normal os_malloc instead of HugeTLB
Use normal os_malloc instead of HugeTLB
DM Database Server x64 V7.6.0.142-Build(2019.03.12-103811)ENT  startup...
/data/dmdbms/data/DAMENG/MAIN.DBF not exist,force to be off-line
User data files missed, Force to startup MOUNT

启动时发现MAIN.DBF文件不存在,会自动强制offline 并启动到mount状态。

###还原

手动启动数据库到OPEN状态
[dmdba@DaMengDB DAMENG]$ disql
disql V7.6.0.142-Build(2019.03.12-103811)ENT 
用户名:
密码:

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间: 5.463(毫秒)
SQL>
SQL> alter database open;
操作已执行
已用时间: 00:00:10.293. 执行号:0.

SQL> select name,status$ from v$tablespace ;               

行号     NAME   STATUS$    
---------- ------ -----------
1          SYSTEM 0
2          ROLL   0
3          TEMP   0
4          MAIN   1
5          DMHR   0
6          TBS3   0
7          TEST   0
8          SYSAUX 0

STATUS$说明: 0 ONLINE, 1 OFFLINE, 2 RES_OFFLINE, 3 CORRUPT

----执行还原操作
SQL> restore tablespace main from '/dm7/backup/tbs_main.bak';
操作已执行
已用时间: 408.777(毫秒). 执行号:7.

日志信息:

start restore table space: MAIN
start restore file: /data/dmdbms/data/DAMENG/MAIN.DBF, pages: 105
end restore file: /data/dmdbms/data/DAMENG/MAIN.DBF

end restore table space: MAIN

start redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200515122736288_0.log, rpages: 1520, start lsn: 190500, end lsn: 195960

end redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200515122736288_0.log

start redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200516184023096_0.log, rpages: 1409, start lsn: 195960, end lsn: 205300

end redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200516184023096_0.log

start redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200516204315913_0.log, rpages: 1398, start lsn: 205301, end lsn: 214544

end redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200516204315913_0.log

start redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200516204451733_0.log, rpages: 1386, start lsn: 214545, end lsn: 223763

end redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200516204451733_0.log

start redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200516204708022_0.log, rpages: 1385, start lsn: 223764, end lsn: 232981

end redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200516204708022_0.log

start redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200516204915793_0.log, rpages: 1387, start lsn: 232982, end lsn: 242199

end redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200516204915793_0.log

start redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200516210431409_0.log, rpages: 945, start lsn: 242199, end lsn: 247064

end redo arch file: /dm7/arch/ARCHIVE_LOCAL2_20200516210431409_0.log

restore finished, code = 0!

根据日志信息发现还原之后会自动应用日志。

SQL> alter tablespace main online;
操作已执行
已用时间: 13.662(毫秒). 执行号:9.

###查看

SQL> select name,status$ from v$tablespace ;

行号     NAME   STATUS$    
---------- ------ -----------
1          SYSTEM 0
2          ROLL   0
3          TEMP   0
4          MAIN   0
5          DMHR   0
6          TBS3   0
7          TEST   0
8          SYSAUX 0

SQL> desc ttt;

行号     NAME TYPE$   NULLABLE
---------- ---- ------- --------
1          ID   INTEGER Y

已用时间: 2.850(毫秒). 执行号:67.

表空间还原需要先将表空间状态为OFFLINE
SQL> alter tablespace main offline;
SQL> restore tablespace main from ‘/dm7/backup/tbs_main.bak’;
SQL> alter tablespace main online;

DM8测试

对表空间的备份还原,DM8只能使用dmrman脱机进行恢复还原。

[dmdba@dm8dw02 bin]$ ./DmServiceTEST stop
Stopping DmServiceTEST:                                    [ OK ]
[dmdba@dm8dw02 bin]$ ./dmrman
dmrman V8

#校验备份,校验待还原备份集的合法性。校验备份有两种方式,联机和脱机,此处使用脱机校验
RMAN> CHECK BACKUPSET '/dm8/dmbak/tbs_main_bak';  
CHECK BACKUPSET '/dm8/dmbak/tbs_main_bak';
CMD END.CODE:[0]
check backupset successfully.
time used: 5.922(ms)

#还原表空间。 需要注意,表空间还原的目标库只能是备份集产生的源库,否则将报错 
#使用第一次备份文件还原
RMAN> RESTORE DATABASE '/dm8/data/TEST/dm.ini' TABLESPACE MAIN FROM BACKUPSET '/dm8/dmbak/tbs_main_bak';
RESTORE DATABASE '/dm8/data/TEST/dm.ini' TABLESPACE MAIN FROM BACKUPSET '/dm8/dmbak/tbs_main_bak';
RESTORE TABLESPACE[MAIN] IN DB[/dm8/data/TEST/dm.ini] CHECK......
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[53006]
RESTORE TABLESPACE[MAIN] IN DB[/dm8/data/TEST/dm.ini],dbf collect......
RESTORE TABLESPACE[MAIN] IN DB[/dm8/data/TEST/dm.ini],ts status and dbf refresh ......
RESTORE BACKUPSET [/dm8/dmbak/tbs_main_bak] START......
total 1 packages processed...
total 3 packages processed...
RESTORE TABLESPACE[MAIN] IN DB[/dm8/data/TEST/dm.ini],UPDATE ctl file......
total 3 packages processed...
total 3 packages processed!
CMD END.CODE:[0]
restore successfully.
time used: 423.868(ms)

#恢复表空间
RMAN> RECOVER DATABASE '/dm8/data/TEST/dm.ini' TABLESPACE MAIN;
RECOVER DATABASE '/dm8/data/TEST/dm.ini' TABLESPACE MAIN;
Database mode = 0, oguid = 0
[WARN]tablespace MAIN is corrupted(state: 2), restore or drop please.
EP[0]'s cur_lsn[53006]
RECOVER TABLESPACE[MAIN] IN DB[/dm8/data/TEST/dm.ini] CHECK......
EP[0]'s cur_lsn[53006]
EP:0 total 3 pkgs applied, percent: 10%
EP:0 total 6 pkgs applied, percent: 20%
EP:0 total 9 pkgs applied, percent: 31%
EP:0 total 12 pkgs applied, percent: 41%
EP:0 total 15 pkgs applied, percent: 51%
EP:0 total 18 pkgs applied, percent: 62%
EP:0 total 21 pkgs applied, percent: 72%
EP:0 total 24 pkgs applied, percent: 82%
EP:0 total 27 pkgs applied, percent: 93%
EP:0 total 29 pkgs applied, percent: 100%
Recover from archive log finished, time used:0.086s.
CMD END.CODE:[0]
recover successfully.
time used: 546.781(ms)
RMAN> 

1.3 表空间备份还原总结

(1)、DM8表空间还原的备份集可以是联机或脱机生成的库备份集,也可以是联机生成的表空间备份集,只能使用脱机还原的方式。MOUNT状态下,不允许进行表空间备份。

(2)、表空间也和数据库备份一样支持全量备份和增量备份。

(3)、表空间备份还原不支持TEMP表空间。

(4)、表空间还原要求还原目标库与备份库为同一个库。

(5)、还原目标库不能为已经执行过RESTORE但未执行过RECOVER的库。

(6)、若目标库中SYSTEM表空间故障,则必须优先还原SYSTEM表空间。

(7)、如果SYSTEM表空间处于ONLINE/OFFLINE状态且文件丢失,则必须要通过库还原修复,不支持对其执行表空间还原 。

(8)、表空间还原还支持还原表空间中特定的数据文件。

结语

随着产品不断的改进,达梦数据库不同的版本在操作或者限制条件等方面可能有细微差别(也可能没有),当我们在操作时如果不是很清楚相关操作,可以先参考当前数据库版本的官方手册,所有的官方手册位于软件安装目录下的doc目录中($DM_HOME/doc)。

更多资讯请上达梦技术社区了解:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值