我正在开发一个应该部署到客户的内部部署SQL Server上的系统。然后,系统应该无人值守地运行多年,并且具有高数据库吞吐量(许多插入/删除),这将传达给客户。有些人似乎使用常规备份或日志截断“正确”配置了数据库,其他人只是让事务日志增长直到磁盘已满。
当磁盘已满时,显然不仅我的应用程序,而且在同一磁盘上使用DB的其他不相关系统也停止工作。
现在,有人可能会说这是客户的错,但如果您希望他们使用您的系统,您无法告诉他们。
那么,作为开发人员,我可以做些什么来解决这个问题呢?系统是否应监控日志增长,并在日志失控时发送电子邮件?我应该/可以监控SQL服务器磁盘空间吗?
当然,在有关日志文件增长的12页设置文档中,我有一个粗略的注意段落,但这些天似乎没有人完全阅读它们。
答案 0 :(得分:1)
系统应该无人值守地运行多年,并具有较高的数据库吞吐量(许多插入/删除),并传达给客户。
您的数据库需要维护,至少应检查磁盘空间,如果您无法承担任何维护,那么SQLAZURE可能是您的最佳选择,但这仍然需要DBA
那么,作为开发人员,我可以做些什么来解决这个问题呢?
你应该把它们弄清楚,不是你支持的,这必须由他们处理并要求他们雇用DBA
日志增长,对于OLTP系统来说是不可避免的。如果您正在寻找最佳实践,那么很少
1.日志文件应放在单独的驱动器中 2.设置MB中的自动增长不是百分比
并查看此链接以获取有关这种情况发生原因的更多信息:How best to maintain SQL log file sizes
系统是否应监控日志增长,并在日志失控时发送电子邮件?我应该/可以监控SQL服务器磁盘空间吗?
您应该监控日志增长。当可用空间百分比小于10时,您可以使用以下内容监控并发送电子邮件以发出警报
create table #t
(
dbname sysname,
logsize float,
logspaceused float,
status bit
)
insert into #t
exec ('
dbcc sqlperf(''logspace'')')
您还可以查看mssql提示以获取高级监控信息: Monitor SQL Server Transaction Log File Free Space