天天看點

expdp+dblink 實作遠端備份,特别實用

很多情況下,本地空間不夠用,還想備份怎麼辦,有人說在生産系統挂載一塊盤,其實大可不必,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,如需轉載請自行聯系原作者