附加没有日志文件的数据库方法

原文:附加没有日志文件的数据库方法

今天客户那边执行SQL报错,经查看是客户服务器数据库磁盘已被全部用完,日志文件达到500GB的程度,后来由于我的错误操作导致日志文件(.ldf)被删除,后来附加.mdf文件老是说没有日志文件附加不成功,后来经过一番折腾终于解决了,下面分享一下!

阅读目录

  • 操作步骤

回到顶部

操作步骤

    1.新建同名的数据库文件

    2.暂停SQLSetver服务

    3.将原先的mdf文件,覆盖新建的数据库,删除新数据库的ldf文件

    4.重新启动SQLSetver服务 ,这时看到的数据库是这个样子的,打不开

  

    5.执行以下SQL语句

  


 1 --1.设置为紧急状态
2 alter database 数据库名称 set emergency
3 --2.设置为单用户模式
4 alter database 数据库名称 set single_user
5 --3.检查并重建日志文件
6 dbcc checkdb(‘数据库名称‘,REPAIR_ALLOW_DATA_LOSS)
7 --4.第3步操作如果有错误提示,运行第4步,没有错误则跳过
8 dbcc checkdb(‘数据库名称‘,REPAIR_REBUILD)
9 --5.恢复成多用户模式
10 alter database 数据库名称 set multi_user

    6.至此会重新生成改库的日志文件,整个过程完成

回到顶部

  

   上一篇:删除数据库日志文件的方法

时间: 2024-10-11 22:10:51

附加没有日志文件的数据库方法的相关文章

Sql Server 附加没有日志文件的数据库(.mdf)文件方法

附加数据库,附加的时候会提醒找不到log文件 针对以上现象有两个写法的语句能解决: 写法一: USE MASTER; EXEC sp_detach_db @dbname = 'TestDB'; EXEC sp_attach_single_file_db @dbname = 'TestDB', @physname = 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008\MSSQL\DATA\TestDB.mdf' 写法二: CREAT

使用lsof回复误删日志文件或数据库

查找谁在使用文件系统 在卸载文件系统时,如果该文件系统中有任何打开的文件,操作通常将会失败.那么通过lsof可以找出那些进程在使用当前要卸载的文件系统,如下: # lsof /GTES11/ COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME bash 4208 root cwd DIR 3,1 4096 2 /GTES11/ vim 4230 root cwd DIR 3,1 4096 2 /GTES11/ 在这个示例中,用户root正在其/GTES1

SQL Server日志文件庞大收缩方法(实测好用)

原文:SQL Server日志文件庞大收缩方法(实测好用) 这两个命令连续执行,间隔时间越少越明显(可多次运行),直到达到效果 --截断 BACKUP LOG CloudMonitor TO DISK='NUL' --收缩 DBCC SHRINKFILE('CloudMonitor_log') 以后就可以采用常规的定期备份日志(比如一小时一次)来防止日志文件无限增长. SQL Server日志文件庞大收缩并非易事, 文章中提到: 由于首日志.尾日志和空间重复利用的原因,当备份日志后产生了日志截断

SQL SERVER2008 数据库日志文件的收缩方法

最近公司的数据库随着业务量的增多,日志文件巨大(超过300G),造成磁盘空间不够用,进而后来的访问数据库请求无法访问. 网上类似的方法也很多,但不可行,如下是我实践过,可行的,将日志文件收缩至任意指定大小的方法: 第一步: 在SQL SERVER Management Studio 中右击数据库选择"属性"--->"选项",将恢复模式由默认的"完整"改为"简单". 第二步:再次右键选择数据库的"任务"

sql server log日志文件减少的方法

随着时间的推移,你会发现数据库的日志文件会多达20G或更多,这时候你就需要以下方法了. -- 首先把数据库的恢复模式改为Simple ALTER DATABASE [数据库] SET RECOVERY SIMPLE; GO -- 缩小log文件至1M,逻辑名称可以通过sp_helpfile拿到 DBCC SHRINKFILE ([数据库日志名], 1); GO -- 重置数据库的恢复模式 ALTER DATABASE [数据库] SET RECOVERY FULL; GO 注意,第一步先用sp_

lnmp vps服务器删除mysql日志文件三种方法

我在上一篇文章介绍了著名的LNMP主机一键安装工具,对比了军哥lnmp和AMH主机的差别,由于AMH拥有用户后台界面,易于新手操作,值得推荐. 但是,上周末我网站宕机,收到DNSPOD发来了宕机提醒,不得不半夜爬起来处理VPS问题,最终查明原因是AMH运行产生了大量的mysql数据库二进制文件,25GB的VPS硬盘几乎占满,导致网站不稳定,出现502宕机错误. AMH作者给出了解决办法,我不喜欢,其实后台修改配置就好了.考虑到所有lnmp vps用户的方便,我把所有解决办法都列出来给各位参考:

phpunit 生成三种日志文件的配置方法

#目录结构 windows bin目录下 ├── phpunit.phar ├── phpunit.cmd ├── phpunit.xml ├── build.xml ├── ArrTest.php └── tmp ├── logfile.json ├── logfile.tap └── logfile.xml #日志XML文件配置 新建文件 build.xml 放置在根目录 <logging> <log type="json" target="tmp/1o

删除数据库日志文件的方法

原文:删除数据库日志文件的方法 你曾经有在执行SQL的时候,数据库报事务日志已满,然后执行报错.然后纠结于怎么删除数据库日志,捣鼓半天吗,现在就提供两种删除日志文件的方法,希望能够帮到你! 阅读目录 方法一:手工操作 方法二:存储过程代替手工操作 示例存储过程下载 回到顶部 方法一:手工操作   1.数据库->右键->属性->选项-恢复模式->由完成切换成简单   2.数据库->右键->任务->收缩-文件->由完成切换成简单->文件类型->日志-

使用作业自动清理数据库日志文件

原文:使用作业自动清理数据库日志文件 在上一篇文章中介绍了如何删除数据库日志文件,但是想想还是不是不方便需要手工操作,于是想结合作业实现自动清理日志文件,在清理日志文件时我加上了条件,当磁盘控空间不足多少M才会清理,下面介绍如何实现该功能.没有阅读上一篇文章的,可以通过传送门阅读(删除数据库日志文件的方法)! 阅读目录 SQL查询磁盘空间大小 存储过程添加作业 示例下载 回到顶部 SQL查询磁盘空间大小  采用内置的存储过程,即可查看各个磁盘可用空间 exec master..xp_fixedd