Sdílet prostřednictvím


Vytvoření databáze Oracle na virtuálním počítači Azure

Platí pro: ✔️ Virtuální počítače s Linuxem

Tento článek popisuje, jak pomocí Azure CLI nasadit virtuální počítač Azure z image galerie Oracle Marketplace k vytvoření databáze Oracle Database 19c. Po nasazení serveru připojíte server přes SSH a nakonfigurujete databázi Oracle.

Požadavky

  • Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

  • Azure Cloud Shell nebo Azure CLI.

    Příkazy Azure CLI můžete v tomto rychlém startu spustit interaktivně v Azure Cloud Shellu. Pokud chcete příkazy spustit v Cloud Shellu, vyberte Otevřít CloudShell v pravém horním rohu bloku kódu. Výběrem možnosti Kopírovat zkopírujte kód a vložte ho do Cloud Shellu a spusťte ho. Cloud Shell můžete spustit také na webu Azure Portal. Cloud Shell vždy používá nejnovější verzi Azure CLI.

    Případně můžete azure CLI nainstalovat místně a spouštět příkazy. Kroky v tomto článku vyžadují Azure CLI verze 2.0.4 nebo novější. Spuštěním příkazu az version zobrazte nainstalovanou verzi a závislé knihovny a spusťte az upgrade . Pokud používáte místní instalaci, přihlaste se k Azure pomocí příkazu az login .

Vytvořit skupinu zdrojů

Vytvořte skupinu prostředků pomocí příkazu az group create. Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.

Následující příklad vytvoří skupinu prostředků s názvem rg-oracle v umístění eastus .

az group create --name rg-oracle --location eastus

Poznámka:

Tento rychlý start vytvoří virtuální počítač Standard_DS2_v2 skladové položky v oblasti USA – východ. Pokud chcete zobrazit seznam podporovaných skladových položek podle oblastí, použijte příkaz az vm list-skus .

Vytvoření virtuálního počítače

Vytvořte virtuální počítač pomocí příkazu az vm create .

Následující příklad vytvoří virtuální počítač s názvem vmoracle19c. Vytvoří také klíče SSH, pokud ještě neexistují ve výchozím umístění klíče. Pokud chcete použít konkrétní sadu klíčů, můžete použít --ssh-key-value možnost s příkazem.

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

Po vytvoření virtuálního počítače azure CLI zobrazí podobné informace jako v následujícím příkladu. Poznamenejte si hodnotu vlastnosti publicIpAddress . Tuto IP adresu použijete pro přístup k virtuálnímu počítači.

{
  "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"
}

Vytvoření disku pro datové soubory Oracle

Vytvořte a připojte nový disk pro datové soubory Oracle a rychlou oblast obnovení (FRA) pomocí příkazu az vm disk attach .

Následující příklad vytvoří disk s názvem oradata01.

az vm disk attach \
    --name oradata01 --new \
    --resource-group rg-oracle \
    --size-gb 64 --sku StandardSSD_LRS \
    --vm-name vmoracle19c

Otevření portů pro připojení

V této úloze musíte nakonfigurovat některé externí koncové body pro naslouchací proces databáze tak, aby naslouchací proces používal nastavením skupiny zabezpečení sítě Azure (NSG), která chrání virtuální počítač.

  1. Pomocí příkazu az network nsg create vytvořte skupinu zabezpečení sítě pro virtuální počítač. Tento příkaz vytvoří skupinu zabezpečení sítě Vmoracle19cNSG pro pravidla pro řízení přístupu k virtuálnímu počítači:

    az network nsg create --resource-group rg-oracle --name vmoracle19cNSG
    
  2. Vytvořte pravidlo NSG pomocí příkazu az network nsg rule create . Tento příkaz vytvoří pravidlo allow-oracle NSG pro otevření koncového bodu pro vzdálený přístup k databázi Oracle:

    az network nsg rule create \
        --resource-group rg-oracle \
        --nsg-name vmoracle19cNSG \
        --name allow-oracle \
        --protocol tcp \
        --priority 1001 \
        --destination-port-range 1521
    
  3. Vytvořte druhé pravidlo NSG pro otevření koncového bodu pro vzdálený přístup k Oracle. Tento příkaz vytvoří pravidlo NSG allow-oracle-EM :

    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. Podle potřeby pomocí příkazu az network public-ip show získejte veřejnou IP adresu vašeho virtuálního počítače:

    az network public-ip show \
        --resource-group rg-oracle \
        --name vmoracle19cPublicIP \
        --query "ipAddress" \
        --output tsv
    

Příprava prostředí virtuálního počítače

  1. Vytvořte relaci SSH s virtuálním počítačem. <publicIPAddress> Část nahraďte hodnotou veřejné IP adresy vašeho virtuálního počítače, například10.200.300.4:

    ssh azureuser@<publicIPAddress>
    
  2. Přepněte na uživatele root:

    sudo su -
    
  3. Vyhledejte naposledy vytvořené diskové zařízení, které chcete formátovat pro ukládání datových souborů Oracle:

    ls -alt /dev/sd*|head -1
    

    Výstup je podobný tomuto příkladu:

    brw-rw----. 1 root disk 8, 16 Dec  8 22:57 /dev/sdc
    
  4. Jako uživatel root použijte parted příkaz k formátování zařízení.

    1. Nejprve vytvořte popisek disku:

      parted /dev/sdc mklabel gpt
      
    2. Dále vytvořte primární oddíl, který pokrývá celý disk:

      parted -a optimal /dev/sdc mkpart primary 0GB 64GB	
      
    3. Nakonec zkontrolujte podrobnosti o zařízení tiskem jeho metadat:

      parted /dev/sdc print
      

      Výstup je podobný tomuto příkladu:

      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. Vytvořte v oddílu zařízení systém souborů:

    mkfs -t ext4 /dev/sdc1
    

    Výstup je podobný tomuto příkladu:

    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. Vytvořte přípojný bod:

    mkdir /u02
    
  7. Připojte disk:

    mount /dev/sdc1 /u02
    
  8. Změna oprávnění pro přípojný bod:

    chmod 777 /u02
    
  9. Přidejte připojení do souboru /etc/fstab :

    echo "/dev/sdc1               /u02                    ext4    defaults        0 0" >> /etc/fstab
    

    Důležité

    Tento příkaz připojí soubor /etc/fstab bez konkrétního UUID, což může zabránit úspěšnému restartování disku. Než se pokusíte restartovat disk, aktualizujte položku /etc/fstab tak, aby obsahovala UUID přípojného bodu.

  10. Aktualizujte soubor /etc/hosts veřejnou IP adresou a názvem hostitele adresy. <Public IP> Změňte hodnoty a dvě <VMname> části tak, aby odrážely vaše skutečné hodnoty:

    echo "<Public IP> <VMname>.eastus.cloudapp.azure.com <VMname>" >> /etc/hosts
    
  11. Přidejte název domény virtuálního počítače do souboru /etc/hostname . Následující příkaz předpokládá vytvoření skupiny prostředků a virtuálního počítače v oblasti eastus :

    sed -i 's/$/\.eastus\.cloudapp\.azure\.com &/' /etc/hostname
    
  12. Otevřete porty brány firewall.

    Vzhledem k tomu, že je na imagi Marketplace ve výchozím nastavení povolená služba SELinux, musíme otevřít bránu firewall pro provoz pro databázi naslouchácí portu 1521 a portu Enterprise Manager Express 5502. Jako uživatel kořenového adresáře spusťte následující příkazy:

    firewall-cmd --zone=public --add-port=1521/tcp --permanent
    firewall-cmd --zone=public --add-port=5502/tcp --permanent
    firewall-cmd --reload
    

Vytvoření databáze

Na imagi Marketplace je už nainstalovaný software Oracle. Následujícím způsobem vytvořte ukázkovou databázi.

  1. Přepněte na uživatele Oracle :

    sudo su - oracle
    
  2. Spusťte naslouchací proces databáze:

    lsnrctl start
    

    Výstup se podobá následujícímu příkladu:

    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. Vytvořte datový adresář pro datové soubory Oracle:

    mkdir /u02/oradata
    
  4. Spusťte Pomocníka pro vytváření databází:

    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
    

    Vytvoření databáze trvá několik minut.

    Výstup se podobá následujícímu příkladu:

         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. Nastavení proměnných Oracle:

    Než se připojíte, musíte nastavit proměnnou ORACLE_SIDprostředí:

    export ORACLE_SID=oratest1
    

    Proměnnou ORACLE_SID byste také měli přidat do oracle souboru .bashrc pro budoucí přihlášení uživatele pomocí následujícího příkazu:

    echo "export ORACLE_SID=oratest1" >> ~oracle/.bashrc
    

Automatizace spuštění a vypnutí databáze

Databáze Oracle se ve výchozím nastavení automaticky nespustí při restartování virtuálního počítače. Pokud chcete databázi Oracle nastavit tak, aby se spustila automaticky, nejprve se přihlaste jako kořen. Pak vytvořte a aktualizujte některé systémové soubory.

  1. Přihlaste se jako uživatel root:

    sudo su -
    
  2. Změňte příznak automatického spuštění z N na Y v souboru /etc/oratab:

    sed -i 's/:N/:Y/' /etc/oratab
    
  3. Vytvořte soubor s názvem /etc/init.d/dbora a do souboru přidejte následující příkaz Bash:

    #!/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. Pomocí příkazu změňte oprávnění k souborům chmod :

    chgrp dba /etc/init.d/dbora
    chmod 750 /etc/init.d/dbora
    
  5. Vytvoření symbolických odkazů pro spuštění a vypnutí:

    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. Pokud chcete otestovat změny, restartujte virtuální počítač:

    reboot
    

Vyčištění prostředků

Po dokončení zkoumání první databáze Oracle v Azure a virtuální počítač už není potřeba, můžete pomocí příkazu az group delete odebrat skupinu prostředků, virtuální počítač a všechny související prostředky.

az group delete --name rg-oracle

Další kroky