很多情況下,本地空間不夠用,還想備份怎麼辦,有人說在生産系統挂載一塊盤,其實大可不必,expdp+dblink幫你搞定!
一、測試環境描述
伺服器端:Oracle 11g rac
用戶端:Oracle 11g 單執行個體
二、操作步驟
1. 用戶端配置
$ cd $ORACLE_HOME/network/admin
$ vi tnsnames.ora
ysdb1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.31)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ysdb)
)
2. 用戶端建立dblink(sys使用者建立)
CREATE PUBLIC DATABASE LINK "ysdb1"
CONNECT TO system
IDENTIFIED BY "oracle"
USING 'ysdb1';
3. 用戶端驗證
SQL> select * from dual@ysdb1;
D
-
X
4. 建立目錄
$sudo mkdir /backup
$sudo chown -R oracle:oinstall /backup
set lines 120
col owner for a15
col directory_name for a30
col DIRECTORY_PATH for a60
select * from dba_directories;
create directory dump_dir as '/backup';
grant read,write on directory dump_dir to system;
5. 備份
vi expdp.sh
nohup expdp system/oracle directory=dump_dir dumpfile=roidba_%U.dmp logfile=roidba_expdp.log network_link='ysdb1' schemas=roidba parallel=4 cluster=n COMPRESSION=all reuse_dumpfiles=y encryption=data_only encryption_password=roidba_passwd filesize=30G &
sh expdp.sh
小結:Oracle 資料庫的資料泵備份還是相當的好用,參數比較多,但是每個參數都值得我們去仔細的去測試,對于資料庫備份加密,從安全的角度來說,我們應該這麼做,但是實際環境下,大家确很少用。生産環境700多G得資料量還在跑着備份腳本,我隻好寫點東西,不能浪費時間不是。
本文轉自 roidba 51CTO部落格,原文連結:http://blog.51cto.com/roidba/1952471,如需轉載請自行聯系原作者