sql数据库日志文件过大怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql数据库日志文件过大怎么办相关的知识,希望对你有一定的参考价值。
日志文件太大,使其减小的方法。在打开SQL Server Management Studio并正常联接SQL服务器后,运行下面的三行:
( 注意将dbName代换为你的数据库名。)
backup log dbName with NO_LOG
backup log dbName with TRUNCATE_ONLY
DBCC SHRINKDATABASE(dbName)
注意,在SQL 2008之后的版本以上方法无效,需将数据库设为简单模式后再进行收缩。
此外,在SQL Server Management Studio中,以视窗方法操作也可以,操作步骤:
第一步:截断数据库日志,运行代码:
BACKUP LOG 要收缩的数据库名 WITH NO_LOG
第二步:收缩数据库日志文件:
1. 选择要收缩的数据库,点右键选择任务-收缩-文件
2. 在弹出的页面中,选择文件类型为日志
3.点确定。 参考技术A Sqlserver2005下,日志文件太大,使其减小的方法。
在打开SQL Server Management Studio并正常联接SQL服务器后,运行下面的三行:
( 注意将dbName代换为你的数据库名。)
backup log dbName with NO_LOG
backup log dbName with TRUNCATE_ONLY
DBCC SHRINKDATABASE(dbName)
注意,在SQL 2008之后的版本以上方法无效,需将数据库设为简单模式后再进行收缩。
此外,在SQL Server Management Studio中,以视窗方法操作也可以,操作步骤:
第一步:截断数据库日志,运行代码:
BACKUP LOG 要收缩的数据库名 WITH NO_LOG
第二步:收缩数据库日志文件:
1. 选择要收缩的数据库,点右键选择任务-收缩-文件
2. 在弹出的页面中,选择文件类型为日志
3.点确定。 参考技术B
经过几个小时的测试,最有用的方法如下:
- 停止数据库MSSQL实复制数据库目标库文件('***.mdf')重新命名执行如下SQL语句,注意修改正确的库名EXEC sp_attach_single_file_db @dbname = '库名',
@physname = 'D:\\Program Files\\Microsoft SQL Server\\MSSQL10_50.MSSQLSERVER\\MSSQL\\DATA\\库名.mdf'数据库属性/文件/限制文件增长数据库属性/选项/设置数据库收缩为[自动收缩]
我是用这个方法进行数据库大容量日志收缩的,可以有效将十几个G的日志收缩的1MB,具体方法在我博客里,有需要的同行可以看看:sql数据库日志收缩https://blog.csdn.net/weixin_43558566/article/details/100578084
参考技术D我有个大的 SQL 文件要回放,需要马上做,但又怕压死业务,怎么办?
先来建一个测试库:
塞一些数据进去:
看看我们填充数据的成果:
使用 mysqldump 导出一份数据:
现在我们假设要把这个 dump 文件,回放到一个数据库中,并且现在数据库正在承担很重的业务,我们不希望业务受到太大影响。
先来看看如果直接回放 dump 文件,会发生什么?
我们看到 MySQL 的 cpu 会彪起来,
我们换一个方式来回放 dump:
看看 CPU 压力:
可以看到 CPU 已经非常冷静,并且缓慢的处理数据。
💡小贴士:pv 工具既可以用于显示文件流的进度,也可以用于文件流的限速。在本实验中,我们用 PV 来限制 SQL 文件发到 MySQL client 的速度,从而限制 SQL 的回放速度,达到不影响其他业务的效果。
以上是关于sql数据库日志文件过大怎么办的主要内容,如果未能解决你的问题,请参考以下文章