批量数据库还原

本文涉及的产品
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
目录
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
8月前
|
SQL 数据库 OceanBase
OceanBase数据库的回收站功能是为了短暂保存被删除的数据库对象
【2月更文挑战第21天】OceanBase数据库的回收站功能是为了短暂保存被删除的数据库对象
57 7
|
8月前
|
数据库
数据库防止误删操作——打数据标记
数据库防止误删操作——打数据标记
155 1
|
SQL 存储 关系型数据库
数据库学习-数据备份与还原作业示例【带源码】
MySQL数据库 “数据备份与还原 ” 习题示例,包含源码,能建立起对于数据备份与还原 的基本概念
152 0
数据库学习-数据备份与还原作业示例【带源码】
|
关系型数据库 MySQL 数据库
数据库基础(二)----- 约束,数据库的设计、备份和还原
数据库基础(二)----- 约束,数据库的设计、备份和还原​ 约束 ✔  概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性 ✔  分类:     1. 主键约束:primary key     2. 非空约束:not null     3. 唯一约束:unique     4. 外键约束:foreign key ✔  非空约束:not null,值不能为null      1. 创建表时添加约束 CREATE TABLE stu( id INT, NAME VARCHAR(20) NOT NULL -- name为非空 );      2. 创建表
|
SQL 数据库 数据安全/隐私保护
数据库的导出与迁移
数据库的导出与迁移
251 0
|
关系型数据库 MySQL 数据库
不同数据库之间表数据的实时同步_syncnavigator数据库同步工具
SyncNavigator 做数据同步时所支持的数据库类型: 支持sqlserver 2000-2014所有版本,全兼容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。 来源数据库和目标数据库可以版本不同,比如:来源数据库是sqlserver 2012 目标数据库是mysql 5.5 ,都是可以的, SyncNavigator 支持跨数据库版本,无缝传输数据。
5745 0
|
Oracle 关系型数据库 数据库
Oracle数据库-备份整个数据库与还原整个数据库数据
这个功能是为了防止数据库中的数据损坏,而拿备份的表去顶替损坏的表 这个功能是在DOS窗口实现的,可并非是在Oracle数据库中执行的 先说本地的导出与导入: 备份(也叫导出): exp用户名/密码@本地服务名 file = 目标地址 (注:导出的文件是在硬盘上生成后缀名为dmp的文件) 阿里云代金券1000元免费领取地址:https://promotion.
2273 0
|
数据库 数据安全/隐私保护 SQL
SqlServer批量压缩数据库日志-多数据库批量作业,批量备份还原
原文:SqlServer批量压缩数据库日志-多数据库批量作业,批量备份还原 --作业定时压缩脚本 多库批量操作 DECLARE @DatabaseName NVARCHAR(50) DEC...
1304 0