数据库的事务日志已满要怎么办!!!急!

数据库的事务日志已满要怎么办!!!急!,第1张

修改日志文件
alter database dbname
modify file (name=日志文件的逻辑名称, maxsize=50mb )
go
压缩数据库
dbcc shrinkdatabase(dbname)

据库满了,就是说文章保存在数据库中,一般来说数据库保存的东西都是内存不是很大的东西,除了网站cms所必要的数据和系统日志之外,就是你文章的文字啦,至于和视频等等占用空间很多的东西就保存在网页空间里面了,和数据没有关系。
就如楼上的所说,问题不大,增加数据库的容量就行了,现在一般的IDC都会提供这样的服务,对你现在的网站不会有影响的。此外联系客服也很重要的。祝你早日解决问题!

一、用户数据库搬家
*** 作方法有以下两种
方法1:在企业管理器中进行
(1)在企业管理器中选定要搬家的数据库名,在其上单击鼠标右键,出现如图1所示对话框。
(2)选中“所有任务”,在其子菜单中单击“分离数据库”。
(3)将该数据库的数据文件和日志文件从旧的位置(如D:\MSSQL\Data)拷贝到新的位置(如E:\SQLDataNew)。
(4)再在企业管理器中选中“数据库”文件夹,在其上单击鼠标右键,在出现的对话框中选中“所有任务”,在其子菜单中单击“附加数据库”。
(5)在出现的“附加数据库”对话框中,选择数据库的两个文件的新位置。
方法2:用SQL系统存储过程sp_detach_db/sp_attach_db实现
(1)使用下面语句分离数据库:
USE master
GO
EXEC sp_detach_db 'mydb'
GO
(2)将该数据库的数据文件和日志文件从旧的位置拷贝到新的位置。
(3)使用下面语句重新附加数据库:
USE master
GO
EXEC sp_attach_db
'mydb', 'E:\SQLDataNew\mydbdatamdf', 'E:\SQLDataNew\mydblogldf''
GO
二、系统数据库搬家
1.master数据库搬家
(1)由于SQL Server每次启动的时候都需要读取master数据库,因此必须在企业管理器中改变SQL Server启动参数中master数据文件和日志文件的路径。
在 SQL Server属性的“常规”选项卡下面有一个叫做“启动参数”的按钮,单击后可以看到所示的界面。
其中,-d用来指定master数据库文件的路径,而–l用来指定master数据库日志文件的路径。
删除旧的master数据库文件和日志文件的路径,添加新的master数据文件和日志文件所在的路径,如:
-dE:\ SQLDataNew \mastermdf
-lE:\ SQLDataNew \mastlogldf
(2)停止SQL Server服务,将mastermdf文件和mastlogldf文件拷贝到新的位置,如E:\ SQLDataNew文件夹中。
(3)重新启动服务即可。
小技巧:如果在“启动参数”添加的master数据库文件和日志文件的路径或文件名有误,就会造成SQL Server启动不起来。而此时想改正错误又因SQL Server启动不了而重设不了“启动参数”。其实这两个文件路径和文件名是放置在注册表HKEY_LOCAL_MACHINE\SOFWARE\Microsoft\Miccrosoft SQL Server\你安装SQL服务器的名\MSSQLServer\Parrmeters下的参数SQLArg1和SQLArg2中,修改这两个参数的值即可。
2 msdb数据库和model数据库搬家
(1)对于msdb数据库和model数据库,我们不能在企业管理器中实现分离和附加,只能用sp_detach_db和sp_attach_db存储过程来分离和附加这两个数据库。
其中,对于msdb数据库,还应确保SQL Server代理当前没有运行,否则sp_detach_db存储过程将运行失败,并返回如下消息:
“无法除去数据库 'msdb' ,因为它当前正在使用。”
(2)调出如图4所示的“启动参数”对话框,添加新参数-T3608。这样,启动SQL Server,它就不会恢复除master之外的任何数据库。
(3)重新启动SQL Server,再用下面命令分离msdb或者model数据库:
EXEC sp_detach_db 'msdb'
GO
(4)将数据文件和日志文件移到新的位置,然后再用下面命令重新附加msdb数据库或者model数据库:
USE master
GO
EXEC sp_attach_db
'msdb', ‘E:\SQLDataNew\msdbdatamdf', ' E:\SQLDataNew\msdblogldf '
GO
(5)在企业管理器中,从“启动参数”框中删除-T3608跟踪标记,再停止并重新启动SQL Server。
3 tempdb数据库搬家
对于tempdb数据库,则可以直接使用ALTER DATABASE语句来为数据文件和日志文件指定新的存放位置,如下所示:
USE master
GO
ALTER DATABASE tempdb MODIF
Y FILE (NAME=tempdev, FILENAME ='E:\SQLDataNew \tempdbmdf')
GO
ALTER DATABASE tempdb MODIF
Y FILE(NAME=templog, FILENAME=
' E:\SQLDataNew \templogldf')
GO
至此,SQL Server 中数据库全部搬家完成。

那是你观看的网站服务器上的用来储存电信信息数据的数据库的日志已满,是该网站管理员没有固定时间清理日志,或者把日志容量设得太小引起的。和访问者你的客户端没有关系。 要解决,应该和该网站的管理员取得联系,清理数据库日志或者增加日志空间设定。

1检查你的磁盘剩余空间是否足够,如果没有磁盘剩余空间,则清理磁盘,腾出空间。
2检查你的磁盘分区格式:如果是FAT16,则数据文件最大只能是2G,如果是FAT32,则数据文件最大只能是4G,改为NTFS分区则没有这种限制。
3检查一下你有没有限制数据库文件的大小:
企业管理器--右键你的数据库--属性--文件增长限制--如果有限制大小,取消限制。
4检查你的SQL版本,如果你用MSDE,则限制了数据文件最大是2G。
5你也可以为 primary 组添加新的数据文件来解决这个问题

数据库日志己满是数据库管理端经常性的提示消息,如果你需要以往的日志消息,它们是可以导出的,供将来备查,日志备份后你就可以清除当前的日志了,上述提示消息就会暂时没了。如果这些日志消息你感觉没用,直接清了就行。
有的数据库日志空间大小是可以设置的,设大些,上述提示就自然少了。

删除日志文件
直接删除日志文件。此种方式可能会遇到“当前日志正在被SQL Server使用无法删除”的问题,此时,需要停止SQL Server服务,才能进行删除。
USE [master]
GO
ALTER DATABASE [数据库名称] SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE [数据库名称] SET RECOVERY SIMPLE --简单模式
GO
USE [数据库名称] ----指定需要清除日志的数据库名称
GO
DBCC SHRINKFILE (N'数据库日志名称' , 11, TRUNCATEONLY) ----指定需要清除日志的数据库名日志名称
GO
ALTER DATABASE [数据库名称] SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE [数据库名称] SET RECOVERY FULL --还原为完全模式


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12839253.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存