Cum să faceți backup sau restaurați datele existente Redmine

8/31/2020
11 minutes
Lukáš Beňa -> Lukáš Beňa

Succesul fiecărei soluții de management al proiectelor se bazează pe un singur lucru simplu - datele. Știi deja cum să faci backup sau să restaurezi datele existente din Redmine? Dacă nu, iată cum poți face acest lucru pentru fiecare bază de date.

Back-up-urile Redmine trebuie să includă:

  • Baza de date
  • Atașamente (depuse în directorul fișierelor sub directorul de instalare implicit)


Realizarea unei copii de siguranță a bazei de date


MySQL

MySQL, cel mai popular sistem de bază de date SQL Open Source, este unic, distribuit și susținut de Oracle Corporation. Site-ul MySQL oferă cele mai recente informații despre software-ul MySQL. MySQL este un dispozitiv de gestionare.

O bază de date este o serie structurată de statistici. Poate fi orice, de la o simplă listă de cumpărături la o galerie de imagini sau cantități considerabile de date într-o rețea de companii. Pentru a adăuga, accesa și procesa datele stocate într-o bază de date de calculator, aveți nevoie de un dispozitiv de control al bazei de date împreună cu serverul MySQL. Deoarece calculatoarele sunt excelente în manipularea unor cantități mari de date, sistemele de gestionare joacă un rol central în calcul, ca utilitare independente sau ca componente ale altor aplicații. Bazele de date MySQL sunt relaționale.

O bază de date electronică stochează datele în tabele separate în loc să pună toate datele într-un singur depozit mare. Structurile bazei de date sunt organizate în documente fizice optimizate pentru viteză. Modelul logic, cu obiecte precum baze de date, tabele, vederi, rânduri și coloane, oferă un mediu de programare flexibil. Ați stabilit reguli care guvernează relațiile dintre unul dintre diferitele câmpuri de date, cum ar fi unu-la-unu, unu-la-multe, unic, obligatoriu sau opțional și "sugestii" între tabele diferite.

Baza de date respectă aceste reguli și, cu o bază de date foarte bine proiectată, aplicația dvs. nu va fi niciodată inconsistentă, duplicată, orfană, învechită sau cu date lipsă. Componenta SQL a "MySQL" înseamnă "Structured Query Language". SQL este cel mai comun limbaj standardizat care trebuie să aibă acces la baze de date. În funcție de mediul dvs. de programare, puteți introduce SQL direct (de exemplu, pentru a obține rapoarte), încorporați declarații SQL în codul scris în alt limbaj sau utilizați o API specifică limbajului care ascunde sintaxa SQL. SQL este descris de standardul ANSI/ISO SQL.

Software-ul MySQL este open source. Open Source înseamnă că oricine poate utiliza și modifica software-ul. Orice persoană poate descărca software-ul MySQL de pe web și îl poate utiliza fără să plătească nimic. Dacă doriți, puteți arunca o privire la codul sursă și îl puteți modifica pentru a se potrivi nevoilor dvs.

Software-ul MySQL utilizează GPL (GNU General Public License), pentru a defini ce puteți și ce nu puteți face cu software-ul în situații specifice. Dacă vă simțiți incomod cu GPL sau doriți să încorporați codul MySQL într-o aplicație comercială, puteți achiziționa o versiune cu licență comercială de la noi.

Vedeți Prezentarea generală a licențierii MySQL pentru mai multe informații. Serverul de baze de date MySQL poate fi foarte rapid, fiabil, scalabil și ușor de utilizat. Dacă asta căutați, trebuie să încercați. Serverul MySQL poate rula ușor pe un laptop, împreună cu alte aplicații, servere web și așa mai departe, necesitând foarte puțină atenție.

Dacă dedicați un sistem întreg MySQL-ului, puteți modifica setările pentru a profita de toată memoria, puterea CPU și capacitatea I/O disponibile. MySQL poate fi, de asemenea, scalat la clustere de mașini, interconectate. Serverul MySQL a fost dezvoltat inițial pentru a manipula baze de date mari mult mai rapid decât soluțiile existente și a fost utilizat cu succes în medii de producție extrem de solicitante timp de mai mulți ani. Deși în dezvoltare continuă, serverul MySQL oferă acum o colecție bogată și valoroasă de funcții.

Conectivitatea, viteza și securitatea sa fac ca serverul MySQL să fie extrem de potrivit pentru accesarea bazelor de date pe web. Serverul MySQL rulează în operații client/server sau încorporate. Software-ul de bază de date MySQL este un sistem client/server care are un server SQL cu mai multe fire care acceptă diferite backend-uri, numeroase aplicații și biblioteci de utilizator, instrumente administrative și o varietate largă de interfețe de programare a aplicațiilor (API-uri).

Este foarte probabil ca software-ul sau limbajul dvs. preferat să accepte serverul de baze de date MySQL. Pronunțarea "MySQL" este "My Ess Que Ell" (nu "my sequel"), dar este în regulă dacă o pronunțați ca "my sequel" sau în alt mod localizat.

Iată cum puteți realiza o copie de siguranță a datelor pentru My SQL:

Comanda mysqldump poate fi utilizată pentru a realiza o copie de siguranță a conținutului bazei de date MySQL într-un fișier text. De exemplu:

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

Găsiți aceste <username>, <password>, <hostname> și <redmine_database> în fișierul config/database.yml. <host_name> poate să nu fie necesar în funcție de instalarea bazei de date.


PostgreSQL

PostgreSQL este un sistem de management open-source de clasă enterprise. Suportă atât SQL pentru interogări relaționale, cât și JSON pentru interogări non-relaționale. Este susținut de o comunitate experimentată de dezvoltatori care au făcut contribuții extraordinare pentru a-l transforma într-un sistem DBMS extrem de fiabil. PostgreSQL suportă tipuri de date avansate și optimizează performanța, oferind cele mai bune caracteristici disponibile în bazele de date comerciale scumpe, cum ar fi Oracle și SQL Server.

MySQL sau PostgreSQL?

Proiectul MySQL și-a făcut codul sursă disponibil în termenii Licenței GNU și a altor acorduri proprietare. PostgreSQL este lansat sub Licența PostgreSQL. Acum este deținut de Oracle Corporation și oferă mai multe ediții plătite. Este un software gratuit și open-source. Acest lucru înseamnă că nu va trebui să plătiți niciodată nimic pentru acest serviciu.

MySQL este compatibil cu ACID doar atunci când se utilizează motoarele de stocare NDB și InnoDB Cluster. PostgreSQL este complet compatibil cu ACID. MySQL funcționează bine în structurile OLAP și OLTP unde este importantă doar viteza de citire. Performanța PostgreSQL funcționează cel mai bine în sistemele care optează pentru executarea de interogări complexe.

MySQL este fiabil și funcționează bine cu aplicațiile BI (Business Intelligence), care sunt greu de citit. PostgreSQL funcționează bine cu aplicațiile BI. Cu toate acestea, este mai potrivit pentru aplicațiile de data warehousing și analiză a datelor care necesită viteze rapide de citire-scriere.

Iată cum puteți face backup pentru PostgreSQL:

  1. Conectați-vă ca utilizatorul postgres:

    su - postgres

  2. Utilizați comanda pg_dump pentru a face backup la toate conținuturile unei baze de date PostgreSQL într-un fișier text:

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

Găsiți aceste <username> și <redmine_database> în fișierul config/database.yml. Comanda pg_dump vă va ajuta să accesați parola atunci când este necesar.


SQLite

SQLite este o bibliotecă software care oferă un sistem de management al bazelor de date electronice. Lite din SQLite înseamnă ușor în ceea ce privește configurarea, administrarea bazei de date și resursele necesare. SQLite are următoarele caracteristici remarcabile: autoconținut, fără server, zero-configurare, tranzacțional. Fără server În mod normal, un RDBMS împreună cu MySQL, PostgreSQL, etc., necesită un proces de server separat pentru a funcționa.

Aplicațiile care trebuie să acceseze serverul de baze de date folosesc protocolul TCP/IP pentru a trimite și primi cereri. Acest lucru se numește arhitectură client/server. Arhitectura client-server RDBMS SQLite nu funcționează în acest fel. SQLite nu necesită un server pentru a funcționa. Baza de date SQLite este integrată cu aplicația care accesează baza de date.

Aplicațiile interacționează cu baza de date SQLite pentru a citi și scrie direct din fișierele bazei de date stocate pe disc. Ce este SQLite autoconținut SQLite este un mod autoconținut care necesită asistență minimă din partea sistemului de operare sau a bibliotecii externe. Acest lucru face ca SQLite să fie util în orice situație, în special în dispozitivele integrate, cum ar fi iPhone, telefoane Android, console de jocuri, playere media portabile, etc. SQLite a fost dezvoltat folosind ANSI-C.

Codul sursă este disponibil sub forma unui fișier mare sqlite3.C și a fișierului său header sqlite3.H. Dacă doriți să dezvoltați o aplicație care utilizează SQLite, trebuie doar să plasați aceste fișiere în proiectul dvs. și să le asamblați împreună cu codul dvs. Zero-configurare datorită arhitecturii fără server, nu trebuie să "instalați" SQLite înainte de a-l utiliza. Nu există niciun proces de server care trebuie configurat, pornit și oprit. SQLite nu utilizează fișiere de configurare. Toate tranzacțiile din SQLite sunt complet compatibile cu ACID.

Modificările sale sunt atomice, consistente, izolate și durabile. Cu alte cuvinte, toate modificările dintr-o tranzacție se întâmplă complet sau deloc, chiar și atunci când apare o situație neașteptată, cum ar fi o cădere a aplicației, o întrerupere de energie sau o cădere a sistemului de operare. Caracteristicile distinctive ale SQLite SQLite utilizează tipuri de date dinamice pentru tabele. Acest lucru înseamnă că puteți stoca orice valoare în orice coloană, indiferent de tipul de date. SQLite permite unei conexiuni de bază de date să acceseze în mod corespunzător un singur fișier de bază de date simultan.

Aceasta aduce multe caracteristici plăcute, cum ar fi unirea tabelelor în baze de date diferite sau copierea datelor între bazele de date într-o singură comandă. SQLite poate crea baze de date în memorie care pot fi foarte rapide de lucrat. Bazele de date SQLite sunt toate conținute într-un fișier, astfel încât le puteți face backup copiind fișierul în altă locație. Puteți determina numele fișierului bazei de date SQLite privind config/database.yml.


Backup pentru atașamente

Fiecare încărcare de fișier este stocată în attachments_storage_path (implicit în directorul files/). Puteți copia conținutul din acest director într-o altă locație pentru a face backup rapid.

ATENȚIE: attachments_storage_path poate indica un director diferit de files/. Asigurați-vă că verificați setarea din config/configuration.yml pentru a evita efectuarea unui backup inutil.


Exemplu de script de backup

Aici poate fi un script shell simplu care poate fi utilizat pentru backup-uri zilnice (presupunând că utilizați o bază de date MySQL):

# Bază de date

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

# Atașamente

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


Restaurare bază de date


MySQL

De exemplu, dacă aveți un fișier de tip dump gzip cu numele 2018-07-30.gz, atunci baza de date poate fi recuperată cu următoarea comandă:

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

Introduceți parola.


PostgreSQL

Când opțiunea -Fc a comenzii pg_dump este utilizată așa cum este în exemplul de mai sus, atunci trebuie să utilizați comanda pg_restore:

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

Un fișier text poate fi de asemenea restaurat cu psql:

psql <redmine_database> < <infile>


SQLite

Copiați fișierul bazei de date din locația backup-ului.

Actualizarea finală Redmine? Ușoară.

Obțineți toate instrumentele puternice pentru planificarea, gestionarea și controlul perfect al proiectelor într-un singur software.

Încercați Easy Redmine în 30 de zile de încercare gratuită

Funcții complete, protejat SSL, backup-uri zilnice, în geolocalizarea dvs.