Oracle数据库备份案例探究

时间:2022-10-14 11:09:53

Oracle数据库备份案例探究

摘 要

当前,信息系统已经渗透到高校各个部门的日常工作。随着信息系统使用时间越来越长,积累的数据量越来越大。庞大的数据量一旦丢失或是受到攻击而破坏将会给所在单位造成工作的混乱或重大经济损失。因此,对数据进行有计划的备份在数据丢失或是受损时可以及时恢复数据,减少不必要的麻烦或经济损失。数据库备份也是每个数据库管理员最基本的常规工作,以便于数据在丢失时及时恢复到理想的状态。本文主要阐述了oracle数据库备份的不同方法。并且通过案例分析叙述,数据库备份方法在实际中的应用。

【关键词】Oracle数据库 备份

EMC公司在2015年公布了一项全新的全球数据保护研究报告。报告揭示,在过去12个月中,企业因数据丢失和宕机造成的损失达1.7万亿美元,这一数字或相当于近50%的德国GDP。自2012年起,数据丢失上升了400%。同时,令人惊讶的是,71%的组织对他们在中断之后的恢复能力仍然缺乏足够的自信。数据的重要性就如:美国人认为除了上帝,其他任何人都必须用数据说话,人类与大自然交流,数据是唯一的语言。小到工厂管理,大到科学研究,无不需要数据给我们指明前进的方向,在美国的太空研究中,花费数十亿美元也只是为了这小小的数据。可见,不管在生活中,或者是工作中,数据都起到了很大的作用。其次,数据丢失所造成的经济损失也是难以估量的。确保数据在丢失之后能及时得到恢复首先要做好全方面的数据备份工作。

1 Oracle数据库的备份方法

1.1 逻辑备份

逻辑备份是利用导出程序从数据库中抽取数据并存于二进制文件的过程。它能够针对行对象进行备份,能够跨平台实施备份操作并迁移数据,数据库可以不关闭。

EXP和IMP是Oracle提供的一种逻辑备份工具。逻辑备份创建数据库对象的逻辑拷贝并存入一二进制转储文件。这种逻辑备份需要在数据库启动的情况下使用,其导出实质就是读取一个数据库记录集(甚至可以包括数据字典)并将这个记录集写入一个文件,这些记录的导出与其物理位置无关,导入实质就是读取转储文件并执行其中的命令。此备份方式是通过Oracle的实用工具import和export来实施。export是把数据库中的数据导出,import是把export导出的数据导入数据库中。通过此工具可以衍生出多种功能, 比如整个数据库的备份、表结构重建、数据的传输、用户的改变等。

Oracle Export/Import工具提供了灵活多样的功能和导出/导入模式,最常使用的三种模式是User、table和full database.除此以外,还可以在导出/导入时决定是否包含与对象有关的数据字典信息,如索引、约束、权限等。

通过逻辑备份可以备份整个数据库, 或仅备份部分重要数据。因为是逻辑上的备份,故只能用于逻辑的恢复数据, 一旦数据库被物理损坏, 导致不能启动,逻辑备份的数据不能帮助恢复数据库。

1.2 物理备份

物理备份是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。物理备份又分为冷备份、热备份。

当数据库可以暂时处于关闭状态时,我们需要将它在这一稳定时刻的数据相关文件转移到安全的区域,当数据库遭到破坏,再从安全区域将备份的数据库相关文件拷贝回原来的位置,这样,就完成了一次快捷安全的数据转移。由于所在数据库不提供服务的关闭状态,所以称为冷备份。冷备份具备方便,高效,快速的特点。但是它单独使用时,只能提供到某一时间点上的恢复,不能按表和按用户恢复,而且必须关闭数据库。

当我们需要做一个精度比较高的备份,而且数据库不可能停掉(少许访问量)时,我们就需要在归档方式下的备份,这个时候可以考虑采取热备份。热备份可以非常精确的备份表空间级和用户级的数据,由于它是根据归档日志的时间轴来备份恢复的,理论上可以恢复到前一个操作,甚至就是前一秒的操作。

2 数据备份案例

以学校一卡通数据库备份为例阐述数据库备份的方式的实际应用。学校一卡通数据库承载着学校一万多位学生,每天至少每人三次的使用频率的数据。一旦数据遭到破坏或者丢失,对于学校财务的影响相当大。毋庸置疑,要做好数据的备份工作。根据学校软硬件的情况,综合考虑,采取以下的方式跟步骤进行备份:

一、考虑到学校一卡通系统每天凌晨进行日结,大概耗时一个半小时,而数据库备份大概耗时半个小时,所以我们将每天自动备份的时间设置在凌晨的两点钟。

二、由于备份的服务器是windows系统,所以我们使用windows系统自带的任务计划功能完成。操作步骤如下:

(1)点击开始菜单--选择控制面板- --选择计划任务--新创建一个计划任务―输入任务计划的名称为一卡通数据库备份;

(2)切换到操作并点击新建,在程序或脚本中选择我们事先写好的备份脚本bat文件;

(3)切换到触发器,点击创建,在执行时间里面设置每天凌晨两点自动执行。

完成以上步骤,windows系统便会在每天凌晨两点自动执行数据库备份脚本。

数据库备份脚本解析

一卡通系统共有三个数据库,分别是钱包数据库,身份数据库和收费数据库,数据库备份脚本对三个数据库分别进行备份,考虑到数据量比较大,把数据库数据备份成多个dmp文件,每个文件大小为1G,具体脚本如下:

@echo "开始备份钱包数据库"

exp school/password@syntong file=school1.dmp,school2.dmp,school3.dmp,school4.dmp filesize=1024m log=school.log owner=school

@echo "开始备份身份数据库"

exp iddbuser/ password @iddbsvr file=iddbuser1.dmp,iddbuser2.dmp,iddbuser3.dmp,iddbuser4.dmp log=iddbuser.log filesize=1024m owner=iddbuser

@echo "开始收费数据库"

exp fee/ password @syntong file=fee1.dmp,fee2.dmp,fee3.dmp,fee4.dmp log=fee.log filesize=1024m owner=fee

3 数据库恢复测试

准备一台恢复测试服务器,该服务器要和源备份主机操作系统类型一致,oracle版本一致,数据库实例名一致。由于备份生成的是dmp文件,数据库管理员恢复数据时直接使用第三方oracle客户端plsql developer进行数据库还原操作。

首先用plsql developer连接恢复测试服务器上的Oracle,需要恢复哪个用户下的数据,就必须使用哪个用户的账号密码登录。登陆成功后,在PL/SQL Developer的菜单Tools(工具) => 导入表 中出来一个对话框界面。选择Oracle导入,

在导入可执行文件中选择Oracle安装目录下的imp.exe文件。

在导入文件中选择需要恢复dmp文件,点击导入,即可等待数据库恢复完成。

恢复完所有的dmp文件后,检查表和数据是否完整,如果完整,说明已经成功完成备份与恢复数据库。

4 结束语

为了更好的管理数据,维护数据库的完整性,可恢复性。数据库在受到破坏的同时能得到及时恢复,数据库管理员务必养成良好的数据库备份习惯。

参考文献

[1]王瑛,张玉花,李祥胜,李晓黎,编著.oracle数据库基础教程[M].北京:人民邮电出版社,2008(10).

[2]王海亮,等,著.精通Oracle10g备份与恢复[M].北京:中国水利水电出版社,2005(01).

作者单位

广州康大职业技术学院网络中心 广东省广州市 511363

上一篇:基于Java实现数据结构链表相关程序 下一篇:物理隔离技术在风(光伏)电场安全生产中的应用