oracle自动exp备份


数据库export自动备份操作过程:

此处设定备份cron脚本在每天的凌晨0点进行。

1. 以root用户身份,修改cron.allow文件属性为可写

# chmod u+w /var/adm/cron/cron.allow

2. 给oracle用户分配定时任务的权限

以root用户身份,在/var/adm/cron/cron.allow文件末尾增添一行

# vi /var/adm/cron/cron.allow

增添内容如下:

oracle

注意:

cron.allow文件在/etc/cron目录下,默认应该有cron.deny,cron.allow需要自己创建;root用户的登陆名必须出现在cron.allow文件中。

[@more@]

3. 以root用户身份,修改cron.allow文件属性为只读

# chmod u-w /var/adm/cron/cron.allow

4. 建立备份相关目录

使用Smitty crfs新建文件系统oradataback,在oradataback目录下建立bin、log目录。

注意:

ü 在新建文件系统时要注意硬盘空间大小;

ü Log目录存放备份日志,bin目录存放执行sh;

ü Oracle由对Log、bin目录读写权限。

5. 以oracle用户身份,执行crontab –e

末尾增添一行如下:

0 00 * * * /oradateback/exp_cron.sh # everyday at 0:00AM execute fulldb backup

格式说明:

minute hour day_of_month month weekday command

其中各个字段取值范围为

Minute 0 = 59;hour 0 = 23;day_of_month 1 = 31;month 1 = 12;weekday 0 = 6(星期天到星期六);command shell命令。

6. 以oracle用户身份,在备份目录(备份目录建立在/oradataback/bin,oracle对此备份目录有读写权限)下建立exp_cron.sh

$ vi exp_cron.sh

#!/bin/ksh

#清除mbox文件内容,完成备份后mbox文件内容太多,需要及时清理

> /home/oracle/mbox

#删除上一天的备份

rm -R /oradataback/exp*

#必须配置oracle环境变量、SID、PATH信息,否则会执行备份失败,在查看mail时有如下报错:

Export: Release 9.2.0.6.0 - Production on Thu Aug 24 23:06:01 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

EXP-00056: ORACLE error 1034 encountered

ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

IBM AIX RISC System/6000 Error: 2: No such file or directory

EXP-00005: all allowable logon attempts failed

EXP-00000: Export terminated unsuccessfully。

export ORACLE_HOME=/home/oracle/app/oracle/product/9.2/

export ORACLE_SID=ora921

export PATH=/home/oracle/app/oracle/product/9.2/bin:/usr/bin

#该配置项中使用的符号是 ` 而不是 ’ (单引号),否则在生成dmp文件时的文件会是exp_sjzdlp114_$thisweek.dmp,无法自动添加系统日期。

thisweek=`date "+%y""%m""%d"`

expfilesjz='/oradataback/exp_sjzdlp114_'$thisweek'.dmp'

explogsjz='/oradataback/log/sjzlog/exp_sjzdlp114_'$thisweek'.log'

exp sjzdlp114/sjzdlp114 owner=sjzdlp114 rows=y indexes=n compress=n buffer=1024000 direct=y feedback=100000 file=$expfilesjz log=$explogsjz

7. 以oracle用户身份,给exp_cron.sh增加执行权限

$ chmod u+x exp_cron.sh

8. 修改完毕后可以通过crontab –l来查看设置是否正确。

$ crontab -l

0 00 * * * /oradateback/exp_cron.sh # everyday at 0:00AM execute fulldb backup

请使用浏览器的分享功能分享到微信等