Разное

Sqlplus подключение к базе: Как использовать sqlplus для подключения к базе данных Oracle, расположенной на другом хосте, без изменения моего собственного tnsnames.ora

Содержание

Как подключиться к ссылке базы данных Oracle напрямую с помощью SQLPLUS

Я попробовал каждый из следующих вариантов — ни один не сработал:

[[email protected]]$ sqlplus system/[email protected]_NAME

[[email protected]]$ sqlplus system/[email protected]:1521/SID_NAME

[[email protected]]$ sqlplus system/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=localhost)(Port=1521))(CONNECT_DATA=(SID=SID_NAME)))

[[email protected]]$ sqlplus "system/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=localhost)(Port=1521))(CONNECT_DATA=(SID=SID_NAME)))"

Поддерживает ли SQL*Plus прямое подключение к «Oracle database link» в начальной командной строке? Если да , то как?

SID_NAME указывает не на базу данных, а на «ссылку базы данных Oracle»: https:/ / docs.oracle.com/cd/B28359_01/server. 111/b28310/ds_concepts002. htm#i1007709

Я могу запросить «Oracle database link» после подключения к локальной базе данных Oracle. Локальная база данных Oracle — это место, где была создана ссылка, указывающая на удаленную базу данных. Он подключается через DSN ODBC.

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

Локальный порт базы данных Oracle — 1521.

Сообщение об ошибке, которое я получаю:

ERROR: ORA-01017: неверно username/password; вход запрещен

Весь смысл в том, чтобы отладить (GDB) драйвер ODBC. С isql — в командной строке — я могу предоставить ODBC ДСН и когда я запускаю info sharedlibrary на GDB подскажу — я вижу, мои загруженные библиотеки и, следовательно, отладка. Я заинтересован в том, чтобы загрузить драйвер таким же образом, используя sqlplus. Я не смог увидеть загруженное почтовое соединение библиотеки. Отсюда-попытка загрузить библиотеку по начальной команде точно так же, как isql.

В какой момент sqlplus фактически загружает драйвер ODBC для удаленной базы данных? Я знаю, что это происходит, когда запрос выполняется и выгружает его при выходе. Но я не могу поймать его-даже если точка останова существует.

oracle

command-line

sqlplus

database-link

Поделиться

Источник


Kapil Vyas    

31 мая 2018 в 22:45

2 ответа


  • Подключитесь к sqlplus с другим пользователем linux, чем oracle

    Я установил Oracle с sqlplus с пользователем oracle (linux — CentOS). Если я пытаюсь подключиться к базе данных, будучи oracle, все идет так, как ожидалось (например, sqlplus / as sysdba), но мне нужно сделать то же самое (возможно, не как sysdba, а как пользователь из базы данных), будучи другим…

  • oracle sqlplus нет имени пользователя и базы данных

    Я установил для sqlplus oracle и мгновенный клиента на Mac OS с помощью этого учебника: https://tomeuwork.wordpress.com/2014/05/12/Как-установить-oracle-для sqlplus-а-oracle-клиент-в-МАК-os/comment-page-1 / Теперь я могу открыть sqlplus в terminal, набрав sqlplus, но он запрашивает у меня имя…



1

Один не подключается к ссылке базы данных.

Ссылка на базу данных сообщает базе данных а, как добраться до базы данных В.

Предполагая, что у вас есть определение DB_LINK, вы можете использовать те же данные для прямого подключения к базе данных B.

Так что в некотором смысле да SQL*Plus может соединиться.

Ваша строка подключения говорит: соедините меня с базой данных под названием SID_NAME, которая работает на компьютере MY, через порт # 1521.

Сообщение об ошибке говорит вам, что комбинация имени пользователя и пароля неверна. Таким образом, вы 90% пути туда — вам просто нужно правильное ‘key’, чтобы открыть замок.

Поделиться


thatjeffsmith    

31 мая 2018 в 22:59



0

SQL Plus разговаривает с удаленной базой данных по ссылке Oracle DB. SQL Plus напрямую не делает ODBC звонков. SQL Plus напрямую связывается с базой данных. Базы данных общаются друг с другом по ссылкам БД, в этом случае Oracle БД соединяется через «Oracle Heterogeneous Services (HS)». ODBC драйвер «never» загружается по SQLPlus, таким образом, нет никакого способа отладить драйвер с помощью этого метода. Кроме того, база данных, к которой подключается SQLPlus, также не загружает драйвер ODBC. Он использует код OCI/C точно так же, как и SQL Plus для подключения к другой базе данных.

Поделиться


Kapil Vyas    

10 июля 2018 в 22:15


Похожие вопросы:

Не удается получить доступ к oracle с помощью sqlplus с другой машины на LAN

У меня есть Oracle, работающий на одной машине из LAN. Я могу подключиться к DB с помощью sqlplus, когда я выдаю: sqlplus myuser/[email protected]:1521/orcl Это прекрасно работает. На другой машине…

PHP не может подключиться, но SqlPlus может

Вот проблема,которая прямо сейчас поражает мои клетки. Есть сервер oracle, к которому я хочу подключиться. Я могу легко подключиться к нему с помощью командной строки sqlplus. Однако когда я пытаюсь…

Oracle подключение к базе данных через SQLPLUS

Я пытаюсь подключиться к своей базе данных Oracle из SQLPlus, но не могу подключиться. У меня есть клиент Oracle (10g) на моей машине. Ниже приведены детали, с помощью которых я могу подключиться из…

Подключитесь к sqlplus с другим пользователем linux, чем oracle

Я установил Oracle с sqlplus с пользователем oracle (linux — CentOS). Если я пытаюсь подключиться к базе данных, будучи oracle, все идет так, как ожидалось (например, sqlplus / as sysdba), но мне…

oracle sqlplus нет имени пользователя и базы данных

Я установил для sqlplus oracle и мгновенный клиента на Mac OS с помощью этого учебника: https://tomeuwork.wordpress.com/2014/05/12/Как-установить-oracle-для…

как подключиться к базе данных oracle из unix

Я пытаюсь подключиться к базе данных oracle с моей машины unix. Я вообще новичок в написании сценариев. Я знаю, как просматривать round unix и написал базовые скрипты (чтение / отображение) и…

Как подключиться к другому экземпляру oracle как sysdba с помощью sqlplus?

Когда я запускаю команду sqlplus подключение к orcl2 инстанции, но мне нужно подключить, чтобы второй раз можно ли подключать обычный пользователь с помощью этого: sqlplus…

Я не могу подключиться к базе данных oracle с клиентского ПК

Я не могу подключиться к базе данных oracle с клиентского ПК PC#1: давайте назовем его сервером. уже есть статический IP, а OS-это windows server 2012 Давайте назовем это клиентом. в сервере PC я…

Как подключиться к базе данных Oracle 12c с помощью cx_Oracle

sqlplus sys/[email protected] as sysdba; я использую эту команду для подключения к Oracle 12c из командной строки. Как я могу подключиться к БД с помощью cx_Oracle. Я новичок в Oracle DB.

Как подключиться к базе данных с помощью SSH типа соединения с помощью Oracle SQLPlus?

Мне нужно подключиться к базе данных, доступ к которой возможен только через jump-сервер. Я могу легко получить доступ к этому, используя настройку хоста SSH с помощью ключевого файла (pem-файл), а…

Запуск и остановка экземпляра базы данных Oracle.

Рекомендовано для:
Oracle Database 9i R1
Oracle Database 9i R2
Oracle Database 10g R1
Oracle Database 10g R2
Oracle Database 11g R1

Для запуска или остановке экземпляра, вы должны быть подключены с соответствующими привилегиями. Для этого существует две специально авторизованных учетных записи SYSDBA или SYSOPER.
SYSDBA авторизован на абсолютно все задачи связанные с базой данных, полномочия SYSOPER несколько меньше, но тем не менее они позволяют проводить остановку и запуск экземпляра Oracle. Когда база данных только что установлена, только SYS может соединиться с базой данных с разрешение SYSDBA. Далее вы можете дать привилегию SYSOPER, для выполнения ряда административных мероприятий. Теперь обсудим как выполнять запуск базы данных.

Запуск базы данных Oracle

Как упоминалось ранее, экземпляр Oracle состоит из нескольких процессов и логических структур памяти, которые позволяют пользователю общаться с базой данных. Во время запуска базы данных, эти структуры инициализируются и запускаются. При запуске базы данных, она проходит через несколько шагов, для проверки ее целостности. При запуске база данных использует три режима: NOMOUNT, MOUNT и OPEN. Рассмотрим каждый из них подробнее.

STARTUP NOMOUNT
Вариант 1
STARTUP NOMOUNT запускает базу данных без монтирования. Когда база данных запущена в этом режиме, читается файл параметров, инициализируются фоновые процессы и структуры памяти, но они не связываются с дисковыми структурами базы данных. Когда база данных в этом состоянии, она недоступна для использования.
Если база данных запущена в режиме NOMOUNT, то вы можете выполнять некоторые задачи, например запуск скриптов на создание основной базы данных.
Иногда база данных недоступна для перехода в следующий режим — MOUNT, и остается в состоянии NOMOUNT. Например, такое возможно при проблеме с доступом к управляющим файлам, которые содержат важную информацию для продолжения процесса запуска. Если эти файловые структуры недоступны или повреждены, то процесс запуска базы данных не может быть продолжен, до решения проблемы.
Вариант 2
Запуск экземпляра базы данных: состояние NOMOUNT
Во время запуска экземпляра базы данных, необходимо выбрать состояние, в которое в результате перейдет экземпляр.
Обычно экземпляр запускается в режиме NOMOUNT только во время создания базы данных или для пересоздания управляющих файлов, а также при выполнении определенных сценариев резервирования и восстановления.
Запуск экземпляра подразумевает выполнение следующих задач:
1) Поиск в директории $ORACLE_HOME/dbs файла параметров, осуществляемый в следующем порядке.
• Ищется файл spfileSID.ora
• Если он не найдет, тогда производится поиск файла spfile.ora;
• Если он не найден, тогда поиск файла SID.ora.
Искомый файл содержит параметры экземпляра базы данных;
-Задание параметра PFILE в команде STARTUP переопределяет установленный по умолчанию порядок выбора файла параметров.
-Выделение SGA;
-Запуск фоновых процессов.
-Открытие сигнального файла alertSID.log и файлов трассировки.

STARTUP MOUNT
Вариант 1
Опция STARTUP MOUNT выполняет все шаги опции STARTUP NOMOUNT, но еще так же связывает и взаимодействует со структурами базы данных. В этот момент, Oracle получает информацию от управляющих файлов, которые используются для связи с основными структурами базы данных.
Часть административных задач выполняется в этом режиме, например, восстановление базы данных. Так же можно изменять физическое расположение файлов и перевести базу данных в режим ARCHIVE LOG.
Вариант 2
Монтирование базы данных включает следующие задачи:
Ассоциация базы данных с предварительно запущенным экземпляром:
Определение местоположения управляющих файлов, которые указаны в файле параметров:
Чтение управляющих файлов с целью получения имен и статуса файлов данных и журнальных файлов. Однако на данный момент не проверяется фактическое существование файлов данных и журнальных файлов.

STARTUP OPEN
Вариант 1
Опция STARTUP OPEN является опцией по-умолчанию, если не указано иное. Она выполняет все операции STARTUP NOMOUNT и STARTUP MOUNT. Эта опция делает базу данных доступной для пользователей.
Хотя обычно используются три режима: STARTUP NOMOUNT, STARTUP MOUNT и STARTUP OPEN, доступны еще опции запуска, которые вы можете использовать в ряде ситуаций. Это STARTUP FORCE и STARTUP RESTRICT. О них и пойдет речь далее.
Вариант 2
Открытие базы данных подразумевает выполнение следующих задач:
• Открытие оперативных файлов данных;
• Открытие оперативных журнальных файлов.
Если какие-либо из файлов данных или журнальных файлов недоступны в момент открытия базы данных, сервер Oracle возвращает ошибку.
При выполнении окончательного этапа открытия базы данных, Oracle проверяет доступность всех файлов данных и журнальных файлов, а также проверяет целостность базы данных. Если необходимо, фоновый процесс системный монитор (SMON) инициирует восстановление экземпляра.

STARTUP FORCE
STRATUP FORCE может использоваться, если у вас есть трудности с запуском базы данных в нормальном режиме. Например, если сервер базы данных был неожиданно отключен от электричества и база данных была резко остановлена. В этом случае может помочь STARTUP FORCE. В нормальной ситуации этот режим не требуется, но может пригодится, если нормальный запуск не работает.
Основное отличие этой опции от других, это то, что она может быть исполнена в любое время, независимо от режима в котором находится база данных. Это режим запуска выполняет остановку базы данных в режиме ABORT и перезапускает ее.

STARTUP RESTRICT
STARTUP RESTRICT запускает базу данных и переводит ее в режим OPEN, но предоставляет доступ только тем пользователям, которые имеют привилегию RESTRICTED SESSION. Возможно потребуется открыть базу данных в этом режиме для проведения технических работ по обслуживанию, когда база данных открыта, но вы хотите быть уверены, что пользователи не работают с базой. Так же можно открыть базу данных используя опцию RESTRICTED при выполнении импорта или экспорта и требуется гарантия, отсутствия пользователей в базе данных. После завершения работ, вы можете перевести базу в нормальный режим, чтобы каждый мог с ней работать. Для этого выполните:

Запуск базы данных средствами SQL Plus

Запуск базы данных можно осуществить и средствами командной строки SQLPlus. Для этого надо подключится к SQL*Plus с привилегиями SYSOPER или SYSDBA.

Включить нормальное отображение языка в CMD
set NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251
chcp1251

Подключиться к базе в cmd авторизовавшись:
sqlplus sys/пароль@назв.базы AS SYSDBA

Подключиться к выключенной базе:
$ ./sqlplus / as sysdba
SQL*Plus: Release 11.1.0.7.0 — Production on Fri Apr 10 12:43:16 2009
Copyright (c) 1982, 2008, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 845348864 bytes
Fixed Size 1316656 bytes
Variable Size 473958608 bytes
Database Buffers 364904448 bytes
Redo Buffers 5169152 bytes
Database mounted.
Database opened.

SQL>

Остановка базы данных Oracle

Коротко:

ABORT – Перед остановкой производится наименьшее число действий. После этого при запуске система должна выполнить восстановление. Поэтому используйте этот режим только, когда это необходимо. Обычно он применяется, когда другие варианты остановки не отрабатывают, когда это вызвано проблемами, возникающими при запуске или когда требуется немедленно остановить экземпляр перед проблемной ситуаций, например, при получении сообщения о том, что через несколько секунд будет выключение питания.

IMMEDIATE – обычно используемая опция. При этом незафиксированные транзакции откатываются.

TRANSACTIONAL – представляется возможность завершить транзакции.

NORMAL – Экземпляр не останавливается, пока не отсоединятся сеансы. 

SHUTDOWN NORMAL
Вариант 1
Опция SHUTDOWN NORMAL является опцией по умолчанию и используется если не указаны иные опции. При такой остановке базы данных следует знать:

Во время выполнения SHUTDOWN NORMAL не позволены никакие новые соединения пользователей с базой данных
Oracle будет ждать пока все пользователи завершат свои сеансы подключения к базе данных, и только после этого продолжит процесс остановки
Поскольку Oracle ожидает завершения всех пользовательских сеансов, вы можете определить пользователей подключенных к базе данных самостоятельно. Так же можно определить неактивных пользователей, не выполняющих никаких действий с БД в течение продолжительного времени и принудительно завершить их
Такой способ остановки называется «чистым», потому что в случае такой остановки не потребуется восстановление и все проходит в штатном режиме.
Вариант 2
Нормальный режим остановки базы данных, используется по умолчанию.
• Новые соединения не разрешаются.
• Сервер Oracle ожидает отсоединения всех пользователей и только после этого продолжает остановку базы данных.
• Буферы из КЭШа базы данных и журнала записываются на диск.
• Фоновые процессы завершаются и SGA удаляется из памяти.
• Перед остановкой экземпляра, Oracle закрывает и демонтирует базу данных.
• При следующем запуске не потребуется восстановление экземпляра.

SHUTDOWN TRANSACTIONAL
Вариант 1
Транзакционный способ производит остановку базы данных в несколько более агрессивном режиме, чем NORMAL. Характеристики транзакционного способа остановки:
Во время выполнения SHUTDOWN TRANSACTIONAL не позволены никакие новые соединения пользователей с базой данных
С момента запуска SHUTDOWN TRANSACTIONAL не позволены никакие транзакции
Oracle ждет завершения текущих транзакций, существующие подключения к базе данных разрываются
Такой способ остановки позволяет клиентам перед отключением завершить текущие транзакции, таким образом не потерять их и не потерять проделанную работу. Этот тип остановки также называется чистым, поскольку все проходит в штатном режиме.
Вариант 2
Транзакционная остановка обеспечивает сохранность данных клиентов, включая результаты текущих действий. Остановка базы данных в транзакционном режиме происходит следующим образом:
• Ни один клиент не может запустить новую транзакцию в этом экземпляре.
• Клиент принудительно отсоединяется, как только завершается текущая транзакция.
• Как только все транзакции завершены, немедленно выполняется остановка.
• При следующем запуске не потребуется восстановление экземпляра.

SHUTDOWN IMMEDIATE
Вариант 1
Является следующим по агрессивности шагом. Опция SHUTDOWN IMMEDIATE характеризуется следующим:
Во время выполнения SHUTDOWN IMMEDIATE не позволены новые подключения к базе данных
Все незавершенные транзакции откатываются. Т.е. если транзакция пользователя в процессе исполнения, то он теряет проделанную работу (в рамках транзакции)
Oracle не ожидает завершения транзакций, откатывает их, и разрывает существующие подключения к базе данных
Этот тип остановки удобен когда требуется оставить Oracle без присмотра и требуется быть уверенным, что база данных остановится и пользователи будут отключены. Остановку таким способом можно считать чистой, после такой остановки не требуется восстановления базы данных.
Вариант 2
Немедленная остановка базы данных выполняется следующим образом:
• Обработка команд SQL, выполняемых Oracle в данный момент, не завершается.
• Сервер Oracle не ожидает отсоединения пользователей, работающих с базой данных в текущий момент.
• Oracle выполняет откат всех активных транзакций и принудительно отсоединяет всех пользователей.
• Oracle закрывает и демонтирует базу данных перед остановкой экземпляра.
• При следующем запуске не потребуется восстановление экземпляра. 

SHUTDOWN ABORT
Вариант 1

SHUTDOWN ABORT самый агрессивный способ остановки базы данных, характеризуется следующим:
Во время исполнения SHUTDOWN ABORT новые подключения не позволены
Прекращается исполнение любых SQL команд, независимо от состояния
Незавершенные транзакции не откатываются
Oracle разрывает все существующие подключения немедленно, как выпущена команда SHUTDOWN ABORT
Старайтесь не использовать SHUTDOWN ABORT. Используйте только в тех случаях, когда другие опции остановки не удались, или ваш опыт позволяет использовать эту опцию в данной ситуации. SHUTDOWN ABORT не является чистой остановкой базы данных, и после ее запуска может потребоваться восстановление.
Вариант 2
Если режимы нормальной и немедленной остановки не срабатывают, может быть выполнена аварийная остановка базы данных. Аварийное завершение работы экземпляра выполняется следующим образом:
Немедленно отменяются все команды SQL, обрабатываемые сервером Oracle.
Сервер Oracle не ожидает отсоединения пользователей, работающих с базой данных в текущий момент.
Буферы из КЭШа базы данных и журнала не записываются на диск.
Не выполняется откат незафиксированных транзакций.
База данных не закрывается и не демонтируется.
Экземпляр удаляется без закрытия файлов.
При следующем запуске потребуется восстановление экземпляра, которое произойдет автоматически. 

Остановка базы данных средствами SQL Plus

Включить нормальное отображение языка в CMD
set NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251
chcp1251

Подключиться к базе в cmd авторизовавшись:
C:\Windows\system32>sqlplus sys/пароль@назв.базы AS SYSDBA
SQL*Plus: Release 11.2.0.1.0 Production on Пт Июл 19 17:30:58 2019
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Присоединен к:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 — 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> SHUTDOWN IMMEDIATE
База данных закрыта.
База данных размонтирована.
Экземпляр ORACLE завершен.
SQL>

Разблокировка и доступ к пользователю HR в Oracle Database 18c Express Edition

В посте рассматривается способ разблокировки и доступа к учебному
и тестовому пользователю (схемы) HR в базе данных Oracle Database 18c Express Edition. Рассмотрены следующие вопросы:

  • Краткий обзор Multitenant архитектуры
  • Разблокировка пользователя HR

Краткий обзор Multitenant архитектуры На сегодняшний день последней актуальной версией бесплатной редакции Oracle Database является Oracle Database 18c Express Edition. Данная версия выпущена в 2018 году. Предыдущая версия бесплатной редакции была Oracle Database 11g Express Edition. В Oracle Database 18c Express Edition включены многие важные опции наиболее функциональной редакции Oracle Database –  Oracle Database Enterprise Edition. Ниже приведены некоторые основные опции, которые доступны также в Oracle Database 18c Express Edition:

  • Multitenant
  • Flashback Table
  • Flashback Database
  • Oracle Partitioning
  • In-Memory
    Column Store и Aggregation
  • Advanced Analytics и Security
  • Online
    Index Rebuild
  • Online
    Table Redefinition
  • Query
    Results Cache и PL/SQL Function Result Cache
  • Oracle
    Advanced Compression
  • Materialized
    View Query Rewrite
  • Oracle
    Spatial and Graph
  • Bitmap Indexes

Для подключения к схеме HR в Oracle Database 18c Express Edition необходимо понимать принцип работы новой опции Multitenant. Начиная с Oracle Database 12с поддерживается новая архитектура – Multitenant, которая предоставляет возможность использовать множество баз данных для консолидации их в составе единой и главной базы данных. Такая консолидация упрощает задачи администрирования баз данных. Единая и главная база данных используется в качестве платформы и называется контейнерная база данных (Container Database – CDB), а база данных из множества работающих в составе контейнерной базы данных называется подключаемой базой данных (Pluggable Database – PDB). Архитектура Multitenat позволяет создать в Oracle Database 18с Express Edition одну CDB базу и до трех PDB баз. Архитектура Oracle Database 11g Express Edition предоставляет возможность создать одну и единственную базу. В Oracle Database 18с Express Edition учебная и тестовая схема (пользователь) HR, которая содержит взаимосвязанные таблицы и данные, располагается в составе PDB. В связи с этим, чтобы подключиться к базе данных под этой учетной записью, необходимо войти в PDB, разблокировать пользователя HR и назначить ему пароль. Ниже пошагово описываются шаги подключения к CDB, PDB и манипуляция настроек пользователя с помощью SQLPlus и SQLDeveloper.

Разблокировка пользователя (схемы) HR

Предполагается, что есть успешно установленная Oracle Database 18c Express Edition. При необходимости, можно установить Oracle Database 18c Express Edition используя следующие материалы: установка Oracle Database 18c Express Edition на Linux и установка Oracle Database 18c Express Edition на Windows. Нижеописанные шаги будут работать с Oracle Database 18c Express Edition, установленной, как на операционную систему Linux, так и на Windows.

Вариант разблокировки с
помощью
SQL*Plus.

Шаг 1. Подключение к CDB

Выполняется подключение к CDB с помощью пользователя sys с ролью as sysdba:

[[email protected] ~]$ sqlplus sys as sysdba  

SQL*Plus: Release 18.0.0.0.0 - Production on Fri Jul 17 13:00:06 2020
Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Enter password:  

Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0 

Подключение успешно прошло к CDB. Далее проверяется имя и идентификатор CDB.

SQL> select instance_name, con_id, version from v$instance;

INSTANCE_NAME  CON_ID   VERSION
-------------- ------- ----------
 XE               0    18.0.0.0.0

Результат запроса показывает, что CDB имеет имя XE и ее уникальный идентификатор = 0. По умолчанию, после установки Oracle Database 18c Express Edition есть одна PDB с именем XEPDB1. Следующий запрос покажет существующие PDB.

SQL> show pdbs;

CON_ID  CON_NAME   OPEN MODE   RESTRICTED
------- --------- ------------ -----------
  2     PDB$SEED   READ ONLY      NO  
  3      XEPDB1    READ WRITE     NO

Активная PDB имеет имя XEPDB1 с идентификатором 3 и ее режим работы определен как READ WRITE. OPEN MODE – READ WRITE означает, что база данных (БД) открыта и готова работать в режиме чтения и записи. PDB$SEED используется CDB как шаблон для создания новых PDB баз.

Проверяется наличие пользователя HR в CDB.

SQL> select username from dba_users where username = 'HR';
no rows selected

Запрос не вернул данные. Это означает, что пользователя HR нет в CDB. Далее необходимо подключиться к PDB и найти там HR.

Шаг 2. Подключение к PDB

Есть два способа подключиться к PDB с использованием SQL*Plus.

Способ 1. Находясь в CDB, подключиться к PDB используя команду alter session. В примере ниже происходит переключение из сеанса CDB к PDB с именем XEPDB1:

SQL> alter session set container = xepdb1;
Session altered.

Переключение прошло успешно. Для того, чтобы удостовериться в корректности подключения, проверяется имя и идентификатор PDB базы:

SQL> show con_name

CON_NAME
--------
XEPDB1

SQL> show con_id

CON_ID
--------
3

Запросы показывают характеристики существующей PDB (Шаг 1.).

Способ 2. Можно подключиться к PDB с консоли операционной системы, указав параметры подключения.

Ниже выполняется подключение к PDB под пользователем sys с указанием IP адреса сервера БД, порта и имени PDB (по умолчанию для созданной PDB (XEPDB1) используется порт 1539):

[[email protected] ~]$ sqlplus sys/[email protected]:1539/XEPDB1 as sysdba

SQL*Plus: Release 18.0.0.0.0 - Production on Sat Jul 18 17:04:51 2020
Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0 

Подключение прошло успешно.

Для информации: Администраторы баз данных временами выполняют подключение к БД используя аутентификацию на уровне операционной системы с помощью команды sqlplus / as sysdba и без указания пароля. При запуске этой команды в среде с Multitenant архитектурой будет осуществлено подключение к CDB. Для того, чтобы напрямую подключиться к PDB минуя CDB, используется sqlplus / as sysdba и без указания пароля, также необходимо в переменную среду операционной системы добавить новый системный параметр ORACLE_PDB_SID и в его значении указать название PDB. Этот параметр для подключения к PDB без указания пароля могут осуществлять только пользователи sys и system. Остальные пользователи будут автоматически подключены к CDB, если не укажут параметры подключения к PDB. Ниже описываются шаги подключения к PDB для пользователя sys с применением параметра ORACLE_PDB_SID в переменной среде операционной системы. Это очень удобный способ для администраторов баз данных:

[[email protected] ~]$ env | grep ORACLE*
ORACLE_SID=XE
ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE
[[email protected] ~]$ 
[[email protected] ~]$ export ORACLE_PDB_SID=xepdb1
[[email protected] ~]$ env | grep ORACLE*
ORACLE_PDB_SID=xepdb1
ORACLE_SID=XE
ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE
[[email protected] ~]$ 
[[email protected] ~]$ sqlplus / as sysdba

SQL*Plus: Release 18.0.0.0.0 - Production on Fri Jul 17 16:46:35 2020
Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0 

Подключение к PDB прошло успешно напрямую из операционной системы без указания пароля и параметров подключения PDB. Далее проверяется имя и идентификатор PDB.

SQL> show con_name

CON_NAME
--------
XEPDB1

SQL> show con_id

CON_ID
--------
3

После успешного подключения к PDB c использованием одного из двух способов определяется наличие пользователя HR, а также его статус.

Запускается запрос поиска пользователя HR среди всех существующих пользователей в XEPDB1:

SQL> select username from dba_users where username = 'HR';

USERNAME
--------
   HR

Получен результат, подтверждающий наличие пользователя HR в PDB.

При помощи запроса определяется имя, статус и дата блокировки пользователя HR:

SQL> select username, account_status, lock_date from dba_users where username = 'HR';

USERNAME  ACCOUNT_STATUS   LOCK_DATE
-------- ---------------- -----------
   HR    EXPIRED & LOCKED  30-MAY-20

Результат запроса показывает, что статус пользователя «заблокирован» и пароль просрочен (необходимо задать новый пароль) – EXPIRED & LOCKED. Первоначальная дата блокировки равна дате установки Oracle Database 18c Express Edition.

Шаг 3. Разблокировка пользователя HR

После установки Oracle Database 18c Express Edition учетная запись HR заблокирована и пароль у нее просрочен (необходимо задать новый пароль) (см. предыдущий шаг – Шаг 2.). В этом случае, система позволяет сделать запросы к объектам HR (таблицам, представлениям, функциям и т.п.) от имени других пользователей при наличии соответствующих привилегий. Например, при выполнении запроса на определение количества строк в таблице EMPLOYEES пользователя HR под пользователем SYS система успешно выдаст следующий результат:

SQL> select count(*) from hr.employees;

COUNT(*)
--------
107

Для пользователя HR назначается новый пароль:

SQL> ALTER USER hr IDENTIFIED BY hr;
User altered.

При попытке подключения к PDB, не разблокировав пользователя, можно получить следующую ошибку:

[[email protected] ~]$ sqlplus hr/[email protected]:1539/XEPDB1

SQL*Plus: Release 18.0.0.0.0 - Production on Sat Jul 18 12:49:01 2020
Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

ERROR:
ORA-28000: The account is locked.
Enter user-name:

Необходимо заново подключиться к PDB под пользователем sys:

[[email protected] ~]$ sqlplus sys/[email protected]:1539/XEPDB1 as sysdba

SQL*Plus: Release 18.0.0.0.0 - Production on Sat Jul 18 17:04:51 2020
Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

и разблокировать пользователя HR следующей командой:

SQL> ALTER USER hr ACCOUNT UNLOCK;
User altered.

Операции назначения пароля и разблокировки пользователя HR прошли успешно. Проверяется статус пользователя:

SQL> select username, account_status, lock_date from dba_users where username = 'HR';

USERNAME  ACCOUNT_STATUS   LOCK_DATE
-------- ---------------- -----------
   HR         OPEN    

Пользователь HR разблокирован и новый пароль активен. Это означает, что теперь можно подключиться к PDB с именем XEPDB1 под учебным тестовым пользователем HR и начать работу.

Шаг 4. Подключение к PDB с учетной записью HR.

Используя данные для подключения к PDB, выполняется вход систему под учетной записью HR и запускается запрос для определения количества строк в его таблице EMPLOYEES.

[[email protected] ~]$ sqlplus hr/[email protected]:1539/XEPDB1

SQL*Plus: Release 18.0.0.0.0 - Production on Sat Jul 18 12:46:35 2020
Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SQL> show user;
USER is "HR"

SQL> select count(*) from employees;

COUNT(*)
--------
107

На этом завершается определение наличия пользователя, назначение ему пароля и разблокировка HR в PDB Oracle Database 18c Express Edition, а также выполнение запроса к его объекту с помощью SQL*Plus.

Вариант разблокировки с помощью SQL Developer.

Шаг 1. Подключение к CDB

Для этого создается новое подключение в SQL Developer и указываются необходимые параметры
подключения к CDB, такие как:

Name: XE_18c
Указывается имя соединения, которое позволяет однозначно идентифицировать CDB при подключении.

IP: 192.168.0.1
IP адрес сервера БД.

Port: 1539
Порт подключения к БД.

SID: XE
SID или имя CDB.

Username: sys
Указывается имя пользователя для подключения к БД.

Role: SYSDBA
Подключение к БД осуществляется пользователем sys. Данный пользователь может подключиться только с ролью SYSDBA.

Password:
Пароль пользователя sys, который был назначен во время установки базы данных.

После нажатия Connect произойдет успешное подключение к CDB с именем XE. Далее проверяется имя, идентификатор и версия CDB, а также выводятся существующие PDB.

Как и ожидалось, выведенные выше данные идентичны полученным с помощью SQL*Plus.

Далее проверяется наличие пользователя HR в CDB.

Запрос не вернул данные, это означает, что пользователя HR нет в CDB. Теперь необходимо подключиться к PDB и проверить наличие HR в PDB.

Шаг 2. Подключение к PDB

Создается новое подключение в SQL Developer и указываются необходимые параметры
подключения к подключаемой базе данных XEPDB1, такие как:

Name: XEPDB1_18c
Указывается имя соединения, которое позволяет однозначно идентифицировать PDB при подключении.

IP: 192.168.0.1
IP адрес сервера БД.

Port: 1539
Порт подключения к БД.

SID: XEPDB1
SID или имя PDB.

Username: sys
Указывается имя пользователя для подключения к БД.

Role: SYSDBA
Подключение к БД осуществляется пользователем sys. Данный пользователь может подключиться только с ролью SYSDBA.

Password:
Пароль пользователя sys, который был назначен во время установки базы данных. Пользователи sys и system могут подключиться с одним и тем же паролем и к CDB и к PDB.

После нажатия Connect произойдет успешное подключение к подключаемой БД XEPDB1. Далее проверяется имя и идентификатор.

Результаты показывают, что было подключение к PDB с именем XEPDB1 и идентификатором 3. Определяется наличие пользователя HR в этой PDB. В иерархии дерева надо выбрать «Other Users» в соединении с именем XEPDB1_18c как показано на скриншоте:

В списке пользователей необходимо найти пользователя HR и нажать на правую кнопку. Из контекстного меню выбрать «Edit User». Откроется новое модальное окно «Edit User» как показано на скриншоте. Как видно на скриншоте учетная запись HR заблокирована (Account is Locked) и пароль у нее  просрочен (Password Expired):

Шаг 3. Разблокировка
пользователя
HR:

В продолжение предыдущего шага необходимо:

  1. Задать
    идентичный пароль в полях New Password (новый пароль) и Confirm Password (подтвердить пароль).
  2. Снять галочку из пункта Password Expired (user must change
    next login).
  3. Снять
    галочку из пункта Account is Locked для разблокировки пользователя.
  4. Нажать
    Apply.

Пользователь HR разблокирован и ему назначен пароль. Это означает, что теперь можно подключиться к PDB с именем XEPDB1 под учебным тестовым пользователем HR и начать работу.

Шаг 4. Подключение к PDB с учетной записью HR.

Создается новое подключение в SQL Developer и указываются необходимые параметры
подключения к подключаемой базе данных XEPDB1 с пользователем HR, такие как:

Name: XEPDB1_18c_hr
Указывается имя соединения, которое позволяет однозначно идентифицировать PDB при подключении с пользователем HR.

IP: 192.168.0.1
IP адрес сервера БД.

Port: 1539
Порт подключения к БД.

SID: XEPDB1
SID или имя PDB.

Username: HR
Указывается имя пользователя для подключения к БД.

Role: default
Подключение к БД осуществляется пользователем HR. Данный пользователь не может использовать роль SYSDBA.

Password:
Пароль, который был назначен пользователю HR на третьем шаге, то есть hr.

После нажатия Connect произойдет успешное подключение к PDB с именем XEPDB1 под пользователем HR.  Выполняется запрос для определения количества строк в таблице EMPLOYEES:

На этом завершается определение наличия пользователя, назначение ему пароля и разблокировка HR в PDB Oracle Database 18c Express Edition, а также выполнение запроса к его объекту с помощью SQL Developer.

Sqlplus имя базы данных

Автор admin На чтение 13 мин. Просмотров 4 Опубликовано

Основные “рабочие” команды SQL*Plus

В настоящей статье вы ознакомитесь с важнейшими представителями обоих этих видов команд. В частности, в этом разделе рассматриваются команды, которые что-то делают, а в следующем — те, что позволяют форматировать вывод и получать отчеты.

Команда SQLPROMPT

Администратору баз данных обычно приходится иметь дело с несколькими базами данных. Из-за этого при выполнении множества задач на протяжении дня очень легко забыть, к какой базе данных подключен тот или иной сеанс SQL*Plus. Поэтому во избежание допущения грубых ошибок (вроде удаления производственных таблиц вместо разрабатываемых или тестируемых), следует всегда настраивать среду так, чтобы имя экземпляра базы данных постоянно отображалось в приглашении, напоминая о том, с какой базой данных происходит взаимодействие.

Для настройки приглашения SQL*Plus так, чтобы в нем отображалось имя базы данных, служит приведенная ниже команда, в которой используется специальная предопределенная переменная _CONNECT_IDENTIFIER (предопределенные переменные подробно рассматриваются в разделе “Предопределенные переменные SQL*Plus” далее в главе):

Для настройки приглашения SQL*Plus можно также использовать и другие специальные предопределенные переменные. Например, с помощью переменной _USER в приглашении отображается имя пользователя:

Команда DESCRIBE

Команда DESCRIBE описывает или выводит список столбцов таблицы вместе с их спецификациями. Кроме того, она позволяет получать описание процедур или пакетов Oracle. Эта команда чрезвычайно полезна при выполнении рутинных обязанностей администратора баз данных. Если, например, нет уверенности в том, какой столбец нужно выбрать в определенной таблице, но точно известно, к какой именно таблице следует выполнить запрос, с помощью команды DESCRIBE можно получить список всех столбцов, которые имеются в данной таблице. Поскольку команда DESCRIBE может применяться даже в отношении метаданных (словаря данных), с ее помощью можно также очень легко знакомиться с информацией о таблицах и столбцах и их применении, которая является критически важной для работы с базой данных.

В листинге ниже показано, как команда DESCRIBE позволяет отображать столбцы и типы столбцов таблицы.

Команда HOST

Ниже приведен пример применения команды HOST :

С помощью команды HOST можно выполнять практически все те же команды, которые доступны на уровне операционной системы. Слово HOST можно заменять восклицательным знаком (!):

На заметку! В случае ввода команды HOST без параметров вы попадаете в каталог операционной системы, из которого изначально запускали сеанс SQL*Plus.

По завершении работы с операционной системой достаточно ввести в командной строке exit и на экране снова появится приглашение покинутого ранее сеанса SQL*Plus.

Команда SPOOL

Команда SPOOL позволяет сохранять вывод одного и более SQL-операторов в файлах операционной системы, как в UNIX, так и в Windows:

С помощью команды SPOOL можно добавлять данные в существующий буферный файл, а также полностью заменять его (по умолчанию происходит замена). Ниже приведен весь синтаксис этой команды:

Команды ACCEPT и PROMPT

Команда ACCEPT применяется для считывания вводимых пользователем данных с экрана и сохранения их в какой-то переменной. Эту переменную можно либо указать самостоятельно, либо позволить создавать ее SQL*Plus. Обычно команда ACCEPT применяется для считывания данных, вводимых пользователем в ответ на приглашения в интерфейсе SQL*Plus.

Команды ACCEPT и PROMPT в SQL-сценарии обычно используются вместе и служат,как правило, для запроса у пользователя входных данных и сохранения этих данных в переменных для дальнейшей работы с ними в программе. Ниже приведен пример, иллюстрирующий использование этих команд:

Команда EXECUTE

Команда PAUSE

Приведенный ниже пример демонстрирует использование команды PAUSE для замедления отображения вывода на экране терминала:

Источник

Использование SQL*Plus и Oracle Enterprise Manager

Подключаться и работать с базами данных Oracle можно многими способами.Однако чаще всего для этого применяется предлагаемый в Oracle интерфейс и набор команд SQL*Plus. Интерфейс SQL*Plus, по сути, открывает окно в базу данных Oracle и потому очень широко используется разработчиками Oracle для создания программных единиц SQL и PL/SQL. Для администраторов баз данных Oracle этот интерфейс тоже является очень ценным инструментом по следующим причинам.

В этой статье я начинаю рассказывать о том, как использовать SQL*Plus для выполнения типичных задач по администрированию баз данных Oracle, о важных командах SQL*Plus, а также, вкратце, о том, как с помощью SQL*Plus создавать отчеты. Возможно, применять интерфейс SQL*Plus для создания большинства отчетов и не придется, но знать,как работают его многочисленные средства для генерации отчетов, совершенно не помешает.

Запуск сеанса SQL*Plus

Интерфейс SQL*Plus представляет собой утилиту, которая чаще всего применяется для подключения и работы с базами данных Oracle. Он поставляется в составе как серверного программного обеспечения Oracle Database 11g, так и клиентского программного обеспечения Oracle Client, а также нового программного обеспечения Oracle Instant Client.

После установки SQL*Plus на сервере или клиентской машине процесс подключения к серверу или клиенту и запуска сеанса SQL*Plus выглядит очень просто. Из-за того, что каждый сеанс SQL*Plus подразумевает установку соединения с базой данных (если только не применяется параметр /NOLOG), все, что требуется для запуска SQL*Plus и подключения к базе данных — это действительное имя пользователя и пароль.

Настройка среды

Перед вызовом SQL*Plus потребуется сначала правильно настроить среду Oracle.В частности, необходимо установить значения для таких переменных среды, как ORACLE_SID, ORACLE_HOME и LD_LIBRARY_PATH. Помимо этого иногда нужно установить значения и для таких переменных среды, как NLS_LANG и ORA_NLS11.

В случае не установки правильных значений для необходимых переменных среды будет возникать ошибка. Например, не установка надлежащего значения для переменной ORACLE_HOME перед запуском SQL*Plus будет приводить к появлению следующей ошибки:

В случае получения показной выше ошибки достаточно установить значение для переменной среды ORACLE_HOME:

Программное обеспечение SQL*Plus Instant Client

Для использования SQL*Plus инсталлировать полностью все серверное программное обеспечение Oracle Database вовсе не обязательно. Если нужно взаимодействовать через интерфейс SQL*Plus с базой данных, которая находится на другом сервере,вполне хватит и программного обеспечения SQL*Plus Instant Client. С помощью этого программного обеспечения к любой базе данных Oracle, функционирующей под управлением любой операционной системы, можно подключаться удаленным образом за счет указания ее имени и применения идентификатора сетевого подключения Oracle.Единственным требованием для подключения к удаленной базе данных подобным образом является указание имени удаленной базы данных в файле tnsnames.ora. Именно поэтому для SQL*Plus Instant Client требуется задавать переменную среды ORACLE_HOME.Существует также метод, который не требует применения на клиентском сервере файла tnsnames.ora. Называется он методом простого подключения (easy connect). Ниже приведен пример, показывающий, как с помощью идентификатора простого подключения установить от имени пользователя OE подключение к базе данных testdb, расположенной на сервере myserver:

В этом примере 1521 — это порт, используемый слушателем для получения запросов на установку подключения.

Запуск сеанса SQL*Plus из командной строки

Прежде чем подключаться к сеансу SQL*Plus, необходимо сначала правильно настроить среду и указать, с какой базой данных на сервере должно устанавливаться соединение по умолчанию. Делается это с помощью переменной среды ORACLE_SID.

После указания базы данных, которая должна использоваться по умолчанию (в приведенном примере это orcl) в переменной среды ORACLE_SID, можно получать доступ к SQL*Plus из приглашения командной строки, просто вводя команду sqlplus безо имени пользователя и пароля. SQL*Plus предложит ввести имя пользователя и пароль. В случае предоставления имени пользователя вместе с командой (например: sqlplus salapati),SQL*Plus будет приглашать ввести только пароль. Администратор баз данных должен входить от имени одной из административных учетных записей.

На заметку! На серверах UNIX ввод должен обязательно выполняться в нижнем регистре. В Windows интерфейс не чувствителен к регистру символов. За исключением этой небольшой детали, во всем остальном командный интерфейс SQL*Plus работает одинаково и на платформе Windows, и на всех вариантах платформ UNIX и Linux.

Разумеется, вводить имя пользователя и пароль можно и непосредственно при вызове SQL*Plus, но тогда пароль будет виден другим при его вводе. Ниже приведен пример:

Приглашение SQL (SQL>) означает, что соединение с SQL*Plus инициировано, и можно начинать вводить команды и операторы SQL, PL/SQL и SQL*Plus.

Для того чтобы подключиться к другой базе данных, а не той, что установлена по умолчанию, нужно использовать следующую команду:

Определенные операции, например запуск и завершение работы, разрешено выполнять только в случае подключения к SQL*Plus с привилегиями SYSDBA или SYSOPER. При наличии привилегий SYSDBA (или SYSOPER) подключаться к SQL*Plus можно следующим образом:

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

Если в базе данных была создана учетная запись аутентифицированного пользователя операционной системы (ранее называвшаяся OPS$имя; см. главу 12), устанавливать подключение можно и просто указанием символа косой черты (/), как показано ниже:

Можно также подключаться через метод аутентификации операционной системы, за счет включения владельца программного обеспечения Oracle в группу администраторов баз данных (DBA):

Обратите внимание, что во всех предыдущих примерах имя базы данных при подключении через SLQ*Plus не указывалось. Объясняется это тем, что подключение устанавливалось к принятому по умолчанию экземпляру, т.е. к базе данных, на которую указывает значение переменной среды ORACLE_SID. Указывать имя базы данных при использовании SQL*Plus для подключения к принятой по умолчанию базе данных не обязательно. Для подключения к другой базе данных, доступной по сети, нужно обязательно использовать идентификатор подключения (имя сетевой службы).

На заметку! Имя экземпляра, имя базы данных и имя службы могут как совпадать, так и отличаться.

С теоретической точки зрения, подключаться к базе данных можно с использованием полного синтаксиса идентификатора подключения, как показано в следующем примере, где для подключения к базе данных orcl применяется весь адрес целиком:

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

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

Например, вот как подключиться с помощью этого метода к базе данных orcl:

Обратите внимание, что в случае применения простого метода подключения сетевой файл (tnsnames.ora) не нужен.

Какой бы из перечисленных методов не использовался, в конечном итоге будет обязательно успешно устанавливаться сеанс SQL*Plus либо с базой данных по умолчанию,либо с той, что была указана в идентификаторе подключения.

Установка подключения с помощью команды CONNECT

В SQL*Plus поддерживается команда CONNECT, которая позволяет после входа в SQL*Plus выполнять подключение от имени другого пользователя. Кроме того, она позволяет после подключения к одной базе данных подключаться к другой базе данных.Ниже приведен пример использования команды CONNECT для выполнения подключения от имени другого пользователя:

Следующий пример демонстрирует, как в SQL*Plus подключаться к другой базе данных за счет предоставления идентификатора подключения в виде части команды CONNECT:

Перед подключением к другой базе данных необходимо проверять, что в файле tnsnames.ora присутствует необходимая информация о подключении к удаленной базе данных.

Команду CONNECT можно использовать в SQL*Plus вместе с синтаксисом / AS SYSDBA и / AS SYSOPER, как показано ниже:

Запуск сеанса SQL*Plus без установки подключения к базе данных с помощью параметра /NOLOG

Сеанс SQL*Plus можно также запускать и без установки подключения к базе данных,счет указав вместе с командой sqlplus параметр /NOLOG. В подобном может возникать необходимость, например, при запуске базе данных или просто для использования доступных в SQL*Plus команд для записи или редактирования сценариев. После запуска сеанса SQL*Plus для подключения к базе данных всегда можно применить команду CONNECT.

Ниже приведен пример использования параметра /NOLOG:

Подключение к SQL*Plus через графический интерфейс Windows

Работать с утилитой SQL*Plus можно как в ручном, так и в сценарном не интерактивном режиме. Само собой разумеется, что уязвимые административные задачи, вроде восстановления базы данных, лучше выполнять в интерактивном режиме. Что же касается рутинных операций по обработке SQL, то их выполнение лучше автоматизировать с помощью сценариев. И в том и в другой случае сами команды будут выглядеть одинаково — отличаться будет лишь режим, в котором они будут выполняться.

Ниже показан синтаксис команды подключения к SQL*Plus:

Подключаться от имени пользователя с привилегиями SYSOPER, SYSDBA или SYSASM необходимо для выполнения привилегированных операций, вроде завершения работы и запуска базы данных или резервного копирования либо восстановления базы данных.Привилегия SYSAM является новой в Oracle Database 11g и предназначена для разделения обычных операций по администрированию баз данных и операций автоматического управления памятью (Automatic Storage Management — ASM).

Работа в SQL*Plus

После подключения к интерфейсу SQL*Plus можно начинать вводить в нем любые команды SQL*Plus, SQL или PL/SQL. Как будет объясняться позже в этой главе, операторы SQL оканчиваются либо символом точки с запятой (;), либо символом косой черты (/), а блоки кода PL/SQL — только символом косой черты (/). Вывод можно как просматривать на экране, так и при желании записывать в файл. Команды SQL*Plus всегда оканчиваются символов новой строки. При вводе команды SQL*Plus клиентская программа SQL*Plus анализирует ее, и если та представляет собой оператор SQL или PL/SQL, отправляет ее серверу баз данных для обработки.

В этом примере из-за перехода на вторую строку после дефиса (-), который еще так же является и знаком минус, утилита SQL*Plus автоматически интерпретировала его как символ продолжения и выдала ошибку, потому что оператор получился синтаксически некорректным (select 200 100 from dual). Избежать этой проблемы можно за счет использования в конце первой строки второго дефиса (знака минус) для выполнения роли символа продолжения:

В Oracle для выполнения определенных запросов необходимо использовать таблицу DUAL, поскольку в поддерживаемом Oracle синтаксисе SQL наличие конструкции FROM в операторе SELECT является обязательным (например, SELECT sysdate FROM dual;).В базах данных Microsoft SQL Server, с другой стороны, использовать таблицу DUAL не требуется, потому что в синтаксисе SQL Server допускается применение операторов SELECT без конструкции FROM.

Завершение сеанса SQL*Plus

Завершается сеанс SQL*Plus вводом команды EXIT, причем как в нижнем, так и в верхнем регистре. С помощью команды QUIT осуществляется выход в операционную систему (регистр символов тоже роли не играет).

Внимание! В случае выполнения аккуратного выхода из SQL*Plus по команде EXIT (или QUIT) будет немедленно происходить фиксация всех транзакций. Если не нужно, чтобы происходила фиксация транзакций, перед выходом потребуется выполнить команду rollback.

Источник

Sqlplus connect к базе

Зарегистрируйтесь, чтоб продолжить пользоваться всеми функциями Techfeed

Популярные теги

Я использую приведенную ниже команду в среде Unix для подключения к базе данных Oracle:

Но я получаю ниже ошибки:

Пожалуйста, помогите мне, где я делаю ошибку в использовании команды.

Ответы на вопрос ( 7 )

Популярные вопросы

Установите свою любимую песню в качестве мелодии звонка для Iphone

Проблема c импортом классов в WebDriverIo js

МОИ КНОПКИ ОТ ВАС НЕ ШАРЯТ, ХОТЯ ГОД НАЗАД ВСЕ БЫЛО НОРМАЛЬНО?

I am using below command in Unix environment to connect to Oracle database:

But I am getting below error:

Please help me where I am doing mistake in using the command.

8 Answers 8

try this: sqlplus USER/[email protected]//hostname:1521/SID

Easy way (using XE):

1). Configure your tnsnames.ora

You can replace HOST.DOMAIN.COM with IP address, the TCP port by default is 1521 (ckeck it) and look that name of this configuration is XE

2). Using your app named sqlplus:

SYSTEM should be replaced with an authorized USER, and put your password when prompt appear

3). See at firewall for any possibilities of some blocked TCP ports and fix it if appear

В статье будет рассмотрена возможность мониторинга база данных по средствам встроенной в Zabbix поддержке ODBC, c использованием автообнаружения объектов.

Для начала рассмотрим доступные для Zabbix методы мониторинга БД, которые использовались до поддержки ODBC.
Так как статья про мониторинг Oracle, то и будем смотреть в этом разрезе.

1. Использования скрипта zabora

В принципе спкрипт всем хорош, но главное, что меня не устраивало: скрипт лежит на каждой машине с БД, и при добавление запроса приходилось идти на эту машину и редактировать конфиг.

Поддерживает параметры запросов, то есть можно передавать параметр в ключ и на основе его делать запрос к БД.
То есть один и то же запрос может быть использован для сбора метрик разных объектов.

Тоже хороший продукт, является демоном на java, создает несколько соединений и поддерживает автоматическое добавление новых запросов в конфиг без перезагрузки. Работает как Zabbix trapper, то есть сам с определенной периодичностью посылает данные в Zabbix сервер.

Недостатки:
— не поддерживает параметры, то есть на каждую метрику создается отдельный запрос.
Представьте у вас 10 tablespace’ов и вам нужно снимать с каждого 4 параметра — получается 40 запросов в файле. Интервал запроса получение метрики, так же выставляется в конфиге, что не очень удобно.

Попробовав все эти решения решил использовать поддержку ODBC в Zabbix, и вот почему:

  • запрос к БД — стандартный ключ Zabbix, из этого следует, что мы настраиваем такие параметры как частота опроса в самом интерфейсе
  • редактирование запросов в интерфейсе Zabbix
  • позволяет использовать макросы
  • самое главное позволяет автоматизировать процесс добавления новых объектов на мониторинг

Сначала опишу, что имеется в хозяйстве:

1. 6 баз данных Oracle — 1 БД — 1 сервер + 1 резервный сервер под БД итого: получается 12 серверов.
2. Сервера для каждой БД объединены в кластер — итого 6 кластеров
3. На каждом сервера установлен Zabbix agent для AIX
4. На каждом сервере по скрипту zabora

Конфигурация Zabbix мониторинга:

  1. Zabbix сервер на CentOS 6.5 + TokuDB — 20 000 элементов — 380 nps (новых значений в секунду)
  2. Специально для мониторинга БД, был поднят Zabbix Proxy, так как запросы могут выполнятся достаточно долго, то не хотелось бы из-них подвешивать процессы сбора данных основного Zabbix’a — тоже CentOS 6.5 + TokuDB

В этой статье я не буду касаться настройки TokuDB, так как планирую еще одну статью почему мы перешли с InnoDB на TokuDB, и что нам это дало.

Установка Oracle Instant Client

Сначала необходимо установить Oracle Instant Client на машину с Zabbix Proxy:

У нас используется Oracle 11g, поэтому скачиваем RMP пакеты соответствующей версии с сайта Oracle.
Нам необходимы:

  • oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm — основные библиотеки
  • oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm — драйвера для java, для нашей задачи не нужны, но в хозяйстве пригодиться 🙂
  • oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm — клиент SQLplus
  • oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm — библиотека для работы через ODBC
  • можно еще до кучи: oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm 🙂

в той папке в которую скачали все эти файлы делаем:

Настройка SQLplus для доступа к БД Oracle.

Для того чтобы клиент работал, необходимо в параметры окружение выставить необходимые переменные, для начала выставим их в своем профиле, прописав в файл $HOME/.bash_profile :

Перелогиниваемся и смотрим есть ли наши переменные в
Обратим внимание на переменную TNS_ADMIN=$ORACLE_HOME/network/admin
Этот путь необходимо создать, туда мы положим файл tnsnames.ora который используется библиотеками клиента для подключения к БД.

Создадим подключение к БД с именем TESTDB например.

Необходимо подставить нужные значения в HOST и SERVICE_NAME.
HOST — можно прописывать IP адрес или DNS имя (проверьте только, что оно ресолвится в IP)

Проверим настройку клиента, только предварительно создайте учетную запись zabbix в Oracle.

Видим, что клиент выдал приглашение, значит соединение прошло успешно, и совсем чтобы быть уверенными сделаем простенький запрос:

Конфигурация ODBC.

Официальные пакеты Zabbix Server и Zabbix Proxy в СentoOS скомпилированы с поддержкой unixODBC, поэтому после их установки у вас должен быть установленный пакет unixODBC, проверяем:
Вывод должен содержать следующие пакеты: unixODBC и oracle-instantclient11.2-odbc .

И сразу делаем такую проверку:

C большой долей вероятностью, вы получите libodbcinst.so.1 => not found , поэтому нужно сделать сим-линк:

Дальше редактируем файл:

После этого у нас должно получится подключится к БД Oracle через клиент ODBC (всегда используйте параметр -v, если будет ошибка подключения, скажет детально в чем проблема):

Так же для очистки совести, что у нас все работает, делаем запрос:

Поздравляю, Вы настроили ODBC.

Теперь нам необходимо добиться, чтобы Zabbix Proxy так же мог делать запросы через ODBC.

Для этого необходимо, чтобы в окружение процесса zabbix_proxy были доступны переменные, указанные выше, для это добавим в файл:

После этого обязательно перезапускаем zabbix_proxy:

Теперь мы сразу перейдем к настройке правил автообнаружения в терминологии Zabbix — это low level discovery rule.

Что такое LLD?
В принципе это любой элемент в Zabbix который может вернуть данные в JSON формате.
Так встроенный мониторинг баз данных в Zabbix всегда возвращает только 1 колонку и 1 строку. Почему-то в команде Zabbix до сиз пор не напишут для БД генератор LLD.

Придется написать скрипт который будет выдавать нам список объектов в JSON формате.

Шаблон и скрипт можно взять на GitHub

Скрипт написан на php, поэтому любителям bash прошу отвернуться в сторону 🙂
Комментировать сам скрипт не буду, думаю по коду все понятно, скажу только, что его нужно положить в папку которая задана в конфиге zabbix_proxy.conf (или zabbix_server.conf):

Скрипту передаются два параметра:
1. DSN — который вы указали в файле /etc/odbc.ini в квадратных скобках, в случае примера это ORA_TESTDB
2. тип объектов, список которых нужно вернуть: tablespaces или jobs

В случае jobs, скрипт вернет так же и <#JOBOWNER>, то есть владельца job’a.

Добавьте права на выполнения на скрипт и попробуйте его запустить:
# /usr/lib/zabbix/externalscripts/oracle.odbc.discovery ORA_TESTDB tablespaces , скрипт вернет примерно вот такой массив:

Наконец-то переходим к добавлению мониторинга БД Oracle в Zabbix.

Для начала пару слов о шаблоне:
1. общие ключи мониторинга Oracle взяты из скрипта zabora
2. чтобы шаблона заработал необходимо во вкладе Макросы самого хоста, добавить 3 пользовательских макроса:
— <$DSN1>— DSN который прописан в квадратных скобках файла /etc/odbc.ini (в примере ORA_TESTDB)
— <$ORA_USER>— пользователь с правами которого будет подключение к БД Oracle
— <$ORA_PASSWORD >— пароль для подключения к БД Oracle

Итак список правил LLD:

Чтобы правила отработали в первый раз, выставите в самих правила интервал, предположим 300 секунд, и через 5 минут у вас в элементах данных должны создаться новые.

Рассмотри сами правила и начнем с Tablespaces.

В принципе здесь все понятно, хочу обратить внимание на поле «Фильтр».
С помощью этого поля можно производить фильтрацию списка который возвращает нам сам элемент, в нашем примере нам не нужно добавлять на мониторинг системные tablespaces. Фильтрация происходит на основе правила regexp. Как видно на картинки поле <#TBSNAME>должно соответствовать правилу regexp Oracle System Excluded Tablespaces. Общие правила regexp описываются в Администрирование > Общие > Регулярные выражения и вызываются в фильтре через символ @.

Аналогично все и для job’ов:

Переходим к прототипам данных

Сам прототип

Картинка говорит сама за себя, но хочу обратить на один нюанс, а именно на поле «Единица измерения», по умолчанию в Zabbix используется 10-тичная система исчисления, что и следовало ожидать, поэтому все приставки Кило, Мега, Гига и т.д. это деление на 1000, что с точки зрения исчисления объема данных не совсем корректно, поэтому чтобы вы получали во вкладке «Последние данные» адекватные значения в Zabbix используется «специальные» единицы измерения: B и Bps — байт и байт в секунду (подробнее).
Но есть забавный момент (баг), в последних данных приставки K(ilo), M(ega), G(iga) переводятся в K, М, Г, а вот сама единица нет, поэтому в случае с гигабайтами у Ваc будет ГB.

Прототипы триггеров для tablespaces:

Диапазоны следующие:

  • при размере меньше 3ТБ ограничение в процентах
  • от 3ТБ до 10ТБ в гигабайтах
  • от 10ТБ в гигабайтах

Обратить внимание, что значения в условиях используется в байтах, а также обратить на порядок и используемых значений.
На первый взгляд может показаться лишним условие «Максимальный размер > 0»

Но это сделано для того чтобы приходило более информативное письмо для DBA.
В действиях вы указываете:

В действие мы не можем получить значения ключа который был создан автоматически, не то чтобы мы не можем его получить просто мы не знаем его название, для это там нужно вычленить из ключа название tablespace, но таких функций Zabbix нет.

При таких настройках действия, Вам будет приходить нечто подобное:

Прототипы данных для job’ов:

Прототипы триггеров для job’ов:

Триггеры срабатывают если:

  • время выполнения job’a более 720 минут
  • если job завершился со статусом не равным «SUCCEEDED»

Описание этапов запуска и остановки БД

Oracle рекомендует следующий порядок действий для запуска БД: запуск Database Control, запуск listener-а, запуск БД. Запуск БД также является составным процессом. При запуске более сложного окружения, такого как cluster system или любого другого управляемого Enterprise Manager Grid Control могут быть дополнительные этапы, однако для Single Instance архитектуры этой последовательности вполне достаточно.

Запуск и подключение к Database Control

Database Control это инстурмент для управления одной БД. Эта БД может быть кластеризирована и тогда для каждого экземпляра БД работающего с одинаковой домашней директорией ORACLE_HOME будет свой экземпляр Database Control. Этот инструмент написан на языках Perl и Java и доступен через браузер. Нет необходимости устанавливать JRE или интерпретатор Perl: они оба доступны в домашней директории Oracle и устанавливаются OUI. Все запросы к Database Control осуществляются с использованием протокола HTTPS. Единственная необходимая настройка это проверить доступность порта используемого для работы с Database Control. Настройка Database Control осуществляется в момент создания БД. Эта настройка содержит два важных блока информации:  имя сервера и номер порта. Если возникнет необходимость изменить эти значения – необходимо перенастроить Database Control.

Для запуска Database Control необходимо запустить программу emctl, расположенную в папке $ORACLE_HOME/bin. Ниже перечислены команды для запуска, остановки и проверки состояния Database Control

emctl start dbconsole

emctl stop dbconsole

ecmtl status dbconsole

Для успешного выполнения этих команд должны быть установлены следующие системные переменные: PATH, ORACLE_HOME и ORACLE_SID. PATH используется операционной системой для поиска пути к программе emctl. ORACLE_HOME и ORACLE_SID используются для поиска командой emctl файлов конфигурации. Эти файлы расположены в трёх местах: папка ORACLE_HOME/sysman/config содержит общие настройки для всех экземпляров Database Control работающих с текущей домашней директорией Oracle. ORACLE_HOME/hostname_sid/sysman/config и ORACLE_HOME/oc4j/j2ee/ OC4J_DBConsole_ hostname_sid/config содержат дополнительные расширенные настройки для каждой БД(hostname – имя компьютера, sid – значение переменной ORACLE_SID).

На рисунке 3-3 показан результат выполнения команды запуска Database Control

Первая попытка запуска была неудачной так как не была установлена переменная ORACLE_SID. Без корректного значения этой переменной emctl не может найти необходимые файлы конфигурации (значение используется в названии папок). Команда проверки состояния ни что иное как запрос по адресу URL; доступность этого URL так же можно проверить в браузере

http://hostname:port/em

где hostname – это сетевое имя компьютера на котором запущен Database Control и port – это порт ответственный за входящие подключения. Если у вашего сервера несколько сетевых имён или несколько сетевых интерфейсов – можно использовть любой. Для определения порта можно использовать команду emctl либо посмотреть конфигурационный файл ORACLE_HOME/install/portlist.ini где указаны все порты настроенные OUI и DBCA. При незапущенном listener-е при подключении к Database Control вы увидите окно изображенное на рисунке 3-4.

Запуск listener-а БД

Listener – это процесс который следит за запросами к порту для подключения к базе данных. Запросы к БД (и весь остальной трафик после создания сессии) использует Oracle Net, закрытый протокол Oracle. Oracle Net – это прокотор который работает над любым низлежащим сетевым протоколом, обычно над TCP/IP. Управление listener-ом более детально расммотрим в главе 4, сейчас же рассмотрим как запустить listener. Это можно сделать двумя (в windows тремя) способами: используя программу lsnrctl, с помощью Database Control, запустить windows сервис.

Программа lsnrctl расположена в каталоге ORACLE_HOME/bin. Параметрами могут быть

lsnrctl start [listener name]

lsnrctl status [listener name]

Значение по умолчанию для названия listener-а  — LISTENER и обычно так и называют. На рисунке 3-5 показан результат выполнения команды lsnrctl status при работающем listener-е

Обратите внимание на первую строчку – там указаны сетевое имя и порт listener-а, а также на пятую снизу строку, которая обозначает что listener будет принимать подключения для сервиса ocp11g который создан для экземпляра ocp11g. Это критически важная информация для подключения к БД. Если БД была успешна создана с помощью DBCA значит listener настроен и запущен. Если нет вы увидите другой ответ команды lsnrctl status, тогда используйте команду lsnrctl для запуска или нажмите кнопку START LISTENER в окне Database Control показанном на рисунке 3-4.

Запуск SQL *Plus

SQL *Plus — это простая клиент-серверная программа для запуска SQL команд. Единственный параметр который необходимо знать для запуска – это NOLOG. По умолчанию, SQL *Plus немедленно запрашивает имя и пароль пользователя и параметры подключения. Это корректно для обычных пользователей, но бессмысленно для DBA, так как база данных должна быть уже открыта. Для запуска SQL *Plus без подключения к БД используйте параметр /NOLOG

sqlplus /nolog

В результате выполнения команды вы подключитесь к командной строке SQL, откуда можно подключиться используя различные параметры.

Запуск и остановка БД

Если быть точным – нельзя запустить и остановить БД: только экземпляр может быть запущен и остановлен, а база данны может быть подключена, открыта, отключена и закрыта. Данные операции можно совершить с помощью SQL *Plus выполнив команды STARTUP и SHUTDOWN или используя Database Control. В Windows это можно сделать также с помощью управления сервисом созданным для экземпляра БД. Системный журнал содержит подробную информацию об этих операциях когда бы они не были вызваны. Запуск и остановка – очень важные операции, информация об их выполнении всегда записывается и они могут быть инициированы только пользователями с особым уровнем доступа.

Подключение с повышенными правами доступа

Обычный пользователь не может запустить или остановить БД – потому что он авторизуется используя словарь данных. Это логически невозможно поскольку в момент запуска словарь данных ещё не доступен. Таким образом для запуска необходимо подключаться к серверу используя механизм внешней авторизации:  системная авторизация пользователя как члена группы Oracle, или авторизация с использованием файла паролей. Тип авторизации указывается при выполнении команды CONNECT.  Ниже представлены различные комбинации команды CONNECT после подключения к серверу используя программу SQL *Plus с параметром /NOLOG

connect user/pwd[@connect_alias]

connect user/pwd[@connect_alias] as sysdba

connect user/pwd[@connect_alias] as sysoper

connect / as sysdba

connect / as sysoper

где user – имя пользователя, pwd – пароль, connect_alias – сетевой идентификатор (рассмотрим в главе 4). Первый пример использует авторизацию с помощью словаря данных, база данных должны быть открыта или команда вернёт ошибку. Любой пользователь после подключения к БД используя данный синтаксис не сможет выполнить команды запуска и остановки базы данных. Два следующих примеры указывают Oracle использовать авторизацию с помощью файла паролей. Последние команды используют авторизацию операционной системы: Oracle проверяет является ли текущий пользователь членом группы Oracle, и если проверка успешна – пользователь подключается к БД как SYSOPER или SYSDBA. Пользователь подключившийся к базе данных любым способом из последних четырёх может выполнить команды запуска и остановки БД вне зависимости от состояния базы данных – она может быть даже не создана на этом этапе.

Если Database Control обнаруживает запущенный listener – то он использует авторизацию через словарь данных или файл паролей (в зависимости от выбора пользователя – рисунок 3-6). Если же listener не запущен (рисунок 3-4) при нажатии на кнопку STARTUP Database Control запрашивает системные имя пользователя и пароль для подключения к серверу.

Рисунок 3-6

SYSOPER и SYSDBA

SYSOPER и SYSDBA – это уровни доступа с повышенными полномочиями.  Они доступны только при системной авторизации или авторизации с помощью файла паролей. Уровень доступа SYSOPER может выполнять команды

STARTUP

SHUTDOWN

ALTER DATABASE [MOUNT|OPEN|CLOSE|DISMOUNT]

ALTER [DATABASE|TABLESPACE][BEGIN|END] BACKUP

RECOVER

Уровень доступа SYSDBA также может выполнять эти команды, плюс возможность создавать БД, запускать неполное восстановление и давать полномочия SYSOPER и SYSDBA другим пользователям.

Вам может быть интерестно под каким пользователем вы подключаетесь к БД когда используется системная авторизация. Чтобы это выяснить, после подключения к базе данных выполните команду show user (эту команду можно вызвать набрав sho user – не стоит недооценивать сокращения, они могут ускорить время набора команд) – результат показан на рисунке 3-7.

Уровень доступа SYSDBA использует пользоватля SYS – суперпользователя в системе и владельца словаря данных. Уровень доступа SYSOPER подключается как пользователь PUBLIC. PUBLIC – не пользователь в нормальном смысле, это пользователь который используется для задач администрирования, но (по умолчанию) не может просматривать или изменять данные. Подключаться с данными уровнями доступа стоит только для выполнения задач, которые не могут быть выполнены обычными пользователями.

Рисунок 3-7

Запуск: NOMOUNT, MOUNT и OPEN

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

Процесс запуска базы данных разбит на шаги: вначале запускается экземпляр БД, затем база данных подключается (mount) и открывается (open) для использования. В любой момент времени база данных может быть в одном из следующих состояний

  • SHUTDOWN
  • NOMOUNT
  • MOUNT
  • OPEN

Когда база данных остановлена (SHUTDOWN) все файлы закрыты и экземпляр не существует. В отключенном состоянии (NOMOUNT) – экземпляр БД построен в памяти (SGA создана и фоновые процессы запущены согдасно файлу параметров), но база данных недоступна и может быть даже ещё не создана. В подключенном состоянии (MOUNT) экземпляр находит и читает файл контроля. В открытом состоянии (OPEN) все файлы найдены и открыты – т.е. база данных доступна для пользователей. Когды вы запускаете команду STARTUP – будут выполнены все шаги, однако команда может быть разбиты на этапы. Напирмер если файл контроля испорчен или копия недоступна – вы не сможете подключить базу данных. Однако вы можете запустить базу в неподключенном режиме (NOMOUNT) и восстановить файл контроля. Точно так же если у вас возникли проблемы с файлами данных или логовов, вы можете попробовать восстановить данные в MOUNT состоянии, перед тем как открывать БД.

Как же экземпляр находит файлы которые ему нужны на каждом из шагов? Начнём с NOMOUNT. Когда вы запускаете команду STARTUP, Oracle будет искать файл параметров в определённом порядке как отображено на рисунке 3-8.

Всего существует три пути и имени файла. На Unix подобных системах это

 

$ORACLE_HOME/dbs/spfileSID.ora

$ORACLE_HOME/dbs/spfile.ora

$ORACLE_HOME/dbs/initSID.ora

А на Windows

 

%ORACLE_HOME%\database\SPFILESID.ORA

%ORACLE_HOME%\database\SPFILE.ORA

%ORACLE_HOME%\database\INITSID.ORA

Во всех случаях – SID это имя экземпляра. Порядок поиска очень важен. Oracle будет использовать первый найденный файл вне зависимости от наличия остальных. Если ни одного файла не существует – экземпляр не будет запущен. В режиме NOMOUNT используются только файл параметров и системный журнал. Значения параметров из файла параметров используются для создания SGA в памяти и запуска фоновых процессов. В системный журнал записывается информация об этот процессе. Где находится системный журнал? Путь можно узнать посмотрев параметр BACKGROUND_DUMP_DEST в файле параметров или выполнив команду

sho parameter background_dump_dest

Если системный журнал существует во время выполнения команды STARTUP то новые данные будут добавляться, иначе будет созда новый файл. Если возникнут какие-либо проблемы во время выполнения команды – так же будут созданы файлы трассировки.

Когда экземпляр запущен в режиме NOMOUNT, переход в состояние MOUNT будет осуществляться путём чтения файла контроля. Oracle находит эти файлы используя параметр CONTROL_FILES, прочитанный во время запуска экземпляра. Если файл контроля (или хотя бы одна копия) не найдены или повреждены, база данных не будет подключена и вы обязаны восстановить их перед подключением. Все копии должны быть доступны и одинаковы для успешного подключения БД.

Как часть процесса подключения, все именя файлов данных и логов и пути к ним считываются из файла контроля, но Oracle просто запоминает эти значения, не пытаясь найти файлы. Поиск и чтение файлов происходит во время открытия базы данных (OPEN). Если какой-либо файл поврежден или отсутствует база данных останется в режиме MOUNT пока вы не исправите ошибки. Более того, все файлы должны быть синхронизированы перед тем как база данных будет открыта. Если последнее выключение было выполнено в определённом порядке, то все буферы из буфера кэша БД записаны на диск процессом DBWn и файлы синхронизированы, и Oracle будет знать при запуске что все подтверждённые транзакции сохранены в файлах данных и нет неподтвержденных транзакций ожидающих отмены.  Если же последнее выключение было не запланированным (к примеру от потери питания или системной перезагрузке сервера без правильного выключения экземпляра) то Oracle должен синхроинизировать файлы данных и файлы логов (отменив неподтверждённые транзакции). Процесс который подключает и открывает БД (и синхронизирует данные) называется SMON. Только когда база данных успешно открыта будет возможно подключение пользователей. Процесс запуска графически представлен на рисунке 3-9.

Остановка процесс зеркальный запуску. Вначале закрывается БД (CLOSE), затем отключается (DISMOUNT) и далее останавливается экземпляр. Во время закрытия БД все сессии отключаются: текущие транзакции отменяются процессом PMON, подтверждённые транзакции записываются в файлы данных DBWn и файлы данных и логов закрываются. Во время отключения закрывается файл контроля. И экземпляр останавливается с освобождением памяти и остановкой фоновых процессов.

Выключение: NORMAL, TRANSACTIONAL, IMMEDIATE и ABORT

Существуют параметры которые используются с командой SHUTDOWN – вызов SHUTDOWN команды требует уровня доступа SYSDBA или SYSOPER

 

SHUTDOWN [NORMAL|TRANSACTIONAL|IMMEDIATE|ABORT]

 

NORMAL: это значение по умолчанию. Новые подключения нельзя создать, но все текущие сессии могут работать до конца сессии. Когда все пользователю отключатся база данных будет выключена.

TRANSACTIONAL: новые подключения недоступны; существующие сессии которые не выполняют транзакции отключаются; сессии которые выполняют транзанкцию завершают транзакцию и отключаются. Когда все сессии будут отключены, база данных останавливается.

IMMEDIATE: новые подключения не разрешены. Все активные сессии отключаются. Все активные транзакции отменяются и база данных выключается.

ABORT: это эквивалент отключению питания. Экземпляр останавливается без записи чего либо на диск, закрытия файлов, отмены транзакций.

Параметры выключения «normal,» «immediateи «transactional» считаются «чистыми» выключениями (то есть выполненными в правильном порядке). После того как все сессии отключены, PMON отменяет все неподтверждённые транзакции. Создаётся контрольная точка процессом CKPT, которая заставляет DBWn записывать измененные данные из буфера кэша в файлы данных. LGWR записывает вектора изменений в файлы логов. Обновляются заголовки файлов и файлы закрываются. Это гарантирует что база в синхронизированном состоянии: все подверждённые транзакции в файлах данных и нет неподтверждённых транзакций требующих отмены.

Параметр “abort” оставляет базу данных в рассинхронизированном состоянии: возможно что подтверждённые транзакции не записаны в файлы данных, так как на момент выключения они были сохранены в памяти и DBWn не записал изменения из буфера в файлы. Также может быть и такое, что неподтверждённые транзакции записаны в файлы данных. Это определение испорченной БД: она содержит некорректные данные. Эти повреждения должны быть восстановлены используя instance recovery. Таким образом можно протестировать что произойдёт если к примерну непредвиденно обесточить сервер в процессе работы БД.

Так как выключение это пошаговый процесс, то возможно управлять этапами используя SQL *Plus и команды

 

alter database close;

alter database dismount;

 

Эти команды полная противоположность командам запуска. На практике SHUTDOWN это единственная команда которой пользуются DBA. Пошаговый процесс также недоступен из Database Control.

Пример базы данных Oracle для обучения SQL

1- Введение

LearningSQL это маленькая база данных, использующаяся для пример в обучении SQL на вебсайте o7planning, имеется 3 версии на Database:

  • Oracle
  • MySQL
  • SQLServer.

В данной статье я покажу вам как создать эту базу данных в Oracle.

Данная база данных используется как пример в обучении SQL (Oracle) по ссылке:

  • TODO Link!

2- Download Script

Скачать script по ссылке:

Direct Mediafire
Download Download

С Oracle вам нужно обратить внимание только на файл:

  • LearningSQL-Oracle-Script.sql

3- Запустить Script

Есть 2 способа чтобы создать SCHEMA: LearningSQL

  1. Используя SQL Plus
  2. Используя визуальный инструмент.

3.1- Создать SCHEMA LearningSQL используя SQL Plus

Запуск 2 команд:

-- Create Schema named learningsql,  password 1234
Create user learningsql identified by 1234;

-- For learning purposes:
-- Grant highest privilege DBA (DB Admin) for the newly created user.
grant dba to learningsql;

Соединить к только что созданной SCHEMA:

-- Connect to Schema
-- Syntax: connect <user>/<pass>@<sid>

connect learningsql/[email protected];

Запуск Script:

-- Run Script file in SQL Plus

@F:\LEARNING_SQL\LearningSQL-Oracle-Script.sql

Script успешно запущен:

3.2- Создать SCHEMA LearningSQL используя визуальный инструмент.

На визуальном инструменте (Здесь я использую PL/SQL Developer), соединить к user с авторизацией DBA (Например system).

Смотрите так же:

  • Установите PL/SQL Developer в Windows

Дать команду создать новую schema: learningsql.

-- Create schema named learningsql

Create user learningsql identified by 1234;

-- For learning purposes:
-- Grant highest privilege DBA (DB Admin) for the newly created user.

grant dba to learningsql;

Соединить к только что созданной Schema:

Скопировать содержание файла LearningSQL-Oracle-Script.sql в PL/SQL Developer и запустить:

Create Schema success.

4- Обзор Database LearningSQL

LearningSQL это маленькая база данных стимулирующая данные банка:












НАЗВАНИЕ ТАБЛИЦЫ ЗНАЧЕНИЕ
ACCOUNT Таблица хранящая банковский счет. Каждый клиет может зарегистрировать несколько счетов, каждый счет соответствует услуге предоставленной банком.

(Смотрите так же PRODUCT)
ACC_TRANSACTION Таблица хранящая информацию транзакции с банком определенного счета.
BRANCH Филиал банка
BUSSINESS  
CUSTOMER Таблица клиентов
DEPARTMENT Таблица департаментов банка.
EMPLOYEE Таблица работников банка.
OFFICER  
PRODUCT Продукты услуг банка, например:

  • Депозитные вклады
  • Выдача кредитов
  • Выдача кредитов малым бизнесам
  • …..
PRODUCT_TYPE Продукты услуг банка, например:

  • Счет клиента
  • Выдача кредитов лично и бизнесам
  • Предоставление страхования

5- Структура таблиц

5.1- ACCOUNT

5.2- ACC_TRANSACTION

5.3- BRANCH

5.4- BUSINESS

5.5- CUSTOMER

5.6- DEPARTMENT

5.7- EMPLOYEE

5.8- INDIVIDUAL

5.9- OFFICER

5.10- PRODUCT

5.11- PRODUCT_TYPE

Командная строка

— Как подключиться к ссылке базы данных Oracle напрямую с помощью SQLPLUS

Я пробовал каждое из следующих действий — ни один из них не работал:

  [oracle @ localhost] $ sqlplus system / oracle @ SID_NAME

[oracle @ localhost] $ sqlplus system / oracle @ localhost: 1521 / SID_NAME

[oracle @ localhost] $ sqlplus system / oracle @ (ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = TCP) (Хост = localhost) (Порт = 1521)) (CONNECT_DATA = (SID = SID_NAME)))

[oracle @ localhost] $ sqlplus "system / oracle @ (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (Host = localhost) (Port = 1521)) (CONNECT_DATA = (SID = SID_NAME))")
  

Поддерживает ли SQL * Plus прямое соединение с «ссылкой на базу данных Oracle» в начальной командной строке? Если да, то как?

SID_NAME указывает не на базу данных, а на «ссылку на базу данных Oracle»: https: // docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm#i1007709

Я могу запросить «ссылку на базу данных Oracle» после подключения к локальной базе данных Oracle. В локальной базе данных Oracle была создана ссылка, указывающая на удаленную базу данных. Он подключается через ODBC DSN.

Однако меня интересует подключение к ссылке базы данных Oracle непосредственно в начальной командной строке sqlplus.

Порт локальной базы данных Oracle — 1521.

Я получаю сообщение об ошибке:

ОШИБКА: ORA-01017: неверное имя пользователя / пароль; вход запрещен

Все дело в отладке (GDB) драйвера ODBC.С помощью isql — в командной строке — я могу предоставить ODBC DSN, и когда я запускаю info sharedlibrary в приглашении GDB, я вижу свою загруженную библиотеку и, следовательно, отлаживаю. Я заинтересован в загрузке драйвера таким же образом, используя sqlplus. Мне не удалось увидеть загруженное соединение с публикацией из библиотеки. Следовательно — попытка загрузить библиотеку при начальной команде, как isql.

В какой момент sqlplus действительно загружает драйвер ODBC для удаленной базы данных? Я знаю, что это происходит, когда запрос выполняется, и выгружает его при выходе.Но я не могу его поймать — хотя точка останова существует.

oracle19c — Подключение к Oracle 19C Cloud из sqlplus

Кажется, ваша проблема связана с тем, что на вашем портативном компьютере установлена ​​версия базы данных Oracle XE.

Когда вы запускаете sqlplus или любой другой инструмент OCI для подключения к Oracle, независимо от того, является ли база данных удаленным хостом или в облаке, sqlplus оценивает переменную среды TNS_ADMIN, чтобы определить, где расположены ваши файлы sqlnet и tnsnames.Если переменной нет, он использует значения по умолчанию из ваших основных записей реестра Oracle, которые наверняка указывают на вашу версию XE, которая была установлена ​​ранее.

Когда вы получаете ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения , ваш сеанс не находит никакой информации о цели в ваших файлах конфигурации, вероятно, потому что сеанс оценивает файлы в вашей установке XE

Попробуйте сделать следующее

  • Скопируйте файлы кошелька, предоставленные Oracle Cloud, в место, отличное от места установки XE.
  • Экспортируйте переменную TNS_ADMIN в сеансе sqlplus cmd по этому новому пути
  • Запустите sqlplus с помощью кошелька

Пример (я полагаю, вы выполнили пункты 1 и 2)

  1. Установите клиентское программное обеспечение Oracle на свой компьютер. Используйте либо полную
    Oracle Database Client 11.2.0.4 (или выше) или Oracle Instant
    Клиент 12.1.0.2 (и выше). Мгновенный клиент содержит минимальный
    программное обеспечение, необходимое для подключения к Oracle Call Interface. В
    Мгновенный клиент 12.1.0.2 (или выше) достаточно для большинства
    Приложения.
  2. Загрузите учетные данные клиента и сохраните файл в защищенной папке на
    ваш клиентский компьютер. См. Раздел Загрузка учетных данных клиента (кошельки).
  3. Распакуйте / распакуйте файл учетных данных в безопасную папку на вашем клиентском компьютере.
  4. Отредактируйте файл sqlnet.ora в папке, куда вы распаковываете
    файл учетных данных, заменив «? / network / admin» на имя
    папка, содержащая учетные данные клиента
    .

Пример

  WALLET_LOCATION = (ИСТОЧНИК = (МЕТОД = файл) (METHOD_DATA = (DIRECTORY = "/ my_new_path")))
SSL_SERVER_DN_MATCH = да

cmd> установить tns_admin = my_new_path
cmd> sqlplus / @ yourtnsentry
  

Я не знаю, использует ли ваша облачная база данных общедоступный IP-адрес или хотите ли вы использовать SSH-туннелирование для подключения к базе данных.Взгляните сюда, потому что тогда вы можете использовать SQLcl (Sql Developer Command Line)

https://docs.cloud.oracle.com/en-us/iaas/Content/Database/Tasks/connectingDB.htm

Как подключиться к серверу базы данных Oracle

Резюме : в этом руководстве вы узнаете, как подключиться к серверу базы данных Oracle с помощью SQL * plus и инструментов разработчика SQL.

Подключение к Oracle Database Server с помощью SQL * Plus

SQL * Plus — это интерактивный инструмент запросов, который устанавливается автоматически при установке Oracle Database Server или Client.SQL * Plus имеет интерфейс командной строки, который позволяет подключаться к серверу Oracle Database и выполнять операторы в интерактивном режиме.

Если вы работали с MySQL или PostgreSQL, SQL * plus похож на программу mysql в MySQL или psql в PostgreSQL.

Чтобы запустить программу SQL * Plus из Linux или оконного терминала, введите команду sqlplus :

 

sqlplus

Вы также можете найти программу SQL * Plus в папке Program на начальном экране. Меню в Windows, как показано ниже:

Когда вы запускаете значок SQLPlus, он запрашивает имя пользователя и пароль.Введите свое имя пользователя и пароль, которые вы выбрали во время установки Oracle Database Server. Если вы не знаете, какую учетную запись использовать, спросите администратора базы данных.

Предположим, вы хотите подключиться к локальному серверу Oracle Database Server, используя учетную запись sys , вы вводите следующую информацию:

 

Введите имя пользователя: sys as sysdba Введите пароль:

После нажатия клавиши ввода вы должны увидеть сообщение, за которым следует командная строка SQL> следующего вида:

 

SQL> _

Это означает, что вы подключились к Oracle Database Server .

В Oracle 12c, когда вы подключаетесь к серверу базы данных, базой данных по умолчанию является контейнерная база данных ROOT с именем CDB $ ROOT . Чтобы отобразить имя базы данных, используйте команду SHOW :

 

SQL> SHOW con_name; CON_NAME ------------------------------ CDB $ ROOT

Если вы хотите переключиться на подключаемую базу данных, используйте оператор ALTER SESSION , чтобы установить текущую базу данных на подключаемую базу данных e.g., PDBORDL следующим образом:

 

SQL> ALTER SESSION SET CONTAINER = PDBORCL; Сессия изменена.

Теперь вы подключились к базе данных PDBORCL .

Чтобы отключить пользователя от Oracle Database Server, используйте команду EXIT :

 

SQL> EXIT

Для подключения пользователя OT к образцу базы данных, расположенной в подключаемой базе данных PDBORCL введите следующую команду:

 

> sqlplus OT @ PDBORCL

SQL * Plus запрашивает пароль пользователя OT .Введите пароль, и вы будете подключены к базе данных PDBORCL в Oracle Database Server.

Подключение к серверу базы данных Oracle с помощью SQL Developer

SQL Developer — это бесплатный инструмент с графическим интерфейсом для работы с SQL в базах данных Oracle. Как и программа SQL * Plus, SQL Developer устанавливается автоматически при установке Oracle Database Server или Client.

Чтобы запустить программу SQL Developer, щелкните значок SQL Developer в папке Oracle Program в меню «Пуск», как показано на следующем рисунке:

Ниже показана программа SQL Developer:

Чтобы создать новое соединение с базой данных, ( 1) сначала нажмите кнопку New или нажмите Ctrl-N , а затем (2) выберите опцию Database Connection и нажмите кнопку OK .

Появится следующее диалоговое окно New / Select Database Connection :

В этом диалоговом окне вам необходимо ввести следующую информацию:

Сначала введите следующую информацию:

  • Имя подключения. Это может быть любое имя, которое вам нравится, мы использовали OT, как показано в диалоговом окне.
  • Имя пользователя и его пароль, в данном случае ot / Orcl1234 .
  • Сохраните пароль, установив флажок Сохранить пароль .

Во-вторых, выберите TNS в качестве типа соединения.

В-третьих, после выбора типа соединения TNS отобразится список Network Alias ​​. Просто выберите PDBORCL в качестве сетевого псевдонима. Делая это, вы явно указываете подключаемую базу данных PDBORCL , к которой вы хотите подключиться.

В-четвертых, нажмите кнопку Test , чтобы проверить соединение с базой данных. Если вы видите сообщение status: Success , вы готовы подключиться к Oracle Database Server.

Чтобы сэкономить время, повторно вводя все параметры соединения еще раз, нажмите кнопку Сохранить .Соединение будет сохранено и отображено в левой части диалогового окна. Всякий раз, когда вы хотите повторно подключиться, вам просто нужно щелкнуть сохраненное подключение, все параметры будут заполнены автоматически.

Теперь вы можете нажать кнопку Connect , чтобы подключиться к Oracle Database Server.

Дважды щелкните Connections> OT> Tables, вы увидите все таблицы в образце базы данных OT .

В этом руководстве вы узнали, как подключиться к Oracle Database Server с помощью SQL * Plus и SQL Developer.

  • Было ли это руководство полезным?
  • Да Нет

Как подключиться к базе данных Oracle с помощью утилиты SQL * PLUS?

Кто-то недавно в моем твиттере задал мне вопрос о том, как подключиться к базе данных Oracle с помощью утилиты SQL * Plus. Если вы не знаете, что это за SQL * Plus; Тогда позвольте мне объяснить это вам, ребята. Посмотрим, как быстро я это сделаю.

Это удобный интерфейс Oracle Property, который позволяет подключаться к базе данных Oracle и поставляется бесплатно в комплекте.Это более или менее похоже на собственные терминалы вашей операционной системы, такие как командная строка или терминал Linux.

Теперь давайте перейдем к нашему вопросу о том, как подключиться к базе данных с помощью этой утилиты.

Для подключения к базе данных с помощью SQL * Plus не требуется никаких навыков ниндзя. Поскольку эта утилита поставляется бесплатно с программным обеспечением Oracle Database, вам не нужно ее загружать, но если вы ошиблись и у вас нет этой утилиты, я уверен, что быстрый поиск в Google может пригодиться.

Шаг 1. Найдите свой SQL * Plus

SQL * Plus — это исполняемый файл, который хранится в вашей структуре каталогов под именем sqlplus.exe, и вы можете найти этот исполняемый файл .exe в каталоге% dbhome_1% \ BIN.

Шаг 2. Запустите SQL * Plus

Эту утилиту можно запустить либо непосредственно из ее базового местоположения (% dbhome_1% \ BIN), либо из каталога меню «Пуск». Если вы выберете последний вариант, нажмите Start Menu и найдите каталог Oracle.В моем случае имя каталога — « Oracle-OraDb11g_home1 ». Внутри этого каталога найдите утилиту SQL * Plus , и отсюда вы можете запустить этот инструмент.

Шаг 3. Подключитесь к базе данных с помощью SQL * Plus.

В Oracle вы можете подключиться к базе данных с помощью пользователей , также известных как схемы . В базе данных Oracle есть несколько типов пользователей. Наиболее распространенными среди них являются «Пользователи с высокими привилегиями», заданные по умолчанию базой данных, «Образцы пользователей» предустановлены для практических целей или «Пользовательские пользователи» — это те, которые созданы вами или администратором баз данных.Имя этих схем / пользователей служит вашим ИМЯ ПОЛЬЗОВАТЕЛЯ, а их пароль будет тем паролем, который вы назначили либо во время установки, либо при их разблокировке.

Давайте посмотрим на примеры

Пример 1: Войдите в базу данных, используя пользователя с высокими привилегиями, т. Е.

Sys пользователь

Предположим, вы хотите войти в свою базу данных с помощью пользователя sys, тогда ваше имя пользователя будет SYS как SYSDBA, а пароль будет тем, который вы назначили на шаге 4 установки.

Рекомендуемое чтение: Как подключиться к базе данных с помощью пользователя sys в SQL Developer

Пример 2: Войдите в базу данных, используя образец пользователя, например HR

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

Рекомендуемое чтение: Как разблокировать пользователей в базе данных Oracle.

Список рекомендуемых материалов для чтения / Видео

Надеюсь, это прояснило для вас концепцию «Как подключиться с помощью SQL * Plus». Пожалуйста, поделитесь им со своими друзьями в социальных сетях и помогите мне связаться с большим количеством людей. Спасибо и хорошего дня!

Убедитесь, что вы подключаетесь к правильной базе данных

Вопрос: Как мне
проверьте мою среду Oracle и начните мой сценарий SQL * Plus для прерывания
базы данных установлен неправильно? Я хочу гарантировать, что мой
скрипт всегда выполняется в базе данных PROD.

Ответ: В комплексе
Среды Oracle не редкость для Oracle
профессионально запутаться в своем «текущем» Oracle
сеанс, как определено переменной среды $ ORACLE_SID.
Это может вызвать серьезные проблемы, когда команды
случайно занесен не в ту базу данных!

установить ORACLE_SD = PROD;
экспорт
ORACLE_SID
sqlplus system / manager
PROD> выберите имя
из базы данных v $;
PROD
Выбран 1 ряд.
PROD> подключить
system / manager @ ТЕСТ
Подключено.
PROD> выберите имя из
v $ база данных;
TEST
Выбрана 1 строка.

Вы можете написать фрагмент сценария PL / SQL для проверки
текущий $ ORACLE_SID и прервать его, если это не тот, который вы
хочу. Примерно так будет проверять Oracle
SID базы данных и выход неверны. . . (не тестировался)

выберите имя_экземпляра из v $ database
в: v_instance_name;
если: v_instance_name <> ‘PROD’, то
выход

Вот как
чтобы проверить, работает ли ваша база данных, и отменить, если
некорректная база данных не подключена:

check_stat = `ps -ef | grep
$ {ORACLE_SID} | grep pmon | wc -l`;
oracle_num = `expr $ check_stat`
if [$ oracle_num -lt 1]
then
exit 0
fi

# ************************ ************************************
# Проверьте, принимает ли Oracle соединения
# * ********************************************************************************************************************************************************************************************************************************************************** **********
$ ORACLE_HOME / bin / sqlplus -s / < / tmp / check_ $ ORACLE_SID.ora
выберите * из базы данных v \ $;
выход
!

# ********************************************** **************
# Если нет, выйдите и напишите письмо. . .
# *********************************************** *************
check_stat = `cat /tmp/check_$ORACLE_SID.ora|grep -i error | wc
-l`;
oracle_num = `expr $ check_stat`
если [$ oracle_num
-ne 0]
, затем
mailx -s «$ ORACLE_SID не работает!»
[email protected]
exit 16
fi

Это
просто фрагмент из сценариев мониторинга базы данных Oracle, который
вы можете запланировать с помощью cron.Более продвинутый Oracle
сценарии мониторинга также могут автоматически пытаться
перезапустить отказавший экземпляр или процессы слушателя, но мы
рекомендую использовать проверенный скрипт, подобный тем, что

Коллекция скриптов Oracle.

Oracle Database — строка подключения (инициирование клиентского соединения)

  1. Дом
  2. База данных
  3. База данных Oracle

1 — Около

Пользователи инициируют запрос на подключение к службе базы данных, предоставляя строку подключения.

Строка подключения включает:

Идентификатором соединения может быть сам дескриптор соединения или имя, которое разрешается в дескриптор соединения.

Один из наиболее распространенных идентификаторов подключения — это имя сетевой службы, простое имя для службы. В следующих примерах демонстрируется одна строка подключения, в которой в качестве идентификатора подключения используется полный дескриптор подключения, и другая строка подключения, в которой в качестве идентификатора подключения используется чистое имя службы продаж.

2 — Статьи по теме

3 — Синтаксис: подключение к базе данных

3.1 — Из командной строки

3.2 — Изнутри SQL * Plus

3.3 — Из экрана входа в систему

3.4 — Из приложения 3GL

Приложения, написанные на 3GL, такие как oci и пре-компиляторы, используются разработчиками приложений среднего уровня и баз данных для прямого доступа к базе данных из клиентской программы.

 
exec sql connect: имя пользователя, определяемое: паролем
 
 

В предыдущем запросе на соединение: имя пользователя и: пароль являются переменными 3GL, которые могут быть установлены в программе статически или путем запроса пользователя.

4 — Пример строки подключения с идентификатором подключения

4.1 — полный дескриптор подключения

 
ПОДКЛЮЧИТЕ scott / [адрес электронной почты защищен] (ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = tcp) (HOST = sales-server1) (PORT = 1521))
(CONNECT_DATA = (SERVICE_NAME = sales.us.acme.com)))
 
 

4.2 — имя сетевой службы

5 — Процесс подключения

Когда используется имя сетевой службы, обработка соединения происходит путем первого сопоставления продаж с дескриптором соединения.Эта отображаемая информация хранится в одном или нескольких репозиториях информации, доступ к которым осуществляется с помощью методов именования.

Процесс установления клиентского сеанса с помощью метода именования выглядит следующим образом:

  1. Идентификатор соединения преобразуется в дескриптор соединения с помощью метода именования. Эта информация возвращается клиенту.
  2. Клиент отправляет запрос на соединение по адресу, указанному в дескрипторе соединения.
  3. Слушатель получает запрос и направляет его на соответствующий сервер базы данных.
  4. Соединение принято сервером базы данных.

Быстрое начало работы с Oracle Net Services

Эта глава предназначена для того, чтобы помочь начинающим пользователям настроить и протестировать простую, но общую конфигурацию сети, например конфигурацию между клиентским приложением и базой данных по сети TCP / IP.

Предварительные условия для установления связи

Задачи в этой главе показывают соединение TCP / IP между клиентским компьютером и сервером базы данных.Для сервера базы данных и клиентских компьютеров предполагаются следующие условия:

  • Компьютер сервера базы данных

    • Он работает в сети, которая имеет доступ к клиенту.

    • База данных Oracle установлена.

    • Установлена ​​поддержка протокола

      TCP / IP.

    • Слушатель настроен.

  • Клиентский компьютер

    • Он работает в сети, имеющей доступ к серверу базы данных.

    • Клиент Oracle установлен.

    • Установлена ​​поддержка протокола

      TCP / IP.

Подтверждение доступности сети

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

Чтобы подтвердить подключение к сети, выполните следующие действия:

  1. Подтвердите, что компьютер-сервер базы данных может связываться с самим собой с помощью теста обратной связи.

    Тест обратной связи — это соединение сервера базы данных с самим собой. Многие сетевые протоколы предоставляют средства тестирования сетевых подключений. Утилиту PING можно использовать в сети TCP / IP.

    В сети TCP / IP каждый компьютер имеет уникальный IP-адрес. Служба разрешения имен, такая как система доменных имен (DNS), может использоваться для сопоставления IP-адреса компьютера с его именем хоста. Если служба разрешения имен не используется, то отображение обычно сохраняется в централизованно обслуживаемом файле с именем hosts .Этот файл находится в каталоге / etc в Linux и в каталоге \ windows \ system32 \ drivers \ etc в Microsoft Windows. Например, запись для компьютера сервера базы данных с именем sales-server может выглядеть следующим образом:

     # IP-адрес псевдонима имени хоста сервера
    192.168.2.203 сервер продаж sales.us.example.com
     
    1. Чтобы подтвердить подключение оборудования, введите в командной строке следующую команду:

       пинг ip_address
       

      В предыдущей команде ip_address — это IP-адрес компьютера сервера базы данных, например:

       пинг 192.168.2.203
       
    2. Чтобы убедиться, что DNS или имя хоста настроено правильно, введите в командной строке следующую команду:

       ping имя_хоста
       

      в предыдущей команде, host_name — это имя хоста сервера.

    3. Чтобы проверить настройку TCP / IP для сервера, введите следующую команду:

       пинг 127.0.0.1
       
  2. Убедитесь, что клиентский компьютер может успешно взаимодействовать с сервером базы данных.

    Это зависит от сетевого протокола. Для TCP / IP вы можете использовать утилиты PING, FTP или TELNET.

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

Запуск Oracle Net Listener и Oracle Database Server

Oracle Net Listener и сервер Oracle Database должны быть запущены, чтобы сервер базы данных мог принимать соединения.Чтобы запустить Oracle Net Listener, сделайте следующее:

  1. Запустите прослушиватель с помощью служебной программы Listener Control. В командной строке введите следующее:

     lsnrctl
    LSNRCTL> НАЧАТЬ [имя_прослушивателя]
     

    В предыдущей команде listener_name — это имя слушателя, определенное в файле listener.ora . Нет необходимости идентифицировать слушателя, если вы используете имя по умолчанию LISTENER .

    Отображается сообщение о состоянии, указывающее, что приемник успешно запущен.

  2. Запустите базу данных следующим образом:

    1. Запустите SQL * Plus без подключения к базе данных, используя следующую команду:

       sqlplus / nolog
       
    2. Подключитесь к базе данных как SYSDBA, используя следующую команду:

       SQL> ПОДКЛЮЧИТЬ имя пользователя как sysdba
       

      Например, SYS является пользователем SYSDBA. Вам будет предложено ввести пароль.

      Примечание:

      Для простоты в этом примере не используются методы управления паролями, которые обычно используются в развернутой системе.В производственной среде следуйте инструкциям по управлению паролями Oracle Database и отключите все образцы учетных записей. См. Руководство по безопасности базы данных Oracle для получения инструкций по управлению паролями и других рекомендаций по безопасности.

    3. Запустите базу данных с помощью следующей команды:

       SQL> ЗАПУСК ОТКРЫТЬ имя_базы_данных
       
  3. Подтвердите, что регистрация службы базы данных с помощью прослушивателя завершена с помощью служебной программы Listener Control, используя следующую команду:

     LSNRCTL> УСЛУГИ [имя_прослушивателя]
     

    Команда SERVICES выводит список служб, поддерживаемых базой данных, а также по крайней мере один доступный обработчик служб.Если регистрации службы базы данных нет в списке, введите следующую команду SQL:

     SQL> ИЗМЕНИТЬ СИСТЕМНЫЙ РЕГИСТР
     

Запуск Oracle Connection Manager

Если вы установили Oracle Connection Manager, запустите Oracle Connection Manager следующим образом:

  1. Запустите служебную программу Oracle Connection Manager Control (CMCTL), используя следующие команды:

     cmctl
    CMCTL> АДМИНИСТР [имя_экземпляра]
     

    В предыдущих командах имя_экземпляра — это имя администратора подключений Oracle.Вы можете определить имя, просмотрев файл cman.ora . Файл находится на компьютере Oracle Connection Manager в каталоге ORACLE_HOME / network / admin .

    Oracle Connection Manager отображает сообщение о состоянии, указывающее имя экземпляра и информирующее вас о том, что этот экземпляр еще не запущен.

    Примечание:

    Если вы не указываете имя экземпляра в качестве аргумента, предоставьте Oracle Connection Manager полное имя хоста.Это значение по умолчанию. После того, как вы введете команду ADMINISTER , CMCTL отобразит имя экземпляра следующим образом:

     CMAN_fully_qualified_host_name
     
     
  2. Запустите Oracle Connection Manager, который вы выбрали для администрирования, с помощью следующей команды:

     cmctl> ЗАПУСК
     

    Oracle Connection Manager подтверждает, что экземпляр был запущен, и предоставляет состояние экземпляра.

    Примечание:

    В Microsoft Windows Oracle Connection Manager также можно запустить через панель управления, как показано ниже:

    1. Выберите «Службы» на панели управления.

    2. Выберите службу Oracle HOME_NAME CMan и нажмите кнопку Пуск.

    3. В окне «Службы» нажмите «Закрыть».

  3. Выйдите из служебной программы Oracle Connection Manager Control, используя следующую команду:

     cmctl> ВЫХОД
     

Подключение к базе данных

Существует несколько способов подключения к базе данных Oracle. В Таблице 6-1 приведен синтаксис для подключения к базе данных.

Таблица 6-1 Подключение к базе данных

Тип подключения Синтаксис подключения Описание

Из командной строки

Общая форма подключения приложения к серверу базы данных из командной строки:

 имя пользователя инструмента @ connect_identifier
Введите пароль: пароль
 

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

Например:

 Система SQLPLUS @ Продажи
Введите пароль: пароль
 

Большинство инструментов Oracle могут использовать для подключения командную строку операционной системы, а некоторые предоставляют альтернативы.

Из экрана входа в систему

 имя пользователя @ connect_identifier
 

Некоторые инструменты предоставляют экран входа в систему в качестве альтернативной формы для входа в систему. Пользователь может войти на сервер базы данных, указав имя пользователя и идентификатор подключения в поле имени пользователя на экране входа в систему и введя пароль, как обычно, в поле пароля.

Из приложения 3GL

 exec sql connect: имя пользователя, определяемое: паролем
 

В предыдущем запросе на соединение: имя пользователя и: пароль являются переменными 3GL, которые могут быть установлены в программе статически или путем запроса пользователя. При подключении к серверу базы данных значение переменной: username имеет вид:

 имя пользователя @ net_service_name
 

Переменная: password содержит пароль для учетной записи базы данных, к которой вы подключаетесь.

Приложения, написанные на 3GL, такие как OCI и предварительные компиляторы, используются разработчиками приложений среднего уровня и баз данных для прямого доступа к базе данных из клиентской программы.

Изнутри SQL * Plus

 sqlplus / nolog
SQL> CONNECT имя пользователя @ net_service_name
Введите пароль: пароль
 

Например:

 sqlplus / nolog
SQL> ПОДКЛЮЧИТЬ scott @ serverx
Введите пароль: пароль
 

В предыдущих командах имя пользователя и пароль — это имя пользователя и пароль базы данных, а имя_сервиса — имя сетевой службы.

В некоторых инструментах Oracle есть команды для соединений с базой данных, позволяющие указать альтернативное имя пользователя, не выходя из инструмента.

Другие инструменты Oracle используют несколько иные методы, зависящие от их функции или интерфейса. Например, инструменты Oracle CDE используют кнопки входа в систему и окно с полями для имени пользователя, пароля и идентификатора удаленной базы данных.

Использование Easy Connect для подключения к базе данных

После проверки сетевого подключения, как описано в разделе «Подтверждение доступности сети», вы можете использовать метод именования Easy Connect для подключения к базе данных.Этот метод именования обеспечивает готовое подключение к базам данных по протоколу TCP / IP. Он расширяет функциональные возможности метода именования хостов, позволяя клиентам подключаться к серверу базы данных с необязательным портом и именем службы в дополнение к имени хоста базы данных. Ниже приводится синтаксис для подключения с помощью Easy Connect:

 CONNECT имя пользователя / пароль @ хост [: порт] [/ имя_службы] [: сервер] [/ имя_экземпляра]
 

Примечание:

В документации Oracle Call Interface сервер обозначается как connect_type .

Если вы выполнили установку сервера Oracle Database в обычном режиме, то имя службы по умолчанию, используемое экземпляром Oracle, — ORCL , и для подключения к этому экземпляру можно использовать следующий синтаксис Easy Connect:

 sqlplus / nolog
SQL> CONNECT имя пользователя @ "host / ORCL"
SQL> Введите пароль: пароль
 

ПРИМЕЧАНИЕ:

Начиная с Oracle Database 10g, Oracle Database не поддерживает использование имен Oracle. Клиенты и базы данных Oracle Database 11g не могут использовать имена Oracle, в том числе из прокси-сервера LDAP, для разрешения именования.Клиенты Oracle9i по-прежнему могут использовать Oracle Names для разрешения именования для базы данных Oracle Database 11g. Однако клиентам настоятельно рекомендуется перейти на LDAP, чтобы воспользоваться новыми функциями Oracle Database 11g.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

2021 © Все права защищены. Карта сайта