Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Связь между SQL сервером и Orcale  [new]
folli
Member

Откуда:
Сообщений: 23
Всем доброго времени суток.
Возникла такая необходимость, с БД SQL некоторые данные с таблиц так же дублировать и в БД Orcale.
Сам в SQL сервере не силен, будь это просто Orcale + Orcale не проблема, а вот как поднять связь между SQL и Oracle ума не преложу.
Сервера крутятся в одной локалке.
Буду весьма благодарен знающим людям, если подскажут и напрвят в нужное русло.
15 янв 16, 12:40    [18683422]     Ответить | Цитировать Сообщить модератору
 Re: Связь между SQL сервером и Orcale  [new]
Glory
Member

Откуда:
Сообщений: 104751
folli
Буду весьма благодарен знающим людям, если подскажут и напрвят в нужное русло.

1. Спросить на Оракл форуме, как писать запросы к другим СУБД
2. Прочитать в хелпе по MSSQL linked server и distributed query
3. Написать свою программу с нужными запросами к обеим серверам. Или использовать какой-нибудь ETL, который сделает это за вас
15 янв 16, 12:45    [18683460]     Ответить | Цитировать Сообщить модератору
 Re: Связь между SQL сервером и Orcale  [new]
wizli
Member

Откуда: Minsk
Сообщений: 270
folli,
Не совсем понятно, для чего вам нужна эта связь? Чтобы делать загружать данные из Оракла в МС? Или чтобы в запросах обращаться к оракловским объектам?
15 янв 16, 12:46    [18683470]     Ответить | Цитировать Сообщить модератору
 Re: Связь между SQL сервером и Orcale  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
folli
Буду весьма благодарен знающим людям, если подскажут и напрвят в нужное русло.

если операция не онлайн- просто напишите выгрузку в файл и потом ипортом в оракле поднимайте...
если надо что-то типа онлайн - то Glory вам путь показал
15 янв 16, 12:55    [18683558]     Ответить | Цитировать Сообщить модератору
 Re: Связь между SQL сервером и Orcale  [new]
folli
Member

Откуда:
Сообщений: 23
Glory, Спасибо за ответы, буду пробовать искать решение тогда через Оракл в SQL но хотелось наоборот.

wizli,
Что бы делать загрузки с SQL в Оракле, или же простой Merge данных устроить.
15 янв 16, 12:58    [18683583]     Ответить | Цитировать Сообщить модератору
 Re: Связь между SQL сервером и Orcale  [new]
Glory
Member

Откуда:
Сообщений: 104751
folli
Спасибо за ответы, буду пробовать искать решение тогда через Оракл в SQL но хотелось наоборот.

Я же вам дал все три варианта
Оракл в SQL
SQL в Оракл
независимый
15 янв 16, 13:03    [18683617]     Ответить | Цитировать Сообщить модератору
 Re: Связь между SQL сервером и Orcale  [new]
wizli
Member

Откуда: Minsk
Сообщений: 270
folli
Что бы делать загрузки с SQL в Оракле, или же простой Merge данных устроить.

Как вам уже сказал Glory, ETL вам в помощь. Самый быстрый и простой способ решения вашей проблемы.
15 янв 16, 13:20    [18683719]     Ответить | Цитировать Сообщить модератору
 Re: Связь между SQL сервером и Orcale  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4539
wizli
folli
Что бы делать загрузки с SQL в Оракле, или же простой Merge данных устроить.

Как вам уже сказал Glory, ETL вам в помощь. Самый быстрый и простой способ решения вашей проблемы.

Для чего гонять данные туда-сюда?

Либо Linked Server к Oracle со стороны SQL Server, либо DB Links к SQL Server от Oracle.
Все зависит где будут выполняться запросы. Оттуда и линк.
Если с обеих сторон, то сделать там и там.
15 янв 16, 13:38    [18683829]     Ответить | Цитировать Сообщить модератору
 Re: Связь между SQL сервером и Orcale  [new]
Mairos
Member

Откуда:
Сообщений: 555
folli, есть такая "интрумента" )) - OracleGoldenGate. Связь можно настроить так, что все изменения в MS SQL таблицах,будут в режиме реального времени переноситься в Oracle. Работает ЭТО, используя механизм CDC в MS SQL SERVER. Но смысл связываться со всем этим делом имеет место быть, только если необходима постоянная синхронизация.
15 янв 16, 14:36    [18684310]     Ответить | Цитировать Сообщить модератору
 Re: Связь между SQL сервером и Orcale  [new]
Mairos
Member

Откуда:
Сообщений: 555
wizli, когда-то я этим GoldenGate занимался немного. Если сохранились доки и наработки, то могу поискать и выслать на мыло.
15 янв 16, 14:38    [18684334]     Ответить | Цитировать Сообщить модератору
 Re: Связь между SQL сервером и Orcale  [new]
Mairos
Member

Откуда:
Сообщений: 555
Прошу прощения, не тому ответ адресовал. ))
15 янв 16, 14:39    [18684343]     Ответить | Цитировать Сообщить модератору
 Re: Связь между SQL сервером и Orcale  [new]
folli
Member

Откуда:
Сообщений: 23
Спасибо всем огромное за ответы, очень помогли.
Буду для начала пробовать все же MSSQL linked server.
Оттуда делаю нужный мне запрос и уже полученные данные хочу инсертить в oracle.
Надеюсь что и выйдет с этого.
15 янв 16, 15:33    [18684765]     Ответить | Цитировать Сообщить модератору
 Re: Связь между SQL сервером и Orcale  [new]
AndrK
Member

Откуда: Златоуст
Сообщений: 419
folli,

Если нет BLOB, CLOB ( Varbinary(Max), Varchar(Max) )? то ничего сложного нет.
Oracle на какой OS?


Я бы из Oracle обращался к MS (предпочитаю забирать из сторонней базы, а не писать в неё)

Вариант Oracle обращается к SQL
1. На любом из серверов устанавливаем Oracle Gateway For MSSQL
у меня вариант, где основная база на AIX, и проще было настраивать
на стороне Windows, поэтому на сервере где MS SQL установил
Oracle Database (software only) и Oracle Database Gateways
использовал Oracle 11g
2. Настраиваем GateWay
...\dg4msql\admin\initSqlServ.ora
+

#
# HS init parameters
#
HS_FDS_CONNECT_INFO=sqlserver//Work
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

3. Настраиваем Listener
...\NETWORK\ADMIN\listener.ora
+

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = SqlServ)
(ORACLE_HOME = C:\Oracle\Ora11gDB64)
(PROGRAM = dg4msql)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = sqlserver)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

3. Настраиваем tnsnames на сервере, где стоит Oracle
.../network/admin
+

mssql =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = sqlserver)(PORT = 1521))
)
(CONNECT_DATA =
(SID = SqlServ)
)
(HS = OK)
)

4. Создаем DB_LINK в базе Oracle
create database link sqldb connect to "oracleuser" identified by "oracleuserpassword" using 'mssql'

5. Проверяем
select "id_firm","work_dir" from setup@sqldb

id_firmwork_dir
41Металлургическое производство


В обратную сторону не сложнее.
на SQL-сервер должен стоять провайдер для Oracle,
и используя его создаем связанный сервер
15 янв 16, 20:14    [18686519]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить