除過基本的檢查,從Metalink上下載了最新的psu,和公司的資深dba確認后,提供了給了客戶。這樣數(shù)據(jù)庫就算是升級到11.2.0.2.10
主要有以下的步驟 :
1.new ORACLE_HOME(11g), old ORACLE_HOME (10g)
--這些需要提前提供給客戶,作為基本的約定
2.install oracle software 11.2.0.2.0 on production
--總共有7個DB,時間很緊,所以準備要充分
3.apply DB patch additional if needed
--patch詳細信息參見 Note:16056267.8
11.2.0.2.10 (Apr 2013) Database Patch Set Update (PSU) Patch:16056267
4.init parameter tuning
--這個也是必需的,主要有三個方面
11g里面可能過期的參數(shù),如user_dump......
11g里面新增加的參數(shù),如diag....,有些需要考慮是否調(diào)優(yōu)。
10g里面調(diào)優(yōu)的隱含參數(shù)是否需要保留...
5.OS kernel tuning
--系統(tǒng)級的調(diào)優(yōu)也是必須的。需要找專門的team來提供意見。
6.PET and Production compare
--準生產(chǎn)環(huán)境的準備,需要做足前期的測試工作。
7.confirm details with App team if have any concern.
--對于升級過程中的部分問題,如果不能確認,需要找開發(fā)或者其他的team來協(xié)調(diào)。
8.full backup or cold backup
--這個取決于具體的環(huán)境實施方案,保證充足的備份很重要,生產(chǎn)系統(tǒng)做cold backup應(yīng)該很懸了。
9.check if there are crontab running or scheduled.
--這個需要提前考慮,一般的項目都會有系統(tǒng)監(jiān)控,要保證在升級過程中排除不必要的影響。如果有g(shù)oldengate同步之類的,也需要提前協(xié)調(diào)好,保證不會影響。
10.check if all database components are valid
--可以使用如下的sql來
select substr(comp_name,1,40) comp_name, status,
substr(version,1,10) version from dba_registry
order by comp_name; --組建都應(yīng)該是valid狀態(tài)。
11.check if all objects are valid
--檢查object狀態(tài)也應(yīng)該是valid.
if there are component or objects invalid, need to use utlrp.sql
to recompile
12.check if duplicate objects owned by SYS and SYSTEM Schema
--從dba_objects里查詢,保證sys,system下的沒有重復(fù)的object,,以下是期望的結(jié)果,如果有其他的,需要查看metalink文檔來處理。Note,1030426.6
OBJECT_NAME OBJECT_TYPE
------------------------------ -------------------
AQ$_SCHEDULES TABLE
AQ$_SCHEDULES_PRIMARY INDEX
DBMS_REPCAT_AUTH PACKAGE
DBMS_REPCAT_AUTH PACKAGE BODY
13.disable custom triggers
--為了排除trigger的導(dǎo)致的ddl影響,建議還是disable custom trigger.
14.Copy Pre-upgrade Information script. to a local folder
--建一個臨時的文件夾,把升級所需的腳本拷貝過去。如腳本rdbms/admin/utlu112i.sql 需要從11ghome下rdbms/admin提前拷貝過去。
15.Run Pre-upgrade Information Tool on target database (10g)
--spool一下,做升級前的檢查工作。
sqlplus / as sysdba
spool pre_upgrade_info.log
@utlu112i.sql
spool off
16.Check the output of the Pre-Upgrade Information Tool
--這里需要注意warning信息,清空recyclebin,保證timezone file必須是v4,要不升級100%失敗。還有要注意部分參數(shù),根據(jù)提示進行修改。
17.backup /etc/oratab,tnsnames.ora,listener.ora sqlnet.ora,password file, pfile,spfile,profile
--備份必要的文件,作為rollback的備份。
18.Copy Network files to 11g Home and modify the home in listener
--拷貝tnsnames.ora,listener.ora到11g home的對應(yīng)目錄下。
19.Copy password file to 11g Home
--拷貝密碼文件
20.Prepare a separate .bash_profile to set 11g environment variables
--profile文件也需要做相應(yīng)修改。
21.Collect dictionary stats
--使用如下的包來
EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
22.Stop Listener services of the target database.
--停掉監(jiān)聽,開始升級
23.Shutdown the target database (10g)
--down掉數(shù)據(jù)庫,清空緩存,這樣起來以后跑腳本會排出很多干擾,速度也快一些。
24.Set working environment to 11g ORACLE_HOME. Make sure multiple ORACLE HOMEs are not in the PATH variable.
25.Copy spfile to 11g home.
26.stop source(10g) DB,Start the db in nomount,mount mode, and make necessary changes/adjustments in spfile with scope=spfile.
--這一步,需要修改compatible參數(shù),調(diào)節(jié)一些參數(shù)。(之前的步驟進行參數(shù)調(diào)優(yōu)的時候準備好的)
最后create spfile from pfile;
27.Shutdown and startup the db in upgrade mode.
--啟動數(shù)據(jù)庫,使用spfile,
--startup upgrade
28.Run upgrade script. Exit the session after upgrade.
--這個是最關(guān)鍵的腳本,運行時間也會長一些。,腳本運行完成后,會自動shutfdown immediate
spool upgrade11g2.log
@?/rdbms/admin/catupgrd.sql
Spool off
Exit
29.Verify the log for errors. Ignore “table or view not found” errors
--如果有部分錯誤,需要檢查,如果有些錯誤如memory issue 不能忽略,需要重新運行腳本
30.Startup the db in normal mode and run post upgrade information tool. Verify the status of each db component and address the failures.
--啟動數(shù)據(jù)庫,運行如下的腳本。
spool post_upgrade_info.txt
@?/rdbms/admin/utlu112s.sql
Spool
31.Continue upgrade (new in 11g)
--繼續(xù)執(zhí)行腳本,屬于post upgrade腳本。
Spool upgrade11g2.log
@?/rdbms/admin/catuppst.sql
Spool off
32.Recompile invalid objects
33.enable custom triggers
--enable之前disable的trigger
34.update /etc/oratab with 11g home
--更改該配置,在某些應(yīng)用中會用到。
35.rename spfile/pfile from 10g home
--保證10g的參數(shù)不被使用,保證不會有錯誤的操作導(dǎo)致不必要的麻煩。
36.Start Listener services of the target database with 11g HOME.
--確定后啟動監(jiān)聽。
37.DBA sanity check(check if mv is able to refresh,db components are valid,check if there are ORA erros from logs)
--DBA先做一些簡單的sanity test.保證環(huán)境交給客戶之前不會有基本的錯誤。
38.Check the connectivity from client
--然后從客戶端進行測試,連接是否正常。
39.Backup of DB after upgrade
--進行必要的備份。
40.upgrade rman catalog if necessary
--如果使用rman做備份恢復(fù),需要升級catalog
41.change crontab
2013-0714:補充:升級完之后 升級timezone file.