您好,登錄后才能下訂單哦!
裸設(shè)備是指一個磁盤或者分區(qū),它不包含文件系統(tǒng),所以一個裸設(shè)備只能包含一個文件。
通過操作系統(tǒng)來備份raw設(shè)備上的文件,需要注意一些細(xì)節(jié)問題。下面具體討論一下。
Backing Up to Raw Devices on UNIX
Unix下備份raw設(shè)備,最常用的就是dd命令。
使用dd命令需要制定一些正確的參數(shù),這些參數(shù)是基于你的os以及database的。
Unix和Linux下對裸設(shè)備的備份是不同的。我們首先來了解三個概念
Data |
Explanation |
Block size |
也就是bs選項。這個大小是指dd一次拷貝數(shù)據(jù)大小。這個和Oracle的數(shù)據(jù)塊大小是沒有關(guān)聯(lián)的,和os也沒有關(guān)聯(lián)。 需要注意的是:這個數(shù)值的大小影響到你拷貝數(shù)據(jù)的速度。bs大,拷貝速度會變快。 |
Raw offset |
在一些os上,在裸設(shè)備上的文件的開頭是被os使用的。這些存儲空間被叫做raw offset,oracle不會備份和恢復(fù)這些內(nèi)容(字節(jié))。 Note:1.備份的時候要跳過含有offset的字節(jié)。 2.現(xiàn)在的一些新的系統(tǒng),已經(jīng)沒有offset。 |
Size of Oracle block 0 |
在每個oracle文件的開頭,os系統(tǒng)放置了一個塊叫做block 0。 這個塊的大小和其所在數(shù)據(jù)文件的oracle塊大小相同。 一般的oracle 代碼不能識別這個塊,但是這個塊是包含在os上的文件大小里面的。就是說oracle認(rèn)為datafile1大小為100塊,但是os看來,datafile1大小為101塊(100+block 0). |
下面來看一下dd的一些參數(shù)意義。
Options |
Specifies |
if |
輸入文件的名字,也就是你要讀?。▊浞荩┑奈募?/span> |
of |
輸出文件的名字,也就是,你要寫入的文件 |
bs |
用dd拷貝數(shù)據(jù)的緩存大?。ㄒ淮慰截惖臄?shù)據(jù)量) |
skip |
如果要備份的raw設(shè)備存在offset,用來跳過offset。例如,你要備份的raw設(shè)備offset大小為64kB,而你設(shè)定的bs為8KB,那么你可以指定specify skip=8 ,這樣你就可以從64KB的地方開始拷貝。 |
seek |
如果你要把數(shù)據(jù)拷貝到含有offset的raw設(shè)備里面,需要設(shè)定這個值, 同skip類似。 |
count |
你要拷貝的raw設(shè)備的block數(shù)。主要還是要看你bs的大小。假如你的數(shù)據(jù)文件含有100個oracle塊,oracle塊大小為8K,那么你的count就設(shè)為100. 也就是說 bs × count = size of your datafile1 當(dāng)然,count也可以不設(shè)定,這樣就把整個raw設(shè)備都拷貝下來。有空間的浪費。建議設(shè)定count大小。 |
因為raw設(shè)備可以作為備份的輸入文件,也可以作為輸出文件,下面給出了不同情況下的參數(shù)使用情況。
backing up from …….. |
backing up to …….. |
涉及到的dd參數(shù) |
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自帶,對數(shù)據(jù)文件和裸設(shè)備都有效)
語法:在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這個數(shù)據(jù)文件大?。?/span>49920 × 8K
那么count=49920+1 – 不要忘記block 0 (上面提到過哦:)
Backing Up with the dd utility on UNIX: Examples
為了使用dd,我們假設(shè)了如下的情況:
Note:“=”左右不要有空格
1) 從raw設(shè)備備份到raw設(shè)備
% dd if=/dev/rsd1b of=/dev/rsd2b bs=8k skip=8 seek=8 count=3841
2) 裸設(shè)備到文件系統(tǒng)
% dd if=/dev/rsd1b of=/backup/df1.dbf bs=8k skip=8 count=3841
3) 文件系統(tǒng)到裸設(shè)備
% dd if=/backup/df1.dbf of=/dev/rsd2b bs=8k seek=8
4) 文件系統(tǒng)到文件系統(tǒng),你可以為了提升I/O把bs設(shè)為較高的數(shù)值
% 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 ,支持文件系統(tǒng)文件和裸設(shè)備。
語法: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 |
如果文件有問題,會有錯誤提示。
對應(yīng)中文:
檢查的頁總數(shù): 1280
處理的頁總數(shù) (數(shù)據(jù)): 150
失敗的頁總數(shù) (數(shù)據(jù)): 0
處理的頁總數(shù) (索引): 127
失敗的頁總數(shù) (索引): 0
處理的頁總數(shù) (其它): 1001
處理的總頁數(shù) (段) : 0
失敗的總頁數(shù) (段) : 0
空的頁總數(shù): 0
標(biāo)記為損壞的總頁數(shù): 2
流入的頁總數(shù): 0
Highest block SCN : 428223 (0.428223)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。