Oracle11g 备份和恢复的方法
一、按方案備份
可以建立腳本db_export.sh,腳本內容如下:
#!/bin/bash
ORACLE_SID=mydb?????????????????????????????????????????? #數據庫的SID,我這里用mydb
ORACLE_HOME=/usr/oracle/product/11.1??????? #數據庫的安裝目錄,也是bin文件夾所處的路徑
export ORACLE_HOME
export ORACLE_SID
filename=`date +%Y%m%d_%H%M%S`.dmp??? #文件名格式
echo DUMPING DATA TO $filename
cd /usr/oracle/product/11.1/bin???????????????????????????? #進入到可執行命令文件夾內,如果系統配置環境變量路徑了,這個可省略,當然,也可以和下一句合并,一起執行
./expdp 用戶名/密碼 directory=BACKUPDIR dumpfile=$filename????? #執行備份,BACKUPDIR 是在數據庫內用SQL語句設置好的變量,如果沒有則需要提前設置好,如果密碼是含有特殊字符的非標準命名,那就得加上單引號和雙引號,這么寫: '用戶名/"密碼"'
如果就執行一次也可以寫成(假設此次只導出各表結構):
/usr/oracle/product/11.1/bin/expdp 用戶名/密碼 directory=BACKUPDIR dumpfile=data.dmp CONTENT=METADATA_ONLY
當然這里前面的ORACLE_HOME、ORACLE_SID和BACKUPDIR得設置好,CONTENT選項用于指定要導出的內容.默認值為ALL,所以ALL時一般忽略不寫了
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
當設置CONTENT為ALL時,將導出對象定義及其所有數據.為DATA_ONLY時,只導出對象數據,為METADATA_ONLY時,只導出對象定義
二、按方案恢復
可以建立腳本 db_import.sh,腳本內容如下:
ORACLE_SID=mydb
ORACLE_HOME=/usr/oracle/product/11.1
export ORACLE_HOME
export ORACLE_SID
filename=20130407_055001.dmp
echo LOAD DATA FROm $filename
cd /usr/oracle/product/11.1/bin
./impdp 用戶名/密碼 directory=BACKUPDIR dumpfile=$filename TABLE_EXISTS_ACTION=REPLACE
具體各行介紹參看一、按方案備份
?
可以每日用crontab定時執行備份操作,把所有操作日志和提示都存到日志文件中
.../db_export.sh >> .../db_export.log 2>&1
還可以建立腳本定期檢查刪除日志文件,舉例腳本如下(假如刪除擴展名為dmp):
echo start: `date +%F-%T`
find 目錄 -name '*.dmp'?-mtime +5 -exec? rm -rfv {} \;
意為只留5天數據
轉載于:https://blog.51cto.com/hoarn/1175358
總結
以上是生活随笔為你收集整理的Oracle11g 备份和恢复的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为云云容器快速搭建网站实践随记—利用私
- 下一篇: 小故事分享:千里马与苍蝇的故事