天天看点

【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