zoukankan      html  css  js  c++  java
  • 批量数据库还原

    在使用前先加载库文件

    $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 $backupPath
    foreach ($item in $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
    $db
           foreach($r in $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 )
     
    }
  • 相关阅读:
    Oracle 手工清除回滚段的几种方法
    Oracle dump undo 说明
    Oracle ORA_ROWSCN 伪列 说明
    Oracle 10.2.0.4 高负载 触发 ORA00494 错误
    Oracle Block scn/commit scn/cleanout scn 说明
    Oracle 游标(cursor) 说明
    Oracle 10g Toad查看 表空间 报错 ORA00600 internal error code arguments [ktfbhget4], [6], [5]
    Oracle Block scn/commit scn/cleanout scn 说明
    Oracle 监听(Listener) 中 services 说明
    Oracle 游标(cursor) 说明
  • 原文地址:https://www.cnblogs.com/Amaranthus/p/4549285.html
Copyright © 2011-2022 走看看