SCO unix定时备份Oracle数据库dmp文件

发表于:2007-05-26来源:作者:点击数: 标签:
前提: 1、需要知道的信息: oracle 的system密码以及要备份 数据库 账户的账户名和密码 Sco unix 的root密码、oracle密码 2、会使用vi编辑文件、mkdir创建文件夹、chmod改变文件权限、su 切换用户、文件的执行 3、了解sco unix的用户、组、权限及crontab的

前提:

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内容

以上为个人总结,已经经过试验,不足之处会进行改进,希望对大家有所帮助.

原文转自:http://www.ltesting.net