热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通过oracle任务计划定期备份数据库

之前涉及到oracle定期备份的问题走的都是操作系统层面的任务计划,下面用oracle的taskscheduler定期执行oracle的备份,详细步骤见下:1备份语句oraclebakfull

之前涉及到oracle定期备份的问题走的都是操作系统层面的任务计划,下面用oracle的taskscheduler定期执行oracle的备份,详细步骤见下:1备份语句/oracle/bak/full

之前涉及到oracle定期备份的问题走的都是操作系统层面的任务计划,下面用oracle的task scheduler 定期执行oracle的备份,详细步骤见下:


1 备份语句/oracle/bak/fullbk.txt如下:

[oracle@dest ~]$ cat /oracle/bak/fullbk.txt

run{

delete noprompt obsolete; # 以不提示的方式删除状态为obsolete的备份(注意备份是否obsolete和备份保留策略有关)

crosscheck backup; # 校验rman资料库中记录的备份是否存在于磁盘或物理设备上,如果不存在,,则更改rman资料库中该备份记录为expired状态

delete noprompt expired backup; # 以不提示的方式删除rman资料库中所有标记为expired状态的记录

crosscheck archivelog all; # 校验rman资料库中所有归档记录,对在物理设备上不存在的归档,在rman资料库中更新其标记为expired

delete noprompt expired archivelog all; #以不提示的方式删除rman资料库中所有标记为expired状态的归档记录

backup incremental level=0 database format '/backup/crm/full-%T-%U.bak'; #做一个0级别的数据库全备份

backup archivelog all format '/backup/crm/arch-%T-%U.bak'; #备份所有归档

backup current controlfile format '/backup/crm/ctl-%T-%U.bak'; #备份当前控制文件

backup spfile format '/backup/crm/spf-%T-%U.bak'; # 备份参数文件

delete noprompt archivelog all completed before 'SYSDATE - 7'; # 以不提示的方式删除7天之前的所有归档

}

注意 以上脚本仅仅是为测试,该脚本对于从上一次全备份到数据库当前状态丢失了一部分归档,或者归档损坏的情况,是无法进行完全恢复的。


2 备份脚本/oracle/bak/rman.sh如下:


[oracle@dest ~]$ cat /oracle/bak/rman.sh

#!/bin/bash

export today=`date +%Y%m%d%H%M`

export ORACLE_HOME=/oracle/app/db1

export ORACLE_SID=CRM

$ORACLE_HOME/bin/rman target sys/DHHZDHHZ log=/oracle/bak/crm.log cmdfile=/oracle/bak/fullbk.txt

mv /oracle/bak/crm.log "/oracle/bak/crm${today}.log"


此脚本让rman调用/oracle/bak/fullbk.txt文本中的备份语句,记录当前备份过程于日志文件,并更改生成的日志文件名为当前日期。


3 在oracle中创建program

begin

dbms_scheduler.create_program (

program_name =>'oracle_bk_program',

program_action =>'/oracle/bak/rman.sh',

program_type =>'EXECUTABLE',

enabled =>true,

comments =>'oracle.sh');

end;

/

查询我们刚刚创建的program如下

select program_name,program_type,program_action,number_of_arguments,enabled from user_scheduler_programs where program_name='ORACLE_BK_PROGRAM';

PROGRAM_NAME PROGRAM_TYPE PROGRAM_ACTION NUMBER_OF_ARGUMENTS ENABL

------------------- ---------------- ---------------------- ------------------- -----

ORACLE_BK_PROGRAM EXECUTABLE /oracle/bak/rman.sh 0 TRUE


注意如果要修改程序,job或者shceduler则可用如下语句

BEGIN

DBMS_SCHEDULER.SET_ATTRIBUTE (

name => '',

attribute => '',

value => '');

END;

/

如下:

BEGIN

DBMS_SCHEDULER.SET_ATTRIBUTE (

name => 'oracle_bk_schedule',

attribute => 'repeat_interval',

value => 'FREQ=DAILY;BYHOUR=15,16,17');

END;

/



4 创建一个scheduler

begin

dbms_scheduler.create_schedule(

schedule_name =>'oracle_bk_schedule',

repeat_interval =>'FREQ=DAILY;BYHOUR=15,16,17',

comments =>'backup start 3pm');

end;

/

查选我们刚刚创建的scheduler如下:

SQL> select schedule_name,repeat_interval from user_scheduler_schedules where schedule_name='ORACLE_BK_SCHEDULE';


SCHEDULE_NAME REPEAT_INTERVAL

------------------------------ ------------------------------------------------------------

ORACLE_BK_SCHEDULE FREQ=DAILY;BYHOUR=17


5 创建一个job,在job中引用创建的程序和scheduler

推荐阅读
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 本文详细介绍了使用 SQL Load 和 Excel 的 Concatenate 功能将数据导入 ORACLE 数据库的方法和步骤,同时介绍了使用 PL/SQL tools 将数据导入临时表的方法。此外,还提供了一个转链接,可参考更多相关内容。摘要共计XXX字。 ... [详细]
  • oracle恢复失败,RMAN数据库恢复失败解决一例
    问题:这是一个从RAC环境的数据库的RAMN备份恢复到一个单机数据库的操作。当恢复数据文件和恢复正常,但在open数据库时出报下面的错误。--rman备 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 推荐一个ASP的内容管理框架(ASP Nuke)的优势和适用场景
    本文推荐了一个ASP的内容管理框架ASP Nuke,并介绍了其主要功能和特点。ASP Nuke支持文章新闻管理、投票、论坛等主要内容,并可以自定义模块。最新版本为0.8,虽然目前仍处于Alpha状态,但作者表示会继续更新完善。文章还分析了使用ASP的原因,包括ASP相对较小、易于部署和较简单等优势,适用于建立门户、网站的组织和小公司等场景。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用Power Design(PD)和SQL Server进行数据库反向工程的方法。通过创建数据源、选择要反向工程的数据表,PD可以生成物理模型,进而生成所需的概念模型。该方法适用于SQL Server数据库,对于其他数据库是否适用尚不确定。详细步骤和操作说明可参考本文内容。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
author-avatar
手机用户2602914627
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有