备份SQL Server 2014数据库到Azure Blob存储器服务上

">Azure VM 客制化脚本扩展 (Custom Script Extension) 将让您可以从存储器账户下载 PowerShell 脚本并执行之,
透过这样一个简单的功能,您可以因应各种不同的 VM 客制化情境,弹性地自动化 VM 设定。在本篇文章中我们将带您了解如何从 Azure VM Image Gallery 中使用客制化脚本扩展来客制一个
SQL Server 2014 VM,我们将使用 SQL Powershell 脚本来启用 SQL Server Managed Backup 到
Microsoft Azure,这将让您可以备份您的 SQL Server 2014 数据库到 Azure Blob 存储器服务上。   SQL Server 设定脚本   请参阅以下程序代码,您只需要将 [your Azure storage account] 和 [your Azure storage account key] 改为您 Azure 存储器的账户及凭证即可,并另存此脚本为 CustomScriptSQLPS.ps1。   #import SQL Server powershell module  import-module  sqlps -DisableNameChecking     #global variables - replace storage account name and key $credentialName = "AzureStorageCredential_"+(RANDOM) $storageAccountName = "[your Azure storage account]" $storageAccountKey = "[your Azure storage account key]"     #start SQL Agent Service            write-host "Starting SQL Server Agent service ..." Start-Service  sqlserveragent -verbose   CD SQLSERVER:SQL\$env:COMPUTERNAME\DEFAULT   write-host "Creating SQL credential ..." $secureString = convertto-securestring $storageAccountKey  -asplaintext -force       #Create Credential New-SqlCredential –name $credentialName –Identity $storageAccountName –secret $secureString    $encryptionOption = New-SqlBackupEncryptionOption -NoEncryption   write-host "Enabling Managed SQL Server Backup..."   get-sqlsmartadmin | set-sqlsmartadmin -BackupEnabled $True  -BackupRetentionPeriodInDays 7 -SqlCredential $credentialName -EncryptionOption  $encryptionOption   write-host "Managed SQL Server backup current configuration:" get-sqlsmartadmin | fl   
但是,我们无法直接提交此脚本,因客制化脚本扩展是使用 NTAUTHORITY\SYSTEM 账户来执行脚本,
所以我们必须建立另个脚本,来扮演管理员账户脚色,才能执行上面这段脚本。   利用另个认证来执行脚本  
首先我们建立另个脚本取名作 start.ps1,内容如下。为了方便解说,我在下方加了 Line Number。   1: $password =  ConvertTo-SecureString "[your admin account user password]" -AsPlainText -Force   2: $credential = New-Object System.
Management.Automation.PSCredential("$env:COMPUTERNAME\[your admin account]", $password)   3: $command = $file = $PSScriptRoot + "\CustomScriptSQLPS.ps1"   4: Enable-PSRemoting –force   5: Invoke-Command -FilePath $command -Credential $credential -ComputerName $env:COMPUTERNAME   6: Disable-PSRemoting -Force   Line 1: 将管理员密码从 Plain text 转换到 Secured string,当然将密码直接放置于脚本中不是一个好的做法,这我们稍后再回来谈。   Line 2: 建立执行主要脚本的认证,您可以使用和预备用来建立 VM 相同的账户。   Line 3: 指定主要脚本
的确切路径。   Line 4 & 6: 要在一个仿造的认证中执行主要脚本,我们必须启用 Windows Remote Management (WinRM),也就是 Line 4,而 Line 6 是关闭。   Line 5: 使用 Invoke-Command cmdlet 来执行主要脚本 (会需要认证参数)。   使用客制化脚本扩展   现在我们已经准备好提交以上两个脚本至客制化脚本扩展,将两个脚本上传至您存储器账户下的脚本容器中,接下来在您的工作站上边可执行以下脚本。   1: $servicename = "[cloud service that hosts the VM]"   2: $vmname = "[name of the VM]"   3: $vm = Get-AzureVM -ServiceName $servicename -Name $vmname   4: Set-AzureVMCustomScriptExtension -
ContainerName scripts -StorageAccountName '[your storage account name]' -VM $vm -FileName 'start.ps1', 'CustomScriptSQLPS.ps1' -Run 'start.ps1' | Update-AzureVM -Verbose   5: $status = Get-AzureVM -ServiceName $servicename -Name $vmname   6: $result = $status.ResourceExtensionStatusList.ExtensionSettingStatus.SubStatusList | Select Name, @{"Label"="Message";Expression = {$_.FormattedMessage.Message }}    7: $result |fl   最重要的是第4行,它确保了于VM上安装客制化脚本扩展,并下载start.ps1 和 CustomScriptSQLPS.ps1,接着执行 start.ps1。   于外部档案中读取密码   我们都知道应避免于程序代码中写入密码,所以现在要介绍的是加解密服务,我们将假设您已经利用 private key 于目标 VM 部署了凭证,且利用相同凭证的 public key 来加密到 password.txt 档案 (base-64 格式)。   $cert = Get-ChildItem Cert:\LocalMachine\My\[certificate thumbprint]   $bytes = [Text.Encoding]::UTF8.GetBytes("abcdefg")   $encrypted = $cert.PublicKey.Key.Encrypt($bytes, $true)   $base64 = [Convert]::ToBase64String($encrypted)   Set-Content .\password.txt $base64   若您对于 VM 凭证管理还不太了解,可以参考这里 (提供教学影片及命令提示字符下载)。   修改start.ps1 并将以下程序代码复制取代原本的第一行:   $cert = Get-ChildItem Cert:\LocalMachine\My\[certificate thumbprint]   $base64 = Get-Content .\password.txt   $encrypted = [Convert]::FromBase64String($base64)   $bytes = $cert.PrivateKey.Decrypt($encrypted,$true)   $password = [Text.Encoding]::UTF8.GetString($bytes)    最后,于档案列表增加文件名来确认 password.txt 档案已传送至客制化脚本扩展。    Set-AzureVMCustomScriptExtension -ContainerName scripts -StorageAccountName '[your storage account  name]' -VM $vm -FileName 'start.ps1', 'CustomScriptSQLPS.ps1',  'password.txt' -Run 'start.ps1' | Update-AzureVM -Verbose

时间: 2024-11-10 00:00:55

备份SQL Server 2014数据库到Azure Blob存储器服务上的相关文章

远程登陆SQL Server 2014数据库的方法

远程登陆SQLServer (2014)数据库,供大家参考,具体内容如下 两台电脑,同一个局域网内,IP同一网段 配置: Computer1: Windows10,安装SQL Server 2014 enterprise版(作为服务器) Computer2: Windows 10,VS2015 Computer1:(1)设置Windows用户和SQL Server身份验证两种登陆方法 (2)配置SQL Server 配置管理器 网络配置将Named Pipes和TCP/IP协议均打开,TCP/I

通过SQL Server 2008数据库复制实现数据库同步备份

原文 通过SQL Server 2008数据库复制实现数据库同步备份 SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用.它是一种优于文件备份的数据库备份解决方案. 在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 2008的数据库镜像和SQL Server 2008数据

微软开始为厂商提供 SQL Server 2014 OTM

微软已经开始为厂商提供最新的 SQL Server 2014 数据库产品,该版本主要侧重于提供可靠支持混合发布场景以及微软最新的内存数据库技术,支持内存中的 OLTP 联机事务处理. 微软宣称其内存中的 OLTP 技术可以让 SQL Server 2014 在事务处理速度上提升 30 倍.SQL Server 2014 同时也提供对 Azure 平台的支持.并且将在 4月1日 提供服务. 据了解,SQL Server 2014 将采取和 SQL Server 2012 一样的许可证和定价模式.

SQL Server 2014的原生备份加密新特性

SQL Server 2014 CTP2之后公布了一项针对备份的特性,那就是原生备份加密.考虑到之前网络上影响很坏的数据库泄漏事件,本质上都是数据库备份泄漏给第三方导致,SQL Server的原声数据备份可以使得即使备份本身被盗,在没有加密证书的情况下也无法使用,这有效的解决了上述数据泄漏问题. 原先的解决方案 在SQL Server 2014之前,如果希望实现对备份实现加密,会通过如下两种方式之一实现: 使用透明数据加密(TDE)加密整个数据库,从而使得备份和事务日志也会被加密 使用第三方备份

揭秘SQL Server 2014有哪些新特性(4)-原生备份加密_MsSql

SQL Server 2014 CTP2之后公布了一项针对备份的特性,那就是原生备份加密.考虑到之前网络上影响很坏的数据库泄漏事件,本质上都是数据库备份泄漏给第三方导致,SQL Server的原声数据备份可以使得即使备份本身被盗,在没有加密证书的情况下也无法使用,这有效的解决了上述数据泄漏问题.原先的解决方案     在SQL Server 2014之前,如果希望实现对备份实现加密,会通过如下两种方式之一实现: 使用透明数据加密(TDE)加密整个数据库,从而使得备份和事务日志也会被加密 使用第三

揭秘SQL Server 2014有哪些新特性(4)-原生备份加密

SQL Server 2014 CTP2之后公布了一项针对备份的特性,那就是原生备份加密.考虑到之前网络上影响很坏的数据库泄漏事件,本质上都是数据库备份泄漏给第三方导致,SQL Server的原声数据备份可以使得即使备份本身被盗,在没有加密证书的情况下也无法使用,这有效的解决了上述数据泄漏问题.原先的解决方案 在SQL Server 2014之前,如果希望实现对备份实现加密,会通过如下两种方式之一实现: 使用透明数据加密(TDE)加密整个数据库,从而使得备份和事务日志也会被加密 使用第三方备份加

ASP视频教程:备份和还原SQL Server 2000数据库

大家在初学ASP程序的时候,我们经常第一个任务就是配置环境!在这里根据网页教学网站长的经验,有时克隆版的XP系统有时是安装不了IIS的!前面我们已经讲解了ASP视频教程:制作网站前台首页,本讲主要讲述备份和还原SQL Server 2000数据库.大家请看视频教程.

SQL Server系统数据库备份最佳实践

原文:SQL Server系统数据库备份最佳实践 首先了解主要的系统数据库: master 包含登录信息和其他数据库的核心信息 msdb 存储作业.操作员.警报.备份还原历史.数据库邮件信息等等. model 所有新数据库的模型,如果希望新数据库都有某些对象,可以在这里创建. tempdb sql server重启时重建,所以不需要备份 除了以上四种,其实还有一个数据库:Resource 从2005就引入的,一个只读.隐藏的数据库,包含所有在sql server中的系统对象.由于SQL SERV

sql server 2014附加数据库时出错,有关详细信息,请单击“消息”列中的超链接

问题描述 sql server 2014附加数据库时出错,有关详细信息,请单击"消息"列中的超链接 百度上改属性权限之类的都试了,还是不行! 请大神些帮帮忙呀.. 解决方案 他说要你点击超链接,你将附加的左右滚动条滑到最右边,点击就会有错误原因,一般附加报错一个是没有权限,还有可能是版本不兼容,微软都是向下兼容的,比如用2012版本的文件附加到2014就会报错 解决方案二: 标题: Microsoft SQL Server Management Studio -------------