正在看的ORACLE教程是:數據庫Oracle數據的異地的自動備份
在大型商業應用中
數據的異地容災備份十分重要
也必不可少
筆者根據自己的實踐經驗
設計了一套簡潔地實現異地數據自動備份的方法
可供數據庫管理人員參考
文中所有的程序都經過測試
運行良好
這裡模擬的異地運行環境為一主一備兩套Sun Solaris系統
所采用的備份方法為Oracle數據庫提供的標准備份
export
相關命令
文中主要用到三個命令這裡先單獨介紹一下:
export: 將數據庫中數據備份成一個二進制系統文件它有三種模式: 用戶模式表模式整個數據庫模式還可分為三種備份類型完全型積累型增量型本文以整個數據庫模式下的完全型為例說明export使用格式為
exp userid file
其中userid的用法為username/userpassword即Oracle中的用戶名/口令userid必須為exp的第一個參數file指備份文件所放位置及名稱
ftp: 一般情況下可通過交互方式實現兩台主機間的數據傳輸即需要手工輸入目標主機的IP地址用戶名口令等但是當用戶使用ftp命令時系統將會先在該用戶的注冊目錄中尋rc文件並首先執行該文件這樣我們可以通過編寫一rc的文件來達到自動備份的目的要注意該文件必須命名rc且必須存放在啟動ftp命令主機上的用戶注冊目錄裡ftp常用選項
i進行多文件傳送時關閉交互提示
n在連接之後不進行自動登錄
本文使用i選項以關閉交互提示
crontab: cron是一個永久進程它由/etc/rclocal啟動執行cron檢查/var/spool/cron/crontabs/目錄中的文件找到所要執行的任務和執行任務的時間並自動完成該目錄中文件由crontab命令建立用戶所建立的crontab文件存於/var/spool/cron/crontabs中其文件名與用戶名一致本文使用crontab的用戶為Oracle所建立的文件名也為Oracle
cron使用者的權限記載在下列兩個文件中: /usr/var/adm/cron/crondeny和/usr/var/adm/cron/cronallow前面的文件中所列的用戶不允許使用crontab命令後一文件中所列的用戶允許使用crontab命令crontab命令的常用格式為
crontab l顯示用戶的crontab文件的內容
crontab r從crontabs目錄中刪除用戶的crontab文件
crontab e編輯用戶的crontab文件
crontab文件每行中有個字段前個為時間設定段第個為所要執行的命令時間段分別為 minuteshoursday of monthmonthday of week字段之間用空格或Tab分開字段如果為*表示該字段在所有可能的取值范圍內取值; 如果一個字段是由連字符隔開的兩個數字表明命令可以在兩個數字之間的范圍內執行
備份數據庫
設定數據庫的擁有者為Oracle用戶名為mistest其口令為test新建備份目錄為/export/home/oracle/backup建立一個命名為testbackup的備份文件文件內容如下
ORACLEHOME=/export/home/oracle/;export ORACLEHOME
ORACLESID=ora;export ORACLESID
rm /export/home/oracle/backup/*
rq=丶date +%m%d丶
/export/home/oracle//bin/exp mistest/test file=/export/home/oracle
/backup/exp$rqdmp log=/exoport/home/oracle/backup/exp$rqlog
說明前兩句對Oracle數據庫初始化第條語句清空備份目錄第條語句建立一個取當前日期的變量以便在最後一條語句的備份文件名裡含有當前日期信息
[NextPage]
異地傳輸
在備份主機裡建立一個備份目錄/data/oradata/newbackup 在本地主機Oracle用戶的注冊目錄/export/home/oracle裡建立一rc文件設定好備份主機的IP地址備份主機上的用戶為oraclebk 口令為rc文件內容為
machine xxxx
login oraclebk
password testbk
macdef init
bin
lcd /export/home/oracle/backup
cd /data/oradata/backup
mput *
bye
說明: 前條語句完成在備份主機上的登錄第4條語句定義一個名為init的宏第5條語句表示以二進制傳輸第6條語句表示進入本地工作目錄第7條語句表示進入備份主機目錄第8條語句完成將本地主機/export/home/oracle/backup目錄下的所有文件傳輸至備份主機/data/oradata/backup目錄下最後一條語句退出ftp會話進程
rc文件編寫完成後用命令chmod
rc使該文件只能被該用戶所訪問
自動執行
我們以oracle用戶登錄本地主機用crontab -e編寫crontab文件用以啟動自動備份進程oracle文件內容如下
* * * /export/home/oracle/testbackup
* * * ftp i xxxx
說明第條語句指定每天自動在點分執行對數據庫的備份第條語句指定每天自動在點半啟動ftp將備份文件傳輸到備份主機(備份主機為符合語句中指定IP地址的主機)
Oracle文件只能在Oracle用戶名下用crontab -e命令來編輯編輯完成後可以在用crontab-l命令來查看crontab文件內容同時在/var/spool/cron/crontabs目錄下查看是否增加了一個Oracle文件
至此本地主機可以每天定時備份數據庫並定時把備份數據傳到備份主機這樣較好地實現了Oracle數據異地自動備份本地主機如果有什麼故障數據有了可靠備份同時在一定程度上也減輕了系統管理人員煩瑣重復的備份工作
上一頁
From:http://tw.wingwit.com/Article/program/Oracle/201405/30857.html