sql2008 恢复模式:完整 事务日志已满问题

时间:2021-04-05 17:40:55
sql2008  恢复模式:完整  事务日志已满问题
1. 数据库属性:没有限制文件的增长
2.没有做事务日志备份


疑问: 一台服务器会提示 事务日志已满问题 ,另一台服务器没有提示。但是日志文件很大。

这是为什么? 还有顺带问一下。事务日志备份要如何还原呢?要具体到时点。但是客户一般出现问题都是给出大概时间或者有时候时间是不准确的。要如何确定呢?

20 个解决方案

#1


在恢复模式为完整的情况下,如果不进行日志备份日志是不会自动截断的也就是会一直无限制的增长到不能增长为止,最后将无法做新的交易。日志量的产生跟你的业务量的大小有关,也跟你运行的语句产生的日志量的大小有关,所以可能一台已满而另一台没有满(不进行日志备份满也只是迟早的问题了)。
还原日志备份请参见一下链接  http://technet.microsoft.com/zh-cn/library/ms177446(v=sql.110).aspx

还原的时候指定STOPAT 还原到指定的时间点,上面链接中相关任务都有提到如何做到

#2


那台服务器没有提示的 日志文件已经2G多了。用网上查看日志使用率 也查了,使用率达95% 。却没有出现说 事务日志已满,然后导致应用程序无法查询 删除 添加等操作。 而那台出现事务日志已满 的我看了事务日志才100多M 

#3


引用 1 楼 yoan2014 的回复:
在恢复模式为完整的情况下,如果不进行日志备份日志是不会自动截断的也就是会一直无限制的增长到不能增长为止,最后将无法做新的交易。日志量的产生跟你的业务量的大小有关,也跟你运行的语句产生的日志量的大小有关,所以可能一台已满而另一台没有满(不进行日志备份满也只是迟早的问题了)。
还原日志备份请参见一下链接  http://technet.microsoft.com/zh-cn/library/ms177446(v=sql.110).aspx

还原的时候指定STOPAT 还原到指定的时间点,上面链接中相关任务都有提到如何做到


sql2008 恢复模式:完整 事务日志已满问题 为什么是灰色的呢?

#4


在还原日志备份前要先还原一份在日志备份之前的完整备份,并且还原完整备份时采用 NORECOVERY
sql2008 恢复模式:完整 事务日志已满问题

#5


引用 2 楼 a2115815 的回复:
那台服务器没有提示的 日志文件已经2G多了。用网上查看日志使用率 也查了,使用率达95% 。却没有出现说 事务日志已满,然后导致应用程序无法查询 删除 添加等操作。 而那台出现事务日志已满 的我看了事务日志才100多M 


是不是有限定了日志文件的大小了,或者磁盘空间已满

#6


没有哦。很郁闷、都没限制。磁盘空间还有可用的空间
sql2008 恢复模式:完整 事务日志已满问题
这样子还原吗? 我有备份了两次事务日志。也有先备份了完整的数据库 
sql2008 恢复模式:完整 事务日志已满问题

#7


这个时候 sql2008 恢复模式:完整 事务日志已满问题
要怎么做呢?
执行 RESTORE database jfdf_t1 with  recovery 吗?

#8


引用 7 楼 a2115815 的回复:
这个时候 sql2008 恢复模式:完整 事务日志已满问题
要怎么做呢?
执行 RESTORE database jfdf_t1 with  recovery 吗?


RESTORE LOG database_name FROM <backup_device> WITH STOPAT =time, RECOVERY

#9


sql2008 恢复模式:完整 事务日志已满问题 看看数据库的属性,确认一下有没有限定日志文件的大小

#10


确定过了的,没有。  sql2008 恢复模式:完整 事务日志已满问题
我备份了两次事务日志后。我还原第一个事务日志成功。但是再来还原第二次的时候,就提示 sql2008 恢复模式:完整 事务日志已满问题

#11


如果你要还原完第一次再还原第二次还原第一次也应该使用with norecovery

#12


在日志已满的那台执行
select * from sys.sysfiles
 看看

#13


sql2008 恢复模式:完整 事务日志已满问题
日志满那个情况,我已经去备份日志处理给客户了。我每次还原都有用 sql2008 恢复模式:完整 事务日志已满问题

#14


成功后只勾选第二个试试看,没有使用过用图形化界面还原,多用语句进行还原

#15


也一样哦。 insert into test(sl) --2015-01-02 15:43插入
values(5)
insert into test(sl)
values(6)

--2015-01-02 15:44  备份事务日志

insert into test(sl) --2015-01-02 15:45插入
values(7)
insert into test(sl)
values(8)

--2015-01-02 15:46  备份事务日志

这样子 能否贴下语句给我?
  sql2008 恢复模式:完整 事务日志已满问题

#16


RESTORE DATABASE AdventureWorks
   FROM disk = 'C:\完整备份.bak' with NORECOVERY;

RESTORE LOG AdventureWorks
   FROM disk = 'C:\事务日志1.bak' with NORECOVERY ;--还原整个日志1

RESTORE LOG AdventureWorks
   FROM disk = 'C:\事务日志1.bak' with NORECOVERY, STOPAT = '2015-01-02 15:44';--还原日至2到第二句insert之前的状态

RESTORE DATABASE AdventureWorks WITH RECOVERY; --
GO

#17


谢谢,我试试

#18


还原2 的也是这样子吗?

#19


我写错了,我这边写的第三句restore应该是还原第二个日志文件

#20


召唤黄版主 sql2008 恢复模式:完整 事务日志已满问题

#1


在恢复模式为完整的情况下,如果不进行日志备份日志是不会自动截断的也就是会一直无限制的增长到不能增长为止,最后将无法做新的交易。日志量的产生跟你的业务量的大小有关,也跟你运行的语句产生的日志量的大小有关,所以可能一台已满而另一台没有满(不进行日志备份满也只是迟早的问题了)。
还原日志备份请参见一下链接  http://technet.microsoft.com/zh-cn/library/ms177446(v=sql.110).aspx

还原的时候指定STOPAT 还原到指定的时间点,上面链接中相关任务都有提到如何做到

#2


那台服务器没有提示的 日志文件已经2G多了。用网上查看日志使用率 也查了,使用率达95% 。却没有出现说 事务日志已满,然后导致应用程序无法查询 删除 添加等操作。 而那台出现事务日志已满 的我看了事务日志才100多M 

#3


引用 1 楼 yoan2014 的回复:
在恢复模式为完整的情况下,如果不进行日志备份日志是不会自动截断的也就是会一直无限制的增长到不能增长为止,最后将无法做新的交易。日志量的产生跟你的业务量的大小有关,也跟你运行的语句产生的日志量的大小有关,所以可能一台已满而另一台没有满(不进行日志备份满也只是迟早的问题了)。
还原日志备份请参见一下链接  http://technet.microsoft.com/zh-cn/library/ms177446(v=sql.110).aspx

还原的时候指定STOPAT 还原到指定的时间点,上面链接中相关任务都有提到如何做到


sql2008 恢复模式:完整 事务日志已满问题 为什么是灰色的呢?

#4


在还原日志备份前要先还原一份在日志备份之前的完整备份,并且还原完整备份时采用 NORECOVERY
sql2008 恢复模式:完整 事务日志已满问题

#5


引用 2 楼 a2115815 的回复:
那台服务器没有提示的 日志文件已经2G多了。用网上查看日志使用率 也查了,使用率达95% 。却没有出现说 事务日志已满,然后导致应用程序无法查询 删除 添加等操作。 而那台出现事务日志已满 的我看了事务日志才100多M 


是不是有限定了日志文件的大小了,或者磁盘空间已满

#6


没有哦。很郁闷、都没限制。磁盘空间还有可用的空间
sql2008 恢复模式:完整 事务日志已满问题
这样子还原吗? 我有备份了两次事务日志。也有先备份了完整的数据库 
sql2008 恢复模式:完整 事务日志已满问题

#7


这个时候 sql2008 恢复模式:完整 事务日志已满问题
要怎么做呢?
执行 RESTORE database jfdf_t1 with  recovery 吗?

#8


引用 7 楼 a2115815 的回复:
这个时候 sql2008 恢复模式:完整 事务日志已满问题
要怎么做呢?
执行 RESTORE database jfdf_t1 with  recovery 吗?


RESTORE LOG database_name FROM <backup_device> WITH STOPAT =time, RECOVERY

#9


sql2008 恢复模式:完整 事务日志已满问题 看看数据库的属性,确认一下有没有限定日志文件的大小

#10


确定过了的,没有。  sql2008 恢复模式:完整 事务日志已满问题
我备份了两次事务日志后。我还原第一个事务日志成功。但是再来还原第二次的时候,就提示 sql2008 恢复模式:完整 事务日志已满问题

#11


如果你要还原完第一次再还原第二次还原第一次也应该使用with norecovery

#12


在日志已满的那台执行
select * from sys.sysfiles
 看看

#13


sql2008 恢复模式:完整 事务日志已满问题
日志满那个情况,我已经去备份日志处理给客户了。我每次还原都有用 sql2008 恢复模式:完整 事务日志已满问题

#14


成功后只勾选第二个试试看,没有使用过用图形化界面还原,多用语句进行还原

#15


也一样哦。 insert into test(sl) --2015-01-02 15:43插入
values(5)
insert into test(sl)
values(6)

--2015-01-02 15:44  备份事务日志

insert into test(sl) --2015-01-02 15:45插入
values(7)
insert into test(sl)
values(8)

--2015-01-02 15:46  备份事务日志

这样子 能否贴下语句给我?
  sql2008 恢复模式:完整 事务日志已满问题

#16


RESTORE DATABASE AdventureWorks
   FROM disk = 'C:\完整备份.bak' with NORECOVERY;

RESTORE LOG AdventureWorks
   FROM disk = 'C:\事务日志1.bak' with NORECOVERY ;--还原整个日志1

RESTORE LOG AdventureWorks
   FROM disk = 'C:\事务日志1.bak' with NORECOVERY, STOPAT = '2015-01-02 15:44';--还原日至2到第二句insert之前的状态

RESTORE DATABASE AdventureWorks WITH RECOVERY; --
GO

#17


谢谢,我试试

#18


还原2 的也是这样子吗?

#19


我写错了,我这边写的第三句restore应该是还原第二个日志文件

#20


召唤黄版主 sql2008 恢复模式:完整 事务日志已满问题

#21