Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7   вперед  Ctrl      все
 Re: For FAQ: Настройка hsodbc  [new]
Dimon94
Member

Откуда: Череповец
Сообщений: 184
To Violina

А с какими правами надо выполнять эту последовательность шагов?

Скрипт надо запускать под SYSом?

А остальные шаги?
3 окт 03, 19:49    [363499]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Dimon94
Member

Откуда: Череповец
Сообщений: 184
Попробовал выполнить все по шагам.

На 8 шаге затык, хотя все предыдущие выполнены и проверены. Кстати ODBC Test Oracle тоже позволяет выбирать данные

На 8 шаге у меня выдается следующие ошибки:

ORA-28509: невозможно соединиться с посторонней системой;
ORA-02063: предшествующий line из EMPXLS;
ORA-12564: TNS: соединение отвергнуто


В чем здесь может быть дело?
4 окт 03, 14:51    [363848]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Dimon94
Member

Откуда: Череповец
Сообщений: 184
Всем большое спасибо. Все получилось.
4 окт 03, 21:24    [363934]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
rtt
Guest
Что же делать, если источник не локальный?
И где находится ваш excel?
6 окт 03, 09:40    [364423]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Gooddy
Member

Откуда: Moskow
Сообщений: 1526
А в каком каталоге требуется редактировать listener.ora и tnsnames.ora,
в @%ORACLE_HOME%\hs\admin или @%ORACLE_HOME%\network\admin ?????
25 дек 03, 16:59    [474371]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Gooddy
Member

Откуда: Moskow
Сообщений: 1526
Все сделал как в FAQ для GLOBAL_NAME=TRUE
1) Указал имя источника и домена в %ORACLE_HOME%\hs\admin\initEMPXLS.ora

HS_FDS_CONNECT_INFO = EMPXLS
HS_DB_DOMAIN = WORLD
HS_DB_NAME = EMPXLS

2) Указал домен по умолчанию в %ORACLE_HOME%\network\admin\sqlnet.ora

NAME.DEFAULT_ZONE = world

NAMES.DEFAULT_DOMAIN = world

SQLNET.AUTHENTICATION_SERVICES= (NTS)

TRACE_LEVEL_CLIENT = OFF

SQLNET.EXPIRE_TIME = 0

NAMES.DIRECTORY_PATH= (TNSNAMES)

SQLNET.CRIPTO_SEED = "534437844721731414"

AUTOMATIC_IPC = ON

3) Добавил имя домена к в listener.ora

LISTENER =
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=172.16.0.41)
(PORT=1521)
)
)
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=172.16.0.41)
(PORT=1526)
)
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(PROGRAM=hsodbs)
(GLOBAL_DBNAME = EMPXLS.WORLD)
(SID_NAME = EMPXLS)
(ORACLE_HOME = G:\oracle\ora81)
)
)


и tnsnams.ora

EMPXLS.WORLD =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(Host=172.16.0.41)
(Port=1521)
)
(ADDRESS=
(PROTOCOL=TCP)
(Host=172.16.0.41)
(Port=1526)
)
)
(CONNECT_DATA=
(SID=EMPXLS)
(GLOBAL_NAME=EMPXLS.world)
(HS=OK)
)
)


4) Убедился, что GLOBAL_NAME базы включает имя домена.

SQL> SELECT * FROM GLOBAL_NAME;

GLOBAL_NAME
-------------------
EMPXLS.WORLD

5) Создал dblink в базе

create public database link EMPXLS
connect to fis identified by "fis" using 'EMPXLS';



SQL> SELECT DB_LINK FROM DBA_DB_LINKS WHERE DB_LINK LIKE 'EMPXLS%';

DB_LINK
--------------------
EMPXLS.WORLD


6) Теперь dblink работает в режиме GLOBAL_NAMES

SQL> select name, value from v$parameter where name='global_names';

NAME VALUE
--------------- ---------------
global_names TRUE

SQL> SQL> select "name", "age" from "employee$"@EMPXLS;
*
ERROR at line 1:
ORA-12500: TNS:listener failed to start a dedicated server process

7) Делаею проверку



tnsping EMPXLS


Attempting to contact (ADDRESS = (PROTOCOL = TCP)
(HOST = 172.16.0.41)(PORT = 1521))) (CONNECT_DATA =(SID = EMPXLS)) (HS = OK))
OK (0 msec)
26 дек 03, 13:14    [475438]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
UK0IAI
Member

Откуда: питер
Сообщений: 13523
у меня точно такая беда была так и не вылечил....только на другой машиене, на заново поставленном оракле в типовой базе - все заработало сразу.
26 дек 03, 16:26    [475872]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Vladimir_t2
Member

Откуда: Днепропетровск
Сообщений: 83
Просто из уважения - приподнял топик
26 дек 03, 22:40    [476285]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
Ну хорошо, отвечу:) Хотя честно говоря мало удовольствия разбираться в неотформатированных текстах. У меня часто бывало что начиная задавать вопрос по конфигурационным файлам, отформатировав их, вопрос тут же исчерпывался.

to Goddy

автор
Все сделал как в FAQ


Нет не все.

Ваш tnsnames.ora
EMPXLS.WORLD = 

(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(Host=172.16.0.41)
(Port=1521)
)
(ADDRESS=
(PROTOCOL=TCP)
(Host=172.16.0.41)
(Port=1526)
)
)
(CONNECT_DATA=
(SID=EMPXLS)
(GLOBAL_NAME=EMPXLS.world)
(HS=OK) -- внутри блока CONNECT_DATA

)
)


EMPXLS =

(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =(SID = EMPXLS))
(HS = OK) -- за прелеами блока CONNECT_DATA, самостоятельный блок

)


Как видите, (HS = OK) не входит в область CONNECT_DATA, а является новым блоком. Так что правильный tnsnames.ora в вашем случае

Ваш tnsnames.ora
EMPXLS.WORLD = 

(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(Host=172.16.0.41)
(Port=1521)
)
(ADDRESS=
(PROTOCOL=TCP)
(Host=172.16.0.41)
(Port=1526)
)
)
(CONNECT_DATA=
(SID=EMPXLS)
(GLOBAL_NAME=EMPXLS.world)
)
(HS=OK)
)


Возможно проблема была в этом. У меня на 9.2.0.4 в таком случае / неправильно помещен (HS=OK) / выдается


SQL> select "name", "age" from "employee$"@EMPXLS;
select "name", "age" from "employee$"@EMPXLS
*
ERROR at line 1:
ORA-28546: connection initialization failed, probable Net8 admin error
ORA-02068: following severe error from EMPXLS
ORA-03113: end-of-file on communication channel


По поводу сетевого диска, к FAQ стоило бы добавить

Суть проблемы в том, а имеет ли права доступа на этот замапленый диск пользователь от которого запущены оракловские сервисы. По умолчанию ораклевый сервис в Windows запускается администратором локальной машины. Сейчас сказал ему запускаться с учетной записью администратора домена, и все получилось!
27 дек 03, 00:01    [476314]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
И так, выношу на обсуждение дополнение к FAQ по hsodbc, как обсудим попрошу джуджа добавить

-------------------------------------------------------------------------------
7) Если Excel документ находится на сетевом диске.

Пользователь, от которого запущены оракловские сервисы, должен иметь необходимые права доступа на этот замапленый диск/документ. По умолчанию оракловый сервис в Windows запускается администратором локальной машины, поэтому следует запускать его от имени доменного пользователся, имеющего необходимые права доступа.
-------------------------------------------------------------------------------
27 дек 03, 17:53    [476582]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Gooddy
Member

Откуда: Moskow
Сообщений: 1526
Поправил tnsnames.ora
EMPXLS.WORLD =

(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(Host=172.16.0.41)
(Port=1521)
)
(ADDRESS=
(PROTOCOL=TCP)
(Host=172.16.0.41)
(Port=1526)
)
)
(CONNECT_DATA=
(SID=EMPXLS)
(GLOBAL_NAME=EMPXLS.world)

)
(HS=OK)
)


Заново пересоздал источник данных ODBC Microsoft Excel Driver Имя источника данных EMPXLS, База данных версия Excel 97-2000, Книга e:\Oracle\emp.xls которая расположена на сервере где стоит БД
На сервере создал пользователя ADM с правами администратора, в БД создал такого-же пользователя с правами администратора. Затем пересоздал DBLINK
где connect to adm identified by "парол adm" using 'EMPXLS'
Вошел в БД через PLSQL как ADM и выполнил запрос:
SQL> select "name", "age" from "employee$"@EMPXLS;

select "name", "age" from "employee$"@EMPXLS
*
ERROR at line 1:
ORA-28509: unable to establish a connection to non-Oracle system
ORA-02063: preceding line from EMPXLS
29 дек 03, 12:32    [477343]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
Причин у ошибки может быть несколько, могу только привести описание из доки.

ORA-28509 unable to establish a connection to non-Oracle system

Cause: Initialization of a database link to a non-Oracle system failed to connect to the Heterogeneous Services agent process for this non-Oracle system.

Action: Check the Net8 service name definition in the following places:

the USING clause of the CREATE DATABASE LINK statement
the TNSNAMES.ORA file
the Oracle Names Server
The following are possible reasons for name mismatches:

The USING clause in the CREATE DATABASE LINK statement has to match the service name defined in the TNSNAMES.ORA file or in the Oracle Names Server.
The protocol-specific information in the service name definition must match the protocol-specific definition of the responding listener.
The SID=name in the service name definition (in the TNSNAMES.ORA file or in Oracle Names Server) must match the value in the LISTENER.ORA file for the responding listener.


Для начала попробуйте без global db name.
29 дек 03, 12:43    [477364]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Gooddy
Member

Откуда: Moskow
Сообщений: 1526
У меня на сервере работает промышленная БД с настройкой:

 sqlnet.ora 


SQLNET.AUTHENTICATION_SERVICES=(NTS)
NAMES.DEFAULT_DOMAIN = WORLD



так что попробовать без глобального имени невозможно.

БД работает под Oracle 8.1.7, возможно там есть какие-то нюансы отличные от 9.2??????
29 дек 03, 15:12    [477683]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
Неа, опять не все как в FAQ сделали:) Два адреса в одном tns дескрипторе не правильно если не используется (FAILOVER=on) или (LOAD_BALANCE=on), насколько я помню. Попробуйте удалить блок с портом 1526

EMPXLS.WORLD =

(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(Host=172.16.0.41)
(Port=1521)
)
------- begin remove

(ADDRESS=
(PROTOCOL=TCP)
(Host=172.16.0.41)
(Port=1526)
)
------- end remove

)
(CONNECT_DATA=
(SID=EMPXLS)
(GLOBAL_NAME=EMPXLS.world)

)
(HS=OK)
)


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

У меня работает вот так

EMPXLS.WORLD =

(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SID = EMPXLS)
(GLOBAL_NAME=EMPXLS.WORLD)
)
(HS = OK)
)

EMPXLS2.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1526))
)
(CONNECT_DATA =
(SID = EMPXLS)
(GLOBAL_NAME=EMPXLS2.WORLD)
)
(HS = OK)
)
29 дек 03, 15:56    [477794]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Gooddy
Member

Откуда: Moskow
Сообщений: 1526
поправил listener.ora

LISTENER =

(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=172.16.0.41)
(PORT=1521)
)
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = FIS7.WORLD)
(SID_NAME = T7V2)
(ORACLE_HOME = G:\oracle\ora81)
)
(SID_DESC =
(PROGRAM=hsodbs)
(GLOBAL_DBNAME = EMPXLS.WORLD)
(SID_NAME = EMPXLS)
(ORACLE_HOME = G:\oracle\ora81)
)
)


и tnsnams.ora

FIS7.WORLD =

(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(Host=172.16.0.41)
(Port=1521)
)
)
(CONNECT_DATA=
(SID=T7V2)
(GLOBAL_NAME=FIS7.world)
)
)
EMPXLS.WORLD =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(Host=172.16.0.41)
(Port=1521)
)
)
(CONNECT_DATA=
(SID=EMPXLS)
(GLOBAL_NAME=EMPXLS.world)
)
(HS=OK)
)


FIS7 это БД в которую я хочу передать данные из Excel.
Перезапустил листнер перестартовал БДБ при selecte вылезает та-же ошибка.

Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

SQL> select "name", "age" from "employee$"@EMPXLS;
select "name", "age" from "employee$"@EMPXLS
*
ERROR at line 1:
ORA-28509: unable to establish a connection to non-Oracle system
ORA-02063: preceding line from EMPXLS
29 дек 03, 17:28    [478024]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
tnsnames.ora и listener.ora отредактированы для той базы в которой создается DB линк?

По пробуйте с машины где эта база выполнить

tnsping EMPXLS.WORLD
29 дек 03, 17:42    [478048]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
Ну и на всякий случай опубликуйте

SELECT * FROM DBA_DB_LINKS WHERE DB_LINK LIKE 'EMPXLS%';

PS
Я скоро домой пойду, так что могу не успеть ответить. Может SY что подскажет. Судя по его помощи ранее, у него большой опыт с db link и hsodbc.
29 дек 03, 17:49    [478059]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Gooddy
Member

Откуда: Moskow
Сообщений: 1526
tnsnames.ora и listener.ora отредактированы для той базы в которой создается DB линк? 


Да, на этом-же сервере я расположил экселовский файл, на нем через SQLPLUS я пытаюсь выполнить запрос,вообщем все действия произвожу работая на сервере где стоит данная БД.

tnsping проходит как с параметром EMPXLS так и с EMPXLS.WORLD??????
29 дек 03, 17:55    [478076]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
А odbctst.exe пробовали для тестирования odbc источника?
29 дек 03, 17:59    [478083]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
Убедитеcь другими средствами что odbc источник в порядке, т.е. что проблема не в самом линке а в Оракл.

Гляньте еще сюда, может в трейсе что найдете. Надо локализовать где точно происходит ошибка.

dblink к внешней базе через ODBC, что не правильно?
29 дек 03, 18:05    [478091]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
Трейс включается

HS_FDS_TRACE_LEVEL = 16

в initempxls.ora
29 дек 03, 18:06    [478092]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
У димона94 была таже проблема, потом все получилось, спросите его по мылу

For FAQ: Настройка hsodbc
29 дек 03, 18:08    [478093]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Gooddy
Member

Откуда: Moskow
Сообщений: 1526
А где прочитать как пользоваться odbctst.exe ??????
30 дек 03, 08:44    [478429]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
to Goddy

odbctest.exe сама я не пользовалась у меня в 9ке его нету. Я другими средствами проверяла - на php быстренько страничку с select из этого odbc источника делала.
30 дек 03, 11:19    [478658]     Ответить | Цитировать Сообщить модератору
 Re: For FAQ: Настройка hsodbc  [new]
Gooddy
Member

Откуда: Moskow
Сообщений: 1526
Стартовал odbctst.exe приконектился к системному источнику данных EMPCLS и сделал

select "name",  "age"  from "employee$"@empxls;


получил

ROW # NAME
1 Bob
2 Steve
3 Alex


Колонку "aeg" не выдает но как я понимаю запрос прошел.
30 дек 03, 12:21    [478803]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7   вперед  Ctrl      все
Все форумы / Oracle Ответить