oracle9i的rman全備在10g上的恢復

kidking2010發表於2012-03-29
轉自http://orax.blog.sohu.com/77962526.html

目的主要是為了測試遷移升級一個測試庫。

遷移的方法很多,比如遷移表空間、exp/imp等。由於測試庫不能停庫,並且表空間中包含的物化檢視一直再用,所以遷移表空間的方法不適合這裡。而exp/imp花的時間可能會很長。

要求:既不影響當前測試庫的正常應用,又能達到遷移效果。

所以打算直接在測試庫生成一個rman備份。然後,將9i的rman備份傳到10g的伺服器上做恢復。

平臺都是windows2003.

源庫:oracle9i,目標庫:10g

下面是遷移過程:

如果源庫沒有啟動歸檔模式,那麼需要啟動到歸檔模式。這是唯一需要停庫的一個地方。

假如不知道rman備份的例項名是什麼,我們可以這麼獲取:
命令:strings 控制檔案備份名|head
可看到第一行就是例項名稱:tjcs。

目標庫的操作如下:

C:\Documents and Settings\Administrator>oradim -new -sid tjcs
例項已建立。

C:\Documents and Settings\Administrator>set ORACLE_SID=tjcs

C:\Documents and Settings\Administrator>d:

D:\>cd d:\rman

D:\rman>rman target /

恢復管理器: Release 10.2.0.1.0 - Production on 星期一 1月 28 16:50:20 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

已連線到目標資料庫 (未啟動)

RMAN> startup nomount

啟動失敗: ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INITTJCS.ORA
'

在沒有引數檔案的情況下啟動 Oracle 例項以檢索 spfile
Oracle 例項已啟動

系統全域性區域總計     159383552 位元組

Fixed Size                     1247852 位元組
Variable Size                 54527380 位元組
Database Buffers             100663296 位元組
Redo Buffers                   2945024 位元組

RMAN> restore spfile from 'd:\rmanbak\BK_1_1_618168364';

啟動 restore 於 28-1月 -08
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=37 devtype=DISK

通道 ORA_DISK_1: 已找到的自動備份: d:\rmanbak\BK_1_1_618168364
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 01/28/2008 16:53:05 上) 失敗
ORA-19870: 讀取備份段 D:\RMANBAK\BK_3_1_618168380 時出錯
ORA-32014: 處理來自 SPFILE 恢復映像的引數 "hash_join_enabled" 時出錯
LRM-00101: unknown parameter name 'hash_join_enabled'

RMAN> exit


恢復管理器完成。

D:\rman>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 1月 28 16:53:27 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> conn /as sysdba
已連線。
SQL> create pfile='d:\rmanbak\tjcs.ora' from spfile;
create pfile='d:\rmanbak\tjcs.ora' from spfile
*
第 1 行出現錯誤:
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。


SQL> exit


====建立init.ora
tjcs.__db_cache_size=269098752
tjcs.__java_pool_size=4194304
tjcs.__large_pool_size=4194304
tjcs.__shared_pool_size=130686720
tjcs.__streams_pool_size=0
*.audit_file_dest='d:\rmanbak\tjcs\adump'
*.background_dump_dest='d:\rmanbak\tjcs\bdump'
*.compatible='10.2.0.1.0'
*.control_files='d:\rmanbak\tjcs\control01.ctl','d:\rmanbak\tjcs\control02.ctl','d:\rmanbak\tjcs\control03.ctl'
*.core_dump_dest='d:\rmanbak\tjcs\cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='tjcs'
*.db_recovery_file_dest='d:\rmanbak\tjcs\fla'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=tjcsXDB)'
*.job_queue_processes=10
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.pga_aggregate_target=203423744
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=612368384
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='d:\rmanbak\tjcs\udump'
========
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開

D:\rman>set ORACLE_SID=jyc

D:\rman>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 1月 28 16:54:32 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> conn /as sysdba
已連線。
SQL> create pfile='d:\rmanbak\tj.ora' from spfile;

檔案已建立。

SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開

D:\rman>set ORACLE_SID=tjcs

D:\rman>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 1月 28 16:56:49 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> create spfile from pfile='d:\rmanbak\tj.ora';
SP2-0640: 未連線
SQL> conn /as sysdba
已連線。
SQL> create spfile from pfile='d:\rmanbak\tj.ora';

檔案已建立。

SQL> shutdown immediate
ORA-01507: 未裝載資料庫


ORACLE 例程已經關閉。
SQL> startup nomount
ORA-02778: Name given for the log directory is invalid
SQL> host mkdir d:\rmanbak\tjcs

SQL> startup nomount
ORA-02778: Name given for the log directory is invalid
SQL> startup nomount
ORACLE 例程已經啟動。

Total System Global Area  612368384 bytes
Fixed Size                  1250452 bytes
Variable Size             167775084 bytes
Database Buffers          440401920 bytes
Redo Buffers                2940928 bytes
SQL> shutdown immediate
ORA-01507: ??????


ORACLE 例程已經關閉。
SQL> create spfile from pfile='d:\rmanbak\tj.ora';

檔案已建立。

SQL> startup nomount
ORA-01261: Parameter db_recovery_file_dest destination string cannot be trans
ed
ORA-01263: Name given for file destination directory is invalid
OSD-04018: ??????????????????????????
O/S-Error: (OS 2) ??????????????????????
SQL> startup nomount
ORACLE 例程已經啟動。

Total System Global Area  612368384 bytes
Fixed Size                  1250452 bytes
Variable Size             167775084 bytes
Database Buffers          440401920 bytes
Redo Buffers                2940928 bytes
SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開

D:\rman>rman target /

恢復管理器: Release 10.2.0.1.0 - Production on 星期一 1月 28 17:00:20 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

連線到目標資料庫: tjcs (未裝載)

RMAN> restore controlfile from 'd:\rmanbak\CNTRL_6_1_618168416';

啟動 restore 於 28-1月 -08
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK

通道 ORA_DISK_1: 正在復原控制檔案
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:03
輸出檔名=D:\RMANBAK\TJCS\CONTROL01.CTL
輸出檔名=D:\RMANBAK\TJCS\CONTROL02.CTL
輸出檔名=D:\RMANBAK\TJCS\CONTROL03.CTL
完成 restore 於 28-1月 -08

RMAN> alter database mount
2> ;

資料庫已裝載
釋放的通道: ORA_DISK_1

RMAN> restore database;

啟動 restore 於 28-1月 -08
啟動 implicit crosscheck backup 於 28-1月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
已交叉檢驗的 5 物件
完成 implicit crosscheck backup 於 28-1月 -08

啟動 implicit crosscheck copy 於 28-1月 -08
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 於 28-1月 -08

搜尋恢復區域中的所有檔案
正在編制檔案目錄...
沒有為檔案編制目錄

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00003恢復到D:\ORACLE9201\ORADATA\TJCS\CWMLITE01.DBF
正將資料檔案00005恢復到D:\ORACLE9201\ORADATA\TJCS\EXAMPLE01.DBF
正將資料檔案00006恢復到D:\ORACLE9201\ORADATA\TJCS\INDX01.DBF
正將資料檔案00009恢復到D:\ORACLE9201\ORADATA\TJCS\USERS01.DBF
正將資料檔案00010恢復到D:\ORACLE9201\ORADATA\TJCS\XDB01.DBF
通道 ORA_DISK_1: 正在讀取備份段 D:\RMANBAK\BK_1_1_618168364

通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00002恢復到D:\ORACLE9201\ORADATA\TJCS\UNDOTBS01.DBF
正將資料檔案00004恢復到D:\ORACLE9201\ORADATA\TJCS\DRSYS01.DBF
正將資料檔案00007恢復到D:\ORACLE9201\ORADATA\TJCS\ODM01.DBF
正將資料檔案00008恢復到D:\ORACLE9201\ORADATA\TJCS\TOOLS01.DBF
通道 ORA_DISK_1: 正在讀取備份段 D:\RMANBAK\BK_2_1_618168364

通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到D:\ORACLE9201\ORADATA\TJCS\SYSTEM01.DBF
通道 ORA_DISK_1: 正在讀取備份段 D:\RMANBAK\BK_3_1_618168380

故障轉移到上一個備份

建立資料檔案 fno = 1 名稱 = D:\ORACLE9201\ORADATA\TJCS\SYSTEM01.DBF
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 01/28/2008 17:02:13 上) 失敗
ORA-01180: 無法建立資料檔案 1
ORA-01110: 資料檔案 1: 'D:\ORACLE9201\ORADATA\TJCS\SYSTEM01.DBF'
RMAN> run{
2> set newname for datafile 1 to 'D:\rmanbak\tjcs\data\SYSTEM01.DBF';
3> set newname for datafile 2 to 'D:\rmanbak\tjcs\data\UNDOTBS01.DBF';
4> set newname for datafile 3 to 'D:\rmanbak\tjcs\data\CWMLITE01.DBF';
5> set newname for datafile 4 to 'D:\rmanbak\tjcs\data\DRSYS01.DBF';
6> set newname for datafile 5 to 'D:\rmanbak\tjcs\data\EXAMPLE01.DBF';
7> set newname for datafile 6 to 'D:\rmanbak\tjcs\data\INDX01.DBF';
8> set newname for datafile 7 to 'D:\rmanbak\tjcs\data\ODM01.DBF';
9> set newname for datafile 8 to 'D:\rmanbak\tjcs\data\TOOLS01.DBF';
10> set newname for datafile 9 to 'D:\rmanbak\tjcs\data\USERS01.DBF';
11> set newname for datafile 10 to 'D:\rmanbak\tjcs\data\XDB01.DBF';
12> restore database;
13> switch datafile all;
14> }

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

啟動 restore 於 28-1月 -08
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00003恢復到D:\RMANBAK\TJCS\DATA\CWMLITE01.DBF
正將資料檔案00005恢復到D:\RMANBAK\TJCS\DATA\EXAMPLE01.DBF
正將資料檔案00006恢復到D:\RMANBAK\TJCS\DATA\INDX01.DBF
正將資料檔案00009恢復到D:\RMANBAK\TJCS\DATA\USERS01.DBF
正將資料檔案00010恢復到D:\RMANBAK\TJCS\DATA\XDB01.DBF
通道 ORA_DISK_1: 正在讀取備份段 D:\RMANBAK\BK_1_1_618168364
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = D:\RMANBAK\BK_1_1_618168364 標記 = HOT_DB_BK_LEVEL0
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:16
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00002恢復到D:\RMANBAK\TJCS\DATA\UNDOTBS01.DBF
正將資料檔案00004恢復到D:\RMANBAK\TJCS\DATA\DRSYS01.DBF
正將資料檔案00007恢復到D:\RMANBAK\TJCS\DATA\ODM01.DBF
正將資料檔案00008恢復到D:\RMANBAK\TJCS\DATA\TOOLS01.DBF
通道 ORA_DISK_1: 正在讀取備份段 D:\RMANBAK\BK_2_1_618168364
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = D:\RMANBAK\BK_2_1_618168364 標記 = HOT_DB_BK_LEVEL0
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:25
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到D:\RMANBAK\TJCS\DATA\SYSTEM01.DBF
通道 ORA_DISK_1: 正在讀取備份段 D:\RMANBAK\BK_3_1_618168380
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = D:\RMANBAK\BK_3_1_618168380 標記 = HOT_DB_BK_LEVEL0
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:25
完成 restore 於 28-1月 -08

資料檔案 1 已轉換成資料檔案副本
輸入資料檔案副本 recid=11 stamp=645210804 檔名=D:\RMANBAK\TJCS\DATA\SYSTEM01.D
BF
資料檔案 2 已轉換成資料檔案副本
輸入資料檔案副本 recid=12 stamp=645210804 檔名=D:\RMANBAK\TJCS\DATA\UNDOTBS01.
DBF
資料檔案 3 已轉換成資料檔案副本
輸入資料檔案副本 recid=13 stamp=645210804 檔名=D:\RMANBAK\TJCS\DATA\CWMLITE01.
DBF
資料檔案 4 已轉換成資料檔案副本
輸入資料檔案副本 recid=14 stamp=645210804 檔名=D:\RMANBAK\TJCS\DATA\DRSYS01.DB
F
資料檔案 5 已轉換成資料檔案副本
輸入資料檔案副本 recid=15 stamp=645210804 檔名=D:\RMANBAK\TJCS\DATA\EXAMPLE01.
DBF
資料檔案 6 已轉換成資料檔案副本
輸入資料檔案副本 recid=16 stamp=645210804 檔名=D:\RMANBAK\TJCS\DATA\INDX01.DBF

資料檔案 7 已轉換成資料檔案副本
輸入資料檔案副本 recid=17 stamp=645210804 檔名=D:\RMANBAK\TJCS\DATA\ODM01.DBF
資料檔案 8 已轉換成資料檔案副本
輸入資料檔案副本 recid=18 stamp=645210805 檔名=D:\RMANBAK\TJCS\DATA\TOOLS01.DB
F
資料檔案 9 已轉換成資料檔案副本
輸入資料檔案副本 recid=19 stamp=645210805 檔名=D:\RMANBAK\TJCS\DATA\USERS01.DB
F
資料檔案 10 已轉換成資料檔案副本
輸入資料檔案副本 recid=20 stamp=645210805 檔名=D:\RMANBAK\TJCS\DATA\XDB01.DBF

RMAN> restore archivelog all;

啟動 restore 於 28-1月 -08
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在啟動到預設目標的存檔日誌恢復
通道 ORA_DISK_1: 正在恢復存檔日誌
存檔日誌執行緒 =1 序列=11
通道 ORA_DISK_1: 正在讀取備份段 D:\RMANBAK\AL_5_1_618168412
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = D:\RMANBAK\AL_5_1_618168412 標記 = TAG20070325T172651
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:01
通道 ORA_DISK_1: 正在啟動到預設目標的存檔日誌恢復
通道 ORA_DISK_1: 正在恢復存檔日誌
存檔日誌執行緒 =1 序列=10
通道 ORA_DISK_1: 正在讀取備份段 D:\RMANBAK\AL_4_1_618168412
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = D:\RMANBAK\AL_4_1_618168412 標記 = TAG20070325T172651
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:01
完成 restore 於 28-1月 -08

RMAN> recover database;

啟動 recover 於 28-1月 -08
使用通道 ORA_DISK_1

正在開始介質的恢復

存檔日誌執行緒 1 序列 10 已作為檔案 D:\RMANBAK\TJCS\FLA\TJCS\ARCHIVELOG\2008_01_28
\O1_MF_1_10_3SV765KP_.ARC 存在於磁碟上
存檔日誌執行緒 1 序列 11 已作為檔案 D:\RMANBAK\TJCS\FLA\TJCS\ARCHIVELOG\2008_01_28
\O1_MF_1_11_3SV7639D_.ARC 存在於磁碟上
存檔日誌檔名 =D:\RMANBAK\TJCS\FLA\TJCS\ARCHIVELOG\2008_01_28\O1_MF_1_10_3SV765
KP_.ARC 執行緒 =1 序列 =10
存檔日誌檔名 =D:\RMANBAK\TJCS\FLA\TJCS\ARCHIVELOG\2008_01_28\O1_MF_1_11_3SV763
9D_.ARC 執行緒 =1 序列 =11
無法找到存檔日誌
存檔日誌執行緒 =1 序列=12
RMAN> exit


恢復管理器完成。

D:\rman>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 1月 28 17:17:22 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> conn /as sysdba
已連線。
SQL> recover database using backup controlfile until cance;
ORA-00277: UNTIL 恢復標誌 CANCE 的非法選項


SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 180949 (在 03/25/2007 17:26:50 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
D:\RMANBAK\TJCS\FLA\TJCS\ARCHIVELOG\2008_01_28\O1_MF_1_12_%U_.ARC
ORA-00280: 更改 180949 (用於執行緒 1) 在序列 #12 中


指定日誌: {=suggested | filename | AUTO | CANCEL}
CANCEL;
ORA-00308: 無法開啟歸檔日誌 'CANCEL;'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。


指定日誌: {=suggested | filename | AUTO | CANCEL}
CANCEL
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 將出現如下錯誤
ORA-01190: 控制檔案或資料檔案 1 來自最後一個 RESETLOGS 之前
ORA-01110: 資料檔案 1: 'D:\RMANBAK\TJCS\DATA\SYSTEM01.DBF'


ORA-01112: 未啟動介質恢復


SQL> alter database open;
alter database open
*
第 1 行出現錯誤:
ORA-01589: 要開啟資料庫則必須使用 RESETLOGS 或 NORESETLOGS 選項


SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出現錯誤:
ORA-00344: 無法重新建立聯機日誌 'D:\ORACLE9201\ORADATA\TJCS\REDO01.LOG'
ORA-27040: 檔案建立錯誤, 無法建立檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 3) 系統找不到指定的路徑。


SQL> alter database rename datafile alter database rename file 'D:\ORACLE9201\OR
ADATA\TJCS\REDO01.LOG' to 'D:\rmanbak\tjcs\data\redo01.log';
alter database rename datafile alter database rename file 'D:\ORACLE9201\ORADATA
\TJCS\REDO01.LOG' to 'D:\rmanbak\tjcs\data\redo01.log'
                      *
第 1 行出現錯誤:
ORA-02231: ALTER DATABASE 選項缺失或無效


SQL> alter database rename file 'D:\ORACLE9201\ORADATA\TJCS\REDO02.LOG' to 'D:\r
manbak\tjcs\data\redo02.log';

資料庫已更改。

SQL> alter database rename file 'D:\ORACLE9201\ORADATA\TJCS\REDO03.LOG' to 'D:\r
manbak\tjcs\data\redo03.log';

資料庫已更改。

SQL>
SQL>
SQL>
SQL> alter database rename file 'D:\ORACLE9201\ORADATA\TJCS\REDO01.LOG' to 'D:\r
manbak\tjcs\data\redo01.log';

資料庫已更改。

SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出現錯誤:
ORA-01092: ORACLE 例項終止。強制斷開連線


SQL>

============日誌報錯==========
on Jan 28 17:21:16 2008
Setting recovery target incarnation to 2
Mon Jan 28 17:21:17 2008
Switching redo format version from 9.2.0.0.0 to 10.2.0.1.0 at change 180951
Mon Jan 28 17:21:18 2008
Assigning activation ID 1027976628 (0x3d45adb4)
LGWR: STARTING ARCH PROCESSES
ARC0 started with pid=16, OS id=3664
Mon Jan 28 17:21:18 2008
ARC0: Archival started
ARC1: Archival started
LGWR: STARTING ARCH PROCESSES COMPLETE
ARC1 started with pid=17, OS id=3372
Mon Jan 28 17:21:18 2008
Thread 1 opened at log sequence 2
  Current log# 1 seq# 2 mem# 0: D:\RMANBAK\TJCS\DATA\REDO01.LOG
Successful open of redo thread 1
Mon Jan 28 17:21:18 2008
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Mon Jan 28 17:21:18 2008
SMON: enabling cache recovery
Mon Jan 28 17:21:18 2008
ARC0: STARTING ARCH PROCESSES
Mon Jan 28 17:21:18 2008
ARC1: Becoming the 'no FAL' ARCH
ARC1: Becoming the 'no SRL' ARCH
Mon Jan 28 17:21:18 2008
ARC2: Archival started
ARC0: STARTING ARCH PROCESSES COMPLETE
ARC0: Becoming the heartbeat ARCH
ARC2 started with pid=18, OS id=2576
Mon Jan 28 17:21:19 2008
Errors in file d:\rmanbak\tjcs\udump\tjcs_ora_1280.trc:
ORA-00704: 載入程式程式失敗
ORA-39700: 必須用 UPGRADE 選項開啟資料庫

Mon Jan 28 17:21:19 2008
Error 704 happened during db open, shutting down database
USER: terminating instance due to error 704
Mon Jan 28 17:21:20 2008
Errors in file d:\rmanbak\tjcs\bdump\tjcs_dbw0_1296.trc:
ORA-00704: ????????

Mon Jan 28 17:21:20 2008
Errors in file d:\rmanbak\tjcs\bdump\tjcs_pmon_1016.trc:
ORA-00704: ????????

Mon Jan 28 17:21:21 2008
Errors in file d:\rmanbak\tjcs\bdump\tjcs_reco_1212.trc:
ORA-00704: ????????

Mon Jan 28 17:21:21 2008
Errors in file d:\rmanbak\tjcs\bdump\tjcs_smon_3932.trc:
ORA-00704: ????????

Mon Jan 28 17:21:21 2008
Errors in file d:\rmanbak\tjcs\bdump\tjcs_ckpt_3696.trc:
ORA-00704: ????????

Mon Jan 28 17:21:21 2008
Errors in file d:\rmanbak\tjcs\bdump\tjcs_lgwr_1360.trc:
ORA-00704: ????????

Mon Jan 28 17:21:23 2008
Errors in file d:\rmanbak\tjcs\bdump\tjcs_psp0_3448.trc:
ORA-00704: ????????

Mon Jan 28 17:21:23 2008
Errors in file d:\rmanbak\tjcs\bdump\tjcs_mman_3764.trc:
ORA-00704: ????????

Instance terminated by USER, pid = 1280
ORA-1092 signalled during: alter database open resetlogs...
=====================

需要更新資料字典,最後才能開啟。
更新資料字典前,需要做如下操作,否則下面的操作會報錯:
create tablespace SYSAUX datafile 'D:\rmanbak\tjcs\data\sysaux01.dbf'
     size 100M reuse
     extent management local
     segment space management auto
     online;
增加臨時表空間檔案:
alter tablespace temp add tempfile 'xxx' size 10M;
另外建議先禁用歸檔,一方面加快速度,另一方面避免後面操作執行HUNG。
alter database noarchivelog;
archive log list;
步驟如下:
SQL> STARTUP NOMOUNT
SQL> ALTER SYSTEM SET SHARED_POOL_SIZE='150M' SCOPE=spfile; 
SQL> ALTER SYSTEM SET JAVA_POOL_SIZE='150M' SCOPE=spfile; 
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL OFF
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> @?/rdbms/admin/utlrp.sql
SQL> select comp_id,status,version from dba_registry;
查詢失效物件的語句:
select * from dba_objects where WNER='GISTAR' AND status='INVALID';
以SYSDBA身份登入上,執行授權指令碼:
grant select on sys.v_$session to public;
SQL> @?/rdbms/admin/utlrp.sql
最後檢查:select * from v$Option;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23141985/viewspace-719785/,如需轉載,請註明出處,否則將追究法律責任。

相關文章