【问题标题】:can I attach database on different sql instances at the same time?我可以同时在不同的 sql 实例上附加数据库吗?
【发布时间】:2023-03-31 19:33:01
【问题描述】:

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

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

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

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

(我知道有 SAN 存储,但对我来说很贵,而且我认为 Fiber/SCSI 连接不支持共享)

【问题讨论】:

    标签: sql-server sql-server-2008


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      你会得到最接近的是:Scalable Shared Databases

      否则,这是一个简单的不。每个实例都想独占使用这些文件。

      在网络共享上使用文件也存在问题:磁盘应位于设备管理器中的本地(本地、NAS 或 SAN)。您也许可以在 UNC 路径上附加文件,但您绝对不能在 UNC 路径上创建新的数据库(没有一些跟踪标志技巧)。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 我想做一个可扩展的共享数据库
        猜你喜欢
        • 2021-09-16
        • 1970-01-01
        • 1970-01-01
        • 2021-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-20
        相关资源
        最近更新 更多