oracle實驗記錄 (恢復read only tablespace(1))
實驗記錄下幾種readonly tablespace恢復情況 及與controlfile情況
實驗環境
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SQL> col tablespace_name format a20
SQL> col file_name format a50
SQL> select tablespace_name,file_name from dba_data_files;
TABLESPACE_NAME FILE_NAME
-------------------- --------------------------------------------------
TEST D:\TEST.DBF
EXAMPLE E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DB
F
USERS E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
SYSAUX E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
UNDOTBS1 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DB
F
SYSTEM E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
TESTTB D:\TESTTB.DBF
已選擇7行。
情況一:備份時候表空間為 read only 恢復時候為read only
SQL> alter tablespace testtb read only;
表空間已更改。
SQL> alter database begin backup;
資料庫已更改。
SQL> @d:\backup\backupscript.txt
已複製 1 個檔案。
已複製 1 個檔案。
已複製 1 個檔案。
已複製 1 個檔案。
已複製 1 個檔案。
已複製 1 個檔案。
已複製 1 個檔案。
SQL> alter database end backup;
資料庫已更改。
SQL> alter database end backup;
資料庫已更改。
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host del d:\testtb.dbf~~~~~~~~~~~模擬錯誤刪除
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 327158660 bytes
Database Buffers 276824064 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 7 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 7: 'D:\TESTTB.DBF'
SQL> select file#,online_status from v$recover_file;
FILE# ONLINE_
---------- -------
7 ONLINE
SQL> host copy d:\backup\testtb.dbf d:\testtb.dbf
已複製 1 個檔案。
SQL> alter database open;
資料庫已更改。
~~~~~~~~~~~~~~~~~~~~這種情況直接 restore回備份就可以
第2種情況 備份時候 read only ,恢復時候已經變成read write
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 INACTIVE
2 CURRENT
3 INACTIVE
SQL> alter system switch logfile;
系統已更改。
SQL> alter system checkpoint;
系統已更改。
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 CURRENT
2 INACTIVE
3 INACTIVE
SQL> select tablespace_name ,status from dba_tablespaces;
TABLESPACE_NAME STATUS
-------------------- ---------
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
TEST ONLINE
TESTTB READ ONLY
已選擇8行。
SQL> alter tablespace testtb read write;
表空間已更改。
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host del d:\testtb.dbf
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 331352964 bytes
Database Buffers 272629760 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 7 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 7: 'D:\TESTTB.DBF'
SQL> select file#,online_status from v$recover_file;
FILE# ONLINE_
---------- -------
7 ONLINE
第 1 行出現錯誤:
ORA-01157: 無法標識/鎖定資料檔案 7 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 7: 'D:\TESTTB.DBF'
SQL> host copy d:\backup\testtb.dbf d:\testtb.dbf
已複製 1 個檔案。
SQL> alter database open;
alter database open
*
第 1 行出現錯誤:
ORA-01113: 檔案 7 需要介質恢復~~~~~~~~~~~~~~~~~需要應用read only 到read write期間的redo
ORA-01110: 資料檔案 7: 'D:\TESTTB.DBF'
SQL> recover datafile 7;~~~~完全恢復資料檔案7
完成介質恢復。
SQL> alter database open;
資料庫已更改。
SQL> select tablespace_name ,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
TEST ONLINE
TESTTB ONLINE
已選擇8行。
第3種情況 備份時候是read write,但 recover時 是 read only
SQL> col file_name format a50
SQL> select file_id,file_name from dba_data_files;
FILE_ID FILE_NAME
---------- --------------------------------------------------
6 D:\TEST.DBF
5 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DB
F
4 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
3 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
2 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DB
F
1 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
7 D:\TESTTB.DBF
已選擇7行。
SQL> alter database begin backup~~~~~~~~~~~會產生incremental checkpoint
2 ;
資料庫已更改。
SQL> @d:\backup\backupscript.txt
已複製 1 個檔案。
已複製 1 個檔案。
已複製 1 個檔案。
已複製 1 個檔案。~~~~~~~~~~~~~~~~~~~~~~備份時候 是read only
已複製 1 個檔案。
已複製 1 個檔案。
已複製 1 個檔案。
SQL> alter database end backup;
資料庫已更改。
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1242366
SQL> alter tablespace testtb read only;
表空間已更改。
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host del d:\testtb.dbf
SQL> host copy d:\backup\testtb.dbf d:\testtb.dbf
已複製 1 個檔案。
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 335547268 bytes
Database Buffers 268435456 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
ORA-01113: 檔案 7 需要介質恢復
ORA-01110: 資料檔案 7: 'D:\TESTTB.DBF'
SQL> recover datafile 7;~~~~~~~~~~~~~還是應用 redo 來恢復下就可以(備份後的所有redo應用,應用
到了readonly 時候)
完成介質恢復。
SQL> alter database open;
資料庫已更改。
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
TEST ONLINE
TESTTB READ ONLY
已選擇8行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12020513/viewspace-614095/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle實驗記錄 (恢復read only tablespace(2))Oracle
- oracle實驗記錄 (恢復-完全恢復)Oracle
- oracle實驗記錄 (恢復-rman恢復)Oracle
- oracle實驗記錄 (恢復-rman維護(1))Oracle
- oracle實驗記錄 (恢復-redo)Oracle
- oracle實驗記錄 (恢復-rman reset incatnation(1))Oracle
- oracle實驗記錄 (恢復-不完全恢復)Oracle
- oracle實驗記錄(恢復-checkpoint cnt)Oracle
- oracle實驗記錄 (可恢復session)OracleSession
- oracle實驗記錄 (恢復-關於控制檔案(1))Oracle
- oracle實驗記錄 (bigfile tablespace)Oracle
- oracle實驗記錄 (transport tablespace(Rman))Oracle
- oracle實驗記錄 (恢復-rman catalog)Oracle
- oracle實驗記錄 (恢復-rman保留策略)Oracle
- read only tablespace backup restoreREST
- oracle實驗記錄 (transport tablespace(EXPDP/IMPDP))Oracle
- oracle實驗記錄 (exp/imp transport tablespace)Oracle
- oracle實驗記錄 (恢復-rman維護(2))Oracle
- oracle實驗記錄 (恢復-rman增量備份)Oracle
- oracle實驗記錄 (恢復-使用resetlogs open前備份恢復)Oracle
- oracle實驗記錄 (恢復-rman基於控制檔案的恢復)Oracle
- oracle實驗記錄 (恢復-關於熱備份)Oracle
- oracle實驗記錄 (恢復-rman操作delete(all) input )Oracledelete
- oracle實驗記錄 (恢復-恢復未備份的資料檔案)Oracle
- oracle實驗記錄 (恢復-關於控制檔案(2))Oracle
- oracle實驗記錄 (恢復-關於控制檔案(3))Oracle
- oracle實驗記錄 (恢復-關於控制檔案(4))Oracle
- oracle實驗記錄 (恢復-rman操作(設定&備份))Oracle
- oracle實驗記錄 (恢復-表空間基於時間點恢復(rman))Oracle
- oracle實驗記錄 (恢復-表空間基於時間點恢復(手動))Oracle
- oracle實驗記錄 (oracle 10G dataguard(9)rman恢復與dg)Oracle
- When you issue "ALTER TABLESPACE xxx READ ONLY",what will oracle do?Oracle
- 關於tablespace在read only狀態下的DML ,DDL操作--Read-Only Tablespaces
- Oracle恢復實驗(一)Oracle
- Oracle恢復實驗(二)Oracle
- Oracle恢復實驗(三)Oracle
- Oracle恢復實驗(四)Oracle
- oracle實驗記錄 (恢復,備份-含壞塊資料檔案)Oracle