【数据库】如何快速复制(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分钟内搞定。

#数据库#

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

猜你喜欢

转载自blog.csdn.net/wlcs_6305/article/details/114922799