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.

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

  1. Maak een SSH-sessie met de VIRTUELE machine. Vervang het <publicIPAddress> gedeelte door de waarde van het openbare IP-adres voor uw VIRTUELE machine, zoals 10.200.300.4:

    ssh azureuser@<publicIPAddress>
    
  2. Overschakelen naar de hoofdgebruiker:

    sudo su -
    
  3. 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
    
  4. Als hoofdgebruiker gebruikt u de parted opdracht om het apparaat op te maken.

    1. Maak eerst een schijflabel:

      parted /dev/sdc mklabel gpt
      
    2. Maak vervolgens een primaire partitie die de hele schijf omvat:

      parted -a optimal /dev/sdc mkpart primary 0GB 64GB	
      
    3. 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
      
  5. 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   
    
  6. Een koppelpunt maken:

    mkdir /u02
    
  7. Koppel de schijf:

    mount /dev/sdc1 /u02
    
  8. Machtigingen voor het koppelpunt wijzigen:

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

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

  1. Schakel over naar de oracle-gebruiker :

    sudo su - oracle
    
  2. 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
    
  3. Maak een gegevensmap voor de Oracle-gegevensbestanden:

    mkdir /u02/oradata
    
  4. 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.
    
  5. Oracle-variabelen instellen:

    Voordat u verbinding maakt, moet u de omgevingsvariabele ORACLE_SIDinstellen:

    export ORACLE_SID=oratest1
    

    U moet ook de ORACLE_SID variabele toevoegen aan het bashrc-bestand van gebruikers oraclevoor 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.

  1. Meld u aan als hoofdgebruiker:

    sudo su -
    
  2. Wijzig de automatische opstartvlag van N in Y het /etc/oratab-bestand:

    sed -i 's/:N/:Y/' /etc/oratab
    
  3. 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
    
  4. Machtigingen voor bestanden wijzigen met de chmod opdracht:

    chgrp dba /etc/init.d/dbora
    chmod 750 /etc/init.d/dbora
    
  5. 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
    
  6. 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