Linux下自动备份Oracle数据库并删除指定天数前的备份
说明:
Oracle数据库服务器
操作系统:CentOS
IP:192.168.0.198
端口:1521
SID:orcl
Oracle数据库版本:Oracle11gR2
具体操作:
1、root用户登录服务器
mkdir -p /backup/oracledata #新建Oracle数据库备份目录
chown -R oracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在安装Oracle数据库时设置的)
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接
2、新建Oracle数据库备份脚本
vi /backup/oracledata/ordatabak.sh #新建文件,输入以下代码
#!/bin/sh
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#以上代码为Oracle数据库运行账号oracle的系统环境变量设置,必须添加,否则crontab任务计划不能执行。
# oracle用户的系统环境变量路径:/home/oracle/.bash_profile
date=`date +%Y_%m_%d` #获取系统当前日期时间
days=7 #设置删除7天之前的备份文件
orsid=`192.168.0.198:1521/orcl` #Oracle数据库服务器IP、端口、SID
orowner=OSYUNWEI #备份此用户下面的数据
bakuser=OSYUNWEI #用此用户来执行备份,必须要有备份操作的权限
bakpass=OSYUNWEI #执行备注的用户密码
bakdir=/backup/oracledata #备份文件路径,需要提前创建好
bakdata=$orowner"_"$date.dmp #备份数据库名称
baklog=$orowner"_"$date.log #备份执行时候生成的日志文件名称
ordatabak=$orowner"_"$date.tar.gz #最后保存的Oracle数据库备份文件
cd $bakdir #进入备份目录
mkdir -p $orowner #按需要备份的Oracle用户创建目录
cd $orowner #进入目录
exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog #执行备份
tar -zcvf $ordatabak $bakdata $baklog #压缩备份文件和日志文件
find $bakdir/$orowner -type f -name "*.log" -exec rm {} ; #删除备份文件
find $bakdir/$orowner -type f -name "*.dmp" -exec rm {} ; #删除日志文件
find $bakdir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} ; #删除7天前的备份(注意:{} 中间有空格)
:wq #保存退出
chmod +x /backup/oracledata/ordatabak.sh #添加脚本执行权限
3、vi /etc/crontab #编辑系统任务计划,添加以下代码到最后一行
30 2 * * * oracle /backup/oracledata/ordatabak.sh #每天凌晨2点30分,以oracle用户执行ordatabak.sh备份文件
:wq! #保存退出
service crond restart #重启crond
每天凌晨2点30分,会自动备份数据库到/backup/oracledata/OSYUNWEI目录中,保存为.tar.gz压缩文件,并且删除7天前的备份,即只保留最近7天的数据。
备注:以上所有的代码都是在英文半角状态下输入。
至此,Linux下自动备份Oracle数据库并删除指定天数前的备份教程完成。
Linux下自动备份Oracle数据库并删除指定天数前的备份的更多相关文章
- Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份
说明: Oracle数据库服务器操作系统:CentOSIP:192.168.0.198端口:1521SID:orclOracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务 ...
- Mongodb自动备份数据库并删除指定天数前的备份
1.创建Mongodb数据库备份目录 mkdir -p /home/backup/mongod_bak/mongod_bak_now mkdir -p /home/backup/mongod_bak/ ...
- Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本
说明: 1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是 ...
- Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录
此为在网络上找来的,觉得很好! 实现目的: 对Mongodb数据库日志按天保存,并且只保留最近7天的日志记录. 具体操作: 使用Mongodb数据库自带的命令来切割日志 ps -def | grep ...
- SqlServer批量备份多个数据库且删除3天前的备份
/******************************************* * 批量备份数据库且删除3天前的备份 ************************************ ...
- CentOS Linux自动备份MySQL数据库到远程FTP服务器并删除指定日期前的备份Shell脚本
说明: 我这里要把MySQL数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2011_11_03.tar ...
- linux 下 java 链接oracle数据库
import java.sql.*; public class Hello { private final String oracleDriverName = "oracle.jdbc.dr ...
- Linux实现定时备份MySQL数据库并删除30天前的备份文件
1. MySQL5.6以上版本 2. 修改 /etc/my.cnf 文件 # vim /etc/my.cnf [client] host=localhost user=你的数据库用户 password ...
- 利用crontab系统每天定时备份MySQL数据库及删除指定crontab定时任务
利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的. 1.创建保存备份文件的路径/mysqldata mkdir /mysqldata 2.创建/usr/sbin/ba ...
随机推荐
- Perl读写文件&字符串操作
Perl中读写文件的方法非常简单,可以使用open或sysopen函数来打开文件,linux下运行perl脚本只需 ./XX.pl 或 perl XX.pl. 读文件 open(文件句柄, " ...
- Problem A: 零起点学算法91——找出一个数组中出现次数最多的那个元素
#include<stdio.h> int main() { ],b[]={}; while(scanf("%d",&n)!=EOF) { ;i<n;i+ ...
- [转载]c++常用字符串操作函数
原文地址:c++常用字符串操作函数作者:Valsun 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source ...
- web安全开发指南--认证
1.认证 1.1. 认证和密码管理安全规则 1 认证控制必须只能在服务器端执行. 2 除了指定为公开的资源,对所有其它资源的访问都必须先经过认证. 3 为所有关键凭证实施防"暴力 ...
- Ajax同步异步的区别
1,什么是Ajax Ajax: asynchronous javascript and xml (异步javascript和xml) 其是可以与服务器进行(异步/同步)交互的技术之一. Aja ...
- Cargo, Rust’s Package Manager
http://doc.crates.io/ Installing The easiest way to get Cargo is to get the current stable release o ...
- 使用SQL_TRACE进行数据库诊断
SQL_TRACE是Oracle提供的用于进行SQL跟踪的手段,是强有力的辅助诊断工具.在日常的数据库问题诊断和解决中,SQL_TRACE是非常常用的方法.本文就SQL_TRACE的使用作简单探讨,并 ...
- luci范例
转自:http://www.cnblogs.com/souroot/p/4511760.html LuCI (Lua Configiration Interface) 是OpenWRT 的Web 管理 ...
- 折腾mysql的小坑记录
1.安装 CentOS下先卸载自带的mariadb rpm -qa | grep mariadb mariadb-libs--.el7_2.x86_64 mariadb--.el7_2.x86_64 ...
- docker部署golang+redis聊天室
博客地址:http://www.niu12.com/article/7#####1.项目源码: https://github.com/ZQCard/webchat#####2.项目构成 websock ...