Jak wykonać kopię zapasową lub przywrócić istniejące dane Redmine.

8/31/2020
10 minutes
Lukáš Beňa -> Łukasz Beňa

Sukces każdego rozwiązania zarządzania projektem opiera się na jednej prostej rzeczy - danych. Czy już wiesz, jak zrobić kopię zapasową lub przywrócić istniejące dane z Redmine? Jeśli nie, oto jak możesz to zrobić dla każdej bazy danych.

Kopie zapasowe Redmine muszą zawierać:

  • Bazę danych
  • Załączniki (umieszczone w katalogu plików poniżej katalogu instalacyjnego domyślnie)


Kopie zapasowe bazy danych


MySQL

MySQL, najpopularniejszy system baz danych SQL typu Open Source, jest unikalny, rozproszony i wspierany przez firmę Oracle Corporation. Strona internetowa MySQL oferuje najnowsze informacje na temat oprogramowania MySQL. MySQL to narzędzie do zarządzania.

Baza danych to uporządkowany zbiór danych. Może to być cokolwiek, od prostego listy zakupów po galerię zdjęć lub ogromne ilości danych w sieci firmowej. Aby dodać, uzyskać dostęp i przetwarzać dane przechowywane w bazie danych komputera, potrzebujesz narzędzia do zarządzania bazą danych wraz z serwerem MySQL. Ponieważ komputery są świetne w obsłudze dużych ilości danych, systemy zarządzania odgrywają centralną rolę w informatyce, jako samodzielne narzędzia lub jako składniki innych aplikacji. Bazy danych MySQL są relacyjne.

Elektroniczna baza danych przechowuje dane w oddzielnych tabelach zamiast umieszczać wszystkie dane w jednym dużym magazynie. Struktury bazy danych są zorganizowane w fizyczne pliki zoptymalizowane pod kątem szybkości. Model logiczny, z elementami takimi jak bazy danych, tabele, widoki, wiersze i kolumny, zapewnia elastyczne środowisko programistyczne. Ustanawiasz zasady dotyczące relacji między różnymi polami danych, takimi jak jeden do jednego, jeden do wielu, unikalne, wymagane lub opcjonalne oraz "wskazówki" między różnymi tabelami.

Baza danych wspiera te zasady, a w przypadku bardzo dobrze zaprojektowanej bazy danych Twoja aplikacja nigdy nie będzie zawierać niezgodnych, zduplikowanych, osieroconych, przestarzałych lub brakujących danych. Składnik SQL w "MySQL" oznacza "Structured Query Language". SQL to najczęściej stosowany standaryzowany język służący do uzyskiwania dostępu do baz danych. W zależności od środowiska programistycznego, możesz wprowadzać SQL bezpośrednio (na przykład do uzyskiwania raportów), osadzać instrukcje SQL w kodzie napisanym w innym języku lub używać specyficznego dla języka API, które ukrywa składnię SQL. SQL jest opisywany przez standard ANSI/ISO SQL.

Oprogramowanie MySQL jest oprogramowaniem typu open source. Open Source oznacza, że każdy może używać i modyfikować oprogramowanie. Każdy może pobrać oprogramowanie MySQL z Internetu i używać go bezpłatnie. Jeśli chcesz, możesz przejrzeć kod źródłowy i zmienić go, aby dostosować go do swoich potrzeb.

Oprogramowanie MySQL wykorzystuje licencję GPL (GNU General Public License), aby określić, co możesz i czego nie możesz robić z oprogramowaniem w określonych sytuacjach. Jeśli odczuwasz dyskomfort związany z GPL lub chcesz osadzić kod MySQL w aplikacji komercyjnej, możesz kupić od nas wersję z licencją komercyjną.

Zobacz Przegląd licencjonowania MySQL, aby uzyskać więcej informacji. Serwer bazy danych MySQL jest bardzo szybki, niezawodny, skalowalny i łatwy w użyciu. Jeśli tego szukasz, warto go wypróbować. Serwer MySQL może działać bezproblemowo na komputerze, obok innych aplikacji, serwerów internetowych itp., wymagając niewielkiej uwagi.

Jeśli przeznaczysz cały system na MySQL, możesz zmienić ustawienia, aby wykorzystać całą dostępną pamięć, moc obliczeniową i możliwości wejścia/wyjścia. MySQL może również skalować się do klastrów maszyn połączonych w sieć. Serwer MySQL został początkowo opracowany do obsługi dużych baz danych znacznie szybciej niż istniejące rozwiązania i od wielu lat skutecznie wykorzystywany jest w wymagających środowiskach produkcyjnych. Mimo ciągłego rozwoju serwer MySQL oferuje teraz bogatą i wartościową kolekcję funkcji.

Jego łączność, szybkość i bezpieczeństwo sprawiają, że serwer MySQL jest wyjątkowo odpowiedni do uzyskiwania dostępu do baz danych w Internecie. Serwer MySQL działa w trybie klient/serwer lub osadzonym. Oprogramowanie bazy danych MySQL to maszyna klient/serwer, która ma wielowątkowy serwer SQL, który obsługuje różne backendy, wiele różnych aplikacji i bibliotek klienta, narzędzia administracyjne oraz wiele różnych interfejsów programowania aplikacji (API).

Bardzo prawdopodobne jest, że Twoje ulubione oprogramowanie lub język obsługuje serwer bazy danych MySQL. Wymowa "MySQL" to "My Ess Que Ell" (nie "my sequel"), ale nie ma nic złego w tym, jeśli wymawiasz to jako "my sequel" lub w inny sposób zlokalizowany.

Oto jak można wykonać kopię zapasową danych dla MySQL:

Polecenie mysqldump może być użyte do zrobienia kopii zapasowej zawartości bazy danych MySQL do pliku tekstowego. Na przykład:

mysqldump -u <username> -p <password> <database_name> > /path/to/backup/db/redmine.sql

Znajdź te <username>, <password>, <hostname> i <redmine_database> w pliku config/database.yml. <host_name> może nie być potrzebny w zależności od instalacji bazy danych.


PostgreSQL

PostgreSQL to system zarządzania o otwartym kodzie źródłowym klasy przedsiębiorczej. Obsługuje zarówno SQL dla zapytań relacyjnych, jak i JSON dla zapytań nierelacyjnych. Jest wspierany przez doświadczoną społeczność programistów, którzy wnieśli znaczący wkład w jego rozwój, tworząc niezwykle niezawodny system DBMS. PostgreSQL obsługuje zaawansowane typy danych i optymalizację wydajności, oferując najlepsze funkcje dostępne w drogich bazach danych biznesowych, takich jak Oracle i SQL Server.

MySQL czy PostgreSQL?

Projekt MySQL udostępnił swój kod źródłowy na warunkach licencji GNU oraz innych umów własnościowych. PostgreSQL jest wydawany na licencji PostgreSQL. Obecnie jest własnością firmy Oracle Corporation i oferuje kilka płatnych edycji. Jest to darmowe i otwarte oprogramowanie, co oznacza, że nigdy nie trzeba płacić za tę usługę.

MySQL jest zgodny z ACID tylko w przypadku korzystania z silników magazynowania NDB i InnoDB Cluster. PostgreSQL jest w pełni zgodny z ACID. MySQL działa dobrze w strukturach OLAP i OLTP, gdzie ważna jest tylko prędkość odczytu. Wydajność PostgreSQL działa najlepiej w systemach, które wymagają wykonania skomplikowanych zapytań.

MySQL jest niezawodny i dobrze działa z aplikacjami BI (Business Intelligence), które są trudne do odczytania. PostgreSQL działa dobrze z aplikacjami BI. Jednak jest bardziej odpowiedni do hurtowni danych i aplikacji analizy danych, które wymagają szybkich prędkości odczytu i zapisu.

Oto jak można wykonać kopię zapasową danych dla PostgreSQL:

  1. Zaloguj się jako użytkownik postgres:

    su - postgres

  2. Użyj polecenia pg_dump, aby wykonać kopię zapasową wszystkich zawartości bazy danych PostgreSQL do pliku tekstowego:

    pg_dump -U <username> -Fc < database_name> > /path/to/backup/db/redmine.sql

Znajdź te <username> i <redmine_database> w pliku config/database.yml. Polecenie pg_dump pomoże Ci uzyskać dostęp do hasła, gdy będzie wymagane.


SQLite

SQLite to biblioteka programistyczna, która zapewnia elektroniczny system zarządzania bazami danych. Lite w SQLite oznacza lekki w kontekście instalacji, zarządzania bazą danych i wymaganych zasobów. SQLite ma następujące cechy: samodzielność, bezserwerowość, brak konfiguracji, transakcyjność. Bezserwerowość W normalnych warunkach RDBMS, takich jak MySQL, PostgreSQL itp., wymagają oddzielnego procesu serwera do pracy.

Aplikacje, które muszą uzyskać dostęp do serwera bazy danych, korzystają z protokołu TCP/IP do wysyłania i odbierania żądań. Nazywa się to architekturą klient-serwer. RDBMS Architektura klient-serwer SQLite nie działa w ten sposób. SQLite nie wymaga serwera do działania. Baza danych SQLite jest zintegrowana z aplikacją, która uzyskuje do niej dostęp.

Aplikacje komunikują się z bazą danych SQLite, aby odczytywać i zapisywać bezpośrednio z plików bazy danych przechowywanych na dysku. Co to jest SQLite Samodzielny SQLite to samodzielny sposób działania, który wymaga minimalnej pomocy ze strony systemu operacyjnego lub zewnętrznej biblioteki. To sprawia, że SQLite jest przydatny w każdej sytuacji, zwłaszcza w urządzeniach wbudowanych, takich jak iPhones, telefony z systemem Android, konsole do gier, przenośne odtwarzacze multimedialne itp. SQLite został opracowany z wykorzystaniem ANSI-C.

Kod źródłowy jest dostępny jako duży plik sqlite3.C i plik nagłówkowy sqlite3.H. Jeśli chcesz opracować aplikację korzystającą z SQLite, wystarczy umieścić te pliki w projekcie i skompilować je razem z kodem. Brak konfiguracji dzięki architekturze bezserwerowej, nie trzeba „instalować” SQLite przed jego użyciem. Nie ma procesu serwera, który musiałby być skonfigurowany, uruchomiony i zatrzymany. SQLite nie korzysta z żadnych plików konfiguracyjnych. Wszystkie transakcje w SQLite są w pełni zgodne z ACID.

Jego operacje i zmiany są atomowe, spójne, izolowane i trwałe. Innymi słowy, wszystkie zmiany w ramach transakcji następują w całości lub wcale, nawet gdy wystąpi nieoczekiwana sytuacja, takie jak awaria aplikacji, awaria zasilania lub awaria systemu operacyjnego. Unikalne cechy SQLite SQLite używa dynamicznych typów dla tabel. Oznacza to, że można przechowywać dowolną wartość w dowolnej kolumnie, niezależnie od typu danych. SQLite pozwala na jednoczesny dostęp jednego połączenia z bazą danych do jednego pliku bazy danych.

Przynosi to wiele korzystnych funkcji, takich jak łączenie tabel w różnych bazach danych lub kopiowanie danych między bazami danych w jednym poleceniu. SQLite jest w stanie tworzyć bazy danych w pamięci, które działają bardzo szybko. Bazy danych SQLite są zawarte w pliku, więc można je zabezpieczyć, kopiując plik do innego miejsca. Nazwę pliku bazy danych SQLite można znaleźć, przeglądając plik config/database.yml.


Kopia zapasowa załączników

Każde przesłane pliki są przechowywane w attachments_storage_path (domyślnie w katalogu files/). Możesz skopiować zawartość tego katalogu do innego miejsca, aby szybko wykonać kopię zapasową.

OSTRZEŻENIE: attachments_storage_path może wskazywać na inny katalog niż files/. Upewnij się, że przeglądasz ustawienia w pliku config/configuration.yml, aby uniknąć niepotrzebnego tworzenia kopii zapasowej.


Przykładowy skrypt kopii zapasowej

Tutaj może być prosty skrypt powłoki, który może być używany do codziennych kopii zapasowych (przy założeniu, że używasz bazy danych MySQL):

# Baza danych

/usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%Y-%m-%d`.gz

# Załączniki

rsync -a /path/to/redmine/files /path/to/backup/files


Przywróć bazę danych


MySQL

Na przykład, jeśli masz skompresowany plik zrzutu o nazwie 2018-07-30.gz, to bazę danych można przywrócić za pomocą następującej komendy:

gunzip < 2018-07-30.gz | mysql -u <username> -p <redmine_database>

Podaj hasło.


PostgreSQL

Jeśli opcja -Fc polecenia pg_dump jest używana tak, jak w powyższym przykładzie, to należy użyć polecenia pg_restore:

pg_restore -U <username> -d <redmine_database> redmine.sql

Plik tekstowy można również przywrócić za pomocą polecenia psql:

psql <redmine_database> < <infile>


SQLite

Skopiuj plik bazy danych z lokalizacji kopii zapasowej.

Najlepsza aktualizacja Redmine? Łatwa.

Zdobądź wszystkie potężne narzędzia do doskonałego planowania, zarządzania i kontroli projektów w jednym oprogramowaniu.

Wypróbuj Easy Redmine przez 30 dni za darmo

Pełne funkcje, zabezpieczenie SSL, codzienne kopie zapasowe, dostępne w Twojej lokalizacji