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

对于任何依赖于数据存储和检索应用程序来说,数据库管理都是关键所在。确保数据的完整性和可用性是最重要的,也是最基本的。所以,定期备份 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 将备份文件归档,原始备份文件被删除,只留下存档的版本。
我的开源项目
评论已关闭
