Sql-Server

連接字元串的 CNAME 別名是個好主意嗎?

  • February 12, 2019

為了非常靈活並更輕鬆地將數據庫移動到不同的伺服器,我們提出了為每個數據庫使用別名的想法。因此,只需更改 DNS 條目,我們就可以將所有查詢路由到不同的數據庫伺服器,而無需更改連接字元串或重新部署相應的客戶端應用程序。

澄清:

每個數據庫我們會有一個別名。因此,如果將數據庫移動到不同的伺服器,只需更改其 DNS 別名。

例如:

  • db1-alias.mydomain.com 指向某個隨機伺服器上的 db1。
  • db2-alias.mydomain.com 點在其他一些隨機伺服器上執行 db2。

所以假設 db1 從 server1 移動到 server2,不需要更改連接字元串。只需更改 DNS 別名條目,轉發到 server2 而不是 server1。

這有什麼已知的缺點嗎?

一個小缺點是,如果您使用加密連接,則需要將主題備用名稱 (SAN) 添加到綁定到 SQL Server 的證書中。如果您有一個託管許多較小應用程序的“共享”伺服器並且您想為每個應用程序設置一個別名,這可能會很痛苦。

如果您為每個應用程序使用單獨的別名,則每次將新應用程序添加到伺服器時都需要生成並安裝新證書。如果您想確保證書中沒有未使用/無效的 SAN,則同樣適用,因為每次刪除應用程序時都需要一個新證書。

引用自:https://dba.stackexchange.com/questions/229387