您好,登錄后才能下訂單哦!
裸設備是指一個磁盤或者分區,它不包含文件系統,所以一個裸設備只能包含一個文件。
通過操作系統來備份raw設備上的文件,需要注意一些細節問題。下面具體討論一下。
Backing Up to Raw Devices on UNIX
Unix下備份raw設備,最常用的就是dd命令。
使用dd命令需要制定一些正確的參數,這些參數是基于你的os以及database的。
Unix和Linux下對裸設備的備份是不同的。我們首先來了解三個概念
Data |
Explanation |
Block size |
也就是bs選項。這個大小是指dd一次拷貝數據大小。這個和Oracle的數據塊大小是沒有關聯的,和os也沒有關聯。 需要注意的是:這個數值的大小影響到你拷貝數據的速度。bs大,拷貝速度會變快。 |
Raw offset |
在一些os上,在裸設備上的文件的開頭是被os使用的。這些存儲空間被叫做raw offset,oracle不會備份和恢復這些內容(字節)。 Note:1.備份的時候要跳過含有offset的字節。 2.現在的一些新的系統,已經沒有offset。 |
Size of Oracle block 0 |
在每個oracle文件的開頭,os系統放置了一個塊叫做block 0。 這個塊的大小和其所在數據文件的oracle塊大小相同。 一般的oracle 代碼不能識別這個塊,但是這個塊是包含在os上的文件大小里面的。就是說oracle認為datafile1大小為100塊,但是os看來,datafile1大小為101塊(100+block 0). |
下面來看一下dd的一些參數意義。
Options |
Specifies |
if |
輸入文件的名字,也就是你要讀取(備份)的文件 |
of |
輸出文件的名字,也就是,你要寫入的文件 |
bs |
用dd拷貝數據的緩存大小(一次拷貝的數據量) |
skip |
如果要備份的raw設備存在offset,用來跳過offset。例如,你要備份的raw設備offset大小為64kB,而你設定的bs為8KB,那么你可以指定specify skip=8 ,這樣你就可以從64KB的地方開始拷貝。 |
seek |
如果你要把數據拷貝到含有offset的raw設備里面,需要設定這個值, 同skip類似。 |
count |
你要拷貝的raw設備的block數。主要還是要看你bs的大小。假如你的數據文件含有100個oracle塊,oracle塊大小為8K,那么你的count就設為100. 也就是說 bs × count = size of your datafile1 當然,count也可以不設定,這樣就把整個raw設備都拷貝下來。有空間的浪費。建議設定count大小。 |
因為raw設備可以作為備份的輸入文件,也可以作為輸出文件,下面給出了不同情況下的參數使用情況。
backing up from …….. |
backing up to …….. |
涉及到的dd參數 |
raw device |
raw device |
if, of, bs, skip, seek, count |
raw device |
file system |
if, of, bs, skip, count |
file system |
raw device |
if, of, bs, seek |
file system |
file system |
if, of, bs |
How to know the size of your file?(確定count)
非常簡單,使用oracle提供的一個小工具:dbfsize (oracle自帶,對數據文件和裸設備都有效)
語法:在oracle用戶下使用 dbfsize your_file_name or raw device
[oracle@standby test]$ dbfsize system01.dbf
Database file: system01.dbf Database file type: file system Database file size: 49920 8192 byte blocks |
我們可以知道,system01.dbf這個數據文件大小:49920 × 8K
那么count=49920+1 – 不要忘記block 0 (上面提到過哦:)
Backing Up with the dd utility on UNIX: Examples
為了使用dd,我們假設了如下的情況:
Note:“=”左右不要有空格
1) 從raw設備備份到raw設備
% dd if=/dev/rsd1b of=/dev/rsd2b bs=8k skip=8 seek=8 count=3841
2) 裸設備到文件系統
% dd if=/dev/rsd1b of=/backup/df1.dbf bs=8k skip=8 count=3841
3) 文件系統到裸設備
% dd if=/backup/df1.dbf of=/dev/rsd2b bs=8k seek=8
4) 文件系統到文件系統,你可以為了提升I/O把bs設為較高的數值
% dd if=/oracle/dbs/df1.dbf of=/backup/df1.dbf bs=1024k
Backing Up to Raw Devices on LNUIX
linux一般是沒有offset的,其他與Unix相同。
Backing Up to Raw Devices on Windows
參考:p://download.oracle.com/docs/cd/B19306_01/backup.102/b14191/osbackup008.htm
驗證dd備份
使用oracle提供的工具 dbv ,支持文件系統文件和裸設備。
語法:dbv file=file_name blocksize=8192
[oracle@standby test]$ dbv file=tools01.dbf blocksize=8192
DBVERIFY: Release 9.2.0.4.0 - Production on Mon Aug 13 12:26:05 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
DBVERIFY - Verification starting : FILE = tools01.dbf
DBVERIFY - Verification complete
Total Pages Examined : 1280 Total Pages Processed (Data) : 0 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 0 Total Pages Failing (Index): 0 Total Pages Processed (Other): 8 Total Pages Processed (Seg) : 0 Total Pages Failing (Seg) : 0 Total Pages Empty : 1272 Total Pages Marked Corrupt : 0 |
如果文件有問題,會有錯誤提示。
對應中文:
檢查的頁總數: 1280
處理的頁總數 (數據): 150
失敗的頁總數 (數據): 0
處理的頁總數 (索引): 127
失敗的頁總數 (索引): 0
處理的頁總數 (其它): 1001
處理的總頁數 (段) : 0
失敗的總頁數 (段) : 0
空的頁總數: 0
標記為損壞的總頁數: 2
流入的頁總數: 0
Highest block SCN : 428223 (0.428223)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。