标签: monitoring

我应该使用哪种 PowerShell 技术来与 SQL Server 通信?

我最终想使用 PowerShell 来替换我们用于 SQL 实例监视器的旧 KornShell 脚本。但是,我很难让我的大脑围绕 PowerShell 实际与 SQL Server 通信的所有不同方式。不确定这是否是全部,但我可以通过以下 5 种完全不同的方式查询 SQL 服务器的版本:

1. SQLConnection .NET 类

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=MyServer;Database=Master;Integrated Security=True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = "Select @@version as SQLServerVersion"
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$DataSet.Tables[0]
Run Code Online (Sandbox Code Playgroud)

2. WMI 提供程序

$sqlProperties = Get-WmiObject 
    -computerName "MyServer"
    -namespace root\Microsoft\SqlServer\ComputerManagement10
    -class SqlServiceAdvancedProperty
    -filter "ServiceName = 'MSSQLSERVER'"
$sqlProperties.VERSION
Run Code Online (Sandbox Code Playgroud)

3. SMO

[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | Out-Null
$smo-var = New-Object …
Run Code Online (Sandbox Code Playgroud)

monitoring sql-server powershell

30
推荐指数
1
解决办法
9331
查看次数

如何在数据库中查找最新的SQL语句?

我喜欢在我的数据库中获取最新执行的语句以及性能指标。

因此,我想知道哪些 SQL 语句最占用 CPU/磁盘。

oracle monitoring

26
推荐指数
2
解决办法
13万
查看次数

活动连接数和剩余连接数

我想获得有关一段时间内连接峰值数量的统计信息。

我知道这种pg_stat_activity观点,就像select count(*) from pg_stat_activity,但我认为这种方法不是很聪明。

是否有其他视图或表格可以提供我需要的信息?

postgresql monitoring

26
推荐指数
1
解决办法
5万
查看次数

postgresql 中获取和返回的元组之间的区别

我在试图找出数据库中的一些性能问题时遇到了困难。我正在使用大量在线资源来了解要监控的内容以及如何解释该信息。

从上面的,我无法找到的之间有什么区别一个明确的解释pg_stat_database.tup_returnedpg_stat_database.tup_fetched

在 pgAdmin4 中,有一个漂亮的图表叫做“Tuples out”,其中对比了这两个概念,但我不知道如何解释这些信息。在官方文档中只说:

  • tup_returned: 此数据库中查询返回的行数
  • tup_fetched: 此数据库中查询获取的行数

“获取”和“返回”究竟是什么意思?

我正在使用 postgresql 10。

postgresql performance monitoring

18
推荐指数
1
解决办法
7917
查看次数

当作业失败时,如何让 SQL Server 将错误详细信息通过电子邮件发送给我?

SQL Server 允许您将作业配置为在失败时发送电子邮件警报。这是监控您的工作的一种简单而有效的方法。但是,这些警报不包括任何细节——只是成功或失败的通知。

如果作业失败,典型的警报电子邮件将如下所示:

JOB RUN:        'DBA - Consistency Check Databases' was run on 8/14/2011 at 12:00:04 AM
DURATION:       0 hours, 0 minutes, 0 seconds
STATUS:         Failed
MESSAGES:       The job failed.  The Job was invoked by Schedule 2 (Nightly Before 
                Backup 12AM).  The last step to run was step 1 (Check Databases).
Run Code Online (Sandbox Code Playgroud)

要确定失败的原因,您必须导航到 SQL Server Management Studio 中的实例,找到作业并查看其执行历史记录。在大型环境中,必须不断地这样做可能会很痛苦。

理想的警报电子邮件应预先包含失败原因,并让您直接着手解决方案。

我熟悉这个问题的解决方案。有没有人有任何经验?它的缺点是:

  1. 你必须为每一份工作添加一个新步骤,并且
  2. 你必须祈祷没有人弄乱警报过程, spDBA_job_notification

有没有人想出更好的解决方案?

monitoring sql-server

15
推荐指数
1
解决办法
2万
查看次数

如何分析 SQL Azure?

我正在编写一个大量使用 SQL Azure 的网站。然而,它是痛苦的缓慢。

有没有一种简单的方法来分析实时 SQL Azure 实例?

monitoring profiler azure-sql-database

14
推荐指数
1
解决办法
8648
查看次数

突然 Mongodb 高连接/队列,db 停止响应

问题

我们的 mongodb 设置有一个奇怪的问题。有时我们会遇到高连接和高队列的峰值,如果我们让队列和连接增加,mongodb 进程就会停止响应。我们需要使用带有htop 的sigkill重新启动实例。

好像是系统限制/mongodb配置阻止mongodb运行,​​因为硬件资源没问题。此问题的版本发生在单机上,然后在生产服务器上设置副本。详情在前面。

关于软件环境

这是一个独立的 mongodb 实例(非分片或副本集),它在专用机器上运行,并由其他机器查询。我在 Debian 7.7 下使用 mongodb-linux-x86_64-2.6.12。

查询 mongo 的机器使用 Django==1.7.4、Mongoengine=0.10.1 和 pymongo==2.8、nginx 1.6.2 和 gunicorn 19.1.1。

在 Django settings.py 文件中,我使用以下几行连接到数据库:

from mongoengine import connect

connect(
    MONGO_DB,
    username = MONGO_USER,
    password = MONGO_PWD,
    host = MONGO_HOST,
    port = MONGO_PORT
)
Run Code Online (Sandbox Code Playgroud)

彩信统计

正如您在 MMS 服务的以下 img 中看到的,我们在连接和队列上有峰值:

毫米

发生这种情况时,我们的 mongodb 进程完全冻结。我们必须使用SIGKILL来重启mongodb,这真的很糟糕。

图中有 3 个冻结事件

队列

正如 img 所示,当这种情况发生时,我们在非映射虚拟内存上也有一个峰值。

虚拟内存

我们还发现 Btree 图表在第 2 次和第 3 次冻结前后有所增加。

树

我们检查了日志,但没有可疑的查询,而且 Opcounters 也没有暴涨,似乎没有比平时更多的查询。

这是同一错误的另一个屏幕截图,但在另一天/时间: 更多关于错误

在所有情况下,DB …

mongodb monitoring

13
推荐指数
1
解决办法
6889
查看次数

查看 Postgresql 内存使用情况

我在 Ubuntu 服务器上运行 Postgresql,需要能够监视其内存使用情况。目前,我有脚本在一分钟的 cron 作业中运行,用于监视/记录各种统计信息,并且还需要监视/记录 Postgresql 的当前内存使用情况。除了 Postgresql 很好地利用了共享内存,因此诸如“top”之类的程序给出的值不准确之外,我四处搜索并没有找到太多东西。

如何在任何给定时间监控 Postgresql 的总内存使用量?此数据稍后将用于创建用于分析的图表。

postgresql monitoring linux memory ubuntu

11
推荐指数
1
解决办法
1万
查看次数

当工作类别中的任何工作失败时发出警报

是否可以在 SQL Server 2008 中设置警报,以便在特定类别中的作业失败时发送电子邮件?

我想知道,因为我想在 SSRS 订阅失败时设置电子邮件 - 所有这些订阅都是Report Server类别中的作业。

编辑- 事实证明,当 SSRS 订阅失败时,作业本身不会失败,因此我的问题不适用于 SSRS 订阅监视使用。但是我仍然想知道我们在我们的环境中运行的其他作业

sql-server-2008 monitoring sql-server ssrs sql-server-agent

11
推荐指数
1
解决办法
1991
查看次数

如何正确监控PostgreSQL数据库连接数?

我尝试使用 Nagios 脚本来监视 Postgres 数据库上的数据库连接数,但我遇到了这个问题:这些连接数被视为当前打开的连接数,每 5 分钟测量一次。

SELECT sum(numbackends) FROM pg_stat_database;
Run Code Online (Sandbox Code Playgroud)

尽管如此,这似乎错过了大量的短期连接,因此统计数据与现实相去甚远。

我尝试手动运行脚本,我观察到即使在两个连接之间发生了很大的变化,彼此之间的距离也只有几秒钟。

我怎样才能以可靠的方式获得这些信息?像 max(connectios) 发生在一个时间间隔内。

postgresql performance monitoring

11
推荐指数
1
解决办法
1万
查看次数