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.

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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

  1. 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>
    
  2. Wechseln Sie zum Benutzer root:

    sudo su -
    
  3. 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
    
  4. Verwenden Sie als Stammbenutzer den parted-Befehl, um das Gerät zu formatieren.

    1. Erstellen Sie zunächst eine Datenträgerbezeichnung:

      parted /dev/sdc mklabel gpt
      
    2. 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	
      
    3. Ü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
      
  5. 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   
    
  6. Erstellen Sie einen Bereitstellungspunkt:

    mkdir /u02
    
  7. Binden Sie den Datenträger ein:

    mount /dev/sdc1 /u02
    
  8. Ändern Sie die Berechtigungen für den Bereitstellungspunkt:

    chmod 777 /u02
    
  9. 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.

  10. 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
    
  11. 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
    
  12. Ö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.

  1. Wechseln Sie zum Benutzer oracle:

    sudo su - oracle
    
  2. 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
    
  3. Erstellen Sie ein Datenverzeichnis für die Oracle-Datendateien:

    mkdir /u02/oradata
    
  4. 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.
    
  5. 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 zur oracle-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.

  1. Melden Sie sich als Stammbenutzer an:

    sudo su -
    
  2. Ändern Sie das Flag für den automatisierten Start in der Datei /etc/oratab von N in Y:

    sed -i 's/:N/:Y/' /etc/oratab
    
  3. 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
    
  4. Ä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
    
  5. 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
    
  6. 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