資料庫的升級和降級[轉載wisdomone1 ]
一、 ORACLE9I升級到10G(zt)
一、 ORACLE9I升級到10G的簡要說明:
Win下Oracle9208如何升級到Oracle10.2.0.1
1、 關閉原9208資料庫,執行一個完全冷備。
2、 安裝ORACLE10g,選擇一個跟9208不同的Home,安裝的時候選擇不裝資料庫。
3、 以SYSDBA身份登陸到SQLPLUS,執行:
Sql>spool upgrade.info
Sql>@ oracle10G_HOMErdbmsadminutlu102i.sql
Sql>spool off
注意螢幕的輸出
4、在Tablespace欄提示有些表空間需要額外的空間:
Autoextend Additional space required:165mb.
查詢原原資料庫的空間大小和剩餘空間。
Sql>select tablespace_name,bytes from dba_data_files;
Sql>select tablespace_name,sum(bytes) from dba_free_space group by tablespace_name;
擴充套件提示需增加空間的表空間。
Sql>alter database tablespace system add datafile
‘d racleoradatatestsystem02.dbf’ size 200m;
Sql>alter database datafile
‘d racleoradatatestxdb01.dbf’ resize 50m’;
4、 拷貝9i的initsid.ora檔案到10gHomedatabase目錄下。
執行選單下的Database Upgrade Assistant,根據提示一步一步操作。如不能成功,則手工升級,依次執行以下順序。
5、 拷貝9i的密碼檔案pwdsid.ora到10gHomedatabase目錄下。
6、 拷貝9iHomenetworkadmin下的tnsname.ora、listerna.ora、sqlnet.ora到10GHomenetworkadmin目錄。
7、 根據upgrade.info的提示,修改10GHomedatabaseinitSid.ora引數檔案。
8、 關閉9I資料庫
9、 在命令列用cmd>oradim –delete –sid sid刪除WINDOWS服務下的例項。
10、 在命令列用cmd.>oradim –new –sid sid pfile=’path’建立新的例項。
11、 停止原9i的listerner服務
12、 用sysdba的身份登陸到sqlplus,以upgrade的方式啟動資料庫。
Startup upgrade
啟動時提示LRM-00116: ‘D:ORACLELOGSDB後跟’=’出現語法錯誤
ORA-01078:處理系統引數失敗
根據提示,修改10GHomedatabaseinitsid.ora,將utl_file_dir=d raclelogs
註釋掉。重新執行sql>startup upgrade成功。
13、 建立sysaux表空間。
Sql>create tablespace sysaux
Datafile ‘d racleoradatatestsysaux01.dbf’ size 500m
Extent management local
Segment space management auto
Online;
15、@d racle10.2rdbmsadmincatupgrd.sql;(此過程在我電腦花費約1個半小時)。
16、sql>shutdown immediate;
17、sql>startup
18、sql>@d racle10.2rdbmsadminutlrp.sql
To recompile any invalid application object
執行完畢後執行查詢所有重新編譯錯誤
Sql> select * from utl_recomp_errors;
19、啟動10G的listerner服務
測試,升級完畢。
二、 Oracle9i升級為10g及降級
DBUA 升級:
---------------------------------------------------------------------------------------
確保 /var/opt/oracle/oratab 中包括要升級的資料庫
在dbua第二步選中該資料庫
升級會要求增加sysaux表空間及資料檔案
選擇是否使用OEM管理,不選
預設安裝後會重新編譯無效物件
手工升級:
DBUA 升級:
---------------------------------------------------------------------------------------
確保 /var/opt/oracle/oratab 中包括要升級的資料庫
在dbua第二步選中該資料庫
升級會要求增加sysaux表空間及資料檔案
選擇是否使用OEM管理,不選
預設安裝後會重新編譯無效物件
手工升級:
---------------------------------------------------------------------------------------
1. 設定環境變數:
ORACLE_HOME
PATH
ORA_NLS10 --好像不需要
LD_LIBRARY_PATH
2. 拷貝pfile,spfile,pwdfile到10g的dbs目錄下
startup upgrade
3. 建立SYSAUX表空間:
CREATE TABLESPACE sysaux DATAFILE '/oracle/oradata2/upgrade/sysaux01.dbf'
SIZE 500M REUSE
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO
4. spool upgrade.log
@?/rdbms/admin/catupgrd
spool off
5. 通過下面指令碼檢視升級結果:
@?/rdbms/admin/utlu102s.sql
6. 編譯無效物件:
@?/rdbms/admin/utlrp
降級:
---------------------------------------------------------------------------------------
可以從10.2.0降到9.2
1. 確保compatible引數為9.2.0.0.0
2. startup downgrade
3. spool downgrade.log
@?/rdbms/admin/dwgrd
spool off
shutdown immeidate
4. 設定相關的環境變數,設定到9i的目錄:
ORACLE_HOME
PATH
LD_LIBRARY_PATH
5. startup migrate
spool reload.log
@?/rdbms/admin/catrelod
spool off
6. 重新編譯無效物件:
@?/rdbms/admin/utlrp
三、 Oracle升級(10.1.0.3->10.1.0.5)
今天做了10.1.0.3升級到10.1.0.5的升級測試,感覺挺簡單的!期間參考了readme文件.推薦大家多使用Oracle提供的官方文件,嘿嘿,以下是具體步驟:
一 準備並安裝升級包軟體
1 升級準備
1>從http://metalink.oracle.com上下載相應升級軟體包
2>設定環境變數:$ORACLE_HOME=oracle_home
$ORACLE_SID=sid
$export ORACLE_HOME ORACLE_SID
2 關閉資料庫(normal/immediate)
1>如果是RAC,則在所有的節點上關閉例項 $ORACLE_HOME/bin/srvctl stop database -d db_name
2>如果是ASM,先關閉所有ASM支援的資料庫再關閉ASM例項 $ORACLE_HOME/bin/srvctl stop asm -n node $ORACLE_HOME/bin/srvctl stop nodeapps -n node
3 關閉所有的程式、監聽以及CSS(Oracle Cluster Synchronization Service) deamon守護程式as root 使用者
#/etc/init.d/init.cssd stop
4 備份資料庫系統
5 更新安裝(互動式和非互動式:interactively or noninteractively)
1>互動模式(interactively)
1)用oracle賬號登陸
2)$ DISPLAY=local_host:0.0 ; export DISPLAY
3)進入patch產品目錄:$./runInstaller
4)如果已經將環境變數設定好,則Oracle更新包自動會找到更新來路
directory_path/stage/products.xml
RAC適用語法:$ ./runInstaller -updateNodeList "CLUSTER_NODES=node2, node1, node3" -local ORACLE_HOME=oracle_home_path
2>非互動模式(Noninteractively)
1)用oracle賬號登陸
2)編輯好response_file
3)$./runInstaller -silent -responseFile response_file
二 升級資料庫
upgrading Release10.1 to 10.1.0.5
Preupgrade:
1 check system tablespace size
ensure that there is at least 10MB of free space allocated to system tablespace
2 check xdb tablespace size
for rac,ensure that there is at lease 50MB of free space allocated to xdb tablespace
3 set shared_pool_size and jave_pool_size initialization parameters
1>start the database
SQL>startup
2>ensure db uses pfile
SQL>show parameter pfile;
3>determine the current values of these parameters
SQL>show parameter shared_pool_size
SQL>show parameter java_pool_size
SQL>ALTER SYSTEM SET SHARED_POOL_SIZE='150M' SCOPE=spfile; --if necessary,at least 150MB
SQL>ALTER SYSTEM SET JAVA_POOL_SIZE='150M' SCOPE=spfile; --if necessary,at least 150MB
SQL>shutdown immediate
upgrade:
1 login as oracle software owner user
2 For RAC installations, start node applications on each node of the cluster as follows:
$ srvctl start nodeapps -n nodename
3 If you are using ASM, start the ASM instance.
For single-instance installations, start the listener as follows:
$lsnrctl start
4 execute script
SQL> STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catpatch.sql --You may wait for a long time!
SQL> SPOOL OFF
If necessary, rerun the catpatch.sql script. after correcting any problems.
5 recompile db object
SQL>select count(*) from dba_objects where status='INVALID';
SQL>shutdown immediate
SQL>startup
SQL>@?/rdbms/admin/utlrp.sql
SQL>select count(*) from dba_objects where status='INVALID';
6 if you are using RMAN catalog,enter the following command
$rman catalog username/password@alias
RMAN>upgrade catalog;
OF curse,U can upgrade other object,like OCCI and so on.
四、 介紹幾種庫升級方案
第一種方案(用升級程式:dbua):
適合: 這種方案適宜於資料量比較大,適用大版本之間的升級,也可以用在支援直接升級的資料庫版本
方法: 例如用這種方案在原來的資料庫的機器上安裝10g的軟體,但不安裝10g的資料庫.安裝完10g的軟體後,執行10g的資料庫升級助手實用程式dbua,然後通過此升級嚮導完成9ig到10g的升級過程.升級過程中, dbua會自動的將一些資料庫的配置更改成適合10g的環境,如資料庫引數設定,記憶體配置,sql,pl/sql引擎等和資料庫管理,操作相關的軟體的版本也會自動升級到10g;此方法有一定風險,建議在升級之前要備份資料庫
優點: (1)對於資料規模比較大的資料庫而言,用這種方法升級是最快速的. (2) 保留原有資料庫的物理結構(如資料檔案,重做日誌檔案)和邏輯結構(表空間,使用者,系統許可權設定等),無需重新規劃資料庫.
缺點: 這種方案存在一定的風險.雖然,10g的資料庫升級助手實用程式dbua總體而言比較穩定,但是萬一升級失敗的話,原來的資料庫就有可能使用不了,某些功能丟失,或執行不正常.所以在正式升級之前一定要先在測試庫上先演練一下升級的所有過程,確認無誤後才能在生產庫上執行升級
dbua支援直接升級的資料庫版本:
l oracle 8版本8.0.6
l oracle 8i版本8.1.7
l oracle 9i版本9.0.1
l oracle 9i版本9.2.0
第二種方案(用匯入/匯出工具:imp/exp、或exp/imp transport tablespace):
適合: 這種方案適合資料量不是很大,中小規模的資料庫升級,建議適用於大版本之間的升級,如8i升級到9i,9i升級到10g;也可以用到支援可直接安裝的小版本,如果有的話,呵呵
方法: 先把舊的資料庫的資料匯出來(建議按“使用者方案”匯出,不用SYS使用者匯出,因為新的大版本資料庫要多些內容,如果用SYS匯入的話容易報錯),然後新安裝10g軟體和新建一個10g的資料庫,建立好邏輯結構(使用者、表空間、DBLINK、系統許可權等)和物理結構(各資料檔案等),然後將舊庫的dump檔案匯入至新庫;注意在新庫使用者賦予許可權的時候(針對升級到10g),其中connect resource 不包括建立檢視的許可權
優點: (1)用這種方法最大的優點是安全. 我們新建一個10g的資料庫並匯入舊庫的資料以後可能保留原來的資料庫,直到應用系統在新的資料庫執行無誤後才刪去原有的資料庫.如果有問題,還可以切換回原來的資料庫,升級的風險非常小.
(2)可以優化資料庫結構.如果原來的資料庫結構不好,如很多使用者的資料儲存在system表空間,或者是表空間碎片比較多,通過匯出再匯入到一個數庫後,這些資料庫的結構能夠得到優化.
缺點:(1)升級的時間可能相對會長一些,因為匯入匯出的速度並不是很快 (2)因為得新建一個資料庫,所以得重新規劃資料庫的結構,如資料檔案,表空間等.
(3)因為要建新庫,可能會增加一些硬體投資
第三種方案(升級包)
適合:庫資料量大小均可,建議適用於小版本之間的升級
方法:下載相應的升級包,按照安裝說明安裝即可,建議安裝 前要備份好資料庫
優點:不需要重新建立資料庫,保留資料庫原有的模型,邏輯結構和物理結構缺點:需要按照相應的安裝說明來升級,源升級包資料需要另外下載,對於某些版本的升級安裝說明比較繁瑣
五、Oracle 8i升級Oracle 10G
Oracle 8.1.7.4升級Oracle 10.2
Oracle提供了升級工具讓使用者可以將Database從低版本升級到更高的版本,8i可以直接升級到10G,但 8i必須是8.1.7.4(含)以上的版本,8.1.7.0是不被支援的.Oracle提供了兩種升級方法,用嚮導升級和手工升級,以下分別介紹本人升級的過程.
一. 嚮導升級
1. 首先,應該備份8i 資料庫(但然,你也可以選擇不備份)
2. 安裝Oracle 10G在和8i不同的Home下,選擇不要建立資料庫
3. 以SysDBA的身份,登入到8i資料庫,
SQL>Spool info.log
SQL>@ORACLE_HOME/rdbms/admin/utlu102i.sql
SQL>Spool off
4. 檢視 info.log,按照LOG上的提示,將RBS修改到符合要求,其它警告可以不去修改,在Upgrade的過程中系統會提示,點確定會由升級程式修改.
5. 在開始找到Oracle選單的資料庫升級工具,點選執行
6. 根據嚮導提示升級(因為之前已經備份,升級時選擇已經備份,不再需要升級程式幫你備份),在確認視窗,要選擇確定,繼續,是等肯定按鈕以完成升級動作.
如果你的初始化引數正確,一般情況會順利結束升級動作,如果過程中出現錯誤,就要將DB復原,用手動升級了.我在升級一臺資料庫時曾遇到Ora-00064錯誤而終至升級.
二,手動升級
1. 首先,應該備份8i 資料庫(但然,你也可以選擇不備份)
2. 安裝Oracle 10G在和8i不同的Home下,選擇不要建立資料庫
3. 以SysDBA的身份,登入到8i資料庫,
SQL>Spool info.log
SQL>@ORACLE_HOME/rdbms/admin/utlu102i.sql
SQL>Spool off
4. Copy 8i的初始化引數檔案到 10G Home正確的位置
5. Copy密碼檔案到 10G Home正確的位置
6. 根據info.log的提示,修改10G下的初始化引數檔案,info.log會建議哪些引數修改為哪個值,那些引數已經不再需要,請刪除之,那些引數是新的,需要增加,請按照建議修改
7. 根據info.log修改redo log, Datafile, Rbs等的大小
8. Shutdown 8i資料庫
9. 停止原資料庫的服務
10. 用oradim刪除 Sid
11. 用你修改過的引數檔案建立新的資料庫例項(oradim)
12. 以SysDBA的身份進入Sqlplus,將資料庫啟動到upgrade狀態
SQL>startup upgrade
我在啟動時遇到Ora-00064的錯誤,修改初始化引數檔案,修改過數個引數後重新執行成功,因此不知到是那個引數起了效果,大家可以試一下.
13. Create tablespace SySaux
CREATE TABLESPACE sysaux DATAFILE 'sysaux01.dbf'
SIZE 500M REUSE
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO
ONLINE;
14. SQL>@C racleproduct10.2.0db_1RDBMSADMINcatupgrd.sql
15. SQL>@C racleproduct10.2.0db_1RDBMSADMINutlu102s.sql
16. SQL>shutdown immediate
17. SQL>startup
18. SQL>@C racleproduct10.2.0db_1RDBMSADMINolstrig.sql
19. SQL>@C racleproduct10.2.0db_1RDBMSADMINutlrp.sql
20. 停止8i的監聽器服務
21. 建立 10G的監聽器服務
升級完成
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8334342/viewspace-366157/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 升級失敗後,資料庫降級方案(flashback database)資料庫Database
- rac 升級crs 升級資料庫軟體,升級資料庫資料庫
- 資料庫升級和工具資料庫
- Oracle資料庫升級(轉發)Oracle資料庫
- A Oracle Data Guard Broker 升級和降級Oracle
- 資料庫升級資料庫
- ♀♀資料庫升級♀♀資料庫
- 資料庫 升級/降級 相容性矩陣 (文件 ID 1577660.1)資料庫矩陣
- selenium的升級與降級
- 資料庫升級之-Dataguard滾動升級資料庫
- Oracle 資料庫升級Oracle資料庫
- DC 升級/降級事件處理事件
- 資料庫的升級和打補丁的研究資料庫
- 資料庫升級之-XTTS資料庫TTS
- 資料庫升級報錯資料庫
- oracle資料庫升級11.2.0.3升級到11.2.0.4Oracle資料庫
- 資料庫升級之-資料泵資料庫
- 資料庫的升級及遷移資料庫
- ZT 升級和移植Oracle資料庫方法若干Oracle資料庫
- Android版本升級同時Sqlite資料庫的升級及之前資料的保留AndroidSQLite資料庫
- nginx 版本升級 轉載Nginx
- 靜默方式安裝、升級oracle(三): 升級資料庫軟體及資料庫Oracle資料庫
- android資料庫如何進行版本升級?架構之資料庫框架升級Android資料庫架構框架
- Oracle 資料庫 升級為 RACOracle資料庫
- (轉)手工升級資料庫10.1到10.2資料庫
- 資料庫的建立、遷移、升級和流等方面資料庫
- 升級到iOS 18、降級回iOS 17iOS
- 他奶奶個腿的資料庫升級資料庫
- 我的PB程式資料庫升級程式資料庫
- iOS CoreData (二) 版本升級和資料庫遷移iOS資料庫
- 如何從資料庫 11.2 降級至之前的版本資料庫
- 探索Oracle之資料庫升級一 升級補丁修復概述Oracle資料庫
- RAC 資料庫升級 10.2.0.1.0 到 10.2.0.2.0 之升級catalog資料庫
- Oracle資料庫升級與補丁Oracle資料庫
- 資料庫升級後‘PLAN_TABLE資料庫
- Oracle 資料庫升級注意事項Oracle資料庫
- RAC資料庫升級到10.2.0.5資料庫
- 谷歌升級雲端資料庫Cloud SQL谷歌資料庫CloudSQL