我已在 Win 2008 VM 上安装了 SQL 2008,该硬件位于(父级)192.168.0.0.24 的子网中,第二个站点具有类似的硬件,其中 win2008+SQL2008 位于 10.1.1.0/24(子级),第三个站点位于 172.16.1.0/24。
我们想知道如何启用从一个站点到另一个站点的块级 SQL 2008 复制,并且我有 T1 链路的 ipsec vpn。
我的目标是在父站点中保留子站点数据库 1 天,是否有任何方法可以在块级别复制数据库,而不是复制整个数据库。有 3 个数据库,大小分别为 15GB、12GB 和 1GB。我可以通过手动复制来启动,但不确定如何配置子站点与父站点之间的数据库异步复制。
请帮忙,我对 SQL 2008 一无所知
答案1
从您的问题来看,子站点的用途并不完全清楚。子站点是否仅用于灾难恢复,它们是父数据的只读副本,还是您需要更新子副本并将更改返回到父副本?
SQL Server 不直接提供任何类型的块级复制。SQL Server 的所有复制功能都是数据级的。您可以一直执行完整拉取操作,也可以发送更改,具体取决于您的确切需要。
除了所谓的“复制”功能外,SQL Server 还拥有其他相关技术。这些技术包括数据库镜像、始终在线可用性组和日志传送。您具体使用哪种技术,很大程度上取决于您要执行的操作以及您对 SQL 的熟悉程度。如果您只是对灾难恢复或只读副本感兴趣,那么最简单的方法可能是日志传送。日志传送已经存在很长时间了,它适用于任何版本的 SQL Server,而且它实际上非常简单,隐藏在幕后。
通常,块级复制由某种智能 SAN 存储处理(首先想到的是 Vmax 和 Symetrix,但还有许多其他选择)或者您可以使用 DataKeeper 的 Steeleye 之类的软件。
块级复制通常是单向的,具有一个主系统和一个辅助系统。我从未见过具有两个辅助系统的系统,我不是存储专家,但我是 SQL 专家。还请注意,在使用块级复制(通过 SAN 或类似技术)的 SQL Server 设置中,该方案实际上是主动-被动故障转移群集的方案,并且“子”副本通常不可用于任何用途。
无论采用哪种复制方法,在实际开始复制之前,必须先将所有数据从父站点推送到子站点。此后,子站点将只接收对数据的更改。您说您可以手动复制数据。通常,数据的第一次复制是使用与您所使用的产品绑定的某种管理工具完成的。您不能只使用常规 Windows 工具从命令行复制内容。
T1 线路的带宽为 1.544 mbit/秒。如果我的计算正确的话,这大约是 694.8 MBytes/小时。第一次传输这三个数据库大约需要 42.27 小时。这不是很快。
如果您的数据发生多次更改,那么 1.544 mbit/sec 的速度很可能跟不上。如果您执行了类似运行 reindex 命令的操作,该命令可能会在块复制场景中更改大量数据(但在数据复制场景中不会更改任何内容),则复制几乎肯定会落后。如果您以异步方式运行,则可能会有某种写入缓冲区(写入队列或写入缓存)接受并保留父端的更改,直到它们可以发送到子端,但缓冲区的大小可能不足以容纳全部您的数据。一旦缓冲区填满,您将有效地同步运行,否则您的系统将丢失数据(从而破坏您的数据库)。