问题
Start-Service
使用 PowerShell和Stop-Service
命令启动和停止 SQL 服务是否安全?- 如果没有,是否有推荐的方法来通过自动化启动和停止 SQL 的服务?
附加信息
我们正在创建脚本以在维护窗口之前彻底关闭我们的系统,然后在之后将它们恢复。我的意思是它停止应用程序的服务,然后停止数据库服务(即按依赖顺序),将所有设置为禁用,以便基础架构团队可以应用 Windows 更新/执行任何工作,根据需要安全地重新启动服务器,然后再运行以正确(依赖关系感知)顺序使系统备份的脚本。
我们的 DBA 提到停止服务的正确方法是通过 SQL 的配置管理器;暗示这与仅使用services.msc
(或用于自动化,powershell's stop-service
/ command line's sc \\someServer stop someService
.
- 本文顶部的注释暗示了类似的内容:https ://technet.microsoft.com/en-us/library/ms175516(v=sql.105).aspx
- 本文指出 SQL Server 配置管理器对于某些功能有一些优势:https ://msdn.microsoft.com/en-us/library/ms174212.aspx
但是,我无法找到任何明确说明通过常规方式启动/停止服务是不正确的,或者 SQL 配置管理器在简单启动和停止服务方面提供的额外保护/功能。
无论你走哪条路,你都是安全的。SERVICES.MSC 和 POWERSHELL 命令行是 MSSQL 配置管理器的 EQUAL 函数...
配置管理器也用于控制实例等,但无论您选择哪种方法,启动和停止服务的功能都是相同的。
有些人有自己的处理方式,例如退出应用程序,您可以执行文件 > 退出。或者你可以做ALT+F4,它们都是相同的功能......
请查看下面的此链接以获取更多信息和有用的详细信息。这涵盖了所有不同的方法(SQL 配置经理、SSMS、命令行等)
https://msdn.microsoft.com/en-us/library/hh403394.aspx
关于故障转移集群实例的更新...
如果实例是集群的,则上述任何建议的使用均不适用且不应使用。对于 FCI,您需要使用集群管理器或 FailoverClusters PowerShell 模块命令。
推荐的方法是始终使用配置管理器,原因有两个:
i) 如果要更改密码,使用配置管理器无需重新启动 sql 引擎或代理服务即可使新密码生效。更多细节可以在这里找到。
ii) 如果您正在管理一个 sql 集群并尝试通过 services.msc 修改密码,它将在 node1 重新启动期间故障转移到另一个节点,sql 配置管理器会避免这种情况。
话虽如此,我没有通过配置管理器完成所有任务的脚本,如果有人有这个脚本会很有趣:)。
从 Microsoft SQL server 配置工具中右键单击 sql server services 并停止。
或使用 Transact-SQL
关闭;
要立即停止数据库引擎,请执行以下语句。立即关机;
请参阅链接Start、Stop、Pause、Resume、Restart the Database Engine