名站网址导航为大家提供关于数据库教程相关的教程网站知识。
Linux下通过脚本自动备份Oracle网站数据库并删除指定天数前的备份
这篇文章主要介绍了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是在安装,系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接,2、新建Oracle网站数据库备份脚本,vi /backup/oracledata/ordatabak.sh #新建网站网站文件,输入以下具体相关代码,#以上具体相关代码为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/$oro,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天的数据。,备
当咱们不小心误操作办法致使网站数据库数据丢失、改变时, 需要对网站数据库对象做基于时间点的恢复,找到咱们需要的数据,这个时间点不能认为精确确定,咱们可以通过对oracle日志进行分析,而获得无操作办法的精确时间点。
oracle db提供了一个分析日志包logmnr
logminer 相关工具的使用
-------对redo log 进行挖掘,找出在某个时间点所作的DDL 或DML 操作办法(包括:时间点、datablock scn 、sql数据库语句)
实验测试
- SQL> select name from v$archived_log;
- NAME
- --------------------------------------------------
- /oracle/arch1/1_2_883536782.dbf
- SQL>
- SQL>
- SQL> delete from scott.t1;
- 576 rows deleted.
- SQL> alter system archive log current;
- System altered.
- SQL> create table scott.t6 as select * from scott.emp;
- Table created.
- SQL> alter system archive log current;
- System altered.
- SQL> select name from v$archived_log;
- NAME
- --------------------------------------------------
- /oracle/arch1/1_2_883536782.dbf
- /oracle/arch1/1_3_883536782.dbf
- /oracle/arch1/1_4_883536782.dbf
--启动log miner添加要分析的日志
- SQL> execute dbms_logmnr.add_logfile(logfilename=>'/oracle/arch1/1_2_883536782.dbf',options=>dbms_logmnr.new);
- PL/SQL procedure successfully completed.
--添加需要分析的日志
- SQL> execute dbms_logmnr.add_logfile(logfilename=>'/oracle/arch1/1_3_883536782.dbf',options=>dbms_logmnr.addfile);
- PL/SQL procedure successfully completed.
- SQL> execute dbms_logmnr.add_logfile(logfilename=>'/oracle/arch1/1_4_883536782.dbf',options=>dbms_logmnr.addfile)
- PL/SQL procedure successfully completed.
--执行log miner
- SQL> execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
- PL/SQL procedure successfully completed.
--查询分析结果
- SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
- Session altered.
- SQL> select username,scn,timestamp,sql_redo from v$logmnr_contents where seg_name='T1';
- USERNAME SCN TIMESTAMP
- ------------------------------ ---------- -------------------
- SQL_REDO
- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- delete from "SCOTT"."T1" where "EMPNO" = '7782' and "ENAME" = 'CLARK' and "JOB" = 'MANAGER' and "MGR" = '7839' and "hIREDATE" = TO_DATE('1981-06-09 00:00:00', 'yyyy-mm-dd hh24:mi:ss') and "SAL" = '245
- 0' and "COMM" IS NULL and "DEPTNO" = '10' and ROWID = 'AAAVbSAAFAAAACXABi';
- SYS 1494545 2015-06-28 04:24:44
- delete from "SCOTT"."T1" where "EMPNO" = '7839' and "ENAME" = 'KING' and "JOB" = 'PRESIDENT' and "MGR" IS NULL and "hIREDATE" = TO_DATE('1981-11-17 00:00:00', 'yyyy-mm-dd hh24:mi:ss') and "SAL" = '500
- 0' and "COMM" IS NULL and "DEPTNO" = '10' and ROWID = 'AAAVbSAAFAAAACXABj';
- SYS 1494545 2015-06-28 04:24:44
- delete from "SCOTT"."T1" where "EMPNO" = '7844' and "ENAME" = 'TURNER' and "JOB" = 'SALESMAN' and "MGR" = '7698' and "hIREDATE" = TO_DATE('1981-09-08 00:00:00', 'yyyy-mm-dd hh24:mi:ss') and "SAL" = '1
- 。。。。。
--结束log miner 分析
- SQL> execute dbms_logmnr.end_logmnr;
- PL/SQL procedure successfully completed.
以上就是本文的全部内容,希望大家可以喜欢。
关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。