img

Устранение неполадок подключений БД Oracle

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

Когда базы данных Oracle не работают, целесообразно проверить подключения к ним.

Периодически приходится проверять, работает ли база данных Oracle. Иногда процесс, запущенный на одном сервере, извлекает данные из базы данных на другом сервере, и, если процесс завершается неудачей, тестирование соединения с базой данных является хорошей отправной точкой для определения того, что пошло не так.


Проверка локальной базы данных

Если база данных находится в локальной системе, сперва проверяем состояние процесса и должны увидеть результат, подобный показанному на скриншоте ниже.

Рис. 1 Проверка состояние процесса БД

Эти выходные данные говорят нам, что процессы Oracle запущены, включая tnslsnr, часто называемый «прослушивателем» и критически важный для подключения к локальной базе данных. Также можно проверить вывод команды netstat, чтобы увидеть, порт, который «опрашивает» Oracle и использует по умолчанию. Это порт, который должен был открыть «прослушиватель».

netstat

Использование tnsping

Другая, потенциально более полезная команда - это tnsping, которая использует информацию из файла БД Oracle tnsnames.ora для проверки возможности подключения. Если, например, набрать команду tnsping ORCL, команда будет искать базу данных с именем службы ORCL, отправит запрос типа ping на настроенный порт и сообщит об ответе. Успешный ответ от tnsping будет выглядеть примерно так:

tnsping ORCL

Обратите внимание на ответ «ОК» в последней строке. Также получен отчет о том, сколько времени потребовалось на ответ. Одиннадцать секунд - быстрый ответ. Если проверялась удаленная система, то потребовалось бы в десять или более раз больше времени, чтобы получить ответ.

Если Oracle прослушивает порт, отличный от 1521, команда tnsping все равно будет работать, предполагая, что файл tnsnames.ora содержит правильную информацию. Запись tnsnames.ora для одной базы данных будет выглядеть примерно так:

ORCL

Обратите внимание, как имя службы (ORCL), которое использовалось в примере команды tnsping, и порт, на который отвечает «прослушиватель» Oracle (1521), настроены в этом дескрипторе базы данных.


Использование sqlplus

Другая команда, которую любят использовать администраторы БД для проверки связи с базой данных Oracle - это sqlplus. С помощью sqlplus (установленного вместе с Oracle) можно проверить, отвечает ли Oracle, а также и запустить несколько команд sqlplus, чтобы убедиться, что таблицы или их содержимое соответствуют тому, что мы ожидаем увидеть. Команда sqlplus имеет следующую форму для подключения к базе данных Oracle:

sqlplus username/password@SID

SID в этом описании может быть SID или SERVICE_NAME, взаимозаменяемыми в некоторых версиях Oracle. Например, можно ввести:

% sqlplus admin/f0xtrawt@ORCL

Эта команда определяет имя пользователя, пароль и SERVICE_NAME/SID в одной команде. После подключения можно ввести пару команд sql, чтобы убедиться, что база данных работает правильно. Можно подсчитать количество пользовательских таблиц с помощью такой команды:

SQL> select count(*) from user_tables;
COUNT(*)
----------
45	

Создание скрипта

Поскольку я не так часто пытаюсь устранить неполадки в базах данных Oracle, я предпочитаю сохранять команды для подключения к конкретной базе данных в виде простого скрипта. Я мог бы назвать скрипт для подключения к локальной базе данных connect2local и аналогичный сценарий для подключения к базе данных на удаленном сервере connect2rem или connect2mars (если удаленная система была названа mars).

Чтобы облегчить мне использование БД Oracle, я сохраню переменные, которые хочу использовать, в профиле и буду использовать их по мере необходимости:

Переменные

Мною написанный скрипт будет выглядеть так:

Скрипт

Когда я набираю connect2local, я ожидаю увидеть в ответ OK и возможность остаться в приглашении SQL>, из которого я могу выдавать запросы или набрать quit для выхода. Быстрые тесты, позволяющие определить, реагирует ли база данных Oracle, имеют большое значение для устранения проблем с подключением.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии про
img
Docker — популярная платформа виртуализации на уровне ОС. Она поставляет приложения в пакетах (контейнерах), которые, представля
img
Хуки в Git — это bash-скрипты, которые запускаются до или после команд Git, например, коммитов и пушей. Они позволяют автоматизи
img
  Nomad и Kubernetes – это две самые популярные платформы оркестровки, предназначенные для оркестровки динамических рабочих нагр
img
  Давайте узнаем о новом Ops-течении – GitOps! DevOps поспособствовал цифровизации многих компаний. Речь идет о командах разрабо
img
  Канареечное (canary) развёртывание – это метод разработки и развертывания программного обеспечения, который позволяет выпускат
21 ноября
20:00
Бесплатный вебинар
Введение в Docker