[ 登录 ][ 注册 ] 天极传媒: 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
您现在的位置: IT专家网 > 安全子站 > 评论分析

沉着应对突发的数据库灾难

作者: 王淑江 ,  出处:中国计算机报, 责任编辑: 郭秋爽, 
2008-08-08 00:00
  数据库管理员需要了解数据库文件结构原理,不同情况下数据丢失的恢复方法,以沉着应对各种数据丢失的突发事件。

  数据库网络管理员都有可能遇到数据库崩溃的时候。若故障发生时,计算机未必有时间把未完成的事务和内存中的数据页写入磁盘,将可能出现数据丢失或者数据库不能正常访问的故障,轻则使企业的业务系统不能运行,重则可能会给企业带来灾难性的损失。数据库管理员最重要的职责是保证数据库系统正常运行,为决策层领导提供数据支持,这是数据库管理员的基本目标。数据库管理员需要了解数据库文件结构原理,不同情况下数据丢失的恢复方法,以沉着应对各种数据丢失的突发事件。

  文件组成原理

  SQL Server数据库系统主要由两大部分组成,分别是数据文件以及日志文件。数据文件存储数据,日志文件存储操作数据的行为。

  数据文件

  SQL Server数据库包含两种类型的数据文件:主数据文件和次要数据文件。主数据文件是数据库的起点,指向数据库中的其他文件。每个数据库都有一个主数据文件。主数据文件默认文件扩展名是.mdf。除主数据文件以外的所有其他数据文件都是次要数据文件。某些数据库可能不含有任何次要数据文件,而有些数据库则含有多个次要数据文件。次要数据文件的推荐文件扩展名是.ndf。

  日志文件

  日志文件在数据库中作用十分重要。在执行数据操作的过程中,首先将数据操作命令写入到缓存中,并立即写入日志文件,但不会立即写入数据文件。日志文件通过一个标记点来确定某个操作是否已将缓存中的数据写入数据文件。当SQLServer重启后,会自动查看日志中最新的标记点,并将这个标记点后面的交易记录抹去,因为这些交易记录并没有真正地将缓存中的数据写入数据文件。这可以防止那些中断的操作修改数据文件。

  事务日志记录数据库操作命令,仅记录执行数据发生的动作,而不是记录数据的执行结果。因此备份事务日志后,将备份点之前已经完成的事务标记为“不活动”,而且在执行完整备份数据库后,将自动截断标记为“不活动”的日志记录。合理的安排事务日志备份将提高数据恢复的能力,可以将数据恢复到发生故障前的1秒钟。

  各种文件丢失恢复方法

  数据文件丢失

  数据库系统处于运行状态时,数据库文件处于“活动”状态,数据库文件不能被删除。如果确实出现数据文件被删除的情况,可能由于以下原因:MS SQL Server数据库服务停止;或者在企业管理器中,数据库管理员使用“分离数据库”功能,分离数据库后将数据库文件删除。

  当出现数据库文件被删除时,首先需要了解数据库文件如何被删除,再利用恢复软件恢复被删除的文件。如果是在服务被停止的状态下删除,数据库文件恢复后,数据库文件即可正常加载。如果是数据库分离后的删除,数据库文件恢复后,在企业管理器中,使用附加数据库功能即可。

  日志文件丢失

  日志文件丢失,经常出现在硬件出现故障时,主要体现在数据文件和日志分别存储在不同的物理介质中,当介质损坏时,日志文件随之丢失。丢失SQL Server日志文件分为两类:无活动事务的日志和包含活动事务的日志。

  SQL Server在工作状态下无法删除日志文件,事务日志文件在SQL Server服务未启动的情况下可以被删除。启动SQL服务后,数据库即被标志为“置疑”状态,这种状态下丢失的日志文件为无活动事务日志文件。无活动事务的日志丢失时,首先在企业管理器中,使用分离数据库功能,分离“置疑”的数据库。然后,使用附加数据库功能附加数据库,在附加的过程中创建新的日志文件即可。

  当包含活动事务日志的文件丢失时,使用无活动事务的日志丢失处理方法,将显示“数据库和日志文件不符合,不能附加数据库”错误信息。数据库管理员首先要停止SQL Server服务,将数据文件备份到安全区域。然后启动SQL Server服务,创建新的同名数据库,再停止SQL Server服务,用备份的数据文件覆盖新创建的数据文件。以单用户模式启动SQL Server服务后,将数据库模式设置为紧急模式,使用“DBCC CHECKDB”命令检验数据库的状态,完成后将数据库设置为正常模式,即可完成数据库的修复。

  数据表文件丢失

  在业务系统中提供的数据删除功能和数据库管理员在维护数据库过程中,使用Delete命令删除数据表中的数据,产生的结果完全相同。在工作中经常会遇到误删数据的情况。管理员发出删除数据命令后,首先将删除命令记录在日志文件中,然后在数据库中执行删除操作。由于数据行记录在数据页中,已经删除的数据页并没有真正删除“Slot”中的数据,只是将数据页标记为已经使用,如果有新的数据写入,不会对此类数据页写入数据。

  在SQL Server 数据库中,没有提供恢复数据行命令,标准的恢复删除数据的方法是使用基于备份的事务日志时间点功能。管理员在使用日志恢复时,经过多次定位时间点,可以还原删除的数据。

  Log Explorer for SQL Server能够帮助管理员管理、监控数据库日志,如图1所示。Log Explorer支持联机事务日志文件和离线事务日志文件。当管理员发现数据误删后,建议立即备份数据库,停止SQL Sever服务。启动该工具,使用离线事务日志文件功能,加载误删的日志文件。选择目标数据表以及执行删除操作的数据库用户,设置过滤条件,在浏览日志窗口中显示相关的日志,使用“Undo Transactions”功能生成InsertSQL代码并保存到文本文件中,确认脚本正确后,使用“Run SQL Script” 功能即可完成数据恢复。用户错误执行“Update”脚本后,使用同样的方法可以生成“Update”脚本,将数据恢复到修改前的状态。

  数据库恢复

  数据库恢复是数据库管理员必须掌握的基本技能。SQL Server数据库提供了3种数据恢复模型,分别为:简单模型、完全模型、大容量日志记录模型。

  如果数据库可用,可按照如下流程恢复数据库:

  1. 备份尾日志。尾日志记录是自上一次数据库完整备份、差异备份或者日志备份后生成的日志。

  2. 还原数据库备份。该恢复过程可以在图形模式和查询分析器中完成,如图2所示。当数据库不能访问时,也可恢复数据库或者日志,数据库处于恢复过程中显示的状态为“正在装载”。

  3.还原备份的事务日志备份,恢复参数为“No Recovery”。

  4.用同样的方法还原尾日志。在还原尾日志的过程中恢复参数设置为“With Recovery”,恢复过程中自动回滚未提交的事务日志,根据需要选择时间点,数据库恢复即可完成。

  企业备份数据的方法各不相同,数据库管理员应该了解数据库备份策略,要经常对数据库恢复和恢复过程进行测试,以便应对突发的数据库灾难。

图1 Log Explorer可帮助管理员管理、监控数据库日志

图2 还原数据库备份可在图形模式和查询分析器中完成

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。

邮件订阅


    • 解析Windows密码安全问题(第三部分)评论
      在前两部分文章中,我们讨论了Windows密码政策的问题以及它是如何在Active Directory环境被控制等问题,大家应该还记得在默认情况下密码政策和相关的设置位于默认域策略中(Default Domain Policy)。另外同样探讨了可以使用哪些技术破获windows密码,以及每种攻击方式的限制问题。那么,在本文中,我们将讨论如何让windows密码变得更加安全,以及如何能够解决在前两部分文章中出现的所有问题。本文将涉及Windows2002/2003/2008Active Directory默认安装带来的可能性以及其他能够整体提高密码安全的技术。
    • IDC创新和安全白皮书:合作或竞争评论
      业务创新是业务发展战略非常重要的一部分,并而日益成为公司保持竞争优势的决定性因素。由于创新的战略重要性,导致了我们越来越关注信息安全机制在抑制甚至扼杀业务创新方面起到的作用。IDC认为公司不仅是需要找到业务创新和有可能扼杀这种创新的信息安全机制,而且需要在这两者之间找到一个简洁的平衡来满足自己的业务需求。成功的企业能够在商业竞争中占有优势,是因为他们懂得去合理的利用两者使之成为一种具有杠杆作用的机制,而其它的企业只是单单强调其中的一个。
    • 预防企业数据丢失的6种最佳实践评论
      根据“私有权清算中心”(一家非赢利性消费者信息和倡导组织)的统计,自2005年1月以来,有将近2200万条记录遭到破坏。数据失窃和丢失案件数量惊人,这不仅是因为安全入侵事件正在以惊人的速度持续增长,数据丢失引发的财产损失事件也同样在飞速增加。根据美国政府的估计,所谓的“企业数据丢失”在去年使商业界损失了近1050亿美元。根据波尼蒙研究所(Ponemon Institute)的统计,仅仅内部人士导致的数据受损一项,每年给商业界造成的损失为平均每家公司3-4百万美元。产业分析公司Gartner集团估计,恢复数据的开销可以达到每条破坏记录150美元之高——这一数字还没有包括重拾客户信任和重建品牌价值、可能的罚款以及法律诉讼代理费的资金投入。在企业数据丢失案件有增无减的同时,公司也正在不断搜集更多数据,以求优化商业流程,改善客户服务,以及提升与合作伙伴的关系。更多的数据转化为相关数据在整个企业中数量不断增多的信息系统之间更广泛的传播。其结果就是——随着公司内外越来越多的用户获得接入系统的权限,敏感数据遭到破坏的风险也在不断增大。
    • RSA白皮书:管理银行的信息风险评论
      信息是银行的基础,但直到现在,金融机构还往往满足于以业务封闭式的方式管理风险。然而,行业的压力促使银行开始对这种战略展开思考。