Miten varmuuskopioida Postgres-tietokanta Altaaseen
Tässä ohjeessa näytämme, miten Rahtissa toimiva PostgreSQL- tai MariaDB-tietokanta varmuuskopioidaan Altaaseen. Yleinen ajatus on käyttää CronJob-resurssia, joka luo tietokannasta vedostiedoston ja lataa sen Altaaseen.
Warning
Tämä on yksinkertainen esimerkki: varmuuskopion SQL-tiedostoa ei pakata, tarkistussummia ei varmenneta, salausta ei käytetä, ... tässä näytetään vain perusajatus siitä, miten varmuuskopio luodaan ja tallennetaan objektiliikenteeseen.
GitHub-repositorion osoitteen löydät täältä. Voit vapaasti kloonata sen ja muokata sitä tarpeidesi mukaan.
Vaatimukset
-
PostgreSQL- tai MariaDB-tietokanta. Sinulla täytyy olla siihen lukuoikeus. Jos haluat ottaa käyttöön uuden tietokannan Rahtissa, voit käyttää katalogissa tarjolla olevaa Postgres- tai MariaDB-mallipohjaa. Myös ulkoisen tietokannan varmuuskopiointi on mahdollista, mutta kaikki ohjeet olettavat, että tietokanta toimii Rahtissa samassa nimiavaruudessa, jossa varmuuskopiointiprosessi suoritetaan.
-
Salaisuus, joka saa arvon
$DBHOST(jokopostgresqltaimariadb) ja sisältää seuraavat avaimet:database-user,database-passwordjadatabase-name. Tämä salaisuus luodaan rclonen mallipohjassa, mutta se täytyy luoda käsin, jos Postgres tai MariaDB toimii Rahdin ulkopuolella. -
ACCESS_KEYjaSECRET_KEYAltaaseen pääsyä varten. Saat ne tekemällä seuraavasti:
Siirry sitten kohtaan OpenRC download, lataa OpenStack RC File v2.0, suorita source sille ja anna salasanasi pyydettäessä:
$ source ~/Downloads/project_XXXXXXX-openrc.sh
Please enter your OpenStack Password for project project_XXXXXXX as user <USER>:
Lopuksi voit luoda käyttöoikeustiedot:
Tai jos olet jo luonut käyttöoikeustiedot, voit näyttää ne näin:
- Allas-ämpäri/kontti. Voit luoda sen selainkäyttöliittymässä tai käyttämällä
rclonea.
Lisää CronJob
Ensin sinun täytyy kloonata repositorio, jossa mallipohja on, ja lisätä se siihen Rahdin nimiavaruuteen, jossa Postgres tai MariaDB toimii:
git clone https://github.com/cscfi/rclone-template.git -b psql
cd rclone-template
oc create -f rclone.yaml
Kun mallipohja on lisätty nimiavaruuteesi, sinun tarvitsee vain ottaa se käyttöön:
$ oc process rclone \
ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \
SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \
BUCKET_DIR=existing_bucket/existing/path \
DBHOST=postgresql \ # tai mariadb
SCHEDULE="0 4 * * *" | oc create -f -
Tämä suorittaa varmuuskopiointiprosessin joka päivä klo 4.00. Voit muuttaa aikataulua; katso viitteeksi https://en.wikipedia.org/wiki/Cron. Varmuuskopioita ei ylikirjoiteta, koska mukaan otetaan varmuuskopioinnin aloituspäivä ja -aika.
Lisätietoa varmuuskopiointi- ja palautuskomentoihin löydät täältä:
-
PostgreSQL: Tietokannan varmuuskopiointi ja Tietokannan palautus
-
MariaDB: Tietokannan varmuuskopiointi ja Tietokannan palautus