批量数据库还原

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 在使用前先加载库文件 $assemblylist = "Microsoft.SqlServer.Management.Common","Microsoft.SqlServer.Smo","Microsoft.
在使用前先加载库文件

$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  )
 
}
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
6月前
|
SQL 存储 定位技术
数据库基础(一):数据库创建、分离、附加、删除、备份
数据库基础(一):数据库创建、分离、附加、删除、备份
|
关系型数据库 MySQL 数据库
数据库的导入和导出(恢复与备份)
数据库的导入和导出(恢复与备份)
157 0
|
SQL 数据库 数据安全/隐私保护
数据库的导出与迁移
数据库的导出与迁移
244 0
|
Oracle 关系型数据库 数据库
Oracle数据库-备份整个数据库与还原整个数据库数据
这个功能是为了防止数据库中的数据损坏,而拿备份的表去顶替损坏的表 这个功能是在DOS窗口实现的,可并非是在Oracle数据库中执行的 先说本地的导出与导入: 备份(也叫导出): exp用户名/密码@本地服务名 file = 目标地址 (注:导出的文件是在硬盘上生成后缀名为dmp的文件) 阿里云代金券1000元免费领取地址:https://promotion.
2265 0
|
数据库 数据安全/隐私保护 SQL
SqlServer批量压缩数据库日志-多数据库批量作业,批量备份还原
原文:SqlServer批量压缩数据库日志-多数据库批量作业,批量备份还原 --作业定时压缩脚本 多库批量操作 DECLARE @DatabaseName NVARCHAR(50) DEC...
1294 0
|
关系型数据库 数据库 MySQL