技术开发 频道

微软新一代数据库新增PowerShell支持

  SQL Server PowerShell管理示例

  在前面的内容中我们了解到SQL Server的扩展插件添加到PowerShell后,SQL Server PowerShell的许多功能以驱动器的形式出现。SQL Server PowerShell provider使得SQL Server看起来更像是一个大磁盘驱动器,像分析服务和数据库引起这些各种组件都像“文件夹”一样。配置设定以“文件”形式展现,用户使用专门的PowerShell命令集如Set-ItemProperty和Get-ItemProperty来操纵这些设定。此外还提供了“动词-名词”形式的Windows PowerShell cmdlet单函数命令来执行相应的Transact-SQL 脚本。下面我们就来看3个小示例:

  示例1:显示当前SQL Server的服务器名以及SQL Server的版本号。使用的cmdlet是Invoke-sqlcmd -Query "select @@version,@@servername;"在此,我把结果暂存于变量a中,如下图所示:

SQL Server PowerShell管理示例

  一般情况下,输出结果立即被使用,但有时候,用户可能需要将输入结果进行保存下来,以便后期可以再次使用。

  示例2:列出SQLSERVER: 路径中的 Databases 节点下的集合子项。Databases节点下存放的是用户数据库的信息,我们前面通过cd、dir命令简单进行了查看,下面我们换一种方式。先使用Set-Location SQLSERVER:\SQL\localhost\DEFAUlt\Databases切换到目标路径下,再通过Get-ChildItem列出其中的内容。如下图所示:

SQL Server PowerShell管理示例

  在此界面中可以看到,列出的数据库信息包括了数据库的名称、状态、恢复模式以及排序字符等。

  示例3:显示指定数据库中的表的信息。在此我使用的数据库是dufei,在此数据库中有一个四个表。如下图所示,首先还是使用:

  Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\dufei\Tables切换到目标节点下,然后使用Get-ChildItem列出相应的表信息。如下图所示:

SQL Server PowerShell管理示例

  在此可以看出四张表,三张属于DBO架构,一张属于UEC架构,如果在此只希望列出dbo架构的表怎么办?命令改为:Get-ChildItem | where {$_.Schema -eq "dbo"} 即可,如下图所示:

SQL Server PowerShell管理示例

  示例4:使用cmdlet对当前实例中的dufei数据库进行完全备份,并将备份文件存放到网络路径\\192.168.3.3\sqlbak下,文件名为dufei.bak。

  首先,我们需要打开“对象资源管理器”。切换要进行处理的对象的节点,在此切换到“数据库”节点即可。右键单击该对象,然后选择“启动 PowerShell”。如下图所示:

SQL Server PowerShell管理示例

  接着,我们就可以使用backup-sqldatabase命令对数据库进行备份,此命令功能较强,在此只演示如何进行完全备份。如下图所示:

SQL Server PowerShell管理示例

  看到如上所示的结果,就说明操作成功了,当然用户也可以到目标路径中查看文件是否存在,整个命令还是相当简洁明了的。好了,我们的演示就到此结束。

  SQL Server开发团队已经把PowerShell广泛地集成到该产品中。管理员需要认真学习PowerShell,这对未来的发展是有益的。亲爱的朋友,千万不要轻视PowerShell,不仅仅是在SQL Server 2012产品中,其他微软服务器也是如此,因为PowerShell是微软服务器管理方式的发展方向,一起努力吧!

  更多精彩尽在2013年4月18~4月20日第四届中国数据库技术大会,北京永泰福朋喜来登酒店。

  3月31日之前购票享8折优惠。


▲大会官网报名地址

0
相关文章