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 Galleriavbildningen på Oracle 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.
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
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
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
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ö
Skapa en SSH-session med den virtuella datorn. Ersätt delen
<publicIPAddress>
med det offentliga IP-adressvärdet för den virtuella datorn, till exempel10.200.300.4
:ssh azureuser@<publicIPAddress>
Växla till rotanvändaren:
sudo su -
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
Som rotanvändare använder du
parted
kommandot för att formatera enheten.Skapa först en disketikett:
parted /dev/sdc mklabel gpt
Skapa sedan en primär partition som sträcker sig över hela disken:
parted -a optimal /dev/sdc mkpart primary 0GB 64GB
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
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
Skapa en monteringspunkt:
mkdir /u02
Montera disken:
mount /dev/sdc1 /u02
Ändra behörigheter på monteringspunkten:
chmod 777 /u02
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.
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
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
Ö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.
Växla till oracle-användaren:
sudo su - oracle
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
Skapa en datakatalog för Oracle-datafilerna:
mkdir /u02/oradata
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.
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
ioracle
.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.
Logga in som rotanvändare:
sudo su -
Ändra flaggan för automatisk start från
N
tillY
i /etc/oratab-filen:sed -i 's/:N/:Y/' /etc/oratab
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
Ändra behörigheter för filer med
chmod
kommandot :chgrp dba /etc/init.d/dbora chmod 750 /etc/init.d/dbora
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
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
- Skydda din databas i Azure med Oracle-säkerhetskopieringsstrategier
- Utforska Oracle-lösningar i Azure
- Installera och konfigurera Oracle Automated Storage Management