powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите разобраться с bequeath connection
9 сообщений из 9, страница 1 из 1
Помогите разобраться с bequeath connection
    #39939335
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, я вообще пытаюсь понять, что это такое и нужно ли оно мне.

Вопрос появился, когда я читал доку по 19с про подключение с клиента, находящегося на той же машине, что и сервер БД. Вот цитата:
To connect to Oracle Database 19c, the following are required:
• Oracle Database Client is version 11.2.0.4 or later.
• If the earlier Oracle Database Client is running on the same computer as Oracle Database 19c, then you cannot use a bequeath connection.
Что это за "соединение по завещанию"?

Почитал немногочисленные тексты с упоминанием "завещания" и пришёл к выводу, что это как-то относится к вопросу миграции с меньшей версии на большую.

У себя я поставил 19с с нуля. Хочу с того же компа подключаться 32-битными прогами по OCI, нужен соответствующий клиент. В силу своей лени есть желание использовать instant client 12.2, который не требует никакой инсталляции - скопировал, настроил tnsnames и готово.

Теперь вопросы:
1. Получится ли этот заход с клиентом 12.2 или процитированное предупреждение как раз и говорит о таковой невозможности?
2. Если это невозможно, то как ещё можно подключаться 32-битными прогами через OCI, чтобы без длительной возни?
...
Рейтинг: 0 / 0
Помогите разобраться с bequeath connection
    #39939338
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный Вася,

К pluggable через bequeath нельзя подключиться в принципе.

SY.
...
Рейтинг: 0 / 0
Помогите разобраться с bequeath connection
    #39939374
PuM256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правильный Вася,

Bequeeth, если по-простому - это sqlplus "/ as sysdba". Приложения так в базу не ходят, а коннектятся к листенеру по сети.

Так что твой instant client 12.2 будет работать замечательно. Только возникает вопрос, зачем он нужен, если на той же машине стоит сервер, а вместе с сервером всегда устанавливается и клиент.

Upd: а, понял, сервер 64-разрядный, а надо коннектиться 32-разрядным приложениям. Ну тогда да, можно и Instant Client поставить.
...
Рейтинг: 0 / 0
Помогите разобраться с bequeath connection
    #39939750
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.


Странный всё-таки термин "завещание"...
...
Рейтинг: 0 / 0
Помогите разобраться с bequeath connection
    #39939767
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про перевод:
"завещание" - это явный текст, прямо и непосредственно описывающий способ доступа к завещаемому,
который в противном случае определялся бы на основании общего законодательства.

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

Если оно и "завещано", то от процесса установки сервера.
Но, имхо, скорее не "завещано", а "непосредственно", в обход листенера, "заявлено",
оставлено для возможности прямого соединения, минуя общие стандартные механизмы.
Вам оставлена такая возможность прямого и непосредственного соединения, но в отличие от настоящего завещания,
здесь не предполагается моральной ответственности за отказ от выполнения воли завещающего, это всего лишь возможность.
...
Рейтинг: 0 / 0
Помогите разобраться с bequeath connection
    #39939808
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный Вася,

BEQ - протокол связи основанный на system pipe, все остальные протоколы основаны на socket
BEQ - одна из первых реализаций TNS, корнями еще в системах VMS, когда не было даже TCP, а вот pipe были
Точнее сначало было слово была реализация single task/two task соединение, то есть когда клиент работал в адресном пространстве сервера.
почитай про sql*loader/imp/exp single task (сейчас уже не поддерживаются), но следы остались:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
$ grep -B 1 Single `dbhome`/rdbms/lib/ins_rdbms.mk 
expst: $(EXPMAI) $(DEF_OPT) $(SSDBED)
	$(SILENT)$(ECHO) " - Linking Singletask Export utility (exp)"
--
impst: $(IMPMAI) $(DEF_OPT) $(SSDBED)
	$(SILENT)$(ECHO) " - Linking Singletask Import utility (imp)"
--
sqlldrst: $(LDRMAI) $(DEF_OPT) $(SSDBED)
	$(SILENT)$(ECHO) " - Linking Singletask SQL*Loader utility (sqlldr)"



Пример:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
$ sqlplus /nolog
...
SQL> !ps
  PID TTY          TIME CMD
15329 pts/0    00:00:00 bash 
15782 pts/0    00:00:00 sqlplus
15786 pts/0    00:00:00 ps
-- нет коннектов
SQL> !ls -l /proc/15782/fd
total 0
lrwx------ 1 oracle oinstall 64 Mar 21 07:18 0 -> /dev/pts/0
lrwx------ 1 oracle oinstall 64 Mar 21 07:18 1 -> /dev/pts/0
lrwx------ 1 oracle oinstall 64 Mar 21 07:18 2 -> /dev/pts/0
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 3 -> /oracle/app/oracle/product/11.2.0/dbhome_1/sqlplus/mesg/sp1us.msb
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 4 -> /oracle/app/oracle/product/11.2.0/dbhome_1/sqlplus/mesg/sp2us.msb
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 5 -> /oracle/app/oracle/product/11.2.0/dbhome_1/sqlplus/mesg/cpyus.msb
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 6 -> /oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg/diaus.msb
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 7 -> /proc/15782/fd
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 8 -> /oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg/ocius.msb
-- socket
SQL> connect sys/*****@localhost/srv as sysdba
Connected.
SQL> !ls -l /proc/15782/fd
total 0
lrwx------ 1 oracle oinstall 64 Mar 21 07:18 0 -> /dev/pts/0
lrwx------ 1 oracle oinstall 64 Mar 21 07:18 1 -> /dev/pts/0
lrwx------ 1 oracle oinstall 64 Mar 21 07:18 2 -> /dev/pts/0
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 3 -> /oracle/app/oracle/product/11.2.0/dbhome_1/sqlplus/mesg/sp1us.msb
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 4 -> /oracle/app/oracle/product/11.2.0/dbhome_1/sqlplus/mesg/sp2us.msb
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 5 -> /oracle/app/oracle/product/11.2.0/dbhome_1/sqlplus/mesg/cpyus.msb
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 6 -> /oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg/diaus.msb
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 7 -> /proc/15782/fd
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 8 -> /oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg/ocius.msb
lrwx------ 1 oracle oinstall 64 Mar 21 07:19 9 -> socket:[130515213]
-- pipe
SQL> connect / as sysdba
Connected.
SQL> !ls -l /proc/15782/fd
total 0
lrwx------ 1 oracle oinstall 64 Mar 21 07:18 0 -> /dev/pts/0
lrwx------ 1 oracle oinstall 64 Mar 21 07:18 1 -> /dev/pts/0
l-wx------ 1 oracle oinstall 64 Mar 21 07:19 10 -> pipe:[130517013]
lr-x------ 1 oracle oinstall 64 Mar 21 07:19 11 -> pipe:[130517014]
lrwx------ 1 oracle oinstall 64 Mar 21 07:18 2 -> /dev/pts/0
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 3 -> /oracle/app/oracle/product/11.2.0/dbhome_1/sqlplus/mesg/sp1us.msb
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 4 -> /oracle/app/oracle/product/11.2.0/dbhome_1/sqlplus/mesg/sp2us.msb
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 5 -> /oracle/app/oracle/product/11.2.0/dbhome_1/sqlplus/mesg/cpyus.msb
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 6 -> /oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg/diaus.msb
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 7 -> /proc/15782/fd
lr-x------ 1 oracle oinstall 64 Mar 21 07:18 8 -> /oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg/ocius.msb

SQL> 
 



p.s. для подключения, tnsnames не обязателен, ну и посмотри про переменные окружения TWO_TASK и LOCAL
Код: plsql
1.
2.
3.
4.
5.
$ tnsping spoim | grep DESCR|tr -d " "
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=X.X.X.X)(PORT=1521)))
$ sqlplus scott/tiger@'(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=srv))(ADDRESS=(PROTOCOL=TCP)(HOST=0.0.0.0)(PORT=1521)))'
...
SQL> 
...
Рейтинг: 0 / 0
Помогите разобраться с bequeath connection
    #39939810
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал BEQ подключение с разными ORACLE_HOME, ORACLE_SID, LD_LIBRARY_PATH

tnsping получается, а вот подключение нет...
Попробуйте поиграться с ORACLE_HOME, LD_LIBRARY_PATH и ORACLE_SID
вдруг получится

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
-- diff of ORACLE_HOME of server and client
$ . oraenv
ORACLE_SID = [o121] ? o122
The Oracle base remains unchanged with value /u/app/oracle
$ tnsping "(DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)(ENVS='ORACLE_HOME=/u/app/oracle/product/12.1.0/dbhome_1')(PROGRAM=oracle)(ARGV0=oraclerepo)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(SID=repo)(ORACLE_HOME=/u/app/oracle/product/12.1.0/dbhome_1)))" 10

TNS Ping Utility for Solaris: Version 12.2.0.1.0 - Production on 21-MAR-2020 08:21:31
...
Attempting to contact (DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)(ENVS='ORACLE_HOME=/u/app/oracle/product/12.1.0/dbhome_1')(PROGRAM=oracle)(ARGV0=oraclerepo)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(SID=repo)(ORACLE_HOME=/u/app/oracle/product/12.1.0/dbhome_1)))
OK (120 msec)
OK (50 msec)
OK (170 msec)
OK (50 msec)
OK (170 msec)
OK (60 msec)
OK (170 msec)
OK (60 msec)
OK (170 msec)
OK (50 msec)

$ sqlplus -l scott/tiger@"(DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)(ENVS='ORACLE_HOME=/u/app/oracle/product/12.1.0/dbhome_1,ORACLE_SID=repo,LD_LIBRARY_PATH=/u/app/oracle/product/12.1.0/dbhome_1/lib')(PROGRAM=oracle)(ARGV0=oraclerepo)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(SID=repo)(ORACLE_HOME=/u/app/oracle/product/12.1.0/dbhome_1)(ENVS='ORACLE_HOME=/u/app/oracle/product/12.1.0/dbhome_1,ORACLE_SID=repo,LD_LIBRARY_PATH=/u/app/oracle/product/12.1.0/dbhome_1/lib')))"

SQL*Plus: Release 12.2.0.1.0 Production on Sat Mar 21 08:16:18 2020
...
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SVR4 Error: 2: No such file or directory
Additional information: 2503
Additional information: -1527457181
Process ID: 0
Session ID: 0 Serial number: 0


SP2-0751: Unable to connect to Oracle.  Exiting SQL*Plus
-- same ORACLE_HOME, but diff ORACLE_SID
$ . oraenv
ORACLE_SID = [o122] ? o121
The Oracle base remains unchanged with value /u/app/oracle
$ sqlplus -l scott/tiger@"(DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)(ENVS='ORACLE_HOME=/u/app/oracle/product/12.1.0/dbhome_1,ORACLE_SID=repo,LD_LIBRARY_PATH=/u/app/oracle/product/12.1.0/dbhome_1/lib')(PROGRAM=oracle)(ARGV0=oraclerepo)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(SID=repo)(ORACLE_HOME=/u/app/oracle/product/12.1.0/dbhome_1)(ENVS='ORACLE_HOME=/u/app/oracle/product/12.1.0/dbhome_1,ORACLE_SID=repo,LD_LIBRARY_PATH=/u/app/oracle/product/12.1.0/dbhome_1/lib')))"

SQL*Plus: Release 12.1.0.2.0 Production on Sat Mar 21 08:17:18 2020
...
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
...
SCOTT@repo SQL> 



Ну и базовый старт экспериментов (стандартный BEQ):
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
$ tnsping repob

TNS Ping Utility for Solaris: Version 12.1.0.2.0 - Production on 21-MAR-2020 08:29:22
...
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle)(ARGV0=oraclerepo)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(SID=repo)))
OK (40 msec)
$ sqlplus -l scott/tiger@repob

SQL*Plus: Release 12.1.0.2.0 Production on Sat Mar 21 08:29:41 2020
...
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SVR4 Error: 2: No such file or directory
Additional information: 2581
Additional information: 1201717039
Process ID: 0
Session ID: 0 Serial number: 0

$ . oraenv
ORACLE_SID = [o121] ? repo
The Oracle base remains unchanged with value /u/app/oracle
$ sqlplus scott/tiger@repob

SQL*Plus: Release 12.1.0.2.0 Production on Sat Mar 21 08:29:52 2020

...

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SCOTT@repob SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
$ 
...
Рейтинг: 0 / 0
Помогите разобраться с bequeath connection
    #39939829
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Lejnin
BEQ - протокол связи основанный на system pipe, все остальные протоколы основаны на socket
А named pipes на чем основан?
...
Рейтинг: 0 / 0
Помогите разобраться с bequeath connection
    #39939978
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ух!
Спасибо всем за ликбез.
Не уверен, что мне это понадобится, но теперь хотя бы понятно, почему.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите разобраться с bequeath connection
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]