Создание базы данных Oracle на виртуальной машине Azure
Область применения: ✔️ виртуальные машины Linux
В этой статье описывается, как использовать Azure CLI для развертывания виртуальной машины Azure из образа коллекции Oracle Marketplace для создания базы данных Oracle Database 19c. После развертывания сервера подключите сервер через SSH для настройки базы данных Oracle.
Необходимые компоненты
-
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Azure Cloud Shell или Azure CLI.
В этом кратком руководстве вы можете выполнять команды Azure CLI в Azure Cloud Shell. Чтобы выполнить команды в Cloud Shell, выберите Open Cloudshell в правом верхнем углу блока кода. Выберите "Копировать ", чтобы скопировать код и вставить его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портал Azure. Cloud Shell всегда использует последнюю версию Azure CLI.
Кроме того, вы можете установить Azure CLI локально для выполнения команд. Для действий, описанных в этой статье, требуется Azure CLI версии 2.0.4 или более поздней. Запустите az version, чтобы просмотреть установленную версию и зависимые библиотеки, а затем запустите az upgrade для обновления. При использовании локальной установки войдите в Azure с помощью команды az login .
Создать группу ресурсов
Создайте группу ресурсов с помощью команды az group create. Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.
В приведенном ниже примере создается группа ресурсов с именем rg-oracle в расположении eastus.
az group create --name rg-oracle --location eastus
Примечание.
В этом кратком руководстве создается виртуальная машина SKU Standard_DS2_v2 в регионе "Восточная часть США". Чтобы просмотреть список поддерживаемых номеров SKU по регионам, используйте команду az vm list-skus .
Создать виртуальную машину
Создайте виртуальную машину с помощью команды az vm create .
В следующем примере создается виртуальная машина с именем vmoracle19c. Он также создает ключи SSH, если они еще не существуют в расположении ключа по умолчанию. Чтобы использовать определенный набор ключей, можно использовать --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
После создания виртуальной машины в Azure CLI отображается информация следующего вида. Обратите внимание на значение свойства publicIpAddress
. Этот IP-адрес используется для доступа к виртуальной машине.
{
"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
Создайте и подключите новый диск для файлов данных Oracle и область быстрого восстановления (FRA) с помощью команды az vm disk attach .
В следующем примере создается диск с именем oradata01.
az vm disk attach \
--name oradata01 --new \
--resource-group rg-oracle \
--size-gb 64 --sku StandardSSD_LRS \
--vm-name vmoracle19c
Открытие портов для подключения
В этой задаче необходимо настроить некоторые внешние конечные точки для прослушивателя базы данных, чтобы использовать, настроив группу безопасности сети Azure (NSG), которая защищает виртуальную машину.
Создайте группу безопасности сети для виртуальной машины с помощью команды az network nsg create . Эта команда создает NSG vmoracle19cNSG для управления доступом к виртуальной машине:
az network nsg create --resource-group rg-oracle --name vmoracle19cNSG
Создайте правило NSG с помощью команды az network nsg rule create . Эта команда создает правило NSG allow-oracle , чтобы открыть конечную точку для удаленного доступа к базе данных Oracle:
az network nsg rule create \ --resource-group rg-oracle \ --nsg-name vmoracle19cNSG \ --name allow-oracle \ --protocol tcp \ --priority 1001 \ --destination-port-range 1521
Создайте второе правило NSG, чтобы открыть конечную точку для удаленного доступа к Oracle. Эта команда создает правило 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
По мере необходимости используйте команду az network public-ip show , чтобы получить общедоступный IP-адрес виртуальной машины:
az network public-ip show \ --resource-group rg-oracle \ --name vmoracle19cPublicIP \ --query "ipAddress" \ --output tsv
Подготовка среды виртуальной машины
Создайте сеанс SSH с виртуальной машиной. Замените
<publicIPAddress>
часть значением общедоступного IP-адреса для виртуальной машины, например10.200.300.4
:ssh azureuser@<publicIPAddress>
Переключитесь на роль пользователя root (привилегированного):
sudo su -
Найдите последнее созданное дисковое устройство, которое вы хотите отформатировать для хранения файлов данных Oracle:
ls -alt /dev/sd*|head -1
Выходные данные похожи на этот пример:
brw-rw----. 1 root disk 8, 16 Dec 8 22:57 /dev/sdc
В качестве корневого пользователя используйте
parted
команду для форматирования устройства.Сначала создайте метку диска:
parted /dev/sdc mklabel gpt
Затем создайте основную секцию, которая охватывает весь диск:
parted -a optimal /dev/sdc mkpart primary 0GB 64GB
Наконец, проверьте сведения об устройстве, распечатав его метаданные:
parted /dev/sdc print
Выходные данные похожи на этот пример:
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
Создайте файловую систему в разделе устройства:
mkfs -t ext4 /dev/sdc1
Выходные данные похожи на этот пример:
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
Создайте точку подключения:
mkdir /u02
Подключите диск:
mount /dev/sdc1 /u02
Изменение разрешений на точке подключения:
chmod 777 /u02
Добавьте подключение в файл /etc/fstab :
echo "/dev/sdc1 /u02 ext4 defaults 0 0" >> /etc/fstab
Внимание
Эта команда подключает файл /etc/fstab без определенного идентификатора UUID, что может предотвратить успешную перезагрузку диска. Перед перезагрузкой диска обновите запись /etc/fstab, чтобы включить идентификатор UUID для точки подключения.
Обновите файл /etc/hosts с общедоступным IP-адресом и именем узла адреса. Измените
<Public IP>
две<VMname>
части, чтобы отразить фактические значения:echo "<Public IP> <VMname>.eastus.cloudapp.azure.com <VMname>" >> /etc/hosts
Добавьте доменное имя виртуальной машины в файл /etc/hostname . Следующая команда предполагает, что группа ресурсов и виртуальная машина создаются в регионе eastus :
sed -i 's/$/\.eastus\.cloudapp\.azure\.com &/' /etc/hostname
Откройте порты брандмауэра.
Так как SELinux включен по умолчанию на образе Marketplace, необходимо открыть брандмауэр для трафика для базы данных, прослушивающей порт 1521, и порт Enterprise Manager Express 5502. Выполните следующие команды с правами привилегированного пользователя:
firewall-cmd --zone=public --add-port=1521/tcp --permanent firewall-cmd --zone=public --add-port=5502/tcp --permanent firewall-cmd --reload
Создание базы данных
Программное обеспечение Oracle уже установлено в образе Marketplace. Создайте пример базы данных, как описано ниже.
Переключитесь на роль пользователя oracle:
sudo su - oracle
Запустите прослушиватель базы данных:
lsnrctl start
Вы должны увидеть результат, аналогичный приведенному ниже.
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
Создайте каталог данных для файлов данных Oracle:
mkdir /u02/oradata
Запустите помощник по созданию базы данных:
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
Создание базы данных занимает несколько минут.
Вы должны увидеть результат, аналогичный приведенному ниже.
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.
Задайте переменные Oracle:
Перед подключением необходимо задать переменную
ORACLE_SID
среды:export ORACLE_SID=oratest1
Вы также должны добавить
ORACLE_SID
переменную вoracle
файл bashrc для будущих входов, выполнив следующую команду:echo "export ORACLE_SID=oratest1" >> ~oracle/.bashrc
Автоматизация запуска и завершения работы базы данных
По умолчанию база данных Oracle не запускается автоматически при перезапуске виртуальной машины. Чтобы база данных Oracle запускалась автоматически, войдите с правами привилегированного пользователя. Затем создайте и обновите некоторые системные файлы.
Войдите в качестве корневого пользователя:
sudo su -
Измените флаг автоматического запуска на
N
Y
файл /etc/oratab:sed -i 's/:N/:Y/' /etc/oratab
Создайте файл с именем /etc/init.d/dbora и добавьте в файл следующую команду bash:
#!/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
Измените разрешения на файлы с помощью
chmod
команды:chgrp dba /etc/init.d/dbora chmod 750 /etc/init.d/dbora
Создайте символьные ссылки для запуска и завершения работы.
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
Чтобы проверить изменения, перезапустите виртуальную машину.
reboot
Очистка ресурсов
После завершения изучения первой базы данных Oracle в Azure и виртуальной машины вы можете использовать команду az group delete для удаления группы ресурсов, виртуальной машины и всех связанных ресурсов.
az group delete --name rg-oracle
Следующие шаги
- Защита базы данных в Azure с помощью стратегий резервного копирования Oracle
- Изучение решений Oracle в Azure
- Установка и настройка управления автоматизированным хранилищем Oracle