Linux下oracle定時備份

2021-07-25 05:02:03 字數 2235 閱讀 6981

1. 設定資料庫空表可匯出

用pl/sql登入資料庫(或者其他工具)

執行:

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
然後執行查詢出來的語句;

2. 檢視資料庫的字符集

資料庫的字符集必須和linux下設定的環境變數一致,不然會有亂碼。

以下連個sql語句都可以查到:

select * from nls_database_parameters t where t.parameter='nls_characterset';

select * from v$nls_parameters where parameter='nls_characterset';

查詢結果為:nls_characterset   zhs16gbk

3. 用oracle使用者登入oracle伺服器,建立相關的目錄

建立備份資料的目錄 mkdir -p /home/oracle/dbbak/data

建立備份指令碼目錄 mkdir -p /home/oracle/dbbak/shell

建立匯出資料日誌目錄 mkdir /home/oracle/dbbak/log

4. 在指令碼目錄下建立指令碼檔案

vi /home/oracle/dbbak/shell/dbbak.sh

複製以下指令碼

#!/bin/sh

export oracle_home=$oracle_base/product/11.2.0/dbhome_1

export oracle_sid=investtest

export path=$path:$home/bin:$oracle_home/bin

export data_dir=/home/oracle/dbbak/data

export logs_dir=/home/oracle/dbbak/log

export deltime=`date -d "15 days ago" +%y%m%d`

export bakuptime=`date +%y%m%d%h%m%s`

export nls_lang=american_america.zhs16gbk

mkdir -p $data_dir

mkdir -p $logs_dir

echo "starting bakup..."

echo "bakup file path $data_dir/$bakuptime.dmp"

exp invest_test2/gkjr123@investtest file=$data_dir/investtest$bakuptime.dmp log=$logs_dir/investtest$bakuptime.log

echo "delete the file bakup before 15 days..."

rm -rf $data_dir/investtest$deltime*.dmp

rm -rf $logs_dir/investtest$deltime*.log

echo "delete the file bakup successfully. "

echo "bakup completed."

export deltime=`date -d "15 days ago" +%y%m%d`,配置保留資料的時間,這裡是保留15天,根據自己需要和伺服器的儲存空間修改;

exp invest_test2/gkjr123@investtest file=$data_dir/investtest$bakuptime.dmp log=$logs_dir/investtest$bakuptime.log,這是oracle資料匯出語句,全表匯出,可以根絕自己的需要去修改。

5. 修改指令碼檔案的執行許可權

chmod 777 dbbak.sh

測試是否可以執行:./ dbbak.sh

export terminated successfully without warnings.表示匯出沒有問題,如果有問題,解決

6. 新增定時任務

在oracle使用者下

crontab –e

插入:59 23 * * * /home/oracle/dbbak/shell/dbbak.sh

表示每天的23點59分執行指令碼

注:時間自行設定,設定規則網上自行搜尋

linux下Oracle實現資料的自動備份

由於近期工作的原因,要做乙個簡單的oracle資料自動備份,因為是乙個單體應用,所以就利用了linux的定時任務和oracle的exp進行資料備份,如果有不足和需要改正的地方,歡迎各位高手指正,不勝感激。下邊就開始具體的操作 mkdir p u01 oracle bak data 新建資料備份目錄 ...

mac定時備份mysql mysql定時備份

1.cron介紹 分 時 日 月 星期 要執行的命令 crontab命令的一般形式為 crontab u user e l r 其中 u 使用者名稱。e 編輯crontab檔案。l 列出crontab檔案中的內容。r 刪除crontab檔案。2.mysqldump介紹 add drop table ...

Linux下Oracle設定定時任務備份資料庫

資料庫的字符集必須和linux下設定的環境變數一致,不然會有亂碼。以下兩個sql語句都可以查到 select from nls database parameters t where t.parameter nls characterset select from v nls parameters ...