关于 SQL Server PowerShell

PowerShell 是一个跨平台的任务自动化解决方案,由命令行 shell、脚本语言和配置管理框架组成。 谈到 SQL Server PowerShell,有两个模块:

  • SqlServer 模块 :它是当前要使用的 PowerShell 模块。 它包含SQLPS 中 cmdlet 的更新版本   ,并包含支持最新 SQL 功能的新 cmdlet。
  • SQLPS 模块 :它包含在 SQL Server 安装中(为了向后兼容)但不再更新。

SqlServer 提供了多种 cmdlet 来帮助完成 SQL Server 中的不同任务。 要备份 SQL Server 数据库对象,您可以使用 Backup-SqlDatabase (*详细了解 备份-SqlDatabase ). 以下是一些常用的参数:

  • - BackupAction :指定要执行的备份操作的类型。 有效值为:“数据库”、“文件”和“日志”。
  • - BackupFile :指定备份的位置和文件名。 这是一个可选参数,不能与 BackupDevice 或 BackupContainer 参数一起使用。
  • - ServerInstance :指定 SQL Server 实例的名称。 此服务器实例成为备份操作的目标。
  • - 数据库 :指定要备份的数据库的名称。 此参数不能与 DatabaseObject 参数一起使用。

使用这些 cmdlet,您还可以使用 PowerShell 脚本来备份多个 sql 数据库。

创建 PowerShell 脚本来备份多个 SQL 数据库

请注意,以前版本的  SqlServer  模块包含在 SQL Server Management Studio (SSMS) 中,但仅包含在 SSMS 的 16.x 版本中。 要将 PowerShell 与 SSMS 17.0 及更高版本 一起使用。

安装 SqlServer  模块后,您可以按照以下步骤编写 PowerShell 脚本来备份 SQL Server 数据库:

1. 单击  “开始” 菜单,选择  “Windows PowerShell” ,然后单击  “Windows PowerShell ISE” 。

注意: Windows PowerShell 集成脚本环境 (ISE) 使您能够在基于 Windows 的单个图形用户界面中运行命令以及编写、测试和调试脚本。

2. 在 Windows PowerShell ISE 中,单击工具栏上的 新建脚本 并键入以下 cmdlet 以根据需要备份多个 SQL 数据库。 就我而言,我将备份数据库“TestDB”和“DemoDB”。

  • Backup-SqlDatabase -ServerInstance“DESKTOP-J6AHKLA”-Database“TestDB”-Initialize
  • Backup-SqlDatabase -ServerInstance“DESKTOP-J6AHKLA”-Database“DemoDB”-Initialize

备份多个 SQL 数据库

✍ 小贴士:
① 上面使用的cmdlets会为数据库“TestDB”和“DemoDB”创建一个完整的数据库备份,备份文件会保存到服务器“DESKTOP-J6AHKLA”的默认备份位置。 我的备份位置是:
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup
② 我这里只指定了服务器名,意思是使用服务器上的默认实例。 您可以使用 -ServerInstance "Computer\Instance" 指定不同的实例。
③ “ -Initialize ”表示 覆盖媒体上任何现有的备份集,并使该备份成为媒体上的第一个备份集。 如果省略该参数,多次运行PowerShell脚本后备份文件将包含数据库的多个副本,因此“.bak”文件会变得非常大。

3. 单击工具栏上的 “运行脚本” ,首次备份SQL Server 数据库。 您可以在脚本窗格 下查看备份进度和结果。

4. 在  文件  菜单上,单击  另存为 。 选择您想要的位置来保存脚本文件并 输入文件的名称。 最后,单击 保存 并退出 Windows PowerShell ISE。

下次如何运行 PowerShell 脚本?

方法 1:使用 PowerShell 运行“.ps1”文件

  • 右键单击您之前保存的“.ps1”文件,然后选择 “使用 PowerShell 运行” 。
  • 系统会要求您更改执行策略。 输入 a (即“Yes to All”)并按 Enter 键继续。

方法 2:从 Windows PowerShell ISE 运行脚本

  • 启动 Windows PowerShell ISE。 单击工具栏上的 打开脚本 ,选择您之前创建的脚本文件并单击 打开 。
  • 单击 运行脚本 开始备份 SQL 数据库。

如何创建 PowerShell 脚本来备份所有 SQL 数据库?

步骤与上述相同。 只需使用下面的 cmdlet:

获取子项“SQLSERVER:\SQL\DESKTOP-J6AHKLA\DEFAULT\Databases” | 备份-SqlDatabase

✍ 小贴士:
◑ 此命令将服务器实例“DESKTOP-J6AHKLA\DEFAULT”上所有用户创建的数据库备份到默认备份位置。 每个数据库都有一个名为 [数据库名称] .bak的备份文件 。
◑ 不备份系统数据库。 您可以根据需要 指定 Backup-SqlDatabase cmdlet 来备份系统数据库“master”、“model”和“msdb”。 学习更多关于 系统数据库备份与恢复 .

备份多个 SQL Server 数据库的更简单方法

如您所见,您需要重复编写 Backup-SqlDatabase cmdlet 来备份多个数据库。 如果需要备份的数据库很少,建议使用PowerShell SQL备份。 如果您要备份大量数据库怎么办? 有没有什么工具可以帮你一次选择多个数据库?

强大的 SQL备份软件 - 傲梅企业备份网络版版来帮忙。 您可以利用其以下功能来执行 SQL Server 备份:

★ 内嵌  SQL Server备份  功能 ,让您在一台PC/服务器上备份多个实例和数据库。
★ 它提供 计划 功能来帮助您运行自动备份。 你可以执行 SQL Server 每天自动备份 、每周或每月。
★ 支持SQL Server 2019/2017/2016/2014/2012/2008(R2)/2005等所有较新版本的数据库备份。

下载 傲梅企业备份网络版免费试用版,立即探索所有精彩功能!

SQL Server 备份的准备工作

1. 在您公司的其中一台计算机上安装 傲梅企业备份网络版。 它将用作中央管理计算机,它可以是运行Windows PC 操作系统或Windows Server 操作系统的计算机。

2. 启动傲梅企业备份网络版并转到  “计算机”  >  “不受控制的计算机”  >  “安装客户端程序” 以在具有要备份的 SQL 数据库的计算机上安装客户端程序。

3. 请求控制 客户端计算机。

请求控制

通过傲梅企业备份网络版备份多个 SQL 数据库的步骤

1. 转到  “任务”  选项卡,单击  “新建任务”  并选择  “SQL Server 备份” 。

SQL 服务器备份

2. 在弹出窗口中,根据需要编辑任务名称。  然后,在“第一步”栏中 点击  “添加计算机” ,选择带有SQL Server数据库的受控计算机。

添加计算机

3. 单击“步骤 2”列,然后单击  添加 。 该程序将检测计算机上的所有 SQL Server 实例。 选择所有要备份的数据库,然后单击  “确定” 。

添加数据库

4. 单击“步骤 3”列,然后单击  添加存储 。 您可以在此处添加网络共享或 NAS 路径来存储备份文件。

添加存储

5.根据需要使用 设置 和 计划 进行更多配置。 确认操作并单击  开始备份 。 然后,选择“仅创建任务”以稍后运行 SQL 备份或“创建并执行任务”以立即运行 SQL 备份。

开始备份

总结

现在您知道如何编写 PowerShell 脚本来备份多个 SQL 数据库了。 但是,它只适用于备份少量的数据库。 如果您的 SQL Server 上有大量需要备份的数据库,傲梅企业备份网络版版可以帮到您。

傲梅企业备份网络版界面简洁,所有操作都很简单。 更重要的是,你可以用它来 备份多个 Windows 服务器 立即下载尝试以发现更多功能!