Geconverteerde schema's implementeren met de Setup Experience

De installatie-ervaring voor schemaconversie genereert automatisch instructies en scripts wanneer de conversiewerkstroom is voltooid. Gebruik deze bestanden om geconverteerde schema's te implementeren naar Azure Database for PostgreSQL. Het genereren van de bestanden implementeert de schema's niet op uw bestemming. U controleert deze en voert het gegenereerde PowerShell- of Bash-script uit in uw implementatieomgeving.

Zie Implementatie voorbereiden met de installatie-ervaring in de zelfstudie voor instructies over het openen van de installatiebestanden vanuit een voltooide conversie.

De gegenereerde bestanden beoordelen

De installatiemap is afhankelijk van het aantal Oracle-schema's dat u selecteert voor conversie. Gebruik het toepasselijke pad ten opzichte van de hoofdmap van de werkruimte:

Oracle-schemaselectie Installatiemap
Eén schema geselecteerd .github\postgres-migrations\<migration-project>\artifacts\oracle\<schema-name>\setup
Meerdere schema's geselecteerd .github\postgres-migrations\<migration-project>\artifacts\oracle\_migration\setup

Vervang <migration-project> door de naam van de migratieprojectmap, zoals Mig001. Als u één schema selecteert, vervangt u deze door <schema-name> de naam van de geselecteerde Oracle-schemamap, zoals HR. Als u meerdere schema's selecteert, _migration is dit de werkelijke mapnaam, niet een tijdelijke aanduiding.

De locatie weerspiegelt de geselecteerde Oracle-schema's, niet het aantal PostgreSQL-schema's dat in het pakket is opgenomen. Bekijk setup_instructions.md het implementatiebereik van het pakket.

Bestand of map Purpose
setup_instructions.md Implementatiespecifieke vereisten, opdrachten, optionele parameters en hulp bij probleemoplossing.
setup.ps1 Implementatierunner voor Windows PowerShell.
setup.sh Uitrolrunner voor Bash op Linux of macOS.
sql Ondersteunt gereedheidscontroles, extensiescripts, verificatiequery's en manifesten die door de uitvoerders worden gebruikt.
reports en logs Uitvoer die wordt gegenereerd wanneer u de installatiescripts uitvoert.

Houd de installatiemap binnen het volledige migratieproject. De runners verwijzen naar de conversiesessie deploy.sql in de map op hetzelfde niveau convert . Het kopiëren van alleen de installatiemap is niet voldoende.

Bekijk de gegenereerde instructies en deployment-SQL voordat u ze uitvoert. Controleer of de SQL de objectcorrecties bevat die u wilt implementeren. Als u het project overzet naar een andere omgeving, behoud de directorystructuur en volg de vereisten voor gegevensverwerking van uw organisatie. Verwijder inloggegevens en andere gevoelige gegevens uit bestanden die u deelt.

Bereid de bestemming voor

Gebruik de vereisten in uw gegenereerde setup_instructions.md, in plaats van de vereisten uit een andere conversie te kopiëren:

  • Server- en clientversies. Bereid een Azure Database for PostgreSQL flexible server voor met de vereiste PostgreSQL-versie. De hoofdversie van de psqlclient moet overeenkomen met de hoofdversie van de conversie-server die is opgenomen in het gegenereerde installatiepakket. Installeer de client op de computer waarop het installatieprogramma wordt uitgevoerd en maak die beschikbaar op PATH. Setup kan een database op uw server maken, maar richt de Azure-server niet in.
  • Shell en bestandstoegang. Gebruik PowerShell 5.1 of later op Windows, of Bash op Linux of macOS. De runner heeft schrijftoegang nodig tot de mappen logs en reports.
  • Netwerktoegang. Sta toe dat de installatiecomputer verbinding maakt met de doelserver van Azure Database for PostgreSQL en de PostgreSQL-poort.
  • Extensies. Controleer de vereiste extensies en voeg ondersteunde extensies toe aan de toelatingslijst van de Azure Database for PostgreSQL-doelserver vóór de implementatie. Zie Extensies toestaan in Azure Database for PostgreSQL.
  • Machtigingen. Gebruik een account met de database-, schema-, objectaanmaak- en extensie-installatiemachtigingen die in de gegenereerde instructies zijn opgegeven. De modus 'Nieuwe database' vereist ook toestemming om de database aan te maken.
  • Authentication. Gebruik de verborgen wachtwoordprompt van het script, een PostgreSQL-wachtwoordbestand of het goedgekeurde geheimbeheerproces van uw organisatie. Neem geen wachtwoorden op in deploymentscripts.

Controleer of de client beschikbaar is:

psql --version

De gegenereerde instructies weerspiegelen de conversieomgeving, inclusief de PostgreSQL-versie en extensievereisten. Bekijk eventuele verschillen tussen bestemmingen vóór de implementatie.

Een databasemodus kiezen

Beide runners ondersteunen deze modi:

Mode Gedrag
Nieuwe database De standaardmodus. Hiermee maakt u een database op de doelserver van Azure Database for PostgreSQL bij implementatie. De aangevraagde databasenaam mag niet al bestaan.
Bestaande database Maakt gebruik van de database die u opgeeft. Als de doelschema's objecten bevatten, vereist de installatie expliciete bevestiging voordat u doorgaat.

Voor een interactieve uitvoering vraagt het script om ontbrekende host-, gebruikers- en databasewaarden. Controleer de weergegeven bestemming, databasemodus, schema's en bewerking voordat u dit bevestigt.

Gereedheid controleren zonder uit te rollen

Open een terminal in de gegenereerde installatiemap. Kies de opdracht voor uw besturingssysteem en de beoogde databasemodus:

Databasemodus Windows PowerShell Linux of macOS
Nieuwe database .\setup.ps1 -ValidateOnly bash setup.sh --validate-only
Bestaande database .\setup.ps1 -DatabaseMode existing -ValidateOnly bash setup.sh --database-mode existing --validate-only

De modus Alleen valideren maakt verbinding met de server en schrijft lokale rapporten en logboeken. De doeldatabase wordt niet gemaakt, er worden geen extensies geïnstalleerd en geen geconverteerde objecten geïmplementeerd.

De gereedheidscontroles hebben betrekking op connectiviteit, PostgreSQL-versie, databasecodering en locale-instellingen, machtigingen, bezetting van doelschema's en beschikbaarheid van extensies. Bekijk waarschuwingen en blokkeringsfouten.

In de modus nieuwe database wordt voor validatie de onderhoudsdatabase gebruikt omdat de doeldatabase nog niet bestaat. Controles waarvoor de doeldatabase is vereist, worden gemarkeerd als overgeslagen. Een geslaagde validatie-uitvoering is geen bevestiging dat deze overgeslagen controles zijn geslaagd.

Wanneer de validatie is voltooid, controleer validation_report_<timestamp>.md in de map reports. Los de gemelde problemen op vóór de uitrol. Als de validatie vroeg stopt, controleer eerst de console-uitvoer en vervolgens een logboek of rapport dat is gemaakt.

De geconverteerde schema's implementeren

Gebruik dezelfde doel- en databasemodus die u hebt geselecteerd. Voer vanuit de installatiemap de juiste opdracht uit zonder -ValidateOnly (PowerShell) of --validate-only (Bash):

Databasemodus Windows PowerShell Linux of macOS
Nieuwe database .\setup.ps1 bash setup.sh
Bestaande database .\setup.ps1 -DatabaseMode existing bash setup.sh --database-mode existing

De runner bereidt de database voor, controleert gereedheid, installeert vereiste ondersteunde extensies, voert de geconverteerde implementatie-SQL uit en controleert de resulterende objecten en extensies.

Controleer de implementatie-SQL voordat u een niet-lege bestemming goedkeurt, omdat deze bestaande objecten kan wijzigen.

Important

Beide databasemodi kunnen na een fout wijzigingen achterlaten. In de modus nieuwe database wordt de database gemaakt voordat de gereedheidscontroles van de bestemming worden uitgevoerd, waardoor een mislukte controle deze database kan laten staan. Deployment SQL kan ook wijzigingen in afzonderlijke transacties toepassen. Controleer de doelstatus voordat u het opnieuw probeert; ga er niet van uit dat een mislukte implementatie eerdere wijzigingen heeft teruggedraaid.

Gebruik setup_instructions.md voor optionele poort-, TLS-, landinstellingen en automatiseringsparameters. Voor een niet-interactieve uitvoering geeft u de host,gebruiker, database en verificatiegegevens van tevoren op. Een niet-leeg bestaand doel vereist ook expliciete bevestiging via -AllowNonEmptyExisting in Windows of --allow-nonempty-existing in Linux of macOS.

Implementatieresultaten bekijken

Lees de implementatieresultaten voordat u doorgaat met gegevens- of toepassingsvalidatie. Een conversiestatus alleen bevestigt niet dat naar deze bestemming is uitgerold.

Directory Uitvoer Wat u moet controleren
reports deployment_report_<timestamp>.md Uitgerolde en niet-uitgerolde totalen, extensieresultaten, resultaten per objecttype en redenen waarom objecten niet zijn uitgerold.
reports verification_<timestamp>.csv Gedetailleerde resultaten van objectverificatie.
reports extensions_<timestamp>.csv Gedetailleerde extensieresultaten.
reports preflight_<timestamp>.csv Resultaten van readiness-check.
logs setup_<timestamp>.log Uitvoeringsberichten en -fouten.

Uitvoeringen met alleen valideren produceren een validatierapport in plaats van een implementatierapport. Een vroege fout, zoals een probleem met bestandstoegang of shell-versie, kan alleen console-uitvoer achterlaten.

Gebruik de afsluitcode van de runner samen met deze uitvoer:

Afsluitcode Meaning
0 De aangevraagde bewerking is geslaagd. Voor Alleen valideren is de gereedheidsvalidatie voltooid zonder implementatie.
1 Invoer-, clienttoepassings- of fout door gebruikersannulering.
2 Fout bij setup-package/configuratie, verbinding, database, readiness-check of extensie-installatie.
3 Uitrol, verificatie, rapportage of onverwachte runnerfout.
4 Bij de verificatie zijn objecten of extensies geïdentificeerd die niet zijn geïmplementeerd.

Ga alleen door met automatisering voor exitcode 0. Bekijk de beschikbare uitvoer voor alle andere codes en los de gemelde problemen op voordat u doorgaat.

Het geïmplementeerde schema valideren

Een geslaagde installatie brengt geen gedragsequivalentie met Oracle tot stand en betekent niet dat het systeem productiegereed is. Test onafhankelijk de verwerking van gegevens, afhankelijkheden, bedrijfslogica en toepassingsgedrag in de doelomgeving.

Controleer alle objecten of extensies die niet zijn uitgerold en voltooi de remediatie. Pas afzonderlijk beheerde beveiligingsconfiguratie toe en trek tijdelijke installatiebevoegdheden in wanneer deze niet meer nodig zijn.