Когда базы данных Oracle не работают, целесообразно проверить подключения к ним.
Периодически приходится проверять, работает ли база данных Oracle. Иногда процесс, запущенный на одном сервере, извлекает данные из базы данных на другом сервере, и, если процесс завершается неудачей, тестирование соединения с базой данных является хорошей отправной точкой для определения того, что пошло не так.
Проверка локальной базы данных
Если база данных находится в локальной системе, сперва проверяем состояние процесса и должны увидеть результат, подобный показанному на скриншоте ниже.
Эти выходные данные говорят нам, что процессы Oracle запущены, включая tnslsnr
, часто называемый «прослушивателем» и критически важный для подключения к локальной базе данных. Также можно проверить вывод команды netstat
, чтобы увидеть, порт, который «опрашивает» Oracle и использует по умолчанию. Это порт, который должен был открыть «прослушиватель».
Использование tnsping
Другая, потенциально более полезная команда - это tnsping
, которая использует информацию из файла БД Oracle tnsnames.ora для проверки возможности подключения. Если, например, набрать команду tnsping ORCL
, команда будет искать базу данных с именем службы ORCL, отправит запрос типа ping на настроенный порт и сообщит об ответе. Успешный ответ от tnsping
будет выглядеть примерно так:
Обратите внимание на ответ «ОК» в последней строке. Также получен отчет о том, сколько времени потребовалось на ответ. Одиннадцать секунд - быстрый ответ. Если проверялась удаленная система, то потребовалось бы в десять или более раз больше времени, чтобы получить ответ.
Если Oracle прослушивает порт, отличный от 1521, команда tnsping
все равно будет работать, предполагая, что файл tnsnames.ora содержит правильную информацию. Запись tnsnames.ora
для одной базы данных будет выглядеть примерно так:
Обратите внимание, как имя службы (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, имеют большое значение для устранения проблем с подключением.