技术开发 频道

全力出击:SQL Server SQLPS模块

        【IT168 技术】在SQL Server之前的版本中,微软提供了一个sqlps.exe的实用工具。在SQL Server 2012中,SQLPS以模块的形式存在。SQLPS.exe虽然继续存在于SQL Server 2012,但基本上需要以模块形式调用。本文介绍了如何使用SQLPS模块以及如何通过Windows PowerShell访问SQL组件和功能。

  注意:你可以从这个网站下载 http://www.microsoft.com/sqlserver.

  Pre-Requisite(先决条件)

  使用SQLPS的先决条件如下:

  A.PowerShell 2.0:它包含在Windo

ws 2008中,可以通过Windows服务功能开启。

  B.SQLPS module:它包含在SQL Server 2012中,如果安装成功,将会在PowerShell中看到。成功安装后,你所要做的就是导入SQLPS模块。

  C.Execution-Policy:PowerShell的执行策略不应设置为“Unrestricted”。

  第一步:

  从Windows开始菜单中以管理员身份启动PowerShell,如下图所示:

 全力出击:SQL Server SQLPS模块
▲使用管理员身份启动PowerShell

  这将打开一个新的PowerShell窗口,如下:

全力出击:SQL Server SQLPS模块
▲新的PowerShell窗口

  第二步:

  设置执行策略“Unrestricted”如下:

全力出击:SQL Server SQLPS模块
▲设置执行策略

  第三步:

  列出PowerShell环境中所有可用模块。

  在Windows PowerShell提示符下键入Get-Module –ListAvailable,得到如下结果:

全力出击:SQL Server SQLPS模块
▲Get-Module –ListAvailable

  如果你没有看到SQLPS模块列表,请在功能包里安装SQL Server 2012 PowerShell扩展。

  第四步:

  导入SQLPS模块,这将使得所有SQLPS的相关命令在当前PowerShell中可用,命令为:Import-Module SQLPS,结果如下:

全力出击:SQL Server SQLPS模块
▲导入SQLPS模块

  可用通过指定“DisableNameChecking”参数来隐藏警告信息。

  例如:Import-Module sqlps –DisableNameChecking

  第五步:

  可使用如下命令列出在SQLPS模块中可用的命令

  Get-Command -CommandType cmdlet -Module sqlps | group-object -Property verb,结果如下:

全力出击:SQL Server SQLPS模块

${PageNumber}

  第六步:

  列出所有在SQLPS模块中可用的命令和功能。

  命令为:Get-command –module SQLPS。

  你可以看到所列出的命令行:

  Add-SqlAvailabilityDatabase

  Add-SqlAvailabilityGroupListenerStaticIp

  Backup-SqlDatabase

  Convert-UrnToPath

  Decode-SqlName

  Disable-SqlAlwaysOn

  Enable-SqlAlwaysOn

  Encode-SqlName

  Invoke-PolicyEvaluation

  Invoke-Sqlcmd

  Join-SqlAvailabilityGroup

  New-SqlAvailabilityGroup

  New-SqlAvailabilityGroupListener

  New-SqlAvailabilityReplica

  New-SqlHADREndpoint

  Remove-SqlAvailabilityDatabase

  Remove-SqlAvailabilityGroup

  Remove-SqlAvailabilityReplica

  Restore-SqlDatabase

  Resume-SqlAvailabilityDatabase

  Set-SqlAvailabilityGroup

  Set-SqlAvailabilityGroupListener

  Set-SqlAvailabilityReplica

  Set-SqlHADREndpoint

  SQLSERVER:

  Suspend-SqlAvailabilityDatabase

  Switch-SqlAvailabilityGroup

  Test-SqlAvailabilityGroup

  Test-SqlAvailabilityReplica

  Test-SqlDatabaseReplicaState

  当导入SQLPS模块后,SQL Server将会像文件系统一样可进行浏览。我们可以通过CD(Set-Location)命令和DIR(Get-ChildItem)命令浏览SQL Server。

  例如,键入DIR,得到如下结果:

全力出击:SQL Server SQLPS模块
▲使用CD和DIR命令浏览SQL

  注意:上面所示USTESTSQL01是主机名,SQLENG是实例名。

  我们可以使用DIR命令列出实例中所有可用的文件夹。

  例如,键入DIR,得到如下结果:

全力出击:SQL Server SQLPS模块
▲使用DIR命令列出所有可用的文件夹

  如果想列出所有服务器级角色,请使用如下命令:

  CD ROLES

  DIR

  结果如下所示:

全力出击:SQL Server SQLPS模块
▲服务器级角色

  如果你想看到所有从NT开始的用户名,只需一步,只需在Logins文件夹中使用例如Get-Childitem的命令与通配符连用即可,如下所示:

  CD..

  CD Logins

  DIR NT*

全力出击:SQL Server SQLPS模块
▲查询所有从NT开始的登录

  如果你想执行一些TSQL,可以使用Invoke-SQLCMD命令,命令为:

  Invoke-SQLCMD "select @@version;select db_name()"

  结果如下:

全力出击:SQL Server SQLPS模块

  你也可以使用备份SQLDatabase的命令备份数据库,例如:

  Invoke-SQLCMD "backup database master to disk ='c:\bak\master.bak'",结果如下:

全力出击:SQL Server SQLPS模块

  命令为:Backup-SqlDatabase -ServerInstance USTESTSQL01\SQLENG -Database Master

  如果你想对cmdlets有更多的了解,请使用如下所示的Get-Help命令:

  Get-Help invoke-sqlcmd –full

  Get-Help Backup-SqlDatabase –full

  结果如下所示:

全力出击:SQL Server SQLPS模块

  结论

  如开篇所述,本文说明了如何利用SQLPS模块以及如何通过Windows PowerShell访问SQL组件和功能。

0
相关文章