2011-05-28 54 views
0

我的數據庫被服務器的自動命令定期「刪除」(因爲表太大)。會發生什麼情況是某個表中的所有數據變得無法訪問,例如選擇。但是如果我在桌面上進行「修復」,所有數據都會回來。我想阻止這種無稽之談,但是我找不到這樣做的命令。任何幫助?什麼mysql命令使所有數據無法訪問?

編輯:我應該注意到數據庫是在我無法訪問的外部機器上。

我現在試圖做一個「選擇」,當數據庫在這個好奇的狀態。表格說它有0個入口,但佔用2.5GB的存儲空間。當我選擇所有我有一個元組,沒有錯誤。

+0

有多大?也許你應該重新審視你的桌子的設計。而不是刪除,歸檔你的數據 – Ibu 2011-05-28 22:11:33

+0

在這種情況下,你試圖選擇數據時會得到什麼錯誤? – 2011-05-28 22:12:13

+0

我沒有得到任何錯誤,數據只是「消失」了,但當我修復時回來。桌子有一些2GB的大。 – Automatico 2011-05-28 22:13:15

回答

4

它可能是你的數據庫變得腐敗不知何故。沒有這樣的命令(我希望)。

+0

因爲這是定期發生的,所以我將其棄之不用,而且在這個問題的兩次發生之間我沒有對數據庫進行任何更改。 – Automatico 2011-05-28 22:14:23

+0

是mysql進程崩潰了嗎? – 2011-05-28 22:14:55

+0

不是我能看到的。有沒有辦法讓歷史出來? – Automatico 2011-05-28 22:18:24

0

幫你自己一個忙,並且改變你的每張桌子,這樣他們就用InnoDB engine代替MyISAM。它仍然是MySQL,但它不太容易發生數據損壞。

如果更改DB是一個選項,請使用PostgreSQL來代替。

+0

InnoDB不支持全文索引,因此我無法使用它。 – Automatico 2011-05-29 07:58:58

+0

在這種情況下,你可以做的事情不多...... MyISAM非常容易出現數據損壞,除非在完全日誌文件系統上運行。 – 2011-05-29 09:24:39

相關問題