例如计划任务0 0 * * * /data1/backup/expdp_db_bak.sh
expdp_db_bak.sh内容:
#!/bin/sh
. ~/.bash_profile
dst=/data1/backup/db_bak
today=`date +%F`
bakfile=expdp_db_${today}.dmp
logfile=expdp_db_${today}.log
expdp 'user01/778899' DIRECTORY=expdp_dir1 parallel=2 \
dumpfile=$bakfile SCHEMAS=user01 logfile=$logfile COMPRESSION=all
scp -P22 $bakfile oracle@172.16.1.5:/data1/backup/db_bak
exit 0
2、也可以在服务器B用exp直接导出数据
exp 'user01/778899@DB01' file=$bakfile FULL=Y log=bak.log
3、开启归档模式,在服务器A用rman 做全备或增量备份,然后将备份同步到服务器B
指定路径
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/data1/rman/full_%d_%U'
全备份,默认Format
backup incremental level 0 database
增量备份
backup incremental level 1 database
将备份rsync 到服务器B
/usr/bin/rsync -av '-e ssh -p 22' oracle@172.16.1.1:/data1/rman /data1
4、开启归档模式,在服务器AB间配置DATAGURAD,同步数据
打包备份时,dmp和log文件还没生成你可以将crontab命令执行结果重定向一下就看出来了:
0 2 * * */home/tomc/backup/ommb/backup.sh >/tmp/backup.log 2>&1
步骤如下:一、编写备份数据库的shell
1、创建保存shell文件的文件夹,
2、文件内容为:
#!/bin/sh
PATH=$PATH:$HOME/bin
export PATH
ORACLE_BASE=/u01/app/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_HOME
ORACLE_SID=HRDB
export ORACLE_SID
PATH=/usr/sbin:$PATH
PATH=$ORACLE_HOME/bin:$PATH
export PATH
exp fact/fact file=/backup/fact`date +%y%m%d`.dmp
log=/backup/factlog`date +%y%m%d`.log
shell文件编写完毕
一、运行以上的shell文件
看是否能生成备份的.dmp文件,如果能则表示shell文件编写成功
二、然后在此shell
文件的所在终端输入命令,将此文件授权让root用户可以执行:
三、命令为:chmod +x backup.sh
四、然后到root终端编写定时备份的语句
五、语句为:crontab –e
六、输入i
七、输入10 17 ,,,/home/backupscript/backup.sh
八、按下esc建,输入:wq 退出并保存即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)