Oppaat

Näin varmuuskopioit sovelluksesi tietokannan (ja palautat sen oikeasti)

Tietokannan varmuuskopio tehdään viemällä tietokanta tiedostoon aikataulun mukaan (Postgresissa vakiotyökalu on pg_dump), tallentamalla kopiot erilleen tietokannasta ja palauttamalla niistä säännöllisesti yksi tyhjään tietokantaan, jotta nähdään, että se toimii. Ota ylimääräinen varmuuskopio aina juuri ennen riskialtista muutosta. Koodin varmuuskopio, eli GitHub-repositorio tai vienti, ei sisällä dataasi.

Tämä opas on tarkoitettu ihmisille, jotka pyörittävät pientä sovellusta ja haluavat lakata huolehtimasta datan menettämisestä. Esimerkeissä käytetään Postgresia, koska useimmat tekoälyllä rakennetut sovellukset käyttävät sitä, mutta periaatteet pätevät mihin tahansa tietokantaan.

Mitä varmuuskopion pitää kattaa

Sovellus on enemmän kuin tietokanta. Tiedä, mitä osaa kukin varmuuskopio suojaa.

MitäMissä se onMiten varmuuskopioidaan
KoodiProjektitiedostot, GitGitHub-synkronointi tai projektin vienti
Data (käyttäjät, tietueet)TietokantaTietokantavienti aikataulun mukaan
Ladatut tiedostotObjektitallennusKopioi säilö tai pidä alkuperäiset muualla
Salaisuudet ja asetuksetProjektiasetukset, palveluntarjoajien hallintanäkymätSalasanahallinta, pidetään ajan tasalla

Datan menettäminen on se osa, jota ei voi luoda uudelleen. Koodin voi kirjoittaa uudelleen ja asetukset syöttää uudelleen, mutta asiakkaidesi tilauksia ei.

Vaihe 1: Päätä, kuinka paljon voit menettää

Kaksi kysymystä määrittää varmuuskopiosuunnitelmasi:

  • Kuinka paljon tuoretta dataa voit menettää? Jos varmuuskopioit kerran päivässä ja tietokanta hajoaa illalla, menetät sinä päivänä tehdyt muutokset. Harrastesovellukselle se riittää. Sovellukselle, joka vastaanottaa tilauksia, ei välttämättä riitä.
  • Kuinka kauan sovellus voi olla pois käytöstä palautuksen ajan? Pieni tietokanta palautuu minuuteissa. Suuri voi kestää paljon kauemmin, ja sen haluat tietää ennen kuin tarvitset sitä.

Pienelle sovellukselle hyvä lähtökohta on päivittäinen automaattinen varmuuskopio ja käsin otettu varmuuskopio ennen riskialtista muutosta. Sovelluksiin, joissa on rahaa tai terveystietoja, tarvitaan tiheämpiä varmuuskopioita tai hallittu tietokanta, jossa on pistemäinen palautus (mahdollisuus palauttaa mihin tahansa hetkeen, ei vain viimeisimpään varmuuskopioon).

Vaihe 2: Tarkista, mitä hostisi jo tekee

Monet hallitut tietokantapalveluntarjoajat tekevät automaattisia varmuuskopioita. Selvitä:

  • Ovatko varmuuskopiot käytössä tilauksessasi ja kuinka usein ne ajetaan?
  • Kuinka kauan ne säilytetään?
  • Voitko palauttaa pistemäisesti vai vain päivittäisen tilannekuvan?
  • Voitko ladata varmuuskopion, vai voiko sen palauttaa vain heidän järjestelmässään?

Palveluntarjoajan varmuuskopiot ovat hyödyllisiä, mutta ne jakavat yhden heikon kohdan tietokannasi kanssa: tilin. Jos tili suljetaan, tilaus keskeytetään tai projekti poistetaan, varmuuskopiot voivat lähteä mukana. Siksi tarvitset myös oman kopion.

Vaihe 3: Tee vienti pg_dumpilla

pg_dump vie Postgres-tietokannan tiedostoon. Se lukee yhtenäisen tilannekuvan, joten sovellus voi jatkaa toimintaansa sen aikana.

Tyypillinen komento, joka käyttää sovelluksesi jo käyttämää yhteysmerkkijonoa ympäristömuuttujasta:

pg_dump "$DATABASE_URL" --format=custom --no-owner --file=backup-2026-09-29.dump

Vaihtoehtojen merkitys:

  • --format=custom kirjoittaa pakatun tiedoston, jonka pg_restore osaa lukea, ja jonka avulla yksittäiset taulut voi palauttaa myöhemmin. Käytä --format=plain-muotoa, jos haluat luettavan .sql-tiedoston.
  • --no-owner jättää pois omistajuuteen liittyvät komennot, mikä helpottaa palauttamista toiseen tietokantaan.
  • Päivämäärä tiedoston nimessä pitää varmuuskopiot erillään toisistaan.

Pg_dumpin version pitää olla sama tai uudempi kuin tietokantasi Postgres-versio. Vanhempi pg_dump saattaa kieltäytyä toimimasta.

Jos rakennat tekoälyllä eikä komentorivi kiinnosta, voit pyytää:

Luo sovelluksen tietokannasta varmuuskopio pg_dumpilla mukautetussa muodossa, ja tiedoston nimessä on tämän päivän päivämäärä. Älä tulosta yhteysmerkkijonoa tai mitään salaisuutta. Kerro tiedoston nimi ja koko, kun se on valmis.

Vaihe 4: Automatisoi

Käsin tehdyt varmuuskopiot unohtuvat. Automatisoi ne sen mukaan, mitä asennuksesi tukee:

  • Tietokantapalveluntarjoajan ajastetut varmuuskopiot, jos se tarjoaa niitä.
  • Ajastettu tehtävä palvelimella tai CI-palvelussa, joka ajaa pg_dump-komennon ja lataa tiedoston tallennustilaan.
  • Hostattu varmuuskopiopalvelu, joka yhdistyy tietokantaasi.

Valitsitpa minkä tahansa, varmista, että se ilmoittaa, kun varmuuskopio epäonnistuu. Varmuuskopiotyö, joka on epäonnistunut hiljaa kolme kuukautta, on klassinen kauhutarina.

Vaihe 5: Tallenna kopiot muualle

Peukalosääntö tunnetaan usein nimellä 3-2-1: kolme kopiota datastasi, kahdella eri tallennustyypillä ja yksi kopio paikasta poissa. Pienelle sovellukselle käytännöllinen versio on:

  • Tuotantotietokanta
  • Palveluntarjoajan omat automaattiset varmuuskopiot
  • Omat vientisi erillisessä tallennustilassa, kuten objektitallennussäilössä toisella tilillä

Lisäksi:

  • Rajoita pääsyä. Varmuuskopio sisältää kaikkien käyttäjien tiedot. Kohtele sitä kuin tuotantotietokantaa.
  • Pidä säilytyskäytäntö. Esimerkiksi päivittäiset varmuuskopiot kahden viikon ajan ja kuukausittaiset vuoden ajan. Poista vanhat varmuuskopiot tarkoituksella, ja muista, että tietosuojalait voivat edellyttää henkilötietojen poistamista pyynnöstä.
  • Älä koskaan commitoi varmuuskopioita Gitiin. Repositoriossa oleva vienti on tietovuoto, joka odottaa tapahtumistaan.

Vaihe 6: Testaa palautus

Varmuuskopio on vain niin hyvä kuin viimeisin onnistunut palautus. Tee palautustesti vähintään muutaman kuukauden välein ja aina, kun varmuuskopiointiprosessiin tehdään muutos:

  1. Luo uusi, tyhjä tietokanta. Älä koskaan testaa palauttamalla päälle tuotantotietokantaan.
  2. Palauta uusin varmuuskopio siihen:
pg_restore --no-owner --dbname="$TEST_DATABASE_URL" backup-2026-09-29.dump

Jos kyseessä on tavallinen .sql-tiedosto, käytä sen sijaan komentoa psql "$TEST_DATABASE_URL" -f backup.sql.

  1. Tarkista, että kaikki taulut ovat olemassa, vertaa rivimääriä tuotantotietokantaan ja katso muutamaa viimeisintä tietuetta.
  2. Yhdistä sovelluksen kopio siihen ja kirjaudu sisään, jos mahdollista.
  3. Kirjaa ylös, kuinka kauan palautus kesti. Se on todellinen palautusaikasi.

Vaihe 7: Varmuuskopioi ennen riskialtista muutosta

Ota tuore varmuuskopio juuri ennen seuraavia:

  • Tietokantamigraation ajaminen, joka poistaa tai nimeää uudelleen sarakkeita
  • Datan massatuonti
  • Tekoälyagentin tekemä suuri muutos datamalliin
  • Vanhojen tietueiden poistaminen

Tekoälyllä rakennetussa sovelluksessa agentti voi muuttaa taulurakennetta osana ominaisuutta. Tarkistuspisteet ja versionhallinta palauttavat koodin, mutta eivät palauta poistettuja rivejä. Kolmenkymmenen sekunnin varmuuskopio ennen suurta muutosta on halpa vakuutus.

Yleisimmät virheet

  • Oletus, että Git tai koodin vienti on varmuuskopio. Se sisältää koodin, ei dataa.
  • Palautuksen testaamatta jättäminen. Monet varmuuskopiot osoittautuvat tyhjiksi, osittaisiksi tai luettavissa kelvottomiksi vasta, kun niitä tarvitaan.
  • Varmuuskopioiden pitäminen samalla tilillä kuin tietokanta. Yksi vaarantunut tai suljettu tili vie molemmat.
  • Ladattujen tiedostojen unohtaminen. Tietokanta tallentaa tiedoston polun, mutta itse kuva on tallennustilassa.
  • Salaisuuksien jättäminen varmuuskopiokomentoihin. Lue yhteysmerkkijono ympäristömuuttujasta, älä skriptin tekstistä. Katso näin pidät API-avaimet turvassa.

Varmuuskopiot ja Mythex

Mythex-projekteissa voi olla oma Postgres-tietokanta, ja sen yhteystiedot injektoidaan työtilaan ja julkaistuun sovellukseen. Mythexin dokumentaatiossa ei kuvata tietokannan varmuuskopiointi- tai palautusominaisuutta, joten suunnittele oma: pyydä agenttia tekemään vienti, lataa se ja säilytä turvallisessa paikassa, erityisesti ennen suuria muutoksia. Projektin vienti (Pro) sisältää koodisi, jossa salaisuudet ja node_modules on jätetty pois; se ei sisällä tietokantarivejä. Katso Database ja Data ownership dokumentaatiossa. Lisätietoja itse tietokannasta löydät oppaasta mikä on Postgres.

Varmuuskopioinnin tarkistuslista

  • Päätetty, kuinka paljon dataa voit menettää ja kuinka kauan voit olla pois käytöstä
  • Tarkistettu, mitä automaattisia varmuuskopioita tietokantahostisi tarjoaa
  • Oma vienti ajetaan aikataulun mukaan, ja epäonnistumiset hälyttävät
  • Kopiot tallennettu erilleen tietokannasta, pääsy rajattu
  • Säilytyskäytäntö kirjoitettu ylös
  • Ladatut tiedostot varmuuskopioitu tietokannan lisäksi
  • Palautus testattu tyhjään tietokantaan ja rivimäärät tarkistettu
  • Varmuuskopio otettu ennen jokaista riskialtista muutosta

Kysymykset

Kuinka usein sovelluksen tietokanta pitäisi varmuuskopioida?

Mitoita tiheys sen mukaan, kuinka paljon dataa voit menettää. Useimmille pienille sovelluksille päivittäinen automaattinen varmuuskopio on järkevä vähimmäistaso. Lisäksi kannattaa ottaa käsin varmuuskopio aina ennen riskialtista muutosta, kuten migraatiota, tuontia tai suurta uutta ominaisuutta.

Onko koodin vieminen sama asia kuin datan varmuuskopiointi?

Ei. Koodin vienti tai GitHub-repositorio sisältää sovelluksesi tiedostot, ei tietokannan rivejä. Käyttäjäsi, tilauksesi ja julkaisusi ovat tietokannassa, ja ne tarvitsevat oman varmuuskopionsa.

Mikä on pg_dump?

pg_dump on Postgresin mukana tuleva vakiotyökalu tietokannan viemiseen tiedostoon. Se voi kirjoittaa tavallisen SQL-tiedoston tai pakatun mukautetun muodon. Vastaavat palautustyökalut ovat psql SQL-tiedostoille ja pg_restore mukautetulle muodolle.

Miten tiedän, että varmuuskopio toimii?

Palauta se. Lataa varmuuskopio erilliseen, tyhjään tietokantaan ja tarkista, että taulut ovat olemassa ja rivimäärät sekä muutama viimeisin tietue vastaavat oikeaa dataa. Varmuuskopio, jota et ole koskaan palauttanut, on arvaus.

Minne tietokannan varmuuskopiot kannattaa tallentaa?

Paikkaan, joka on erillään itse tietokannasta, mieluiten eri palveluntarjoajalla tai tilillä, ja pääsy on rajattu vain sinulle. Varmuuskopiot sisältävät kaikkien käyttäjiesi tiedot, joten kohtele niitä yhtä huolellisesti kuin tuotantotietokantaa.

Mythex · Pricing · Rakenna mitä tahansa tekoälyllä · Verkkosivu- ja sovellusmallipohjat · Mythex vertailussa · Tekoälysovellusten rakentamisen sanasto · Ilmaiset työkalut tekoälysovellusten rakentamiseen · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)