由于數(shù)據(jù)文件改變路徑相比升級(jí)的風(fēng)險(xiǎn)稍大一些,所以我們決定先開始移植數(shù)據(jù)文件,然后再對數(shù)據(jù)庫進(jìn)行升級(jí)操作。 一、數(shù)據(jù)文件移植到本機(jī)硬盤 1、將數(shù)據(jù)文件、控制文件、臨時(shí)數(shù)據(jù)文件和重做日志文件分別先列出來 select * from v$datafile; select * from v$controlfile; select * from v$tempfile; select * from v$logfile; 2、先建立臨時(shí)數(shù)據(jù)文件到本機(jī)硬盤上,路徑另定 create temporary tablespace "tmp" datafile 'path/tmp01.dbf' size 100m; 然后將該臨時(shí)表空間設(shè)置為系統(tǒng)默認(rèn)臨時(shí)表空間 alter database default temporary tablespace "tmp"; 然后刪除原本的磁陣上的臨時(shí)表空間 drop temporary tablespace "temp" including contents; 3、移動(dòng)數(shù)據(jù)文件和日志文件,首先在本機(jī)硬盤上建立相關(guān)目錄并賦予oracle寫權(quán)限,然后通過以下sql取出執(zhí)行語句 select 'alter database rename file '||name||'to '||name from v$logfile; select 'alter database rename file '||name||'to '||name from v$datafile; 將得到的語句to后面的路徑稍作修改 4、關(guān)閉數(shù)據(jù)庫,執(zhí)行數(shù)據(jù)路徑改變 shutdown immediate startup mount 然后將所有的數(shù)據(jù)文件和重做日志文件用操作系統(tǒng)命令移動(dòng)到本機(jī)硬盤新建的目錄中 完成后執(zhí)行類似命令: ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\DRSYS01.DBF' TO 'E:\ORCL\DRSYS01.DBF'; ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\INDX01.DBF' TO 'E:\ORCL\INDX01.DBF'; ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\REDO01.LOG' TO 'E:\ORCL\REDO01.LOG'; ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\REDO02.LOG' TO 'E:\ORCL\REDO02.LOG'; ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\REDO03.LOG' TO 'E:\ORCL\REDO03.LOG'; ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF' TO 'E:\ORCL\SYSTEM01.DBF'; ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\TOOLS01.DBF' TO 'E:\ORCL\TOOLS01.DBF'; ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\USERS01.DBF' TO 'E:\ORCL\USERS01.DBF'; ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\XDB01.DBF' TO 'E:\ORCL\XDB01.DBF'; ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF' TO 'E:\ORCL\UNDOTBS01.DBF'; 完成后啟動(dòng)數(shù)據(jù)庫 alter database open; 如無異常表示成功 5、移動(dòng)歸檔日志文件 首先查看歸檔日志文件歸檔目錄,并確認(rèn)目前只歸檔到一個(gè)目錄 show parameter log_archive_dest_1 在本機(jī)建立相應(yīng)的歸檔日志文件存放路徑并賦予oracle寫權(quán)限,然后修改歸檔日志文件存放路徑: alter system set log_archive_dest_1='location=path' scope=spfile; 然后關(guān)閉數(shù)據(jù) shutdown immediate 將歸檔日志下的所有文件移動(dòng)到新建的目錄中,然后重新啟動(dòng)數(shù)據(jù)庫 startup 啟動(dòng)后檢查是否能夠成功歸檔 alter system swtich logfile; 執(zhí)行此命令后系統(tǒng)應(yīng)該切換日志文件,并保存最新的歸檔文件到歸檔目錄中,如正常則表示成功 6、移動(dòng)控制文件 由于控制文件無法使用alter system 修改,所以必須將數(shù)據(jù)庫的 spfile導(dǎo)出pfile,在pfile中修改后在切換回spfile,具體方法如下: create pfile=path from spfile; 找到該pfile后修改控制文件路徑,并將控制文件移動(dòng)到修改的路徑中,接著關(guān)閉數(shù)據(jù)庫使用pfile啟動(dòng) shutdown immediate startup pfile=path 如無異常則檢查 select * from v$controlfile; 使用pfile重建spfile文件 create spfile from pfile=path; 關(guān)閉數(shù)據(jù)庫,使用默認(rèn)spfile啟動(dòng) shutdown immediate startup 無異常則表示成功,到這里為止所有的數(shù)據(jù)文件、臨時(shí)數(shù)據(jù)文件、控制文件和重做日志文件以及歸檔日志文件都已經(jīng)成功移植到本機(jī)硬盤上,接下來對數(shù)據(jù)庫進(jìn)行升級(jí)操作
二、數(shù)據(jù)庫升級(jí) 1、將已經(jīng)有的數(shù)據(jù)庫壓縮包解壓到硬盤上,使用vnc oracle用戶登錄到aix 2、關(guān)閉正在運(yùn)行的數(shù)據(jù)庫,關(guān)閉oracle監(jiān)聽進(jìn)程 shutdown immediate lsnrctl stop 3、開始升級(jí),運(yùn)行目錄中的./runInstaller,安裝時(shí)請注意路徑和OID名稱為OUIHome 4、按照提示切換root用戶運(yùn)行root.sh 5、升級(jí)成功后啟動(dòng)數(shù)據(jù)庫,運(yùn)行腳本 SQL> STARTUP MIGRATE SQL> SPOOL patch.log SQL> @?/rdbms/admin/catpatch.sql SQL> SPOOL OFF 運(yùn)行完畢后檢查日志文件有無錯(cuò)誤,如無錯(cuò)誤繼續(xù)下一步編譯無效對象 6、關(guān)閉數(shù)據(jù)庫,編譯無效對象 SQL> SHUTDOWN SQL> STARTUP SQL> @?/rdbms/admin/utlrp.sql 此時(shí)數(shù)據(jù)庫升級(jí)完畢,檢驗(yàn)有無異常,如無異常則表示數(shù)據(jù)庫成功升級(jí)至9208 |