批量数据库还原
2015-06-03 15:35
369 查看
在使用前先加载库文件
$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)
}
[align=left]# Set SQL Server instance name[/align]
[align=left]$sqlName= "localhost"[/align]
[align=left] [/align]
[align=left]$backupPath= "e:\zach\"[/align]
[align=left]$destPath = 'c:\SQL Data'[/align]
[align=left] [/align]
[align=left]$sqlServer = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $sqlName[/align]
[align=left]$sqlServer.ConnectionContext .LoginSecure=$false ;[/align]
[align=left]$sqlServer.ConnectionContext .set_Login("sa");[/align]
[align=left]$sqlServer.ConnectionContext .set_Password("jj") [/align]
[align=left] [/align]
[align=left][System.Reflection.Assembly]:: LoadWithPartialName("Microsoft.SqlServer.SMO" ) | Out-Null[/align]
[align=left][System.Reflection.Assembly]:: LoadWithPartialName("Microsoft.SqlServer.SmoExtended" ) | Out-Null[/align]
[align=left] [/align]
[align=left]$items =Get-ChildItem $backupPath[/align]
[align=left]foreach ($item in $items )[/align]
[align=left]{[/align]
[align=left]$dbRestore = new-object ("Microsoft.SqlServer.Management.Smo.Restore")[/align]
[align=left]$dbRestore.Devices .AddDevice ($item .FullName , "File" )[/align]
[align=left] [/align]
[align=left]$dt = $dbRestore .ReadFileList ($sqlServer )[/align]
[align=left]$header = $dbRestore .ReadBackupHeader ($sqlServer )[/align]
[align=left]$db=$header .Rows [0].DatabaseName[/align]
[align=left] [/align]
[align=left]$dbRestore.Database = $db[/align]
[align=left]$db[/align]
[align=left] foreach($r in $dt .Rows )[/align]
[align=left] {[/align]
[align=left] $p=''[/align]
[align=left] $dbRestoreFile = new-object("Microsoft.SqlServer.Management.Smo.RelocateFile" )[/align]
[align=left] $r. LogicalName;[/align]
[align=left] $dbRestoreFile.LogicalFileName = $r .LogicalName ;[/align]
[align=left] $p = $r. PhysicalName.split ("\" )[/align]
[align=left] $destPath+ "\"+ $p[ $p.length -1][/align]
[align=left] $dbRestoreFile.PhysicalFileName = $destPath + "\" +$p[$p.length -1][/align]
[align=left] $dbRestore.RelocateFiles .Add ($dbRestoreFile )[/align]
[align=left] }[/align]
[align=left] $dbRestore. RelocateFiles[/align]
[align=left] $sqlServer. KillAllProcesses($db )[/align]
[align=left] # Call the SqlRestore mathod to complete restore database[/align]
[align=left] $dbRestore.SqlRestore ($sqlServer )[/align]
[align=left] [/align]
[align=left]}[/align]
$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)
}
[align=left]# Set SQL Server instance name[/align]
[align=left]$sqlName= "localhost"[/align]
[align=left] [/align]
[align=left]$backupPath= "e:\zach\"[/align]
[align=left]$destPath = 'c:\SQL Data'[/align]
[align=left] [/align]
[align=left]$sqlServer = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $sqlName[/align]
[align=left]$sqlServer.ConnectionContext .LoginSecure=$false ;[/align]
[align=left]$sqlServer.ConnectionContext .set_Login("sa");[/align]
[align=left]$sqlServer.ConnectionContext .set_Password("jj") [/align]
[align=left] [/align]
[align=left][System.Reflection.Assembly]:: LoadWithPartialName("Microsoft.SqlServer.SMO" ) | Out-Null[/align]
[align=left][System.Reflection.Assembly]:: LoadWithPartialName("Microsoft.SqlServer.SmoExtended" ) | Out-Null[/align]
[align=left] [/align]
[align=left]$items =Get-ChildItem $backupPath[/align]
[align=left]foreach ($item in $items )[/align]
[align=left]{[/align]
[align=left]$dbRestore = new-object ("Microsoft.SqlServer.Management.Smo.Restore")[/align]
[align=left]$dbRestore.Devices .AddDevice ($item .FullName , "File" )[/align]
[align=left] [/align]
[align=left]$dt = $dbRestore .ReadFileList ($sqlServer )[/align]
[align=left]$header = $dbRestore .ReadBackupHeader ($sqlServer )[/align]
[align=left]$db=$header .Rows [0].DatabaseName[/align]
[align=left] [/align]
[align=left]$dbRestore.Database = $db[/align]
[align=left]$db[/align]
[align=left] foreach($r in $dt .Rows )[/align]
[align=left] {[/align]
[align=left] $p=''[/align]
[align=left] $dbRestoreFile = new-object("Microsoft.SqlServer.Management.Smo.RelocateFile" )[/align]
[align=left] $r. LogicalName;[/align]
[align=left] $dbRestoreFile.LogicalFileName = $r .LogicalName ;[/align]
[align=left] $p = $r. PhysicalName.split ("\" )[/align]
[align=left] $destPath+ "\"+ $p[ $p.length -1][/align]
[align=left] $dbRestoreFile.PhysicalFileName = $destPath + "\" +$p[$p.length -1][/align]
[align=left] $dbRestore.RelocateFiles .Add ($dbRestoreFile )[/align]
[align=left] }[/align]
[align=left] $dbRestore. RelocateFiles[/align]
[align=left] $sqlServer. KillAllProcesses($db )[/align]
[align=left] # Call the SqlRestore mathod to complete restore database[/align]
[align=left] $dbRestore.SqlRestore ($sqlServer )[/align]
[align=left] [/align]
[align=left]}[/align]
相关文章推荐
- mysql 相关
- 详解Oracle DELETE和TRUNCATE 的区别
- PL/SQL Developer保存布局
- mysql 字符串拆分
- Oracle 11gR2 使用RMAN Duplicate复制数据库
- 基于DRBD实现高可用MariaDB
- oracle 监测数据库是否存在指定字段
- 备份一个约250G的mysql实例【xtrabackup备份方案对比】
- Oracle登陆触发器
- MySQL用触发器同步两张表
- oracle 11g expdp impdp详细使用方法
- oracle中LAG()和LEAD()等分析统计函数的使用方法(统计月增长率)
- Oracle死锁查询及处理
- MSSQL与MYSQL手工注入时的简单对比
- Oracle Hints具体解释
- ios coreData sqlite3
- 一点mysql注入时用到的函数
- 内存数据库-Redis介绍
- redis小试牛刀02-链表
- Oracle常用命令(no.3)