Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 r2 sql server将镜像数据库拆分到多个设备上_Sql Server 2008 R2_Mirroring_Database Management_Filegroup - Fatal编程技术网

Sql server 2008 r2 sql server将镜像数据库拆分到多个设备上

Sql server 2008 r2 sql server将镜像数据库拆分到多个设备上,sql-server-2008-r2,mirroring,database-management,filegroup,Sql Server 2008 R2,Mirroring,Database Management,Filegroup,假设我有一个大型生产镜像1TB DB,驻留在一个MDF设备上,我想将其拆分为5200 Gig设备。 我希望这样做不会中断生产 我想我可以破坏镜像,并使用恢复过程创建镜像,以实现快速拆分到多个设备,而不会中断生产。这样做两次可以让我在几个小时内完成 有人这样做过吗?不管怎么说,这是我们镜像的首选方法吗 我的其他选择有哪些,利弊?哥查斯呢 此外,我还记得另一个更为有机的过程,在这个过程中,人们会创建5个新设备,然后随着时间的推移,让对象移动到新设备上。我不确定这个过程,但我似乎记得它正在讨论中。听起

假设我有一个大型生产镜像1TB DB,驻留在一个MDF设备上,我想将其拆分为5200 Gig设备。 我希望这样做不会中断生产

我想我可以破坏镜像,并使用恢复过程创建镜像,以实现快速拆分到多个设备,而不会中断生产。这样做两次可以让我在几个小时内完成

有人这样做过吗?不管怎么说,这是我们镜像的首选方法吗

我的其他选择有哪些,利弊?哥查斯呢

此外,我还记得另一个更为有机的过程,在这个过程中,人们会创建5个新设备,然后随着时间的推移,让对象移动到新设备上。我不确定这个过程,但我似乎记得它正在讨论中。听起来这可能需要很长时间,有时可能会导致一些时钟

谢谢


…Ray

这并不像最初看起来的那么简单,原因是仅仅将文件添加到SQL server是不够的,因为即使要添加4个新文件,它们都将是空的空间,一个文件中包含1Tb的数据,还有4个空文件,当SQLServer对文件使用比例填充方法时,最终会填充,但大多数查询仍会命中单个文件

我认为你这样做是为了提高绩效?如果是这样,则需要将数据移动到不同的文件中,以便实际分割数据。是否可以在线执行此操作取决于是否运行Enterprise Edition(因为这允许您在线重建索引)

移动表(或者更准确地说,移动聚集索引,在所有意图和目的上与表几乎相同)的一种简单方法是使用新数据文件添加新文件组,然后重新生成聚集索引,指定新文件组,您可以使用以下方法执行此操作:

CREATE CLUSTERED INDEX Existing_Index_Name ON schema_name.table_name(column_name) 
WITH(DROP_EXISTING=ON,Online=ON) on [new_filegroup_name]
GO
这段代码将在新文件组上创建新的索引,去掉旧的索引,如果您运行的是enterprise edition,它将在不阻塞用户的情况下完成所有工作

有关在文件组之间移动数据的更多方法,请参见以下链接:

您还应该考虑对表进行分区,以帮助提高性能:


关于镜像设置,您应该断开镜像,然后在主镜像上添加所有文件/文件组,然后在文件组之间移动数据,然后在主镜像上备份修改后的数据库,在镜像上还原(这样所有文件在镜像上的设置都相同)然后重新设置镜像。

您最好访问serverfault.com