《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.2 列出SQL Server实例
本节书摘来自异步社区出版社《PowerShell V3—SQL Server 2012数据库自动化运维权威指南》一书中的第2章,第2.2节,作者:【加拿大】Donabel Santos,更多章节内容可以访问云栖社区“异步社区”公众号查看。
在这个方案中,我们将会列出本地网络中的所有SQL Server实例。
2.2.1 准备以管理员帐号登录有SQL Server开发实例的服务器。
2.2.2 如何做…1.通过“Start | Accessories | Windows PowerShell | Windows PowerShell ISE”打开PowerShell控制台。
2.让我们使用Start-Service cmdlet来启动SQLBrowser服务。
Import-Module SQLPS -DisableNameChecking #sql browser must be installed and running Start-Service "SQLBrowser"
(译者注:若SQLBrower的Start Mode为Disabled,则会失败)
3.接下来,你需要创建ManagedComputer对象来访问实例。输入如下脚本并运行。
$instanceName = "KERRIGAN" $managedComputer = New-Object Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer $instanceName #list server instances $managedComputer.ServerInstances
你的结果类似于下面的截屏。
注意,$managedComputer.ServerInstances不仅提供了实例名,而且包含额外的属性,例如ServerProtocols、Urn、State等。
4.确保在SSMS中有相同的实例。打开SSMS。
5.打开“Connect | Database Engine”。
6.在“Server Name”下拉列表,单击“Browse for More”。
7.选择“Network Servers”窗口,查看列出的实例。你的屏幕可能看起来类似于。
Windows操作系统中的所有服务都可以通过Windows管理规范(Windows Management Instrumentation,WMI)来访问。WMI是微软的框架,用于列出、设置和配置微软相关的资源。这个框架遵循基于Web的企业管理(Web-based Enterprise Management,WBEM)。分布式管理任务组定义WBEM为(http://www.dmtf.org/standards/wbem):
一个管理和网络标准计数集合开发用于同一分布式计算环境的管理。WBEM为行业提供了标准管理工具的很好集成的集合,促进了完全不同的技术和平台的数据交换。
为了访问SQL Server WMI相关的对象,你可以创建一个WMI ManagedComputer实例。
$managedComputer = New-Object Microsoft.SqlServer.Management.Smo.Wmi. ManagedComputer $instanceName
ManagedComputer对象访问ServerInstance属性,循环列出本地网络中所有可用的实例。只有在SQL Server Browser服务运行的情况下才能识别这些实例。
SQL Server Browser是一个Windows服务,提供了关于已安装的实例的信息。如果你想列出SQL Server相关的服务,需要启动该服务。
2.2.4 更多…另一个使用ManagedComputer的备选方案是使用System.Data.Sql.SqlDataSource Enumerator类列出本地网络中的所有SQL Server实例。
[System.Data.Sql.SqlDataSourceEnumerator]::Instance.GetDataSources() | Select ServerName, InstanceName, Version | Format-Table –AutoSize
执行后,你的结果类似于下面的截屏。
另一个得到SQL Server WMI对象的句柄的方法是使用Get-WmiObject cmdlet。然后,这将不会通过Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer对象展示相同的属性。
为了做到这点,你需要首先发现在你的环境中哪些命名空间是可用的。
$hostname = "KERRIGAN" $namespace = Get-WMIObject -ComputerName $hostName -NameSpace root\ Microsoft\SQLServer -Class "__NAMESPACE" | Where Name -Like "ComputerManagement*"
对于SQL Server 2012,值为:
ROOT\Microsoft\SQLServer\ComputerManagement11
一旦你有这个命名空间,你可以通过Get-WmiObject使用这个值去获取实例。可以用于过滤的属性为SqlServiceType。
根据MSDN(http://msdn.microsoft.com/en-us/library/ms179591.aspx),下面是SqlServiceType的值。
因此,为了获得SQL Server实例,你需要过滤SQL Server服务,或者SQLServiceType=1。
Get-WmiObject -ComputerName $hostname ` -Namespace "$($namespace.__NAMESPACE)\$($namespace.Name)" ` -Class SqlService | Where SQLServiceType -eq 1 | Select ServiceName, DisplayName, SQLServiceType | Format-Table –AutoSize
你的结果可能类似于如下截屏。
以小博大外小内大,Db数据库SQL优化之小数据驱动大数据 SQL优化中,有一条放之四海而皆准的既定方针,那就是:永远以小数据驱动大数据。其本质其实就是以小的数据样本作为驱动查询能够优化查询效率,在SQL中,涉及到不同表数据的连接、转移、或者合并,这些操作必须得有个数据集作为“带头”大哥,即驱动数据,而这个驱动数据最好是数据量最小的那一个。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
第十二届 BigData NoSQL Meetup — 基于hbase的New sql落地实践 立即下载
相关文章
- SQL Server 复制需要有实际的服务器名称才能连接到服务器
- 【转载】SAP_ECC6.0_EHP4或SAP_ECC6.0_EHP5_基于Windows_Server_2008R2_和SQL_server_2008下的安装
- SQL SERVER全面优化-------Expert for SQL Server 诊断系列
- sql server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件
- Sql Server强制清空所有数据表中的记录
- SQL SERVER服务器链接连接(即sql server的跨库连接)
- sql server 2012序列号
- SQL SERVER服务器链接连接(即sql server的跨库连接)
- SQL SERVER中Case的使用方法
- Java socket server接收并返回数据(多线程socket)
- SQL Server 2012内部原理及故障排除(专栏)
- sql server 锁(lock)的基础及应用
- Server 2003 操作系统位数
- Could not load the Tomcat server configuration at /Servers/Tomcat v7.0 Server at localhost-config.
- MySQL----JDBC无法连接数据库,报The driver has not received any packets from the server的解决办法
- 安装CDH6.3版本的时候遇到 ‘ERROR main:com.cloudera.server.cmf.Main: Server failed’的解决方案