利用CRON进程实现Oracle数据库定时备份

来源 :中国教育信息化·高教职教 | 被引量 : 0次 | 上传用户:wyf1233
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要: 本文介绍了Oracle数据库的备份方式及UINIX系统下CRON进程及其工作过程。详细阐述了CRON进程与Oracle自带的EXP命令相结合实现Oracle数据库的定时备份原理和方法。在文中,以备份Oracle数据库中一个用户为例说明如何使用CRON实现Oracle数据库的定时备份。
  关键词:Oracle CRON 备份 数据库
  中图分类号:TP309.3 文献标识码:A 文章编号:1673-8454(2008)19-0045-03
  
  在计算机网络广泛应用的今天,医院信息化获得了飞速的发展,电子处方、电子医嘱、电子申请单等一系列计算机手段的应用极大地提高了医护人员的工作效率,方便患者就医诊治。但是目前这些医院信息化的应用大部分用于医护人员的日常使用,患者还无法从存储在医院数据库中的数据查询到自己的检验/检查信息。在患者就诊的时候,提供近期的检验/检查报告结果,能够为医生的诊治提供有利的帮助,但是如果近期的检验/检查报告丢失或者就诊时忘记携带,那么不得不重新做一遍相应的检验/检查项目,这样既浪费患者的时间,又浪费患者的金钱。“一单通”实行后,部分大医院之间互相认可彼此的检验/检查结果,患者或者医生能够通过计算机网络远程查询相应的检验/检查结果,利用信息化和计算机网络为患者就诊提供更好的服务。在黑客、病毒肆虐的互联网上,为了保证服务的持续性和稳定性,对提供基础数据的数据库做备份是必须的。
  
  一、Oracle数据库备份方式[1]
  
  UNIX平台和Oracle数据库组合是大中型应用系统的首选。Oracle数据库是目前应用最为广泛的大型数据库之一,其备份的方式主要有冷备份、热备份和逻辑备份。
  冷备份是一种物理备份,它使用操作系统的拷贝命令将与数据库相关的物理文件进行备份。在进行冷备份的时候,为了保证数据库中数据的完整性,数据库要预先正常关闭。冷备份是一种非常快速的备份方法,只需将备份文件拷贝回去,就可以非常容易地将数据恢复到备份时的时间点上。冷备份的不足之处是在实施备份的全过程中,数据库必须是处于关闭状态。备份所需时间与数据库的数据文件大小、个数以及备份介质I/O速度有关。
  热备份又叫联机备份,它是在数据库运行的状态下进行的物理备份,适用于要求每周7天、每天24小时运行的数据库。与冷备份整个数据库不同,热备份的备份单位是表空间。要进行热备份,首先必须将表空间设置为备份模式,此时数据库在该表空间发生检查点(checkpoint),并将SCN(System Change Number,系统变更号)写入组成表空间的数据文件的头文件中,在表空间处于备份模式期间,Oracle将停止对该表空间数据文件的直接写入,转而使用复杂的机制将回滚段、缓冲、重做日志和归档日志结合起来存储数据,拷贝完毕后结束表空间的备份模式, 数据库将完成对数据文件的同步更新,以数据库当前的SCN替换备份开始时写入头文件中的SCN,由此保证表空间数据的一致性。热备份要求数据库工作在归档(archive log)模式下,在归档模式下重做日志记录了所有数据库的事务,提供了多次表空间备份之间的数据库变化,因此,可利用不同时间的多个表空间备份恢复整个数据库,可作数据库“最新状态”的恢复。热备份的不足在于不易操作,维护成本高。
  逻辑备份即为拷贝数据库的数据,而不记录数据位置的备份过程。Oracle中所提供的export(导出)工具可进行逻辑备份。export将数据按Oracle的特定格式从Oracle数据库写到操作系统文件中,恢复时利用Oracle的import(导入)工具读取export导出的文件,将数据导入到数据库中。逻辑备份常用于Oracle数据库之间移动数据,备份整个数据库到一个文件中。使用export工具备份数据库的时候,数据库必须打开。为了保证备份期间整个数据库的完整性和一致性,要以restrict模式打开数据库。
  针对要为患者和医生提供不间断的、持续服务的特点,逻辑备份是最适合的一种备份方式。
  
  二、cron实现Oracle数据库的定时备份
  
  1.cron介绍[2]
  cron是Unix系统的调度进程,它可以在无需人工干预的情况下运行用户的作业,执行作业的命令是crontab,该命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个自己的crontab文件来保存调度信息。用户可以使用它运行任意一个shell脚本或某个命令。虽然每一个用户都可以有自己的crontab文件,但在一个重要的系统中,系统管理员可以通过 /ect/cron.d目录下的cron.allow和cron.deny两个文件控制用户对contab文件的访问。这两个文件全部由用户名组成,每个用户名一行。这两个文件的使用遵循如下规则:
  第一,如果cron.allow存在,那么只有该文件中指定的用户才可以执行crontab任务,例如建立、编辑、显示或者删除他们自己的crontab文件;
  第二,如果cron.allow不存在,那么除了cron.deny文件中指定的用户名以外,其它所有用户均可以执行contab任务;
  第三,如果cron.allow和cron.deny两个文件都不存在,那么只有root用户可以执行crontab任务,其它用户不能执行crontab任务。
  2.cron实现Oracle数据库的定时备份
  本文以Sun Solaris 9 平台下的Oracle 9.2.0.6为例,说明如何使用cron实现Oracle数据库的定时逻辑备份。
  在使用cron定时备份Oracle数据库的时候,用户首先要根据自己的需求定制crontab文件的脚本。本文以备份Oracle数据库中的test用户为例说明如何定制脚本:
  步骤1:确定要定时自动执行作业的用户
  以Oracle用户登录服务器;
  步骤2:编辑备份Oracle数据库的脚本
  (1)使用vi编辑器创建文件backup_oracle.sh;
  (2)编辑文件backup_oracle.sh的内容如下:
  #Start
  #Part 1
  ORACLE_BASE=/export/home1/oracle; export ORACLE_BASE
  ORACLE_HOME=/export/home1/oracle/product/9.2.0; export ORACLE_HOME
  ORACLE_SID=orcl; export ORACLE_SID
  ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
  LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:usr/lib:$LD_LIBRARY_PATH
  export LD_LIBRARY_PATH
  NLS_LANG=american_america.ZHS16GBK;export NLS_LANG
  PATH=$ORACLE_HOME/bin:/usr/bin:/usr/ucb:/etc:/usr/
  #Part 2
  RQ=` date "%y%m%d%H%M%S"`
  #Part 3
  /export/home1/oracle/product/9.2.0/bin/exp system/pw_system owner=testfile=/export/home0/oracle/backup/test$RQ.dmplog=/export/home0/oracle/backup/test$RQ.log
   #End
  文件内容说明:
  文件的内容包括两部分:
  Part 1:Oracle用户的环境变量设置
  Part 2:RQ是一个变量,其值表示当前系统的时间,如:060501203000,表示2006年5月1日20点30分0秒
  Part 3:/export/home1/oracle/product/9.2.0/bin/exp system/pw_system owner=testfile=/export/home0/oracle/backup/test$RQ.dmplog=/export/home0/oracle/backup/test$RQ.log
   该语句使用Oracle的exp命令对数据库进行逻辑备份,备份产生的文件名字为所导出的用户名与RQ变量的组合,如:test060501203000.dmp,备份的日志文件名字也是用户名与RQ变量的组合,如:test060501203000.log。
  步骤3:创建crontab文件
  (1)使用vi编辑器编辑创建名字为cron的文件,其中的为用户的名字,在本脚本中应该是:vi oraclecron。
  (2)文件oraclecron的内容如下:
  30 20 * * * sh /global/oracle/oradata/backup_oracle.sh
  该文件的格式说明如下:[3][4]
  该文件的每一个条目必须含有6列、5个时间域,每个域之间要用空格分隔,其中:
  第1列表示分钟:1~59;第2列表示小时:0~23(0表示子夜);第3列表示日:1~31;第4列表示月:1~12;第5列表示星期:0~6(0表示星期天);第6列表示要运行的命令。
  在前5个时间域中可以用星号“*”来表示连续的时间段。如果对某个时间域没有特别的限定,应该在该域内填入“*”。
  步骤4:提交任务
  使用如下命令提交该任务给系统进程cron:crontab oraclecron,同时创建文件的一个副本放在/var/spool/cron/crontabs目录中,文件名就是用户名Oracle
  步骤5:查看crontab文件是否已经提交
   使用如下命令查看任务是否已经提交:crontab –l
  通过上面的设置,在每天20:30分将自动执行Oracle数据库的备份,文件名字test<脚本启动时间>,如:test060501203000.dmp,orcl_user060502203000.dmp,由于每次脚本启动的时间不同,所以可以在服务器上保留近期多个数据库备份。
  
  三、结束语
  
   为患者和自己医院之外的医生提供检验/检查结果是医院提供的一种“增值服务”,但是这种服务没有经济收入,所以投入成本是提供这种“增值服务”要考虑的一个重要因素。本文实现的Oracle数据库备份,可以在无需额外投入的基础上完成Oracle数据库的日常备份,并且在备份的时候无需人工干预。根据磁盘空间的大小在服务器上可以保存最近日期的数据库备份文件,一旦数据库出现问题,可以利用最近一次的备份进行数据库恢复。
  
  参考文献:
  [1]Kevin loney.oracle9i数据库管理员手册[M].北京:机械工业出版社,2002.
  [2]饶云华,张曜.Unix/Selaris系统管理与网络管理[M].北京:清华大学出版社,2002.
  [3]SebeH M G.Selaris技术指南[M].北京:机械工业出版社,2001.
  [4][美]Robin Bulk等.UNIX技术大全一系统管理员卷[M].北京:机械工业出版社,1998.7.
其他文献
小班幼儿面临克服与家人的分离焦虑、对园所建立安全感和信任感、在独立和自理中感受自信、在同伴交往中发展友谊等多种关键性的情感发展需求。实践中,不少教师反映,由于情感相对于知识、技能来说表现更为隐秘,小班幼儿不善于用语言表达自己的内在感受,需要教师付出更多努力去观察和分析他们的情感状况与需求,给予幼儿情感发展个性化的支持,这对许多教师,尤其是新教师来说是一个极大的挑战。为此,笔者从案例出发,讨论如何分
摘 要:e-Learning是随着网络的日益普及和信息通讯技术的不断发展而提出的新的学习模式。本文在对群件技术及e-Learning网络化学习环境分析的基础上,提出一个基于群件技术的B/S模式的系统框架模型,并对系统结构、主要的功能模块、及其功能特点做出了详尽的描述。  关键词:电子化学习 网络化学习环境 群件技术协作   中图分类号:G434 文献标识码:A 文章编号:1673-8454(200
9月24日上午,在上海交通大学闵行校区图书信息楼前,来自教育部、上海市教委、中国教育和科研计算机网(CERNET)、中国高等教育学会教育信息化分会和该校的各级领导以及全国70余所高校近200位代表欢聚一堂,共同庆祝上海交通大学“数字大学”建设10周年,见证上海交通大学网络信息中心新楼启用揭牌,并举行了“2009高校信息化实践者精英论坛”开幕仪式。  校党委常务副书记苏明教授向来宾致欢迎辞并介绍了该
(HP 供稿)    对教育用户来说,非常需要价格经济、配置简单的IT基础架构。刀片系统以节约空间、便于集中管理、易于扩展和提供不间断的服务,成为取代传统IT基础架构的最佳选择,部署刀片系统已成为教育用户提升效能、降低成本的关键措施。    惠普刀片 与众不同    惠普公司的BladeSystem c-Class刀片系统采用创新技术而打造,惠普刀片系统最大的特点就是基于工业标准的模块化设计和系统
Adobe系统公司4月24日发布了设计、网页和视频专业人士的终极工具包——Adobe?誖Creative Suite?誖6产品线。本次发布包含了14款CS6的尖端产品和4个创意套件——Adobe Creative Suite 6 Design
“这是我爸爸,还有我叔叔!”“走在最前面,拿着一面小红旗的是我爸爸!”“拿钳子修机器的是我爸爸,爸爸脸上都是黑的,汗流下来都成一道一道的了……”大一班的孩子们正睁大眼睛聚精会神地看着大屏幕,边看边说。大屏幕的旁边站着昊昊小朋友的爸爸,他是一名煤矿工人。此时,他穿着一身干练的运动衣,一边切换PPT画面,一边声情并茂地给孩子们讲解着。这是我们幼儿园的一次家长助教活动。  我们园有部分孩子家长是陈家山煤
在分析“范例微调创造教学”之前,先介绍如何将一首完整的歌曲,改编为适合幼儿园新教学流程的小件作品,以及相应的教学建议。  原歌曲如下。  匹配新流程的小、中、大班的教学建议分别如下。  小班教学:提供家庭生活或幼儿园生活场景图片,教师第一次导入范唱时,将前4句歌词改成统一的一句,或者是“妈妈对着宝宝说我爱你”,或者是“宝宝对着兔兔(玩具或真实的小兔)说我爱你”。  中班教学:提供表现美丽自然风景的
摘 要:信息化技术对社会的影响日趋普及和深入,教育领域的信息化革命正如火如荼地开展,基于云计算的世界大学城(职教新干线)作为一个信息化教育的教学平台适时推出。作者从一年来世界大学城平台在NIIT专业教学中的应用角度出发,介绍了如何组织和建设世界大学城(职教新干线)空间共享资源库、如何利用世界大学城平台创新教学方法和教学手段、如何利用好世界大学城平台的交互功能,以及世界大学城空间操作的一些小技巧
案例描述  记得那是新学期刚开学后的一个周二,午休时刻,孩子们渐渐地进入了甜甜的梦乡。突然操场上一阵哭闹声打破了寂静,只见小3班张老师正抱着哭闹的平安向总务处走来,孩子不停地对老师肆意抓、打,张老师一时抱不住,就将孩子放到地上,不料孩子索性满地打滚,还不时用头撞地。原来是别的孩子都脱好衣服,安静入睡,可他就是不脱衣服,还在睡房床底下钻来钻去到处爬,老师批评了他,他就大发脾气,大声吼叫,并不停地将头
科技巨人或许已经提出了一种全新的教育范例  苹果公司的官方消息称:苹果公司在教育领域所做的投入已经翻倍。在今日它的全新iBooks2平台公告中,该公司同样介绍了iBooks Textbooks.这是与教科书巨人Pearson,McGraw-Hill以及Houghton Mifflin Harcourt等等教科书出版商合作研发的基于iPad的教科书。这些入门书籍的集合(苹果称其为“新的教科书体验”及