我可以同时在不同的sql实例上附加数据库吗?

时间:2009-05-27 08:58:40

标签: sql-server sql-server-2008

我将sql数据库存储在共享的netwrok驱动器上,经过一组配置后,我可以通过sql server 2008实例上的网络附加此数据库。

但是我想在包含不同sql实例的不同机器上附加相同的数据库(我认为逻辑上没有数据损坏,因为我希望它只能读取)。

所以我的问题是我可以同时将数据库附加到多个sql实例吗? 怎么样?

我这样做是为了使用集中式数据库?如果我不能,那么支持不同机器上不同sql实例之间数据库共享的另一种解决方案是什么?

(我知道有SAN存储但对我来说成本很高,我认为光纤/ SCSI连接不支持共享)

3 个答案:

答案 0 :(得分:2)

如果两台服务器都在线,我认为您不能将一个db文件附加到多个服务器或服务器实例中。

如果您的目标是在另一台服务器上拥有数据库的复制副本,请查看SQL Server replication。根据您的要求,您可以使用多种类型的复制。另一个选项是Database Mirroring,它允许您在另一台服务器上拥有数据库的镜像副本,但我不认为它真的符合您的需要,因为只镜像可以访问当前主体服务器中的数据库。

镜像主要用于高可用性和灾难恢复方案。在SQL Server Replication中,您可以同时使用两个服务器,甚至可以更新数据库的两个副本,并在两个服务器上同步它们。

答案 1 :(得分:1)

您最接近的是:Scalable Shared Databases

否则,这是一个简单的否定。每个实例都想要专门使用这些文件。

在网络共享上使用文件时也存在问题:磁盘应该在设备管理器(本地,NAS或SAN)中是本地的。您可以在UNC路径上附加文件,但绝对无法在UNC路径上创建新的DB(没有一些跟踪标记技巧)。

答案 2 :(得分:0)

我不清楚为什么要这样做:为什么不通过常规连接附加到一个实例并让人们访问它?如果需要,您可以设置一个用户,该用户只能访问该数据库,并且只被授予表和视图的SELECT权限(谨防存储过程的权限)并让他们离开,而不会冒一个人访问未经授权的数据库的风险,对此实施非法操作,或者一个实例的某些问题会破坏所有数据库。
关于这样做可能带来的风险我会三思而后行

相关问题