CouchDB kopie zapasowe i klonowanie bazy danych

Szukamy CouchdDB dla aplikacji CMS-owskiej. Jakie są typowe wzorce, najlepsze praktyki i porady dotyczące przepływu pracy dotyczące tworzenia kopii zapasowych naszej bazy danych produkcyjnych?

Szczególnie interesuje mnie proces klonowania bazy danych do wykorzystania w rozwoju i testowaniu.

Czy wystarczy po prostu skopiować pliki na dysku spod działającej instancji? Czy można sklonować dane bazy danych między dwoma działającymi na żywo instancjami?

Porady i opis techniki, których używasz, będą bardzo doceniane.

Author: Peter Mortensen, 2008-09-23

5 answers

CouchDB obsługuje replikację, więc po prostu Replikuj do innej instancji CouchDB i wykonaj kopię zapasową stamtąd, unikając niepokojących miejsc, w których zapisujesz zmiany.

Http://wiki.apache.org/couchdb/FrequentlyAskedQuestions#how_replication

Dosłownie wysyłasz żądanie POST do swojej instancji CouchDB, informując ją, gdzie ma się replikować, i działa (tm)

EDIT: możesz po prostu wypisać pliki spod działającej bazy danych, o ile akceptujesz trafienie wejścia / Wyjścia.

 31
Author: Marc Gear,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-24 11:54:37

Kolejną rzeczą, o której należy pamiętać, jest to, że można kopiować pliki spod aktywnej bazy danych. Biorąc pod uwagę, że możesz mieć prawdopodobnie dużą bazę danych, możesz po prostu skopiować ją z maszyny testowej / produkcyjnej na inną maszynę.

W zależności od obciążenia maszyn zapisem, może być wskazane uruchomienie replikacji po skopiowaniu, aby zebrać wszelkie zapisy, które były w toku, gdy plik został skopiowany. Ale replikacja kilku rekordów i tak byłaby szybsza niż replikacja całego baza danych.

W celach informacyjnych patrz: http://wiki.apache.org/couchdb/FilesystemBackups

 37
Author: Paul J. Davis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-23 17:33:44

CouchDB działa również bardzo dobrze z migawkami systemu plików oferowanymi przez nowoczesne systemy plików, takie jak ZFS. Ponieważ plik bazy danych jest zawsze w stanie spójnym, możesz zrobić zrzut pliku w dowolnym momencie bez osłabiania gwarancji integralności dostarczanych przez CouchDB.

Powoduje to prawie brak narzutu We / Wy. Jeśli np. przypadkowo usunąłeś dokument z bazy danych, możesz przenieść migawkę na inny komputer i wyodrębnić tam brakujące dane. Możesz nawet być w stanie replikować z powrotem do bazy danych produkcji, ale nigdy nie próbowałem tego.

Ale zawsze upewnij się, że używasz dokładnie tych samych wersji couchdb podczas poruszania się po plikach bazy danych. Format na dysku wciąż ewoluuje w niezgodny sposób.

 7
Author: max,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-03 22:11:49

Chciałbym poprzeć sugestię Paula: po prostu cp Twoje pliki bazy danych spod serwera aktywnego, jeśli możesz przyjąć obciążenie We / Wy. Jeśli i tak wykonasz replikowaną kopię, możesz również bezpiecznie skopiować z niej, bez wpływu na wydajność mistrza.

 6
Author: Jan Lehnardt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-03 22:09:41

Replikacja CouchDB jest okropna. Zazwyczaj robię tar co jest dużo lepsze.

  1. Zatrzymaj usługę CouchDB na serwerze źródłowym
  2. tar.gz pliki danych.
  3. na moich serwerach Ubuntu jest to zazwyczaj w /var / lib/couchdb (czasami w podkatalogu opartym na wersji Couch). Jeśli nie masz pewności, gdzie znajdują się te pliki, możesz znaleźć ścieżkę w plikach konfiguracyjnych CouchDb lub często wykonując ps-A w, aby zobaczyć pełną komendę, która rozpoczęła CouchDb. Upewnij się, że pobranie podkatalogów zaczynających się od . podczas archiwizacji plików.
  4. Uruchom ponownie usługę CouchDB na hoście źródłowym.
  5. Smoła.plik gz do hosta docelowego i rozpakować je w tymczasowej lokalizacji tam.
  6. chown pliki do użytkownika i grupy, która posiada pliki już w katalogu bazy danych w miejscu docelowym. Jest to prawdopodobnie couchdb:couchdb. Jest to ważne, ponieważ zepsucie uprawnień do plików jest jedynym sposobem, w jaki udało mi się to zepsuć proces jak dotąd.
  7. Zatrzymaj CouchDB na Hostie docelowym.
  8. cp pliki do katalogu docelowego. Ponownie na moich hostach jest to / var / lib / couchdb.
  9. Sprawdź dwukrotnie uprawnienia plików w ich nowym domu.
  10. Uruchom ponownie CouchDB na komputerze docelowym.
 0
Author: coffeequant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-03 22:15:42