Эксперимент Oracle11g(solaris64sparc)+mysql(linux)
Целью данного эксперимента является реализация SMS-платформы на ebs R12 компании , подключенной к mysql.Раннее предупреждение и оперативная информация в ebs ,
Один, окружающая среда
имя хоста ip платформа база данных dbname
ebs234 192.168.1.234 Solaris 10 64 sparc oralce 11g ebstest
mysql 192.168.1.247 linux redhad up4 mysql 5.1 mccdb
Во-вторых, принцип подключения
+-----------------------------<Хост клиента ODBC>---------------- ------------+
| |
| [ORACLE] <---> [DG4ODBC] <---> [Диспетчер драйверов ODBC] <---> [Драйвер ODBC] |
| | |
+------------------------------------------------- ------------------|-------+
/|\
|
СЕТЬ
|
\|/
+--<узел сервера MySQL>--+
| |
| [Сервер MySQL] |
| |
+--------------------------------------+
Это основной процесс соединения. Теперь разделите дорогу, чтобы подготовить этот процесс,
Готовим его задом наперёд, и можно постепенно понять принцип
Сначала определите версию двух баз данных и систему периодов.
файл $ORACLE_HOME/bin/dg4odbc
Версию системы, версию Linux и версию mysql легко проверить, без повторений.
Сначала создайте пользователя на mysql
предоставить все привилегии на mccdb .* для APPS @192.168.1.234, идентифицированного как «123456», с опцией предоставления;
сброс привилегий; ( обновить настройки привилегий )
Следующие операции выполняются на хосте оракула
1) Драйвер odbc --> mysql
mysql находится на хосте 192.168.1.247 . Oracle 11g на платформе Solaris должен подключаться к mysql через драйвер odbc .
Таким образом, вам необходимо установить драйвер odbc для mysql на платформе Solaris.В то же время вам необходимо установить программное обеспечение для управления, которое управляет драйвером odbc , то есть диспетчер драйверов odbc.
a , адрес загрузки - это менеджер драйверов odbc, выберите соответствующий драйвер и выберите его прямо с земли.
http://sourceforge.net/projects/unixodbc/files/unixODBC/
http://www.unixodbc.org/download.html
б, скачать адрес драйвера odbc
http://www.mysql.com/downloads/connector/odbc/5.1.html
c , установить ( пользователь oratest )
mkdir /ebstest/app/etc
mkdir /ebstest/app/myodbc
mkidr /ebstest/app/unixodbc-2.2.14
Переместите драйвер odbc в myodbc
Переместите диспетчер драйверов odbc, а именно unixodbc-2.2.14-sunos-sparc-64.tar.gz, в unixodbc -2.2.14.
Распаковать отдельно
Настройте распакованный каталог в диспетчере odbc dirver , то есть переместите сгенерированный файл bin lib include под usr в каталог unixodbc-2.2.14 .
Смысл в том, что каталог не должен быть таким глубоким, смотреть лучше, и удалить usr
Переименуйте длинное имя файла, разблокированное в myodbc . Длинное имя файла mv также лучше использовать в mysqlodbc .
Хорошо, теперь основная работа готова
1, настроить переменные среды
PATH=/ebstest/app/unixodbc-2.2.14/bin :/ebstest/app/prod/apps/tech_st/10.1.2/OPatch/opatch:$PATH
экспортировать ПУТЬ
LD_LIBRARY_PATH=/ebstest/app/unixodbc-2.2.14/lib:$LD_LIBRARY_PATH
экспортировать LD_LIBRARY_PATH
ДИСПЛЕЙ=192.168.1.196:0.0; экспорт ДИСПЛЕЙ
ODBCINI=/ebstest/app/etc/odbc.ini
экспорт ODBCINI
ODBCSYSINI=/ebstest/приложение/и т.д.
экспорт ODBCSYSINI
2, зарегистрируйтесь и сгенерируйте odbcinst.ini
Введите mysqlodbc/bin в каталог myodbc .
зарегистрировать водителя;
$ myodbc3i -a -d -t"Драйвер MySQL ODBC 3.51;Driver=/usr/lib/libmyodbc3.so;Setup=/usr/lib/libmyodbc3S.so"
Создайте имя источника данных пользователя;
$ myodbc3i -a -su -t"DSN=MyDSN;Драйвер=Драйвер MySQL ODBC 3.51;Сервер=localhost;UID=pharvey"
Согласно этим двум командам
改一下./ myodbc3i -a -d -t "Драйвер MySQL ODBC 3.51;Driver=/ebstest/app/myodbc/mysqlodbc/lib/libmyodbc3.so;Setup=/ebstest/app/myodbc/mysqlodbc/lib/libmyodbc3_r.so "
Таким образом, файл odbcinst.ini создается в каталоге, указанном в переменной среды.
И в соответствии с именем источника данных пользователя, эта команда для создания файла odbc.ini
./ myodbc3i -a -su -t "DSN=mccdb;Driver=/ebstest/app/myodbc/mysqlodbc/lib/libmyodbc3.so;Server=192.168.1.247;UID=apps"
----------------------------
./configure --prefix=/ebs/app/myodbc/unixODBC --includedir=/usr/include --libdir=/usr/lib --bindir=/usr/bin --sysconfdir=/ebs/app/myodbc/ и т. д.
делать
сделать установку
./myodbc-installer -d -a -n "Драйвер MySQL ODBC 5.1" -t "ДРАЙВЕР=/ebstest/app/myodbc/mysqlodbc5/lib/libmyodbc5.so;Setup=/ebstest/app/myodbc/mysqlodbc5/lib/ libmyodbc5.so"
./myodbc-installer -s -a -c2 -n "mccdb" -t "ДРАЙВЕР = Драйвер MySQL ODBC 5.1; СЕРВЕР = 192.168.1.247; БАЗА ДАННЫХ = mccdb; UID = приложения; PWD = 123456"
Проблема версии 5.1 изменена, как указано выше.
----------------------------
Выполните его . Возможно, он не может быть сгенерирован . Это не имеет значения. Вы можете вручную собрать odbc.ini в / ebstest/app/etc
Содержание следующее :
$ more odbc.ini -- на самом деле это имя драйвера DSN
[Источники данных ODBC]
data_source_name = mccdb
[mccdb]
Драйвер = /ebstest/app/myodbc/mysqlodbc/lib/libmyodbc3.so
БАЗА ДАННЫХ = mccdb
ОПИСАНИЕ = Драйвер MySQL ODBC 3.51
СЕРВЕР = 192.168.1.247
UID = приложение с
ПАРОЛЬ = 123456
ПОРТ = 33306
РОЗЕТКА =
Конкретное содержание может быть изменено
Вышеупомянутые файлы драйвера odbc настроены Теперь вам нужно зарегистрироваться в менеджере драйверов odbc .
компакт-диск /ebstest/приложение/unixodbc-2.2.14/bin
./odbcinst -i -d -f /ebstest/app/etc/odbcinst.ini -i (установить) -d (драйвер) -q (запрос)
./odbcinst -i -s -l -f /etc/odbc.ini -i(install) -s(источник данных) -l system dsn -f (следует имя файла template.ini)
Вы можете использовать -f
------------------------
$ ./odbcinst -i -d -f /ebstest/app/etc/odbcinst.ini
odbcinst: Драйвер установлен. Количество использований увеличено до 2.
Целевой каталог — /ebstest/app/etc.
$ ./odbcinst -i -s -l -f /ebstest/app/etc/odbc.ini
Версия 5.1 , как указано выше
------------------------
Проверить подключение
Введите /ebstest/app/unixodbc-2.2.14/bin
./odbcinst -s -q , чтобы узнать, может ли быть обнаружено имя драйвера dsn подключения mccdb .
./isql mccdb -v
посмотрите, подключено ли оно
В теории нет ничего плохого.Конечно, если есть проблема, надо выяснить причину
2) [ORACLE] <---> [DG4ODBC] Подготовьте этот раздел ( у oracle 11g уже есть dg4odbc , нет необходимости устанавливать шлюз)
В этом пункте мы должны понимать , что oracle 11g связан с dg4odbc , то есть оснащен tnsnames.ora и listener.ora
tnsnames.ora (oracle_home/network/中)
Добавьте следующий абзац
mccdb =
(ОПИСАНИЕ =
(АДРЕС = (ПРОТОКОЛ = TCP) (ХОСТ = 192.168.1.234) (порт = 1529))
(CONNECT_DATA =
(SID = mccdb) )
(ГС=ОК)
)
Если вы хотите узнать адрес хоста , порт не следует использовать повторно.
listener.ora добавляет следующие два абзаца
mccdb =
(DESCRIPTION_LIST =
(ОПИСАНИЕ =
(АДРЕС = (ПРОТОКОЛ = TCP) ( ХОСТ = ebs2.riso.com.cn) (ПОРТ = 1529 ))
)
)
SID_LIST_MCCDB=
(SID_LIST =
(SID_DESC =
(ПРОГРАММА=dg4odbc)
(SID_NAME = mccdb)
( ENV=/ebstest/app/unixodbc-2.2.14/lib )
)
)
После выделения проверьте , не запускается ли он .
tnsping mccdb
Успех означает , что проблемы нет Oracle 11g с DG4ODBC работает успешно .
3) [DG4ODBC] <---> [ODBC Driver Manager] Даже этот раздел , собственно, настоящее ядро этого раздела — файл параметров инициализации в каталоге hs
cd $ORACLE_HOME//hs/admin
cp initdg4odbc.ora initmccdb.ora
Измененный файл выглядит следующим образом :
$ больше initmccdb.ora
# Это пример файла инициализации агента, который содержит параметры HS,
# требуется для шлюза базы данных для ODBC
#
# Параметры инициализации HS
#
HS_FDS_CONNECT_INFO = mccdb
HS_FDS_TRACE_LEVEL = Отладка
HS_FDS_SHAREABLE_NAME = /ebstest/app/unixodbc-2.2.14/lib/libodbc.so -- эта строка является ключом , не переходить в каталог myodbc.myodbc подключен к mysql.Теперь это драйвер dg4odbc->odbc
HS_LANGUAGE=АМЕРИКАНСКИЙ_АМЕРИКА.WE8ISO8859P1
#HS_LANGUAGE=американский_америка.al32utf8
HS_NLS_DATE_FORMAT=ГГГГ-ММ-ДД
#HS_FDS_FETCH_ROWS=100
#
# Специальные переменные среды ODBC
#
установить ODBCINI=/ebstest/app/etc/odbc.ini
установить ODBCINSTINI=/ebstest/app/etc/odbcinit.ini
установить ODBCSYSINI=/ebstest/app/etc
установить ORACLE_HOME=/ebstest/app/prod/db/tech_st/11.1.0
#
# Переменные среды, необходимые для системы, отличной от Oracle
#
После включения отладки .
Сначала создайте dblink
создать общедоступную ссылку на базу данных myodbc, подключиться к приложениям , идентифицированным 123456, с помощью « mccdb »;
Подключитесь к другому столу и повторите попытку.
выберите * из msg_table@myodbc;
Согласно информации об ошибке , проверьте причину ошибки в hs/admin/log
Если вы понимаете ясно, будет легко найти проблему
последняя возможная проблема
Во-первых, это проблема версии, можно найти только одну строку
Во-вторых, существует проблема искаженных символов.