国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

一套實現Oracle異地數據自動備份方案

2024-08-29 13:33:55
字體:
來源:轉載
供稿:網友
在大型商業應用中,數據的異地容災備份十分重要,也必不可少。筆者根據自己的實踐經驗,設計了一套簡潔地實現異地數據自動備份的方案,可供數據庫治理人員參考。文中所有的程序都經過測試,運行良好。 這里模擬的異地運行環境為一主一備兩套Sun Solaris系統,所采用的備份方法為Oracle數據庫提供的標預備份:eXPort。 相關命令 文中主要用到三個命令,這里先單獨介紹一下: export: 將數據庫中數據備份成一個二進制系統文件,它有三種模式: 用戶模式、表模式、整個數據庫模式。還可分為三種備份類型:完全型、積累型、增量型。本文以整個數據庫模式下的完全型為例說明。export使用格式為:exp userid file。 其中:userid的用法為username/userpassWord,即Oracle中的用戶名/口令。userid必須為exp的第一個參數,file指備份文件所放位置及名稱。 FTP: 一般情況下可通過交互方式實現兩臺主機間的數據傳輸,即需要手工輸入目標主機的ip地址、用戶名、口令等。但是當用戶使用ftp命令時,系統將會先在該用戶的注冊目錄中尋找.netrc文件,并首先執行該文件。這樣,我們可以通過編寫一個.netrc的文件來達到自動備份的目的。要注重該文件必須命名為.netrc,且必須存放在啟動ftp命令主機上的用戶注冊目錄里。ftp常用選項: -i:進行多文件傳送時關閉交互提示; -n:在連接之后不進行自動登錄。 本文使用“-i”選項,以關閉交互提示。 crontab: cron是一個永久進程,它由/etc/rc.local啟動執行。cron檢查/var/spool/cron/crontabs/目錄中的文件,找到所要執行的任務和執行任務的時間,并自動完成。該目錄中文件由crontab命令建立。用戶所建立的crontab文件存于/var/spool/cron/crontabs中,其文件名與用戶名一致,本文使用crontab的用戶為Oracle,所建立的文件名也為Oracle。 cron使用者的權限記載在下列兩個文件中: /usr/var/adm/cron/cron.deny和/usr/var/adm/cron/cron.allow。前面的文件中所列的用戶不答應使用crontab命令;后一文件中所列的用戶答應使用crontab命令。crontab命令的常用格式為: crontab -l:顯示用戶的crontab文件的內容; crontab -r:從crontabs目錄中刪除用戶的crontab文件; crontab -e:編輯用戶的crontab文件。 crontab文件每行中有6個字段,前5個為時間設定段,第6個為所要執行的命令。時間段分別為: minutes、hours、day of month、month、day of week,字段之間用空格或Tab分開。字段假如為“*”,表示該字段在所有可能的取值范圍內取值; 假如一個字段是由連字符隔開的兩個數字,表明命令可以在兩個數字之間的范圍內執行。 備份數據庫 設定數據庫的擁有者為Oracle,用戶名為mistest,其口令為test,新建備份目錄為/export/home/oracle/backup。建立一個命名為testbackup的備份文件,文件內容如下:
  ORACLE-HOME=/export/home/oracle/815;export ORACLE-HOME   ORACLE-SID=ora815;export ORACLE-SID   rm /export/home/oracle/backup/*   rq=丶date +“%m%d”丶   /export/home/oracle/815/bin/exp mistest/test file=/export/home/oracle   /backup/exp$rq.dmp log=/exoport/home/oracle/backup/exp$rq.log
說明:前兩句對Oracle數據庫初始化,第3條語句清空備份目錄,第4條語句建立一個取當前日期的變量,以便在最后一條語句的備份文件名里含有當前日期信息。 testbackup編寫完成后,用“chmod +x testbackup”命令授予它可執行權限。異地傳輸 在備份主機里建立一個備份目錄:/data/oradata/newbackup, 在本地主機Oracle用戶的注冊目錄/export/home/oracle里建立一個.netrc文件。設定好備份主機的IP地址,備份主機上的用戶為oraclebk, 口令為testbk2。.netrc文件內容為:
  machine x.x.x..x   login oraclebk
  password testbk2   macdef init   bin   lcd /export/home/oracle/backup   cd /data/oradata/backup   mput *   bye
說明: 前3條語句完成在備份主機上的登錄,第4條語句定義一個名為init的宏,第5條語句表示以二進制傳輸,第6條語句表示進入本地工作目錄,第7條語句表示進入備份主機目錄,第8條語句完成將本地主機/export/home/oracle/backup目錄下的所有文件傳輸至備份主機/data/oradata/backup目錄下,最后一條語句退出ftp會話進程。.netrc文件編寫完成后,用命令“chmod 600 .netrc”使該文件只能被該用戶所訪問。 自動執行 我們以oracle用戶登錄本地主機,用“crontab -e”編寫crontab文件用以啟動自動備份進程。oracle文件內容如下:
  10 23 * * * /export/home/oracle/testbackup   30 23 * * * ftp -i x.x.x.x  
說明:第1條語句指定天天自動在23點10分執行對數據庫的備份,第2條語句指定天天自動在23點半啟動ftp,將備份文件傳輸到備份主機(備份主機為符合語句中指定IP地址的主機)。 Oracle文件只能在Oracle用戶名下用“crontab -e”命令來編輯。編輯完成后,可以在用“crontab-l”命令來查看crontab文件內容,同時在/var/spool/cron/crontabs目錄下查看是否增加了一個Oracle文件。 至此,本地主機可以天天定時備份數據庫,并定時把備份數據傳到備份主機。這樣,較好地實現了Oracle數據異地自動備份,本地主機假如有什么故障,數據有了可靠備份,同時,在一定程度上也減輕了系統治理人員煩瑣、重復的備份工作。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延庆县| 建平县| 巢湖市| 淳化县| 西林县| 肥乡县| 且末县| 若羌县| 广平县| 博乐市| 龙里县| 通渭县| 乐昌市| 宜都市| 雷波县| 怀柔区| 卓资县| 南宫市| 开化县| 北川| 油尖旺区| 双桥区| 微博| 永年县| 沂南县| 雅江县| 丹棱县| 南郑县| 浦县| 利津县| 延寿县| 涞水县| 嘉黎县| 凤凰县| 洛扎县| 河间市| 云林县| 子长县| 珠海市| 凤台县| 镶黄旗|