首页 > 开发 > 综合 > 正文

批量数据库还原

2024-07-21 02:46:50
字体:
来源:转载
供稿:网友
批量数据库还原在使用前先加载库文件

$assemblylist = "Microsoft.SqlServer.Management.Common","Microsoft.SqlServer.Smo","Microsoft.SqlServer.Dmf ","Microsoft.SqlServer.Instapi ","Microsoft.SqlServer.SqlWmiManagement ","Microsoft.SqlServer.ConnectionInfo ","Microsoft.SqlServer.SmoExtended ","Microsoft.SqlServer.SqlTDiagM ","Microsoft.SqlServer.SString ","Microsoft.SqlServer.Management.RegisteredServers ","Microsoft.SqlServer.Management.Sdk.Sfc ","Microsoft.SqlServer.SqlEnum ","Microsoft.SqlServer.RegSvrEnum ","Microsoft.SqlServer.WmiEnum ","Microsoft.SqlServer.ServiceBrokerEnum ","Microsoft.SqlServer.ConnectionInfoExtended ","Microsoft.SqlServer.Management.Collector ","Microsoft.SqlServer.Management.CollectorEnum","Microsoft.SqlServer.Management.Dac","Microsoft.SqlServer.Management.DacEnum","Microsoft.SqlServer.Management.Utility"

foreach ($asm in $assemblylist){ $asm = [Reflection.Assembly]::LoadWithPartialName($asm)}

# Set SQL Server instance name$sqlName="localhost"$backupPath="e:/zach/"$destPath='c:/SQL Data'$sqlServer=New-Object('Microsoft.SqlServer.Management.Smo.Server')$sqlName$sqlServer.ConnectionContext.LoginSecure=$false;$sqlServer.ConnectionContext.set_Login("sa");$sqlServer.ConnectionContext.set_PassWord("jj")[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") |Out-Null[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") |Out-Null$items=Get-ChildItem$backupPathforeach($itemin$items){$dbRestore=new-object("Microsoft.SqlServer.Management.Smo.Restore")$dbRestore.Devices.AddDevice($item.FullName,"File")$dt=$dbRestore.ReadFileList($sqlServer)$header=$dbRestore.ReadBackupHeader($sqlServer)$db=$header.Rows[0].DatabaseName$dbRestore.Database=$db$dbforeach($rin$dt.Rows){$p=''$dbRestoreFile=new-object("Microsoft.SqlServer.Management.Smo.RelocateFile")$r.LogicalName;$dbRestoreFile.LogicalFileName=$r.LogicalName;$p=$r.PhysicalName.split("/")$destPath+"/"+$p[$p.length-1]$dbRestoreFile.PhysicalFileName=$destPath+"/"+$p[$p.length-1]$dbRestore.RelocateFiles.Add($dbRestoreFile)}$dbRestore.RelocateFiles$sqlServer.KillAllPRocesses($db)# Call the SqlRestore mathod to complete restore database$dbRestore.SqlRestore($sqlServer)}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表