《网络安全技术》第六章_第1页
《网络安全技术》第六章_第2页
《网络安全技术》第六章_第3页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章 数据库的安全、备份和灾难恢复6.1数据库安全的威胁阿里巴巴羞愧难言2001年2月28日,阿里巴巴网站上发布了一封向网友深致歉书,到底出了什么事 情呢?你自己看吧!各位“以商会友”网友:我们真的很难开口请求您的原谅!我们竟然把我们最宝贵最精心保护的网友资料丢失,而且几乎是永远的失去!我们知道此时任何的解释都是苍白的,任何的承诺都无法挽回曾经 激动过我们并应该永远成为我们最美好记忆的那些语言,那些网友们半夜挑灯敲写的真知灼 见,那些网友们积年累月思考形成的长篇宏论,那些网友们素昧平生却在网上一见如故的精 彩对白!我们真的很痛很痛!痛得我们想找岀世界上最好的后悔药,让时光机器倒转!我们知道您

2、比我们更痛,因为您曾毫无保留地给予我们真诚的信任,我们本应做得更好,而我们却没有做到!不仅没有做到更好,反而犯下一个永远没有机会改正的错误:2月26日,阿里巴巴按照计划进行服务器扩容,以满足网站日益增长的浏览量。当所有的工作就绪,我 们重新启动时,发现有一台服务器无法正常工作,正是“以商会友”的服务器,更糟的是, 今年两个月以来网友们所有帖子的备份也在这台服务器上。我们的技术人员一直在努力,但 由于损坏是物理性的,修复的希望非常渺茫。我们只有以实际行动来重获您的信任,我们所有的员工正在全面检讨所有的工作流程,以切实保证我们给各位网友提供服务的可靠性和安全性,杜绝此类错误的再度发生。痛定思痛,我

3、们知道我们能给网友的最好回答是:我们将共同创造岀一个更加丰富更加 精彩的“以商会友”!我们恳请各位尊敬的网友,尤其是此次蒙受巨大损失的网友,请您再给我们一次机会,参与我们的重建。作为补救措施之一,如果您还有曾经发表在“以商会友”论坛里的存档文章,请您提供给我们。凤凰涅槃,火中重生!让我们共同期待“以商会友”的再度辉煌!全体阿里巴巴人2001年2月28日看来真是惨痛得很!原因是系统升级时没有预先做好数据库的备份,以至于复巢之下无完卵,数据全部完了蛋。不过如果本书能够早几个月出版,阿里巴巴的弟兄们能够认真地读一读这一章,他们原本是可以避免这场灾祸的。希望本书的读者能够汲取这个教训,能够在这一章里找

4、到帮助你消灾免祸的金石良言。数据库安全的威胁来自何方 ?数据库的安全的威胁主要来自以下几个方面: 物理和环境的因素,如物理设备的损坏,包括硬盘划伤、设备的机械和电气故障、电源短路或过载或其他原因引起的火灾、暖气漏水房顶漏雨等引起的水患,以及盗窃和遗失磁盘磁带等。 黑客攻击、病毒发作造成的数据秘密的泄露和数据完整性的破坏。 社会关系因素,包括金钱美女、威逼胁迫、宗教民族、商业倾轧等造成内部人员的腐 败和权力失控。 网络以及数据库的安全级别不能满足应用的要求。 网络和数据库的设置错误和管理混乱造成越权访问和越权使用数据。数据库的安全是网络安全的核心。有关物理和环境、网络平台漏洞、病毒黑客和防火墙,

5、 以及有关法律法规,本书都各自辟有专章讨论, 故不多赘言。本章将集中讨论数据库的安全 性能和加密、数据库的备份和数据库的恢复等问题。6.2数据库的介绍网络数据库的要求网络环境对数据库提出了新的要求,主要有以下几个方面:1 与服务器软件的集成网络数据库通过各种服务器如 WWW等为用户提供各种服务。因此,数据库与服务器 的良好的集成,将有利于应用软件的开发,提高应用软件的性能并减少可能出现的冲突和漏 洞。2. 性能在网络环境下,数据库的访问变得更加频繁,而且多媒体技术的广泛应用,也极大地增 加了数据库的负担,因此,要求数据库具有良好的吞吐能力,能够更加便捷地提供服务。3. 安全性数据库的安全是网络

6、安全的核心。因此,对于一定的应用来说,要求网络设计具有一定的安全等级,那么数据库也必须有相应的安全等级。4. 稳定性数据库的运行必须平稳。尤其对于网络中集中突发性的大访问量,不能出现死锁、崩溃等现象。5容错性对于用户操作和应用程序所带来的种种意料不到的错误,数据库必具有容错的功能。当出错时,能够给用户返回适当的说明信息,不能因此而死锁或崩溃。6. 扩展性数据库应当具有良好的扩展性,以适应用户对数据库的容量的增长、功能的加强、数据的综合利用等方面的要求。7备份数据库应当能够可靠地、方便地备份,以保证系统的连续可靠地运行。而一旦出现灾难 性的数据故障时,能够有希望从灾难中恢复。网络数据库的主要产品

7、1. MS SQLServerMS SQLServer是微软公司的数据库产品,属于中型数据库。由于MS SQLServer工作在Windows NT平台,易学易用,而性能又接近于 UNIX平台的产品,因此深受中小型企业 的欢迎,逐渐占领了中小型企业数据库的较大的市场分额。MS SQLServer具有以下优点: 价格低廉;数据处理速度快,性能已有很大改善;集成好,能与Web服务器、与微软Intranet套装软件 Back Office以及其他数据库如 IBM DB2 , Oracle等配合工作;具有 良好的安全性能(C2级);扩展性好。2. Sybase SQL Server IISybase

8、SQL Server II是一种关系型数据库管理系统RDBMS,能支持很大的内存,可处理很大的数据量,支持并行备份机制,备份简单方便,支持多线程、多CPU,工作性能稳3. Oracle Universal ServerOracle Universal Server是大型数据库中的王牌。它有以下优点:支持多媒体。OracleUniversal Server支持多种数据类型,如文本、图形、图象、声音、动画、视频等;支持多 种平台。几乎所有常见的平台,都能够得到Oracle Universal Server的支持。如:MicrosoftWin dows NT , SUN Solaris for SP

9、ARC ,SUN Solaris X86 for In ter , DEC Digital , HP, IBM AIX ,In ter UNIX , SGI, IBM OS/2 Warp Server。4. Informix Universal ServerInformix Universal Server是一种对象关系数据管理系统ORDBMS,其主要特点是:支持多媒体;支持动态扩展结构DSA,在硬件容量允许的条件下,能够无限扩展数据库;具有良好的安全性和稳定性;支持几乎所有流行的网络协议;提供与Web服务器的完整集成。5. IBM DB2 Com mon ServerIBM DB2 Comm

10、on Server也属于对象关系数据管理系统ORDBMS,在金融行业中占有相当大的份额。它的主要特点是:支持多种平台,女口AIX , HP-UX , SCO Open Server,SUN Solaris , OS/2 , Windows NT等;支持多媒体信息;支持单CPU结构,SMP结构,MPP结构;具有良好的安全性和稳定性。网络数据库的访问方式1. ODBCODBC (Open DataBase Connection)是微软公司推出的一种通用数据库接口标准,目前已经被大多数数据库厂商所接受。该标准适用于各种数据库,如Oracle, Sybace, Infermix ,SQL Server

11、, Visual FoxPro , Access 等。2. 数据库WEB工具数据库厂商大多为其数据库提供了支持Web的数据库开发工具。小型数据库开发工具如 Intetnet Assistant for Access,大型数据库工具如 Web Assistant for SQL Server , Informix 的 WWW Server 等。3. 数据库开发工具用户可使用各种数据库开发工具来开发所需的数据库应用程序。常用的工具有微软公司的 Visual Basic , Borland 公司的 Delph , Power 公司的 PowerBuilder。4. 报表生成工具使用报表生成工具(Re

12、port Writer)和相应的接口程序,用户可将数据库中的数据按一 定的逻辑关系取出来,并转换成Web文档供浏览。5. 数据库接口工具数据库接口工具有: CGI,这是比较古老的方法,缺点是用户的每次请求都要在服务器上生成进程,造成了系统的沉重的负担,因此速度较慢,同时还存在一些安全问题;微软公司的ISAPI,能生成动态联接库,效率较高; Netscape公司的NSAPI与之相似;SUN公司倡导的 JDBC API,支持Java功能。6 数据库接口程序通常大型数据库都提供有专门的接口程序。例如Oracle数据库的接口程序为 SQLNET ,Informix的接口程序是I-NET等。这种接口程序

13、一般分为客户端和服务器端两个方面,所以用这种方法写的软件属于客户端 /服务器端结构的,应用起来不是很方便。7. Java 和 JDBCJava支持数据库联接,通过标准的SQL接口程序JDBC能够有效地访问各种数据库。用Java和JDBC可以写浏览器/服务器/数据库三层结构的应用程序,这是当前比较流行的一种程序结构。Java对数据库的访问非常灵活,功能很强,所以对于委托生产的Java数据库应用软件,应当经过严格的安全测试,避免其中的隐患和猫腻。6.3数据库的安全性能和数据加密数据库的安全性能数据库系统是由数据库和数据库管理系统(DBMS )两部分所组成。数据库是按照一定方式组织的数据的集合。数据

14、库管理系统是为用户及应用程序提供数据访问,并具有对数据库进行管理、维护等多种功能的程序。保证数据库的安全在软件上主要是充分利用数据库管 理系统提供的功能,其安全措施在很多方面都类似于安全操作系统中所采取的措施。数据库安全主要有两层涵义:第一层是指系统运行安全,它包括法律、政策的保护,如用户是否有合法权利,政策是否允许等;物理控制安全,如机房的防盗门窗等;硬件运行安全;操作系统安全,如数据文件是否保护等;灾害、故障恢复;死锁的避免和解除;电磁信 息的泄漏防止等。第二层是指系统信息安全,它包括用户口令字鉴别;用户存取权限控制; 数据存取权限、方式控制;审计跟踪;数据加密等。数据库信息安全依赖于两个

15、层次:第一层是数据库管理系统本身提供的用户名/ 口令字识别、视图、使用权限控制、审计等等管理措施,大型数据库管理系统如Oracle, Sybace,Ingress等都有这些功能。第二层则是应用程序设置的控制管理,由用户自己规定哪些操作 允许,哪些操作不允许,这样做比较直观,但是如果缺乏深入的研究难免会挂十漏一。大型数据库所提供的管理手段有以下几种: 用户分类用户的工作部门不同, 工作需要不同,职位高低不同,要分为不同的类型, 分别被授予 不同的数据库访问权限。一般将权限分为三类,即第一类人有数据库登录的权限, 第二类人 进一步有数据库资源管理的权限,第三类人具有最高权限可以管理数据库。第一类人

16、有了数据库登录的权限,他才能进入数据库管理系统,才能使用数据库管理系统提供的各种工具和应用程序。同时,数据资源的所有者可以给这类用户授予数据查询、建立视图等权限。这类用户能够查阅部分数据库的信息,但是他无权改动数据库里的任何数据。第二类人有了数据库资源管理的权限,他就可以进一步创建数据库的表、数据库的索引等数据库客体,可以在权限允许的范围内查询和修改数据库,还能把自己所拥有的数据资源对其他人授权,还可以申请审计。第三类人是数据库管理员,他拥有最高的权限,包括访问任何用户的任何数据,授予和回收用户的各种权限,创建各种数据库客体,完成数据库的整库的备份、装入重组以及进行 全系统的审计等工作。这类用

17、户的工作是谨慎的带全局性的工作,只有极少数用户属于这种类型。对于这类用户,制度上的权力控制和分散机制是必须的,否则会埋下隐患。 数据分类同一类权限的用户,他们对数据库中的数据的管理和使用的范围是不同的。为此,DBMS提供了数据分类的功能,即建立视图。管理员把某用户可查询的数据在逻辑上归并起来,简称一个或多个视图, 并赋予名称,再把视图的查询权限授予该用户或一组用户。 这种数据分 类可以做得很细,其最精细的粒度是数据库中的二维表中的一个交叉元素。 审计功能大型DBMS提供的审计功能是一个十分重要的安全措施,它用来监视和记录用户对数据库的各种操作。有两种方式的审计,即用户审计和系统审计。用户审计时

18、,DBMS审计系统记录下所有对用户自己的表或视图所进行访问的企图,包括成功的和不成功的访问,以及每次操作的用户名、时间、操作代码等信息。这些信息一般都被记录在数据字典(或称系统表)中,利用这些信息用户可以进行审计分析。系统审计是由系统管理员或系统审计员进行,其审计内容主要时系统一级命令以及数据库客体的使用情况。632数据库安全性能的一个实例下面我们通过一个实例 DM3来说明如何实现数据库的安全性能1. DM3的安全体系结构可信数据库管理系统的体系结构分为两类:第一类是TCB子集DBMS结构,用DBMS以外的可信计算基(TCB)实现对数据库对象的强制访问控制,此时多级关系被分解成单级或 系统级片

19、断,多级安全 DBMS将这些片断存在物理上分离的单级对象(如文件、段或物理 上分离的硬件设备)中,再对这些分离的单级或系统级对象的访问实行强制访问控制。第二类是可信主体DBMS,由DBMS本身实现强制访问控制的一些或全部责任。DM3采用可信主体DBMS体系结构,由数据库管理系统实现强制访问控制的功能,它要求操作系统能提供控制,防止绕过DBMS直接对数据库的访问,将概念上的多级数据库存于一个或多个操作系统对象(如文件)中。由多级安全DBMS给每个数据库对象进行标记,这些数据库对象对操作系统是不可见的,操作系统不能直接对数据库对象进行访问,多级安全DBMS有跨操作系统安全级范围操作的特权。2. 三

20、权分立的安全机制DM3在安全管理体制方面与其他数据库管理系统不同。绝大多数数据库管理系统采用 的是由数据库管理员DBA负责系统的全部管理工作(包括安全管理)。显然,这种管理机制使得DBA的权力过于集中,存在安全隐患。DM3在安全管理方面采用了三权分立的安全管 理体制,把系统管理员分为数据库管理员DBA,数据库安全管理员SSO,数据库审计员Auditor三类。DBA负责自主存取控制及系统维护与管理方面的工作,SSO负责强制存取控制,Auditor负责系统的审计。这种管理体制真正做到三权分立,各行其责,相互制约,可 靠地保证了数据库的安全性。3. 自主访问与强制访问控制自主访问控制就是对主体 (用

21、户)访问客体(数据库对象)的操作权限实施控制,目的就是 要保证用户只能存取他有权存取的数据,当用户拥有数据库对象上的某些操作权限及相应的转授权时,可以自由地把这些操作权限部分或全部转授给其他用户,从而使得其他用户也获得在这些数据库对象上的使用权限。DM3系统根据用户的权限执行自主访问控制。规定用户权限要考虑三个因素:用户、数据对象和操作。所有的用户权限都要记录在系统表(数据字典)中,对用户存取权限的定义称为授权,当用户提出操作请求时,DM3根据授权情况进行检查,以决定是执行操作还是拒绝执行,从而保证用户能够存取他有权存取的数据。所谓强制访问控制是通过给主体 (用户)和客体(数据对象)指定安全级

22、,并根据安全级匹 配规则来确定某主体是否被准许访问某客体。DM3系统根据用户的操作请求、安全级和客体的安全级执行强制访问控制,保证用户只能访问与其安全级相匹配的数据。强制访问控制必须事先定义主体和客体的安全级,所有主体和客体的安全级都要记录在系统中。当用户提出操作请求时,DM3首先检查用户对所操作的数据对象是否具有相应的操作权限,然后检 查该用户的操作请求及安全级与所操作的数据对象的安全级是否匹配,当两个条件都满足 时,DM3才执行用户的操作请求,否则拒绝执行。4隐通道分析技术尽管自主和强制访问控制限制了系统中的信息只能由低安全级主体向高安全级主体流动,低安全级主体仍然可以通过其他方式向高安全

23、级主体发送信息,隐通道就是其中的一种。隐通道是系统的一个用户以违反系统安全策略的方式传送信息给另一用户的机制。它往往通过系统原本不用于数据传送的系统资源来传送信息,并且这种通信方式往往不被系统的访问控制机制所检测和控制。隐通道包括存储隐通道与定时隐通道。隐通道的发送者和接收者之间事先约定好某种编码方式,并使用系统正常操作。如果隐通道的发送者直接或间接地修改资源属性,另一主体(接收者)直接或间接地读取这个属性的变化时,这个隐通道就是存储隐通道。如果一个隐通道是一个主体,通过调整系统资源(如CPU)的使用时间影响了另 一个主体实际的响应时间,从而发送信息给另一主体时,这个隐通道是定时隐通道。尽管高

24、安全级的用户有可能利用隐通道传送信息给低安全级的用户,但隐通道的主要潜在威胁是它有可能被特洛伊木马所利用。根据美国可信计算机系统评估标准(即 TCSEC)的要求,对 B2安全级及以上的 系统必须进行隐通道分析,并估算隐通道的带宽,根据带宽决定对隐通道的处理(容忍存在、 消除或审计)。根据这一要求,我们对 DM3进行了隐通道分析,并设计出辅助识别工具, 目前DM3中的存储隐通道包括客体属性通道、客体存在通道和共享资源通道(如资源耗尽 通道)等。对一些定时隐通道,如利用并发控制上锁机制(在Oracle等其他数据库管理系统中也存在)的隐通道,采取了消除措施。数据库的数据加密1.数据库的数据加密的特点

25、对于一般的应用来说,上述的数据库所提供的安全性能是能够满足要求的。但是对于一些重要部门或敏感领域的应用, 仅靠上述的措施似乎还难以保证数据的安全。 某些用户尤其 是一些内部用户可能越权访问数据库, 甚至窃取或篡改某些信息, 因此,也有人希望对数据 库中存储的某些重要数据进行加密处理,以保证数据的安全。数据加密,是将明文数据经过一定的变换,变成密文数据。数据的解密则是加密的逆过程,重新把密文数据变成明文数据。加密和解密的变换方法叫做加密算法和解密算法,一般加密和解密采用同样的算法。控制变换运算的参数叫做密钥。现代的加密解密的算法,一般都是公开的,而密钥则有完全保密的所谓对称系统,还有把加密密钥公

26、开而只保留解密密钥的所谓公钥系统。本书的第 7章对此有详细的介绍。数据库的数据加密一般是在通用的数据库管理系统之上,增加一些加密解密的控件, 来完成对数据本身的控制。 与一般的通信中的加密的情况不同,数据库的数据加密通常不是对数据文件加密,而是对记录的字段加密。 当然,在数据库备份到离线的介质上送到异地保存 时,是有必要对整个数据文件加密的。数据库的数据加密可以用对称系统也可以用公钥系统,但是公钥系统一般速度比较慢。好在需要特殊加密的数据量不可能很大,所以速度不是什么重要问题。只有持有解密密钥的人才能够解读数据。如果有几个人拥有相同的密钥,那么他们只能对数据共同负责。如果有必要建立几个人的互相

27、制约机制,那么可以用几个人不同的密钥对数据进行多重加密;解读时只有几个人同时在场多重解密才有可能。2 数据库的数据加密的范围数据经过加密之后,将掩盖了数据与数据之间在内容上的相互关系。比如说,你再不能比较它们的大小了, 因为加密后,谁也不知道它代表的数值有多大。因此,在当前流行的关系型的数据库中,对下列字段是不能加密的: 索引字段不能加密。 为了加快查询的速度, 数据库常常建立若干个索引。 但是索引必 须在明文下才能运行,不能加密。 关系运算的比较字段不能加密。加密将掩盖它们之间的关系,所以必须保持明文。 表间的联接字段不能加密。否则将失去联接功能。上面所说的三个方面,乃是关系型数据库的精髓所

28、在。它们都不能加密,能够加密的都是无关紧要的地方,这无异于是一个讽刺。而且如果有人能够非法越权访问数据库,那么从这些关键字段的明文, 是不难推断被加密的字段的内容的。一个企业或单位的领导者应当明白这个浅显的道理,不要过分迷信数据库数据字段的加密,而应当从整个系统周密考虑定下良策,否则你会在一种虚假的安全幻想中丢失你生命攸关的秘密。3数据库的数据加密对数据库功能的影响对数据库里的数据字段的加密,会给数据库的功能带来许多不利的影响。目前DBMS的功能都比较完善,特别象Oracle, Sybase这些采用客户端/服务器的结构的数据库管理系统,拥有数据库管理和开发的各种工具。然而,数据库的数据加密以后

29、,DBMS的一些功能将无法使用。 无法实现对数据制约因素的定义。数据库系统的规则定义了数据之间的制约因素。加密以后,将无法实现这种制约。值域的定义将失去意义。 而且,数据密文的类型和位数必须适应原来明文字段的规定,否则无法接受。 密文数据无法进行排序、分类、分组。 SQL语言中的内部函数对加密数据失去作用。 DBMS的一些开发工具不能对加密数据使用。6.4数据库的备份数据库的备份是数据库维护中最令人腻烦的工作了。年复一年、日复一日地写了擦、擦了写。往往一年365天,数据库总是好好地,啥事也没有。然而,也许就在第366天,在那个闰年不该闰到的日子,数据库遭到了灭顶之灾。如果你在30公里以外的一个

30、石洞里,藏有一盘昨天备份的加密磁带,你会为你往日的腻烦和偶然的偷懒捏一把汗,好在你昨天老老实实地备份了一盒磁带!641数据库的备份和系统的备份我们已经强调了数据库备份的重要性,但是数据库的备份不是简单地拷贝几个数据文件的事情。对此不应产生片面化的理解。把数据文件拷贝下来是很重要的,但是仅此要恢复系统还会有许多困难。在网络环境中,如果系统和应用程序遭到了破坏,那么再重新安装并不容易:我们必须找出所有的安装盘和原来的安装记录进行安装,然后重新设置各种参数、用户信息、权限等等,这个过程可能要持续好几天。因此,最有效的方法是对整个网络系统进行备份,不仅仅包含数据,而且包含网络中安装的应用程序、数据库管

31、理系统、用户设置、 系统参数、环境参数等。这样,无论系统遇到多大的灾难,都能够应付自如。另外,备份不 等于单纯的拷贝,因为系统的重要信息无法用拷贝的方法备份下来,而且管理也是备份的重要组成部分,没有管理功能的备份,不能算是真正意义的备份。所以,备份往往要借助具有管理功能的专门的备份软件进行。642在线备份和离线备份数据库的在线备份是把数据和环境信息传送的计算机系统或网络上的另一个非实时工 作的区域。这个区域平时不参与数据处理的工作,而一旦平时正常工作的设备发生故障,那么备份的系统马上投入运行,替代发生故障的设备,直到故障排除。在线备份适用于需要比 较快地恢复系统的场合。在线备份的一种具体做法是

32、在主机系统开辟一个非工作运行空间, 专门存放备份的数据, 称做分区备份。在线备份的另一种做法是建立另一个子系统,把主机系统的数据传输到备份子系统中。数据库的离线备份是把数据和环境信息下载到安全的存储媒介中,这种存储媒介和当前运行的计算机系统和网络没有直接联系。 在系统需要恢复时予以重新安装。 存储的数据还可 以留档以备日后查询。即使有了在线备份,离线备份也还是必须的。对于国家的和重要单位的一些关系国计民生的数据,离线备份的介质应当远距离妥善存放,避免由于地震、火灾、水患等而同时毁于一旦。一般的一个单位的备份介质,也不应当 存放在同一座楼里甚至就在主机的旁边的柜子里。备份的数据在脱离安全控制的环

33、境进行传输和存储时,一定要整体做妥善的加密, 然后还要妥善地保管密钥。千万不要因为仅有的知道密钥的人在一场灾难中一命呜呼而导致数据 永远不可解读。643数据库备份和冗余技术数据库备份的冗余技术与上面所说的在线备份是有所不同的。在线备份的设备不参与实时的数据处理工作,而冗余设备却是实时地在线工作的。数据库备份的冗余技术通常采用 RAID技术,就是把多个磁盘驱动器结合起来,通过数据冗余提高数据存储的安全性。最常见的RAID技术是RAID1,也叫磁盘镜像。磁盘镜像把数据同时分别写到分区结构完全相同的两个磁盘中,两个磁盘的操作互相独立,存储空间有双倍的冗余, 是一种比较可靠的备份方法。另外还有带有校验

34、的条纹化的多磁盘存储技术RAID5,也具有较好的性能。但是也要注意到磁盘镜像的两个磁盘,犹如弟兄二人同台唱戏,若有一人遭难,另一人恐怕也蹦不远。所以有了刮刮叫的RAID技术,也不宜把数据库的离线备份搁置一旁。644完全备份和增量备份、差额备份数据库的备份有三种不同的策略:1 完全备份完全备份就是把所有的数据都毫不遗漏地备份下来。这是比较简单的比较彻底的方法, 恢复数据时也比较容易。但是完全备份的数据量较大,一般只在每星期的特定的一天进行完 全备份,例如星期五的夜里。2 增量备份增量备份是在上一次做了数据备份以来,对有了变化的数据进行备份。 在做数据恢复的时候,从上一次完全备份开始,考虑以后的各

35、次增量备份的修改, 一直计算到需要恢复的那 一天。增量备份的工作量比较小,可以每天做一次。3. 差额备份另一种工作量不太大的备份策略是差额备份,也可以每天做一次。差额备份是考虑上一次完全备份以来发生变化的数据,把这种变化备份下来。恢复数据时需要一个完全备份和一个差额备份。计算量稍微小一些。数据库备份的软件这里用一个实例,介绍在线备份和灾难恢复软件InFoOnBack。InFoOnBack软件为Informix数据库用户提供了高效的在线备份和灾难恢复功能,在 TCP/IP网络环境中,利用海量存储设备如磁带库、光盘库或硬盘,在不影响数据库正常使 用情况下进行数据的备份。一旦数据库中的数据被破坏或丢

36、失,可以快速地进行恢复。InFoOnBack软件与Legato Networker软件相结合,可以根据预先设定的规则,无需操 作人员值守,自动地进行数据库备份,备份的细节和成功与否,均有日志加以记录。对于备份介质,可以进行电子标签标记,制定失效日期,循环使用,复制等手段由软件 进行自动化管理。系统管理员可以根据需要,在进行数据库备份的同时,将informix数据库etc目录下的重要配置文件如 onconfig等,或其他重要文件进行备份,万一出现灾难时,可以连同这些 重要文件恢复出来。InFoOnBack软件可以进行多种级别的备份,如全备份,1级增量备份,2级增量备份和 日志备份。系统管理员可以

37、根据数据库中数据变化量、数据库日志增长量等制定一个合理的备份规则,使得通过合理的备份次数最大限度地保护数据。比如一个月进行一次全备份,两个星期进行一次1级备份,每星期进行一次2级备份,每天进行一次日志备份。InFoOn Back软件的备份原理是,基于in formix备份工具on tape进行数据库的备份。备份时可以将一次大的备份划分分为若干小的包,通过硬盘缓冲区后,依次备份到光盘库或磁带库中,包的大小用户可以自定义。这样,一方面可以适应硬盘空间的限制,另一方面划分成小的包有利于在远程低速网上传输。备份数据可以经过压缩之后再传送到备份服务器中,从而减少传输量和增加数据的保密性。In Fo On

38、 Back软件通过对网络侦测监控,确定网络的连通性;当网络出现故障时,备份 向硬盘缓冲区继续进行,而通过网络向存储设备的数据传输则处于等待状态;当网络恢复正常后,数据传输从断点处继续进行。磁盘监控器监控硬盘的利用率,当磁盘剩余空间不足一个备份包的两倍时,备份处于等待状态,直至磁盘空间清理出来。完整的备份索引记录和图形界面使得恢复操作简便易用。通常on tape向硬盘缓冲区备份的速度较压缩和向存储设备写的速度要快。为避免数据 包积累在硬盘缓冲区中,InFoOnBack采用并行流技术,可以同时多个数据包进行压缩和向 存储设备写数据,并行流个数可由系统管理员定义。如果数据库在设计时有若干DB spa

39、ce,则恢复时可以单独恢复某个DB space。InFoOnBack软件各模块涵义如下:ONT-ONTape : Informix数据库在线数据备份接口CMP-CoMPress :数据压缩BIF-Backup Important File:重要文件备份Ind-Indexer :索引生成器BDC-Backup Data Collector:备份数据收集器NM-Network Monitor:网络监控器SM-Space Monitor :空间监控器UCMP-UnCoMPress :解压器RIF-Recover Important File:恢复重要文件646数据库备份的实例这里给出一个自动备份Or

40、acle数据库的实例作为参考。不少的系统管理员每天都在做着同一样的工作一一对数据进行备份。一旦哪一天疏忽 了,而这一天系统又恰恰发生了故障,需要进行数据恢复,那么此时就无能为力了。假如每 天设定一个固定的时间,系统自动进行备份,那该多好啊!下面谈一谈UNIX环境下Oracle数据库的自动备份。假设我们计划让数据库在晚上23点做export导出备份,在凌晨2点将备份文件拷贝到磁带上,在凌晨4点将备份文件拷贝到另一台UNIX机器上,为此我们可进行如下操作:1 导出数据库export命令将数据库中的数据备份成一个二进制文件,它通常有三种模式:用户模式、表模式和整个数据库模式。这里拟采用用户模式。备份

41、之前,应先建立一个备份目录,以容纳备份文件,比如可建一个 /backup目录。接着我们可在UNIX的Oracle目录下(也可以是其他目录)分别建立两个文件ora backup, tar backup。需要说明的是,前一个文件需要对Oracle的参数进行初始化,为了方便起见,我们不妨将初始化命令放到一个文件中(文 件名姑且定为oraenv),再由第一个文件调用它。(1)oraenv文件对Oracle的参数进行初始化,其内容如下:ORACLEIOME=$ ORACLEHOME;export ORACLE -HOMEORACLE-SID=ora73;export ORACLE-SIDORACLE_E

42、RM=sun;export ORACLETERMLD-LIBRARY -PATH= $ ORACLEHOME/lib;export LD-LIBRARY -PATHORANLS32= $ ORACLEHOME/ocommon/nls/admin/data;export ORANLSPATH=.:/usr/ccs/bin:/usr/ucb:$ ORACLEHOME/bin: $ PATH;export PATHDISPLAY=host1:0;export DISPLAYNLS _ANG=american -america.zhs16cgb231280;export NLSLANG(2) ora

43、backup文件对数据库做 export导出导出的文件名可以任意定,本文定为字母“xx”加当天日期,即假如当天日期是12月10号,则导出的文件名为“ xx1210.dmp ”以区别于其他日期的备份文件。orabackup文件内容:./oracle/ora-env井初始化Oracle 数据库rq= ' date +"% m% d'井把当天日期赋予变量rq rm /backup/#清空/backup 目录$ rq.dmp log=/backup/xx$ rq.logtest用户的数据(其口令亦为test),导出文件及日志exp test/test file=/backup

44、/xx本命令用于在$提示符下,导出均放在/backup目录下。2. 磁带备份tar backup文件将用export命令导出的数据文件拷贝到磁带上。tarbackup文件内容:tar rvf /dev/rmt/On/backup/本命令可将/backup目录下当天产生的文件备份到磁带上。本文件中,tar命令使用了三个参数,其中r选项表示向磁带上拷入文件而不破坏磁带原来内容,v选项表示在拷贝过程中显示文件信息,f选项后面加上磁带设备名,指定文件向何处拷贝,n选项表示磁带机不倒带。/dev/rmt/0表示UNIX主机第一个磁带驱动器,同理, /dev/rmt/1则表示UNIX主机第 二个磁带驱动器

45、,依此类推。oraenv、orabackup、tarbackup文件编写完成后,分别使用下述命令:chmod 755 ora-envchmod 755 ora-backupchmod 755 tar-backup这样,三个文件就都变成了可执行文件。3. 异地备份我们知道,通常可用FTP命令在两台主机间传输数据,但一般是通过交互方式实现的,即需要手工输入目标主机的IP地址、用户名、口令等。显然,这不符合自动备份的要求。所幸的是,我们可以通过编写一个.netrc的文件来达到目标。这一文件必须命名为.netrc,且必须存放在启动FTP命令的机器上的用户注册目录中,该文件的权限应禁止组内或其他用户进行

46、读访问。这样,当用户使用FTP命令的时候,系统将会在该用户的注册目录中寻找.netrc文件,如果能够寻找到,将会首先执行该文件,否则,会交互式地提示用户输入用 户名、口令等。在使用FTP命令之前,应先在另一台作备份用的UNIX机器上建一目录,以容纳备份文件,本文建的目录是/pub。需要指出的是,为了加快备份速度,两台主机之间的传输速 率应尽可能的高,最好位于同一局域网上。.n etrc文件内容如下:machine host2# host2 为作备份用的主机名login oracle# oracle为备份主机上的一个用户password oracle# oracle 用户的口令为 oraclem

47、acdef init#定义一个名为init 的宏,它将在自动注册进程的最后被执行bin#文件的传输方式设为二进制led /backup# 进入本地工作目录/backuped /pub#进入备份主机目录/pubmput#将/backup目录下的所有文件传输至备份主机bye#退岀FTP会话进程.netre文件编写完成后,使用下述命令:chmod 600 .netre这样,.n etrc文件就只能被该用户所访问。4. 启动备份进程Cron 是- 个永久进程,它由 /etc/rc.local 启动执行。Cron 检查 /var/spool/cron/crontabs/ 目录中的文件,找到所要执行的任务

48、和执行任务的时间。Cron tab 文件的每一行由六个域(minu tes、hours、day of month、month、day of week、comma nd)组成,域之间用空格或Tab分开,其中:minutes:分钟域,值的范围是0到59hours:小时域,值的范围是0到23day of mon th :日期,值的范围是1至U 31mo nth :月份,值的范围是 1到12day of week :星期,值的范围是0到6,星期日值为0comma nd:所要运行的命令如果一个城是,表明命令可以生该域所有叮能的取值范昌人执行如果一个域是由连字符隔开的两个数字,表明命令可以在两个数字之间的范围内执行 (包括两个数字本身)。如果一个域是由逗号隔开的一系列值组成的,表明命令可以在这些值组成的范围内执 行。如果日期域和星期域都有值,则这两个域都有效。现在,我们编写一个文件,用以启动自动备份进程。 值得注意的是,该文件只能在 Oracle 用户名下用cron t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论