如何获取Powershell以读取SQL Server错误日志

我今天需要PowerShell的帮助。我有一个VMDEV-APP11配置为中央管理服务器(CMS)的SQL Server实例(在名为的服务器上),我已经在其中注册了所有开发/测试/生产SQL实例,并且我想使用PowerShell从所有实例中读取SQL Server错误日志我的服务器。我有一个查询,它检索我的所有SQL Server实例,但是当我将其输出通过管道传递到的调用时ReadErrorLog,出现错误。

这是用于检索我在CMS上注册的SQL Server实例列表的代码(请注意,我排除了SQL Server 2000实例):

Set-Location D:\MSSQL11.MSSQLSERVER\CMS
# Define functions to query SQL Server and write data to a SQL table
. ./invoke-sqlcmd2.ps1
. ./write-datatable.ps1

Invoke-sqlcmd2 -ServerInstance "VMDEV-APP11" -Database dba -Query "select s.server_name from msdb.dbo.sysmanagement_shared_registered_servers s, msdb.dbo.sysmanagement_shared_server_groups g where s.server_group_id = g.server_group_id and g.name not like '2000%'" 

server_name
-----------
INF-SRV14
VMDEV-APP15
NEX-SRV48
...

这就是我认为可以解决的问题,以及我实际上得到的错误:

Invoke-sqlcmd2 -ServerInstance "VMDEV-APP11" -Database dba -Query "select s.server_name from msdb.dbo.sysmanagement_shared_registered_servers s, msdb.dbo.sysmanagement_shared_server_groups g where s.server_group_id = g.server_group_id and g.name not like '2000%'" | foreach-object { $_.server_name.ReadErrorLog() } 

错误:

方法调用失败,因为[System.String]不包含名为“ ReadErrorLog”的方法。
在D:\ MSSQL11.MSSQLSERVER \ CMS \ db_errorlog.ps1:38 char:284
+ ...到达对象{$ _。server_name.ReadErrorLog ()}
+ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
+ + CategoryInfo:InvalidOperation:(:) [],RuntimeException
+ FullyQualifiedErrorId:MethodNotFound

我怀疑我需要将查询返回的字符串转换为另一种类型的对象(也许是服务器名称?)才能ReadErrorLog()开始工作,但是我不知道该怎么做。

有什么建议?

任何帮助将不胜感激。

凯夫

您试图ReadErrorLog()DataRow列值(字符串)调用该方法

您需要做的是这样的:

Import-Module sqlps -DisableNameChecking

Invoke-sqlcmd2 -ServerInstance "VMDEV-APP11" -Database dba -Query "select s.server_name from msdb.dbo.sysmanagement_shared_registered_servers s, msdb.dbo.sysmanagement_shared_server_groups g where s.server_group_id = g.server_group_id and g.name not like '2000%'" | `
foreach-object { 
    $server = $_.server_name 
    $logs = (get-item SQLSERVER:\sql\$server\default).ReadErrorLog()
    # $logs is a DataTable so you can iterate the rows however you wish
}

这假设您的所有服务器都是默认实例,否则您可能需要花更多精力来针对特定实例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server为某些错误代码启用日志记录

来自分类Dev

读取SQL SERVER日志文件

来自分类Dev

如何读取tomcat错误日志

来自分类Dev

从Powershell生成错误日志

来自分类Dev

SQL Server 2012读取事务日志

来自分类Dev

如何查看mysql错误日志?

来自分类Dev

如何减少SQL Server事务日志的使用

来自分类Dev

如何获取错误日期/时间到HHVM错误日志中

来自分类Dev

无法获取PHP错误以转到日志文件(Apache日志除外)

来自分类Dev

从SQL Server获取错误的日期

来自分类Dev

Java SQL Server获取错误

来自分类Dev

从SQL Server获取错误的日期

来自分类Dev

如何在系统日志中禁用Logstash错误日志记录

来自分类Dev

Splunk:匹配错误日志并获取其计数

来自分类Dev

获取Logstash日志解析错误:grokparsefailure

来自分类Dev

停止SQL Server作业添加事件日志以获取成功

来自分类Dev

SQL Server 2008 R2:大约15,000万个事件日志行(如何查询所有不同错误的列表?)

来自分类Dev

Powershell远程查询Server 2003的事件日志

来自分类Dev

如何从最近x小时的日志中获取错误计数

来自分类Dev

如何获取错误和异常,并将其写入日志文件?

来自分类Dev

如何获取PHP中的SQL Server触发器错误?

来自分类Dev

在ELMAH SQL日志记录中捕获错误

来自分类Dev

如何在 Ubuntu Server 上获取特定用户的命令日志?

来自分类Dev

如何解析PHP错误日志?

来自分类Dev

如何更改MySQL错误日志文件的时区?

来自分类Dev

Heroku:如何检查Heroku错误日志?

来自分类Dev

如何确定哪个日志被错误地轮换?

来自分类Dev

PowerShell从Jobs获取日志

来自分类Dev

sql server日志消息关于登录

Related 相关文章

热门标签

归档