数据库还原后的数据文件默认生成到还原目标库的路径下,如果用户想生成数据文件到特定的路径,就需要指定映射文件参数来实现。
映射文件(MAPPED FILE)用于指定存放还原目标路径,即备份集里面的数据文件的路径,可以手动修改自动生成的映射文件。当参数 BACKUPSET 和 MAPPED FILE 指定的路径不一致时,以 MAPPED FILE 中指定的路径为主。映射文件可用于库级脱机还原和表空间还原,使用 DUMP 命令可以将指定备份集还原目标信息生成到目标映射文件中,该文件可被重新编辑后,用于数据库的还原过程。
01
指定映射路径还原步骤
下面以整库还原为例说明使用映射路径还原的具体步骤。
1、关闭数据库,启动 RMAN,脱机备份数据库
[dmdba@localhost bin]$./DmServiceGZ stop
[dmdba@localhost bin]$./dmrman
BACKUP DATABASE '/dameng/data/GZ/dm.ini' BACKUPSET '/dameng/data/GZ/bak/db_bak_for_map_01';
2、生成映射文件 map_file_01.txt 至/home/dm_mapfile 目录。
此处指定生成映射文件中的数据文件路径与数据库/dameng/data2/DAMENG/ 中的数据文件一致。若不指定,与备份集中的源数据库的数据文件路径一致。
DUMP BACKUPSET '/dameng/data/GZ/bak/db_bak_for_map_01' DATABASE '/dameng/data2/DAMENG/dm.ini' MAPPED FILE '/dameng/map_file_02.txt';
生成的映射文件内容如下:
/**************************************************************/
/*** Delete the unnecessary modified groups **/
/*** Modify the data_path or mirror_path only in one group **/
/**************************************************************/
/**=============================================================**/
/*[DAMENG_SYSTEM_FIL_0]*/
fil_id = 0
ts_id = 0
ts_name = SYSTEM
data_path = /dameng/data/DAMENG/SYSTEM.DBF
mirror_path =
/**=============================================================**/
/*[DAMENG_ROLL_FIL_0]*/
fil_id = 0
ts_id = 1
ts_name = ROLL
data_path = /dameng/data/DAMENG/ROLL.DBF
mirror_path =
/**=============================================================**/
/*[DAMENG_MAIN_FIL_0]*/
fil_id = 0
ts_id = 4
ts_name = MAIN
data_path = /dameng/data/DAMENG/MAIN.DBF
mirror_path =
/***************************** END ****************************/
如果需要恢复数据文件或镜像文件到指定路径,可手动编辑映射文件中表空间对应的data_path 属性。例如,要还原 MAIN 表空间中的数据文件 MAIN.DBF 到/home/dm_dbf路径下,修改组 DAMENG_MAIN_FIL_0 的内容如下:
/*[DAMENG_MAIN_FIL_0]*/
fil_id = 0
ts_id = 4
ts_name = MAIN
data_path = /home/dm_dbf/MAIN.DBF
3、指定映射文件还原。还原前可选择对备份文件进行校验。
这里为了把三个表空间映射到三个地方故把map_file_01.txt中的data_path 分别改为如下路径:
data_path = /dameng/data3/DAMENG/SYSTEM.DBF
data_path = /dameng/data4/DAMENG/ROLL.DBF
data_path = /dameng/data5/DAMENG/MAIN.DBF
4、数据库还原并更新db_magice。
RESTORE DATABASE '/dameng/data2/DAMENG/dm.ini' FROM BACKUPSET '/dameng/data/GZ/bak/db_bak_for_map_01' MAPPED FILE '/dameng/map_file_01.txt';
RECOVER DATABASE '/dameng/data2/DAMENG/dm.ini' UPDATE DB_MAGIC;
02
查看数据库文件的路径
启动数据库,就会看到同一个库的表空间分别再不同的目录下。