LinuxシステムのOracleデータベースの定期バックアップ
1.OracleユーザーでLinuxシステムにログインします.現在他のユーザーを使用している場合は、次のコマンドを使用してoracleユーザーにアクセスします.
1、バックアップスクリプトの作成
注意:ここで「export NLS_LANG=AMERICAN_AMERICA.AL 32 UTF 8」は、データベースの文字セットと同じでなければバックアップが発生しません.
次のコマンドを入力して表示
2、タイミング実行タスクの追加
コマンドの入力
Oracleユーザーのタイミングタスク実行リストに入ります.
入力
ここでは、毎晩23時からバックアップを開始します.具体的な時間は、LinuxのCron式を参照して、さまざまな時間メカニズムを提供します.
Cron式:http://blog.csdn.net/ethanzhao/article/details/4406017
su - oracle
1、バックアップスクリプトの作成
#!/bin/sh
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export DATA_DIR=/opt/backup/data
export LOGS_DIR=/opt/backup/logs
export DELTIME=`date -d "7 days ago" +%Y%m%d`
export BAKUPTIME=`date +%Y%m%d%H%M%S`
mkdir -p $DATA_DIR
mkdir -p $LOGS_DIR
echo "Starting bakup..."
echo "Bakup file path $DATA_DIR/$BAKUPTIME.dmp"
exp andacms/andacms@orcl file=$DATA_DIR/$BAKUPTIME.dmp log=$LOGS_DIR/$BAKUPTIME.log
echo "Delete the file bakup before 7 days..."
rm -rf $DATA_DIR/$DELTIME*.dmp
rm -rf $LOGS_DIR/$DELTIME*.log
echo "Delete the file bakup successfully. "
echo "Bakup completed."
注意:ここで「export NLS_LANG=AMERICAN_AMERICA.AL 32 UTF 8」は、データベースの文字セットと同じでなければバックアップが発生しません.
EXP-00091: Exporting questionable statistics.
次のコマンドを入力して表示
SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
PARAMETER----------------------------------------------------------------VALUE----------------------------------------------------------------
NLS_CHARACTERSET AL32UTF8
2、タイミング実行タスクの追加
コマンドの入力
crontab -e
Oracleユーザーのタイミングタスク実行リストに入ります.
入力
0 23 * * * /opt/backup/auto_backup.sh
ここでは、毎晩23時からバックアップを開始します.具体的な時間は、LinuxのCron式を参照して、さまざまな時間メカニズムを提供します.
Cron式:http://blog.csdn.net/ethanzhao/article/details/4406017