一
當我們使用一個數據庫時
故障和系統故障)影響數據庫系統的操作
失
的一個重要組成部分
二
ORACLE數據庫有三種標准的備份
導出備份是一種邏輯備份
冷備份和熱備份是物理備份(也稱低級備份)
下面我們分別介紹一下這三種備份方法及其特點
(一)
EXPORT/IMPORT是用來將ORACLE中數據移出/移入數據庫
入文件中
它有三種模式
a
b
c
它的備份有三種類型
a
b
c
EXPORT 的命令可以交互式進行
在進行導出備份時我們要考慮一點問題
是在一個特點時自己開始的
據
性
可以保證導出數據一致性
導入的過程是導出的逆過程
IMPORT命令執行的方法和EXPORT方案有關
建
(二)
冷備份發生在數據庫已經正常關閉的情況下
數據庫使用的每個文件都被備份下來
☆所有數據文件
☆所有控制文件
☆所有聯機REDO LOG 文件
☆INIT
值得注意的是冷備份必須是數據庫關閉的情況下完成
作冷備份一般步驟是
SQLDBA>shutdown normal
或
SQLDBA>!tar cvf /dev/rmt/
(三)熱備份(ACHIRELOG)
數據庫需要二十四小時運行
?設置數據庫為automatic archivelog mode
#su
%svrmgrl
svrmgrl>connect internal
svrmgrl>startup mount
svrmgrl>alter database archivelog
svrmgrl>shutdown
svrmgrl>exit
%vi initoracle
加入log_archive_start = true # if you want automatic archiving
log_archive_dest = $ORACLE_HOME/dbs/arch
log_archive_format = log%s
%dbstart
%ps
oracle
注
?full offline entire database backup
的拷貝
%dbshut
%cp /oracle/oradata/oracle
/oracle/oradata/oracle
/oracle/oradata/oracle
/oracle/oradata/oracle
/oracle/oradata/oracle
/oraclecle/app/oracle/product/
/oracle/app/oracle/product/
/oracle/app/oracle/product/
/oracle/oradata/oracle
/oracle/oradata/oracle
/oracle/oradata/oracle
/oracle/oradata/oracle
<backup directory>
%dbstart
注:以上*
%exit
%tar uvf /dev/rmt/
注:如果為oracle
#su
%svrmgrl
%svrmgrl>connect internal
%svrmgrl>alter tablespace billsp begin backup
%svrmgrl>alter tablespace billtmpsp begin backup
%svrmgrl>alter tablespace billrlbksp begin backup
%svrmgrl>alter tablespace system begin backup
%svrmgrl>alter tablespace rbs begin backup
%svrmgrl>alter tablespace temp begin backup
%svrmgrl>alter tablespace tools begin backup
%svrmgrl>alter tablespace users begin backup
%svrmgrl>host cp all datafile to the backup storage
%svrmgrl>alter tablespace billsp end backup
%svrmgrl>alter tablespace billtmpsp end backup
%svrmgrl>alter tablespace billrlbksp end backup
%svrmgrl>alter tablespace system end backup
%svrmgrl>alter tablespace rbs end backup
%svrmgrl>alter tablespace temp end backup
%svrmgrl>alter tablespace tools end backup
%svrmgrl>alter tablespace users end backup
做一個sql文件
The billing system can recover to the point of failure when the failure occur
七
以下是對"/etc/passwd"文件的恢復
(
(
# rsh www mt
( 找到最近的磁帶
#rsh www mt
# ufsrestore if www:/dev/rmt/
ufsrestore > ls
.
etc/
ufsrestore > cd etc
ufsrestore > ls
./etc
passwd
ufsrestore > add passwd
Warnign
ufsrestore > verbose
verbose mode on
ufsrestore > extract
Extract requested files
You have not read any volumes yet .
Unless you know which volume your file(s) are on you should start witch the last volume and work to wards
the first.
Specify next volume #
extract file ./etc/passwd
Add links
Set directory mode
set owner /mode for
Directories already exit
ufsrestore >quit
熱備份可以在數據庫打開打情況下進行
要恢其原來狀態
令可改變備份的模式
一般情況
後一個被填滿後
它作一個拷貝
少完成備份所需的時間
在作熱備份之前
規定archive redo log 文件的位置
log_archive_dest=/wwwdg/oracle/arch/arch
log_archive_start=true
一旦數據庫運行在archivelog狀態下
a
b
c
a
b
c
d
在熱備份運行之前log_archive_dest目錄可能已滿
驟
sqldba lmode=y <<EOF arch
archive log stop;
exit
EOF arch
FILES=
sqldba lmode=y<<EOF arch
connect internal
archive log start;
exit
EOF arch
tar
rm
邏輯備份與物理備份的結合
前面介紹了三種備份的方法
特性
方 法
類 型
恢 復 特 性
EXPORT導出
邏輯型
可以將任何數據庫對象恢復到它被導出時的狀態
乻hutdown
?將最近copyes of datafile
?%svrmgrl
?svrmgrl>connect internal
…svrmgrl>startup mount pfile=filename exclusive
?svrmgrl>alter database recover;
注:將自動恢復數據到the point of failure;
? svrmgrl>alter database open;
?當archive log文件過多時
#su
%svrmgrl
svrmgrl>connect internal;
svrmgrl>archive log list;
#此處標有current log sequence
Svrmgrl>exit
$cd /billdg/oracle/app/oracle/product/
$ rm
冷 備 份
物理型
可將數據庫到它被關閉的狀態
熱 備 份
物理型
可將數據庫恢復到任一時間點的狀態
當數據庫比較小時
終執行總包括邏輯和物理
另外
附錄
tar命令
tar option [arguments] filename
option:
c:創建一個由命令行指定的新的tarfile
t:列出tarfile中的內容
x:打開tarfile;
f:使用其後的filename 或/dev/rmt/
v:列出被恢復的文件名
p:恢復文件
example:
#tar cvf /dev/rmt/
備份/root 下的所有內容
#tar tvf /dev/rmt/
列出磁帶上的所有內容
#tar xvf /dev/rmt/
將磁帶上的/oracle目錄中的內容恢復到當前目錄中
導出選項
關鍵字 內 容
USERID 運行導出命令的帳號的用戶名/口令
BUFFEER 用來取數據行的緩沖區的大小
FILE 導出轉儲文件的名字
COMPRESS 導出是否應該壓縮有碎片的段成一個范圍
子句
GRANTS 導出時否要導出數據庫對象上的授權
INDEXES 是否要導出表上的索引
ROWS 是否應導出行
對象的DDL
CONSSTRAINTS 是否導出表舊的約定條件
FULL 如設為
OWNER 要導出的一系列數據庫帳號
作
TABLES 要導出的一系列表
RECORDLENGTH 轉儲導出文件日志的長度(以字節為單位)
非要在兩個不同操作系統中傳遞導出文件
INCTYPE 正在執行的導出操作的類型(有效值有
CUMULATIVE
RECORD 在增量導出類型中的一個標記
中日志導出的表中
PARFILE 要傳遞給導出的參數文件的名字
口項
ANALYZE 標明是否將移對象的統計信息寫入導出轉儲文件中
CONSISTENT 標明是否保留所有導出對象的讀取一致復制
LOG 導出日志將要寫入的文件的名字
MLS 標明是否要導出MLS 標號
MLS_LABEL_ 規定了MLS標號的格式
導入選擇項
USERID 運行導入命令的帳號的用戶名/口令
BUFFEER 用來取數據行的緩沖區的大小
FILE 導入轉儲文件的名字
SHOW 規定文件內容是否被顯示
EGORE 標明在執行
在導入的對象已經存在時
FULL 如設為
FROMUSER 在FULL=N的情況下
對象應從導出轉儲文件中讀取
TOUSER 一系列數據庫帳號
GRANTS 導入時否要導入數據庫對象上的授權
INDEXES 是否要導入表上的索引
ROWS 是否應導入行
象的DDL
FULL 如設為
TABLES 要導入的一系列表
RECORDLENGTH 轉儲導入文件日志的長度(以字節為單位)
非要在兩個不同操作系統中傳遞導入文件
INCTYPE 正在執行的導入操作的類型(有效值有
CUMULATIVE
PARFILE 要傳遞給導入的參數文件的名字
口項
ANALYZE 標明是否將移對象的統計信息寫入導入轉儲文件中
LOG 導入日志將要寫入的文件的名字
MLS 標明是否要導入MLS 標號
熱備份的命令文件
ORACLE_SID=oracle
ORACLE_HOME=/wwwdg/oracle
sqldba lmode=y<<EOF arch
connect internal
alter tablespace SYSTEM begin backup;
!tar
alter tablespace SYSTEM end backup;
alter tablespace BWT begin backup;
!tar
alter tablespace BWT end backup;
archive log stop
exit
EOF arch
FILES=
sqldba lmode=y<<EOF arch
connect internal
archive log start;
exit
EOF arch
tar
rm
sqldba lmode=y<<EOFarch
alter database backup controlfile to
exit
EOF arch
tar
From:http://tw.wingwit.com/Article/program/Oracle/201311/17668.html