我安装了 SQL 2005 并且我的 templog.ldf 文件不断增长以消耗它所在驱动器上的所有可用空间。有时它会在有几 mb 免费时停止,但有时它会更进一步,这是 c 驱动器,我认为这种行为可能与我看到的其他一些问题有关。
我的问题是,我应该怎么做,我可以将日志移动到另一个驱动器,但我有理由假设它不会在那里做同样的事情。我假设这种行为很可能是我可以更改的结果,并且对于 tempdb 日志来说,45gb 是一个不寻常的大小。我们在代码中确实使用了很多临时表和表值函数,因此有足够的空间使用 tempdb,我可以理解 tempdb 数据库的增长,但不了解 templog 增长的原因。
到目前为止,我已经运行 DBCC OPENTRAN('tempdb') 来查看是否有任何旧事务存在,它们没有。我已经阅读了有关如何缩小 tempdb 的内容,并且已经这样做了几次,但我真的很想知道我能做些什么来首先阻止这种情况的发生,或者更多关于为什么它可能会增长如此之多的详细信息第一名。
==编辑==
1) tempdb 使用简单恢复模式
2)临时日志的增长发生在早上几个小时,当时我们有一些预定的查询正在运行,基本上是大量报告,这些报告在前一天的办公时间用完。文件的大小在这段时间内稳步增长。我们控制同时运行的并发报告数量,增加并发报告的数量会增加日志增长的速度。
每晚备份 SQL Server 2005 数据库的最佳方法是什么?
我正在寻找一种解决方案/策略,可以制作数据库备份文件,并将其放在“传出”目录中。我们希望我们的 FTP 软件将其移出到异地服务器。
关于如何根据需要进行这项工作的任何建议?
大家有没有遇到过以下情况,有没有找到解决办法:
我们网站后端的很大一部分是 MS SQL Server 2005。每隔一周或两周,该网站的运行速度就会变慢 - 我看到在 SQL 中完成查询所需的时间越来越长。我有一个我喜欢使用的查询:
USE master
select text,wait_time,blocking_session_id AS "Block",
percent_complete, * from sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 order by start_time asc
Run Code Online (Sandbox Code Playgroud)
这是相当有用的......它提供了当时针对您的 SQL 服务器运行的所有内容的快照。好消息是,即使您的 CPU 由于某种原因被锁定在 100% 并且活动监视器拒绝加载(我相信你们中的一些人已经在那里)这个查询仍然返回,您可以看到什么查询正在杀死您的数据库。
当我在 SQL 开始变慢的时候运行它或活动监视器时,我没有看到任何导致问题的特定查询 - 它们的运行速度都变慢了。如果我重新启动 MS SQL 服务,那么一切都很好,它会加快速度 - 一两个星期,直到它再次发生。
我能想到的一切都没有改变,但这只是几个月前开始的......想法?
- 添加
请注意,当发生这种数据库速度下降时,无论我们是每小时获得 100K 页面浏览量(一天中的繁忙时间)还是每小时 10K 页面浏览量(缓慢时间),查询都需要比正常情况更长的时间来完成。服务器并没有真正承受压力 - CPU 不高,磁盘使用率似乎没有失控......感觉像是索引碎片或类似的东西,但这似乎不是案件。
至于粘贴我上面粘贴的查询的结果,我真的做不到。上面的查询列出了执行任务的用户的登录名、整个查询等。我真的不想在线分发我的数据库、表、列和登录名的名称:)...我可以告诉您当时运行的查询是正常的,我们网站一直运行的标准查询,没有任何异常。
——3月24日
距离上次重启已经过去了大约两周。我做了几处更改:我发现了一些查询,其中我们大量使用了完全不必要的临时表,并且让我们的开发人员改变了他们的工作方式。我将一些不断(缓慢但肯定)增长的数据库的大小调整为适合其增长的智能大小。我调整了所有内容的自动增长设置,使其更加智能(它们都设置为 1MB 增长)。最后我稍微清理了 MSDB。我们进行日志传送,并且真的不需要保留数年和数年的备份点,我已经编写了一些脚本,将其保留到只有几个月的时间。我会继续更新这个帖子,因为现在判断问题是否已经解决还为时过早。
我使用 MySQL 已经很长时间了,发现一般查询日志和慢速查询日志对于找出服务器上发生的事情和识别瓶颈非常有用。
现在我需要使用 SQL Server。SQL Server 是否有类似的日志设施?如果有,他们叫什么?
log-files logging sql-server sql-server-2005 sql-server-2008
嗨,我有来自我现在无法访问的机器的不同 SQL Server 安装的 mdf 和 ldf 文件,并希望将它们附加到我当前的安装中以获取数据。当我尝试这个时,我收到一个错误:
Cannot attach a database with the same name as an existing database. (Microsoft.SqlServer.Smo)
Run Code Online (Sandbox Code Playgroud)
这是因为 mdf 被命名为 msdbdata,就像我当前的安装一样。我不知道现在是否有办法重命名这个数据库或者我能做什么。任何帮助,将不胜感激。谢谢!
我们为房地产公司设计网站。网站仅用于显示信息,所有网站共享一个通用模板。我们有大约 150 个网站供不同的客户使用。一些第三方数据提供商每小时向我们提供有关网站上每个列表的所有更新。每个客户的更新发生在不同的时间。平均而言,我们每个网站有 1000 个列表。并且每小时更新 80% 的数据都会发生变化或更新。
现在我们在 Sql server 2008 中有一个数据库,适用于所有客户(最初设计用于满足 10-20 个网站)。数据库中的表是所有人共享的。问题是每当更新发生时,它也会减慢其他与更新完全无关的客户网站。同时删除客户数据,减慢所有站点。
我计划通过为每个客户创建一个单独的模式来改造数据库,但我不确定这是否是处理我们问题的最佳方式。拥有一个单独的数据库会产生许多维护问题(备份、镜像等)。谁能建议我更好的方法来处理这个问题。如果我为每个客户创建单独的架构并将他们的表与其他表隔离,我不确定它如何影响性能。或者有什么更好的解决办法?
你们有执行 SQL Server 2005 性能审计的任何好的分步类型链接吗?
像这个链接这样的东西会很棒,但对于 SQL Server 2005。
我有一个表,它使用和标识种子作为其唯一标识列。我们注意到身份值出现了一些我们无法解释的巨大跳跃。该表有 20,000 个奇数行,最大标识值超过 560,000,000,标识增量为 1!
我想使用 SQL Server 探查器来监视该表上的活动,以便我可以看到是什么导致身份大幅增加,但是当我查看监视器时,我立即感到困惑。我承认我很匆忙,没有时间真正了解它是如何工作的(尽我所能),因此可以使用粗略的指南来了解您应该采取哪些步骤来监视桌子上的活动。
任何帮助将不胜感激。
我正在尝试为 SQL Server 2005 制定一个备份策略。我正在考虑每周进行一次完整备份,每天进行一次差异备份,每 15 分钟进行一次事务日志备份。数据库大小约为 50GB。问题是数据库每天都在运行。完整备份会干扰任何操作吗?我是否需要特别做任何事情才能使备份顺利进行而不暂停任何数据库操作?
我正在将用户分配给新数据库。与作为 db_owner 角色成员分配登录相比,作为默认 dbo 用户的用户有什么区别?
sql-server-2005 ×10
sql-server ×6
backup ×2
sql ×2
database ×1
log-files ×1
logging ×1
performance ×1
tempdb ×1