天天看點

【ORACLE】relink oracle 10g 資料庫

<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>&gt;<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&gt;scp -r flash_recovery_area 10.250.7.230:/opt/oracle

oracle@yangdb1:/opt/oracle&gt;scp -r admin               10.250.7.230:/opt/oracle

oracle@yangdb1:/opt/oracle&gt;scp -r orainventory        10.250.7.230:/opt/oracle

oracle@yangdb1:/opt/oracle&gt;scp -r 10.2.0              10.250.7.230:/opt/oracle

oracle@yangdb1:/opt/oracle&gt;scp -r oradata/orcl/       10.250.7.230:/opt/oracle/oradata/

<b>在目标庫上:</b>

oracle@yangdb2:/opt/oracle/10.2.0/orcl/rdbms/lib&gt;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&gt;relink oracle

oracle@yangdb2:/opt/oracle/10.2.0/orcl/rdbms/lib&gt;make -f ins_rdbms.mk install

<b>驗證:</b>

sql&gt; 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&gt; conn yang/yang

connected.

sql&gt; col tname for a15

sql&gt; col tabtype for a10

sql&gt; select * from tab;

tname           tabtype     clusterid

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

yangb           table

yangtab         table

yangobj         table

yanguser        table

objects         table

a               table

6 rows selected.

sql&gt; select instance_name from v$instance;

instance_name

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

orcl

===========遇到的問題============

<b>第一次啟動的時候遇到ora-00205:</b>

sql&gt; 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&gt;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&gt;mkdir orcl

oracle@yangdb2:/opt/oracle/oradata&gt;mv *.ctl orcl

oracle@yangdb2:/opt/oracle/oradata&gt;mv *.dbf orcl

orcl  redo01.log  redo02.log  redo03.log

oracle@yangdb2:/opt/oracle/oradata&gt;mv *.log orcl

oracle@yangdb2:/opt/oracle/oradata&gt;cd orcl

oracle@yangdb2:/opt/oracle/oradata&gt;ll

oracle@yangdb2:/opt/oracle/oradata/orcl&gt;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&gt;export orcle_sid=orcl

oracle@yangdb2:/opt/oracle/oradata/orcl&gt;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&gt; conn /as sysdba