处理Azure SQL和地理复制上的外部数据源

时间:2017-05-26 00:58:06

标签: azure azure-sql-database geo-replication

以下是我的天蓝色设置

  1. 弹性池主要(30个数据库) - 活动
  2. 弹性池辅助(30个数据库) - 只读地理复制。
  3. WebApp使用主池进行读写操作。 所有报告都在二级上运行。

    我最近不得不在主数据库中添加一个外部数据源,并且跨数据库查询效果很好。

    好处是这个外部数据源配置也被复制并且在次要数据库上运行良好。

    问题:

    Used the following to create external data souce
    
    CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred 
    WITH IDENTITY = 'username', 
    SECRET = 'password'; 
    
    CREATE EXTERNAL DATA SOURCE ElasticDBQueryDataSrc WITH 
    (TYPE = RDBMS, 
    LOCATION = 'primarydbname.database.windows.net', 
    DATABASE_NAME = 'db1', 
    CREDENTIAL = ElasticDBQueryCred, 
    ) ;
    

    当我从我的辅助设备运行查询时运行良好,我担心的是,它使用主db1的外部数据源。

    有没有更好的方法在辅助池中添加外部数据源,以便它可以使用它自己的db1副本?或者azure sql自己处理这个吗?

    赞赏任何反馈或帮助。

    谢谢

1 个答案:

答案 0 :(得分:2)

这是因为主数据库被整体复制,包括存储在那里的元数据。要解决此问题,您可能需要尝试在主服务器上配置两个不同的外部源 - 例如主池本地的ElasticDBQueryDataSrcPrimary和辅助池本地的ElasticDBQueryDataSrcSecondary。您将负责将查询之间的数据源切换为主要和次要。