Skapa en Oracle-databas på en virtuell Azure-dator

Gäller för: ✔️ Virtuella Linux-datorer

Den här artikeln beskriver hur du använder Azure CLI för att distribuera en virtuell Azure-dator (VM) från GalleriavbildningenOracle Marketplace för att skapa en Oracle Database 19c-databas. När du har distribuerat servern ansluter du servern via SSH för att konfigurera Oracle-databasen.

Förutsättningar

  • Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

  • Azure Cloud Shell eller Azure CLI.

    Du kan köra Azure CLI-kommandona i den här snabbstarten interaktivt i Azure Cloud Shell. Om du vill köra kommandona i Cloud Shell väljer du Öppna Cloudshell i det övre högra hörnet i ett kodblock. Välj Kopiera för att kopiera koden och klistra in den i Cloud Shell för att köra den. Du kan också köra Cloud Shell inifrån Azure-portalen. Cloud Shell använder alltid den senaste versionen av Azure CLI.

    Du kan också installera Azure CLI lokalt för att köra kommandona. Stegen i den här artikeln kräver Azure CLI version 2.0.4 eller senare. Kör az version för att se din installerade version och beroende bibliotek och kör az upgrade to upgrade. Om du använder en lokal installation loggar du in på Azure med kommandot az login .

Skapa resursgrupp

Skapa en resursgrupp med kommandot az group create. En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras.

I följande exempel skapas en resursgrupp med namnet rg-oracle på platsen eastus .

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

Kommentar

Den här snabbstarten skapar en Standard_DS2_v2 virtuell SKU-dator i regionen USA, östra. Om du vill visa listan över SKU:er som stöds efter region använder du kommandot az vm list-skus .

Skapa en virtuell dator

Skapa en virtuell dator (VM) med kommandot az vm create .

I följande exempel skapas en virtuell dator med namnet vmoracle19c. Det skapar också SSH-nycklar om de inte redan finns på en standardnyckelplats. Om du vill använda en specifik uppsättning nycklar kan du använda --ssh-key-value alternativet med kommandot .

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

När du har skapat den virtuella datorn visar Azure CLI information som liknar följande exempel. Observera värdet för egenskapen publicIpAddress . Du använder den här IP-adressen för att komma åt den virtuella datorn.

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

Skapa disk för Oracle-datafiler

Skapa och koppla en ny disk för Oracle-datafiler och ett snabbt återställningsområde (FRA) med kommandot az vm disk attach .

I följande exempel skapas en disk med namnet oradata01.

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

Öppna portar för anslutning

I den här uppgiften måste du konfigurera vissa externa slutpunkter som databaslyssnaren ska använda genom att konfigurera den Azure-nätverkssäkerhetsgrupp (NSG) som skyddar den virtuella datorn.

  1. Skapa NSG för den virtuella datorn med kommandot az network nsg create . Det här kommandot skapar nätverkssäkerhetsgruppen vmoracle19cNSG för regler för att styra åtkomsten till den virtuella datorn:

    az network nsg create --resource-group rg-oracle --name vmoracle19cNSG
    
  2. Skapa en NSG-regel med kommandot az network nsg rule create . Det här kommandot skapar NSG-regeln allow-oracle för att öppna slutpunkten för fjärråtkomst till Oracle-databasen:

    az network nsg rule create \
        --resource-group rg-oracle \
        --nsg-name vmoracle19cNSG \
        --name allow-oracle \
        --protocol tcp \
        --priority 1001 \
        --destination-port-range 1521
    
  3. Skapa en andra NSG-regel för att öppna slutpunkten för fjärråtkomst till Oracle. Det här kommandot skapar regeln 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. Vid behov använder du kommandot az network public-ip show för att hämta den offentliga IP-adressen för den virtuella datorn:

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

Förbereda VM-miljö

  1. Skapa en SSH-session med den virtuella datorn. Ersätt delen <publicIPAddress> med det offentliga IP-adressvärdet för den virtuella datorn, till exempel 10.200.300.4:

    ssh azureuser@<publicIPAddress>
    
  2. Växla till rotanvändaren:

    sudo su -
    
  3. Leta upp den senast skapade diskenheten som du vill formatera för att lagra Oracle-datafiler:

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

    Utdata liknar det här exemplet:

    brw-rw----. 1 root disk 8, 16 Dec  8 22:57 /dev/sdc
    
  4. Som rotanvändare använder du parted kommandot för att formatera enheten.

    1. Skapa först en disketikett:

      parted /dev/sdc mklabel gpt
      
    2. Skapa sedan en primär partition som sträcker sig över hela disken:

      parted -a optimal /dev/sdc mkpart primary 0GB 64GB	
      
    3. Kontrollera slutligen enhetsinformationen genom att skriva ut dess metadata:

      parted /dev/sdc print
      

      Utdata liknar det här exemplet:

      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. Skapa ett filsystem på enhetspartitionen:

    mkfs -t ext4 /dev/sdc1
    

    Utdata liknar det här exemplet:

    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. Skapa en monteringspunkt:

    mkdir /u02
    
  7. Montera disken:

    mount /dev/sdc1 /u02
    
  8. Ändra behörigheter på monteringspunkten:

    chmod 777 /u02
    
  9. Lägg till monteringen i /etc/fstab-filen :

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

    Viktigt!

    Det här kommandot monterar filen /etc/fstab utan ett specifikt UUID, vilket kan förhindra en lyckad omstart av disken. Innan du försöker starta om disken uppdaterar du /etc/fstab-posten så att den innehåller ett UUID för monteringspunkten.

  10. Uppdatera filen /etc/hosts med den offentliga IP-adressen och adressvärdnamnet. Ändra och <Public IP> två <VMname> delar så att de återspeglar dina faktiska värden:

    echo "<Public IP> <VMname>.eastus.cloudapp.azure.com <VMname>" >> /etc/hosts
    
  11. Lägg till domännamnet för den virtuella datorn i filen /etc/hostname . Följande kommando förutsätter att resursgruppen och den virtuella datorn skapas i regionen eastus :

    sed -i 's/$/\.eastus\.cloudapp\.azure\.com &/' /etc/hostname
    
  12. Öppna brandväggsportar.

    Eftersom SELinux är aktiverat som standard på Marketplace-avbildningen måste vi öppna brandväggen för trafik för databasens lyssnarport 1521 och Enterprise Manager Express-port 5502. Kör följande kommandon som rotanvändare:

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

Skapa databasen

Oracle-programvaran är redan installerad på Marketplace-avbildningen. Skapa en exempeldatabas på följande sätt.

  1. Växla till oracle-användaren:

    sudo su - oracle
    
  2. Starta databaslyssnaren:

    lsnrctl start
    

    Utdata ser ut ungefär så här:

    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. Skapa en datakatalog för Oracle-datafilerna:

    mkdir /u02/oradata
    
  4. Kör assistenten för att skapa databas:

    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
    

    Det tar några minuter att skapa databasen.

    Utdata ser ut ungefär så här:

         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. Ange Oracle-variabler:

    Innan du ansluter måste du ange miljövariabeln ORACLE_SID:

    export ORACLE_SID=oratest1
    

    Du bör också lägga till variabeln ORACLE_SID i oracle .bashrc-filen för användare för framtida inloggningar med hjälp av följande kommando:

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

Automatisera start och avstängning av databas

Oracle-databasen startar som standard inte automatiskt när du startar om den virtuella datorn. Om du vill konfigurera Oracle-databasen så att den startas automatiskt loggar du först in som rot. Skapa och uppdatera sedan vissa systemfiler.

  1. Logga in som rotanvändare:

    sudo su -
    
  2. Ändra flaggan för automatisk start från N till Y i /etc/oratab-filen:

    sed -i 's/:N/:Y/' /etc/oratab
    
  3. Skapa en fil med namnet /etc/init.d/dbora och lägg till följande bash-kommando i filen:

    #!/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. Ändra behörigheter för filer med chmod kommandot :

    chgrp dba /etc/init.d/dbora
    chmod 750 /etc/init.d/dbora
    
  5. Skapa symboliska länkar för start och avstängning:

    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. Om du vill testa ändringarna startar du om den virtuella datorn:

    reboot
    

Rensa resurser

När du har utforskat din första Oracle-databas i Azure och den virtuella datorn inte längre behövs kan du använda kommandot az group delete för att ta bort resursgruppen, den virtuella datorn och alla relaterade resurser.

az group delete --name rg-oracle

Nästa steg