程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> linux/windows系統oracle數據庫簡單冷備同步,oracle冷備

linux/windows系統oracle數據庫簡單冷備同步,oracle冷備

編輯:Oracle教程

linux/windows系統oracle數據庫簡單冷備同步,oracle冷備


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、導出傳輸導入,時間點需要錯開,這個時間點不好控制

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved