Så här återställer du en Immich-databas från en fungerande säkerhetskopia

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

En fungerande Immich-databasbackup är bara användbar om du återställer den i ett kontrollerat tillstånd och bevisar att den återställda databasen fortfarande pekar på de medier som servern faktiskt kan se.

Se återställningen som en sekvens, inte som ett enda importkommando. Bevara först den felaktiga instansen, identifiera Immich-versionen och säkerhetskopieringens tidsstämpel, starta ett rent och kompatibelt databasmål, återställ utan att låta applikationen skriva till ett tomt schema först och validera sedan konton, tidslinjedata, mediesökvägar och en ny skrivning. Om något steg är oklart ska du stoppa innan du ersätter den sista återställningsbara kopian.

Frys det felaktiga tillståndet innan du återställer något

Stoppa nya uppladdningar och bakgrundsskrivningar till den berörda Immich-instansen innan återställningsarbetet börjar. Spara den aktuella Compose-filen, miljövärdena, monterade sökvägar, image-versioner, aktuella loggar och det skadade databastillståndet om lagringsutrymmet tillåter det. En felaktig databas kan fortfarande innehålla bevis som förklarar vad som hände, och om du skriver över den försvinner dessa bevis.

Identifiera exakt vilken säkerhetskopia du tänker lita på. Notera dess tidsstämpel, hur den skapades, filstorleken och om den någonsin har teståterställts. En SQL-dump som producerats av databasen är en annan typ av återställningstillgång än en rå kopia av den aktiva PostgreSQL-datakatalogen; behandla dem inte som utbytbara.

Skapa återställningsmålet i en separat katalog eller en isolerad stack när det är möjligt. Villkoret för att lämna detta steg är enkelt: det ursprungliga felaktiga tillståndet är bevarat, den valda säkerhetskopian är skrivskyddad och du vet vilken distributionsversion och vilka lagringssökvägar återställningen ska återansluta till.

Kontrollera att säkerhetskopian faktiskt går att återställa

Inspektera säkerhetskopian innan du spelar upp den. En komprimerad SQL-dump ska kunna dekomprimeras utan fel och innehålla igenkännbart PostgreSQL-dumpinnehåll, inte vara ett tomt arkiv som skapats av en misslyckad pipeline. Om du har kontrollsummor eller verifieringsresultat från ett arkiv ska du jämföra dem nu i stället för att upptäcka korruption halvvägs genom återställningen.

En PostgreSQL-dump är en säkrare återställningstillgång än en tillfällig kopia av en aktiv databaskatalog, eftersom den skapas med databasmedvetna verktyg och kan spelas upp i ett rent mål. Mönstret med databasdump som säkerhetskopia håller också databasen separerad från mediekopian, vilket gör det enklare att validera varje del före återställningen.

Kontrollera också att medierna och konfigurationen från säkerhetskopieringsperioden fortfarande finns kvar. Om du bara återställer databasen kan du återfå användare, album, metadata och filreferenser, samtidigt som alla resurser förblir trasiga om de refererade bibliotekssökvägarna saknas. Fortsätt endast när dumpen och medie-/konfigurationsuppsättningen tillhör en känd återställningspunkt.

Starta först ett kompatibelt rent databasmål

Anpassa återställningsmetoden till den version som skapade säkerhetskopian. Aktuella Immich-versioner erbjuder databasåterställning via Administration > Underhåll och genom onboardingflödet för en ny installation, medan äldre säkerhetskopior kan kräva versionsspecifika manuella instruktioner; återställningsflödet ändrades i v2.5.0.

För ett nytt återställningsmål ska du inte låta Immich köra normala migreringar mot ett tomt schema innan databasåterställningen är klar. Om din distributionsmetod startar applikationen tillsammans med PostgreSQL ska du använda de versionsanpassade återställningskontrollerna, så att servern inte skapar ett konkurrerande tillstånd före importen.

Om databasen inte blir frisk av sig själv ska du stoppa och lösa det först. Fortsätt inte att spela upp samma säkerhetskopia i ett mål som startar om, har slut på diskutrymme eller använder en inkompatibel lagringslayout. Ett rent och stabilt mål är en förutsättning, inte ett sidospår för felsökning.

-15% OFF
Single board computer zimaboard2

Återställ dumpen en gång och stoppa vid första felet

Återställ den valda dumpen i den förberedda databasen och spara hela utdatat. Använd de databasverktyg och flaggor som passar dumpformatet, så att ett fel gör att återställningen misslyckas tydligt i stället för att lämna ett delvis importerat schema som ändå startar.

En användbar migreringsuppsättning behöver resurserna, PostgreSQL-tillståndet och konfigurationen som återansluter dem. En fullständig Immich-säkerhetskopieuppsättning innehåller uppladdade resurser, en kompatibel databassäkerhetskopia och distributionskonfiguration, där återställningstest används för att bevisa att uppsättningen fungerar. Håll dessa delar tillsammans så att destinationen kan matchas mot en enda återställningspunkt.

Efter en lyckad import startar du Immich-applikationen och följer den första starten noggrant. Om gränssnittet ber dig skapa en ny första administratör i stället för att acceptera de befintliga kontona ska du stoppa: det tyder starkt på att den återställda databasen inte är den som Immich använder. Börja inte ladda upp foton igen till det tomma tillståndet.

Validera databastillstånd, mediesökvägar och en ny skrivning

Logga in med ett befintligt konto och kontrollera tidslinjen för både äldre och nyare datum. Öppna flera original, granska album eller favoriter som du vet fanns och bekräfta att applikationen kan hitta de underliggande filerna, inte bara visa databasrader.

Databastillstånd, applikationsfiler, konfiguration och uppladdningar måste stämma överens vid återställningen. Använd en konsekvent säkerhetskopia av databaskontainern som godkännandemodell, inte bara frågan om huruvida PostgreSQL startar.

Ladda slutligen upp ett foto som kan raderas, vänta på normal bearbetning, bekräfta att det överlever en omstart av Immich och en omstart av värddatorn och radera det sedan via applikationen. Om konton, äldre resurser och den nya skrivningen fungerar normalt ska du ta en ny säkerhetskopia av det återställda tillståndet innan någon versionsuppgradering. Om inte ska du återgå till de bevarade felen eller en äldre känd fungerande säkerhetskopia i stället för att förvärra skadan.

Support och tips

Mer att läsa

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.