<b>通常要遷移一個資料庫,我們會使用</b>
<b>1 冷備份,整個資料庫遷移,</b>
<b>2 rman duplicate 功能進行複制到本機或者複制到異機,</b>
<b>前面兩種都必須先在目标庫上安裝軟體。這裡測試另外一種方法:</b><b>對于單執行個體資料庫,複制整個oracle 10g 資料庫到另一個伺服器,relink 之後可以重新使用。。</b>
<b>檢視源庫資料庫庫檔案在$oracle_base 目錄下的分布:</b>
oracle@yangdb1:<b>/opt/oracle</b>><b>ll</b>
總計 36
drwxrwx--- 3 oracle oinstall 4096 08-06 16:22 <b>10.2.0</b>
drwxr-x--- 4 oracle oinstall 4096 08-17 17:10 <b>admin</b>
drwxrwxr-x 3 oracle oinstall 4096 08-06 15:14 <b>extapi</b>
drwxr-x--- 4 oracle oinstall 4096 08-17 18:32 <b>flash_recovery_area</b>
drwxr-x--- 4 oracle oinstall 4096 08-17 17:10 <b>oradata</b>
drwxrwxr-x 6 oracle oinstall 4096 08-06 16:28 <b>orainventory</b>
drwxr-xr-x 2 oracle oinstall 4096 08-17 17:49 <b>pri_arch</b>
drwxr-xr-x 2 oracle oinstall 4096 08-11 13:27 std_arch -standby檔案,不用
drwxr-xr-x 2 oracle oinstall 4096 08-17 18:31 yqldb_arch-上一個實驗檔案,不用
<b>将資料庫檔案拷貝到目标庫:記得将目标庫設定和源庫一樣的結構,否則會報錯!</b>
oracle@yangdb1:/opt/oracle>scp -r flash_recovery_area 10.250.7.230:/opt/oracle
oracle@yangdb1:/opt/oracle>scp -r admin 10.250.7.230:/opt/oracle
oracle@yangdb1:/opt/oracle>scp -r orainventory 10.250.7.230:/opt/oracle
oracle@yangdb1:/opt/oracle>scp -r 10.2.0 10.250.7.230:/opt/oracle
oracle@yangdb1:/opt/oracle>scp -r oradata/orcl/ 10.250.7.230:/opt/oracle/oradata/
<b>在目标庫上:</b>
oracle@yangdb2:/opt/oracle/10.2.0/orcl/rdbms/lib>ls
bbed dmwdm.o hormc.o kciwcx.o kprnts.o ksnnni.o libodm10.a maxmem.o s0exudrv.o shou.o ssbbded.o sulmain.o xsyeolap.o
bifile.bbd dumpsga.o hormd.o kcsm.o kprwts.o ksnnt2.o libperfsrv10.a nmliblist s0impdrv.o sjsex.o sskfeded.o tg4pwd.o zsmsdrv.o
config.c env_rdbms.mk horm.o kfod.o kpucb.o ktd.o libqsmashr.a opimai.o s0kudbv.o skfedpt.o sskfoded.o tstshm.o
config.o genezi.o hormt.o kgupc.o kpudfo.o kxmnsd.o libskgxns.a osh.o s0kuzr.o skfodpt.o sskrmed.o ttcoerr.o
cursize.o genksms.o hout.o kgutc.o kpundf.o kxmwsd.o libskgxpd.a par.bbd s0kvpf.o skrmpt.o sskrned.o ttcsoi.o
dbfsize.o hoaoci.o hsxaora.o kkpoban.o ksms.o kzlnlbac.o libskgxpu.a rfscom.o s0udexp.o skrnpt.o sskrsed.o wpspldrv.o
defopt.o hoat.o ins_rdbms.mk kkxntp.o ksnkcs.o libdbtools10.a libxdb.a rfsd.o s0udimp.o skrspt.o ssoraed.o xaondy.o
dmndm.o hoax.o jox.o kkxwtp.o ksnkkpo.o libdsga10.a log.bbd rfsin.o sbbdpt.o sllfls.o sstrced.o xaonsl.o
dmndmse.o homts.o joxoff.o kopc.o ksnktd.o libknlopt.a mapsga.o rfsxc.o shorm.o srfsd.o strcpt.o xsnoolap.o
<b>先執行relink oracle,然後make -f ins_rdbms.mk install</b>
oracle@yangdb2:/opt/oracle/10.2.0/orcl/rdbms/lib>relink oracle
oracle@yangdb2:/opt/oracle/10.2.0/orcl/rdbms/lib>make -f ins_rdbms.mk install
<b>驗證:</b>
sql> startup
oracle instance started.
total system global area 1224736768 bytes
fixed size 2020384 bytes
variable size 318770144 bytes
database buffers 889192448 bytes
redo buffers 14753792 bytes
database mounted.
database opened.
sql> conn yang/yang
connected.
sql> col tname for a15
sql> col tabtype for a10
sql> select * from tab;
tname tabtype clusterid
--------------- ---------- ----------
yangb table
yangtab table
yangobj table
yanguser table
objects table
a table
6 rows selected.
sql> select instance_name from v$instance;
instance_name
------------------------------------
orcl
===========遇到的問題============
<b>第一次啟動的時候遇到ora-00205:</b>
sql> startup pfile='/tmp/initorcl.ora';
<b>ora-00205: error in identifying control file, check alert log for more info</b>
檢查告警日志檔案,發現如下錯誤:
errors in file /opt/oracle/admin/orcl/udump/orcl_ora_705.trc:
ora-00313: open failed for members of log group 1 of thread 1
ora-00312: online log 1 thread 1: '/opt/oracle/oradata/orcl/redo01.log'
ora-27037: unable to obtain file status
<b>linux-x86_64 error: 2: no such file or directory</b>
additional information: 3
sat aug 6 16:29:12 2011
ora-00313: open failed for members of log group 2 of thread 1
ora-00312: online log 2 thread 1: '/opt/oracle/oradata/orcl/redo02.log'
linux-x86_64 error: 2: no such file or directory
提示沒有對應的檔案或者目錄。
檢視資料檔案,發現拷貝的時候是拷貝到/opt/oracle/ 目錄下的而不是/opt/oracle/orcl 目錄下,将資料檔案移動到orcl目錄下
oracle@yangdb2:/opt/oracle/oradata>ls
control01.ctl control02.ctl control03.ctl example01.dbf redo01.log redo02.log redo03.log sysaux01.dbf system01.dbf temp01.dbf undotbs01.dbf users01.dbf
oracle@yangdb2:/opt/oracle/oradata>mkdir orcl
oracle@yangdb2:/opt/oracle/oradata>mv *.ctl orcl
oracle@yangdb2:/opt/oracle/oradata>mv *.dbf orcl
orcl redo01.log redo02.log redo03.log
oracle@yangdb2:/opt/oracle/oradata>mv *.log orcl
oracle@yangdb2:/opt/oracle/oradata>cd orcl
oracle@yangdb2:/opt/oracle/oradata>ll
oracle@yangdb2:/opt/oracle/oradata/orcl>ll
總計 1541672
-rw-r----- 1 oracle oinstall 7061504 08-17 21:40 control01.ctl
-rw-r----- 1 oracle oinstall 7061504 08-17 21:40 control02.ctl
-rw-r----- 1 oracle oinstall 7061504 08-17 21:40 control03.ctl
-rw-r----- 1 oracle oinstall 104865792 08-17 21:09 example01.dbf
-rw-r----- 1 oracle oinstall 52429312 08-17 21:09 redo01.log
-rw-r----- 1 oracle oinstall 52429312 08-17 21:40 redo02.log
-rw-r----- 1 oracle oinstall 52429312 08-17 21:09 redo03.log
-rw-r----- 1 oracle oinstall 335552512 08-17 21:38 sysaux01.dbf
-rw-r----- 1 oracle oinstall 513810432 08-17 21:39 system01.dbf
-rw-r----- 1 oracle oinstall 20979712 08-17 20:59 temp01.dbf
-rw-r----- 1 oracle oinstall 41951232 08-17 21:39 undotbs01.dbf
-rw-r----- 1 oracle oinstall 381427712 08-17 21:09 users01.dbf
<b>再次驗證,ok!!</b>
oracle@yangdb2:/opt/oracle/oradata/orcl>export orcle_sid=orcl
oracle@yangdb2:/opt/oracle/oradata/orcl>sqlplus /nolog
sql*plus: release 10.2.0.1.0 - production on wed aug 17 21:09:19 2011
copyright (c) 1982, 2005, oracle. all rights reserved.
sql> conn /as sysdba