Почему изменения базы данных могут исчезнуть? - PullRequest
0 голосов
/ 09 марта 2012

У меня есть сервер MongoDB, работающий на 64-битном экземпляре Amazon EC2 (ведение журнала включено). Вчера я обновил некоторые документы и обновил веб-страницу, чтобы убедиться, что она отражает изменения. Это сделал. Но сегодня я вижу, что не только вчерашние изменения ушли. Я потерял неделю обновлений! Почему это может быть и возможно ли восстановить потерянные данные?

Может быть, что-то не так в том, как я делаю изменения?

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);
    }
}

Ответы [ 2 ]

1 голос
/ 09 марта 2012

На основании предоставленной вами информации мало что можно сказать окончательно.Однако я могу дать несколько советов, которые помогут вам в правильном направлении:

  1. Подумайте, есть ли вероятность того, что процесс приложения мог удерживать некоторые документы в памяти (загруженные до вашего обновления), иповторно сохранены после обновления?
  2. Является ли серверная часть набора реплик?Если да, все ли члены реплики были исправны с основным сервером и правильно выбраны?
0 голосов
/ 10 марта 2012

Я прошу прощения, я, должно быть, был слепым.Произошла ошибка в функции edit_app ():

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