Linux餘Windows系統Oracle資料庫簡單冷備同步

來源:互聯網
上載者:User

Linux餘Windows系統Oracle資料庫簡單冷備同步

我們有一個財務系統比較看重財務資料的安全性,同時我們擁有兩套系統,一個生產環境(Linux),一個應急備份環境(Windows)。備份環境對生產環境實行即時備份同步,備份方式也有兩種:熱備冷備。Oracle熱備一般用Oracle DG服務即可,但Oracle DG服務是要另行收費的,這對於客戶來說也是一筆不小的開支。於是我們採用Oracle冷備的方式,基本流程是:資料庫定時通過expdp方式匯出,然後通過ftp傳到應急備份環境,應急備份環境然後執行impdp匯入,這樣既可完成冷備。

一、Linux Oracle資料庫端:

1、添加crontab定時時間

2、編寫shell指令碼,實現資料庫匯出

#!/bin/bash
yy=`date +%Y`
mm=`date +%m`
dd=`date +%d`
time=$yy$mm$dd

ORACLE_BASE=/oracle/app/oracle;
export ORACLE_BASE;
ORACLE_HOME=$ORACLE_BASE/product/11.2;
export ORACLE_HOME;
PATH=$ORACLE_HOME/bin:$PATH;
export PATH;

f_dmp="FDB_${time}.DMP"
f_log="_F${time}.LOG"

echo "expdp ods/ods@dw1 directory=backup_db dumpfile=$f_dmp logfile=$1$f_log SCHEMAS=meta,ods,mid,app reuse_dumpfiles=y;"
echo "exporting data ..."
expdp ods/ods@dw1 directory=backup_db dumpfile=$f_dmp logfile=$1$f_log SCHEMAS=meta,ods,mid,app reuse_dumpfiles=y;
echo "expdp user data success!"

二、應急備份環境使用ftp傳輸dmp檔案,當然生產環境linux必須得支援ftp

@echo off
SET P_YEAR=%date:~0,4%
SET P_MONTH=%date:~5,2%
SET P_DAY=%date:~8,2%
SET P_DATE=%P_YEAR%%P_MONTH%%P_DAY%
echo oracle> autoftp.txt
echo oracle>> autoftp.txt
echo prompt>>autoftp.txt
echo bin>> autoftp.txt
echo get /home/oracle/FDB_%P_DATE%.DMP D:\data_backup\db\DB_%P_DATE%.DMP>> autoftp.txt
echo get /home/oracle/_F%P_DATE%.LOG D:\data_backup\db\_F%P_DATE%.log>> autoftp.txt
echo mdel /home/oracle/*.DMP>>autoftp.txt
echo mdel /home/oracle/_F*.LOG>>autoftp.txt
echo bye>> autoftp.txt
ftp -s:"autoftp.txt" 127.0.0.1(IP地址)

exit

 

 ftp一般使用ftp -s ftp.txt文本的方式執行ftp操作,以上操作先根據當前時段產生對應的ftp.txt文本

oracle
oracle
prompt
bin
get /home/oracle/FDB_20140729.DMP D:\data_backup\db\DB_20140729.DMP
get /home/oracle/_F20140729.LOG D:\data_backup\db\_F20140729.log
mdel /home/oracle/*.DMP
mdel /home/oracle/_F*.LOG
bye
get /home/oracle/*.dmp C:\20141119.DMP

三、dmp檔案既然傳輸到Windows系統中了,就可以使用impdp來進行匯入操作了,匯入操作當然也要用Windows的定時服務來啟動

@echo off
REM
REM 

SET P_YEAR=%date:~0,4%
SET P_MONTH=%date:~5,2%
SET P_DAY=%date:~8,2%
SET P_DATE=%P_YEAR%%P_MONTH%%P_DAY%
impdp ods/ods@dw directory=backup_db dumpfile=DB_%P_DATE%.dmp  SCHEMAS=meta,ods,mid,app  table_exists_action=REPLACE
pause

這種方式有幾個明顯的缺點:

1、exp匯出,匯入對資料庫效能會有一定的影響

2、資料庫不能即時同步,對於資料同步要求高和資料安全性高的自然不適用

3、匯出傳輸匯入,時間點需要錯開,這個時間點不好控制

Oracle資料庫的冷備及完全恢複 

相關文章

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.