zoukankan      html  css  js  c++  java
  • SQL2008 无日志附加MDF文件

     SQL数据在附加的时候..有时会因为日志文件过大..或者一些其他问题造成附加失败..

     笔者遇到的问题是数据库主文件(*.mdf)超过25G..日志文件超过200G..附加的耗时简直日了狗了..最后超时..附加失败..

     所以就在想不要这个日志文件了行不行..最后发现了这篇文章.. 阅读原文<SQL Server附加数据库时报1813错误的解决方案> ..以下是对这篇文章的整理和补充..

    主要报错信息

    无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。

    解决的方案:

    1. 新建一个同名的数据库.最好是区分大小写.. 甚至创建时的逻辑名都尽量保持一致

    2. 关闭SQL服务..不要分离新建的库..(以下是命令..在"运行"窗口执行)

    Net Stop MsSqlserver

    3. 这个时候因为服务停掉了..所以可以操作实际的数据文件*.mdf..用原有的同名mdf文件覆盖新建库的mdf文件..然后启动sql服务...(以下是命令..在"运行"窗口执行)

    Net Start MsSqlserver

       这时系统还没有检查异常..先别刷新..

    4. 按顺序执行以下语句,, 注意看注释 有跳过的语句

        把NewDBName改成你的数据库名字

    --设置库为紧急状态
    alter database NewDBName set emergency
    
    --设置为单用户模式
    alter database NewDBName set single_user
    
    --检查并重建日志文件
    dbcc checkdb('NewDBName',REPAIR_ALLOW_DATA_LOSS)
    
    --上条执行时间比较长。耐心等待!
    --如果报错..执行以下, 没有报错..可以跳过
    dbcc checkdb('NewDBName',REPAIR_REBUILD)
    
    --恢复成多用户模式
    alter database NewDBName set multi_user

    一般执行到这里就已经好了..

    刷新看看..

  • 相关阅读:
    博客地址
    node学习2
    正则表达式总结
    Git命令操作
    IDEA快捷键
    hibernate多对多(权限管理)
    所有国家的下拉框英文全称
    所有国家的下拉框英文简写
    所有国家的下拉框中文
    poj-1248 Safecracker
  • 原文地址:https://www.cnblogs.com/iiwen/p/6256925.html
Copyright © 2011-2022 走看看