关于 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 服务器 立即下载尝试以发现更多功能!