SQL Server体系结构 – 他们想将我的数据库移动到新的实例…为什么?

我们目前的生产数据库环境包含大约10个类似的pipe理数据库 我们的机构刚刚购买并正在安装新的刀片服务器,并希望将我的数据库移动到新的实例(将另一个9另一个)。 这个决定是由我们的IT员工之一,而不是DBA来驱动的。 我是一名项目经理,而不是DBA,但是我对这个决定并不十分满意,而且我正在敦促我们的IT部门根据对数据库最好的做法做出正确的决定。 我们的IT部门曾经说过把所有的鸡蛋都放在一个篮子里是不好的,而且还说我的数据库包含“监pipe数据”,所以它应该是自己的实例。

一些事实: – 当前实例中的任何数据库都不是OLTP数据库,也不是其中的任何数据仓库 – 我的数据库当前已连接到生产环境中的其他数据库

所以我的问题如下:

  1. 无视在篮子里的鸡蛋的声明是错的吗? (你好,这就是为什么我们有维护计划/灾难恢复计划)。 我会提到其他数据库也有监pipe数据。

  2. 我需要问什么types的问题来确定这是否是一个合理的决定? (DBA的朋友提到,如果数据库的服务水平协议与其他服务水平协议没有根本的区别,那他们为什么要这么做呢?)

  3. 我已经做了一些关于链接服务器的研究。 我应该提出什么样的观点,即我现在有依赖于其他数据库的数据的视图设置?

从我读到的,你的环境没有任何“官方”的DBA。 在这个距离上做很多具体的陈述是很难的,但是这里有一些我想要研究的东西。

首先,IT人员完全有可能是正确的,并且出于某种监pipe原因需要将数据放在另一台服务器上。 有时候,规则就是规则。 他们可能是由政府(或法律制度)的人谈判的,而不考虑他们如何受到技术的影响。 即使这些规则可能不是100%“合乎逻辑”的意义,你也不会改变它们。

另外,作为一个首要的东西,我会build议只要性能没有受到损害,正常运行时间,灾难恢复和其他SLA覆盖的项目不会受到负面影响,这真的是IT人员的脖子砧板。 您不负责遵守法规(或者您将接受培训以熟悉规则,我猜),IT人员有责任遵守法规。 如果应用程序出现问题,或者他们违反了一些监pipe规则,他们将不得不忍受后果。 你可以说:“IT人员告诉我没关系。” (如果系统在新的服务器上有任何问题,我肯定会发现,如果数据库在旧的服务器上,是否会发生这个问题。)

作为一个长期从事大量整合项目的DBA,您通常需要更less的实例,而不是更多的实例。 (我不是在谈论dev / test / qa / production实例;我们只是在这里谈论产品)。pipe理较less数量的实例比较容易,并且降低了许可成本。 有些时候,有些人会喜欢高服务器的想法,更多的是更好的想法。 “100台服务器每个有1个数据库”比“1台服务器上的100个数据库”要好。

他们是否将这些其他数据库与监pipe数据转移到刀片服务器上,或者是否已经单独列出? 如果更多的数据库将会移动,为什么你要先走?

你有什么样的SLA数据库? 刀片能够处理吗? 他们怎么知道的? 如果旧服务器是群集的,那么新的刀片服务器是否集群? 正常运行时间是否一样? 或更好? 存储是一样的吗?

是否有外部报告或应用程序“知道”所有这些数据库位于同一实例中? 如何MS Access数据库或Excel工作表做数据提取? 是的,这样的事情应该隐藏在一个视图或存储过程后面,但是我看到很多情况并非如此。 移动数据库之后,您不希望发现需要重新编写代码。 任何这样的工作都需要考虑到移动数据库的努力。

在一个更负面的方面,“IT人员”可能不太了解SQL Server,以便使用SQL Server的function(login,angular色,权限,encryption,命名实例等等)来适当地分离“监pipe数据“只是一个实例。 你可以把这看作是“IT人员需要更多的培训/有人需要购买DBA”,或者你可以把它看作是“IT人员需要习惯使用他们已经知道遵循的规则”。 两者都是理智的观点,有利有弊。

如果当前服务器存在性能问题,则IT人员可能希望通过将数据库移动到其他服务器上来改善这种情况。 对于特定数据库的至less一些function来说,这可能是正确的,但是数据库间依赖可能是非常有问题的。 链接服务器查询的性能与本地查询的性能不匹配,这是由于networking延迟,适当优化查询的能力下降以及数据有时被提取的方式。 有时performance还行,有时不行。 最好的方法是在新服务器上运行之前testing您的代码。 一旦你在新的服务器上,对于执行不佳的查询将会很困难,而这不是你想要惊讶的事情。 过去我见过这些人。 响应通常是通过SSIS或使用链接的服务器将数据从远程服务器复制到本地服务器。 这是额外的工作,数据的“陈旧”问题可能会出现。

如果不小心configuration,连接的服务器可能会成为安全漏洞。 如果您的IT团队主要担心访问监pipe数据,这也应该关注他们。

如果数据库依赖于其他数据库,则它们都是同一个系统的一部分。 将数据库移动到另一台服务器将使系统更有可能失败,因为还有更多的事情要失败。

鸡蛋和筐不是一个很好的比喻,即使它经常被使用。 鸡蛋不相互依赖。 数据库可以相互依赖。 应将相关数据库视为一个系统。 将一个数据库移动到另一个服务器会使数据库系统失败的可能性增大,因为有更多的事情要失败。

那么问题就变成了:“如果随机抽取这些数据库中的一个,整个系统如何受到影响?” IOW,如果旧的服务器崩溃会发生什么? 如果新刀片崩溃会发生什么? 如果整个公司停止工作,如果其他九个数据库脱机,数据库启动或closures是否重要?

我的数据库目前已经连接到生产环境中的其他数据库

好吧,这是怎么回事? 链接服务器? 这将在networking上投放大量的stream量。 查询行为(查看行为)可能会发生剧烈变化。