Redis: резервное копирование dump.rdb
Контекст
У меня есть работающий redis-сервер.
Я хочу сделать резервную копию.
Идея:
Я хочу сделать следующее:
cp dump.rdb ~/some-other-location/06-24-2012.rdb ?
Концерн
Я не вижу ничего, что promises меня, что dump.rdb всегда является постоянным хранилищем базы данных. (I.e. мне кажется, что, когда я выполняю cp, redis находится на полпути через некоторое количество данных, и, следовательно, dump.rdb не находится в согласованном состоянии.)
Проблема:
Это плохо, потому что теперь мне нужно закрыть redis db, чтобы сделать копию dump.rdb
Вопрос:
Каков правильный способ, когда redis-server запущен, чтобы сделать резервную копию базы данных в реальном времени? И какая часть руководства promises меня, что этот метод создает базу данных, которая находится в согласованном (не наполовину написанном) состоянии.
Спасибо!
Ответы
Ответ 1
Из http://redis.io/topics/persistence
Redis очень удобен для резервного копирования данных, так как вы можете копировать RDB файлы во время работы базы данных: RDB никогда не изменяется после создания, и, хотя он создается, он использует временное имя и переименовывается в конечный пункт атомарного использования с помощью переименования ( 2) только после завершения нового моментального снимка.
Итак, правильный способ - просто скопировать dump.rdb в резервное хранилище.
Ответ 2
Если вы используете Amazon S3, очень просто создать резервную базу данных Redis с помощью инструмента s3cmd.
s3cmd:
http://s3tools.org/s3cmd
Учебник:
http://guchex.com/viniciusfbm/post/50/how-to-backup-redis-database-encrypted-to-s3-via-command-line-ubuntu