数码控科技猎奇Iphone动漫星座游戏电竞lolcosplay王者荣耀攻略allcnewsBLOGNEWSBLOGASKBLOGBLOGZSK全部技术问答问答技术问答it问答代码软件新闻开发博客电脑/网络手机/数码笔记本电脑互联网操作系统软件硬件编程开发360产品资源分享电脑知识文档中心IT全部全部分类 全部分类技术牛文全部分类教程最新 网页制作cms教程平面设计媒体动画操作系统网站运营网络安全服务器教程数据库工具网络安全软件教学vbscript正则表达式javascript批处理更多»编程更新教程更新游戏更新allitnewsJava 新闻网络医疗信息化安全创业站长电商科技访谈域名会议专栏创业动态融资创投创业学院 / 产品经理创业公司人物访谈营销 开发数据库服务器系统虚拟化云计算 嵌入式移动开发作业作业1常见软件all电脑网络手机数码生活游戏体育运动明星影音休闲爱好文化艺术社会民生教育科学医疗健康金融管理情感社交地区其他电脑互联网软件硬件编程开发360相关产品手机平板其他电子产品摄影器材360硬件通讯智能设备购物时尚生活常识美容塑身服装服饰出行旅游交通汽车购房置业家居装修美食烹饪单机电脑游戏网页游戏电视游戏桌游棋牌游戏手机游戏小游戏掌机游戏客户端游戏集体游戏其他游戏体育赛事篮球足球其他运动球类运动赛车健身运动运动用品影视娱乐人物音乐动漫摄影摄像收藏宠物幽默搞笑起名花鸟鱼虫茶艺彩票星座占卜书画美术舞蹈小说图书器乐声乐小品相声戏剧戏曲手工艺品历史话题时事政治就业职场军事国防节日风俗法律法规宗教礼仪礼节自然灾害360维权社会人物升学入学人文社科外语资格考试公务员留学出国家庭教育学习方法语文物理生物工程学农业数学化学健康知识心理健康孕育早教内科外科妇产科儿科皮肤科五官科男科整形中医药品传染科其他疾病医院两性肿瘤科创业投资企业管理财务税务银行股票金融理财基金债券保险贸易商务文书国民经济爱情婚姻家庭烦恼北京上海重庆天津黑龙江吉林辽宁河北内蒙古山西陕西宁夏甘肃青海新疆西藏四川贵州云南河南湖北湖南山东江苏浙江安徽江西福建广东广西海南香港澳门台湾海外地区

备份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

  • 本文相关:
  • 10个技巧加速Azure网站服务架设WordPress加载速度
  • 我该选择哪一种 Azure 的分布式快取 (Cache) 方案?
  • Windows Azure网站服务新功能预览: 生成PDF文件
  • 转移资料至Microsoft Azure的步骤详解
  • 构建一个简单的演示应用程序Watson Films
  • 在Windows Azure上建立Redis Cache服务
  • 基于Bluemix的微信公共平台应用开发
  • 为什么ASP.NET开发人员要了解Azure行动服务?
  • 微软公布全新的Microsoft Azure StorSimple解決方案
  • 深入探究Windows Azure SQL Database中新等级的性能
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved