Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите разобраться с bequeath connection / 9 сообщений из 9, страница 1 из 1
19.03.2020, 22:18
    #39939335
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с bequeath connection
Собственно, я вообще пытаюсь понять, что это такое и нужно ли оно мне.

Вопрос появился, когда я читал доку по 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
19.03.2020, 22:40
    #39939338
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с bequeath connection
Правильный Вася,

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

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

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

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

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


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

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

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

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
21.03.2020, 08:34
    #39939810
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с bequeath connection
Попробовал 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
21.03.2020, 12:00
    #39939829
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с bequeath connection
Vadim Lejnin
BEQ - протокол связи основанный на system pipe, все остальные протоколы основаны на socket
А named pipes на чем основан?
...
Рейтинг: 0 / 0
21.03.2020, 23:07
    #39939978
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с bequeath connection
Ух!
Спасибо всем за ликбез.
Не уверен, что мне это понадобится, но теперь хотя бы понятно, почему.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите разобраться с bequeath connection / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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