【数据库】如何快速复制(clone) 20 TB SQL Server 资料库

几个月前,Business Intelligence 部门跑来跟DBA 讨论,希望可以设定一个复制数据库的排程,每天将约20 TB 的数据库复制到另一个SQL Server 供数据科学家们(Data Scientists) 使用。没错!是20 TB, 而且是每天的排程(on a daily basis)。

设定backup 与restore 的复制排程听起来相当容易,但问题是如果使用SQL Server 内建的复原方法, 20 TB数据库的复制程序推算大概要花26个小时才能完成,但每个人每一天都只有24小时,根本就不切实际。所以要达成使命,必须得借助Storage Admin 的帮忙。

让我们想一想如何在复制程序上利用SAN storage snapshot 的magic。通常Storage Admin 从SAN 建立volume (create a volume), 从volume 裁切disk luns (cut disk luns),然后附加disk luns (attach disk luns) 到SQL Server 的虚拟主机(VM) 上设定为储存的空间(如E:\ )。Snapshot 1GB 的时间跟snapshot 20 TB 的时间是相同的,大概需要30秒到60秒时间完成。在Snapshot 之前,系统会将SQL server 的I/O 静止(freeze the I/O), 确认储存拍照时没有任何的数据库活动运作,拍完照后再释放I/O,让SQL Server 恢复正常使用。

了解了上述storage 的概念后,现在把所有数据库复制程序归纳如下。

首先,建立安装一个新的destination (目的地) SQL server, 然后建立一个空的复制数据库,复制数据库的名称跟数据的名称与source (来源) 数据库的名称必须一样,并设定好使用者与权限。(举例来说,使用者数据库的MDF 跟LDF 都在E:.)

排程:

  1. 在source (来源)SQL server, snapshot E:\ drive (包括MDF 跟LDF).

  2. 将步骤1 得到的snapshot 附加(attach) 到destination (目的地)SQL Server 覆盖取代原有的E:.

  3. 重启destination (目的地) SQL server service.

就这样,这个20 TB 数据库每天的复制程序在30分钟内搞定。

#数据库#

想了解更多精彩内容,快来关注四川人在香港

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mikes zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值