Korleis sikre eller gjenopprette dine eksisterande Redmine-data

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

Å lukkast med kvar prosjektleiingsløysing er basert på éin enkel ting - dataene. Veit du allereie korleis du kan sikkerhetskopiere eller gjenopprette eksisterande data frå Redmine? Hvis ikkje, her er korleis du kan gjere det for kvar database.

Redmine sikkerhetskopier må inkludere:

  • Database
  • Vedlegg (lagret i filkatalogen under installasjonskatalogen som standard)


Sikkerhetskopiering av database


MySQL

MySQL, det mest populære åpne SQL-databasesystemet, er unikt, distribuert og støttet av Oracle Corporation. MySQL-nettstedet tilbyr de nyeste fakta om MySQL-programvare. MySQL er et administrasjonsverktøy.

En database er en strukturert serie med data. Det kan være alt fra en enkel handleliste til et bildegalleri eller store mengder data i et bedriftsnettverk. For å legge til, få tilgang til og behandle data som er lagret i en datamaskindatabase, trenger du et databaseadministrasjonsverktøy sammen med MySQL Server. Siden datamaskiner er flinke til å håndtere store mengder data, spiller administrasjonssystemer en sentral rolle innen databehandling, enten som frittstående verktøy eller som komponenter i andre applikasjoner. MySQL-databaser er relasjonelle.

En elektronisk database lagrer data i separate tabeller i stedet for å plassere all data i et stort lager. Databasestrukturene er organisert i fysiske filer optimalisert for hastighet. Den logiske modellen, med elementer som databaser, tabeller, visninger, rader og kolonner, gir et fleksibelt programmeringsmiljø. Du oppretter regler som styrer forholdene mellom forskjellige datafelt, for eksempel en-til-en, en-til-mange, unike, påkrevde eller valgfrie, og "peker" mellom forskjellige tabeller.

Databasen støtter disse reglene, og med en godt utformet database vil applikasjonen din aldri inneholde inkonsistente, dupliserte, foreldreløse, utdaterte eller manglende data. SQL-delen av "MySQL" står for "Structured Query Language". SQL er det vanligste standardiserte språket som brukes for å få tilgang til databaser. Avhengig av programmeringsmiljøet ditt kan du skrive SQL direkte (for eksempel for å generere rapporter), legge SQL-setninger inn i kode skrevet i et annet språk, eller bruke et språksbestemt API som skjuler SQL-syntaksen. SQL er definert av ANSI/ISO SQL-standarden.

MySQL-programvaren er åpen kildekode. Åpen kildekode betyr at alle kan bruke og endre programvaren. Alle kan laste ned MySQL-programvaren fra nettet og bruke den uten å betale noe. Hvis du vil, kan du se på kildekoden og endre den for å tilpasse den til dine behov.

MySQL-programvaren bruker GPL (GNU General Public License) for å definere hva du kan og ikke kan gjøre med programvaren i spesifikke situasjoner. Hvis du har problemer med GPL eller ønsker å bygge inn MySQL-kode i en kommersiell applikasjon, kan du kjøpe en kommersielt lisensiert versjon fra oss.

Se MySQL Licensing Overview for mer informasjon. MySQL Database Server er rask, pålitelig, skalerbar og enkel å bruke. Hvis det er det du leter etter, bør du prøve det. MySQL Server kan kjøre problemfritt på en datamaskin sammen med andre applikasjoner, nettservere osv., og krever lite oppmerksomhet.

Hvis du dedikerer et helt system til MySQL, kan du endre innstillingene for å dra nytte av all tilgjengelig minne, CPU-kraft og I/O-kapasitet. MySQL kan også skaleres til klynger av maskiner som er koblet sammen i et nettverk. MySQL Server ble opprinnelig utviklet for å håndtere store databaser mye raskere enn eksisterende løsninger, og har blitt brukt med suksess i krevende produksjonsmiljøer i flere år. Selv om det er under kontinuerlig utvikling, tilbyr MySQL Server nå en rik og verdifull samling av funksjoner.

Tilkoblingsmulighetene, hastigheten og sikkerheten gjør MySQL Server svært egnet for å få tilgang til databaser på nettet. MySQL Server kjører i klient/server- eller innebygd modus. MySQL Database Software er et klient/server-system som har en flertrådet SQL-server som støtter forskjellige bakre ender, mange forskjellige klientapplikasjoner og biblioteker, administrative verktøy og et bredt utvalg av programmeringsgrensesnitt (API-er).

Det er svært sannsynlig at favorittprogramvaren eller -språket ditt støtter MySQL Database Server. Uttalen av "MySQL" er "My Ess Que Ell" (ikke "my sequel"), men det er greit hvis du uttaler det som "my sequel" eller på en annen lokal måte.

Slik sikkerhetskopierer du data for MySQL:

Kommandoen mysqldump kan brukes til å sikkerhetskopiere innholdet i MySQL-databasen til en tekstfil. For eksempel:

mysqldump -u <brukernavn> -p <passord> <database_navn> > /sti/til/sikkerhetskopi/db/redmine.sql

Finn disse <brukernavn>, <passord>, <vert_navn> og <redmine_database> i filen config/database.yml. <vert_navn> kan være unødvendig avhengig av hvordan databasen er installert.


PostgreSQL

PostgreSQL er et bedriftsklasse open-source administrasjonssystem. Det støtter både SQL for relasjonelle og JSON for ikke-relasjonelle spørringer. Det støttes av et erfarent utviklermiljø som har gjort enestående bidrag for å gjøre det til et svært pålitelig DBMS-system. PostgreSQL støtter avanserte datatyper og optimalisering av ytelse, funksjoner som er best tilgjengelig i dyre kommersielle databaser som Oracle og SQL Server.

MySQL eller PostgreSQL?

MySQL-prosjektet har gjort kildekoden tilgjengelig under GNU-lisensen og andre proprietære avtaler. PostgreSQL er utgitt under PostgreSQL-lisensen. Det eies nå av Oracle Corporation og tilbyr flere betalte utgaver. Det er gratis og åpen kildekode-programvare. Det betyr at du aldri trenger å betale noe for denne tjenesten.

MySQL er ACID-kompatibel bare når du bruker NDB og InnoDB Cluster Storage-motorer. PostgreSQL er helt ACID-kompatibel. MySQL fungerer bra i OLAP- og OLTP-systemer der bare lesehastigheten er viktig. PostgreSQL-ytelsen fungerer tilfredsstillende i systemer som velger å utføre komplekse spørringer.

MySQL er pålitelig og fungerer godt med BI (Business Intelligence)-programmer, som er vanskelige å lese. PostgreSQL fungerer godt med BI-applikasjoner. Det er imidlertid mer egnet for datavarehus og dataanalyseprogrammer som krever rask lese-skrivehastighet.

Slik kan du sikkerhetskopiere data for PostgreSQL:

  1. Logg inn som brukeren postgres:

    su - postgres

  2. Bruk pg_dump-kommandoen for å sikkerhetskopiere alle innholdene i en PostgreSQL-database til en tekstfil:

    pg_dump -U <brukernavn> -Fc <database_navn> > /sti/til/sikkerhetskopi/db/redmine.sql

Finn disse <brukernavn> og <redmine_database> i filen config/database.yml. pg_dump-kommandoen vil hjelpe deg med å få tilgang til passordet når det er nødvendig.


SQLite

SQLite er et programvarebibliotek som gir et elektronisk databaseadministrasjonssystem. "lite" i SQLite betyr lettvektig når det gjelder oppsett, databaseadministrasjon og nødvendige ressurser. SQLite har følgende bemerkelsesverdige funksjoner: selvstendig, serverløs, nullkonfigurasjon, transaksjonell. Serverløs. Normalt krever et RDBMS som MySQL, PostgreSQL osv. en separat serverprosess for å fungere.

Applikasjonene som trenger tilgang til databaseserveren bruker TCP/IP-protokollen for å sende og motta forespørsler. Dette kalles klient/server-arkitektur. RDBMS klient/server-arkitektur fungerer ikke på denne måten i SQLite. SQLite krever ikke en server for å kjøre. SQLite-databasen er integrert med applikasjonen som får tilgang til databasen.

Programmene samhandler med SQLite-databasen for å lese og skrive direkte fra databasefilene som er lagret på disk. Hva er SQLite selvstendig? SQLite er en selvstendig måte som krever minimal hjelp fra operativsystemet eller eksterne biblioteker. Dette gjør SQLite nyttig i alle situasjoner, spesielt i innebygde enheter som iPhones, Android-telefoner, spillkonsoller, håndholdte mediespillere, osv. SQLite er utviklet ved hjelp av ANSI-C.

Kildekoden er tilgjengelig som en stor sqlite3.C-fil og dens headerfil sqlite3.H. Hvis du vil utvikle et program som bruker SQLite, trenger du bare å legge disse filene til prosjektet ditt og kompilere det sammen med koden din. Nullkonfigurasjon på grunn av serverløs arkitektur, du trenger ikke å "installere" SQLite før du bruker det. Det er ingen serverprosess som må konfigureres, startes og stoppes. SQLite bruker ikke konfigurasjonsfiler. Alle transaksjoner i SQLite er fullstendig ACID-kompatible.

Endringer i SQLite er atomiske, konsistente, isolerte og varige. Med andre ord, alle endringer innenfor en transaksjon skjer enten fullstendig eller ikke i det hele tatt, selv når uventede situasjoner som en programkrasj, strømbrudd eller operativsystemkrasj oppstår. SQLite bruker dynamiske typer for tabeller. Det betyr at du kan lagre hvilken som helst verdi i hvilken som helst kolonne, uavhengig av datatypen. SQLite tillater at én databaseforbindelse får tilgang til mer enn én databasefil samtidig.

Dette gir mange gode funksjoner som å koble sammen tabeller i forskjellige databaser eller kopiere data mellom databaser med én enkelt kommando. SQLite er i stand til å opprette hurtigminnedatabaser som er raske å jobbe med. SQLite-databaser er alle inneholdt i en fil, så du kan sikkerhetskopiere dem ved å kopiere filen til en annen plassering. Du kan finne filnavnet til SQLite-databasen ved å se på config/database.yml.


Sikkerhetskopiering av vedlegg

Hver filopplasting lagres i vedleggslagringsbanen (standard er files/-mappen). Du kan kopiere innholdet i denne mappen til en annen plassering for å raskt sikkerhetskopiere det.

ADVARSEL: vedleggslagringsbanen kan peke til en annen mappe enn files/. Sørg for å sjekke innstillingen i config/configuration.yml for å unngå å lage en unødvendig sikkerhetskopi.


Eksempel på sikkerhetskopi-skript

Her kan være et enkelt skallskript som kan brukes for daglige sikkerhetskopier (forutsatt at du bruker en MySQL-database):

# Database

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

# Vedlegg

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


Gjenopprett en database


MySQL

For eksempel, hvis du har en gzipet dumpfil med tittelen 2018-07-30.gz, kan databasen gjenopprettes med følgende kommando:

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

Skriv inn passord.


PostgreSQL

Når alternativet -Fc til kommandoen pg_dump brukes som i eksempelet over, må du bruke kommandoen pg_restore:

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

En tekstfil kan også gjenopprettes med psql:

psql <redmine_database> < <infile>


SQLite

Kopier databasefilen fra plasseringen til sikkerhetskopien.

Den ultimate Redmine-oppgraderingen? Enkel.

Få alle kraftige verktøy for perfekt prosjektplanlegging, -styring og -kontroll i én programvare.

Prøv Easy Redmine i en 30-dagers gratis prøveperiode

Full funksjonalitet, SSL-beskyttet, daglige sikkerhetskopier, i din geografiske plassering