Bagikan melalui


Buat Database Oracle di Azure VM

Berlaku untuk: ✔️ mesin virtual Linux

Artikel ini menjelaskan cara menggunakan Azure CLI untuk menyebarkan komputer virtual (VM) Azure dari gambar galeri marketplace Oracle untuk membuat database Oracle Database 19c. Setelah menyebarkan server, Anda menyambungkan server melalui SSH untuk mengonfigurasi database Oracle.

Prasyarat

Buat grup sumber daya

Buat grup sumber daya dengan perintah az group create. Grup sumber daya Azure adalah kontainer logis tempat sumber daya Azure disebarkan dan dikelola.

Contoh berikut ini membuat grup sumber daya bernama rg-oracle di lokasi eastus.

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

Catatan

Mulai cepat ini membuat VM SKU Standard_DS2_v2 di wilayah US Timur. Untuk melihat daftar SKU yang didukung menurut wilayah, gunakan perintah az vm list-skus .

Membuat komputer virtual

Buat komputer virtual (VM) dengan perintah az vm create .

Contoh berikut membuat VM bernama vmoracle19c. Ini juga membuat kunci SSH, jika belum ada di lokasi kunci default. Untuk menggunakan sekumpulan kunci tertentu, Anda dapat menggunakan --ssh-key-value opsi dengan perintah .

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

Setelah Anda membuat VM, Azure CLI menampilkan informasi yang mirip dengan contoh berikut. Perhatikan nilai untuk publicIpAddress properti . Anda menggunakan alamat IP ini untuk mengakses VM.

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

Membuat disk untuk file data Oracle

Buat dan lampirkan disk baru untuk file data Oracle dan area pemulihan cepat (FRA) dengan perintah az vm disk attach .

Contoh berikut membuat disk bernama oradata01.

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

Buka port untuk konektivitas

Dalam tugas ini, Anda harus mengonfigurasi beberapa titik akhir eksternal untuk digunakan pendengar database dengan menyiapkan grup keamanan jaringan Azure (NSG) yang melindungi VM.

  1. Buat NSG untuk VM dengan perintah az network nsg create . Perintah ini membuat NSG vmoracle19cNSG untuk aturan guna mengontrol akses ke VM:

    az network nsg create --resource-group rg-oracle --name vmoracle19cNSG
    
  2. Buat aturan NSG dengan perintah az network nsg rule create . Perintah ini membuat aturan NSG allow-oracle untuk membuka titik akhir untuk akses jarak jauh ke database 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. Buat aturan NSG kedua untuk membuka titik akhir untuk akses jarak jauh ke Oracle. Perintah ini membuat aturan 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. Sesuai kebutuhan, gunakan perintah az network public-ip show untuk mendapatkan alamat IP publik VM Anda:

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

Menyiapkan lingkungan VM

  1. Buat sesi SSH dengan VM. <publicIPAddress> Ganti bagian dengan nilai alamat IP publik untuk VM Anda, seperti 10.200.300.4:

    ssh azureuser@<publicIPAddress>
    
  2. Beralih ke pengguna root:

    sudo su -
    
  3. Temukan perangkat disk yang terakhir dibuat yang ingin Anda format untuk menyimpan file data Oracle:

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

    Outputnya mirip dengan contoh ini:

    brw-rw----. 1 root disk 8, 16 Dec  8 22:57 /dev/sdc
    
  4. Sebagai pengguna akar, gunakan parted perintah untuk memformat perangkat.

    1. Pertama, buat label disk:

      parted /dev/sdc mklabel gpt
      
    2. Selanjutnya, buat partisi utama yang mencakup seluruh disk:

      parted -a optimal /dev/sdc mkpart primary 0GB 64GB	
      
    3. Terakhir, periksa detail perangkat dengan mencetak metadatanya:

      parted /dev/sdc print
      

      Outputnya mirip dengan contoh ini:

      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. Buat sistem file pada partisi perangkat:

    mkfs -t ext4 /dev/sdc1
    

    Outputnya mirip dengan contoh ini:

    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. Buat titik pemasangan:

    mkdir /u02
    
  7. Pasang disk:

    mount /dev/sdc1 /u02
    
  8. Ubah izin pada titik pemasangan:

    chmod 777 /u02
    
  9. Tambahkan pemasangan ke file /etc/fstab :

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

    Penting

    Perintah ini memasang file /etc/fstab tanpa UUID tertentu, yang dapat mencegah keberhasilan boot ulang disk. Sebelum Anda mencoba me-reboot disk, perbarui entri /etc/fstab untuk menyertakan UUID untuk titik pemasangan.

  10. Perbarui file /etc/hosts dengan alamat IP publik dan nama host alamat. <Public IP> Ubah dan dua <VMname> bagian untuk mencerminkan nilai aktual Anda:

    echo "<Public IP> <VMname>.eastus.cloudapp.azure.com <VMname>" >> /etc/hosts
    
  11. Tambahkan nama domain VM ke file /etc/hostname . Perintah berikut mengasumsikan grup sumber daya dan VM dibuat di wilayah eastus :

    sed -i 's/$/\.eastus\.cloudapp\.azure\.com &/' /etc/hostname
    
  12. Buka port firewall.

    Karena SELinux diaktifkan secara default pada gambar Marketplace, kita perlu membuka firewall ke lalu lintas untuk port mendengarkan database 1521, dan port Enterprise Manager Express 5502. Jalankan perintah berikut sebagai pengguna root:

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

Buatlah databasenya

Perangkat lunak Oracle sudah diinstal pada gambar Marketplace. Buat sampel database sebagai berikut.

  1. Beralih ke pengguna oracle:

    sudo su - oracle
    
  2. Mulai pendengar database:

    lsnrctl start
    

    Outputnya mirip dengan contoh berikut:

    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. Buat direktori data untuk file data Oracle:

    mkdir /u02/oradata
    
  4. Jalankan Database Creation Assistance:

    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
    

    Dibutuhkan beberapa menit untuk membuat database.

    Outputnya mirip dengan contoh berikut:

         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. Atur variabel Oracle:

    Sebelum terhubung, Anda perlu mengatur variabel ORACLE_SIDlingkungan :

    export ORACLE_SID=oratest1
    

    Anda juga harus menambahkan ORACLE_SID variabel ke oracle file .bashrc pengguna untuk masuk di masa mendatang dengan menggunakan perintah berikut:

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

Otomatiskan startup dan shutdown database

Database Oracle secara default tidak dimulai secara otomatis saat Anda menghidupkan ulang VM. Untuk menyiapkan database Oracle agar dimulai secara otomatis, pertama-tama masuk sebagai root. Lalu, buat dan perbarui beberapa file sistem.

  1. Masuk sebagai pengguna root:

    sudo su -
    
  2. Ubah bendera startup otomatis dari N ke Y dalam file /etc/oratab:

    sed -i 's/:N/:Y/' /etc/oratab
    
  3. Buat file bernama /etc/init.d/dbora dan tambahkan perintah bash berikut ke file:

    #!/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. Ubah izin pada file dengan chmod perintah :

    chgrp dba /etc/init.d/dbora
    chmod 750 /etc/init.d/dbora
    
  5. Buat tautan simbolis untuk startup dan shutdown:

    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. Untuk menguji perubahan Anda, hidupkan ulang VM:

    reboot
    

Membersihkan sumber daya

Setelah Anda selesai menjelajahi database Oracle pertama Anda di Azure dan VM tidak lagi diperlukan, Anda dapat menggunakan perintah az group delete untuk menghapus grup sumber daya, VM, dan semua sumber daya terkait.

az group delete --name rg-oracle

Langkah berikutnya