Вы хотите разрабатывать свое приложение, используя управляемый сервис базы данных, но предпочли бы делать это локально? Недавно Oracle объявила о бесплатном образе контейнера Oracle Autonomous Database!
В этом учебнике мы научимся его настраивать с помощью Podman, как получить доступ к графическому интерфейсу службы и как подключиться с использованием API MongoDB! Давайте начнем!
Оглавление
Для этого учебника я использовал виртуальную машину Oracle Linux 8, используя бесплатный уровень облака Oracle: https://www.oracle.com/uk/cloud/free/. Помните, что вы можете настроить или установить его в любом месте!
На пустой виртуальной машине первым делом я установил Podman как root:
dnf install podman
После установки я запустил контейнер, выполнив следующую команду. Единственное, что вы можете изменить, это PUBLIC_IP. Я использовал общедоступный IP-адрес, чтобы иметь возможность получить доступ из интернета без необходимости использовать доменное имя. Если вы планируете работать локально, вы можете установить его в: localhost.
podman run -d \
-p 1521:1522 \
-p 1522:1522 \
-p 8443:8443 \
-p 27017:27017 \
--hostname PUBLIC_IP \
--cap-add SYS_ADMIN \
--device /dev/fuse \
--name adb_container \
ghcr.io/oracle/adb-free:latest
По соображениям безопасности вам следует изменить пароль. Вы можете выполнить следующую команду, или вас автоматически попросят изменить его при первом подключении. По умолчанию устанавливается пароль Welcome_MY_ATP_1234. Я перечислю всю информацию из документации в конце публикации.
podman exec adb_container /u01/scripts/change_expired_password.sh MY_ATP admin Welcome_MY_ATP_1234 Oracle_4U123_
Откроем все порты, чтобы можно было подключаться снаружи:
firewall-cmd --zone=public --add-port=1522/tcp --permanent
firewall-cmd --zone=public --add-port=8443/tcp --permanent
firewall-cmd --zone=public --add-port=27017/tcp --permanent
firewall-cmd --reload
Теперь давайте подключимся к графическому интерфейсу. С использованием общедоступного IP-адреса воспользуйтесь следующим URL: https://public_ip:8443/ords/my_atp/

Неплохо, не так ли? Если вы перейдете в SQL Developer и войдете под своим пользователем ADMIN, вы сможете воспользоваться отличным набором инструментов! Дайте мне знать, если вы хотите узнать больше об этом.

Если вы предпочитаете работать с базой данных из командной строки, нам нужно настроить кошелек. Для этого мы скопируем его в локальный каталог.
mkdir /scratch
podman cp adb_container:/u01/app/oracle/wallets/tls_wallet /scratch/tls_wallet
Теперь нам нужно установить переменную окружения TNS_ADMIN, чтобы подключиться с помощью sqlplus.
export TNS_ADMIN=/scratch/tls_wallet
Если у вас нет sqlplus, вы можете установить его, выполнив следующие команды:
dnf install oracle-instantclient-release-el8
dnf install oracle-instantclient-basic
dnf install oracle-instantclient-sqlplus
Наконец, мы можем подключиться напрямую через sqlplus:
sqlplus admin/Oracle_4U123_@my_atp_low
API MongoDB
Одной из великолепных функций Autonomous Database является предоставление API MongoDB. С помощью этого API вы можете подключать ваши приложения MongoDB и использовать все преимущества Autonomous Database, такие, как выполнение аналитических SQL-запросов над коллекциями MongoDB, запуск алгоритмов машинного обучения над данными JSON и многое другое!
Нам нужно определить строку подключения. Она отображается во время процесса запуска. Мы будем использовать утилиту podman для проверки журналов контейнера:
podman logs adb_container
Мы сможем найти URL, похожий на следующий:
mongodb://[{user}:{password}@]localhost:27017/{user}?authMechanism=PLAIN&authSource=$external&ssl=true&retryWrites=false&loadBalanced=true
Теперь, когда у нас есть строка подключения MongoDB, мы установим оболочку MongoDB, чтобы подключиться к Autonomous Database. Мы собираемся скачать ее со следующего URL: https://www.mongodb.com/try/download/shell. Мы собираемся скачать пакет и установить его:
wget https://downloads.mongodb.com/compass/mongodb-mongosh-2.0.1.x86_64.rpm
rpm -i mongodb-mongosh-2.0.1.x86_64.rpm
Теперь мы можем подключиться с помощью mongosh, используя строку подключения. Не забудьте установить правильное имя пользователя и пароль для подключения.
mongosh 'mongodb://admin:Oracle_4U123_@localhost:27017/admin?authMechanism=PLAIN&authSource=$external&ssl=true&retryWrites=false&loadBalanced=true' --tlsAllowInvalidCertificates

Вот и всё! Дайте мне знать в комментариях, если вы хотите узнать больше о какой-либо конкретной теме. Вы можете найти документацию для образа контейнера по этой ссылке:
Вы можете найти все ресурсы здесь: официальная документация: