达梦DM8之dmrman只有备份集文件完成异路径异dbname异instancename恢复操作

        当只有dmrman备份集文件时(也就是无dm.ini和dm.ctl文件),且要恢复的路径和原路径不同,且数据库名、实例名也不同时,如何能快速的完成恢复操作?

1. 测试前提
1)安装好DM8数据库软件,无需dminit初始化实例
2)dmrman全备的备份集文件

2. 测试目的
当要恢复的路径和原路径不同时、db_name也不同时、instance_name也不同时,如何能快速的完成恢复操作?例如:
1)源库:
dbname: DMSERVER, 实例名:DMSERVER,
数据文件路径:/dm8/dmdbms/data/DAMENG/
2)目标端:恢复至不同路径下,
dbname: dm02, 实例名:dm02,
数据文件路径:/dm8/dmdbms/data/dm02/

3. 执行命令
--restore还原
RMAN> RESTORE DATABASE TO '/dm8/dmdbms/data/dm02/' OVERWRITE FROM BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/DB_DAMENG_FULL_20221031_232339_978546' RENAME TO 'dm02';
--recover恢复
RMAN> RECOVER DATABASE '/dm8/dmdbms/data/dm02/dm.ini' FROM BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/DB_DAMENG_FULL_20221031_232339_978546'
--更新db_magic值
RMAN> RECOVER DATABASE '/dm8/dmdbms/data/dm02/dm.ini' UPDATE DB_MAGIC
说明:TO指向要恢复的新路径;OVERWRITE指如果文件存在则覆盖(因为是新路径,所以此参数可省略);BACKUPSET备份集路径可以指向任意dmdba用户权限下的路径;RENAME TO指明新的dbname名称(区分大小写)。

4. 测试过程
4.1 Restore还原
--- 创建dm02新路径,模拟新环境
[dmdba@master data]$ ls -lrt
total 4
drwxr-xr-x 2 dmdba dinstall 4096 Oct 13 18:36 dmfldr
drwxr-xr-x 2 dmdba dinstall   34 Oct 21 12:10 log
drwxr-xr-x 7 dmdba dinstall  321 Oct 31 22:55 DAMENG
[dmdba@master data]$ mkdir -p dm02
[dmdba@master data]$ cd dm02/
[dmdba@master dm02]$ ls -l
total 0
[dmdba@master dm02]$
 
---dmrman还原操作:
[dmdba@master dm02]$ /dm8/dmdbms/bin/dmrman CTLSTMT="RESTORE DATABASE TO '/dm8/dmdbms/data/dm02/' OVERWRITE FROM BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/DB_DAMENG_FULL_20221031_232339_978546' RENAME TO 'dm02'" 
dmrman V8
RESTORE DATABASE TO '/dm8/dmdbms/data/dm02/' OVERWRITE FROM BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/DB_DAMENG_FULL_20221031_232339_978546' RENAME TO 'dm02'
file dm.key not found, use default license!
chattr: No such file or directory while trying to stat /dm8/dmdbms/data/dm02/dm.ctl
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
restore successfully.
time used: 00:00:02.703
[dmdba@master dm02]$ ls -lrt
total 3133524
drwxr-xr-x 2 dmdba dinstall          6 Nov  1 00:07 HMAIN
-rw-r--r-- 1 dmdba dinstall 2241855488 Nov  1 00:07 ROLL.DBF
-rw-r--r-- 1 dmdba dinstall  236978176 Nov  1 00:07 MAIN.DBF
-rw-r--r-- 1 dmdba dinstall       5632 Nov  1 00:07 dm.ctl
-rw-r--r-- 1 dmdba dinstall        633 Nov  1 00:07 dm_service.prikey
-rw-r--r-- 1 dmdba dinstall  268435456 Nov  1 00:07 dm0201.log
-rw-r--r-- 1 dmdba dinstall  192937984 Nov  1 00:07 SYSTEM.DBF
-rw-r--r-- 1 dmdba dinstall  268435456 Nov  1 00:07 dm0202.log
-rw-r--r-- 1 dmdba dinstall      59755 Nov  1 00:07 dm.ini
[dmdba@master dm02]$

4.2 检查dm.ini文件和dm.ctl文件
--检查dm.ini文件中的path路径信息(需要手动修改INSTANCE_NAME名称)
[dmdba@master dm02]$ more dm.ini 
#DaMeng Database Server Configuration file
#this is comments

#file location of dm.ctl
        CTL_PATH                        = /dm8/dmdbms/data/dm02/dm.ctl         #ctl file path
        CTL_BAK_PATH                    = /dm8/dmdbms/data/dm02/ctl_bak       #dm.ctl backup path
        CTL_BAK_NUM                     = 10                                                     #backup number of dm.ctl, allowed to keep one more backup file besides s
pecified number.
        SYSTEM_PATH                     = /dm8/dmdbms/data/dm02                       #system path
        CONFIG_PATH                     = /dm8/dmdbms/data/dm02                       #config path
        TEMP_PATH                       = /dm8/dmdbms/data/dm02                       #temporary file path
        BAK_PATH                        = /dm8/dmdbms/data/dm02/bak               #backup file path
        DFS_PATH                        = $/DAMENG                                            #path of db_file in dfs

#instance name
        INSTANCE_NAME                   = DM02                                      #Instance name

注意:需要手动修改INSTANCE_NAME=dm02

--检查dm.ctl文件中的path路径信息和dbname名称
[dmdba@master dm02]$ /dm8/dmdbms/bin/dmctlcvt TYPE=1 SRC=/dm8/dmdbms/data/dm02/dm.ctl DEST=/dm8/dmdbms/data/dm02/dmctl.txt
DMCTLCVT V8
convert ctl to txt success!
[dmdba@master dm02]$ cat dmctl.txt |grep -i path
# file path
fil_path=/dm8/dmdbms/data/dm02/SYSTEM.DBF
# file path
fil_path=/dm8/dmdbms/data/dm02/ROLL.DBF
# file path
fil_path=/dm8/dmdbms/data/dm02/DAMENG01.log
# file path
fil_path=/dm8/dmdbms/data/dm02/DAMENG02.log
# file path
fil_path=/dm8/dmdbms/data/dm02/MAIN.DBF
# huge path
huge_path=/dm8/dmdbms/data/dm02/HMAIN
# huge path create time
# huge path modify time
[dmdba@master dm02]$
[dmdba@master dm02]$ cat dmctl.txt |grep -i dbname
dbname=dm02
[dmdba@master dm02]$


4.3 Recover恢复
[dmdba@master dm02]$ /dm8/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/dmdbms/data/dm02/dm.ini' FROM BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/DB_DAMENG_FULL_20221031_232339_978546'"
dmrman V8
RECOVER DATABASE '/dm8/dmdbms/data/dm02/dm.ini' FROM BACKUPSET '/dm8/dmdbms/data/DAMENG/bak/DB_DAMENG_FULL_20221031_232339_978546'
file dm.key not found, use default license!
Read ini warning, default dm.ctl backup path [/dm8/dmdbms/data/dm02/ctl_bak] does not exist. 
Read ini warning, default backup path [/dm8/dmdbms/data/dm02/bak] does not exist. 
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[3840456], file_lsn[3840456]
[Percent:100.00%][Speed:0.00PKG/s][Cost:00:00:00][Remaining:00:00:00]                               
recover successfully!
time used: 00:00:02.558
[dmdba@master dm02]$

4.4 更新DB_MAGIC值
[dmdba@master dm02]$ /dm8/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/dmdbms/data/dm02/dm.ini' UPDATE DB_MAGIC"
dmrman V8
RECOVER DATABASE '/dm8/dmdbms/data/dm02/dm.ini' UPDATE DB_MAGIC
file dm.key not found, use default license!
Read ini warning, default dm.ctl backup path [/dm8/dmdbms/data/dm02/ctl_bak] does not exist. 
Read ini warning, default backup path [/dm8/dmdbms/data/dm02/bak] does not exist. 
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[3843562], file_lsn[3843562]
recover successfully!
time used: 00:00:01.039
[dmdba@master dm02]$

4.5 启动数据库
[dmdba@dmdb01 dm02]$ /dm8/dmdbms/bin/dmserver /dm8/dmdbms/data/dm02/dm.ini

注意:启动完成后,需要手动配置归档模式,指定归档目录为新路径(备份集中是包含dmarch.ini文件的,但是内容为空);并且需要手动创建arch/、bak/和ctl_bak/目录。

4.6 检查dbname和instance_name

 更多技术支持请关注达梦在线服务平台:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值