社区
MS-SQL Server
帖子详情
sql2005如何附加没有日志文件的数据库?
doublefeng
2008-03-14 11:07:27
我记得以前2000时.他会自动生成一个相应的日志文件,
怎么2005不会啊.一直没办法附加..
有没人知道怎么解决的..?
...全文
993
5
打赏
收藏
sql2005如何附加没有日志文件的数据库?
我记得以前2000时.他会自动生成一个相应的日志文件, 怎么2005不会啊.一直没办法附加.. 有没人知道怎么解决的..?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dufebin
2010-09-14
打赏
举报
回复
呵呵。。谢谢了
lijie__520
2010-02-01
打赏
举报
回复
[Quote=引用楼主 doublefeng 的回复:]
我记得以前2000时.他会自动生成一个相应的日志文件,
怎么2005不会啊.一直没办法附加..
有没人知道怎么解决的..?
[/Quote]
怎么用你的方法附加的一样没用?
kingwkb
2008-06-17
打赏
举报
回复
不行啊
配置选项 'allow updates' 已从 0 更改为 1。请运行 RECONFIGURE 语句进行安装。
消息 259,级别 16,状态 1,第 2 行
不允许对系统目录进行即席更新。
消息 5173,级别 16,状态 1,第 1 行
一个或多个文件与数据库的主文件不匹配。如果是尝试附加数据库,请使用正确的文件重试该操作。如果这是现有数据库,则文件可能已损坏,应该从备份进行还原。
日志文件 'D:\database\mssql\chinamedbook.com_log.ldf' 与主文件不匹配。该文件可能来自另一数据库,或者可能以前重新生成了日志。
消息 945,级别 14,状态 2,第 1 行
由于文件不可访问,或者内存或磁盘空间不足,所以无法打开数据库 'chinamedbook.com'。有关详细信息,请参阅 SQL Server 错误日志。
消息 5069,级别 16,状态 1,第 1 行
ALTER DATABASE 语句失败。
sp_dboption 命令失败。
消息 945,级别 14,状态 2,第 2 行
由于文件不可访问,或者内存或磁盘空间不足,所以无法打开数据库 'chinamedbook.com'。有关详细信息,请参阅 SQL Server 错误日志。
消息 259,级别 16,状态 1,第 2 行
不允许对系统目录进行即席更新。
配置选项 'allow updates' 已从 1 更改为 0。请运行 RECONFIGURE 语句进行安装。
消息 5173,级别 16,状态 1,第 1 行
一个或多个文件与数据库的主文件不匹配。如果是尝试附加数据库,请使用正确的文件重试该操作。如果这是现有数据库,则文件可能已损坏,应该从备份进行还原。
日志文件 'D:\database\mssql\chinamedbook.com_log.ldf' 与主文件不匹配。该文件可能来自另一数据库,或者可能以前重新生成了日志。
消息 945,级别 14,状态 2,第 1 行
由于文件不可访问,或者内存或磁盘空间不足,所以无法打开数据库 'chinamedbook.com'。有关详细信息,请参阅 SQL Server 错误日志。
消息 5069,级别 16,状态 1,第 1 行
ALTER DATABASE 语句失败。
sp_dboption 命令失败。
doublefeng
2008-03-14
打赏
举报
回复
我晕..怎么会发出两个一模一样的帖子?
无语...
dawugui
2008-03-14
打赏
举报
回复
无数据库日志文件恢复数据库方法两则
方法一
1.新建一个同名的数据库
2.再停掉sql server(注意不要分离数据库)
3.用原数据库的数据文件覆盖掉这个新建的数据库
4.再重启sql server
5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了.
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'
Go
sp_dboption '置疑的数据库名', 'single user', 'true'
Go
DBCC CHECKDB('置疑的数据库名')
Go
update sysdatabases set status =28 where name='置疑的数据库名'
Go
sp_configure 'allow updates', 0 reconfigure with override
Go
sp_dboption '置疑的数据库名', 'single user', 'false'
Go
方法二
事情的起因:昨天,系统管理员告诉我,我们一个内部应用数据库所在的磁盘空间不足了。我注意到数据库事件日志文件XXX_Data.ldf文件已经增长到了3GB,于是我决意缩小这个日志文件。经过收缩数据库等操作未果后,我犯了一个自进入行业以来的最大最愚蠢的错误:竟然误删除了这个日志文件!后来我看到所有论及数据库恢复的文章上都说道:“无论如何都要保证数据库日志文件存在,它至关重要”,甚至微软甚至有一篇KB文章讲如何只靠日志文件恢复数据库的。我真是不知道我那时候是怎么想的?!
这下子坏了!这个数据库连不上了,企业管理器在它的旁边写着“(置疑)”。而且最要命的,这个数据库从来没有备份了。我唯一找得到的是迁移半年前的另外一个数据库服务器,应用倒是能用了,但是少了许多记录、表和存储过程。最终成功恢复的全部步骤如下:
设置数据库为紧急模式
ü 停掉SQL Server服务;
ü 把应用数据库的数据文件XXX_Data.mdf移走;
ü 重新建立一个同名的数据库XXX;
ü 停掉SQL服务;
ü 把原来的数据文件再覆盖回来;
ü 运行以下语句,把该数据库设置为紧急模式;
运行“Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go”
执行结果:
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
已将配置选项 'allow updates' 从 0 改为 1。请运行 RECONFIGURE 语句以安装。
接着运行“update sysdatabases set status = 32768 where name = 'XXX'”
执行结果:(所影响的行数为 1 行)
ü 重启SQL Server服务;
ü 运行以下语句,把应用数据库设置为Single User模式;
运行“sp_dboption 'XXX', 'single user', 'true'”
执行结果:
命令已成功完成。
ü 做DBCC CHECKDB;
运行“DBCC CHECKDB('XXX')”
执行结果:
'XXX' 的 DBCC 结果。
'sysobjects' 的 DBCC 结果。
对象 'sysobjects' 有 273 行,这些行位于 5 页中。
'sysindexes' 的 DBCC 结果。
对象 'sysindexes' 有 202 行,这些行位于 7 页中。
'syscolumns' 的 DBCC 结果。
………
ü 运行以下语句把系统表的修改选项关掉;
运行“sp_resetstatus "XXX"
go
sp_configure 'allow updates', 0
reconfigure with override
Go”
执行结果:
在 sysdatabases 中更新数据库 'XXX' 的条目之前,模式 = 0,状态 = 28(状态 suspect_bit = 0),
没有更新 sysdatabases 中的任何行,因为已正确地重置了模式和状态。没有错误,未进行任何更改。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
已将配置选项 'allow updates' 从 1 改为 0。请运行 RECONFIGURE 语句以安装。
ü 重新建立另外一个数据库XXX.Lost;
DTS导出向导
运行DTS导出向导;
复制源选择EmergencyMode的数据库XXX,导入到XXX.Lost;
选择“在SQL Server数据库之间复制对象和数据”,试了多次,好像不行,只是复制过来了所有表结构,但是没有数据,也没有视图和存储过程,而且DTS向导最后报告复制失败;
所以最后选择“从源数据库复制表和视图”,但是后来发现,这样总是只能复制一部分表记录;
于是选择“用一条查询指定要传输的数据”,缺哪个表记录,就导哪个;
视图和存储过程是执行SQL语句添加的。
这样,XXX.Lost数据库就可以替换原来的应用数据库了。
Sql
Server
附加
没有
日志
文件
的
数据库
(.mdf)
文件
方法
附加
数据库
,
附加
的时候会提醒找不到log
文件
针对以上现象有两个写法的语句能解决: 写法一: USE MASTER; EXEC sp_detach_db @dbname = 'TestDB'; EXEC sp_attach_single_file_db @dbname = 'TestDB', @physname = 'D:\Program F...
附加
没有
日志
文件
的
数据库
方法
今天客户那边执行
SQL
报错,经查看是客户服务器
数据库
磁盘已被全部用完,
日志
文件
达到500GB的程度,后来由于我的错误操作导致
日志
文件
(.ldf)被删除,后来
附加
.mdf
文件
老是说
没有
日志
文件
附加
不成功,后来经过一番折腾终于解决了,下面分享一下! 操作步骤 1.新建同名的
数据库
文件
2.暂停
SQL
Setver服务 3.将原先的mdf
文件
,覆盖新建的
数据库
,删...
Sql
Server
附加
没有
日志
文件
的
数据库
(.mdf)
文件
方法,试过成功
针对以上现象有两个写法的语句能解决: 写法一: USEMASTER; EXECsp_detach_db@dbname='db'; EXECsp_attach_single_file_db@dbname='db', @physname= 'D:\ProgramFiles\DATA\db.mdf' 写法二: CREATEDAT...
SQL
Server
日志
文件
过大 大
日志
文件
清理方法 不分离
数据库
SQL
Server
日志
文件
过大,随着时间的推移会占用很大的存储空间 ,例如几G、几十个G、上百G的大
日志
需要清理。
SQL
Server
数据库
大
日志
文件
清理方法 ,网上提供了很多清理
日志
的需要【先分离
数据库
——〉删除
日志
文件
——〉
附加
数据库
】 的方法,此方法风险太大,执行过程也比较久,有时候也会出现分离不成功的现象,导致
数据库
无法正常使用。1.在
SQL
Server 2008中清除
日志
就必须在简单模式下进行,等清除动作完毕再调回到完整模式,一定必务要再改回完整模式,不然
数据库
就不支持时间点备份了。
SQL
SERVER 2008 2012
数据库
损坏 或者
附加
数据库
无
日志
文件
出错
最近不知道什么原因,我本人的数据在删除
日志
文件
后,在此
附加
时一直提示
数据库
无
日志
文件
,
数据库
损坏等错误信息而导致无法
附加
数据库
,查阅资料后,经过多番测试终于成功将
数据库
附加
上去了。在此做个总结。 1、先建一个同名的空
数据库
2、停止
数据库
服务 3、将原来有问题的数据覆盖刚刚新建的
数据库
文件
,
日志
文件
不要动,仅覆盖
数据库
文件
。 4、启动
数据库
服务 5、alter database 自己的数...
MS-SQL Server
34,590
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章