Paikallisen PostgreSQL-tietokannan siirtäminen Azureen
Kun yritys on päättänyt siirtyä Azure-tietokantaan PostgreSQL:ää varten, seuraava vaihe on suunnitella paikallisten tietokantojen siirtäminen ja valita työkalut tietojen siirtämiseksi.
Tutustuttuasi siihen, miten Azure Database for PostgreSQL tukee ja skaalaa PostgreSQL:n Azuressa, sinun kannattaa nyt miettiä, miten siirrät olemassa olevat paikalliset tietokannat.
Tässä osiossa opit luomaan Azure-tietokannan esiintymän PostgreSQL-palvelua varten Azure-portaalin avulla. Jos haluat luoda useita tämän palvelun esiintymiä, voit luoda prosessin komentosarjan Azure CLI:n avulla.
Luo Azure-tietokanta PostgreSQL:n joustaville palvelimille
Kirjoita Azure-portaalissa hakuruutuun Azure-tietokanta joustaville PostgreSQL-palvelimille ja valitse Azure-tietokanta joustaville PostgreSQL-palvelimille.
Valitse LuoJoustava palvelin -pääruudussa ja anna palvelun tiedot. Näitä tietoja ovat muun muassa seuraavat:
Resource Group. Palvelimen resurssiryhmä.
Palvelimen nimi. On oltava yksilöivä nimi 3–63 merkin välissä ja sisältää vain pieniä kirjaimia, numeroita ja tavuviivoja.
Alue. Palvelimen alue.
PostgreSQL-versio: Valitse versio, joka vastaa paikallista tietokantaa, jota olet siirtämässä.
kuormituksen tyyppi. Valitse vaihtoehto kuormituksesi perusteella.
-
- Laskenta + tallennus. Valitse Määritä palvelimen, jos haluat määrittää hinnoittelutason ja määrittää resurssit, joita tarvitset palvelua varten. Vaihtoehdot käsiteltiin oppitunnilla 1. Muista, että jos valitset Yleiskäsittely- tai hinnoittelutasoille optimoi dun muistin, voit skaalata näennäissuoritinytimien määrää ylös- ja alaspäin myöhemmin. Et kuitenkaan voi pienentää tallennustilan määrää. Se voi kasvaa vasta, kun palvelin on luotu.
Järjestelmänvalvojan käyttäjänimi. Sen käyttäjätilin nimi, jonka luot järjestelmänvalvojan oikeuksilla. Azure luo joitakin tilejä omaan käyttöönsä. Et voi käyttää azure_superuser-, azure_pg_admin-, järjestelmänvalvojan, järjestelmänvalvojan, pääkansiota, vieraskäyttäjää, julkista- pg_.
Password. On oltava 8–128 merkkiä. Sen on sisällettävä isojen ja pienten kirjainten seos, numerot ja ei-aakkosnumeeriset merkit.
Ota palvelu käyttöön valitsemalla Review + Create. Käyttöönotto kestää useita minuutteja.
Kun palvelu on otettu käyttöön, valitse Connection Security -asetus ja lisää asianmukaisen palomuurisäännön, jotta asiakkaat voivat muodostaa yhteyden. Ohjeet ovat ohjeaihe essa Asiakasyhteydet oppitunnilla 1. Sinun täytyy myös valita vaihtoehto Salli Azure-palveluiden käyttö.
Azure-tietokannan luominen PostgreSQL-esiintymää varten Azure CLI:n avulla
Voit luoda Azure-tietokannan esiintymän PostgreSQL:lle az postgres flexible-server create-komennolla. Alla olevassa lausekkeessa näkyy esimerkki, joka luo joustavan palvelinesiintymän. Useimmat parametrit ovat itsestään selviä, lukuun ottamatta seuraavia:
- sku-name. Muodostat tämän hinnoittelutason yhdistelmästä (B Perus-, GP- Yleiskäyttöä varten ja MO for Memory Optimized), tietojenkäsittelyn luonti (Gen4 tai Gen5) ja virtuaalisten suoritinydinten määrä. Alla olevassa esimerkissä palvelin luodaan yleisen tarkoituksen hinnoittelutasolla, jossa on neljä Gen5-sukupolven suoritinydintä.
-
tallennustilan koko. Tämä on megatavuissa määritetyn levytallennustilan määrä. Seuraavassa esimerkissä kohdenetaan 10 gigatavua:
az postgres flexible-server create \ --location northeurope --resource-group testGroup \ --name testserver --admin-user username --admin-password password \ --sku-name Standard_B1ms --tier Burstable --public-access 153.24.26.117 --storage-size 128 \ --tags "key=value" --version 13 --high-availability Enabled --zone 1 \ --standby-zone 3
Online-siirron suorittaminen
Voit tehdä verkkosiirtymisen paikallisesta PostgreSQL-asennuksesta Azure Database for PostgreSQL:iin Azure-tietokantojen siirtopalvelun avulla.
Verkkoskenaariossa Azure-tietokantojen siirtopalvelu kopioi kaikki olemassa olevat tietosi Azureen ja suorittaa sitten jatkuvasti synkronointitoiminnon lähdetietokannasta. Paikalliseen järjestelmään kohdistuvat uudet tapahtumat kopioidaan uuteen tietokantaan Azuressa. Tämä prosessi jatkuu, kunnes olet määrittänyt asiakassovellukset käyttämään uutta tietokantaa Azuressa, jolloin lopetat synkronointitoiminnon.
Määritä lähdepalvelin ja vie rakenne
Ensimmäinen vaihe online-siirron suorittamisessa on valmistella lähdepalvelin tukemaan täyttä kirjoittamisen edellä olevaa kirjaamista. Muokkaa lähdepalvelimessa postgresql.config-tiedostoa ja määritä seuraavat kirjoittamisen edellä olevat kirjaamisen parametrit. Jos haluat muuttaa näitä parametreja, käynnistä palvelin uudelleen – tämä tehdään vain silloin, kun järjestelmän odotetaan olevan quiescent:
wal_level = logical
max_replication_slots = 5
max_wal_senders = 10
Kun olet käynnistänyt palvelimen uudelleen, vie lähdetietokannan rakenne pg_dump-apuohjelmalla:
pg_dump -o -h [server host] -U [user name] -d [database name] -s > db_schema.sql
Tee lopuksi luettelo kaikista tietokannan käyttämistä laajennuksista. Sinun on otettava nämä laajennukset käyttöön kohdetietokannassa. Voit tehdä tämän joko komennolla \dx plsql tai suorittamalla seuraavan kyselyn:
SELECT *
FROM pg_extension;
Kohdetietokannan luominen ja rakenteen tuominen
Seuraava vaihe on luoda kohdetietokanta Azure Database for PostgreSQL -palveluun. Voit käyttää tuttua työkalua, kuten pgAdmin, palvelimeen yhdistämiseen, tai voit käyttää Azure-komentorivikäyttöliittymää seuraavassa esimerkissä:
az postgres db create \
--name [database name] \
--server-name [server name] \
--resource-group [azure resource group]
Ota kohdetietokannassa käyttöön lähteiden tietokannan käyttämät laajennukset.
Tuo rakenne kohdetietokantaan. Suorita seuraava komento tietokoneessa, joka pitää db_schema.sql -tiedostoa:
psql -h [Azure Database for PostgreSQL host] -U [user name] -d [database name] -f db_schema.sql
Poista kaikki viitekohdetietokannasta. Tarvitset tätä vaihetta, koska tietoja ei välttämättä siirretä missään tietyssä järjestyksessä, mikä saattaa aiheuttaa viite-eheysrikkomuksia, jotka aiheuttavat siirtoprosessin epäonnistumisen. Kirjaa kuitenkin kaikki viiteavaimet, sillä ne on luotava uudelleen myöhemmin. Suorita seuraava SQL-lauseke psql-apuohjelmalla löytääksesi kaikki tietokannan viiteavaimet ja luoda komentosarjan, joka poistaa ne:
SELECT Queries.tablename
,concat('alter table ', Queries.tablename, ' ', STRING_AGG(concat('DROP CONSTRAINT ', Queries.foreignkey), ',')) as DropQuery
,concat('alter table ', Queries.tablename, ' ',
STRING_AGG(concat('ADD CONSTRAINT ', Queries.foreignkey, ' FOREIGN KEY (', column_name, ')', 'REFERENCES ', foreign_table_name, '(', foreign_column_name, ')' ), ',')) as AddQuery
FROM
(SELECT
tc.table_schema,
tc.constraint_name as foreignkey,
tc.table_name as tableName,
kcu.column_name,
ccu.table_schema AS foreign_table_schema,
ccu.table_name AS foreign_table_name,
ccu.column_name AS foreign_column_name
FROM
information_schema.table_constraints AS tc
JOIN information_schema.key_column_usage AS kcu
ON tc.constraint_name = kcu.constraint_name
AND tc.table_schema = kcu.table_schema
JOIN information_schema.constraint_column_usage AS ccu
ON ccu.constraint_name = tc.constraint_name
AND ccu.table_schema = tc.table_schema
WHERE constraint_type = 'FOREIGN KEY') Queries
GROUP BY Queries.tablename;
Poista kaikki käynnistimet käytöstä kohdetietokannassa – tähän on kaksi syytä:
- Se auttaa optimoimaan siirtoprosessin tietojen kopioinnin yhteydessä.
- Käynnistimiä käytetään usein monimutkaisten viite-eheyden muotojen käyttöönottoon, ja aiemmin kuvatuista syistä tämäntyyppisen eheyden tarkistus voi epäonnistua, kun tietoja siirretään. Etsi tietokannasta kaikki käynnistimet käyttämällä seuraavaa SQL-lausetta ja luo komentosarja, joka poistaa ne käytöstä:
SELECT concat ('alter table ', event_object_table, ' disable trigger ', trigger_name) FROM information_schema.triggers;
Huomautus
Voit etsiä käynnistimen tekstin psql:n komennolla \df+.
Azure-tietokantojen siirtopalvelun esiintymän luominen
Voit nyt luoda Azure-tietokantojen siirtopalvelun esiintymän Azure-portaalissa.
Ennen kuin luot Azure-tietokantojen siirtopalvelun esiintymän, sinun on rekisteröitävä Microsoft.DataMigration resurssipalvelussa tilauksessasi. Voit tehdä tämän seuraavasti:
- Valitse Azure-portaalin vasemmasta valikkorivistä Kaikki palvelut.
- Valitse Kaikki palvelut -sivulta Tilaukset-.
- Valitse tilauksesi tilaukset sivulta.
- Valitse tilaussivulla asetukset -kohdassa Resurssinpalveluntarjoajat.
- Kirjoita suodata nimen mukaan -ruutuun DataMigration, ja valitse sitten Microsoft.DataMigration.
- Valitse Rekisteröija odota, että Status - muuttuu arvoksi Registered. Sinun täytyy ehkä valita Päivitä, jotta näet, minkä tilan haluat muuttaa.
Kun resurssipalvelu on rekisteröity, voit luoda palvelun. Valitse Luo resurssin -komento vasemmasta valikkorivistä ja hae Azure-tietokantojen siirtopalvelun.
Anna Luo siirtopalvelu -sivulla palvelun esiintymäsi nimi. Määritä tilaus – tämän on oltava sama tilaus, johon olet rekisteröinyt resurssipalvelun – resurssiryhmä ja sijainti. Sinun on tarjottava myös näennäisverkko, koska tietokannan siirtopalvelu on riippuvainen tälle näennäisverkolle luodusta palomuurista tarvittavan suojauksen tarjoamiseksi. Jos siirrät tietokantoja Azure-näennäiskoneista, voit ehkä sijoittaa tietokantojen siirtopalvelun samaan näennäisverkkoon, jota nämä näennäiskoneet käyttävät. Hinnoittelutaso määrittää, kuinka monta virtuaalista suoritinydintä palvelussa on käytettävissä. Jos haluat tehdä verkkosi siirron, sinun on valittava Premium taso. Standard -taso tukee vain offline-siirtoa.
Odota, että palvelu otetaan käyttöön, ennen kuin jatkat. Tämä kestää muutaman minuutin.
Siirtoprojektin luominen tietokannan siirtopalvelun avulla
Voit nyt suorittaa online-siirron tietokantapalvelun esiintymän avulla. Voit tehdä tämän luomalla uuden tietokantojen siirtoprojektin. Siirry siirtopalveluesiintymän sivulle ja valitse Uusi siirtoprojektin.
Määritä Uusi siirtoprojekti -sivulla lähdepalvelintyypiksi PostgreSQL-, määritä kohdepalvelintyypiksi Azure-tietokanta PostgreSQL-, ja valitse Online-tietojen siirron. Aktiviteetin tyyppi -sivulla on luettelo vaiheista, jotka sinun on suoritettava lähdepalvelimessa online-siirron mahdollistamiseksi. Uusi siirtoprojekti -sivun alareunassa oleva teksti kuvaa skeeman siirtämisprosessia kohteeseen.
Varmista, että olet suorittanut nämä vaiheet, ja valitse sitten Luo ja suorita aktiviteetin.
Siirtoaktiviteetin luominen ja suorittaminen
Uusi siirtoprojekti käynnistää ohjatun toiminnon, joka opastaa sinua prosessissa. Annat seuraavat tiedot:
- Lisää lähdetiedot --sivulla lähdepalvelimen osoite, lähdetietokanta ja tili, joka voi muodostaa yhteyden tähän tietokantaan ja noutaa tiedot. Tilillä on oltava SUPERUSER- oikeudet siirron suorittamiseksi.
- Määritä Target - sivulla Azure Database for PostgreSQL -palvelusi osoite, tietokanta, johon haluat siirtää tiedot sekä järjestelmänvalvojan oikeudet omaavan tilin tiedot.
- Valitse Map to target databases -sivulla lähdetietokanta ja kohdetietokanta. Voit siirtää yksittäisen tietokannan tai useita tietokantoja.
- Määritä Siirtoasetukset - sivulla kaikki lisäasetukset, jotka haluat määrittää, kuten taulukoiden enimmäismäärä, jotka ladataan rinnakkain.
- Kirjoita Siirron yhteenveto -sivulle aktiviteetin nimi ja valitse sitten Suorita siirto -.
Aktiviteetin tila -sivu näyttää siirron edistymisen ja mahdollisesti ilmenneet virheet. Jos siirto epäonnistuu, korjaat ongelmat ja yrität toimintoa uudelleen. Jos olet tekemässä online-siirtoa, tilaksi muuttuu Valmis siirtymään sen jälkeen, kun olemassa olevat tiedot on siirretty. Toiminto kuitenkin jatkuu käynnissä, jotta voidaan siirtää mahdolliset lisämuutokset, jotka tulevat näkyviin, kun sovellukset käyttävät alkuperäistä tietokantaa aktiivisena.
Viiteavainten ja käynnistimien palauttaminen
Tässä vaiheessa olet siirtänyt tiedot, ja sovellukset voivat aloittaa niiden käytön. Sinun tulee luoda uudelleen viiteavaimet, jotka poistit ennen tietojen siirtämistä, ja palauttaa kaikki käynnistimet. Jos jotkin sovellukset ovat edelleen yhteydessä alkuperäiseen tietokantaan, etukäteen kirjoitettava kirjaaminen varmistaa, että Azuren kohdetietokanta on aina ajan tasalla. Viiteavaimet ja -käynnistimet eivät vaikuta yleisesti kirjoitettavaan kirjaamiseen.
Siirry uuteen tietokantaan
Kun kaikki sovellukset on siirretty uuteen tietokantaan, voit suorittaa siirtoprosessin ja siirtyä uuteen tietokantaan. Valitse aktiviteetin tila -sivulla siirrettävän tietokannan nimi, jotta näet yhteenvedon suoritetusta työstä.
Valitse Aloita leikkaus. Näkyviin tulee sivu, jossa sinua pyydetään vahvistamaan, että toiminto on valmis. Tässä vaiheessa kaikki jäljellä olevat merkinnät lähdetietokannan kirjoituslokista tyhjennetään, ja päivitykset keskeytetään. Lähdetietokantaan tehtyjä lisämuutoksia ei lisätä.
Offline-siirron suorittaminen
Offline-siirto ottaa lähdetietokannasta tilannevedoksen tiettynä ajankohtana ja kopioi nämä tiedot kohdetietokantaan. Lähdetietoihin tilannevedoksen otmisen jälkeen tehdyt muutokset eivät näy kohdetietokannassa.
Sinulla on vähintään kaksi vaihtoehtoa, jos haluat suorittaa offline-siirron Azure-tietokantaan PostgreSQL:lle tai PostgreSQL-palvelimeen, joka toimii muualla, kuten Azure-näennäiskoneessa:
- Vie rakenne ja tiedot lähdetietokannasta pg_dump -apuohjelman avulla ja tuo rakenne ja tiedot kohdetietokantaan psql-apuohjelman avulla. Tämän tekniikan avulla voit muokata, muotoilla uudelleen ja puhdistaa rakenteen ja tiedot tarvittaessa ennen sen siirtämistä kohdetietokantaan.
- Jätä tiedot lähdetietokannasta käyttämällä pg_dump ja palauta tiedot kohdetietokantaan pg_restore avulla. Tämä tekniikka on nopeampi kuin vienti- ja tuontikäyttö, mutta tiedot heitetään muodossa, jota ei voi helposti muuttaa. Käytä tätä lähestymistapaa, jos sinun ei tarvitse muokata rakennetta tai tietoja.
Huomautus
Et voi tällä hetkellä käyttää Azure-tietokantojen siirtopalvelua PostgreSQL-tietokannan offline-siirtoon.
Siirtyminen viemällä ja tuomalla
Siirrä tietokanta vienti- ja tuontimenetelmää käyttämällä seuraavien vaiheiden avulla.
Vie rakenne bash-kehotteen pg_dump-komennolla:
pg_dump -o -h [source database server] -U [user name] -d [database] -s > db_schema.sqlVie tiedot toiseen tiedostoon pg_dump-komennolla:
pg_dump -o -h [source database server] -U [user name] -d [database] -a > db_data.sqlTässä vaiheessa db_schema.sql ja db_data.sql ovat SQL-komentosarjoja, joita muokkaat tekstieditorilla.
Luo kohdetietokanta Azure Database for PostgreSQL:lle. Voit tehdä tämän Azuren komentorivikäyttöliittymän avulla:
az postgres db create \ --name [database name] \ --server-name [server name] \ --resource-group [azure resource group]Tuo rakenne kohdetietokantaan psql-komennolla:
psql -d [target database name] -h [server name in Azure Database for PostgreSQL] -U [user name] -f db_schema.sqlTuo tiedot kohdetietokantaan psql-komennolla:
psql -d [target database name] -h [server name in Azure Database for PostgreSQL] -U [user name] -f db_data.sql
Siirtyminen varmuuskopiointi- ja palautustoiminnon avulla
Näissä vaiheissa kuvataan tietokannan siirtoprosessi varmuuskopiointia ja palauttamista käyttämällä.
Varmuuskopioi tietokanta – Suorita seuraava komento Bash-kehotteen avulla. Määritä sen käyttäjän nimi, jolla on tarvittavat oikeudet tietokannan tunnisttamiseen:
pg_dump [database name] -h [source database server] -U [user name] -Fc > database_backup.bakLuo kohdetietokanta Azure-tietokannassa PostgreSQL:lle:
az postgres db create \ --name [database name] \ --server-name [server name] \ --resource-group [azure resource group] \Palauta varmuuskopio uuteen tietokantaan bash-kehotteen pg_restore-komennolla. Määritä sen käyttäjän nimi, jolla on järjestelmänvalvojan oikeudet, Azure Database for PostgreSQL -palvelussa:
pg_restore -d [target database name] -h [server name in Azure Database for PostgreSQL] -Fc -U [user name] database_backup.bak