
我们在搭建网狐端的时候数据库很多,需要一个一个的去还原,这里我做了一个一键还原脚本
只需要修改数据库的实例名 数据库保存路径执行命令就可以还原数据库
命令:
# 加载SQL Server管理对象
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null
# 配置参数
$sqlServer = "10_0_28_3" # SQL Server实例名
$backupFolder = "D:\Backup" # 备份文件存放目录
$dataFolder = "D:\Data" # 数据文件存放目录
# 创建目录(如果不存在)
if (!(Test-Path -Path $backupFolder)) {
New-Item -ItemType Directory -Path $backupFolder | Out-Null
}
# 获取所有.bak文件
$bakFiles = Get-ChildItem -Path $backupFolder -Filter "*.bak"
foreach ($file in $bakFiles) {
try {
$dbName = [System.IO.Path]::GetFileNameWithoutExtension($file.Name)
$backupFile = $file.FullName
# 首先获取备份文件中的逻辑文件名
$getFileListSQL = @"
RESTORE FILELISTONLY FROM DISK = N'$backupFile'
"@
$fileList = Invoke-Sqlcmd -ServerInstance $sqlServer -Query $getFileListSQL -TrustServerCertificate
# 提取逻辑文件名(假设第一个是数据文件,第二个是日志文件)
$dataLogicalName = $fileList[0].LogicalName
$logLogicalName = $fileList[1].LogicalName
# 确保数据目录存在
if (!(Test-Path -Path $dataFolder)) {
New-Item -ItemType Directory -Path $dataFolder | Out-Null
}
# 构建还原语句
$restoreSQL = @"
RESTORE DATABASE [$dbName]
FROM DISK = N'$backupFile'
WITH FILE = 1,
MOVE N'$dataLogicalName' TO N'$dataFolder\$dbName.mdf',
MOVE N'$logLogicalName' TO N'$dataFolder\${dbName}_log.ldf',
NOUNLOAD, REPLACE, STATS = 5;
"@
Write-Host "正在还原数据库: $dbName ..."
Invoke-Sqlcmd -ServerInstance $sqlServer -Query $restoreSQL -QueryTimeout 0 -TrustServerCertificate
Write-Host "成功还原数据库: $dbName" -ForegroundColor Green
# 设置数据库为简单恢复模式(可选)
$setRecoverySQL = "ALTER DATABASE [$dbName] SET RECOVERY SIMPLE WITH NO_WAIT"
Invoke-Sqlcmd -ServerInstance $sqlServer -Query $setRecoverySQL -TrustServerCertificate
}
catch {
Write-Host "还原数据库 $dbName 时出错: $_" -ForegroundColor Red
}
}
Write-Host "所有数据库还原操作完成"
版权声明:原创作品,未经允许不得转载,否则将追究法律责任。
本站资源有的自互联网收集整理,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
本文链接:帽子资源网https://www.maoziw.com/202505092097.html
许可协议:《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
本站资源有的自互联网收集整理,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
本文链接:帽子资源网https://www.maoziw.com/202505092097.html
许可协议:《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权