基礎linux備份與恢復

發表于:2007-07-04來源:作者:點擊數: 標簽:
unix 系統為每個文件都記錄這三個不同的時間,第一個是mtime,即修改時間。無論何時, 只要文件內容被改變,mtime的值就會被相應修改。第二個是atime,即訪問時間。只要文 件被訪問(比如運行或讀?。?,它就會被修改。第三個是ctime,即變更時間。當文件的屬
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模式

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97