Sådan sikkerhedskopieres eller gendannes dine eksisterende Redmine-data

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

Successen for hver projektstyringsløsning er baseret på én simpel ting - dataen. Ved du allerede, hvordan du kan tage backup eller gendanne dine eksisterende data fra Redmine? Hvis ikke, så her er hvordan du kan gøre det for hver database.

Redmine-backups skal omfatte:

  • Database
  • Vedhæftninger (deponeret i filbiblioteket under installationsmappen som standard)


Sikkerhedskopiering af database


MySQL

MySQL, det mest populære Open Source SQL-databasesystem, er unikt, distribueret og understøttet af Oracle Corporation. MySQL-webstedet tilbyder de nyeste oplysninger om MySQL-softwaren. MySQL er et administrationsværktøj.

En database er en struktureret række data. Det kan være alt fra en simpel indkøbsliste til et billedgalleri eller store mængder data i et virksomhedsnetværk. For at tilføje, få adgang til og behandle data, der er gemt i en computerdatabase, har du brug for et databaseadministrationsværktøj sammen med MySQL Server. Da computere er fremragende til at håndtere store mængder data, spiller administrationsværktøjer en central rolle inden for databehandling, enten som selvstændige værktøjer eller som komponenter i andre applikationer. MySQL-databaser er relationelle.

En elektronisk database gemmer data i separate tabeller i stedet for at placere alle data i et stort lager. Databasestrukturerne er organiseret i fysiske filer, der er optimeret til hastighed. Den logiske model med enheder som databaser, tabeller, visninger, rækker og kolonner giver et fleksibelt programmeringsmiljø. Du opretter regler, der styrer forholdet mellem forskellige datafelter, såsom en-til-en, en-til-mange, unikke, påkrævede eller valgfrie og "henvisninger" mellem forskellige tabeller.

Databasen understøtter disse regler, og med en velfungerende database vil din applikation aldrig have inkonsistente, duplikerede, forældede eller manglende data. SQL-delen af "MySQL" står for "Structured Query Language". SQL er det mest almindelige standardiserede sprog til at få adgang til databaser. Afhængigt af dit programmeringsmiljø kan du indtaste SQL direkte (f.eks. for at generere rapporter), integrere SQL-udtryk i kode skrevet i et andet sprog eller bruge et sprogspecifikt API, der skjuler SQL-syntaksen. SQL er defineret af ANSI/ISO SQL-standarderne.

MySQL-softwaren er open source. Open Source betyder, at alle kan bruge og ændre softwaren. Alle kan downloade MySQL-softwaren fra internettet og bruge den uden at betale noget. Hvis du vil, kan du se på kildekoden og ændre den, så den passer til dine behov.

MySQL-softwaren bruger GPL (GNU General Public License) til at definere, hvad du kan og ikke kan gøre med softwaren i specifikke situationer. Hvis du er utilfreds med GPL'en eller ønsker at integrere MySQL-kode i en kommerciel applikation, kan du købe en kommerciel licenseret version fra os.

Se MySQL Licensing Overview for flere oplysninger. MySQL Database Server er hurtig, pålidelig, skalerbar og nem at bruge. Hvis det er det, du leder efter, skal du prøve det. MySQL Server kan køre problemfrit på en computer sammen med dine andre applikationer, webservere osv. og kræver meget lidt opmærksomhed.

Hvis du dedikerer et helt system til MySQL, kan du ændre indstillingerne for at udnytte al den hukommelse, CPU-kraft og I/O-kapacitet, der er tilgængelig. MySQL kan også skalere til klynger af maskiner, der er forbundet til hinanden. MySQL Server blev oprindeligt udviklet til at håndtere store databaser meget hurtigere end eksisterende løsninger og har i flere år været effektivt brugt i krævende produktionsmiljøer. Selvom det er under konstant udvikling, tilbyder MySQL Server nu en rig og værdifuld samling af funktioner.

Dens tilslutning, hastighed og sikkerhed gør MySQL Server ekstremt velegnet til at få adgang til databaser på internettet. MySQL Server kører i klient/server- eller indlejrede driftstilstande. MySQL Database Softwaren er en klient/server-løsning, der har en flertrådet SQL-server, der understøtter forskellige backend-systemer, forskellige klientapplikationer og biblioteker, administrative værktøjer og en bred vifte af applikationsprogrammeringsgrænseflader (API'er).

Det er meget sandsynligt, at din foretrukne software eller dit foretrukne sprog understøtter MySQL Database Server. Udtalen af "MySQL" er "My Ess Que Ell" (ikke "my sequel"), men det er okay, hvis du udtaler det som "my sequel" eller på en anden lokaliseret måde.

Sådan kan du tage en sikkerhedskopi af data til MySQL:

Kommandoen mysqldump kan bruges til at tage en sikkerhedskopi af indholdet i din MySQL-database til en tekstfil. For eksempel:

mysqldump -u <brugernavn> -p <adgangskode> <database_navn> > /sti/til/sikkerhedskopi/db/redmine.sql

Find disse <brugernavn>, <adgangskode>, <vært_navn> og <redmine_database> i filen config/database.yml. <vært_navn> kan være unødvendigt, afhængigt af din databaseinstallation.


PostgreSQL

PostgreSQL er et enterprise-klasse open-source management system. Det understøtter både SQL til relationelle og JSON til ikke-relationelle forespørgsler. Det bakkes op af et erfarent udviklerfællesskab, der har gjort enestående bidrag til at gøre det til et ekstremt pålideligt DBMS-system. PostgreSQL understøtter avancerede datatyper og avanceret ydeevneoptimering, funktioner der er bedst tilgængelige i dyre kommercielle databaser som Oracle og SQL Server.

MySQL eller PostgreSQL?

MySQL-projektet har gjort sin kildekode tilgængelig under GNU-licensen og andre proprietære aftaler. PostgreSQL er udgivet under PostgreSQL-licensen. Det ejes nu af Oracle Corporation og tilbyder flere betalte udgaver. Det er gratis og open-source-software. Det betyder, at du aldrig behøver at betale noget for denne service.

MySQL er ACID-kompatibel kun ved brug af NDB og InnoDB Cluster Storage-motorer PostgreSQL er fuldt ACID-kompatibel. MySQL fungerer godt i OLAP- og OLTP-systemer, hvor kun læsehastighed er vigtig. PostgreSQL's ydeevne fungerer tilfredsstillende i systemer, der vælger at udføre komplekse forespørgsler.

MySQL er pålidelig og fungerer godt med BI (Business Intelligence) applikationer, der er svære at læse PostgreSQL fungerer godt med BI-applikationer. Det er dog mere egnet til data warehousing og dataanalyseapplikationer, der kræver hurtige læse-skrivehastigheder.

Sådan kan du tage backup af data til PostgreSQL:

  1. Log ind som brugeren postgres:

    su - postgres

  2. Brug pg_dump-kommandoen til at tage backup af alt indholdet af en PostgreSQL-database til en tekstfil:

    pg_dump -U <brugernavn> -Fc <database_navn> > /sti/til/backup/db/redmine.sql

Find disse <brugernavn> og <redmine_database> i filen config/database.yml. pg_dump-kommandoen vil hjælpe dig med at få adgangskoden, når det er nødvendigt.


SQLite

SQLite er et softwarebibliotek, der giver et elektronisk databasehåndteringssystem. "lite" i SQLite betyder letvægtig i forhold til installation, databaseadministration og krævede ressourcer. SQLite har følgende bemærkelsesværdige funktioner: selvstændig, serverløs, nul-konfiguration, transaktionel. Serverløs Normalt kræver et RDBMS som MySQL, PostgreSQL osv. en separat serverproces for at fungere.

Applikationer, der har brug for adgang til database-serveren, bruger TCP/IP-protokollen til at sende og modtage anmodninger. Dette kaldes klient/server-arkitektur. RDBMS klient/server-arkitektur fungerer ikke på denne måde i SQLite. SQLite kræver ikke en server for at køre. SQLite-databasen er integreret med applikationen, der får adgang til databasen.

Applikationerne interagerer med SQLite-databasen for at læse og skrive direkte fra de på disken gemte databasefiler. Hvad er SQLite selvstændig SQLite er en selvstændig måde, der kræver minimal hjælp fra operativsystemet eller uden for biblioteket. Det gør SQLite nyttigt i enhver situation, især i indlejrede enheder som iPhones, Android-telefoner, spillekonsoller, håndholdte medieafspillere osv. SQLite er udviklet ved hjælp af ANSI-C.

Kildekoden er tilgængelig som en stor sqlite3.C-fil og dens headerfil sqlite3.H. Hvis du vil udvikle en applikation, der bruger SQLite, skal du blot indsætte disse filer i dit projekt og kompilere det sammen med din kode. Nul-konfiguration på grund af den serverløse arkitektur, du behøver ikke at "installere" SQLite, før du bruger det. Der er ingen serverproces, der skal konfigureres, startes og stoppes. SQLite bruger ikke nogen konfigurationsfiler. Alle transaktioner i SQLite er fuldt ACID-kompatible.

Dens handlinger og ændringer er atomiske, konsistente, isolerede og holdbare. Med andre ord sker alle ændringer inden for en transaktion enten fuldstændigt eller slet ikke, selv når der opstår en uventet situation som en applikationsnedbrud, strømsvigt eller operativsystemnedbrud. SQLite unikke funktioner SQLite bruger dynamiske typer til tabeller. Det betyder, at du kan gemme enhver værdi i enhver kolonne, uanset datatypen. SQLite tillader, at en databaseforbindelse får adgang til mere end én databasefil på samme tid.

Dette giver mange gode funktioner som sammenkædning af tabeller i forskellige databaser eller kopiering af data mellem databaser i en enkelt kommando. SQLite er i stand til at oprette hukommelsesdatabaser, der er meget hurtige at arbejde med. SQLite-databaser er alle indeholdt i en fil, så du kan tage backup af dem ved at kopiere filen til en anden placering. Du kan finde filnavnet på SQLite-databasen ved at se på config/database.yml.


Sikkerhedskopiering af vedhæftede filer

Hver filupload gemmes i attachments_storage_path (standard til mappen "files/"). Du kan kopiere indholdet i denne mappe til en anden placering for at tage en hurtig sikkerhedskopi.

ADVARSEL: attachments_storage_path kan pege på en anden mappe end "files/". Sørg for at gennemgå indstillingen i config/configuration.yml for at undgå at lave en unødvendig sikkerhedskopi.


Eksempel på backup-script

Her er et simpelt shell-script, der kan bruges til daglige backups (hvis du bruger en MySQL-database):

# Database

/usr/bin/mysqldump -u <brugernavn> -p<adgangskode> <redmine_database> | gzip > /sti/til/backup/db/redmine_`date +%Y-%m-%d`.gz

# Vedhæftninger

rsync -a /sti/til/redmine/filer /sti/til/backup/filer


Gendan en database


MySQL

Hvis du f.eks. har en gzipet dump-fil med navnet 2018-07-30.gz, kan databasen gendannes med følgende kommando:

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

Indtast adgangskode.


PostgreSQL

Hvis valget -Fc af kommandoen pg_dump bruges som i det ovenstående eksempel, skal du bruge kommandoen pg_restore:

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

En tekstfil kan også gendannes med psql:

psql <redmine_database> < <infile>


SQLite

Kopier databasefilen fra backup-stedet.

Den ultimative Redmine-opgradering? Nemt.

Få alle kraftfulde værktøjer til perfekt projektplanlægning, -styring og -kontrol i en enkelt software.

Prøv Easy Redmine i en 30 dages gratis prøveperiode

Fuld funktionalitet, SSL-beskyttet, daglige backups, i din geolocation