Oracleテーブル毎に自動バックアップ化
Oracleをテーブル毎に自動バックアップする方法です。
-- exp.sql -- set line 300; select 'D:\oracle\ora81\BIN\exp userid=user/pass@sid' || ' file=user.' || table_name || '.dmp tables=user.' || table_name from user_tables order by table_name ;
【実行】:sqlplus -s user/pass@sid < exp.sql > exp.log (exp.logを整形して実行すればOK。)
完成版:
#!/bin/bash export D=`date +%Y%m%d` echo `date` 'Start Bak Oracle user hoge.' > $LOG find . -mtime +7 -print -exec rm {} \; sqlplus -s user/pass@sid < exp.sql > exp.log grep exp exp.log > exp.sh chmod 755 exp.sh ./exp.sh tar -cf bak.dmp.tar.$D *.dmp gzip -f9 bak.dmp.tar.$D echo `date` 'End Bak Oracle user hoge.' >> $LOG