2017-08-09 49 views
0

我想知道是否可以刪除一個不允許我使用NDB_RESTORE工具執行還原的表片段。MySQL簇7.4.15 - Ndb_Restore由於孤島片段而失敗

當我運行恢復,它引發以下錯誤:

創建表db_died_maestro/def/NDB$FKM_3194_0_mae_tipo_reg_evaluacion失敗:721:帶指定名稱的架構對象已經存在 恢復:無法恢復表:db_died_maestro/def/NDB$FKM_3194_0_mae_tipo_reg_evaluacion ...退出 NDBT_ProgramExit :1 - 失敗

我已經刪除DB_DIED_MAESTRO數據庫以前運行還原,但此片段不會與數據庫一起被刪除。

我有檢查,該片段是在數據庫目錄中使用該querys:

* SELECT * FROM ndbinfo.operations_per_fragment 其中fq_name像 'db_died_maestro%' *

query result

這查詢:

* select * from ndbinfo.memory_per_fragment 其中fq_name如'%FKM_3194_0_mae_tipo_reg_evaluacion'*

query 2 result

該片段在NDB_RESTORE工具的先前運行產生。請幫幫我。

回答

0

該表是外鍵「模擬」表(由名稱NDB $ FKM前綴指示)。

在某些情況下,爲了實現MySQL的foreign_key_checks = 0功能,會暫時創建外鍵模擬表。此功能要求存儲引擎支持無序地創建具有部分定義的外鍵約束的表,這些約束可以在以後隨時啓用(無需重新驗證)。

外鍵模擬表通常完全由MySQL的Ndb存儲引擎組件管理,因此除非出現某種故障或錯誤,否則不應該可見。

如果您可以共享關於在此問題發生之前發生的活動的信息,那麼這將幫助我們瞭解這是怎麼發生的以及是否可以避免。

作爲解決方法,在重新嘗試失敗的恢復之前,應該可以使用ndb_drop_table實用程序刪除此表。您可能不得不從作爲shell命令行參數傳遞的名稱中跳過$。可能您應該檢查類似情況下的任何其他NDB $ FKM表格。

+0

這是一個新的集羣安裝,當我第一次運行NDB_RESTORE工具失敗時,因爲表的數量超過了集羣配置文件中的MaxNoOfTables參數。所以,我必須更改配置文件中的參數,重新啓動羣集,刪除由失敗的恢復創建的所有數據庫並再次嘗試,但後來我得到了我的問題中解釋的錯誤。作爲解決方法,我已經使用「ndbd --initial」選項重新創建數據節點,並且它可以工作,但是我想知道現在是否可以通過執行此解決方法來解決此問題。 –

相關問題