Een Oracle-database maken in een Azure-VM
Van toepassing op: ✔️ Virtuele Linux-machines
In dit artikel wordt beschreven hoe u de Azure CLI gebruikt om een virtuele Azure-machine (VM) te implementeren vanuit de installatiekopieën van de Oracle Marketplace-galerie om een Oracle Database 19c-database te maken. Nadat u de server hebt geïmplementeerd, verbindt u de server via SSH om de Oracle-database te configureren.
Vereisten
-
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
Azure Cloud Shell of de Azure CLI.
U kunt de Azure CLI-opdrachten in deze quickstart interactief uitvoeren in Azure Cloud Shell. Als u de opdrachten in Cloud Shell wilt uitvoeren, selecteert u Cloudshell openen in de rechterbovenhoek van een codeblok. Selecteer Kopiëren om de code te kopiëren en plak deze in Cloud Shell om deze uit te voeren. U kunt Cloud Shell ook uitvoeren vanuit Azure Portal. Cloud Shell maakt altijd gebruik van de nieuwste versie van de Azure CLI.
U kunt azure CLI ook lokaal installeren om de opdrachten uit te voeren. Voor de stappen in dit artikel is Azure CLI versie 2.0.4 of hoger vereist. Voer az version uit om uw geïnstalleerde versie en afhankelijke bibliotheken te zien en voer az upgrade uit om een upgrade uit te voeren. Als u een lokale installatie gebruikt, meldt u zich aan bij Azure met behulp van de opdracht az login .
Resourcegroep maken
Een resourcegroep maken met de opdracht az group create. Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.
In het volgende voorbeeld wordt een resourcegroep met de naam rg-oracle gemaakt op de locatie eastus .
az group create --name rg-oracle --location eastus
Notitie
In deze quickstart maakt u een Standard_DS2_v2 SKU-VM in de regio VS - oost. Gebruik de opdracht az vm list-skus om de lijst met ondersteunde SKU's per regio weer te geven.
Virtuele machine maken
Maak een virtuele machine (VM) met de opdracht az vm create .
In het volgende voorbeeld wordt een VM met de naam vmoracle19c gemaakt. Er worden ook SSH-sleutels gemaakt als deze nog niet bestaan op een standaardsleutellocatie. Als u een specifieke set sleutels wilt gebruiken, kunt u de --ssh-key-value
optie gebruiken met de opdracht.
az vm create \
--name vmoracle19c \
--resource-group rg-oracle \
--image Oracle:oracle-database-19-3:oracle-database-19-0904:latest \
--size Standard_DS2_v2 \
--admin-username azureuser \
--generate-ssh-keys \
--public-ip-address-allocation static \
--public-ip-address-dns-name vmoracle19c
Nadat u de VM hebt gemaakt, geeft de Azure CLI informatie weer die lijkt op het volgende voorbeeld. Noteer de waarde voor de publicIpAddress
eigenschap. U gebruikt dit IP-adres voor toegang tot de VIRTUELE machine.
{
"fqdns": "",
"id": "/subscriptions/{snip}/resourceGroups/rg-oracle/providers/Microsoft.Compute/virtualMachines/vmoracle19c",
"location": "eastus",
"macAddress": "00-0D-3A-36-2F-56",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "13.64.104.241",
"resourceGroup": "rg-oracle"
}
Schijf maken voor Oracle-gegevensbestanden
Maak en koppel een nieuwe schijf voor Oracle-gegevensbestanden en een snel herstelgebied (FRA) met de opdracht az vm disk attach .
In het volgende voorbeeld wordt een schijf met de naam oradata01 gemaakt.
az vm disk attach \
--name oradata01 --new \
--resource-group rg-oracle \
--size-gb 64 --sku StandardSSD_LRS \
--vm-name vmoracle19c
Poorten openen voor connectiviteit
In deze taak moet u enkele externe eindpunten configureren voor de databaselistener die moet worden gebruikt door de Azure-netwerkbeveiligingsgroep (NSG) in te stellen die de VIRTUELE machine beveiligt.
Maak de NSG voor de virtuele machine met de opdracht az network nsg create . Met deze opdracht maakt u de vmoracle19cNSG NSG voor regels voor het beheren van de toegang tot de VM:
az network nsg create --resource-group rg-oracle --name vmoracle19cNSG
Maak een NSG-regel met de opdracht az network nsg rule create . Met deze opdracht maakt u de regel allow-oracle NSG om het eindpunt te openen voor externe toegang tot de Oracle-database:
az network nsg rule create \ --resource-group rg-oracle \ --nsg-name vmoracle19cNSG \ --name allow-oracle \ --protocol tcp \ --priority 1001 \ --destination-port-range 1521
Maak een tweede NSG-regel om het eindpunt te openen voor externe toegang tot Oracle. Met deze opdracht maakt u de regel allow-oracle-EM NSG:
az network nsg rule create \ --resource-group rg-oracle \ --nsg-name vmoracle19cNSG \ --name allow-oracle-EM \ --protocol tcp \ --priority 1002 \ --destination-port-range 5502
Gebruik indien nodig de opdracht az network public-ip show om het openbare IP-adres van uw VM op te halen:
az network public-ip show \ --resource-group rg-oracle \ --name vmoracle19cPublicIP \ --query "ipAddress" \ --output tsv
VM-omgeving voorbereiden
Maak een SSH-sessie met de VIRTUELE machine. Vervang het
<publicIPAddress>
gedeelte door de waarde van het openbare IP-adres voor uw VIRTUELE machine, zoals10.200.300.4
:ssh azureuser@<publicIPAddress>
Overschakelen naar de hoofdgebruiker:
sudo su -
Zoek het laatst gemaakte schijfapparaat dat u wilt opmaken voor het opslaan van Oracle-gegevensbestanden:
ls -alt /dev/sd*|head -1
De uitvoer is vergelijkbaar met dit voorbeeld:
brw-rw----. 1 root disk 8, 16 Dec 8 22:57 /dev/sdc
Als hoofdgebruiker gebruikt u de
parted
opdracht om het apparaat op te maken.Maak eerst een schijflabel:
parted /dev/sdc mklabel gpt
Maak vervolgens een primaire partitie die de hele schijf omvat:
parted -a optimal /dev/sdc mkpart primary 0GB 64GB
Controleer ten slotte de details van het apparaat door de metagegevens ervan af te drukken:
parted /dev/sdc print
De uitvoer is vergelijkbaar met dit voorbeeld:
Model: Msft Virtual Disk (scsi) Disk /dev/sdc: 68.7GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 64.0GB 64.0GB ext4 primary
Maak een bestandssysteem op de apparaatpartitie:
mkfs -t ext4 /dev/sdc1
De uitvoer is vergelijkbaar met dit voorbeeld:
mke2fs 1.42.9 (28-Dec-2013) Discarding device blocks: done Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 3907584 inodes, 15624704 blocks 781235 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2164260864 477 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Een koppelpunt maken:
mkdir /u02
Koppel de schijf:
mount /dev/sdc1 /u02
Machtigingen voor het koppelpunt wijzigen:
chmod 777 /u02
Voeg de koppeling toe aan het /etc/fstab-bestand :
echo "/dev/sdc1 /u02 ext4 defaults 0 0" >> /etc/fstab
Belangrijk
Met deze opdracht wordt het /etc/fstab-bestand gekoppeld zonder een specifieke UUID, waardoor het opnieuw opstarten van de schijf kan worden voorkomen. Voordat u probeert de schijf opnieuw op te starten, moet u de vermelding /etc/fstab bijwerken om een UUID voor het koppelpunt op te nemen.
Werk het bestand /etc/hosts bij met het openbare IP-adres en de hostnaam van het adres. Wijzig de
<Public IP>
en twee<VMname>
delen zodat deze overeenkomen met de werkelijke waarden:echo "<Public IP> <VMname>.eastus.cloudapp.azure.com <VMname>" >> /etc/hosts
Voeg de domeinnaam van de virtuele machine toe aan het /etc/hostnaambestand . Bij de volgende opdracht wordt ervan uitgegaan dat de resourcegroep en vm worden gemaakt in de regio Eastus :
sed -i 's/$/\.eastus\.cloudapp\.azure\.com &/' /etc/hostname
Open firewallpoorten.
Omdat SELinux standaard is ingeschakeld op de Marketplace-installatiekopieën, moeten we de firewall openen voor verkeer voor de database die luistert naar poort 1521 en Enterprise Manager Express-poort 5502. Voer de volgende opdrachten uit als hoofdgebruiker:
firewall-cmd --zone=public --add-port=1521/tcp --permanent firewall-cmd --zone=public --add-port=5502/tcp --permanent firewall-cmd --reload
De database maken
De Oracle-software is al geïnstalleerd op de Marketplace-installatiekopie. Maak als volgt een voorbeelddatabase.
Schakel over naar de oracle-gebruiker :
sudo su - oracle
Start de databaselistener:
lsnrctl start
De uitvoer lijkt op die in het volgende voorbeeld:
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-OCT-2020 01:58:18 Copyright (c) 1991, 2019, Oracle. All rights reserved. Starting /u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 19.0.0.0.0 - Production Log messages written to /u01/app/oracle/diag/tnslsnr/vmoracle19c/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vmoracle19c.eastus.cloudapp.azure.com)(PORT=1521))) Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 20-OCT-2020 01:58:18 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Log File /u01/app/oracle/diag/tnslsnr/vmoracle19c/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vmoracle19c.eastus.cloudapp.azure.com)(PORT=1521))) The listener supports no services The command completed successfully
Maak een gegevensmap voor de Oracle-gegevensbestanden:
mkdir /u02/oradata
Voer de Database Creation Assistant uit:
dbca -silent \ -createDatabase \ -templateName General_Purpose.dbc \ -gdbname oratest1 \ -sid oratest1 \ -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -sysPassword OraPasswd1 \ -systemPassword OraPasswd1 \ -createAsContainerDatabase false \ -databaseType MULTIPURPOSE \ -automaticMemoryManagement false \ -storageType FS \ -datafileDestination "/u02/oradata/" \ -ignorePreReqs
Het duurt een paar minuten om de database te maken.
De uitvoer lijkt op die in het volgende voorbeeld:
Prepare for db operation 10% complete Copying database files 40% complete Creating and starting Oracle instance 42% complete 46% complete 50% complete 54% complete 60% complete Completing Database Creation 66% complete 69% complete 70% complete Executing Post Configuration Actions 100% complete Database creation complete. For details check the logfiles at: /u01/app/oracle/cfgtoollogs/dbca/oratest1. Database Information: Global Database Name:oratest1 System Identifier(SID):oratest1 Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/oratest1/oratest1.log" for further details.
Oracle-variabelen instellen:
Voordat u verbinding maakt, moet u de omgevingsvariabele
ORACLE_SID
instellen:export ORACLE_SID=oratest1
U moet ook de
ORACLE_SID
variabele toevoegen aan het bashrc-bestand van gebruikersoracle
voor toekomstige aanmeldingen met behulp van de volgende opdracht:echo "export ORACLE_SID=oratest1" >> ~oracle/.bashrc
Databases automatisch opstarten en afsluiten
De Oracle-database wordt standaard niet automatisch gestart wanneer u de virtuele machine opnieuw opstart. Als u de Oracle-database wilt instellen om automatisch te starten, meldt u zich eerst aan als rootgebruiker. Maak en werk vervolgens enkele systeembestanden bij.
Meld u aan als hoofdgebruiker:
sudo su -
Wijzig de automatische opstartvlag van
N
inY
het /etc/oratab-bestand:sed -i 's/:N/:Y/' /etc/oratab
Maak een bestand met de naam /etc/init.d/dbora en voeg de volgende bash-opdracht toe aan het bestand:
#!/bin/sh # chkconfig: 345 99 10 # Description: Oracle auto start-stop script. # # Set ORA_HOME to be equivalent to $ORACLE_HOME. ORA_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 ORA_OWNER=oracle case "$1" in 'start') # Start the Oracle databases: # The following command assumes that the Oracle sign-in # will not prompt the user for any values. # Remove "&" if you don't want startup as a background process. su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" & touch /var/lock/subsys/dbora ;; 'stop') # Stop the Oracle databases: # The following command assumes that the Oracle sign-in # will not prompt the user for any values. su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" & rm -f /var/lock/subsys/dbora ;; esac
Machtigingen voor bestanden wijzigen met de
chmod
opdracht:chgrp dba /etc/init.d/dbora chmod 750 /etc/init.d/dbora
Symbolische koppelingen maken voor opstarten en afsluiten:
ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora
Als u uw wijzigingen wilt testen, start u de VM opnieuw op:
reboot
Resources opschonen
Nadat u klaar bent met het verkennen van uw eerste Oracle-database in Azure en de VM niet meer nodig is, kunt u de opdracht az group delete gebruiken om de resourcegroep, VM en alle gerelateerde resources te verwijderen.
az group delete --name rg-oracle
Volgende stappen
- Uw database in Azure beveiligen met Oracle-back-upstrategieën
- Oracle-oplossingen verkennen in Azure
- Oracle Automated Storage Management installeren en configureren