注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Windows >> 服务器技术 >> SQL Server >> Windows正文

SQL Server事务日志的几个常用操作

文章来源:中国IT实验室收集整理 作者:佚名 更新时间:2008-5-25 3:12:10 【 】 【加入收藏

   我们知道,SQL Server事务日志主要是用来记录所有事务对数据库所做的修改,如果系统出现故障,它将成为最新数据的唯一来源。日志的操作常有以下几个应用:

  一、事务日志文件LDF的丢失

  当我们不小删除或者LDF文件丢失的时候,数据库只剩下MDF文件,此时直接通过附加MDF是无法恢复数据库的,那我们怎么样才能恢复数据库呢?我们可以把SQL Server的日志文件分为两种形式:一类是无活动事务的日志,另一类是有活动事务的日志,我们分别根据两种情况来进行数据库恢复。

  1、无活动事务的日志恢复

  当文件并没有发生活动性的日志,我们就可以很容易的利用MDF文件就可以直接恢复数据库了,具体操作方法如下:

  1)数据库要是没有日志,就会处于置疑的状态,我们先可以通过企业管理器中在对应数据库中点击右键,然后在“所有任务”下选择“分离数据库”把数据库进行分离;

  2)利用MDF文件附加数据库生成新的日志文件,可用企业管理器中数据库点击右键选择“所有任务”下的“附加数据库”把数据库附加上。

  这样就可以直接恢复好数据库了,而如果数据库的日志文件中含有活动事务,利用此方法就不能恢复数据库,所以得使用下面的方法。

  2、有活动事务的日志恢复

  当日志发生了事务的记录,丢失的时候,我们采用如下的方法来实现:

  1)新建一个同名的数据库,如原数据库名为MYDB,然后停止SQL Server服务器,再把数据库主数据MDF文件移走,然后重新启动SQL Server服务器,新建一个同名的数据库MYDB,然后再停止SQL Server服务器,把移走的MDF文件再覆盖回来,然后再重新启动SQL Server服务器,在默认的情况下,系统表是不允许被修改的,我们需要运行以下语句才可以,在查询分析器中,选择Master数据库,然后执行:

  Sp_configure 'allow updates',1

  Reconfigure With Override

  接着运行以下语句,把Sysdatabases表中MYDB数据库的status属性设为‘37268’,把MYDB数据库设置为紧急模式。

  update sysdatabases set status=32768 where name=’MYDB’

  然后再把数据库MYDB设置为单用户模式,然后重启SQL Server服务器,并把数据库MYDB设为单用户模式

  Sp_dboption 'MYDB','single user', 'true'

  再运行以下语句,检查数据库MYDB

  DBCC CHECKDB(‘MYDB’)

    2)还原数据库的状态

  运行以下语句,就可以把数据库的状态还原:

  Update Sysdatabases Set status=28 Where name=’MYDB’

  Sp_Configure ’allow updates’,0

  Reconfigure With Override

  此时的数据库仍不能工作,还要进行以下的操作,才能恢复。

  3)利用DTS的导入导出向导,把数据库MYDB导入到一个新建数据库MYDBNEW中,然后新建一个数据库MYDBNEW,右击MYDBNEW,选择“所有任务”下的“导出数据”功能,打开导入向导,把表结构、数据视图和存储过程导入到MYDBNEW中,然后再用此功能把MYDBNEW库替换成原来的MYDB库即可。

  可以知道,恢复一个有活动事务的日志是麻烦多了,所以在数据库维护的时候,切不要小看事务日志。

  二、事务在不断增大的时候如何缩小日志

  当数据如在频繁修改或者删除的同时,事务的日志就会不断的增加,甚至超过了碰盘的大小,这时候就不能因此而直接删除了事务日志的LDF文件,否则可能会带来很大的麻烦。为了避免这种情况,我们需要有如下的操作:

  1) 尽量避免tempdb 日志与用户数据库日志放在同一磁盘上,tempdb 数据库和事务日志具有足够的空间来处理索引操作。不能在索引操作完成之前截断 tempdb 事务日志。

  2) 通过执行下列命令来缩小事务日志

  DBCC SHRINKDATABASE

  DBCC SHRINKFILE

  操作会立即尝试将物理日志文件收缩为所要求的大小。

  如果虚拟日志文件中的逻辑日志未超出 target_size 标记,则释放 target_size 标记之后的虚拟日志文件,并成功完成 DBCC 语句,不显示任何信息。

  如果虚拟日志中的逻辑日志超出了 target_size 标记,SQL Server Database Engine 将释放尽可能多的空间并显示一个信息性消息。该消息告诉您必须执行什么操作来从文件尾部的虚拟日志中删除逻辑日志。执行完该操作后,可以重新发出 DBCC 语句以释放剩余的空间。

  DBCC SHRINKFILE 语句还显示一个信息性消息,指出它不能释放所要求的全部空间,并告诉您可以执行 BACKUP LOG 语句来释放剩余的空间。

  三、事务日志的还原

  事务日志在还原的时候可以选择三种恢复模式:简单模式、完整模式和大容量日志模式。

    简单恢复模式

  此模式简略地记录大多数事务,所记录的信息只是为了确保在系统崩溃或还原数据备份之后数据库的一致性。

  由于旧的事务已提交,已不再需要其日志,因而日志将被截断。截断日志将删除备份和还原事务日志。但是,这种简化是有代价的,在灾难事件中有丢失数据的可能。没有日志备份,数据库只可恢复到最近的数据备份时间。如果您使用的是 SQL Server Enterprise Edition,需要考虑此问题。此外,该模式不支持还原单个数据页。

  完整恢复模式

  此模式完整地记录了所有的事务,并保留所有的事务日志记录,直到将它们备份。在 SQL Server Enterprise Edition 中,完整恢复模式能使数据库恢复到故障时间点。

  大容量日志恢复模式

  此模式简略地记录大多数大容量操作(例如,索引创建),完整地记录其他事务。

  大容量日志恢复提高大容量操作的性能,常用作完整恢复模式的补充。大容量日志恢复模式支持所有的恢复形式,但是有一些限制,备份包含大容量日志记录操作的日志时,需要访问数据库内的所有数据文件。如果数据文件不可访问,则无法备份最后的事务日志,而且该日志中所有已提交的操作都将丢失。

  • 上一篇Windows:

  • 下一篇Windows:
  • 最 新 热 门
     2007年7-12月微软安全情报报告发布
     Windows “Fiji” Beta测试已经开始
     微软将在Office 2007 SP2中支持ODF和PDF
     微软真的放弃Vista用Windows 7取而代之
     更新XP SP3会损坏Windows注册表
     安全厂商再抛证据:Vista不安全64%染病毒
     惠普确认失误导致安装SP3不断重启
     OLPC版Windows XP只要3美元
     微软和OLPC宣布OLPC XO采用Windows XP
     Windows7发布日期之计算法
    最 新 推 荐
     从IIS到SQL Server数据库安全
     SQL Server不存在或拒绝访问故障的排除
     在PL/SQL应用程序中缓存图片
     SQL Server事务日志的几个常用操作
     SQL Server 2008数据库TDE压缩加密篇
     SQL Server 2008之行值构造器
     SQL Server中数据导入导出三种方法
     使用SQL Server 2008进行预测分析
     SQL Server 2008分析服务概览
     在SQL Server 2008中运用表值参数
    相 关 文 章

    从IIS到SQL Server数据库安全
    SQL Server不存在或拒绝访问故障的排除
    在PL/SQL应用程序中缓存图片
    SQL Server 2008数据库TDE压缩加密篇
    SQL Server 2008之行值构造器
    SQL Server中数据导入导出三种方法
    使用SQL Server 2008进行预测分析
    SQL Server 2008分析服务概览
    在SQL Server 2008中运用表值参数
    XP下安装Apache2 PHP5 MYSQL5 Zend

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用