达梦数据库物理备份恢复_指定数据文件还原的路径

参考文档DM8 1-1-190版本《DM8备份恢复手册》

指定数据文件还原的路径

达梦数据库默认会将数据文件还原到目标数据库目录(SYSTEM_PATH),可以通过指定映射文件可以将数据文件还原到指定路径下,也可以在目的库还原修改dm.ini中SYSTEM_PATH指定恢复的数据文件路径。

需要注意的是:

(1)修改dm.ini中SYSTEM_PATH的值只能在全库还原时使用,而且是将所有数据文件都还原到SYSTEM_PATH指定的路径下,无法用于单独的表空间还原。还原恢复步骤与正常还原恢复步骤一样,只需在恢复前修改目的库dm.ini中SYSTEM_PATH的值即可。

(2)指定映射文件的方式可用于库级和表空间的还原,可以指定一个或多个表空间数据文件的还原路径。

本次采用使用映射文件指定数据文件还原路径。

环境说明

OS:Kylin Linux Advanced Server release V10 (SP1) /(Tercel)-x86_64-Build19/20210319

DB_VERSION:DM8 1-1-190-21.04.16-137954-ENT Pack4

备份库:TEST,数据库文件路径:/data/dmdata/TEST

目的库:TEST2,数据库文件路径:/data/dmdata/TEST2

前提条件

1、dmap已正常启动运行;

2、数据库已配置归档模式;

操作步骤

表空间指定映射文件还原与数据库使用指定映射文件还原操作相同。

这里只写数据库使用映射文件指定数据文件路径进行还原恢复。

首先 备份TEST数据库

可以脱机备份也可以联机备份,这里直接使用联机备份:

SQL> backup database full backupset '/data/dmbak1';
操作已执行
已用时间: 925.391(毫秒). 执行号:400.

[dmdba@localhost dmbak1]$ pwd
/data/dmbak1
[dmdba@localhost dmbak1]$ ls
dmbak1_1.bak  dmbak1.bak  dmbak1.meta
第二步 生成映射文件

使用dmrman dump命令生成备份集的映射文件:

RMAN> dump backupset '/data/dmbak1' database '/data/dmdata/TEST2/dm.ini' mapped file '/home/dmdba/map_file_test2.txt';

image-20210511152909262

生成的映射文件内容如下:

[dmdba@localhost ~]$ cat map_file_test2.txt 
/**************************************************************/
/***  Delete the unnecessary modified groups                 **/
/***  Modify the data_path or mirror_path only in one group  **/
/**************************************************************/

/**=============================================================**/
/*[TEST_SYSTEM_FIL_0]*/
fil_id         = 0
ts_id          = 0
ts_name        = SYSTEM
data_path      = /data/dmdata/TEST2/SYSTEM.DBF
mirror_path    = 

/**=============================================================**/
/*[TEST_ROLL_FIL_0]*/
fil_id         = 0
ts_id          = 1
ts_name        = ROLL
data_path      = /data/dmdata/TEST2/ROLL.DBF
mirror_path    = 

/**=============================================================**/
/*[TEST_MAIN_FIL_0]*/
fil_id         = 0
ts_id          = 4
ts_name        = MAIN
data_path      = /data/dmdata/TEST2/MAIN.DBF
mirror_path    = 

/**=============================================================**/
/*[TEST_MAIN_FIL_1]*/    
fil_id         = 1
ts_id          = 4
ts_name        = MAIN
data_path      = /data/dmdata/TEST2/MAIN02.DBF
mirror_path    = 

/***************************** END ****************************/

查看映射文件内容很容易理解文件中相关选项的大概含义:

/*[数据库名_表空间名_FIL_数据文件ID]*/
fil_id:表空间对应的数据文件的ID(应该是对应v$datafile中的ID 或者 dba_data_files中的FILE_ID)
ts_id:表空间的ID(应该是对应v$datafile的GROUP_ID 或者 v$tablespace的ID)
ts_name:表空间的名称
data_path:表空间对应的数据文件(应该是对应v$datafile的PATH 或者是dba_data_files中的FILE_NAME)
mirror_path:表空间对应数据文件镜像文件(应该是对应v$datafile的MIRROR_PATH)
第三步 修改映射文件

根据映射文件内容说明,只需要编辑修改映射文件中对应表空间的data_path或者mirror_path修改为指定路径即可,其余不需要修改的表空间内容可以删除也可以不删除。

这里我们修改MAIN表空间的MAIN02.DBF数据文件的路径为:/data/dmdata/datafile/TEST2/MAIN02.DBF

如下:

/*[TEST_MAIN_FIL_1]*/
fil_id         = 1
ts_id          = 4
ts_name        = MAIN
data_path      = /data/dmdata/datafile/TEST2/MAIN02.DBF
mirror_path    = 
第四步 使用映射文件进行还原恢复

关闭TEST2数据库

[dmdba@localhost bin]$ ./DmServiceTEST2 stop
Stopping DmServiceTEST2:                                   [ OK ]

使用DMRMAN进行脱机还原恢复

RMAN> restore database '/data/dmdata/TEST2/dm.ini' from backupset '/data/dmbak1' mapped file '/home/dmdba/map_file_test2.txt';
RMAN> recover database '/data/dmdata/TEST2/dm.ini' from backupset '/data/dmbak1';
RMAN> recover database '/data/dmdata/TEST2/dm.ini' update db_magic;

image-20210511160253528

image-20210511160324669

image-20210511160349324

第五步 启动数据库查看数据文件

启动数据

[dmdba@localhost bin]$ ./DmServiceTEST2 start
Starting DmServiceTEST2:                                   [ OK ]

查看数据文件

image-20210511161021884

image-20210511161159027

至此,备份恢复完成。

结语

达梦数据库使用映射文件的方式与Oracle RMAN中使用set newname相似。

达梦数据库在还原恢复时除了使用映射文件的方式指定数据文件恢复路径,也可以修改dm.ini中SYSTEM_PATH参数指定所有数据文件的路径,但是使用映射文件的方式更友好更灵活方便。

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值