[20161110]資料檔案的第0塊.txt
[20161110]資料檔案的第0塊.txt
--如果資料檔案的第0塊是OS塊資訊,以前的測試如果rman做備份集都不會備份。
--如果這塊損壞,裡面講問題不大,你甚至可以不修復,當然重建控制檔案就出現問題。
--而且解決也很簡單,就是建立一樣大小的資料檔案,然後copy回去。做一個測試例子:
1.環境:
SCOTT@book> @ &r/ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
CREATE TABLESPACE SUGAR DATAFILE
'/mnt/ramdisk/book/sugar01.dbf' SIZE 40M AUTOEXTEND ON NEXT 16M MAXSIZE UNLIMITED
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
create table t1 tablespace sugar as select rownum id ,lpad('A',32,'A') name from dual connect by level<=1e5;
alter system checkpoint;
2.看看第0塊內容,注意實際上建立的資料檔案大小是40M+8K。
$ bvi -b 0 -s 8192 /mnt/ramdisk/book/sugar01.dbf
00000000 00 A2 00 00 00 00 C0 FF 00 00 00 00 00 00 00 00 ................
00000010 66 EE 00 00 00 20 00 00 00 14 00 00 7D 7C 7B 7A f.... ......}|{z
00000020 A0 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
...
00001FF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00002000
}
SCOTT@book> alter tablespace sugar offline ;
Tablespace altered.
--安全期間做1個備份。
$ cp /mnt/ramdisk/book/sugar01.dbf /u01/backup/sugar01.dbf_20161110
--全部清零。
SCOTT@book> alter tablespace sugar online ;
alter tablespace sugar online
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '/mnt/ramdisk/book/sugar01.dbf'
--實際上如果線上resize會重寫第0塊OS塊。
3.建立一樣大小的資料檔案。
CREATE TABLESPACE TEA DATAFILE
'/mnt/ramdisk/book/tea01.dbf' SIZE 40M AUTOEXTEND ON NEXT 16M MAXSIZE UNLIMITED
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
BBED> info
File# Name Size(blks)
----- ---- ----------
1 /mnt/ramdisk/book/system01.dbf 0
2 /mnt/ramdisk/book/sysaux01.dbf 0
3 /mnt/ramdisk/book/undotbs01.dbf 0
4 /mnt/ramdisk/book/users01.dbf 0
5 /mnt/ramdisk/book/example01.dbf 0
6 /mnt/ramdisk/book/sugar01.dbf 0
7 /mnt/ramdisk/book/tea01.dbf 0
--注意不能這樣執行,這個不屬於dba地址。
BBED> set dba 7,0
BBED-00205: illegal or out of range DBA (File 7, Block 0)
BBED> help copy
COPY [ DBA | FILE | FILENAME | BLOCK ] TO [ DBA | FILE | FILENAME | BLOCK ]
BBED> copy file 7 block 0 to file 6 block 0
BBED-00309: out of range block number (0)
--問題在於清0後,無法訪問
BBED> set file 6 block 0
FILE# 6
BBED-00309: out of range block number (0)
BBED> dump /v file 7 block 0 count 128 offset 0
File: /mnt/ramdisk/book/tea01.dbf (7)
Block: 0 Offsets: 0 to 127 Dba:0x01c00000
-----------------------------------------------------------------------------------------------------------
00a20000 0000c0ff 00000000 00000000 66ee0000 00200000 00140000 7d7c7b7a l ................f.... ......}|{z
a0810000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
<32 bytes per line>
}
--直接編輯資料檔案6就ok了。
$ bvi -b 0 -s 8192 /mnt/ramdisk/book/sugar01.dbf
:set cm=32
SCOTT@book> alter tablespace sugar online ;
Tablespace altered.
SCOTT@book> select count(*) from t1;
COUNT(*)
------------
100000
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2128267/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20161111]資料檔案的第0塊2.txt
- [20121115]關於oracle資料檔案的第1塊.txtOracle
- 用bbed檢視資料檔案的資料塊block 0及block 1BloC
- [20161031]rman備份與資料檔案OS塊.txt
- Python提取文字檔案(.txt)資料的方法Python
- [20171122]恢復資料檔案塊頭5.txt
- [20171114]恢復資料檔案塊頭2.txt
- 注意資料檔案最大塊數限制
- [20171115]恢復資料檔案塊頭3補充.txt
- [20171115]恢復資料檔案塊頭4補充.txt
- 資料檔案的SCN和資料塊的SCN有何區別
- 轉換RDBA的檔案和資料塊地址(轉)
- 利用RMAN修復資料檔案中的壞塊
- 資料檔案壞塊的製造和恢復
- rman恢復資料檔案-----塊折斷
- LMT & ASSM資料檔案塊分配圖示SSM
- 【exp】快速檢測資料檔案壞塊
- 資料檔案頭塊保留大小、ROWID、資料檔案最大大小等資料庫限制的說明資料庫
- [20170221]資料檔案與檔案系統快取.txt快取
- [20171206]最小資料檔案.txt
- 檢視Windows檔案系統資料塊大小的方法Windows
- oracle 普通表空間資料檔案壞塊Oracle
- oracle資料塊dump檔案中ITL詳解Oracle
- [20190410]dg建立臨時表檔案資料檔案.txt
- 根據rowid查詢資料檔案號,資料塊號
- python如何將資料寫入本地txt文字檔案Python
- [20160329]表空間與資料檔案.txt
- [20121105]重建控制檔案少一個資料檔案的情況.txt
- [20170419]bbed探究資料塊.txt
- 使用dbv和RMAN檢查資料檔案中的壞塊
- [20151125]資料檔案的unrecover.txt
- [20160329]bbed修復offline的資料檔案.txt
- Delphi程式設計:用流來讀取TXT檔案中的資料程式設計
- 資料庫資料恢復-SQL SERVER資料庫檔案大小變為“0”的資料恢復方案資料庫資料恢復SQLServer
- openfiledialog 使用 讀取txt檔案 StreamReader 檢驗資料
- [20210429]檔案頭塊不會快取.txt快取
- Ext2檔案系統佈局,檔案資料塊定址,VFS虛擬檔案系統
- 觸發DBWR程式寫髒資料塊到資料檔案的幾個條件