SQL Server 自动化运维工具 dbatools 简介
Tags: dbatoolsMSSQLSQL Server
什么是 dbatools?
Dbatools 是 PowerShell 的开源模块,由 SQL Server 社区的知名人士、MVP 以及其他 SQL Server 和 PowerShell 专业人士开发。dbatools 使用了 .Net framework 中的 SMO (Server Management Objects),与使用SSMS (SQL Server management studio) 相同。
通过 SMO 对象,我们可以使用 C# 程序语言操作任何 SQL Server 对象。除了广泛使用 SMO 之外,dbatool还使用WMI/CIM (Windows Management Instrumentation/Common Information Model)来操作Windows 服务器对象。
如此强大的工具,它主要专注 SQL Server 环境的运维,如最佳实践、迁移、日常工作等。Dbatools.io 目前有 500 多个命令可以帮助你进行日常事务。
github:https://github.com/dataplat/dbatools
dbatools 更多的命令文档,可参考 https://dbatools.io/commands/
如何安装 dbatools?
只需一个要求:PowerShell v3+,满足这个要求后,安装很简单:
- 以管理员身份打开PowerShell命令窗口
- 运行以下命令:Install-Module dbatools
- 按提示确认键入 Y(是),完成!
如果你没有互联网访问权限,你也可以使用离线方法安装,安装也很简单:
- 下载软件包 https://dbatools.io/zip
- 将 zip 解压后重命名为 dbatools
- 查看环境变量
1 | $env:PSModulePath -split ";" |
- 将 dbatools 拷贝到以上目录中
- 设置不阻止文件执行
1 | Set-ExecutionPolicy Bypass |
- 安装模块
1 | Import-Module -Name dbatools |
如何检查 dbatools 是否正确安装?
1 | Get-Module dbatools -ListAvailable |
示例:
1 2 3 4 5 6 7 8 9 10 | PS C:\Users\lhr> Get-Module dbatools -ListAvailable PS C:\Users\lhr> Get-Module dbatools -ListAvailable 目录: C:\Program Files\WindowsPowerShell\Modules ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Script 1.1.145 dbatools {Select-DbaObject, Set-DbatoolsConfig, Get-DbaDbServiceBrokerQueue, New-DbaLin... PS C:\Users\lhr> |
使用 dbatools
Get-Command –列出服务器中安装的所有包命令
Get-Help –获取命令详细信息。
Get-command -Module dbatools –列出来自 dbatools 模块的所有命令
Get-command Get-DbaAgent – 要过滤搜索,请将星号(*)通配符与 Name 参数一起使用
Get-Help Get-DbaSqlService -Examples –命令示例帮助文档
Get-Help Get-DbaSqlService -Detailed –命令详细帮助文档,包括参数说明和示例
示例,查看指定实例所有数据库:
1 | Get-DbaDatabase -SqlInstance "HZC\MSSQL2017" |
结论
PowerShell 无处不在。学习 PowerShell 可以让你为未来自动化做好准备。一旦你学会了如何使用 PowerShell 之类的自动化工具,你就可以轻松地对你的SQL Server 服务器进行更方便的运维。dbatools 是一款非常好用的开源工具,可以当做 SQL Server 服务器的必备软件。