Come fare il backup o il ripristino dei tuoi dati Redmine esistenti.

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

Il successo di ogni soluzione di gestione progetti si basa su una cosa semplice - i dati. Sai già come fare il backup o il ripristino dei tuoi dati esistenti da Redmine? Se no, ecco come puoi farlo per ogni database.

Le copie di backup di Redmine devono includere:

  • Database
  • Allegati (depositati nella directory dei file sotto la directory di installazione tramite impostazione predefinita)


Backup del database


MySQL

MySQL, il sistema di database SQL Open Source più popolare, è unico, distribuito e supportato da Oracle Corporation. Il sito web di MySQL offre le ultime informazioni sul software MySQL. MySQL è un dispositivo di gestione.

Un database è una serie strutturata di statistiche. Potrebbe essere qualcosa di semplice come una lista della spesa o una galleria di immagini o grandi quantità di dati in una rete aziendale. Per aggiungere, accedere e elaborare i dati memorizzati in un database del computer, è necessario un dispositivo di controllo del database insieme a MySQL Server. Poiché i computer sono eccellenti nell'elaborazione di grandi quantità di dati, i sistemi di gestione svolgono una funzione centrale nel calcolo, come utilità standalone o come componenti di altre applicazioni. I database MySQL sono relazionali.

Un database elettronico memorizza le statistiche in tabelle separate invece di mettere tutte le statistiche in un grande deposito. Le strutture del database sono organizzate in documenti fisici ottimizzati per la velocità. Il modello logico, con oggetti come database, tabelle, visualizzazioni, righe e colonne, fornisce un ambiente di programmazione flessibile. Si stabiliscono regole che governano le relazioni tra campi di dati diversi, come uno a uno, uno a molti, unico, obbligatorio o facoltativo e "puntatori" tra tabelle diverse.

Il database supporta queste regole e con un database molto ben progettato, la tua applicazione non avrà mai dati inconsistenti, duplicati, orfani, obsoleti o mancanti. La parte SQL di "MySQL" sta per "Structured Query Language". SQL è il linguaggio standardizzato più comune per accedere ai database. A seconda del tuo ambiente di programmazione, puoi inserire SQL direttamente (ad esempio, per ottenere rapporti), incorporare istruzioni SQL nel codice scritto in un'altra lingua o utilizzare un'API specifica del linguaggio che nasconde la sintassi SQL. SQL è descritto dall'ANSI/ISO SQL Standard.

Il software MySQL è open source. Open Source significa che chiunque può usare e modificare il software. Chiunque può scaricare il software MySQL dal web e usarlo senza pagare nulla. Se vuoi, puoi guardare il codice sorgente e modificarlo per soddisfare le tue esigenze.

Il software MySQL utilizza la GPL (GNU General Public License) per definire cosa puoi e non puoi fare con il software in situazioni specifiche. Se hai problemi con la GPL o vuoi incorporare il codice MySQL in un'applicazione commerciale, puoi acquistare una versione con licenza commerciale da noi.

Vedi la Panoramica della licenza MySQL per ulteriori informazioni. Il server del database MySQL può essere molto veloce, affidabile, scalabile e facile da usare. Se è quello che stai cercando, devi provarlo. Il server MySQL può essere eseguito facilmente su un computer, insieme alle tue altre applicazioni, server web, ecc., richiedendo pochissima attenzione.

Se dedichi un intero sistema a MySQL, puoi modificare le impostazioni per sfruttare tutta la memoria, la potenza della CPU e la capacità di I/O disponibili. MySQL può anche scalare fino a cluster di macchine, interconnesse tra loro. Il server MySQL è stato sviluppato inizialmente per gestire grandi database molto più velocemente delle soluzioni esistenti ed è stato utilizzato con successo in ambienti di produzione altamente esigenti per diversi anni. Anche se in continuo sviluppo, il server MySQL offre ora una ricca e preziosa raccolta di funzioni.

La sua connettività, velocità e sicurezza rendono il server MySQL eccezionalmente adatto per accedere ai database su Internet. Il software del database MySQL è un sistema client/server che ha un server SQL multithread che supporta diversi back-end, numerose applicazioni e librerie client diverse, strumenti amministrativi e una vasta gamma di interfacce di programmazione delle applicazioni (API).

È molto probabile che il tuo software o linguaggio preferito supporti il server del database MySQL. La pronuncia di "MySQL" è "My Ess Que Ell" (non "my sequel"), ma va bene se lo pronunci come "my sequel" o in qualche altro modo localizzato.

Ecco come eseguire il backup dei dati per MySQL:

Il comando mysqldump può essere utilizzato per eseguire il backup dei contenuti del tuo database MySQL su un file di testo. Ad esempio:

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

Trova questi <username>, <password>, <hostname> e <redmine_database> nel file config/database.yml. <host_name> potrebbe non essere necessario a seconda dell'installazione del database.


PostgreSQL

PostgreSQL è un sistema di gestione open source di classe enterprise. Supporta sia SQL per le query relazionali che JSON per le query non relazionali. È supportato da una comunità esperta di sviluppatori che hanno fatto straordinari contributi per renderlo un sistema DBMS estremamente affidabile. PostgreSQL supporta tipi di dati avanzati e ottimizzazione delle prestazioni avanzate, caratteristiche disponibili solo nei costosi database commerciali come Oracle e SQL Server.

MySQL o PostgreSQL?

Il progetto MySQL ha reso disponibile il suo codice sorgente sotto i termini della licenza GNU e di altri accordi proprietari. PostgreSQL è rilasciato sotto la licenza PostgreSQL. Ora è di proprietà di Oracle Corporation e offre diverse edizioni a pagamento. È un software libero e open source. Ciò significa che non dovrai mai pagare nulla per questo servizio.

MySQL è conforme a ACID solo quando si utilizzano i motori di archiviazione NDB e InnoDB Cluster. PostgreSQL è completamente conforme a ACID. MySQL funziona bene in sistemi OLAP e OLTP in cui è importante solo la velocità di lettura. Le prestazioni di PostgreSQL funzionano al meglio in sistemi che optano per l'esecuzione di query complesse.

MySQL è affidabile e funziona bene con le applicazioni BI (Business Intelligence), che sono difficili da leggere. PostgreSQL funziona bene con le applicazioni BI. Tuttavia, è più adatto per i data warehousing e le applicazioni di analisi dei dati che richiedono velocità di lettura-scrittura rapide.

Ecco come eseguire il backup dei dati per PostgreSQL:

  1. Accedi come utente postgres:

    su - postgres

  2. Usa il comando pg_dump per eseguire il backup di tutti i contenuti di un database PostgreSQL in un file di testo:

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

Trova questi <username> e <redmine_database> nel file config/database.yml. Il comando pg_dump ti aiuterà ad accedere alla password quando richiesto.


SQLite

SQLite è una libreria software che fornisce un sistema di gestione di database elettronico. Il "lite" in SQLite significa leggerezza in termini di configurazione, amministrazione del database e risorse richieste. SQLite ha le seguenti caratteristiche notevoli: autocontenuto, senza server, senza configurazione, transazionale. Senza server Normalmente, un RDBMS come MySQL, PostgreSQL, ecc., richiede un processo server separato per funzionare.

Le applicazioni che devono accedere al server del database utilizzano il protocollo TCP/IP per inviare e ricevere richieste. Questo è chiamato architettura client/server. Architettura client-server RDBMS SQLite non funziona in questo modo. SQLite non richiede un server per funzionare. Il database SQLite è integrato nell'applicazione che accede al database.

Le applicazioni interagiscono con il database SQLite per leggere e scrivere direttamente dai file del database memorizzati su disco. Cosa è SQLite autocontenuto SQLite è un modo autocontenuto che richiede un minimo di assistenza dal sistema operativo o dalla libreria esterna. Ciò rende SQLite utile in qualsiasi situazione, in particolare nei dispositivi embedded come iPhone, telefoni Android, console per videogiochi, lettori multimediali portatili, ecc. SQLite è stato sviluppato utilizzando ANSI-C.

Il codice sorgente è disponibile come un grande sqlite3.C e il file di intestazione sqlite3.H. Se vuoi sviluppare un'applicazione che utilizza SQLite, devi solo inserire questi file nel tuo progetto e compilarlo insieme al tuo codice. Senza configurazione grazie all'architettura senza server, non è necessario "installare" SQLite prima di utilizzarlo. Non esistono processi server che devono essere configurati, avviati e arrestati. SQLite non utilizza file di configurazione. Tutte le transazioni in SQLite sono completamente conformi a ACID.

Le sue modalità e modifiche sono atomiche, coerenti, isolate e robuste. In altre parole, tutte le modifiche all'interno di una transazione avvengono completamente o per niente, anche quando si verifica una situazione imprevista come un arresto anomalo dell'applicazione, un'interruzione di corrente o un arresto del sistema operativo. Caratteristiche uniche di SQLite SQLite utilizza tipi dinamici per le tabelle. Ciò significa che puoi conservare qualsiasi valore in qualsiasi colonna, indipendentemente dal tipo di dati. SQLite consente a una connessione al database di accedere contemporaneamente a un singolo file di database.

Ciò comporta molte funzionalità piacevoli come unione di tabelle in diversi database o copia di dati tra database in un singolo comando. SQLite è in grado di creare database in memoria che sono molto veloci da utilizzare. I database SQLite sono tutti contenuti in un file, quindi è possibile eseguirne il backup copiando il file in un'altra posizione. Puoi determinare il nome del file del database SQLite guardando config/database.yml.


Backup degli allegati

Ogni caricamento di file viene memorizzato in attachments_storage_path (impostato per impostazione predefinita sulla directory files/). Puoi copiare i contenuti all'interno di questa directory in un'altra posizione per eseguire rapidamente il backup.

AVVERTENZA: attachments_storage_path può puntare a una directory diversa da files/. Assicurati di controllare l'impostazione in config/configuration.yml per evitare di creare un backup inutile.


Script di backup di esempio

Ecco uno script shell semplice che può essere utilizzato per i backup giornalieri (supponendo che si stia utilizzando un database MySQL):

# Database

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

# Allegati

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


Ripristinare un database


MySQL

Ad esempio, se si dispone di un file di dump gzip con il nome 2018-07-30.gz, quindi il database può essere ripristinato con il comando seguente:

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

Inserisci la password.


PostgreSQL

Quando si utilizza l'opzione -Fc del comando pg_dump come nell'esempio precedente, è necessario utilizzare il comando pg_restore:

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

Un file di testo può anche essere ripristinato con psql:

psql <redmine_database> < <infile>


SQLite

Copiare il file del database dalla posizione del backup.

L'aggiornamento definitivo di Redmine? Facile.

Ottieni tutti gli strumenti potenti per una pianificazione, gestione e controllo del progetto perfetti in un unico software.

Prova Easy Redmine gratuitamente per 30 giorni

Funzionalità complete, protetto da SSL, backup giornalieri, nella tua geolocalizzazione