Access教程
  • sql server教程
  • MySQL教程 DB2教程 ORACLE教程
    当前位置:教程 > 数据库 > sql server教程 > 正文

    数据库交易记录已满的可能解决方式

    编辑:教程网 来源:网络 时间:2013年08月16日 14:27

    【问题描述】

    今天某个委外开发的系统出现【数据库'db name'的交易记录已满。如果要了解为何无法重复使用记录中的空间,请参阅sys.databases中的log_reuse_wait_desc数据行】,从 SQL Server 的记录文件检视器,您会看到类似下图的记录。

    \

    实际检查交易记录文件所使用的磁盘驱动器似乎还有足够的空间可供使用,为什么会发生这样的问题呢?KB 317375 指出可能的原因如下:

    未认可的交易 超大型交易 作业:DBCC DBREINDEX 及 CREATE INDEX 还原交易记录备份时 客户端应用程序未处理所有结果 在交易记录完成扩充之前,查询逾时,您收到错误的「记录已满」错误讯息 未复写的交易

    【实作步骤】

    若您想要了解是什么原因造成交易记录无法重复使用,必须强制截断或清空,您可以依照错误讯息的提示来查询 sys.databases 系统检视的 log_reuse_wait_desc 数据行,该数据行会告诉您目前交易记录文件的空间正等待进行什么样的作业。

    NOTHING CHECKPOINT LOG_BACKUP ACTIVE_BACKUP_OR_RESTORE ACTIVE_TRANSACTION DATABASE_MIRRORING REPLICATION DATABASE_SNAPSHOT_CREATION LOG_SCAN AVAILABILITY_REPLICA OLDEST_PAGE OTHER_TRANSIENT

    但是要解决这个问题,或许您可以直接以下列两种方式之一来截断或清空交易记录。

    方法一、使用 T-SQL:您可以利用设定数据库复原模式为简单复原模式,来截断或清空交易记录。

    ALTER DATABASE 数据库名称 SET RECOVERY SIMPLE GO

    方法二、使用 SSMS:您也可以在 SSMS 的对象总管中,在发生上述错误讯息的数据库上按鼠标右键选择【属性】。

    \

    于数据库属性窗口左侧的选取页面区块中点选【选项】,接着设定复原模式为【简单】,最后按确定,即可截断或冲空记录党。 www.it165.net

    \


  • 原文来自 教程网 转载请注明:http://www.websmill.com/shujuku/sql_server/32323.html

  • 上一篇:为SQL Server 2012配置镜像注意事项及采用SSD硬盘作为数据库存储
  • 下一篇:正则表达式在MS SQL Server中的应用