Erstellen einer Oracle-Datenbank auf einem virtuellem Azure-Computer
Gilt für: ✔️ Virtuelle Linux-Computer
In diesem Artikel wird beschrieben, wie Sie mithilfe der Azure CLI einen virtuellen Azure-Computer (VM) aus dem Oracle Marketplace-Katalogimage bereitstellen, um eine Oracle Database 19c-Datenbank zu erstellen. Nachdem Sie den Server bereitgestellt haben, stellen Sie eine Verbindung mit dem Server über SSH her, um die Oracle-Datenbank zu konfigurieren.
Voraussetzungen
-
Sollten Sie über kein Azure-Abonnement verfügen, können Sie zunächst ein kostenloses Azure-Konto erstellen.
Azure Cloud Shell oder Azure CLI.
Sie können die Azure CLI-Befehle in dieser Schnellstartanleitung interaktiv in Azure Cloud Shell ausführen. Zum Ausführen der Befehle in der Cloud Shell wählen Sie in der oberen rechten Ecke eines Codeblocks Cloud Shell öffnen aus. Wählen Sie Kopieren aus, um den Code zu kopieren, und fügen Sie ihn in Cloud Shell ein, um ihn auszuführen. Sie können Cloud Shell auch innerhalb des Azure-Portals ausführen. Cloud Shell verwendet immer die neueste Version der Azure CLI.
Alternativ können Sie die Azure CLI auch lokal installieren, um die Befehle auszuführen. Für die Schritte in diesem Artikel ist mindestens Version 2.0.4 der Azure CLI erforderlich. Führen Sie den Befehl az version aus, um die installierte Version und abhängige Bibliotheken anzuzeigen, und führen Sie den Befehl az upgrade aus, um ein Upgrade durchzuführen. Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei Azure an.
Ressourcengruppe erstellen
Erstellen Sie mithilfe des Befehls az group create eine Ressourcengruppe. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.
Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen rg-oracle am Standort eastus erstellt.
az group create --name rg-oracle --location eastus
Hinweis
In dieser Schnellstartanleitung wird eine Standard_DS2_v2 SKU-VM in der Region „USA, Osten“ erstellt. Verwenden Sie den Befehl az vm list-skus, um die Liste der unterstützten SKUs nach Region anzuzeigen.
Erstellen eines virtuellen Computers
Erstellen Sie mit dem Befehl az vm create einen virtuellen Computer.
Im folgenden Beispiel wird ein virtueller Computer mit dem Namen vmoracle19c erstellt. Darüber hinaus werden SSH-Schlüssel erstellt, falls sie noch nicht an einem Standardschlüsselspeicherort vorhanden sind. Zum Verwenden eines bestimmten Schlüsselsatzes können Sie die Option --ssh-key-value
für den Befehl angeben.
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
Nach der Erstellung des virtuellen Computers zeigt die Azure CLI Informationen an, die den Informationen im folgenden Beispiel ähneln. Beachten Sie den Wert der Eigenschaft publicIpAddress
. Sie verwenden diese IP-Adresse zum Zugriff auf den virtuellen Computer.
{
"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"
}
Erstellen eines Datenträgers für Oracle-Datendateien
Mit dem Befehl az vm disk attach erstellen Sie einen neuen Datenträger für Oracle-Datendateien und einen Bereich für die schnelle Wiederherstellung (Fast Recovery Area, FRA) und fügen ihn an.
Im folgenden Beispiel wird ein Datenträger mit dem Namen oradata01 erstellt.
az vm disk attach \
--name oradata01 --new \
--resource-group rg-oracle \
--size-gb 64 --sku StandardSSD_LRS \
--vm-name vmoracle19c
Öffnen der Ports für Konnektivität
Bei dieser Aufgabe müssen Sie einige externe Endpunkte für den Datenbanklistener konfigurieren, indem Sie die Azure-Netzwerksicherheitsgruppe (NSG) einrichten, mit der die VM geschützt wird.
Erstellen Sie die NSG für den virtuellen Computer mit dem Befehl az network nsg create. Durch diesen Befehl wird die NSG vmoracle19cNSG erstellt, damit der Zugriff auf den virtuellen Computer durch Regeln gesteuert werden kann:
az network nsg create --resource-group rg-oracle --name vmoracle19cNSG
Erstellen Sie mit dem Befehl az network nsg rule create eine NSG-Regel. Mit diesem Befehl wird die NSG-Regel allow-oracle erstellt, um den Endpunkt für den Remotezugriff auf die Oracle-Datenbank zu öffnen:
az network nsg rule create \ --resource-group rg-oracle \ --nsg-name vmoracle19cNSG \ --name allow-oracle \ --protocol tcp \ --priority 1001 \ --destination-port-range 1521
Erstellen Sie eine zweite NSG-Regel, um den Endpunkt für den Remotezugriff auf Oracle zu öffnen. Mit diesem Befehl wird die NSG-Regel allow-oracle-EM erstellt:
az network nsg rule create \ --resource-group rg-oracle \ --nsg-name vmoracle19cNSG \ --name allow-oracle-EM \ --protocol tcp \ --priority 1002 \ --destination-port-range 5502
Verwenden Sie bei Bedarf den Befehl az network public-ip show, um die öffentliche IP-Adresse Ihres virtuellen Computers abzurufen:
az network public-ip show \ --resource-group rg-oracle \ --name vmoracle19cPublicIP \ --query "ipAddress" \ --output tsv
Vorbereiten der VM-Umgebung
Erstellen Sie eine SSH-Sitzung mit dem virtuellen Computer. Ersetzen Sie den
<publicIPAddress>
-Teil durch den Wert der öffentlichen IP-Adresse für Ihre VM, z. B.10.200.300.4
:ssh azureuser@<publicIPAddress>
Wechseln Sie zum Benutzer root:
sudo su -
Suchen Sie das zuletzt erstellte Datenträgergerät, das Sie für die Aufnahme von Oracle-Datendateien formatieren möchten:
ls -alt /dev/sd*|head -1
Die Ausgabe ähnelt diesem Beispiel:
brw-rw----. 1 root disk 8, 16 Dec 8 22:57 /dev/sdc
Verwenden Sie als Stammbenutzer den
parted
-Befehl, um das Gerät zu formatieren.Erstellen Sie zunächst eine Datenträgerbezeichnung:
parted /dev/sdc mklabel gpt
Erstellen Sie anschließend eine primäre Partition, die sich über den gesamten Datenträger erstreckt:
parted -a optimal /dev/sdc mkpart primary 0GB 64GB
Überprüfen Sie abschließend die Gerätedetails, indem Sie die zugehörigen Metadaten ausgeben:
parted /dev/sdc print
Die Ausgabe ähnelt diesem Beispiel:
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
Erstellen Sie auf der Gerätepartition ein Dateisystem:
mkfs -t ext4 /dev/sdc1
Die Ausgabe ähnelt diesem Beispiel:
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
Erstellen Sie einen Bereitstellungspunkt:
mkdir /u02
Binden Sie den Datenträger ein:
mount /dev/sdc1 /u02
Ändern Sie die Berechtigungen für den Bereitstellungspunkt:
chmod 777 /u02
Fügen Sie die Bereitstellung der Datei /etc/fstab hinzu:
echo "/dev/sdc1 /u02 ext4 defaults 0 0" >> /etc/fstab
Wichtig
Mit diesem Befehl wird die Datei /etc/fstab ohne eine bestimmte UUID eingebunden, wodurch möglicherweise ein erfolgreicher Neustart des Datenträgers verhindert wird. Bevor Sie einen Neustart des Datenträgers versuchen, aktualisieren Sie den /etc/fstab-Eintrag, sodass er eine UUID für den Bereitstellungspunkt enthält.
Aktualisieren Sie die Datei /etc/hosts mit der öffentlichen IP-Adresse und dem Adresshostnamen. Ändern Sie die Teile
<Public IP>
und<VMname>
in die tatsächlichen Werte:echo "<Public IP> <VMname>.eastus.cloudapp.azure.com <VMname>" >> /etc/hosts
Fügen Sie der Datei /etc/hostname den Domänennamen des virtuellen Computers hinzu. Der folgende Befehl setzt voraus, dass die Ressourcengruppe und der virtuelle Computer in der Region eastus erstellt werden:
sed -i 's/$/\.eastus\.cloudapp\.azure\.com &/' /etc/hostname
Öffnen Sie die Firewallports.
Da SELinux auf dem Marketplace-Image standardmäßig aktiviert ist, müssen wir die Firewall für Datenverkehr für den Datenbank-Überwachungsport 1521 und den Enterprise Manager Express-Port 5502 öffnen. Führen Sie die folgenden Befehle als „root“-Benutzer aus:
firewall-cmd --zone=public --add-port=1521/tcp --permanent firewall-cmd --zone=public --add-port=5502/tcp --permanent firewall-cmd --reload
Erstellen der Datenbank
Die Oracle-Software ist bereits im Marketplace-Image installiert. Erstellen Sie wie folgt eine Beispieldatenbank.
Wechseln Sie zum Benutzer oracle:
sudo su - oracle
Starten Sie den Datenbanklistener:
lsnrctl start
Die Ausgabe sieht in etwa wie das folgende Beispiel aus:
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
Erstellen Sie ein Datenverzeichnis für die Oracle-Datendateien:
mkdir /u02/oradata
Führen Sie den Assistenten für die Datenbankerstellung aus:
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
Es dauert einige Minuten, bis die Datenbank erstellt wurde.
Die Ausgabe sieht in etwa wie das folgende Beispiel aus:
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.
Legen Sie Oracle-Variablen fest:
Bevor Sie eine Verbindung herstellen, müssen Sie die Umgebungsvariable
ORACLE_SID
festlegen:export ORACLE_SID=oratest1
Sie sollten die Variable
ORACLE_SID
außerdem für zukünftige Anmeldungen zuroracle
-Benutzerdatei .bashrc hinzufügen, indem Sie den folgenden Befehl ausführen:echo "export ORACLE_SID=oratest1" >> ~oracle/.bashrc
Automatisieren des Startens und Beendens der Datenbank
Die Oracle-Datenbank wird standardmäßig nicht automatisch gestartet, wenn Sie den virtuellen Computer neu starten. Melden Sie sich zuerst als Root-Benutzer an, um für die Oracle-Datenbank das automatische Starten einzurichten. Erstellen und aktualisieren Sie anschließend einige Systemdateien.
Melden Sie sich als Stammbenutzer an:
sudo su -
Ändern Sie das Flag für den automatisierten Start in der Datei /etc/oratab von
N
inY
:sed -i 's/:N/:Y/' /etc/oratab
Erstellen Sie eine Datei mit dem Namen /etc/init.d/dbora, und fügen Sie der Datei den folgenden Bash-Befehl hinzu:
#!/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
Ändern Sie die Berechtigungen für Dateien wie folgt mit dem Befehl
chmod
:chgrp dba /etc/init.d/dbora chmod 750 /etc/init.d/dbora
Erstellen Sie symbolische Verknüpfungen für das Starten und Beenden:
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
Starten Sie den virtuellen Computer neu, um die Änderungen zu testen:
reboot
Bereinigen von Ressourcen
Wenn Sie die Untersuchung Ihrer ersten Oracle-Datenbank unter Azure abgeschlossen haben und den virtuellen Computer nicht mehr benötigen, können Sie den Befehl az group delete verwenden, um die Ressourcengruppe, die VM und alle dazugehörigen Ressourcen zu entfernen.
az group delete --name rg-oracle
Nächste Schritte
- Schützen Sie Ihre Datenbank in Azure mit Oracle-Sicherungsstrategien
- Erkunden von Oracle-Lösungen in Azure
- Installieren und Konfigurieren von Oracle Automated Storage Management