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 ...