靜默升級oracle 11g (從11.2.0.1升級到11.2.0.4)
一個環境是oracle 11.2.0.1,一個環境是oracle 11.2.0.4,同樣的資料,同樣的sql,在兩個版本資料庫表現不一樣。於是,乾脆都統一為11.2.0.4。
但由於環境限制,只能用靜默的方法,把oracle 11.2.0.1 升級到 11.2.0.4。
不過,還好,根據網上的文件,升級過程還算順利。
下面,我記錄一下升級過程,供自己以後檢視,也供有需要的人參考。
1、11.2.0.1環境(待升級資料庫)
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production PL/SQL Release 11.2.0.1.0 - Production CORE11.2.0.4.0Production TNS for Linux: Version 11.2.0.1.0 - Production NLSRTL Version 11.2.0.1.0 - Production
[root@localhost ~]# su - oracle [oracle@localhost ~]$ cat .bash_profile export ORACLE_SID=orcl export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin alias sqlplus='rlwrap sqlplus'
2、升級前的準備工作
2.1、 備份資料庫
升級資料庫是一個有風險的過程,需要仔細規劃和慎重處理。首先要做資料庫的完全備份,備份的內容包括資料檔案,控制檔案,歸檔檔案,日誌檔案,引數檔案,密碼檔案等。可以備份一下整個ORACLE_HOME目錄,如果升級有問題,還可以還原回來。備份的方法可以使用dump資料泵,tar,rman等。
如:RMAN全備
[oracle@localhost ~]$ export ORACLE_SID=orcl [oracle@localhost ~]$ rman target / RMAN>backup database format '/home/oracle/rmanbak/df_%t_%s_%p.bak';
備份老的ORACLE_HOME和oraInventory
[oracle@localhost ~]$tar –cvfp product.tar.gz /u01/app/oracle/ [oracle@localhost ~]$tar –cvfp oraInventory.tar.gz /u01/app/oraInventory/
2.2、乾淨的關閉資料庫
SQL> shutdown immediate;
2.3、 關閉資料庫的監聽
在資料庫的升級中,會對資料庫的監聽檔案做重新的配置,建議正常的關閉監聽,如下:
[oracle@localhost ~]$ lsnrctl stop [oracle@localhost ~]$ netstat -an |grep 1521
2.4、 關閉OEM
在升級中需要關閉EM,
[oracle@localhost ~]$emctl stop dbconsole [oracle@localhost ~]$netstat -an |grep 1158
2.5、不 對資料庫的任何原有檔案做操作
本人在升級中,編輯資料庫的監聽檔案,導致配置監聽和EM錯誤,故不對資料庫的任何原有檔案做操作。
3、安裝oracle 11.2.0.4軟體包
把oracle 11.2.0.4的安裝包上傳到/home/oracle目錄下,解壓後得到database目錄。
[oracle@localhost ~]$ ls p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip [oracle@localhost ~]$ unzip p13390677_112040_Linux-x86-64_1of7.zip [oracle@localhost ~]$ unzip p13390677_112040_Linux-x86-64_2of7.zip [oracle@localhost ~]$ ls database
開始安裝資料庫軟體11.2.0.4。
[oracle@localhost ~]$ cd database [oracle@localhost ~]$./runInstaller -silent -debug -force -ignorePrereq \ DECLINE_SECURITY_UPDATES=true \ oracle.install.option=INSTALL_DB_SWONLY \ UNIX_GROUP_NAME=oinstall \ INVENTORY_LOCATION=/u01/app/oraInventory \ ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1 \ ORACLE_BASE=/u01/app/oracle \ oracle.install.db.InstallEdition=EE \ oracle.install.db.DBA_GROUP=dba \ oracle.install.db.OPER_GROUP=oinstall
說明:INVENTORY_LOCATION可以和老版本共用一個目錄。ORACLE_BASE和老版本保持一樣,ORACLE_HOME指向了一個新的目錄11.2.0.4/dbhome_1(以前是11.2.0/db_1)。
不過,這些目錄都是可以隨意指定,我上面做是隻是為了版本管控方便。
安裝過程大概需要15分鐘左右(根據機型配置時間也不同),安裝過程中有警告[WARNING] 時需要安裝一些i386 的包。檢視log安裝即可。
出現以下字樣表示升級成功。
As a root user, execute the following script(s): 1. /u01/oracle/app/product/11.2.0.4/dbhome_1/root.sh Successfully Setup Software.
切換到
root
使用者執行指令碼。
[root@localhost ~]# /u01/oracle/app/product/11.2.0.4/dbhome_1/root.sh
4、配置新環境變數,複製引數檔案和監聽檔案
4.1、配置新環境變數
[oracle@localhost ~]$ whoami oracle [oracle@localhost ~]$ cat .bash_profile export ORACLE_SID=orcl export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin alias sqlplus='rlwrap sqlplus'
上面看到,新環境變數和老環境變數相比,我只修改了一個引數:
新引數:ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1 老引數:ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
注意: 在10g以後,一般情況下環境變數中沒有必要設定LD_LIBRARY_PATH,但是一旦將ORACLE_HOME遷移到其他目錄,則環境變數中還需要新增這個變數。
source一下後,環境變數就指向新安裝的11.2.0.4位置了。
[oracle@localhost ~]$ source .bash_profile [oracle@localhost ~]$ env |grep ORA ORACLE_SID=orcl ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1
4.2、修改
/etc/oratab
內容為最新位置
[oracle@localhost ~]$ vim /etc/oratab orcl:/u01/app/oracle/product/11.2.0.4/db_1:N
4.3、 將引數檔案copy到新的目錄下
[oracle@localhost ~]$ cd /u01/app/oracle/product/11.2.0/db_1/dbs/ [oracle@localhost dbs]$ cp -a * /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/
4.4、 複製監聽TNS配置檔案到新的目錄下
[oracle@localhost admin]$ cd /u01/app/oracle/product/11.2.0/db_1/network/admin/ [oracle@localhost dbs]$ cp -a * /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin
4.5、啟動監聽
先修改新位置下的listener.ora裡面的路徑,然後啟動監聽。
[oracle@localhost admin]$ lsnrctl start
5、升級資料庫
要注意退出oracle使用者重新su - oracle下,然後sqlplus能看到11.2.0.4.0字樣才行。
[oracle@19_mysql-slave ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Mon Mar 30 12:10:30 2020 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to an idle instance. SQL> startup upgrade ORACLE instance started. Total System Global Area 1603411968 bytes Fixed Size 2253664 bytes Variable Size 1006636192 bytes Database Buffers 587202560 bytes Redo Buffers 7319552 bytes Database mounted. Database opened. SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql ---該指令碼會執行30分鐘左右
以上catupgrd.sql指令碼整整執行了30分鐘,執行完之後會shutdown immediate資料庫。這個時候我們重啟資料庫即可。
[oracle@localhost admin]$ sqlplus /nolog SQL> conn / as sysdba SQL> startup SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production
6、 執行 utlrp.sql 編譯失效物件
檢查無效物件:
SQL> select * from dba_objects where status !='VALID'; SQL> SELECT count(*) FROM dba_objects WHERE status='INVALID';
執行utlrp.sql編譯失效物件。
SQL> @?/rdbms/admin/utlrp
該指令碼耗時約為3分鐘左右。 至此資料庫已經升級完成。
最後,重啟資料庫沒有問題就是升級成功了。
7、更新資料庫服務指令碼
將/u01/app/oracle/product/11.2.0.4/dbhome_1/bin/
下的
dbstart
和
dbshut
,
ORACLE_HOME_LISTNER=$1
改為
$ORACLE_HOME
。
#ORACLE_HOME_LISTNER=$1 ORACLE_HOME_LISTNER=$ORACLE_HOME
8、 升級後的檢查確認
SQL> select status from v$instance; STATUS ------------ OPEN #注意,成功開啟資料庫後,這裡將是OPEN,而非OPEN MIGRATE
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production
9、升級成功後需重建EM(沒有EM可忽略該步)
手工建立EM資料庫:
####emca -repos drop [oracle@localhost admin]$ emca -reposdrop ####emca -repos create [oracle@localhost admin]$ emca -reposcreate ###emca -config dbcontrol db [oracle@localhost admin]$ emca-config dbcontrol db
參考連結:
1、 https://blog.csdn.net/jycjyc/article/details/89948192
2、
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28916011/viewspace-2683059/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle for windows 11.2.0.1升級到11.2.0.4OracleWindows
- 靜默升級oracle到10.2.0.4Oracle
- oracle從10.2.0.4升級到11.2.0.1的三種升級方法Oracle
- 圖形化升級單機oracle 11.2.0.1 到 11.2.0.4Oracle
- oracle版本升級:從11.2.0.1到11.2.0.3Oracle
- RAC升級11.2.0.1到11.2.0.4的實戰
- Oracle 11.2.0.1 升級到11.2.0.3Oracle
- ORACLE 11.2.0.1升級到11.2.0.3Oracle
- Oracle 11.2.0.1升級到11.2.0.3Oracle
- oracle資料庫升級11.2.0.3升級到11.2.0.4Oracle資料庫
- Oracle 11.2.0.4升級到12.2.0.1Oracle
- ORACLE11.2.0.1升級到11.2.0.3Oracle
- oracle rac 11.2.0.3 升級到11.2.0.4Oracle
- Oracle 11.2.0.1升級到11.2.0.4.171017Oracle
- 靜默升級oracle(文件)to 10.2.0.4 from 10.2.0.1Oracle
- 單機升級11.2.0.1到11.2.0.4的實戰__DBUA視窗
- oracle資料庫11.2.0.3升級到11.2.0.4Oracle資料庫
- 如何升級Oracle Grid Infrastructure和RAC從11.2.0.3到11.2.0.4?OracleASTStruct
- 靜默方式安裝、升級oracle(三): 升級資料庫軟體及資料庫Oracle資料庫
- 單機升級11.2.0.1到12.1.0.2的實戰_11.2.0.1不能直接升級到到12.1.0.2
- 探索Oracle之資料庫升級二 11.2.0.3升級到11.2.0.4完整步驟Oracle資料庫
- 靜默方式安裝、升級oracle(一): 安裝oracle軟體Oracle
- Oracle 10.2.0.5升級至11.2.0.4Oracle
- 靜默方式安裝、升級oracle(二): 建立資料庫Oracle資料庫
- mongodb單機從3.2升級到4.0.4升級MongoDB
- Windows升級到oracle 11g的異機物理升級文件(冷備)WindowsOracle
- Oracle 11g升級到12COracle
- ORACLE EXADATA升級—從11.2.3.1.0到11.2.3.3.0–(8)升級交換機Oracle
- ORACLE EXADATA升級—從11.2.3.1.0到11.2.3.3.0–(1)升級簡介Oracle
- 圖形化升級單機oracle 11.2.0.4 到 12.2.0.1Oracle
- Oracle RAC 10.2.0.5升級到11.2.0.4遇到的問題Oracle
- oracle 10 rac 升級 10.2.0.1升級到10.2.0.5Oracle
- ORACLE EXADATA升級—從11.2.3.1.0到11.2.3.3.0–(7)升級Bundle Patch 23Oracle
- Oracle從10g升級到11g詳細步驟Oracle
- ABP Framework 手動升級指南:從6.0.1升級到7.0.0Framework
- inux下靜默安裝,升級和刪除Oracle客戶端UXOracle客戶端
- Oracle:Oracle RAC 11.2.0.4 升級為 19cOracle
- oracle 升級到 11.2.0.2Oracle