Tworzenie bazy danych Oracle Database na maszynie wirtualnej platformy Azure
Dotyczy: ✔️ maszyny wirtualne z systemem Linux
W tym artykule opisano sposób wdrażania maszyny wirtualnej platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure z obrazu galerii witryny Oracle Marketplace w celu utworzenia bazy danych Oracle Database 19c. Po wdrożeniu serwera połączysz serwer za pośrednictwem protokołu SSH, aby skonfigurować bazę danych Oracle.
Wymagania wstępne
-
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Usługa Azure Cloud Shell lub interfejs wiersza polecenia platformy Azure.
Polecenia interfejsu wiersza polecenia platformy Azure można uruchomić w tym przewodniku Szybki start interaktywnie w usłudze Azure Cloud Shell. Aby uruchomić polecenia w usłudze Cloud Shell, wybierz pozycję Otwórz program CloudShell w prawym górnym rogu bloku kodu. Wybierz pozycję Kopiuj , aby skopiować kod i wklej go w usłudze Cloud Shell, aby go uruchomić. Możesz również uruchomić usługę Cloud Shell z poziomu witryny Azure Portal. Usługa Cloud Shell zawsze używa najnowszej wersji interfejsu wiersza polecenia platformy Azure.
Alternatywnie możesz zainstalować interfejs wiersza polecenia platformy Azure lokalnie , aby uruchomić polecenia. Kroki opisane w tym artykule wymagają interfejsu wiersza polecenia platformy Azure w wersji 2.0.4 lub nowszej. Uruchom polecenie az version , aby wyświetlić zainstalowaną wersję i biblioteki zależne, a następnie uruchom polecenie az upgrade , aby uaktualnić. Jeśli używasz instalacji lokalnej, zaloguj się do platformy Azure przy użyciu polecenia az login .
Utwórz grupę zasobów
Utwórz grupę zasobów za pomocą polecenia az group create. Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.
Poniższy przykład tworzy grupę zasobów o nazwie rg-oracle w lokalizacji eastus .
az group create --name rg-oracle --location eastus
Uwaga
Ten przewodnik Szybki start tworzy maszynę wirtualną Standard_DS2_v2 SKU w regionie Wschodnie stany USA. Aby wyświetlić listę obsługiwanych jednostek SKU według regionów, użyj polecenia az vm list-skus .
Tworzenie maszyny wirtualnej
Utwórz maszynę wirtualną za pomocą polecenia az vm create .
Poniższy przykład tworzy maszynę wirtualną o nazwie vmoracle19c. Tworzy również klucze SSH, jeśli jeszcze nie istnieją w domyślnej lokalizacji klucza. Aby użyć określonego zestawu kluczy, możesz użyć --ssh-key-value
opcji z poleceniem .
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 utworzeniu maszyny wirtualnej interfejs wiersza polecenia platformy Azure wyświetli informacje podobne do poniższego przykładu. Zanotuj publicIpAddress
wartość właściwości . Ten adres IP służy do uzyskiwania dostępu do maszyny wirtualnej.
{
"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"
}
Tworzenie dysku dla plików danych Oracle
Utwórz i dołącz nowy dysk dla plików danych Oracle oraz szybki obszar odzyskiwania (FRA) za pomocą polecenia az vm disk attach .
Poniższy przykład tworzy dysk o nazwie oradata01.
az vm disk attach \
--name oradata01 --new \
--resource-group rg-oracle \
--size-gb 64 --sku StandardSSD_LRS \
--vm-name vmoracle19c
Otwieranie portów na potrzeby łączności
W tym zadaniu należy skonfigurować niektóre zewnętrzne punkty końcowe dla odbiornika bazy danych do użycia przez skonfigurowanie sieciowej grupy zabezpieczeń platformy Azure, która chroni maszynę wirtualną.
Utwórz sieciową grupę zabezpieczeń dla maszyny wirtualnej za pomocą polecenia az network nsg create . To polecenie tworzy sieciową grupę zabezpieczeń vmoracle19cNSG dla reguł w celu kontrolowania dostępu do maszyny wirtualnej:
az network nsg create --resource-group rg-oracle --name vmoracle19cNSG
Utwórz regułę sieciowej grupy zabezpieczeń za pomocą polecenia az network nsg rule create . To polecenie tworzy regułę sieciowej grupy zabezpieczeń allow-oracle , aby otworzyć punkt końcowy na potrzeby dostępu zdalnego do bazy danych Oracle:
az network nsg rule create \ --resource-group rg-oracle \ --nsg-name vmoracle19cNSG \ --name allow-oracle \ --protocol tcp \ --priority 1001 \ --destination-port-range 1521
Utwórz drugą regułę sieciowej grupy zabezpieczeń, aby otworzyć punkt końcowy na potrzeby dostępu zdalnego do bazy danych Oracle. To polecenie tworzy regułę sieciowej grupy zabezpieczeń 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
W razie potrzeby użyj polecenia az network public-ip show , aby uzyskać publiczny adres IP maszyny wirtualnej:
az network public-ip show \ --resource-group rg-oracle \ --name vmoracle19cPublicIP \ --query "ipAddress" \ --output tsv
Przygotowywanie środowiska maszyny wirtualnej
Utwórz sesję SSH z maszyną wirtualną. Zastąp
<publicIPAddress>
część wartością publicznego adresu IP maszyny wirtualnej, taką jak10.200.300.4
:ssh azureuser@<publicIPAddress>
Przejdź do użytkownika głównego:
sudo su -
Znajdź ostatnio utworzone urządzenie dyskowe, które chcesz sformatować do przechowywania plików danych Oracle:
ls -alt /dev/sd*|head -1
Dane wyjściowe są podobne do tego przykładu:
brw-rw----. 1 root disk 8, 16 Dec 8 22:57 /dev/sdc
Jako użytkownik główny użyj
parted
polecenia , aby sformatować urządzenie.Najpierw utwórz etykietę dysku:
parted /dev/sdc mklabel gpt
Następnie utwórz partycję podstawową, która obejmuje cały dysk:
parted -a optimal /dev/sdc mkpart primary 0GB 64GB
Na koniec sprawdź szczegóły urządzenia, drukując jego metadane:
parted /dev/sdc print
Dane wyjściowe są podobne do tego przykładu:
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
Utwórz system plików na partycji urządzenia:
mkfs -t ext4 /dev/sdc1
Dane wyjściowe są podobne do tego przykładu:
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
Utwórz punkt instalacji:
mkdir /u02
Zainstaluj dysk:
mount /dev/sdc1 /u02
Zmień uprawnienia w punkcie instalacji:
chmod 777 /u02
Dodaj instalację do pliku /etc/fstab :
echo "/dev/sdc1 /u02 ext4 defaults 0 0" >> /etc/fstab
Ważne
To polecenie instaluje plik /etc/fstab bez określonego identyfikatora UUID, co może uniemożliwić pomyślne ponowne uruchomienie dysku. Przed podjęciem próby ponownego uruchomienia dysku zaktualizuj wpis /etc/fstab, aby uwzględnić identyfikator UUID punktu instalacji.
Zaktualizuj plik /etc/hosts przy użyciu publicznego adresu IP i nazwy hosta adresu. Zmień dwie części i
<VMname>
,<Public IP>
aby odzwierciedlały rzeczywiste wartości:echo "<Public IP> <VMname>.eastus.cloudapp.azure.com <VMname>" >> /etc/hosts
Dodaj nazwę domeny maszyny wirtualnej do pliku /etc/hostname . Następujące polecenie zakłada, że grupa zasobów i maszyna wirtualna są tworzone w regionie eastus :
sed -i 's/$/\.eastus\.cloudapp\.azure\.com &/' /etc/hostname
Otwórz porty zapory.
Ponieważ protokół SELinux jest domyślnie włączony na obrazie witryny Marketplace, musimy otworzyć zaporę dla ruchu dla portu nasłuchiwania bazy danych 1521 i portu Express programu Enterprise Manager 5502. Uruchom następujące polecenia jako użytkownik główny:
firewall-cmd --zone=public --add-port=1521/tcp --permanent firewall-cmd --zone=public --add-port=5502/tcp --permanent firewall-cmd --reload
Tworzenie bazy danych
Oprogramowanie Oracle jest już zainstalowane na obrazie witryny Marketplace. Utwórz przykładową bazę danych w następujący sposób.
Przejdź do użytkownika oracle :
sudo su - oracle
Uruchom odbiornik bazy danych:
lsnrctl start
Dane wyjściowe są podobne do poniższego przykładu:
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
Utwórz katalog danych dla plików danych Oracle:
mkdir /u02/oradata
Uruchom Asystenta tworzenia bazy danych:
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
Utworzenie bazy danych trwa kilka minut.
Dane wyjściowe są podobne do poniższego przykładu:
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.
Ustaw zmienne Oracle:
Przed nawiązaniem połączenia należy ustawić zmienną środowiskową
ORACLE_SID
:export ORACLE_SID=oratest1
Należy również dodać zmienną
ORACLE_SID
dooracle
pliku bashrc użytkowników na potrzeby przyszłych logowania przy użyciu następującego polecenia:echo "export ORACLE_SID=oratest1" >> ~oracle/.bashrc
Automatyzowanie uruchamiania i zamykania bazy danych
Baza danych Oracle domyślnie nie uruchamia się automatycznie po ponownym uruchomieniu maszyny wirtualnej. Aby skonfigurować bazę danych Oracle do automatycznego uruchamiania, najpierw zaloguj się jako główny. Następnie utwórz i zaktualizuj niektóre pliki systemowe.
Zaloguj się jako użytkownik główny:
sudo su -
Zmień flagę automatycznego uruchamiania z
N
naY
w pliku /etc/oratab:sed -i 's/:N/:Y/' /etc/oratab
Utwórz plik o nazwie /etc/init.d/dbora i dodaj następujące polecenie powłoki bash do pliku:
#!/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
Zmień uprawnienia do plików za
chmod
pomocą polecenia :chgrp dba /etc/init.d/dbora chmod 750 /etc/init.d/dbora
Tworzenie linków symbolicznych na potrzeby uruchamiania i zamykania:
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
Aby przetestować zmiany, uruchom ponownie maszynę wirtualną:
reboot
Czyszczenie zasobów
Po zakończeniu eksplorowania pierwszej bazy danych Oracle na platformie Azure i maszynie wirtualnej nie jest już potrzebna, możesz użyć polecenia az group delete , aby usunąć grupę zasobów, maszynę wirtualną i wszystkie powiązane zasoby.
az group delete --name rg-oracle
Następne kroki
- Ochrona bazy danych na platformie Azure za pomocą strategii tworzenia kopii zapasowych Oracle
- Eksplorowanie rozwiązań Oracle na platformie Azure
- Instalowanie i konfigurowanie zautomatyzowanego zarządzania magazynem Oracle