2017-08-17 46 views
1

做法我开发应该部署到客户的内部部署SQL服务器的系统。然后,系统应该无人值守地运行数年,并且具有高数据库吞吐量(许多插入/删除),并将其传达给客户。有些似乎通过常规备份或日志截断“正确地”配置了其数据库,有些则让事务日志增长直到磁盘已满。SQL事务日志最好从开发人员的角度来看

当磁盘已满,显然不仅是我的应用程序,同时也对同一个磁盘停止工作使用DB的其他不相关的系统。现在

,可以说这是顾客的错,但你不能告诉他们,如果你希望他们使用你的系统。

所以,我能,作为开发商,做解决这个问题?系统应该监控日志增长,并在日志失控时发送电子邮件?我应该/可以监视SQL服务器磁盘空间吗?

当然,我在12页安装文档中关于日志文件增长的内容中强调了注意事项段落,但似乎没有人现在完全阅读它们。

+0

我相信切换到简单恢复模式是不是一种选择? –

+0

@RogerWolf不自动没有用户通知,因为DBA可能由于某种原因选择了恢复模式。 – Alexander

+1

如果他们有DBA,那绝对不是你的问题。但是,提供一些UI以允许用户选择“最小占用空间”模式(短数据保留+简单恢复)可能是有意义的。 –

回答

1

然后,系统应该一次运行多年,并具有高数据库吞吐量(许多插入/删除),并将这些数据吞吐量传达给客户。

你的数据库需要维护,你至少应该检查磁盘空间,如果你不能承受任何的维护,那么SQLAZURE可能是最好的选择你,但这也仍然需要DBA

那么,作为开发人员,我能做些什么来解决这个问题呢?

你应该让他们清楚,它不是你所支持,这必须由他们进行处理,并要求他们雇用一个DBA

日志增长,这是不可避免的一个OLTP System.if你寻找最佳practices..below的几个

1.登录文件应放置在单独的驱动器
2.设置自动增长的MB不是以百分比

,并检查此链接的,为什么出现这种情况的详细信息: How best to maintain SQL log file sizes

系统应该监视日志增长,并在日志失控时发送电子邮件?我应该/可以监视SQL服务器磁盘空间吗?

你应该监视日志growth.you可以使用下面来监控和发送电子邮件,提醒时,可用空间百分比小于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

+0

我可以告诉他们聘请DBA,但即使他们不听,他们仍然认为这是他们的SQL服务器崩溃的问题。所以我猜想当我的应用程序失败时,应该包含后果,它不会将整个SQL服务器与它一起使用。 – Alexander

+0

如果没有空间用于特定数据库的tlog,只有它不可用,但由于它放置在与其他磁盘相同的磁盘上(我假设),所有这些都会关闭@Alexander – TheGameiswar