知识大全 利用作业备份和恢复数据库

Posted 数据库

篇首语:多诈的人藐视学问,愚鲁的人羨慕学问,聪明的人运用学问。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 利用作业备份和恢复数据库相关的知识,希望对你有一定的参考价值。

  备份和恢复是数据库管理员维护数据库安全性和完整性的重要操作 虽然各种数据库系统本身提供了备份和恢复数据库的功能 但是操作步骤比较烦琐 本文以SQL Server为例 总结了常用的几种备份和恢复数据库的方法 分析了作业机制的原理 并提出了一种以作业机制实现恢复和备份数据库的方法 利用此方法 用户不必打开数据库管理器 在应用程序客户端就可以方便地实现数据库的备份和恢复   常用方法   备份可以防止由于表和数据库遭受破坏 介质失效或用户错误而造成的数据灾难 恢复是在意外发生后 利用备份来恢复数据库的操作 任何数据维护系统都必须具有备份和恢复数据库的功能   SQL Server 的管理器Enterprise Manager是一个强大的管理工具 能完成很多功能 备份和恢复数据库是其中的一项基本功能 借助这个管理工具有三种常用的方法实现备份和恢复数据库    .完全手工方式   首先选择要备份和恢复的数据库 然后单击鼠标右键 在快捷菜单中的 ALL TASKS 下选择备份或者恢复数据库 利用这种方式 用户要进行多步操作 其中要涉及到一些参数的设置 使用起来容易出错 而且一旦操作失误可能带来很大的损失    .半手工方式   这种方式要求管理员事先建立备份或者恢复数据库的作业 待到需要备份或者恢复数据库的时候 管理员打开 SQL Server Enterprise Manager 在 Manager 里找到相应的作业 然后执行 这种方式虽然是基于作业方式实现的 但是管理员必须打开数据库管理器 在繁多的作业中进行选择 一旦选择错误并执行 就有可能带来意想不到的损失    .全自动方式   这种方式也要求管理员事先建立好恢复或者备份数据库的作业 然后定制一个执行计划 让计算机在特定的条件下自己执行备份和恢复操作 这种方式看起来简单 省事 但是机器在异常情况下(如掉电) 就不能按照计划执行了   这几种实现和恢复数据库的方法都需要用户对Enterprise Manager相当熟悉 而且处理步骤较为烦琐 操作起来容易发生失误 因此我们需要一种更加简便可行的实现方法   作业机制的工作原理   作业是Enterprise Manager提供的一种定期处理数据的方法 可以在应用程序客户端启动和关闭   作业机制由控制体和执行体两大部分构成(如图 所示)     〈p align= center 〉〈img src= 〉〈/p〉  控制体是控制作业执行的实体 靠具体编程实现 控制体实现时 要调用MSDB数据库的系统存储过程Sp_start_job Sp_end_job等 同时要访问表sysjobhistory 获取作业执行状态   执行体是作业执行的整体 在应用系统投入使用时建立   控制体由用户触发 启动相应的作业 交由执行体执行 在执行过程中 执行体执行的每一步的状态信息都要写入MSDB数据库的sysjobhistory表里 同时 控制体不断获取执行状态信息 根据这些信息 控制体决定继续执行还是停止该作业 在作业执行完毕或者出错停止后 控制体向用户反馈执行结果   实现备份和恢复   为了便于说明 本文以PB实现的一个具体系统为例 来介绍数据库的备份和恢复    .执行体的建立   ●建立应用系统的数据库XCCXXT   ●建立备份数据库所使用的设备XCCXXTBAK   DAT   ●建立备份作业XCCXXT BACKUP 其中命令行为BACKUP DATABASE XCCXXT TO DISK= C \\MSSQL \\DATA\\BACKUP\\XCCXXTBAK DAT    .控制体的实现   在相应对象的 备份 按钮的click事件中写入以下代码   //声明相应的变量   string ls_database ls_pass ls_date ls_time   integer li_gs li_gs_o   transaction login_trans   login_trans = create transaction   if messagebox( 提示信息 是否真的要进行数据备份操作? Exclamation! OKCancel! )〈〉 then return   //连接MSDB数据库   login_trans database = msdb   connect using login_trans;   if login_trans sqlcode 〈〉 then   messagebox( 数据库错误信息 login_trans sqlerrtext)   return   end if   //检测上次该执行体执行结果 用以区别本次执行状况   select max(instance_id) into :li_gs_o from sysjobhistory using login_trans;   if isnull(li_gs_o) then li_gs_o =   login_trans automit = true   ls_pass = login_trans logpass   //运行系统存储过程Sp_start_job 启动执行体   prepare sqlsa from Sp_start_job ? using login_trans;   if login_trans sqlcode 〈〉 then   messagebox( 数据库错误信息 login_trans sqlerrtext)   login_trans automit = false   disconnect using login_trans;   login_trans database = ls_database   return   end if   EXECUTE sqlsa USING XCCXXT BACKUP ;   //检测执行体启动是否正常   if login_trans sqlcode 〈〉 then   messagebox( 数据库错误信息 login_trans sqlerrtext)   login_trans automit = false   disconnect using login_trans;   return   end if   //检测执行体执行的整个过程   do   uf_sleep ( )   select max(instance_id) into :li_gs from sysjobhistory   using login_trans;   if isnull(li_gs) then li_gs =   loop while li_gs〈=li_gs_o+   //运行系统存储过程Sp_end_job 关闭执行体   prepare sqlsa from Sp_end_job ? using login_trans;   if login_trans sqlcode 〈〉 then   messagebox( 数据库错误信息 login_trans sqlerrtext)   login_trans automit = false   disconnect using login_trans;   login_trans database = ls_database   return   end if   EXECUTE sqlsa USING XCCXXT BACKUP ;   //返回执行结果   li_gs_o=li_gs -   select run_status run_date run_time into :li_gs :ls_date :ls_time from sysjobhistory where instance_id =:li_gs_o using login_trans;   if li_gs = then   st_ text = left(ls_date )+ 年 +mid(ls_date )+ 月 +right(ls_date )+ 日 + + left(ls_time )+ : +mid(ls_time )+ : +right(ls_time )   messagebox( 提示 数据库备份操作成功! )   else   messagebox( 提示 数据库备份操作失败! )   end if   //断开与数据库MSDB的连接   login_trans automit = false   disconnect using login_trans;   if login_trans sqlcode 〈〉 then   messagebox( 数据库错误信息 login_trans sqlerrtext)   end if   备份是对源数据库进行读操作 执行体执行之前不需要检查用户对数据库的使用状态 而恢复则是对整个数据库进行写操作 在启动执行体之前一定要检查是否有数据库进行写操作 否则可能导致失败   小结   作业机制打破了常规上在数据库管理器里对大型数据库备份和恢复的局限性 实现了在应用程序客户端对数据库的备份和恢复 cha138/Article/program/Oracle/201311/18228

相关参考

知识大全 关于SQL Server数据库备份和恢复特性介绍

关于SQLServer数据库备份和恢复特性介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  S

知识大全 对Oracle10g ASM生产数据库备份和恢复

对Oracle10gASM生产数据库备份和恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  新

知识大全 oraclerman备份和还原恢复数据库

  切换服务器归档模式如果已经是归档模式可跳过此步  %sqlplus/nolog(启动sqlplus)  SQL>conn/assysdba(以DBA身份连接数据库)  SQL>shut

知识大全 数据库中备份与恢复问题简介

  备份与恢复是我们使用数据库中不可缺少的部分也是我们在使用数据库时会经常碰到的问题当我们使用一个数据库时总希望数据库的内容是可靠的正确的但由于计算机系统的故障(硬件故障软件故障网络故障进程故障和系统

知识大全 无备份丢失部分数据文件和控制文件恢复

  前提:         需要有除丢失文件以外其他文件的备份       &n

知识大全 rman备份方式半功略

  一RMAN是Oracle提供的一个数据库备份和恢复工具  特点  )备份和恢复数据库表空间控制文件数据文件和归档文件  )校验备份数据集  )通过备份检查损坏块  )增量备份  )脚本能力  )备

知识大全 oracle数据库备份与恢复apieceofcake(4)

  oracle数据库日志备份(windows平台)  本片是接上次的数据库在线备份进行数据库全备份后需要备份归档的日志文件  建立数据库备份的脚本  在上面建立的目录下建立如下的两个脚本  建立执行

知识大全 Oracle数据库备份与恢复

Oracle数据库备份与恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一导出/导入(Exp

知识大全 数据库备份与恢复测试(7)

  ################################################################################################&n

知识大全 数据库备份与恢复测试(8)

  #######################################################################################