源环境: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