熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

數據庫Oracle數據的異地的自動備份

2022-06-13   來源: Oracle 
正在看的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
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.