如何使用 PowerShell 脚本备份 SQL Server 数据库 ?

56 阅读2分钟

PowerShell Script to Backup SQL Server Databases

对于任何依赖于数据存储和检索应用程序来说,数据库管理都是关键所在。确保数据的完整性和可用性是最重要的,也是最基本的。所以,定期备份 SQL Server 数据库至关重要。

在本文中,我们将演示如何创建 PowerShell 脚本,用于自动备份 SQL Server, 并使用 7-Zip 将备份文件归档。这种自动化不仅节省了您的时间,还提供了一种有效的方法来安全有序的备份存档。

Step 1: Prepare Your System

(1) 首先,按 Windows 键或者点击开始按钮打开搜索面板,在搜索栏中输入“PowerShell”,从搜索结果中打开“Windows PowerShell”

(2) 确保已安装 SQL Server Management Objects (SMO) 以及 SQL Server cmdlets,如果没有安装,可以使用以下命令安装它们:

Install-Module -Name SqlServer

(3) 如果你的系统还没有安装 7-Zip,请安装它。

Step 2: Create Backup Script

(1) 打开文本编辑器,粘贴以下 PowerShell 代码:

# Load SQL Server cmdlets
Import-Module SqlServer
 
# Set variables
$ServerInstance = "localhost"
$DatabaseName = "YourDatabaseName"
$BackupDir = "C:\Backup"
$ArchiveDir = "C:\Backup\Archive"
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$BackupFile = "${BackupDir}\${DatabaseName}_${Timestamp}.bak"
$ArchiveFile = "${ArchiveDir}\${DatabaseName}_${Timestamp}.7z"
$ZipEXE = "C:\Program Files\7-Zip\7z.exe"
 
# Create backup and archive directories if they don't exist
if (!(Test-Path $BackupDir)) {
    New-Item -ItemType Directory -Path $BackupDir
}
if (!(Test-Path $ArchiveDir)) {
    New-Item -ItemType Directory -Path $ArchiveDir
}
 
# Backup the SQL Server database
Backup-SqlDatabase -ServerInstance $ServerInstance -Database $DatabaseName -BackupFile $BackupFile
Write-Host "Database backup completed successfully."
 
# Archive the backup using 7-Zip
& $ZipEXE a -t7z $ArchiveFile $BackupFile
Write-Host "Backup archived successfully."
 
# Remove the original backup file
Remove-Item $BackupFile
Write-Host "Original backup file removed."

(2) 根据实际情况调整数据库名称、首选备份和归档目录等参数。

(3) 以 .ps1 文件扩展名保存脚本,如 BackupSqlDatabase.ps1

Step 3: Execute the Script

在 PowerShell 控制台中运行脚本,如下所示:

.\BackupSqlDatabase.ps1

该脚本导入 SqlServer 模块,备份指定的 SQL Server 数据库,并使用 7-Zip 将备份文件归档,原始备份文件被删除,只留下存档的版本。

我的开源项目

酷瓜云课堂-在线教育解决方案