一千萬個為什麽

搜索

我可以重命名RDS實例嗎?



我用隨機(無用的)數據庫實例名稱繼承了RDS MySQL實例的集合。

我經常需要挖掘標簽部分來找出它們屬於哪個項目。

我可以在RDS中修改的其中一個設置是數據庫實例標識符

如果我改變這個,除了名稱改變之外還會發生什麽? 它會影響任何人的代碼嗎?或者它是無害的更改?

這些是我無法承受的實時系統。

轉載註明原文: 我可以重命名RDS實例嗎?

一共有 2 個回答:

是的,您可以根據自己的危險重新命名RDS實例。

當您重命名數據庫實例時,數據庫實例的[DNS] endpoint [hostname]會更改,因為該URL包含您分配給數據庫實例的名稱。

     

http://docs.aws.amazon.com/AmazonRDS/最新/ UserGuide/USER_RenameInstance.html

由於這個原因,您的應用程序代碼需要協調配置更改。

請參閱上面的鏈接了解其他含義。這是受支持且通常安全的操作,但僅限於您的維護時段,因為DNS更改並且您的應用程序代碼與新數據庫主機名一起循環,因此必然會造成短暫中斷。

是的,您可以更改RDS實例的名稱,但在實時生產環境中非常不鼓勵這樣做。它會改變EndPoint,這可能會影響其他資源主動訪問RDS服務器(如應用程序服務器)。

這可能需要在您的代碼或配置中進行屬性/ env變量更改(這最好是通過配置管理來發布配置)

為了避免中斷(將來),以及使用較少的RTO進行部署更改,可以在Route53中為您的RDS服務器創建中間DNS條目(CNAME),並在您的應用程序中使用中間URL。當RDS服務器名稱更改時,您可以更改新RDS端點的DNS CNAME。 註意:在名稱更改過程中,您的RDS服務器在幾分鐘內將不可用(使用舊名稱),這可能會導致中斷

這就是說,你已經對你的問題有一個解決方案(改變RDS名稱)。但

針對您的實際問題有多種解決方案(為每個項目管理RDS服務器)

A.盡量避免使用AWS控制臺。為什麽不開始查看AWS CLI(可以獲取標簽)並編寫一個包裝程序Python/Bash腳本來列出所有RDS服務器 - 使用Project Names,可以從此輸出中管理這些服務器,例如拍攝快照,備份等。你也可以使用mysql --login-path(如果你使用mysql進行數據庫管理) https://opensourcedbms.com/dbms/passwordless -authentication-使用-mysql_config_editor與 - MySQL的-5-6/

B.(成本不可知的方法)如果您決定更改RDS名稱,那麽您可以做某些事情,而不會產生任何影響。

B.1 When the next code/config release happens try to bring in the intermediate DNS change into action.

B.2 (Optional) Enable Multi AZ in RDS (HA and twice the price). This will help your application to access the secondary active slave when there is any disruption due to name change. There is an option called Reboot with failover which would reboot the master while failing over to the active secondary 

B.3 Enable replication (read-replica) (this will give you a new RDS end-point). Name the read replica properly with your project names

B.4. Once replication is complete (and during your SLA/maintenance window) promote your read replica (this will break replication) and make the intermediate DNS point to the new RDS (with your proper names)

註意以上所有方法都不能保證數據完整性和因飛行中事務而導致的數據更新不正確。就這樣   總是最好停止所有交易(通過停止所有申請   訪問和部署維護頁面並執行操作)