linux備份與恢複基礎知識

來源:互聯網
上載者:User

unix系統為每個檔案都記錄這三個不同的時間,第一個是mtime,即修改時間。無論何時,只要檔案內容被改變,mtime的值就會被相應修改。第二個是atime,即訪問時間。只要檔案被訪問(比如運行或讀取),它就會被修改。第三個是ctime,即變更時間。當檔案的屬性發生變化(比如改變許可權或者所有關係)時,ctime的值就會被改變。管理員用ctime來尋找駭客。
備份會改變atime,tar,cpio,dd都會這樣做,dump通過原始裝置來讀取檔案系統,因此它不
會改變atime.
dump的文法。
dump levelunbdsf blkg-factor density size device-name file_system
例子:
把/home完全備份到一個稱做/dev/rmt/0cbn的本地磁帶磁碟機上。
# dump 0unbdsf 126 141000 11500 /dev/rmt/0cbn /home
把/home完全備份到一個稱做/backup/home.dump的光學CD磁碟機上。
# dump 0unbdsf 126 141000 11500 /backup/home.dump /home
以上命令由三個不需要參數的選項(0,u and n)以及四個需要一個協作參數的選項(b,d,s and
f)組成。
命令選項:
0---9 指定DUMP應該進行的備份層級。
b 指定DUMP就應該使用的塊因子。
u 指定DUMP更新dumpdates檔案。
n 完成操作時要通知操作員組的成員。
d(密度) and s(大小) 告訴DUMP備份卷有多大,DUMP用這些數字來估計要使用
何種磁帶。
f 告訴DUMP要使用什麼裝置。
W,w 告訴DUMP執行一次空運行來告訴你什麼檔案系統需要備份。
要避免跨卷DUMP。
restore的文法
restore [trxi]vbsfy blocking-factor file-number device-name
例子:
要恢複一個使用塊因子32建立的DUMP磁帶備份(位於/dev/rmt/0cbn)的全部內容。
# restore rvbfy 32 /dev/rmt/0cbn
有一個使用塊因子32建立的位於/dev/rmt/0cbn中的DUMP磁帶,如果想從該磁帶中恢複文
件/etc/hosts and /etc/passwd.
# restore xvbfy 32 /dev/rmt/0cbn ./etc/hosts ./etc/passwd
建立內容表
# restore tfy device >/tmp/dump.list
命令選項:
決定restore的類型
t 顯示卷的內容。
r 指明卷的整個內容應該被恢複到當前工作目錄下。
x 只提取命令後面所列的檔案。
i 允許執行互動式恢複。
決定restore的行為
v 指定詳細輸出
s 讀取之前跳過的磁帶檔案個數
b 塊因子
f 備份磁碟機的檔案名稱。
y 恢複過程禁止詢問。
使用cpio工具進行備份和恢複
備份的文法
cpio -o[aBcv]
恢複的文法
cpio -i[Btv][patterns]
例子:
在一個本地磁帶上建立/home的一個完全備份。
# cd /home
# touch level.0.cpio.timestamp 使增量備份成為可能。建立時間參考點。
# find . -print|cpio -oacvB > device device可以是一個光學或CD裝置。
# touch level.1.cpio.timestamp 增量備份的時間參考點。
# find . newer level.1.cpio.timestamp -print|cpio -oacvB >device
在遠程磁帶上建立/home的一個完全備份。
# cd /home
# find . -print|cpio -oavB|(rsh remote_system dd of=device bs=5120)
cpio備份用絕對路徑(find /home/file)會限制恢複時的靈活性。它只能恢複到/home/file。
如果用相對路徑(find home/file)就能把它恢複到任何地方。
命令選項
備份類
o 建立一個備份
a 把atime重設成備份前的值
c 用ASCII首部格式
v 用於詳細資料輸出
B,C 指定塊大小,它們是互斥的。
恢複類
i 指定輸入模式,必須是命令列表的第一個。
t 產生內容表,並不實際操作。
k 跳過壞區
d 在需要時建立目錄
m 恢複檔案備份時的原始修改時間,否則的話,預設動作是把恢複後的檔案的修改時間設
為新修改時間
u 無條件覆蓋所有檔案
"*pattern" 恢複匹配該模式的檔案
f "*pattern" 恢複不匹配該模式的檔案
r 互動式重新命名檔案名稱
2004/02/12
tar命令的基本文法
# tar -[cx]vf device pattern
命令選項
c 建立一個存檔
v 詳細資料輸出
W 對封存檔案進行校正
b 塊因子
f 輸出到DEVICE參數所指的裝置,DEVICE可以是檔案,光碟片,磁帶或者標準輸出
(stdout)
pattern 模式比對如“a*”
x 恢複一個存檔
m 正常情況下,恢複後的檔案會保留它們在存檔前的修改時間,選用該選項把修改時間改
成恢復,這與CPIO命令的行為完全相反。
o 把恢複的檔案的所有者設定成你。這是對於非root使用者的預設行為,除非使用該選項,
否則,root提取的檔案都會歸儲存在tar文檔中的使用者和組所有。
p 預設情況下,tar不會恢複所有的檔案屬性。檔案的許可是由當前umask決定,而不是
由原始檔案的許可決定,包括setuid and sticky位。這個選項告訴tar用原始檔案的許可。
d 能夠對存檔和檔案系統進行一個diff比較。
a 重設定訪問時間
F 在卷結束時運行一個指令碼,這可用於進行自動卷交換。
Z z 自動調用compress and gzip程式
dd命令基本文法
# dd if=device of=device bs=blocksize
if= 指定輸入檔案,即dd從中拷貝資料的檔案。它可以是需要備份的檔案或者原始分區,
如果從stdin中讀取資料,那麼該參數不必指定。
of= 指定輸出檔案,即dd發送資料的目的地。它可以是需要備份的檔案或者原始分區,如
果從stdout中讀取資料,那麼該參數不必指定。
bs 指定塊大小,即一次i/o操作中傳輸的資料量。
使用dd和rsh and ssh進行遠程備份(GNU tar and GNU cpio命令能讀取遠程裝置)
讀取遠程裝置上的備份
# rsh remote_host "dd if=device ibs=blocksize" |tar xvBf -
# ssh remote_host "dd if=device bs=blocksize" |tar xvBf -
# ssh remote_host "dd if=device bs=blocksize" |restore rvf -
# ssh remote_host "dd if=device bs=blocksize" |cpio -itv
把備份寫到遠程裝置上
# tar -cvf - . |(rsh remote_system dd of=device obs=block_size)
# dump 0bdsf 64 100000 100000 - |ssh remote_host "dd if=device bs=64k"
# tar -cvf - |ssh remote_host "dd if=device bs=10k"
# cpio -oacvB |ssh remote_host "dd if=device bs=5k"
LINUX裸機復原方法:
1、備份重要的中繼資料 # fdisk -l >/etc/fdisk-l.txt
2、用本地工具備份系統 # cd / ; tar cf - . |gzip -c >/backup/xxx.tar.gz
3、系統損壞,用其它介質引導系統(引導盤,KNOPPIX等)。
4、用中繼資料對硬碟這行分區並格式化。
解出中繼資料檔案 #gzip -dc /xxx/xxx.tar.gz|tar -xvf - ./etc/fstab ./etc/fdisk-l.txt
分區 # fdisk /dev/sda
建立檔案系統 # mke2fs /dev/sda1
5、恢複作業系統資訊 # gzip -dc /xxx/xxx.tar.gz|tar xf -
6、在新根磁碟上恢複引導塊
ORACLE(離線)冷備份
1、關閉資料庫,中止所有允許訪問資料庫的進程。
2、通過備份工具對檔案進行備份(TAR,DD,CPIO)
ORACLE(線上)熱備必要步驟
1、請求ORACLE的所有資料表空間及資料檔案的列表。
2、請求儲存ORACLE歸檔日誌的位置。
3、請求儲存ORACLE控制檔案的位置(可選)。
4、將所有資料表空間置於備份模式,可且用ALTER TABLESPACE tablespace_name BEGIN
BACKUP命令。
5、將每個資料表空間的資料檔案複製到磁碟或磁帶上。
6、去除各個資料表空間的備份模式,可使用ALTER TABLESPACE tablespace_name END
BACKUP命令。
7、切換重做記錄檔。
8、備份控制檔案,可使用BACKUP CONTROL file命令。
9、手工複製控制檔案(可選)。
10、手工複製線上重做日誌。
11、確保所有在備份期間的歸檔重做日誌均儲存完好。
說明:
在資料表空間被置於備份模式時,會有以下事件發生:
1、ORACLE檢查點資料表空間,將所有改變從記憶體儲存到磁碟上。
2、資料表空間中各個資料檔案的SCN標識都“凍結”在當前值,即使對資料檔案進一步更新,
SCN值都不會被更新,直到去除備份模式。
3、ORACLE從屬記錄完整的更改資料庫塊的映像轉向記錄重做日誌。不再記錄某特定的塊是
怎樣改變的,而是記錄整個改變後塊的映像。這就是重做日誌在熱備份過程中迅速增長的原
因。
自動備份的ORABACK.SH指令碼支援特性:
1、備份磁碟或磁帶。
2、自動檢測資料庫配置。
3、基於檔案系統或原始分區備份資料庫。
4、多任務,可以將備份時間減少到75%。
5、使用郵件發送成功或錯誤通知。
6、備份ORATAB中的一個或多個執行個體。
使用方法介紹
1、備份所有執行個體;
# ORABACK.SH
2、備份一個或更多執行個體,要帶上參數ORACLE_SID;
# ORABACK.SH ORACLE_SID1 ORACLE_SIDn
3、如果要在ORABACK.CONF中指定的某一時刻調度備份,則帶上at:
# ORABACK.SH at ORACLE_SID1 ORACLE_SIDn
安裝ORABACK.SH,首先將ORABACK.SH、CONFIG.GUESS以及LOCALPATH.SH放在一
個目錄下,然後核對指令碼頭部特定位置的下列值。
BINDIR 安裝ORABACK.SH的目錄。
ORATAB 設為ORACLE的ORATAB檔案的名稱和位置。
ORACONF 設為ORABACK.CONF檔案的名稱和位置。
ORABACK.CONF配置
1、HOSTNAME.MASTER 系統主機名稱,去掉網域名稱(如AAA.DOMAIN.COM 變成AAA)
2、SKIP 如果今天晚上跳過該主機上的所有備份,可以在這裡輸入“SKIP”
3、COLD DAY 進行冷備份的日期,可以是每周的某一天(FRI,即星期五),或每月
的某一天(03,即第三天)。
4、COLD TIME 進行冷備份的時間,採用24小時制。
5、HOT TIME 一天中進行熱備份的時間,採用24小時制。
6、TYPE DEVICE 非迴繞磁帶裝置,備份到磁帶。(如只允許磁碟備份,則保持空白)。
7、USERS 充許運行指令碼的使用者名稱列表,以|隔開,如ORACLE|DBA,空白表示僅允許
ORACLE使用者運行。
8、PARALLELISM 同時運行資料檔案拷貝數,空缺 = 1.
9、BACKUP DIR 備份目錄。
10、Y 表示在寫入磁碟前先對檔案進行壓縮。
11、MAIL DS 郵件ID列表,用來發關備份成功與否的通知,之間用“,”號分開。
進行完全邏輯備份時需要RESTRICT模式。關閉資料庫,然後用STARTUP RESTRICT OPEN
開啟資料庫,再進行完全匯出。匯出完成後用ALTER DATABASE DISABLE RESTRICTED
SESSION恢複串連。
集萃
鏡像重做日誌 一個ACTIVE或CURRENT日誌組的所有成員均丟失,會造成資料丟失。
鏡像重做日誌,所有日誌群組成員均丟失的可能性就極小。
觀察警示日誌 鏡像控制檔案 使用ARCHIVELOG模式
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.