前提:
1、需要知道的信息:
Oracle 的system密码以及要备份数据库账户的账户名和密码
Sco unix 的root密码、Oracle密码
2、会使用vi编辑文件、mkdir创建文件夹、chmod改变文件权限、su 切换用户、文件的执行
3、了解sco unix的用户、组、权限及crontab的用途、Oracle的dmp文件生成
一、建立数据库dmp文件存放目录-
#su - Oracle
$cd /dbf
$mkdir dmpbak
$cd dmpbak
$mkdir zd
$mkdir cm
二、建立导出数据库dmp的文件
1、指定目录
#su - Oracle
$cd bin
2、用vi编辑exp_t文件
$vi exp_t
exp_t内容:
Oracle_HOME=/oracle
Oracle_SID=ora7
Oracle_TERM=ansi
export Oracle_HOME ORACLE_SID ORACLE_TERM
MENU5PATH=$Oracle_HOME/forms30/admin/resource
export MENU5PATH
ORATERMPATH=$Oracle_HOME/forms30/admin/resource
export ORATERMPATH
NLS_LANG=American_America.ZHS16CGB231280
export NLS_LANG
ORA_NLS=/Oracle/ocommon/nls/admin/data
export ORA_NLS
home1='/dbf/dmpbak'
dt1=`date "+%y%m%d%H%M"`
echo ' ' >'$home1/'new_record
file_name="$home1"/zd/zd"$dt1"
echo $file_name >>'$home1'/new_record
$Oracle_HOME/bin/exp zd/zdzd file=$file_name.dmp owner=zd grants=y buffer=204800 rows=y indexes=y compress=y
file_name="$home1"/cm/cm"$dt1"
echo $file_name >>'$home1'/new_record
$Oracle_HOME/bin/exp common/cmcm file=$file_name.dmp owner=common grants=y buffer=204800 rows=y indexes=y compress=y
file='/dbf/dmpbak/new_record'
backup_dir='/Oracle/sec_back'
if [ -d $backup_dir ]
then
for i in `cat $file`
do
cp $i $backup_dir/
done
echo ' '>$file
fi
3、给exp_t权限
$chmod 755 exp_t
4、测试exp_t
$cd /Oracle/bin
$exp_t
5、查看dmp文件是否生成
$cd /dbf/dmpbak/zd
$ls
如果生成dmp文件,证明exp_t可以使用
三、编辑删除dmp文件的脚本(因为不可能备份太多数据,一般留24个小时的就可以了)
1、用vi编辑deldmp文件
# su - Oracle
$cd /Oracle/bin
$vi deldmp
内容:
home1='/dbf/dmpbak'
TZ=CST+16;export TZ
dt1='date"+%y%m%d"'
file_name="$home1"/zd/zd"$dt1"
rm $file_name*.dmp
file_name="$home1"/cm/cm"$dt1"
rm $file_name*.dmp
TZ=CST-16;export TZ
2、检查脚本作用
$/Oracle/bin/deldmp
四、编辑crontab
#crontab -e
增加行:
35 * * * * su - Oracle -c /oracle/bin/exp_t
55 1 * * * /Oracle/bin/deldmp
第1行意思是每天每个小时的35分备份一次dmp文件
第2行意思是每天1点55删除前面一天的dmp内容
本文出自:亿恩科技【www.enkj.com】
服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]
|