熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

數據庫備份與恢復測試(6)

2022-06-13   來源: Oracle 

  [測試] 數據庫在非歸檔模式數據庫MOUNT數據文件丟失有表空間備份

  RMAN> backup tablespace users;

  啟動 backup 於
分配的通道: ORA_DISK_
通道 ORA_DISK_: sid= devtype=DISK
通道 ORA_DISK_: 正在啟動 full 數據文件備份集
通道 ORA_DISK_: 正在指定備份集中的數據文件
RMAN: ===========================================================
RMAN: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN: ===========================================================
RMAN: failure of backup command on ORA_DISK_ channel at // :

ORA: 無法按 NOARCHIVELOG 模式備份或復制活動文件

  RMAN> backup database include current controlfile;

  啟動 backup 於
使用通道 ORA_DISK_
通道 ORA_DISK_: 正在啟動 full 數據文件備份集
通道 ORA_DISK_: 正在指定備份集中的數據文件
在備份集中包含當前的 SPFILE
備份集中包括當前控制文件
RMAN: ===========================================================
RMAN: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN: ===========================================================
RMAN: failure of backup command on ORA_DISK_ channel at // ::

ORA: 無法按 NOARCHIVELOG 模式備份或復制活動文件

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果是shutdown abort那麼數據需要恢復
此時在mount下表空間數據是不完整的所以無法備份表空間
同樣也不能備份整個數據庫因為他不是一致性的數據庫
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  RMAN> restore tablespace users;

  啟動 restore 於

  使用通道 ORA_DISK_
通道 ORA_DISK_: 正在開始恢復數據文件備份集
通道 ORA_DISK_: 正在指定從備份集恢復的數據文件
正將數據文件恢復到C:\ORACLE\ORADATA\TESTDB\USERSDBF
通道 ORA_DISK_: 已恢復備份段
段 handle=C:\ORACLE\ORA\DATABASE\AGECGNM__ tag=TAGT params=N
LL
通道 ORA_DISK_: 恢復完成
完成 restore 於

  RMAN>

  RMAN> recover tablespace users;

  啟動 recover 於
使用通道 ORA_DISK_

  正在開始介質的恢復
完成介質的恢復

  完成 recover 於

  RMAN> alter database open;

  數據庫已打開

  [測試] 數據庫在歸檔模式控制文件損壞控制文件有備份使用RMAN恢復

SQL> startup
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size              bytes
Database Buffers           bytes
Redo Buffers                 bytes
ORA: ???????C:\oracle\ora\DATABASE\PWDtestdbORA

  SQL> alter database open;

  數據庫已更改

  SQL> create table arch (status varchar()) tablespace users;

  表已創建

  SQL> alter system switch logfile;

  系統已更改

  SQL> insert into arch select ok from dba_objects;

  已創建

  SQL> commit;

  提交完成

  RMAN> backup database ;

  啟動 backup 於
分配的通道: ORA_DISK_
通道 ORA_DISK_: sid= devtype=DISK
通道 ORA_DISK_: 正在啟動 full 數據文件備份集
通道 ORA_DISK_: 正在指定備份集中的數據文件
在備份集中包含當前的 SPFILE
備份集中包括當前控制文件
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\SYSTEMDBF
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\INDXDBF
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\USERSDBF
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\TOOLSDBF
通道 ORA_DISK_: 正在啟動段
通道 ORA_DISK_: 已完成段
段 handle=C:\ORACLE\ORA\DATABASE\GECMF__ comment=NONE
通道 ORA_DISK_: 備份集已完成 經過時間:::
完成 backup 於

  RMAN> copy CURRENT CONTROLFILE TO c:\cfcpy;

  啟動 copy 於
使用通道 ORA_DISK_
通道 ORA_DISK_: 已復制當前的控制文件
輸出文件名=C:\CFCPY
完成 copy 於

  SQL> select count(*) from arch;

  COUNT(*)

     

  SQL> insert into arch select * from arch;

  已創建

  SQL> /

  已創建

  SQL> /

  已創建

  SQL> /

  已創建

  SQL> commit;

  提交完成

  SQL> alter system switch logfile;

  系統已更改

  SQL> insert into arch select no from dba_objects;

  已創建

  SQL> commit;

  提交完成

  SQL> shutdown
數據庫已經關閉
已經卸載數據庫
ORACLE 例程已經關閉

  模擬控制文件損壞c:\cfcpy

  還原備份的控制文件
SQL> startup mount
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size              bytes
Database Buffers           bytes
Redo Buffers                 bytes
數據庫裝載完畢
SQL> recover database using backup controlfile;
ORA: 更改 (在 // :: 生成) 對於線程 是必需的
ORA: 建議: C:\ORACLE\ORADATA\TESTDB\ARCHIVE\_DBF
ORA: 更改 對於線程 是按序列 # 進行的

  指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

  ORA: 更改 (在 // :: 生成) 對於線程 是必需的
ORA: 建議: C:\ORACLE\ORADATA\TESTDB\ARCHIVE\_DBF
ORA: 更改 對於線程 是按序列 # 進行的
ORA: 此恢復不再需要日志文件 C:\ORACLE\ORADATA\TESTDB\ARCHIVE\_DBF

  指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

  ORA: 無法打開存檔日志 C:\ORACLE\ORADATA\TESTDB\ARCHIVE\_DBF
ORA: 無法打開文件
OSD: 無法打開文件
O/SError: (OS ) 系統找不到指定的文件

  SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR 位於第 行:
ORA: 文件 需要介質恢復
ORA: 數據文件 : C:\ORACLE\ORADATA\TESTDB\SYSTEMDBF

  SQL> recover database using backup controlfile until cancel;
ORA: 更改 (在 // :: 生成) 對於線程 是必需的
ORA: 建議: C:\ORACLE\ORADATA\TESTDB\ARCHIVE\_DBF
ORA: 更改 對於線程 是按序列 # 進行的

  指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介質恢復已取消
SQL> alter database open resetlogs;

  數據庫已更改

  SQL> archive log list
數據庫日志模式            存檔模式
自動存檔             啟用
存檔終點            C:\oracle\oradata\testdb\archive
最早的概要日志序列    
下一個存檔日志序列  
當前日志序列          

  SQL> select count(*)status from arch group by status;

  COUNT(*) ST

     ok
~~~~~~~~~~~~~~~~~~    
在線日志的數據丟失
使用trace可以不丟失數據

  [測試] 數據庫在非歸檔模式數據文件損壞使用RMAN恢復

  [測試] 數據庫在非歸檔模式數據文件損壞使用RMAN恢復
#         該文件的日志全部還保留在非當前在線日志和當前在線日志中

SQL> startup mount
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size              bytes
Database Buffers           bytes
Redo Buffers                 bytes
數據庫裝載完畢
SQL> alter database noarchivelog;

  數據庫已更改

  C:\Documents and Settings\lifengfang>rman nocatalog target sys/sunsdl

  恢復管理器: 版本 Production

  Copyright (c) Oracle Corporation  All rights reserved

  連接到目標數據庫: TESTDB (DBID=)
正在使用目標數據庫控制文件替代恢復目錄

  RMAN> backup format c:\noarch_%s%pbak database;

  啟動 backup 於
分配的通道: ORA_DISK_
通道 ORA_DISK_: sid= devtype=DISK
通道 ORA_DISK_: 正在啟動 full 數據文件備份集
通道 ORA_DISK_: 正在指定備份集中的數據文件
在備份集中包含當前的 SPFILE
備份集中包括當前控制文件
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\SYSTEMDBF
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\INDXDBF
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\USERSDBF
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\TOOLSDBF
通道 ORA_DISK_: 正在啟動段
通道 ORA_DISK_: 已完成段
段 handle=C:\NOARCH_BAK comment=NONE
通道 ORA_DISK_: 備份集已完成 經過時間:::
完成 backup 於

  RMAN> copy CURRENT CONTROLFILE TO c:\cfcpy;

  啟動 copy 於
使用通道 ORA_DISK_
通道 ORA_DISK_: 已復制當前的控制文件
輸出文件名=C:\CFCPY
完成 copy 於

  SQL> archive log list
數據庫日志模式             非存檔模式
自動存檔             啟用
存檔終點            C:\oracle\oradata\testdb\archive
最早的概要日志序列    
當前日志序列          
SQL> alter database open;

  數據庫已更改

  SQL> create table arch (status varchar()) tablespace users;  日志

  表已創建

  SQL> alter system switch logfile;

  系統已更改

  SQL> insert into arch select ok from dba_objects;   日志

  已創建

  SQL> commit;

  提交完成

  SQL> insert into arch select * from arch;

  已創建

  SQL> /

  已創建

  SQL> /

  已創建

  SQL> /

  已創建

  SQL> commit;

  提交完成

  SQL> alter system switch logfile; 

  系統已更改

  SQL> insert into arch select no from dba_objects; 日志

  已創建

  SQL> commit;

  提交完成

  SQL> select GROUP#SEQUENCE#archived STATUS from v$log;

  GROUP#  SEQUENCE# ARC STATUS

                   NO  CURRENT
                   NO  ACTIVE
                   NO  ACTIVE
        
        
SQL> shutdown
數據庫已經關閉
已經卸載數據庫
ORACLE 例程已經關閉     

  刪除userdbf文件

  SQL> startup mount
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size              bytes
Database Buffers           bytes
Redo Buffers                 bytes
數據庫裝載完畢

  RMAN> restore datafile ;

  啟動 restore 於

  分配的通道: ORA_DISK_
通道 ORA_DISK_: sid= devtype=DISK
通道 ORA_DISK_: 正在開始恢復數據文件備份集
通道 ORA_DISK_: 正在指定從備份集恢復的數據文件
正將數據文件恢復到C:\ORACLE\ORADATA\TESTDB\USERSDBF
通道 ORA_DISK_: 已恢復備份段
段 handle=C:\NOARCH_BAK tag=TAGT params=NULL
通道 ORA_DISK_: 恢復完成
完成 restore 於

  RMAN> recover datafile ;

  啟動 recover 於
使用通道 ORA_DISK_

  正在開始介質的恢復
完成介質的恢復

  完成 recover 於

  RMAN> alter database open;

  數據庫已打開

  SQL> select count(*)status from arch group by status;

  COUNT(*) ST

      no
     ok  

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
我們看到非歸檔模式在備份數據文件後的日志如果都
還存在當前在線日志和者非當前在線日志中 就可以
實現完全恢復比如我們最先create table arch的日志在
日志組沒有被輪轉覆蓋所以可以完全恢復
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  那我們試試如果在線日志被覆蓋了的情況下是否可以完全恢復

[測試] 數據庫在非歸檔模式數據文件損壞使用RMAN恢復
#         該文件的日志部分由於日志輪轉被覆蓋了

SQL> startup mount
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size              bytes
Database Buffers           bytes
Redo Buffers                 bytes
數據庫裝載完畢
SQL> alter database noarchivelog;

  數據庫已更改

  SQL> archive log list
數據庫日志模式             非存檔模式
自動存檔             啟用
存檔終點            C:\oracle\oradata\testdb\archive
最早的概要日志序列    
當前日志序列          

  C:\Documents and Settings\lifengfang>rman nocatalog target sys/sunsdl

  恢復管理器: 版本 Production

  Copyright (c) Oracle Corporation  All rights reserved

  連接到目標數據庫: TESTDB (DBID=)
正在使用目標數據庫控制文件替代恢復目錄

  RMAN>  backup format c:\noarch_%s%pbak database;

  啟動 backup 於
分配的通道: ORA_DISK_
通道 ORA_DISK_: sid= devtype=DISK
通道 ORA_DISK_: 正在啟動 full 數據文件備份集
通道 ORA_DISK_: 正在指定備份集中的數據文件
在備份集中包含當前的 SPFILE
備份集中包括當前控制文件
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\SYSTEMDBF
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\INDXDBF
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\USERSDBF
輸入數據文件 fno= name=C:\ORACLE\ORADATA\TESTDB\TOOLSDBF
通道 ORA_DISK_: 正在啟動段
通道 ORA_DISK_: 已完成段
段 handle=C:\NOARCH_BAK comment=NONE
通道 ORA_DISK_: 備份集已完成 經過時間:::
完成 backup 於

  SQL> alter database open;

  數據庫已更改

  SQL> create table arch (status varchar()) tablespace users;  日志序列在組

  表已創建

  SQL> alter system switch logfile;

  系統已更改

  SQL> insert into arch select ok from dba_objects;  日志序列在組

  已創建

  SQL> commit;

  提交完成

  SQL> insert into arch select * from arch;

  已創建

  SQL> commit;

  提交完成

  SQL> alter system switch logfile;

  系統已更改

  SQL> insert into arch select * from arch;  日志序列在組

  已創建

  SQL> /

  已創建

  SQL> /

  已創建

  SQL> commit;

  提交完成

  SQL> alter system switch logfile;

  系統已更改

  SQL> insert into arch select no from dba_objects; 日志序列在組 把前面create table arch給覆蓋了

  已創建

  SQL> commit;

  提交完成

  SQL> select GROUP#SEQUENCE#archived STATUS from v$log;

  GROUP#  SEQUENCE# ARC STATUS

                   NO  ACTIVE
                   NO  CURRENT
                   NO  INACTIVE

  SQL> shutdown
數據庫已經關閉
已經卸載數據庫
ORACLE 例程已經關閉

  刪除userdbf文件

  SQL> startup mount
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size              bytes
Database Buffers           bytes
Redo Buffers                 bytes
數據庫裝載完畢
   
RMAN> restore datafile ;

  啟動 restore 於

  分配的通道: ORA_DISK_
通道 ORA_DISK_: sid= devtype=DISK
通道 ORA_DISK_: 正在開始恢復數據文件備份集
通道 ORA_DISK_: 正在指定從備份集恢復的數據文件
正將數據文件恢復到C:\ORACLE\ORADATA\TESTDB\USERSDBF
通道 ORA_DISK_: 已恢復備份段
段 handle=C:\NOARCH_BAK tag=TAGT params=NULL
通道 ORA_DISK_: 恢復完成
完成 restore 於

  RMAN> recover datafile ;

  啟動 recover 於
使用通道 ORA_DISK_

  正在開始介質的恢復

  無法找到存檔日志
存檔日志線程 = 序列=
RMAN: ===========================================================
RMAN: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN: ===========================================================
RMAN: failure of recover command at // ::
RMAN: media recovery requesting unknown log: thread scn

  RMAN> restore datafile ;

  啟動 restore 於

  使用通道 ORA_DISK_
正在略過數據文件 ; 已恢復到文件 C:\ORACLE\ORADATA\TESTDB\USERSDBF
通道 ORA_DISK_: 正在開始恢復數據文件備份集
通道 ORA_DISK_: 正在指定從備份集恢復的數據文件
正將數據文件恢復到C:\ORACLE\ORADATA\TESTDB\SYSTEMDBF
正將數據文件恢復到C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF
正將數據文件恢復到C:\ORACLE\ORADATA\TESTDB\INDXDBF
正將數據文件恢復到C:\ORACLE\ORADATA\TESTDB\TOOLSDBF
通道 ORA_DISK_: 已恢復備份段
段 handle=C:\NOARCH_BAK tag=TAGT params=NULL
通道 ORA_DISK_: 恢復完成
完成 restore 於

  RMAN> recover datafile ;

  啟動 recover 於
使用通道 ORA_DISK_

  正在開始介質的恢復

  無法找到存檔日志
存檔日志線程 = 序列=
RMAN: ===========================================================
RMAN: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN: ===========================================================
RMAN: failure of recover command at // ::
RMAN: media recovery requesting unknown log: thread scn

  ~~~~~~~~~~~~~~~~~~~
還需要備份的控制文件
~~~~~~~~~~~~~~~~~~~
還原備份的控制文件

  SQL> startup mount
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size              bytes
Database Buffers           bytes
Redo Buffers                 bytes
數據庫裝載完畢
SQL> recover database using backup controlfile;
ORA: 更改 (在 // :: 生成) 對於線程 是必需的
ORA: 建議: C:\ORACLE\ORADATA\TESTDB\ARCHIVE\_DBF
ORA: 更改 對於線程 是按序列 # 進行的

  指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA: 無法打開存檔日志 C:\ORACLE\ORADATA\TESTDB\ARCHIVE\_DBF
ORA: 無法打開文件
OSD: 無法打開文件
O/SError: (OS ) 系統找不到指定的文件

  ORA: 無法打開存檔日志 C:\ORACLE\ORADATA\TESTDB\ARCHIVE\_DBF
ORA: 無法打開文件
OSD: 無法打開文件
O/SError: (OS ) 系統找不到指定的文件

  SQL> recover database using backup controlfile until cancel;
ORA: 更改 (在 // :: 生成) 對於線程 是必需的
ORA: 建議: C:\ORACLE\ORADATA\TESTDB\ARCHIVE\_DBF
ORA: 更改 對於線程 是按序列 # 進行的

  指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介質恢復已取消
SQL> alter database open resetlogs;

  數據庫已更改

  SQL> select count(*)status from arch group by status;
select count(*)status from arch group by status
                            *
ERROR 位於第 行:
ORA: 表或視圖不存在

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
所以如果是非歸檔模式且沒有所有日志都在
當前在線日志和非當前在線日志中那麼就不
能完全恢復而且這時要用備份的數據文件還不夠
還要備份的控制文件
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  #####################################################
# [測試] 修改日志組大小及增加日志組成員
#####################################################
日志處理恢復測試實例
ALTER DATABASE CLEAR LOGFILE GROUP <group_number>;

  This statement overcomes two situations where dropping redo logs is not possible:
If there are only two log groups
The corrupt redo log file belongs to the current group

  SQL> insert into test select * from test;

  已創建

  SQL> select value from v$sesstat where STATISTIC#= and sid=;

  VALUE

  

  SQL> insert into test select * from test;

  已創建

  SQL>  select value from v$sesstat where STATISTIC#= and sid=;

  VALUE

 

  SQL> ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOG
C:\ORA\ORA\ORADATA\TEST\REDOLOG) size M;

  數據庫已更改

  SQL> ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOG
C:\ORA\ORA\ORADATA\TEST\REDOLOG) size M;

  數據庫已更改

  SQL> ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOG
C:\ORA\ORA\ORADATA\TEST\REDOLOG) size M;
ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOGC:
\ORA\ORA\ORADATA\TEST\REDOLOG) size M
*
ERROR 位於第 行:
ORA: 日志文件組號無效

  SQL> l
  * ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOG
C:\ORA\ORA\ORADATA\TEST\REDOLOG) size M
SQL> ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOG
C:\ORA\ORA\ORADATA\TEST\REDOLOG) size M;
ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOGC:
\ORA\ORA\ORADATA\TEST\REDOLOG) size M
*
ERROR 位於第 行:
ORA: 日志文件組號無效

  SQL> alter database backup controlfile to trace;

  數據庫已更改

  SQL> select * from v$log;

  GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS

                                         YES INACTIVE
                                         YES ACTIVE
                                         NO  CURRENT
                                          YES UNUSED
                                          YES UNUSED
SQL> select * from v$logfile;

  GROUP# STATUS  TYPE     MEMBER
 
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
         INVALID ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
         INVALID ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
         INVALID ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG

  已選擇

  SQL>

  SQL> alter database drop logfile group ;
                                        
數據庫已更改                          
                                        
SQL> alter database drop logfile group ;
                                        
數據庫已更改                          
                                        
SQL> alter database drop logfile group ;
                                        
數據庫已更改                          

  SQL> select * from v$logfile;                                                  
                                                                               
    GROUP# STATUS  TYPE     MEMBER
                                                                                 
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG                                                                                     
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG              
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG              
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG        

  SQL> ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOG

    C:\ORA\ORA\ORADATA\TEST\REDOLOG) size M;
ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOG
*
ERROR 位於第 行:
ORA: 添加日志文件 C:\ORA\ORA\ORADATA\TEST\REDOLOG
時出錯 無法創建文件
ORA: skgfrcre: 創建錯誤無法創建文件
OSD: 無法打開文件
O/SError: (OS ) 文件名目錄名或卷標語法不正確

  這裡我把原有的C:\ORA\ORA\ORADATA\TEST\REDOLOG和C:\ORA\ORA\ORADATA\TEST\REDOLOG刪除就OK了
SQL> ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOG
C:\ORA\ORA\ORADATA\TEST\REDOLOG) size M;

  數據庫已更改

  SQL> ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOG
C:\ORA\ORA\ORADATA\TEST\REDOLOG) size M;
ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOGC:
\ORA\ORA\ORADATA\TEST\REDOLOG) size M
*
ERROR 位於第 行:
ORA: 添加日志文件 C:\ORA\ORA\ORADATA\TEST\REDOLOG 時出錯
無法創建文件
ORA: skgfrcre: 文件存在
OSD: 指定了 <create> 選項 但文件已經存在

  SQL> ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOG
C:\ORA\ORA\ORADATA\TEST\REDOLOG) size M;

  數據庫已更改

  SQL> ALTER DATABASE ADD LOGFILE GROUP (C:\ORA\ORA\ORADATA\TEST\REDOLOG
C:\ORA\ORA\ORADATA\TEST\REDOLOG) size M;

  數據庫已更改                               

  GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS

                                        NO  CURRENT
                                        YES INACTIVE

  SQL> alter database clear logfile group ;

  數據庫已更改

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
注意如果這個非活動的日志組ARC狀態為NO
也就是說不能被歸檔那麼要執行
ALTER DATABASE CLEAR LOGFILE UNARCHIVED GROUP ;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
注意如果這時有個offline文件需要這個非
活動的日志組ARC狀態為NO的日志使這個文件
帶到online狀態那麼在CLEAR LOGFILE時指定
這個文件的UNRECOVERABLE DATAFILE參數才行

ALTER DATABASE CLEAR LOGFILE UNARCHIVED
GROUP UNRECOVERABLE DATAFILE;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
有時執行ALTER DATABASE CLEAR LOGFILE 會出錯
原因是該日志磁盤IO損壞那麼你最好重新部署
該日志到新的路徑如使用修改了的創建控制文件語句
或者ALTER DATABASE RENAME FILE /oracle/dbs/log_rdo
TO /temp/log_rdo;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL> select * from v$log;

  GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS

                                          YES UNUSED
                                          YES UNUSED
                                          YES UNUSED
                                        NO  CURRENT
                                          YES UNUSED

  SQL> alter system switch logfile;

  系統已更改

  SQL> /

  系統已更改

  SQL> /

  系統已更改

  SQL> select * from v$log;

  GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS

                                        YES INACTIVE
                                        YES INACTIVE
                                        YES INACTIVE
                                        YES INACTIVE
                                        NO  CURRENT

  #########################################################
# [測試] 當前在線日志損壞切沒有備份數據文件使用強制打開的方式
#########################################################
SQL> select * from v$logfile;

  GROUP# STATUS  TYPE     MEMBER
 
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG
                  ONLINE   C:\ORA\ORA\ORADATA\TEST\REDOLOG

  已選擇

  SQL> shutdown immediate
數據庫已經關閉
已經卸載數據庫
ORACLE 例程已經關閉

  刪除C:\ORA\ORA\ORADATA\TEST\REDOLOG
SQL> startup
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size             bytes
Database Buffers           bytes
Redo Buffers                 bytes
數據庫裝載完畢
ORA: 無法打開日志組 (線程 ) 的成員
ORA: 聯機日志 線程 : C:\ORA\ORA\ORADATA\TEST\REDOLOG
ORA: 聯機日志 線程 : C:\ORA\ORA\ORADATA\TEST\REDOLOG

  SQL> select count(*) from test;
select count(*) from test
                     *
ERROR 位於第 行:
ORA: 數據庫未打開: 僅允許在固定表/視圖中查詢

  SQL> alter database clear logfile group ;

  數據庫已更改

  這時會自動增加     C:\ORA\ORA\ORADATA\TEST\REDOLOG    
                   C:\ORA\ORA\ORADATA\TEST\REDOLOG 
兩個日志文件              

  
SQL> alter database open;

  數據庫已更改                                     

  SQL>  select GROUP#THREAD#SEQUENCE#MEMBERSSTATUSARCHIVED  from v$log;
                                                                         
    GROUP#    THREAD#  SEQUENCE#    MEMBERS STATUS           ARC         
         
                                       UNUSED           YES         
                                     INACTIVE         YES         
                                     INACTIVE         YES         
                                     INACTIVE         YES         
                                     CURRENT          NO           
        
SQL> /                                                                  
                                                               
    GROUP#    THREAD#  SEQUENCE#    MEMBERS STATUS           ARC

                                     CURRENT          NO
                                     INACTIVE         YES
                                     INACTIVE         YES
                                     INACTIVE         YES
                                     ACTIVE           YES             
        
刪除日志組的文件

  SQL> shutdown immediate                                                        
數據庫已經關閉                                                      
已經卸載數據庫                                                      
ORACLE 例程已經關閉                                                 
SQL> startup                                                          
ORACLE 例程已經啟動                                                 
                                                                      
Total System Global Area  bytes                             
Fixed Size                   bytes                             
Variable Size             bytes                             
Database Buffers           bytes                             
Redo Buffers                 bytes                             
數據庫裝載完畢                                                      
ORA: 無法打開日志組 (線程 ) 的成員                           
ORA: 聯機日志 線程 : C:\ORA\ORA\ORADATA\TEST\REDOLOG
ORA: 聯機日志 線程 : C:\ORA\ORA\ORADATA\TEST\REDOLOG
                                                                      
                                                                      
SQL> alter database clear logfile group ;                            
                                                                      
數據庫已更改                                                        
                                                                      
SQL> alter database open;                                             
                                                                      
數據庫已更改                                                        
                                                                      
SQL>                                                                  
SQL>                                                                  
SQL>                                                                  
SQL> select count(*) from test;                                       
                                                                      
  COUNT(*)                                                            
                                                            
                               
  
SQL> alter system switch logfile;                                                                           
                                                                         
系統已更改                                                             
                                                                         
SQL>  select GROUP#THREAD#SEQUENCE#MEMBERSSTATUSARCHIVED  from v$log;
                                                                         
    GROUP#    THREAD#  SEQUENCE#    MEMBERS STATUS           ARC         
         
                                     ACTIVE           YES         
                                     INACTIVE         YES         
                                     INACTIVE         YES         
                                     INACTIVE         YES         
                                     CURRENT          NO          
        
        
                                                                
此時用ultraedit把日志組的兩個文件編輯文件頭使他被破壞
SQL> delete test;         
delete test      
       *         
ERROR 位於第 行:
ORA: 通信通道的文件結束

  C:\>sqlplus /as sysdba                                               
                                                                       
SQL*Plus: Release Production on 星期五 ::
                                                                       
Copyright (c) Oracle Corporation  All rights reserved    
                                                                       
已連接到空閒例程                                                     
                                                                       
SQL>                                                                   
SQL>                                                                   
SQL>                                                                   
SQL> startup                                                           
ORACLE 例程已經啟動                                                  
                                                                       
Total System Global Area  bytes                              
Fixed Size                   bytes                              
Variable Size             bytes                              
Database Buffers           bytes                              
Redo Buffers                 bytes                              
數據庫裝載完畢                                                       
ORA: 無法打開日志組 (線程 ) 的成員                            
ORA: 聯機日志 線程 : C:\ORA\ORA\ORADATA\TEST\REDOLOG 
ORA: 聯機日志 線程 : C:\ORA\ORA\ORADATA\TEST\REDOLOG  

  SQL> alter database clear logfile group ;雖然是當前數據文件
也可以用clear logfile清理後打開
SQL> alter database clear logfile group ;
                                         
數據庫已更改                           
                                         
SQL> alter database open;                
                                         
數據庫已更改                           
                                         
SQL>                                     
SQL>                                     
SQL> select count(*) from test;          
                                         
  COUNT(*)                               
                               
                      
  

  此時用ultraedit把日志組的兩個文件編輯清空使他被破壞  

  SQL> conn /as sysdba
已連接
SQL> insert into test select rownum from dba_tables;

  已創建

  SQL> insert into test select rownum from dba_tables;

  已創建

  SQL> insert into test select rownum from dba_tables;

  已創建

  SQL> insert into test select rownum from test;

  已創建

  SQL> /

  已創建

  SQL> /

  已創建

  SQL> /

  已創建

  SQL> /

  已創建

  SQL> /

  已創建

  SQL> /

  已創建

  SQL> /

  已創建

  SQL> /

  已創建

  SQL> /
insert into test select rownum from test
*
ERROR 位於第 行:
ORA: 通信通道的文件結束
這時由於當前日志文件已經損壞但insert又產生了很多重做造成切換所以破壞的日志包含了要恢復的數據

  SQL> conn /as sysdba
已連接到空閒例程
SQL> startup
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size             bytes
Database Buffers           bytes
Redo Buffers                 bytes
數據庫裝載完畢
ORA: 日志 (線程 )標題中的類型 不是日志文件
ORA: 聯機日志 線程 : C:\ORA\ORA\ORADATA\TEST\REDOLOG
ORA: 日志 (線程 )標題中的類型 不是日志文件
ORA: 聯機日志 線程 : C:\ORA\ORA\ORADATA\TEST\REDOLOG

  SQL> alter database clear logfile group ;
alter database clear logfile group
*
ERROR 位於第 行:
ORA: 線程的緊急恢復需要日志
ORA: 聯機日志 線程 : C:\ORA\ORA\ORADATA\TEST\REDOLOG
ORA: 聯機日志 線程 : C:\ORA\ORA\ORADATA\TEST\REDOLOG

  SQL> alter database clear UNARCHIVED logfile group ;
alter database clear UNARCHIVED logfile group
*
ERROR 位於第 行:
ORA: 線程的緊急恢復需要日志
ORA: 聯機日志 線程 : C:\ORA\ORA\ORADATA\TEST\REDOLOG
ORA: 聯機日志 線程 : C:\ORA\ORA\ORADATA\TEST\REDOLOG

  SQL> recover database;
ORA: 恢復會話因錯誤而取消
ORA: 日志 (線程 )標題中的類型 不是日志文件
ORA: 聯機日志 線程 : C:\ORA\ORA\ORADATA\TEST\REDOLOG

  SQL> recover database until cancel;
ORA: 更改 (在 // :: 生成) 對於線程 是必需的
ORA: 建議: C:\ORA\ORA\ORADATA\TEST\ARCHIVE\_DBF
ORA: 更改 對於線程 是按序列 # 進行的

  指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

  ORA: 無法打開存檔日志 C:\ORA\ORA\ORADATA\TEST\ARCHIVE\_DBF
ORA: 無法打開文件
OSD: 無法打開文件
O/SError: (OS ) 系統找不到指定的文件

  ORA: 警告: RECOVER 成功但 OPEN RESETLOGS 將出現如下錯誤
ORA: 文件需要更多的恢復來保持一致性
ORA: 數據文件 : C:\ORA\ORA\ORADATA\TEST\SYSTEMDBF

  SQL> show parameter spfile

  NAME                                 TYPE        VALUE

spfile                               string      %ORACLE_HOME%\DATABASE\SPFILE
                                                 ORACLE_SID%ORA

  SQL> create pfile=pfiletestora from spfile;

  文件已創建

  SQL> create pfile=c:\pfiletestora from spfile;

  文件已創建
編輯c:\pfiletestora
增加三個參數

  _allow_resetlogs_corruption=true
_corrupted_rollback_segments=true
_offline_rollback_segments=true

  SQL> shutdown immediate
ORA: 數據庫未打開

  已經卸載數據庫
ORACLE 例程已經關閉
SQL>
SQL>
SQL>
SQL> startup pfile=c:\pfiletestora
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size             bytes
Database Buffers           bytes
Redo Buffers                 bytes
數據庫裝載完畢
ORA: 要打開數據庫則必須使用 RESETLOGS 或 NORESETLOGS 選項

  SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR 位於第 行:
ORA: ORACLE 例程終止強行斷開連接

  SQL>
SQL>
SQL> exit
從Oraclei Enterprise Edition Release Production
With the Partitioning OLAP and Oracle Data Mining options
JServer Release Production中斷開

  C:\>sqlplus /as sysdba

  SQL*Plus: Release Production on 星期五 ::

  Copyright (c) Oracle Corporation  All rights reserved

  已連接到空閒例程

  SQL> startup pfile=c:\pfiletestora
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size             bytes
Database Buffers           bytes
Redo Buffers                 bytes
數據庫裝載完畢
數據庫已經打開
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL> select count(*) from test;

  COUNT(*)

        

  ###############################################
# [測試] 數據文件損壞控制文件損壞有trace
#         使用noresetlogs非在線日志損壞 shutdown abort
###############################################

  參見控制文件恢復部分    

  ###############################################
# [測試]      在歸檔模式下沒有設置自動歸檔下數據庫掛起
###############################################
SQL> startup nomount
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size              bytes
Database Buffers           bytes
Redo Buffers                 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE TESTDB RESETLOGS  ARCHIVELOG
      SET STANDBY TO MAXIMIZE PERFORMANCE
        MAXLOGFILES
        MAXLOGMEMBERS
        MAXDATAFILES
        MAXINSTANCES
        MAXLOGHISTORY
    LOGFILE
      GROUP C:\ORACLE\ORADATA\TESTDB\REDOLOG  SIZE M  修改在線日志為M
    GROUP C:\ORACLE\ORADATA\TESTDB\REDOLOG  SIZE M
    GROUP C:\ORACLE\ORADATA\TESTDB\REDOLOG  SIZE M
  STANDBY LOGFILE
  DATAFILE
    C:\ORACLE\ORADATA\TESTDB\SYSTEMDBF
    C:\ORACLE\ORADATA\TESTDB\UNDOTBSDBF
    C:\ORACLE\ORADATA\TESTDB\INDXDBF
    C:\ORACLE\ORADATA\TESTDB\TOOLSDBF
    C:\ORACLE\ORADATA\TESTDB\USERSDBF
  CHARACTER SET ZHSGBK
  ;

  控制文件已創建

  SQL> alter database open resetlogs;

  數據庫已更改

  SQL> archive log list
數據庫日志模式            存檔模式
自動存檔             啟用
存檔終點            C:\oracle\oradata\testdb\archive
最早的概要日志序列    
下一個存檔日志序列  
當前日志序列          

  SQL> shutdown
數據庫已經關閉
已經卸載數據庫
ORACLE 例程已經關閉
SQL> startup mount
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size              bytes
Database Buffers           bytes
Redo Buffers                 bytes
數據庫裝載完畢

  SQL> alter system archive log stop;

  系統已更改

  SQL> archive log list
數據庫日志模式            存檔模式
自動存檔             禁用
存檔終點            C:\oracle\oradata\testdb\archive
最早的概要日志序列    
下一個存檔日志序列  
當前日志序列          

  SQL> alter database open;

  數據庫已更改

  SQL>  select count(*) from arch;

  COUNT(*)

   
   
SQL> select bytes segment_name from dba_segments where segment_name =ARCH;

  BYTES     SEGMENT_NAME
    
       ARCH 
 
SQL> delete from arch;  刪除M但是輪轉一圈日志只有M所以如果不手工去切換日志將掛起數據庫

  這裡無法刪除數據
SQL> archive log list
數據庫日志模式            存檔模式
自動存檔             禁用
存檔終點            C:\oracle\oradata\testdb\archive
最早的概要日志序列    
下一個存檔日志序列  
當前日志序列          

  另一個SESSION也無法插入數據
SQL> insert into arch select * from arch where rownum = ;

  在alertlog中顯示
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread cannot allocate new log sequence 個日志無法被分配因為日志不能被覆蓋
Checkpoint not complete
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread cannot allocate new log sequence
All online logs needed archiving >>所有的在線日志需要歸檔
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
 
SQL> select count(*) from arch;

  查詢也被掛氣

  SQL> alter system switch logfile;   

  還是被掛住

  SQL> alter system archive log all;

  系統已更改

  ~~~~~~~~~~~~~~~~~~~~~~~~~~
此時日志被歸檔
alter system switch logfile;    也執行成功
select count(*) from arch;也執行成功
但是後面的在線仍然需要手工歸檔
~~~~~~~~~~~~~~~~~~~~~~~~~~

  Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread cannot allocate new log sequence
Checkpoint not complete
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread cannot allocate new log sequence
All online logs needed archiving
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
 
 
##################################################################
# [測試] 數據庫在非歸檔模式下設置了自動歸檔當一個事務處理的重做量大於
# 所有在線日志的大小總和時
################################################################## 
SQL> startup mount
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size              bytes
Database Buffers           bytes
Redo Buffers                 bytes
數據庫裝載完畢
SQL> alter database noarchivelog;

  數據庫已更改
SQL> alter database open ;

  數據庫已更改

  SQL> select count(*) from arch;

  COUNT(*)

   
SQL> delete from arch; 
被掛起
 
alertlog中的記錄
Mon Mar ::
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Mon Mar ::
ARC: Media recovery disabled
Mon Mar ::
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Mon Mar ::
ARC: Media recovery disabled
Mon Mar ::
Thread cannot allocate new log sequence
Checkpoint not complete
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
 
SQL> delete from arch; 
已刪除
~~~~~~~~~~~~~~~~~~~~~~~~
在一個事務中可以刪除大於所有在線日志的總和的數據
~~~~~~~~~~~~~~~~~~~~~~~~

  ##################################################################
# [測試] 數據庫在非歸檔模式下設置了非自動歸檔當一個事務處理的重做量大於
# 所有在線日志的大小總和時
##################################################################
SQL> startup mount
ORACLE 例程已經啟動

  Total System Global Area  bytes
Fixed Size                   bytes
Variable Size              bytes
Database Buffers           bytes
Redo Buffers                 bytes
數據庫裝載完畢
SQL> alter system archive log stop;

  系統已更改

  SQL> alter database open;

  數據庫已更改

  SQL> archive log list
數據庫日志模式             非存檔模式
自動存檔             禁用
存檔終點            C:\oracle\oradata\testdb\archive
最早的概要日志序列    
當前日志序列          

  Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread cannot allocate new log sequence
Checkpoint not complete
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Thread advanced to log sequence
  Current log# seq# mem# : C:\ORACLE\ORADATA\TESTDB\REDOLOG
Mon Mar ::
SMON: Parallel transaction recovery tried
Mon Mar ::
Thread cannot allocate new log sequence
Checkpoint not complete

  SQL> delete from arch;

  已刪除
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我們看到最終還是可以刪除 


From:http://tw.wingwit.com/Article/program/Oracle/201311/17403.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.