Oracle自動備份及自動備份步驟_oracle

來源:互聯網
上載者:User

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

一、備份指令碼

1、初始設定變數,記錄開始日誌

#變數sysname=填寫自己的系統名稱syspath=/home/oracle/databak/$sysnamev_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.0export ORACLE_HOME=/home/11g/app/oracle/product/11.2.0/db_1export PATH=$PATH:/home/11g/app/oracle/product/11.2.0/db_1/binexport ORACLE_SID=SID名稱 

3、匯出資料

echo $syspathv_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

下面給大家介紹Oracle 自動備份詳細步驟

背景:Oracle 10g 伺服器,Oracle 10g 用戶端,windowsXP 操作平台
要求:Oracle 資料庫伺服器對資料庫 ytcn 每天自動備份一次。
解決方案:利用任務計劃、批次檔和 Oracle 的 exp 匯出功能,根據日期自動產生 Oracle 備份檔案。詳細步驟:

1 建立批次檔 ytcn.bat

ytcn.bat中詳細內容如下:

@echo off
echo 正在備份銀通網 Oracle 資料庫,請稍等......
exp userid='ytcn/ytcn@ytcn as sysdba' file=e:/bak/ytcn/oracle/ytcn/ytcn%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=e:/bak/ytcn/oracle/ytcn/ytcn%date:~0,4%%date:~5,2%%date:~8,2%.log full=y

echo 任務完成!
其中紅色部分是根據需要進行變動的地方,例如作者的項目名“銀通網”,資料庫 ytcn 使用者名稱 ytcn,密碼 ytcn,要在目錄 "e:/bak/ytcn/oracle/ytcn" 下產生形如 "ytcn20090711.dmp" 和 "ytcn20090711.log" 的備份和記錄檔,全表匯出。
另外:%date%的值在不同的系統、語言版本下可能是不一樣的,控制台裡面地區選項的設定也會改變%date%的值。請先在命令列中測試 echo %date% 的傳回值。%date:~4,10% 是返回日期函數,~後的第一個參數是要截取的起始位置(從0開始),第二個參數是要截取的長度,如沒有則是截取到最後,參數可酌情修改。 如需要準確的時間做為檔案名稱,請用%time%函數,參數同上。

2 添加一個任務計劃 ytcn

開始 > 所有程式 > 附件 > 系統工具 > 任務計劃 > 新增工作計劃 > 下一步 > 在 瀏覽 中尋找剛剛寫好的 ytcn.bat 檔案 > 任務名輸入ytcn,執行這個任務選擇每天,下一步 > 起始時間下午12:00,起始日期2009-7-11,下一步 > 輸入使用者名稱及密碼,使用者名稱要求是管理員權限使用者名稱,下一步 > 完成
點擊"完成"之後,會在任務計劃欄目下新增一個名為"ytcn"的任務計劃,表明已經配置完畢。

備忘:有時點擊"完成" 之後,系統警告

"已建立新任務,但可能不能運行,因為無法設定賬戶資訊。

指定的錯誤是:

Ox80041315:工作排程器服務沒有運行"

這是因為電腦的工作排程器服務沒有啟動起來。開始 > 所有程式 > 管理工具 > 服務,找到"Task Scheduler"服務,發現啟動類型為"已禁用",按右鍵更改為"自動",並把它啟動起來,然後重新添加一次任務計劃 ytcn 就可以了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.