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'

    数据库属性/文件/限制文件增长

    数据库属性/选项/设置数据库收缩为[自动收缩]

参考技术C

我是用这个方法进行数据库大容量日志收缩的,可以有效将十几个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数据库日志文件过大怎么办的主要内容,如果未能解决你的问题,请参考以下文章

sql server 2012 数据库日志文件过大,怎么缩小?

SQL SERVER 2000数据库日志文件过大如何解决

Log日志文件过大怎么办

SQL SERVER 2000数据库日志文件过大如何解决

sql2008无日志文件附加数据库失败,怎么办

squid日志文件太大,怎样处理