Paikallisen PostgreSQL-tietokannan siirtäminen Azureen

Valmis

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.

Näyttökuva, jossa näkyy Azure Database for PostgreSQL:n joustavien palvelinten kohde Azure-portaalissa.

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.

Näyttökuva, jossa näkyy Azure-tietokannan mallimääritys PostgreSQL:n joustavalle palvelimelle Azure-portaalissa.

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:

  1. Valitse Azure-portaalin vasemmasta valikkorivistä Kaikki palvelut.
  2. Valitse Kaikki palvelut -sivulta Tilaukset-.
  3. Valitse tilauksesi tilaukset sivulta.
  4. Valitse tilaussivulla asetukset -kohdassa Resurssinpalveluntarjoajat.
  5. Kirjoita suodata nimen mukaan -ruutuun DataMigration, ja valitse sitten Microsoft.DataMigration.
  6. Valitse Rekisteröija odota, että Status - muuttuu arvoksi Registered. Sinun täytyy ehkä valita Päivitä, jotta näet, minkä tilan haluat muuttaa.
    kuva, jossa näkyy Resurssipalveluntarjoajien sivu. Käyttäjä rekisteröi Microsoft.DataMigration-resurssipalvelun

Kun resurssipalvelu on rekisteröity, voit luoda palvelun. Valitse Luo resurssin -komento vasemmasta valikkorivistä ja hae Azure-tietokantojen siirtopalvelun.

kuva, joka näyttää ensimmäisen sivun, kun Luot 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.

kuvan, jossa näkyvät Azure-tietokantojen siirtopalvelun määritykset. Käyttäjä on valinnut Premium-hinnoittelutason

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.

kuvan, jossa näkyy juuri luotu Azure-tietokantojen siirtopalvelu.

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.

kuvan, jossa näkyvät siirtoprojektin ominaisuudet ja ohjeet.

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 -.
    kuvan, jossa näkyy siirron yhteenvetosivu.

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.

kuva, joka näyttää siirtymistoiminnon aktiviteetin tilan sivun. Siirto on siirtänyt kaikki nykyiset tiedot, ja se on valmis siirtymään uuteen tietokantaan.

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ä.

kuva, jossa näkyvät siirtotoiminnan tilastotiedot.

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ä.

Kuva Complete cutover -sivusta.

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.

  1. Vie rakenne bash-kehotteen pg_dump-komennolla:

    pg_dump -o -h [source database server] -U [user name] -d [database] -s > db_schema.sql
    
  2. Vie tiedot toiseen tiedostoon pg_dump-komennolla:

    pg_dump -o -h [source database server] -U [user name] -d [database] -a > db_data.sql
    

    Tässä vaiheessa db_schema.sql ja db_data.sql ovat SQL-komentosarjoja, joita muokkaat tekstieditorilla.

  3. 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]
    
  4. Tuo rakenne kohdetietokantaan psql-komennolla:

    psql -d [target database name] -h [server name in Azure Database for PostgreSQL] -U [user name] -f db_schema.sql
    
  5. Tuo 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ä.

  1. 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.bak
    
  2. Luo kohdetietokanta Azure-tietokannassa PostgreSQL:lle:

    az postgres db create \
        --name [database name] \
        --server-name [server name] \
        --resource-group [azure resource group] \
    
  3. 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