[20150619]undo檔案損壞或者丟失的恢復1
[20150619]undo檔案損壞或者丟失的恢復1.txt
--昨天別人問一些undo檔案損壞或者丟失的恢復,實際上如果正常關機,undo檔案丟失,恢復是很容易的。
--這些以前應該也做過,重複做1個記錄:
1.測試環境:
SCOTT@test> @ &r/ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- ----------------------------------------------------------------
x86_64/Linux 2.4.xx 10.2.0.4.0 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
SCOTT@test> insert into t values (14,'ddd');
1 row created.
SCOTT@test> commit ;
Commit complete.
SCOTT@test> select * from t where id=14;
ID NAME
------------ --------------------
14 ddd
SCOTT@test> select us#,name from sys.undo$;
US# NAME
------------ --------------------
0 SYSTEM
1 _SYSSMU1$
2 _SYSSMU2$
3 _SYSSMU3$
4 _SYSSMU4$
5 _SYSSMU5$
6 _SYSSMU6$
7 _SYSSMU7$
8 _SYSSMU8$
9 _SYSSMU9$
10 _SYSSMU10$
11 _SYSSMU11$
12 _SYSSMU12$
13 _SYSSMU13$
14 _SYSSMU14$
15 _SYSSMU15$
16 _SYSSMU16$
17 _SYSSMU17$
18 _SYSSMU18$
19 _SYSSMU19$
20 _SYSSMU20$
21 _SYSSMU21$
22 _SYSSMU22$
23 _SYSSMU23$
24 _SYSSMU24$
25 _SYSSMU25$
26 _SYSSMU26$
27 _SYSSMU27$
28 _SYSSMU28$
29 _SYSSMU29$
30 _SYSSMU30$
31 _SYSSMU31$
32 _SYSSMU32$
33 _SYSSMU33$
34 _SYSSMU34$
35 _SYSSMU35$
36 _SYSSMU36$
37 _SYSSMU37$
38 _SYSSMU38$
39 _SYSSMU39$
40 _SYSSMU40$
41 _SYSSMU41$
42 _SYSSMU42$
43 _SYSSMU43$
44 _SYSSMU44$
45 _SYSSMU45$
46 _SYSSMU46$
47 _SYSSMU47$
48 _SYSSMU48$
49 _SYSSMU49$
50 rows selected.
SCOTT@test> show parameter undo
NAME TYPE VALUE
----------------- -------- --------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
2.做一個冷備份:
--步驟忽略
$ cd /mnt/ramdisk/test/
$ mv undotbs01.dbf undotbs01.dbf_org
3.開始測試:
SYS@test> startup
ORACLE instance started.
Total System Global Area 473956352 bytes
Fixed Size 2084776 bytes
Variable Size 260046936 bytes
Database Buffers 201326592 bytes
Redo Buffers 10498048 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 2 - see DBWR trace file
ORA-01110: data file 2: '/mnt/ramdisk/test/undotbs01.dbf'
SYS@test> select open_mode from v$database ;
OPEN_MODE
----------
MOUNTED
SYS@test> create pfile from spfile ;
File created.
--修改2行。
*.undo_management='MANUAL'
*.undo_tablespace='SYSTEM'
--再次啟動:
SYS@test> startup pfile=//u01/app/oracle/product/10.2.0/db_1/dbs/inittest.ora
ORACLE instance started.
Total System Global Area 473956352 bytes
Fixed Size 2084776 bytes
Variable Size 260046936 bytes
Database Buffers 201326592 bytes
Redo Buffers 10498048 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 2 - see DBWR trace file
ORA-01110: data file 2: '/mnt/ramdisk/test/undotbs01.dbf'
SYS@test> select open_mode from v$database ;
OPEN_MODE
----------
MOUNTED
SYS@test> alter database datafile 2 offline drop;
Database altered.
SYS@test> alter database open;
Database altered.
--OK正常啟動。
SYS@test> select * from scott.t where id=14;
ID NAME
------------ --------------------
14 ddd
SYS@test> insert into scott.t values (15,'eee');
insert into scott.t values (15,'eee')
*
ERROR at line 1:
ORA-01552: cannot use system rollback segment for non-system tablespace 'USERS'
--無法在普通表空間做dml操作。
--要建立新的undo表空間:
CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE
'/mnt/ramdisk/test/undotbs02.dbf' SIZE 100M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
ONLINE
RETENTION NOGUARANTEE
BLOCKSIZE 8K
FLASHBACK ON;
4.修改引數undo_tablespace=UNDOTBS2.
SYS@test> shutdown immediate ;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SYS@test> startup nomount
ORACLE instance started.
Total System Global Area 473956352 bytes
Fixed Size 2084776 bytes
Variable Size 260046936 bytes
Database Buffers 201326592 bytes
Redo Buffers 10498048 bytes
SYS@test> alter system set undo_tablespace=UNDOTBS2 scope=spfile;
System altered.
SYS@test> shutdown immediate ;
ORA-01507: database not mounted
ORACLE instance shut down.
SYS@test> startup
ORACLE instance started.
Total System Global Area 473956352 bytes
Fixed Size 2084776 bytes
Variable Size 260046936 bytes
Database Buffers 201326592 bytes
Redo Buffers 10498048 bytes
Database mounted.
Database opened.
SYS@test> insert into scott.t values (15,'eee');
1 row created.
SYS@test> commit ;
Commit complete.
SYS@test> drop tablespace undotbs1;
Tablespace dropped.
--OK,這樣基本恢復完成了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-1704854/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20150619]undo檔案損壞或者丟失的恢復2
- [20150619]undo檔案損壞或者丟失的恢復3
- REDO檔案丟失或者損壞的恢復
- INDEX表空間檔案丟失或者損壞的恢復Index
- RMAN_部分資料檔案丟失或者損壞的恢復
- undo檔案丟失或損壞
- 資料檔案丟失損壞的恢復--
- Oracle不同檔案丟失/損壞的恢復方法Oracle
- rman 恢復---歸檔丟失and資料檔案損壞
- 磁碟損壞導致資料檔案丟失的恢復
- coreldraw檔案丟失(損壞)的恢復處理辦法
- UNDO 表空間檔案損壞的恢復
- Recovery from missing or corrupted datafile(多個資料檔案丟失或者損壞的恢復)
- 備份與恢復--資料檔案損壞或丟失
- Oracle重做日誌檔案損壞或丟失後的恢復Oracle
- oracle控制檔案的損壞或完全丟失的恢復辦法Oracle
- TEMP表空間的檔案丟失或損壞後的恢復
- RMAN_資料庫的絕大部分資料檔案丟失或者損壞的恢復資料庫
- undo表空間檔案丟失恢復(1)--有備份
- 資料檔案損壞、丟失
- 2.7.10 恢復丟失或損壞的伺服器引數檔案(SPFILE)伺服器
- undo 檔案損壞
- win10安裝檔案丟失或者損壞怎麼解決Win10
- 損壞控制檔案的恢復方法
- 恢復丟失的控制檔案
- 控制檔案丟失恢復
- 【控制檔案丟失恢復】
- 備份&恢復之五:歸檔模式下丟失或損壞一個資料檔案模式
- 資料檔案或者tablespace損壞基於rman恢復測試
- 【恢復】Redo日誌檔案丟失的恢復
- 單個控制檔案損壞的恢復
- 控制檔案損壞,丟失其中一個
- 資料檔案丟失的恢復
- 控制檔案全部丟失的恢復
- 控制檔案部分丟失的恢復
- Oracle Password檔案丟失的恢復Oracle
- 控制檔案丟失的RMAN恢復
- SQL Server ldf 檔案損壞恢復SQLServer