源环境:192.168.100.149

目标环境:192.168.100.34  

前提:安装与源库相同的版本的据库软件,正常停止目标数据库: 如: systemctl stop DmServiceDMSERVER.service

1 挂载源的数据文件所在路径到目标端:

在目标环境操作:

例如:sudo mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,timeo=600 192.168.100.149:/pool/dbs/192.168.100.149/c7DM149 /home/dmdba/mnt/


2 确认挂载恢复的目标路径及相关内容:

例如:

[root@c7DM34 ~]# ls -rtlh /home/dmdba/mnt/target/

总用量 135M

drwxr-xr-x 2 root nfsnobody    2 9月  20 10:37 HMAIN

-rw-r--r-- 1 root nfsnobody 480M 9月  20 10:37 MAIN.DBF

-rw-r--r-- 1 root nfsnobody 128M 9月  20 10:37 TestT.dbf

-rw-r--r-- 1 root nfsnobody 128M 9月  20 10:37 TestT02.dbf

-rw-r--r-- 1 root nfsnobody  633 9月  20 10:37 dm_service.prikey

-rw-r--r-- 1 root nfsnobody    0 9月  20 10:38 dmarch.ini

drwxr-xr-x 2 root nfsnobody    2 9月  20 10:38 trace

-rw-r--r-- 1 root nfsnobody   12 9月  20 10:38 rep_conflict.log

-rw-r--r-- 1 root nfsnobody 1.0G 9月  20 11:20 TEMP.DBF

-rw-r--r-- 1 root nfsnobody  82M 9月  20 11:25 SYSTEM.DBF

-rw-r--r-- 1 root nfsnobody 128M 9月  20 11:25 ROLL.DBF


3 更改dm.ini 文件,确认ctl文件及路径:

如:

cat [root@c7DM34 ~]# cat /data/dmdata/DAMENG/dm.ini | grep PATH    

               CTL_PATH                        = /data/dmdata/DAMENG/dm.ctl     #ctl file path

               CTL_BAK_PATH                    = /data/dmdata/DAMENG/ctl_bak    #dm.ctl backup path

               SYSTEM_PATH                     = /data/dmdata/DAMENG            #system path

               CONFIG_PATH                     = /data/dmdata/DAMENG            #config path

               TEMP_PATH                       = /data/dmdata/DAMENG            #temporary file path


#需要更改的值为 :SYSTEM_PATH,SYSTEM_PATH,CONFIG_PATH,需要查看的值为:CTL_PATH

更改后的结果:

[root@c7DM34 ~]# cat /data/dmdata/DAMENG/dm.ini | grep PATH      

               CTL_PATH                        = /data/dmdata/DAMENG/dm.ctl     #ctl file path

               CTL_BAK_PATH                    = /data/dmdata/DAMENG/ctl_bak    #dm.ctl backup path

               SYSTEM_PATH                     = /home/dmdba/mnt/target            #system path

               CONFIG_PATH                     = /home/dmdba/mnt/target            #config path

               TEMP_PATH                       = /home/dmdba/mnt/target            #temporary file path


4 更改ctl文件内容:

4.1 转换为txt:

$dmctlcvt c2t /data/dmdata/DAMENG/dm.ctl /data/dmdata/DAMENG/dm.txt

4.2 更改dm.txt 文件内容:

打开:

vi /data/dmdata/DAMENG/dm.txt    

更改:

%s%/data/dmdata/DAMENG%/home/dmdba/mnt/target%g #将所有的相关路径都替换成挂载点相关路径下;


查看一下完成结果:

[dmdba@c7DM34 mnt]$ cat /data/dmdata/DAMENG/dm.txt | grep target

fil_path=/home/dmdba/mnt/target/SYSTEM.DBF

fil_path=/home/dmdba/mnt/target/ROLL.DBF

fil_path=/home/dmdba/mnt/target/MAIN.DBF

fil_path=/home/dmdba/mnt/target/TestT.dbf

fil_path=/home/dmdba/mnt/target/TestT02.dbf

htspath=/home/dmdba/mnt/target/HMAIN


4.3 转换这txt文件:

mv /data/dmdata/DAMENG/dm.ctl  /data/dmdata/DAMENG/dm.ctl.init #先备份原文件

dmctlcvt TYPE=2 SRC=/data/dmdata/DAMENG/dm.txt DEST=/data/dmdata/DAMENG/dm.ctl


5 启动服务:


systemctl start DmServiceDMSERVER.service

查挂载结果:

[dmdba@c7DM34 mnt]$ disql

disql V8

用户名:sysdba


服务器[LOCALHOST:5236]:处于普通打开状态

登录使用时间 : 6.881(ms)

SQL> select file_name from dba_data_files;


行号     FILE_NAME                          

---------- ----------------------------------

1          /home/dmdba/mnt/target/SYSTEM.DBF

2          /home/dmdba/mnt/target/TestT02.dbf

3          /home/dmdba/mnt/target/TestT.dbf

4          /home/dmdba/mnt/target/MAIN.DBF

5          /home/dmdba/mnt/target/TEMP.DBF

6          /home/dmdba/mnt/target/ROLL.DBF