linux下備份 還原oracle資料庫,親測有效

2021-09-29 05:07:43 字數 2381 閱讀 6396

1、新建oracle資料庫備份目錄

mkdir -p /back_db

2、新建oracle資料庫備份指令碼

vi /back_db/oraclebackups.sh

3、指令碼內容:

echo 'environment variables loaded successfully!'

backdata=$orowner"_"$(date +%y%m%d-%h%m).dmp

backlog=$orowner"_"$(date +%y%m%d-%h%m).log

ordataback=$orowner"_"$(date +%y%m%d-%h%m).tar.gz

backdir=/back_db

echo $backdir

cd $backdir

echo 'oracle backup...'

exp ssss1/ss1234 file=$backdir/$backdata log=$backdir/$backlog

tar -zcvf $ordataback $backdata $backlog

#刪除臨時檔案

find $backdir  -name "*.log" -exec rm {} \;

find $backdir  -name "*.dmp" -exec rm {} \;

#刪除半月之前的壓縮檔案(備份只儲存半月,可以自定義)

find $backdir  -name "*.tar.gz" -mtime +$days  |xargs rm -rf;

echo 'compression success!'

注:1、使用者名稱/密碼 寫自己用的即可;

2、另外刪除15天前的備份tar.gz檔案;

3、 新增指令碼執行許可權 x=775

chmod +x /back_db/oraclebackups.sh 

5、新增定時任務

crontab -e 

00 02 * * * sh /back_db/oraclebackups.sh 

#每天凌晨2點,執行 oraclebackups.sh備份檔案

* */2 * * * sh /back_db/oraclebackups.sh

#每兩小時,執行 oraclebackups.sh備份檔案

6、重啟crond

service crond restart 

7、完事

步驟要點:

2、使用者的執行許可權要檢查是否有;

2、設定定時任務時,oracle的環境變數不能錯,否則不能執行;

注:自己執行時遇到的問題彙總:

我用的root使用者執行定時任務。

所用命令: 

crontab -l 檢視定時任務

crontab -e 修改定時任務

00 02 * * * sh /back_db/oraclebackups.sh #每天凌晨兩點執行指令碼

開啟crond  service crond start

關閉crond  service crond stop

重啟crond  service crond restart 

指令碼發現的問題

1.執行指令碼發現root賬號下 exp命令  未定義

解決: /root/.bash_profile 增加oracle的配置檔案

將 /home/oracle/.bash_profile (此檔案為oracle的配置檔案) 檔案下的配置檔案複製到 /root/.bash_profile 裡邊

2.執行定時任務時候,總要互動輸入密碼問題

解決: 

exp ssss1/ss1234 file=$backdir/$backdata log=$backdir/$backlog

sqsc1  為賬號  sqsc1234 為密碼 

之前互動讓輸入資料庫密碼是因為密碼中有特殊符號導致linux將特殊符號編譯了。重設密碼後解決

3.刪除臨時檔案命令要注意:

」 rm {} \; 「 這部分  』}『 跟 』\『 中間要有個空格,不然命令不執行。

#********************====備份還原****************************************===

1.解壓備份的檔案

2.  imp ssss1/ss1234 file=/back_db/db_191031-0948.dmp log=/back_db/db_191031-0948.log full=y ignore=y

注:提示imp命令不存在,需要設定環境變數

/root/.bash_profile 增加oracle的配置檔案

將 /home/oracle/.bash_profile (此檔案為oracle的配置檔案) 檔案下的配置檔案複製到 /root/.bash_profile 裡邊

Linux備份還原

無論是 windows 還是 linux 備份都是乙個非常好的習慣。linux下,備份是一件非常簡單的事情,乙個命令備份,乙個命令還原,so easy 備份命令 sudo tar cvpzf backup.tgz exclude proc exclude lost found exclude mnt...

linux下的Oracle備份與還原

su oralce使用者下,system使用者進入sqlplus操作 建立表空間 create tablespace eas d haiya standard datafile kingdee oradata oradata hy eas d haiya standard.ora size 5000...

Linux下如何實現備份和還原

最近在配置centos的伺服器,我們都知道配置過程可能很複雜,有時還可能出錯,總不能配置出錯了無法恢復就重灌系統吧,所以說做好系統備份是很重要的。linux的備份其實就是把檔案統一打個包存起來,等到要恢復時,再用這些檔案覆蓋掉原來的檔案就好啦。切換到root使用者的根目錄下 必須是根目錄,要不然有的...