linux & oracle 数据库自动备份,保留7天数据

上周在客户现场做了oracle数据备份保留7天的脚本,先记录起来,方便日后查阅!!!!

create or replace directory DIR_DP as 'G:\zsoms\datafile'; --DIR_DP路径名
 

#DIR_DP路径名
create or replace directory DIR_DP as 'G:\zsoms\datafile'; 

#查看是否创建成功
SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;

#赋予导出数据的用户权限
grant read,write on directory DIR_DP to system;

 

-------------------------------华丽的分割线---------------------------------------------

#!/bin/bash

#载入环境变量

ORACLE_BASE=/u03/oracle;

export ORACLE_BASE

ORACLE_HOME=/u03/oracle/product/11.2.0;

export ORACLE_HOME

ORACLE_TERM=xterm;

export ORACLE_TERM

PATH=/u03/oracle/product/11.2.0/bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin:/u03/oracle/product/11.2.0/bin:/u03/oracle/product/11.2.0/bin;

export PATH

#设置编码

export NLS_LANG=american_america.ZHS16GBK;

#设置实例

export ORACLE_SID=orcl

echo "Environment variables loaded successfully!"

 

#设置文件命名保证文件名不重复

today=$(date +%Y%m%d)


echo ${today}

#使用数据泵4导出全库

/u03/oracle/product/11.2.0/bin/expdp  system/sys directory=DIR_DP dumpfile=${today}.dmp  logfile=${today}.log FULL=Y

 

echo "Logical backup success"

 

#把dmp数据文件打包起来

cd /back_db
/usr/bin/zip -r  ${today}.zip ${today}.dmp
/usr/bin/zip -r  ${today}.zip ${today}.log
echo "Compression success!"

 

#干掉原来的数据文件

rm -f /back_db/${today}.dmp
rm -f /back_db/${today}.log
echo "Logical backups and logs have been deleted!"

 

#把创建时间超过7天的删掉

find /back_db/  *.zip  -type f -mtime +7 -exec rm  {} \;

echo "Reserver 7 days of backup success!"

 

#顺便把数据的压缩包复制到另一台服务器保存起来

scp -p  /back_db/${today}.zip oracle@IP地址:/OracleBack/data

echo "Remote backup success!"
 

echo "(o_o) The daily tasks have been completed!"

-------------------------------华丽的分割线---------------------------------------------

1、数据库的载入环境要根据自己的服务器实际情况修改!!!

2、DIR_DP这个是数据库的备份路径,要先用sqlplus创建,记注要把路径的读写权限给system用户

3、载入环境变量其实可以偷懒直接使用下面

source /home/oracle/.bash_profile

不过我的服务器不生效,不知道为什么,没去具体查原因!!!

4、数据导入全部导入

impdp system/sys  dumpfile =text.dmp logfile=text.log directory=DIR_DP full=y

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值