Hur du säkerhetskopierar eller återställer dina befintliga Redmine-data

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

Lyckan för varje projektledningslösning baseras på en enkel sak - datan. Vet du redan hur du säkerhetskopierar eller återställer din befintliga data från Redmine? Om inte, här är hur du kan göra det för varje databas.

Redmine säkerhetskopior måste inkludera:

  • Databas
  • Bilagor (lagrade i filkatalogen under installationskatalogen som standard)


Säkerhetskopiering av databasen


MySQL

MySQL, det mest populära öppna SQL-databassystemet, är unikt, distribuerat och stöttat av Oracle Corporation. MySQL-webbplatsen erbjuder de senaste fakta om MySQL-programvara. MySQL är en hanteringsenhet.

En databas är en strukturerad serie statistik. Det kan vara allt från en enkel inköpslista till ett bildgalleri eller stora mängder data i ett företagsnätverk. För att lägga till, få tillgång till och bearbeta data som lagras i en datorbaserad databas behöver du en databashanteringsenhet tillsammans med MySQL Server. Eftersom datorer är utmärkta på att hantera stora mängder data, spelar hanteringssystem en central roll inom datavetenskap, antingen som fristående verktyg eller som komponenter i andra applikationer. MySQL-databaser är relationella.

En elektronisk databas lagrar data i separata tabeller istället för att placera all data i ett enda stort förråd. Databasstrukturen är organiserad i fysiska filer optimerade för hastighet. Den logiska modellen, med objekt som databaser, tabeller, vyer, rader och kolumner, ger en flexibel programmeringsmiljö. Du ställer in regler som styr relationerna mellan olika datafält, till exempel en-till-en, en-till-många, unik, obligatorisk eller valfri och "referenser" mellan olika tabeller.

Databasen stöder dessa regler och med en välutformad databas blir din applikation aldrig inkonsekvent, duplicerad, föräldralös, föråldrad eller saknar data. SQL-komponenten i "MySQL" står för "Structured Query Language". SQL är det vanligaste standardiserade språket för att få åtkomst till databaser. Beroende på din programmeringsmiljö kan du ange SQL direkt (till exempel för att få rapporter), bädda in SQL-anvisningar i kod skriven i ett annat språk eller använda ett språkspecifikt API som döljer SQL-syntaxen. SQL beskrivs av ANSI/ISO SQL-standarden.

MySQL-programvaran är öppen källkod. Öppen källkod innebär att alla kan använda och ändra programvaran. Alla kan ladda ner MySQL-programvaran från webben och använda den utan att betala något. Om du vill kan du titta på källkoden och ändra den efter dina behov.

MySQL-programvaran använder GPL (GNU General Public License) för att definiera vad du får och inte får göra med programvaran i specifika situationer. Om du känner dig obekväm med GPL eller vill bädda in MySQL-kod i en kommersiell applikation kan du köpa en kommersiellt licensierad version från oss.

Se MySQL Licensing Overview för mer information. MySQL-databasservern är snabb, pålitlig, skalbar och enkel att använda. Om det är vad du letar efter bör du prova det. MySQL Server kan enkelt köras på en dator tillsammans med dina andra applikationer, webbservrar osv. och kräver mycket lite uppmärksamhet.

Om du tilldelar ett helt system till MySQL kan du ändra inställningarna för att dra nytta av allt minne, CPU-kraft och I/O-kapacitet som finns tillgängligt. MySQL kan också skalas upp till kluster av maskiner som är nätverksanslutna. MySQL Server utvecklades ursprungligen för att hantera stora databaser mycket snabbare än befintliga lösningar och har framgångsrikt använts i mycket krävande produktionsmiljöer i flera år. Trots kontinuerlig utveckling erbjuder MySQL Server nu en rik och värdefull samling funktioner.

Den höga anslutningsmöjligheten, hastigheten och säkerheten gör MySQL Server exceptionellt lämplig för att få åtkomst till databaser på webben. MySQL Server körs i klient/server- eller inbäddade driftlägen. MySQL-databasprogramvaran är en klient/server-mjukvara som har en flertrådad SQL-server som stöder olika bakändar, olika klientapplikationer och bibliotek, administrativa verktyg och ett brett utbud av programgränssnitt (API:er).

Det är mycket troligt att din favoritprogramvara eller ditt favoritspråk stöder MySQL-databasservern. Uttal av "MySQL" är "My Ess Que Ell" (inte "my sequel"), men det är okej om du uttalar det som "my sequel" eller på något annat lokalt sätt.

Så här kan du säkerhetskopiera data för MySQL:

Kommandot mysqldump kan användas för att säkerhetskopiera innehållet i din MySQL-databas till en textfil. Till exempel:

mysqldump -u <användarnamn> -p <lösenord> <databasnamn> > /sökväg/till/säkerhetskopia/db/redmine.sql

Hitta dessa <användarnamn>, <lösenord>, <värdnamn> och <redmine_databas> i filen config/database.yml. <värdnamn> kan vara onödigt beroende på din installation av databasen.


PostgreSQL

PostgreSQL är ett företagsklass open-source hanteringssystem. Det stöder både SQL för relationella och JSON för icke-relationella frågor. Det stöds av en erfaren utvecklarcommunity som har gjort extraordinära bidrag för att göra det till ett mycket pålitligt DBMS-system. PostgreSQL stöder avancerade datatyper och förbättrad prestandaoptimering, funktioner som finns i dyra företagsdatabaser som Oracle och SQL Server.

MySQL eller PostgreSQL?

MySQL-projektet har gjort sin källkod tillgänglig under villkoren för GNU-licensen och andra proprietära avtal. PostgreSQL släpps under PostgreSQL-licensen. Det ägs nu av Oracle Corporation och erbjuder flera betalda utgåvor. Det är gratis och öppen källkod. Det betyder att du aldrig behöver betala något för denna tjänst.

MySQL är ACID-kompatibelt endast när man använder NDB och InnoDB Cluster Storage-motorer. PostgreSQL är helt ACID-kompatibelt. MySQL presterar bra i OLAP- och OLTP-system där endast läshastighet är viktig. PostgreSQLs prestanda fungerar bäst i system som väljer att köra komplexa frågor.

MySQL är pålitligt och fungerar bra med BI (Business Intelligence)-program, som är svåra att läsa. PostgreSQL fungerar bra med BI-program. Det är dock mer lämpligt för datawarehousing och dataanalysprogram som kräver snabb läs-skrivhastighet.

Så här kan du säkerhetskopiera data för PostgreSQL:

  1. Logga in som användaren postgres:

    su - postgres

  2. Använd pg_dump-kommandot för att säkerhetskopiera allt innehåll i en PostgreSQL-databas till en textfil:

    pg_dump -U <användarnamn> -Fc <databasnamn> > /sökväg/till/säkerhetskopia/db/redmine.sql

Hitta dessa <användarnamn> och <redmine_database> i filen config/database.yml. pg_dump-kommandot hjälper dig att komma åt lösenordet vid behov.


SQLite

SQLite är ett programbibliotek som tillhandahåller ett elektroniskt databashanteringssystem. "lite" i SQLite betyder lättviktigt när det gäller installation, databashantering och resurskrav. SQLite har följande märkbara funktioner: självständigt, serverlöst, nollkonfiguration, transaktionellt. Serverlöst Normalt sett kräver ett RDBMS som MySQL, PostgreSQL osv. en separat serverprocess för att fungera.

Programmen som behöver få åtkomst till databasservern använder TCP/IP-protokollet för att skicka och ta emot förfrågningar. Detta kallas klient/server-arkitektur. RDBMS-klient/server-arkitektur fungerar inte på detta sätt i SQLite. SQLite kräver ingen server för att köras. SQLite-databasen är integrerad med applikationen som får åtkomst till databasen.

Programmen kommunicerar direkt med SQLite-databasen för att läsa och skriva från databasfilerna som lagras på disk. Vad är SQLite självständigt? SQLite är ett självständigt sätt som kräver minimal hjälp från operativsystemet eller externa bibliotek. Det gör SQLite användbart i alla situationer, särskilt i inbäddade enheter som iPhones, Android-telefoner, spelkonsoler, handhållna mediaspelare osv. SQLite har utvecklats med hjälp av ANSI-C.

Källkoden finns tillgänglig som en stor sqlite3.C-fil och dess headerfil sqlite3.H. Om du vill utveckla en applikation som använder SQLite behöver du bara lägga till dessa filer i ditt projekt och kompilera dem tillsammans med din kod. Nollkonfiguration på grund av den serverlösa arkitekturen, du behöver inte "installera" SQLite innan du använder det. Det finns ingen serverprocess som måste konfigureras, startas och stoppas. SQLite använder inga konfigurationsfiler. Alla transaktioner i SQLite är helt ACID-kompatibla.

Ändringar och modifieringar är atomära, konsekventa, isolerade och hållbara. Med andra ord, alla ändringar inom en transaktion sker antingen helt eller inte alls, även om en oväntad situation som en krasch i programmet, strömavbrott eller krasch i operativsystemet inträffar. SQLite har unika funktioner. SQLite använder dynamiska typer för tabeller. Det betyder att du kan lagra vilket värde som helst i vilken kolumn som helst, oavsett datatyp. SQLite tillåter en enda databasanslutning att få åtkomst till en enda databasfil samtidigt.

Detta ger många fördelar, som att slå samman tabeller i olika databaser eller kopiera data mellan databaser med en enda kommando. SQLite kan skapa in-memory-databaser som är mycket snabba att arbeta med. SQLite-databaser är alla innehållna i en fil, så du kan säkerhetskopiera dem genom att kopiera filen till en annan plats. Du kan ta reda på filnamnet för SQLite-databasen genom att titta i config/database.yml.


Säkerhetskopiering av bilagor

Varje filuppladdning sparas i attachments_storage_path (standardmässigt i mappen files/). Du kan kopiera innehållet i denna mapp till en annan plats för att snabbt säkerhetskopiera det.

VARNING: attachments_storage_path kan peka på en annan mapp än files/. Se till att granska inställningen i config/configuration.yml för att undvika att göra en onödig säkerhetskopia.


Exempel på säkerhetskopia skript

Här kan vara ett enkelt skal skript som kan användas för dagliga säkerhetskopior (förutsatt att du använder en MySQL-databas):

# Databas

/usr/bin/mysqldump -u <användarnamn> -p<lösenord> <redmine_databas> | gzip > /sökväg/till/säkerhetskopiering/db/redmine_`date +%Y-%m-%d`.gz

# Bilagor

rsync -a /sökväg/till/redmine/filer /sökväg/till/säkerhetskopiering/filer


Återställ en databas


MySQL

Till exempel, om du har en gzipad dumpfil med titeln 2018-07-30.gz, kan databasen återställas med följande kommando:

gunzip < 2018-07-30.gz | mysql -u <användarnamn> -p <redmine_databas>

Ange lösenord.


PostgreSQL

När alternativet -Fc av kommandot pg_dump används som i exemplet ovan måste du använda kommandot pg_restore:

pg_restore -U <användarnamn> -d <redmine_databas> redmine.sql

En textfil kan också återställas med psql:

psql <redmine_databas> < <infile>


SQLite

Kopiera databasfilen från platsen för säkerhetskopieringen.

Den ultimata Redmine-uppgraderingen? Enkel.

Få alla kraftfulla verktyg för perfekt projektplanering, hantering och kontroll i en enda programvara.

Prova Easy Redmine i en 30 dagars gratis provperiod

Fullständiga funktioner, SSL-skyddad, dagliga säkerhetskopior, i din geografiska plats