dump 轉儲檔案內容
1。轉儲資料檔案
在最佳化專案中,有時候為了分析表和索引等的碎片、行遷移等情況,需要對資料檔案進行轉儲。把資料庫檔案(資料檔案、日誌檔案、控制檔案等)的內容取出有利於對Oracle資料庫內部結構展開分析。
Oracle提供的ALTER SYSTEM DUMP命令就可以把資料匯出到Trace檔案中,這一命令是以資料塊為單位的。
對於普通的資料檔案,透過下面的命令可以匯出資料檔案中的資料塊:
ALTER SYSTEM DUMP DATAFILE [ | ] block ;
或者:
ALTER SYSTEM DUMP DATAFILE [ | ] block min block max ;
第一條命令匯出一個資料塊,第二條命令可以匯出多個連續的資料塊。以上命令不能轉儲LMT的臨時表空間檔案,否則會報ORA-1205錯誤。
要轉儲LMT的臨時檔案,需要使用DUMP TEMPFILE命令:
SQL>ALTER SYSTEM DUMP TEMPFILE 'E:\ORACLE\ORADATA\ORC9\SK_TEMP.DBF' BLOCK 1;
System altered.
2。轉儲物件的段頭
在Oracle中,每個段都包含一個段頭。段頭一般來說是某個段第一個擴充套件的第一個塊,包含段的資訊(段的擴充套件情況、FREE LIST的數量等)。要轉儲段頭的資訊,首先需要定位某個段的段頭所在的位置。透過下面的查詢可以檢視到段頭的相關資訊:
select segment_name,header_file,header_block from dba_segments where wner='' and segment_name='';
比如:
SQL> select segment_name, header_file, header_block
2 from dba_segments
3 where wner = 'TEST'
4 and segment_name = 'T_SCHOOL';
2 from dba_segments
3 where wner = 'TEST'
4 and segment_name = 'T_SCHOOL';
SEGMENT_NAME HEADER_FILE HEADER_BLOCK
-------------------------------- ------------------- ------------
T_SCHOOL 5 4748
這個例子說明T_SCHOOL的段頭在5號檔案的4748資料塊。再用ALTER SYSTEM DUMP 命令來轉儲該檔案對應的block即可。
-------------------------------- ------------------- ------------
T_SCHOOL 5 4748
這個例子說明T_SCHOOL的段頭在5號檔案的4748資料塊。再用ALTER SYSTEM DUMP 命令來轉儲該檔案對應的block即可。
如果要轉儲回退段,那麼可以這樣操作:
select segment_name, header_file, header_block
from dba_segments
where segment_name = 'RBS01';
from dba_segments
where segment_name = 'RBS01';
SEGMENT_NAME HEADER_FILE HEADER_BLOCK
-------------------------------- ------------------- ------------
RBS01 2 518
再用:
-------------------------------- ------------------- ------------
RBS01 2 518
再用:
alter system dump datafile 2 block 518;
或者直接用下面的命令轉儲:
alter system dump undo header RBS01;
3。轉儲控制檔案
透過設定系統事件,可以把控制檔案轉儲到Trace檔案:
ALTER SESSION SET EVENTS 'immediate trace name controlf level ';
Level 轉儲的內容
1 檔案頭資訊
2 檔案頭資訊,資料庫資訊記錄和檢查點程式記錄
3 所有的記錄,僅僅包含最新和最老的迴圈使用型別的記錄
4 類似3,不過包含4條最新的迴圈使用型別的記錄
5+ 類似3,迴圈使用型別的記錄是每個級別的雙倍
4。轉儲日誌檔案
使用ALTER SYSTEM DUMP LOGFILE可以轉儲線上日誌檔案。也可以使用ALTER SESSION命令去轉儲重做日誌頭的資訊。在資料庫處於NOMOUNT、MOUNT或者OPEN狀態時,就可以使用上面的命令。在作業系統相同的情況下,可以透過客戶端去轉儲另外一個資料庫的重做日誌。
可以用下面的方法轉儲線上日誌。
a、根據DBA(Data Block Address)轉儲記錄。
ALTER SYSTEM DUMP LOGFILE 'filename‘
DBA MIN fileno . blockno
DBA MAX fileno . blockno;
比如
ALTER SYSTEM DUMP LOGFILE ’uo1/oracle/v7323/dbs/arch1_2.dbf'
DBA MIN 5 . 31125
DBA MAX 5 . 31150;
這個命令轉儲5號檔案的31125~31150塊相關的記錄。
b、根據RBA轉儲線上日誌記錄
ALTER SYSTEM DUMP LOGFILE 'filename‘
RBA MIN seqno . blockno RBA MAX seqno . blockno
比如
ALTER SYSTEM DUMP LOGFILE ’uo1/oracle/v7323/dbs/arch1_2.dbf'
RBA MIN 2050 . 13255
RBA MAX 2050 . 15555;
c、根據時間點轉儲線上日誌記錄
ALTER SYSTEM DUMP LOGFILE 'filename‘
TIME MIN value
TIME MAX value;
比如
ALTER SYSTEM DUMP LOGFILE ’uo1/oracle/v7323/dbs/arch1_2.dbf'
TIME MIN 299425687
TIME MAX 299458808;
d、根據層次和操作程式碼轉儲記錄
ALTER SYSTEM DUMP LOGFILE 'filename‘
LAYER value
OPCODE value;
e、轉儲檔案頭資訊
ALTER SESSION SET EVENTS 'immediate trace name redohdr level 10';
f、轉儲整個重做日誌
ALTER SYSTEM DUMP LOGFILE ‘filename’;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-684096/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle:dump轉儲檔案Oracle
- Oracle 跟蹤檔案和檔案轉儲(dump)Oracle
- java檔案相關(檔案追加內容、檔案內容清空、檔案內容讀取)Java
- dump日誌檔案的內容的研究(看別人的)
- 檔案內容查詢命令(轉)
- 檢視檔案內容的特殊方法(轉)
- Linux檔案內容查詢命令(轉)Linux
- Linux 檔案內容統計命令(轉)Linux
- 檔案內容拷貝
- Oracle 控制檔案內容Oracle
- 檔案內容比較
- vim內替換檔案內容
- 怎麼樣把man手冊的內容儲存到某個檔案裡面(轉)
- oracle redo internal (2) --- dump內容理解Oracle Redo
- oracle redo internal (2) --- dump內容理解Oracle
- PB讀取Excel檔案內容的方法(轉帖)Excel
- c 刪除檔案中指定的部分內容 (轉)
- 【IMP】使用IMP的SHOW引數輕鬆獲取EXP命令的DUMP檔案內容
- 檔案內容對比工具
- C#分割檔案內容C#
- git檢視檔案內容Git
- properties檔案內容亂碼
- Linux檔案內容操作Linux
- 檢視控制檔案內容
- 提取rpm檔案內容
- 【OCR】無法轉儲OCR備份檔案內容——PROT-302: Failed to initialize ocrdumpAI
- 使用ln同步檔案內容,支援忽略檔案
- [轉載] 瞭解raw trace檔案的各項內容
- vite vue-cli 讀取檔案原始內容 使用base64內容的檔案ViteVue
- 轉儲 控制檔案
- 實用解析dmp檔案內容
- 命令列技巧:分割檔案內容命令列
- php獲取xml檔案內容PHPXML
- node中給檔案追加內容
- mybatis讀取properties檔案內容MyBatis
- js直接列印pdf檔案內容JS
- PowerShell輸出內容到檔案
- 控制檔案包含哪些基本內容