Резервное копирование CouchDB
CouchDB может создавать во время работы файлы трёх разных типов:
Файлы баз данных (включая вторичные индексы)
Файлы конфигурации (
*.ini)Файлы журналов (если настроена запись журналов на диск)
Ниже описаны стратегии для обеспечения согласованности резервных копий всех этих файлов.
Резервные копии баз данных
Самый простой способ создать резервную копию CouchDB — использовать репликацию CouchDB на другую установку CouchDB. В зависимости от ваших потребностей можно выбрать обычную (однократную) или непрерывную репликацию.
Однако вы также можете в любое время без проблем скопировать сами файлы .couch из каталога данных CouchDB (по умолчанию — data/). Добавочный формат хранения CouchDB как для баз данных, так и для вторичных индексов гарантирует, что это сработает без проблем.
Чтобы обеспечить надёжность резервных копий, рекомендуется сначала создавать резервные копии вторичных индексов (хранящихся в data/.shards), а затем — резервные копии основных файлов базы данных (хранящихся в data/shards, а также системных баз данных на уровне родительского каталога data/). Это связано с тем, что CouchDB автоматически обрабатывает представления и вторичные индексы, которые немного устарели, обновляя их при следующем чтении. Однако более новые, чем связанные с ними базы данных, представления или вторичные индексы приведут к полному перестроению индекса. Эта операция может быть весьма затратной и длительной, а также помешать быстрому восстановлению после аварии.
В поддерживаемых операционных системах и средах хранения можно также использовать снимки хранилища. Их преимущество в том, что они создаются почти мгновенно при работе с блочными системами хранения, такими как ZFS, LVM или Amazon EBS. При создании снимков на уровне блочного хранилища при необходимости заморозьте файловую систему с помощью системной утилиты, такой как fsfreeze в Linux. Если вы не уверены, обратитесь к документации операционной системы или поставщика облачных услуг за дополнительной информацией.
Резервные копии конфигурации
Система конфигурации CouchDB хранит данные в файлах .ini в каталоге конфигурации (по умолчанию — etc/). Если во время работы в конфигурацию вносятся изменения, они записываются в последний файл в цепочке конфигурации.
Чтобы после восстановления из резервной копии конфигурация оставалась согласованной, просто создайте резервную копию всего каталога etc/.
Если конфигурация не изменяется во время работы через HTTP API, а все файлы конфигурации управляются системой управления конфигурациями (например, Ansible или Chef), создавать резервную копию каталога конфигурации не нужно.
Резервные копии журналов
Если настроена запись журналов в файл, возможно, вам потребуется создавать резервные копии файлов журналов CouchDB. Для этих файлов подойдёт любое решение для резервного копирования.
В UNIX-подобных системах при использовании программ ротации журналов необходимо применять подход «копирование с последующей очисткой». После создания копии исходный файл журнала очищается до нулевого размера на месте. CouchDB не реагирует на сигналы, которые могли бы сообщить ей о необходимости закрыть файл журнала и создать новый. Поэтому, а также из-за различий в работе файловых дескрипторов, в Microsoft Windows нет простого решения для ротации журналов, кроме периодического перезапуска процесса CouchDB.
Copyright © 2025 The Apache Software Foundation — Licensed under the Apache License 2.0
https://docs.couchdb.org/en/3.5.1/maintenance/backups.html