2012-03-09 48 views
0

我有一個在64位Amazon EC2實例(啓用日誌功能)上運行的MongoDB服務器。昨天我更新了一些文件並刷新了網頁,以確保它反映了這些變化。它做了。 但是今天我看到,不僅昨天的變化消失了。我失去了一週的更新! 爲什麼會這樣並且有可能恢復丟失的數據?爲什麼數據庫更改可能會消失?

也許我做這些改變的方式有問題嗎?

public function edit_app() 
{ 
    $query = array('_id' => $_POST['id']); 
    $apps = $this->mongo->db->apps; 
    if ($app = $apps->findOne($query)) { 
     $app['title'] = $_POST['title']; 
     $app['version'] = $_POST['version']; 
     $app['author'] = $_POST['author']; 
     ... 
     $apps->save($app); 
    } 
} 

回答

0

我很抱歉,我一定是失明的。在edit_app()函數中出現錯誤:

$app['visible'] = $_POST['visible'];  // was 
$app['visible'] = isset($_POST['visible']); // fixed 
1

基於您提供的信息,沒有什麼可以明確說出的。不過,我可以提供一些線索帶你在正確的方向:

  1. 想想是否存在一種可能性,即應用程序 過程可以一直持有存儲器(您的更新之前加載 )一些文件和和再在更新後保存?
  2. 服務器是否是副本集的一部分?如果是這樣, 複製品的所有成員是否設置爲主服務器健康並正確選擇?
+1

要添加到答覆中,還請檢查日誌。日誌是診斷可能出錯的一個很好的起點。 – Sid 2012-03-09 16:23:14

+0

@Siddharth Singh謝謝。我檢查了日誌,但沒有什麼特別的地方:(只有很多記錄像「[clientcursormon] mem(MB)res:16 virt:820 mapped:80」和我通過SSH隧道連接 – Vitaly 2012-03-09 20:37:52

+0

@ zooone9243這不是我通過網站的管理面板(都是用PHP編寫的)進行了更改,可能是因爲我已連接到MongoVue中的數據庫,並且在管理面板中進行了更改之後,我切換到了MongoVue,並在此後進行了一些更改但這並不能解釋爲什麼我失去了一週的變化,而不是最新的變化,這真的很奇怪 – Vitaly 2012-03-09 20:45:56

相關問題