最近又給到一個oracle資料庫升級的需求,其實以前是做過升級測驗的,剛好現在遇到,要回去翻記錄了,所以記錄到這里,供自己查閱以及供需要的人了解,
注意:升級之前做好資料備份,條件允許情況下可以備份ORALCE_HOME目錄以防萬一!!!這樣恢復快
1.準備所需要的檔案:(這兩個包是database的安裝介質,升級也只需用到這兩個包)
檔案一:p13390677_112040_Linux-x86-64_1of7.zip
檔案二:p13390677_112040_Linux-x86-64_2of7.zip
2.查看是否回收站里面有物件,有的話清慷訓收站,或者直接清空
SQL> purge DBA_RECYCLEBIN;
3.關閉資料庫
SQL> shutdown immediate
4.關閉偵聽
[oracle@localhost ~]$ lsnrctl stop
5.創建指向 ORACER_HOME 目錄 11.2.0.4 ,原本的 ORACLE_HOME 是指向 $ORACLE_BASE/product/11 的
[oracle@localhost ~]$ mkdir -p $ORACLE_BASE/product/11.2.0.4
6.修改環境變數,建議修改組態檔,并 source 生效,這里只需要修改到 ORACLE_HOME 就可以了,當然直接用命令:
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4 也可以
[oracle@localhost ~]$ vi /home/oracle/.bash_profile
export ORACLE_BASE=/home/u01/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4
export ORACLE_SID=orcl
export ORACLE_OWNER=oracle
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
[oracle@localhost ~]$ source /home/oracle/.bash_profile
7.解壓準備好的兩個檔案,會得到一個 database 目錄,其實跟你安裝 oracle 時一樣,記得把權限給到 oracle 用戶和組
[root@localhost ~]# tar -zxvf /opt/p13390677_112040_Linux-x86-64_1of7.zip
[root@localhost ~]# tar -zxvf /opt/p13390677_112040_Linux-x86-64_2of7.zip
[root@localhost ~]# chown -R oracle:oracle /opt/database
8.進入 database 執行 runInstaller,一開始我認為執行 ./runInstaller 就可以了,但是該執行會報錯
DISPLAY not set. Please set the DISPLAY and try again.
為什么?那就設定下 DISPLAY,不過結果也是一樣,用 root 運行也一樣
[oracle@localhost database]$ DISPLAY=ip:0.0; export DISPLAY
[oracle@localhost database]$ xhost +
access control disabled, clients can connect from any host
那就老老實實去安裝了,跟安裝 oracle 的時候一樣靜默安裝,不過這里要把資訊補上
[oracle@localhost database]$ ./runInstaller -silent -debug -force -ignorePrereq DECLINE_SECURITY_UPDATES=true oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/home/oracle/oracle/oraInventory ORACLE_HOME=/home/u01/app/product/11.2.0.4 ORACLE_BASE=/home/u01/app oracle.install.db.InstallEdition=EE oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oracle
執行到 [OUISetupDriver.JobExecutorThread] [ 2018-05-12 23:59:36.276 CST ] [UnixSystem.getCSSConfigType:2463] configType=null 會出現假死狀態,請繼續等待!!!
出現以下字樣表示升級成功,
As a root user, execute the following script(s):
/home/u01/app/product/11.2.0.4/root.sh
Successfully Setup Software.
切換到root用戶執行腳本,
9.切換到 root 執行下腳本
# /home/u01/app/product/11.2.0.4/root.sh
10.修改/etc/oratab內容為最新位置:
#orcl:/home/u01/app/product/11.2.0:Y
orcl:/home/u01/app/product/11.2.0.4:Y
11.復制資料庫檔案到最新位置,并啟動監聽,使用 sqlplus 登錄
$ cp /home/u01/app/product/11.2.0/dbs/* /home/u01/app/product/11.2.0.4/dbs/
$ lsnrctl start
$ sqlplus /nolog
SQL> conn / as sysdba
12.更新資料庫檔案
SQL> startup upgrade
SQL> @ $ORACLE_HOME/rdbms/admin/catupgrd.sql
13.更新時間比較長,更新完成后,啟動資料庫
$ sqlplus / as sysdba
SQL> startup
SQL> select * from v$version;
14.如果有配置了 oracle 自啟動腳本,記得更改配置資訊!!
下面列出升級程序中我遇到過的錯誤:
錯誤一:步驟 8 執行 runInstaller 腳本一定要等到提示(即:Successfully Setup Software),否則要重新執行
錯誤二:步驟 12 更新資料庫檔案報錯,錯誤如下:
SQL>startup upgrade
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file “/home/u01/app/product/11.2.0.4/db_1/dbs/initorcl.ora”
解決方式如下:
a.查找pfile目錄位置:find /home/u01/app/ -name pfile 該目錄下可以找到檔案:init.ora.492019214646(具體看實際情況)
[root@localhost ~]# find /home/u01/app/ -name pfile
/home/u01/app/admin/orcl/pfile
b.將其復制到:/home/u01/app/product/11.2.0.4/dbs/目錄下并改名為:initorcl.ora
c.然后重新更新資料庫資料(重復步驟 12)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/62970.html
標籤:其他
