linux & oracle 数据库自动备份,保留7天数据
2018-01-14 23:02
756 查看
上周在客户现场做了oracle数据备份保留7天的脚本,先记录起来,方便日后查阅!!!!
-------------------------------华丽的分割线---------------------------------------------
#!/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}
#使用数据泵刀导出全库
/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
不过我的服务器不生效,不知道为什么,没去具体查原因!!!
-------------------------------华丽的分割线---------------------------------------------
#!/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}
#使用数据泵刀导出全库
/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
不过我的服务器不生效,不知道为什么,没去具体查原因!!!
相关文章推荐
- linux下Oracle自动备份数据库脚本(归档模式)
- 写LINUX shell脚本 自动备份ORACLE用户下的表 保留30天数据
- Linux平台和Windows平台下两种自动备份MySQL数据的脚本(Shell&Bat)和步骤
- 数据库Oracle数据的异地的自动备份
- window下备份数据库到LinuxFTP服务器上并自动删除7天前数据备份文件
- 分享一个LINUX下备份ORACLE到本地磁盘的脚本EXP,保留7天
- 写LINUX shell脚本 自动备份ORACLE用户下的表 保留30天数据
- Windows系统下Oracle自动备份数据库,删除历史备份数据
- Oracle-->数据库备份与恢复-->数据库库归档模式
- 生产环境Mysql数据库备份脚本,Linux下网站数据定期自动备份与删除脚本,Windows下备份网站目录和数据库
- 数据库Oracle数据的异地的自动备份
- Windows系统下Oracle自动备份数据库,删除历史备份数据
- Linux&Solaris下Oracle自动备份
- 小数据量Oracle数据库自动备份
- 使用批处理自动备份并压缩Oracle数据
- Linux 下 oracle 备份表的时候报:ksh: syntax error: `(' unexpected 错误
- linux自动备份数据库(mysql)
- ORACLE自动备份并且自动FTP到备份机的SHELL脚本(http://doc.linuxpk.com/456.html)
- 自动备份Linux/Unix服务器的数据
- Windows下Oracle 9i数据库文件的自动备份。