一、背景:
因xx国产库厂商要做测试,需要恢复一个oracle数据库测试环境,通过爱数一体机去恢复,
爱数的相关工程师说恢复的测试环境需要和生产环境的opatch的补丁号必须一致,还需要oracle_sid 也必须一致,才能进行恢复。
二、实现方法
2.1 备份生产环境的$ORACLE_HOME
tar -pzcvf 0712.tar.gz $ORACLE_HOME
2.2 传入到目标端并解压
[root@dbn01 ~]# ll
total 4725860
-rw-r--r-- 1 root root 155214192 Jul 10 10:59 0710.tar.gz
-rw-------. 1 root root 32560 Nov 2 2022 anaconda-ks.cfg
-rwxr-xr-x 1 root root 4588568576 Jul 6 16:57 CentOS-7.6-x86_64-DVD-1810.iso
-rw-r--r-- 1 root root 195388 Oct 24 2022 compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
drwxr-xr-x 2 root root 4096 Jul 6 17:47 Desktop
drwxr-xr-x 2 root root 4096 Jul 6 17:47 Documents
drwxr-xr-x 2 root root 4096 Jul 6 17:47 Downloads
-rw-r----- 1 root root 14 Nov 4 2022 logs_openibd
drwxr-xr-x 2 root root 4096 Jul 6 17:47 Music
drwxr-xr-x 6 root root 4096 Sep 23 2022 ob-loader-dumper-3.3.0-SNAPSHOT
-rwxr-x--- 1 root root 94867417 Feb 4 09:33 ob-loader-dumper-3.3.0-SNAPSHOT.zip
-rw-------. 1 root root 27870 Nov 2 2022 original-ks.cfg
drwxr-xr-x 2 root root 4096 Jul 6 17:47 Pictures
drwxr-xr-x 2 root root 4096 Jul 6 17:47 Public
-rw-r--r-- 1 root root 313139 Jul 24 2020 rlwrap-0.43.tar.gz
drwxr-xr-x 2 root root 4096 Jul 6 17:47 Templates
--ws--S--- 1 root root 21 Jul 10 10:58 test.txt
drwxr-xr-x 9 root root 4096 Jan 5 2023 t-oceanbase-antman
drwxr-xr-x 2 root root 4096 Jul 6 17:47 Videos
[root@dbn01 ~]# chown oracle:oinstall 0710.tar.gz
[root@dbn01 ~]# su - oracle
Last login: Mon Jul 10 10:59:32 CST 2023 on pts/13
[oracle@dbn01:/home/oracle]$
[oracle@dbn01:/home/oracle]$ cd $ORACLE_HOME
[oracle@dbn01:/oracle/app/oracle/product/19.0.0/db_1]$ cd ..
[oracle@dbn01:/oracle/app/oracle/product/19.0.0]$ ll
total 4
drwxrwxr-x 70 oracle oinstall 4096 Jul 10 09:23 db_1
[oracle@dbn01:/oracle/app/oracle/product/19.0.0]$ mv db_1 db_1.bak
[oracle@dbn01:/oracle/app/oracle/product/19.0.0]$ ll
total 4
drwxrwxr-x 70 oracle oinstall 4096 Jul 10 09:23 db_1.bak
[oracle@dbn01:/oracle/app/oracle/product/19.0.0]$ mkdir db_1
[oracle@dbn01:/oracle/app/oracle/product/19.0.0]$ ll
total 8
drwxr-xr-x 2 oracle oinstall 4096 Jul 10 11:03 db_1
drwxrwxr-x 70 oracle oinstall 4096 Jul 10 09:23 db_1.bak
[oracle@dbn01:/oracle/app/oracle/product/19.0.0]$ cd db_1
2.3 因为恢复的是哥单机环境,生产环境是rac(Rac On / Rac Off - Relinking the RAC Option (Doc ID 211177.1))
[oracle@dbn01:/oracle/app/oracle/product/19.0.0/db_1]$ cd $ORACLE_HOME/rdbms/lib
[oracle@dbn01:/oracle/app/oracle/product/19.0.0/db_1/rdbms/lib]$ make -f ins_rdbms.mk rac_off
rm -f /oracle/app/oracle/product/19.0.0/db_1/lib/libskgxp19.so
cp /oracle/app/oracle/product/19.0.0/db_1/lib//libskgxpg.so /oracle/app/oracle/product/19.0.0/db_1/lib/libskgxp19.so
rm -f /oracle/app/oracle/product/19.0.0/db_1/lib/libskgxn2.so
cp /oracle/app/oracle/product/19.0.0/db_1/lib//libskgxns.so \
/oracle/app/oracle/product/19.0.0/db_1/lib/libskgxn2.so
/usr/bin/ar d /oracle/app/oracle/product/19.0.0/db_1/rdbms/lib/libknlopt.a kcsm.o
/usr/bin/ar cr /oracle/app/oracle/product/19.0.0/db_1/rdbms/lib/libknlopt.a /oracle/app/oracle/product/19.0.0/db_1/rdbms/lib/ksnkcs.o
[oracle@dbn01:/oracle/app/oracle/product/19.0.0/db_1/rdbms/lib]$ make -f ins_rdbms.mk ioracle
chmod 755 /oracle/app/oracle/product/19.0.0/db_1/bin
- Linking Oracle
rm -f /oracle/app/oracle/product/19.0.0/db_1/rdbms/lib/oracle
/oracle/app/oracle/product/19.0.0/db_1/bin/orald -o /oracle/app/oracle/product/19.0.0/db_1/rdbms/lib/oracle -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/app/oracle/product/19.0.0/db_1/rdbms/lib/ -L/oracle/app/oracle/product/19.0.0/db_1/lib/ -L/oracle/app/oracle/product/19.0.0/db_1/lib/stubs/ -Wl,-E /oracle/app/oracle/product/19.0.0/db_1/rdbms/lib/opimai.o /oracle/app/oracle/product/19.0.0/db_1/rdbms/lib/ssoraed.o /oracle/app/oracle/product/19.0.0/db_1/rdbms/lib/ttcsoi.o -Wl,--whole-archive -lperfsrv19 -Wl,--no-whole-archive /oracle/app/oracle/product/19.0.0/db_1/lib/nautab.o /oracle/app/oracle/product/19.0.0/db_1/lib/naeet.o /oracle/app/oracle/product/19.0.0/db_1/lib/naect.o /oracle/app/oracle/product/19.0.0/db_1/lib/naedhs.o /oracle/app/oracle/product/19.0.0/db_1/rdbms/lib/config.o -ldmext -lserver19 -lodm19 -lofs -lcell19 -lnnet19 -lskgxp19 -lsnls19 -lnls19 -lcore19 -lsnls19 -lnls19 -lcore19 -lsnls19 -lnls19 -lxml19 -lcore19 -lunls19 -lsnls19 -lnls19 -lcore19 -lnls19 -lclient19 -lvsnst19 -lcommon19 -lgeneric19 -lknlopt -loraolap19 -lskjcx19 -lslax19 -lpls19 -lrt -lplp19 -ldmext -lserver19 -lclient19 -lvsnst19 -lcommon19 -lgeneric19 `if [ -f /oracle/app/oracle/product/19.0.0/db_1/lib/libavserver19.a ] ; then echo "-lavserver19" ; else echo "-lavstub19"; fi` `if [ -f /oracle/app/oracle/product/19.0.0/db_1/lib/libavclient19.a ] ; then echo "-lavclient19" ; fi` -lknlopt -lslax19 -lpls19 -lrt -lplp19 -ljavavm19 -lserver19 -lwwg `cat /oracle/app/oracle/product/19.0.0/db_1/lib/ldflags` -lncrypt19 -lnsgr19 -lnzjs19 -ln19 -lnl19 -lngsmshd19 -lnro19 `cat /oracle/app/oracle/product/19.0.0/db_1/lib/ldflags` -lncrypt19 -lnsgr19 -lnzjs19 -ln19 -lnl19 -lngsmshd19 -lnnzst19 -lzt19 -lztkg19 -lmm -lsnls19 -lnls19 -lcore19 -lsnls19 -lnls19 -lcore19 -lsnls19 -lnls19 -lxml19 -lcore19 -lunls19 -lsnls19 -lnls19 -lcore19 -lnls19 -lztkg19 `cat /oracle/app/oracle/product/19.0.0/db_1/lib/ldflags` -lncrypt19 -lnsgr19 -lnzjs19 -ln19 -lnl19 -lngsmshd19 -lnro19 `cat /oracle/app/oracle/product/19.0.0/db_1/lib/ldflags` -lncrypt19 -lnsgr19 -lnzjs19 -ln19 -lnl19 -lngsmshd19 -lnnzst19 -lzt19 -lztkg19 -lsnls19 -lnls19 -lcore19 -lsnls19 -lnls19 -lcore19 -lsnls19 -lnls19 -lxml19 -lcore19 -lunls19 -lsnls19 -lnls19 -lcore19 -lnls19 `if /usr/bin/ar tv /oracle/app/oracle/product/19.0.0/db_1/rdbms/lib/libknlopt.a | grep "kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo19 -lserver19"; fi` -L/oracle/app/oracle/product/19.0.0/db_1/ctx/lib/ -lctxc19 -lctx19 -lzx19 -lgx19 -lctx19 -lzx19 -lgx19 -lclscest19 -loevm -lclsra19 -ldbcfg19 -lhasgen19 -lskgxn2 -lnnzst19 -lzt19 -lxml19 -lgeneric19 -locr19 -locrb19 -locrutl19 -lhasgen19 -lskgxn2 -lnnzst19 -lzt19 -lxml19 -lgeneric19 -lgeneric19 -lorazip -loraz -llzopro5 -lorabz2 -lorazstd -loralz4 -lipp_z -lipp_bz2 -lippdc -lipps -lippcore -lippcp -lsnls19 -lnls19 -lcore19 -lsnls19 -lnls19 -lcore19 -lsnls19 -lnls19 -lxml19 -lcore19 -lunls19 -lsnls19 -lnls19 -lcore19 -lnls19 -lsnls19 -lunls19 -lsnls19 -lnls19 -lcore19 -lsnls19 -lnls19 -lcore19 -lsnls19 -lnls19 -lxml19 -lcore19 -lunls19 -lsnls19 -lnls19 -lcore19 -lnls19 -lasmclnt19 -lcommon19 -lcore19 -ledtn19 -laio -lons -lmql1 -lipc1 -lfthread19 `cat /oracle/app/oracle/product/19.0.0/db_1/lib/sysliblist` -Wl,-rpath,/oracle/app/oracle/product/19.0.0/db_1/lib -lm `cat /oracle/app/oracle/product/19.0.0/db_1/lib/sysliblist` -ldl -lm -L/oracle/app/oracle/product/19.0.0/db_1/lib `test -x /usr/bin/hugeedit -a -r /usr/lib64/libhugetlbfs.so && test -r /oracle/app/oracle/product/19.0.0/db_1/rdbms/lib/shugetlbfs.o && echo -Wl,-zcommon-page-size=2097152 -Wl,-zmax-page-size=2097152 -lhugetlbfs`
rm -f /oracle/app/oracle/product/19.0.0/db_1/bin/oracle
mv /oracle/app/oracle/product/19.0.0/db_1/rdbms/lib/oracle /oracle/app/oracle/product/19.0.0/db_1/bin/oracle
chmod 6751 /oracle/app/oracle/product/19.0.0/db_1/bin/oracle
(if [ ! -f /oracle/app/oracle/product/19.0.0/db_1/bin/crsd.bin ]; then \
getcrshome="/oracle/app/oracle/product/19.0.0/db_1/srvm/admin/getcrshome" ; \
if [ -f "$getcrshome" ]; then \
crshome="`$getcrshome`"; \
if [ -n "$crshome" ]; then \
if [ $crshome != /oracle/app/oracle/product/19.0.0/db_1 ]; then \
oracle="/oracle/app/oracle/product/19.0.0/db_1/bin/oracle"; \
$crshome/bin/setasmgidwrap oracle_binary_path=$oracle; \
fi \
fi \
fi \
fi\
);
[oracle@dbn01:/oracle/app/oracle/product/19.0.0/db_1/rdbms/lib]$
2.4 启动数据库
[oracle@dbn01:/oracle/app/oracle/product/19.0.0/db_1/rdbms/lib]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jul 10 12:34:14 2023
Version 19.9.0.0.0
Copyright (c) 1982, 2020, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATADG/PRIBILLB/PARAMETERFILE/spfile.792.1088730917'
ORA-17503: ksfdopn:10 Failed to open file +DATADG/PRIBILLB/PARAMETERFILE/spfile.792.1088730917
ORA-29701: unable to connect to Cluster Synchronization Service
SQL>
SQL>
原因是从生产复制过来的pfile起的,需要指定老的pfile文件
2.5用老的pfile文件启动
le@dbn01:/oracle/app/oracle/product/19.0.0/db_1/dbs]$ cp ../../db_1.bak/dbs/spfilebillb1.ora ./
[oracle@dbn01:/oracle/app/oracle/product/19.0.0/db_1/dbs]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jul 10 12:40:56 2023
Version 19.9.0.0.0
Copyright (c) 1982, 2020, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 2.4320E+11 bytes
Fixed Size 30147920 bytes
Variable Size 2.9528E+10 bytes
Database Buffers 2.1314E+11 bytes
Redo Buffers 506720256 bytes
Database mounted.
Database opened.
SQL>
2.6 验证补丁和生产一致
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




