Oracle 自動備份

來自: http://www.cnblogs.com/jyyzzjl/p/5189115.html

數據是應用的核心部分,程序壞了換臺機器重新發布就可以,但數據一旦丟失,造成的損失將不可挽回,程序發布到生產后,數據的備份便顯得尤為重要,由于不一定所有的服務均有資金完成高級的備份如RAC和DG,在我們只有一臺數據庫服務器的,暫時采取最簡單的備份策略,export出dmp進行保存。

一、備份腳本

1、初始化變量,記錄開始日志

#變量
sysname=填寫自己的系統名稱
syspath=/home/oracle/databak/$sysname
v_date=$(date '+%Y%m%d%H%M%S')
#日志目錄
logfile=${syspath}/backup.${v_date}.log
#打印開始時間
echo backup_time>>${logfile}
date '+%Y-%m-%d %H:%M:%S' >> ${logfile}

echo "backup jcd">>${logfile}
echo "start_time">>${logfile}
date '+%Y-%m-%d %H:%M:%S' >> ${logfile}

2、進入oracle目錄,設置oracle的參數

#進入oracle目錄,設置oracle變量
cd /home/11g/app/oracle/product/11.2.0
export ORACLE_HOME=/home/11g/app/oracle/product/11.2.0/db_1
export PATH=$PATH:/home/11g/app/oracle/product/11.2.0/db_1/bin
export ORACLE_SID=SID名稱

3、導出數據

echo $syspath
v_date=$(date '+%Y%m%d%H%M%S')
filename=$syspath/jcd${v_date}.dmp
#導出命令
exp username/password file=${filename} compress=n >> ${logfile}
echo "end_time">>${logfile}
date '+%Y-%m-%d %H:%M:%S'>>${logfile}

4、壓縮dump包

gzip ${filename}

5、使用scp,將壓縮后的包傳遞到備份服務器,注意備份服務器上目錄需要預先創建

scp ${filename}.gz remot_name@remot_ip:/home/weblogic/databak/備份目錄

二、設定腳本執行時間

我們設定規則為每天凌晨2點執行一次,采用crontab來進行處理

執行crontab -e,設定如下規則

0 2 * * * sh /home/oracle/db.sh

三、關于scp命令密碼處理

執行scp命令時候,會提示輸入遠程主機的密碼

scp ${filename}.gz remot_name@remot_ip:/home/weblogic/databak/備份目錄

此時有兩種處理辦法進行解決:

1、使用加密文件進行認證

1)進入本地主機的~/.ssh目錄下

2)運行ssh-keygen -t [rsa|dsa],將會生成密鑰文件和私鑰文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub,此處我們使用rsa方式進行

3)將生成的id_rsa和id_rsa.pub權限修改為700

4)將.pub文件復制到遠程主機的~/.ssh目錄,執行cat id_rsa.pub >> ~/.ssh/authorized_keys,將內容拷入authorized_keys文件

5)修改authorized權限為700

完成以上修改之后,從本地主機scp到遠程主機便無須密碼,簡單理解應該是通訊時候,本地主機發送scp指令時,采用本地私鑰進行簽名,遠程主機使用公鑰驗簽后,判斷問主機可以信賴,開放通訊服務。

2、使用expect命令完成密碼交互

expect命令主要用于腳本中出現必須人工干預的情況下,預先輸入指令,模擬的場景為使用expect命令捕捉到提示輸入指令的文字,一旦文字出現,自動使用send命令輸入需要交互的命令。

此處使用為:

  expect "*password:"#此處填寫系統提示文字
  send "your password\r"#此處填寫我們輸入的交互命令
  expect eof
 本文由用戶 qtuy9671 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!