Azure VM'de Oracle Veritabanı oluşturma

Şunlar için geçerlidir: ✔️ Linux VM'leri

Bu makalede, Oracle Veritabanı 19c veritabanı oluşturmak üzere Oracle market galerisi görüntüsünden bir Azure sanal makinesi (VM) dağıtmak için Azure CLI'nin nasıl kullanılacağı açıklanmaktadır. Sunucuyu dağıttığınızda, Oracle veritabanını yapılandırmak için SSH aracılığıyla sunucuyu bağlarsınız.

Ön koşullar

  • Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

  • Azure Cloud Shell veya Azure CLI.

    Bu hızlı başlangıçta Azure CLI komutlarını Azure Cloud Shell'de etkileşimli olarak çalıştırabilirsiniz. Komutları Cloud Shell'de çalıştırmak için bir kod bloğunun sağ üst köşesindeki CloudShell'i Aç'ı seçin. Kodu kopyalamak için Kopyala'yı seçin ve çalıştırmak için Cloud Shell'e yapıştırın. Cloud Shell'i Azure portalından da çalıştırabilirsiniz. Cloud Shell her zaman Azure CLI'nın en son sürümünü kullanır.

    Alternatif olarak, komutları çalıştırmak için Azure CLI'yi yerel olarak yükleyebilirsiniz. Bu makaledeki adımlar için Azure CLI 2.0.4 veya sonraki bir sürümü gerekir. Yüklü sürümünüzü ve bağımlı kitaplıklarınızı görmek için az version komutunu çalıştırın ve yükseltmek için az upgrade komutunu çalıştırın. Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure'da oturum açın .

Kaynak grubu oluştur

az group create komutuyla bir kaynak grubu oluşturun. Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır.

Aşağıdaki örnek eastus konumunda rg-oracle adlı bir kaynak grubu oluşturur.

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

Dekont

Bu hızlı başlangıç, Doğu ABD bölgesinde bir Standard_DS2_v2 SKU VM oluşturur. Bölgeye göre desteklenen SKU'ların listesini görüntülemek için az vm list-skus komutunu kullanın.

Sanal makine oluşturma

az vm create komutuyla bir sanal makine (VM) oluşturun .

Aşağıdaki örnek, vmoracle19c adlı bir VM oluşturur. Ayrıca, varsayılan anahtar konumunda mevcut olmayan SSH anahtarları da oluşturur. Belirli bir anahtar kümesini kullanmak için komutunu kullanarak seçeneğini kullanabilirsiniz --ssh-key-value .

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

VM'yi oluşturduktan sonra Azure CLI aşağıdaki örneğe benzer bilgileri görüntüler. özelliğinin değerini publicIpAddress not edin. Vm'ye erişmek için bu IP adresini kullanırsınız.

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

Oracle veri dosyaları için disk oluşturma

Az vm disk attach komutuyla Oracle veri dosyaları ve hızlı kurtarma alanı (FRA) için yeni bir disk oluşturup ekleyin .

Aşağıdaki örnek oradata01 adlı bir disk oluşturur.

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

Bağlantı için bağlantı noktalarını açma

Bu görevde, VM'yi koruyan Azure ağ güvenlik grubunu (NSG) ayarlayarak veritabanı dinleyicisinin kullanması için bazı dış uç noktaları yapılandırmanız gerekir.

  1. az network nsg create komutuyla VM için NSG oluşturun . Bu komut, vm'ye erişimi denetlemek için kurallar için vmoracle19cNSG NSG'yi oluşturur:

    az network nsg create --resource-group rg-oracle --name vmoracle19cNSG
    
  2. az network nsg rule create komutuyla bir NSG kuralı oluşturun . Bu komut, Oracle veritabanına uzaktan erişim için uç noktayı açmak için allow-oracle NSG kuralını oluşturur:

    az network nsg rule create \
        --resource-group rg-oracle \
        --nsg-name vmoracle19cNSG \
        --name allow-oracle \
        --protocol tcp \
        --priority 1001 \
        --destination-port-range 1521
    
  3. Oracle'a uzaktan erişim için uç noktayı açmak için ikinci bir NSG kuralı oluşturun. Bu komut allow-oracle-EM NSG kuralını oluşturur:

    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. Gerektiğinde az network public-ip show komutunu kullanarak VM'nizin genel IP adresini alın:

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

VM ortamını hazırlama

  1. VM ile bir SSH oturumu oluşturun. <publicIPAddress> bölümünü VM'nizin genel IP adresi değeriyle değiştirin, örneğin10.200.300.4:

    ssh azureuser@<publicIPAddress>
    
  2. Kök kullanıcıya geçin:

    sudo su -
    
  3. Oracle veri dosyalarını tutmak için biçimlendirmek istediğiniz en son oluşturulan disk cihazını bulun:

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

    Çıkış şu örneğe benzer:

    brw-rw----. 1 root disk 8, 16 Dec  8 22:57 /dev/sdc
    
  4. Kök kullanıcı olarak, cihazı biçimlendirmek için komutunu kullanın parted .

    1. İlk olarak bir disk etiketi oluşturun:

      parted /dev/sdc mklabel gpt
      
    2. Ardından, diskin tamamına yayılan bir birincil bölüm oluşturun:

      parted -a optimal /dev/sdc mkpart primary 0GB 64GB	
      
    3. Son olarak, meta verilerini yazdırarak cihaz ayrıntılarını denetleyin:

      parted /dev/sdc print
      

      Çıkış şu örneğe benzer:

      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. Cihaz bölümünde bir dosya sistemi oluşturun:

    mkfs -t ext4 /dev/sdc1
    

    Çıkış şu örneğe benzer:

    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. Bağlama noktası oluşturma:

    mkdir /u02
    
  7. Diski bağlayın:

    mount /dev/sdc1 /u02
    
  8. Bağlama noktasındaki izinleri değiştirin:

    chmod 777 /u02
    
  9. Bağlamayı /etc/fstab dosyasına ekleyin:

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

    Önemli

    Bu komut, /etc/fstab dosyasını belirli bir UUID olmadan bağlar ve bu da diskin başarıyla yeniden başlatılmasını engelleyebilir. Diski yeniden başlatmayı denemeden önce ,etc/fstab girdisini bağlama noktası için bir UUID içerecek şekilde güncelleştirin.

  10. /etc/hosts dosyasını genel IP adresi ve adres ana bilgisayar adıyla güncelleştirin. <Public IP> ve iki <VMname> bölümünü gerçek değerlerinizi yansıtacak şekilde değiştirin:

    echo "<Public IP> <VMname>.eastus.cloudapp.azure.com <VMname>" >> /etc/hosts
    
  11. VM'nin etki alanı adını /etc/hostname dosyasına ekleyin. Aşağıdaki komut, kaynak grubunun ve VM'nin eastus bölgesinde oluşturulduğunu varsayar:

    sed -i 's/$/\.eastus\.cloudapp\.azure\.com &/' /etc/hostname
    
  12. Güvenlik duvarı bağlantı noktalarını açın.

    SELinux Market görüntüsünde varsayılan olarak etkinleştirildiğinden, güvenlik duvarını 1521 numaralı veritabanı dinleme bağlantı noktası ve Enterprise Manager Express bağlantı noktası 5502 için trafiğe açmamız gerekir. Aşağıdaki komutları kök kullanıcı olarak çalıştırın:

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

Veritabanını oluşturma

Oracle yazılımı Market görüntüsünde zaten yüklüdür. Aşağıdaki gibi örnek bir veritabanı oluşturun.

  1. Oracle kullanıcısına geçin:

    sudo su - oracle
    
  2. Veritabanı dinleyicisini başlatın:

    lsnrctl start
    

    Çıktı aşağıdaki örneğe benzer:

    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. Oracle veri dosyaları için bir veri dizini oluşturun:

    mkdir /u02/oradata
    
  4. Veritabanı Oluşturma Yardımcısı'nı çalıştırın:

    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
    

    Veritabanının oluşturulması birkaç dakika sürer.

    Çıktı aşağıdaki örneğe benzer:

         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 değişkenlerini ayarlama:

    Bağlanmadan önce ortam değişkenini ORACLE_SIDayarlamanız gerekir:

    export ORACLE_SID=oratest1
    

    Aşağıdaki komutu kullanarak gelecekte oturum açmak için users .bashrc dosyasına değişkeni oracle de eklemeniz ORACLE_SID gerekir:

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

Veritabanı başlatma ve kapatmayı otomatikleştirme

Vm'yi yeniden başlattığınızda Oracle veritabanı varsayılan olarak otomatik olarak başlatılmaz. Oracle veritabanını otomatik olarak başlatacak şekilde ayarlamak için önce kök olarak oturum açın. Ardından, bazı sistem dosyalarını oluşturun ve güncelleştirin.

  1. Kök kullanıcı olarak oturum açın:

    sudo su -
    
  2. /etc/oratab dosyasında otomatik başlangıç bayrağını NY olarak değiştirin:

    sed -i 's/:N/:Y/' /etc/oratab
    
  3. /etc/init.d/dbora adlı bir dosya oluşturun ve dosyaya aşağıdaki bash komutunu ekleyin:

    #!/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. Komutuyla chmod dosyalar üzerindeki izinleri değiştirin:

    chgrp dba /etc/init.d/dbora
    chmod 750 /etc/init.d/dbora
    
  5. Başlatma ve kapatma için sembolik bağlantılar oluşturun:

    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. Değişikliklerinizi test etmek için VM'yi yeniden başlatın:

    reboot
    

Kaynakları temizleme

Azure'da ilk Oracle veritabanınızı incelemeyi tamamladıktan ve VM'ye artık gerek kalmadıktan sonra az group delete komutunu kullanarak kaynak grubunu, VM'yi ve tüm ilgili kaynakları kaldırabilirsiniz.

az group delete --name rg-oracle

Sonraki adımlar