Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Репликация / синхронизация с базой Ms Access  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
Нужно организовать постоянную репликацию (синхронизацию) отдельных таблиц из БД Ms Access (mdb) в Ms SQL Server 2012.
Подскажите, пожалуйста, как наиболее рационально решить задачу?

Access и MSS находятся в одной ЛВС.
Linked tables в Ms Access не годится, так как с базой Access работает массивный толстый клиент, который нельзя переписать, чтобы он рабортал с линкованными таблицами.
В MSS через replication я так понял простыми манипуляциями это нельзя настроить (Ms Access as publisher)?
Синхронизация нужна с интервалом не реже чем ежечасно.
Спасибо!
27 май 13, 13:56    [14354040]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Tigrist
Member

Откуда: Россия-Таиланд-Корея
Сообщений: 479
Miguel1
Нужно организовать постоянную репликацию (синхронизацию) отдельных таблиц из БД Ms Access (mdb) в Ms SQL Server 2012.
Подскажите, пожалуйста, как наиболее рационально решить задачу?

Access и MSS находятся в одной ЛВС.
Linked tables в Ms Access не годится, так как с базой Access работает массивный толстый клиент, который нельзя переписать, чтобы он рабортал с линкованными таблицами.
В MSS через replication я так понял простыми манипуляциями это нельзя настроить (Ms Access as publisher)?
Синхронизация нужна с интервалом не реже чем ежечасно.
Спасибо!

Linked tables в Access ведут себя также как и обычные. никакой разницы для тяжелых клиентов. самый правильный путь. почитайте доки.
27 май 13, 14:01    [14354064]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
Tigrist
Miguel1
Нужно организовать постоянную репликацию (синхронизацию) отдельных таблиц из БД Ms Access (mdb) в Ms SQL Server 2012.
Подскажите, пожалуйста, как наиболее рационально решить задачу?

Access и MSS находятся в одной ЛВС.
Linked tables в Ms Access не годится, так как с базой Access работает массивный толстый клиент, который нельзя переписать, чтобы он рабортал с линкованными таблицами.
В MSS через replication я так понял простыми манипуляциями это нельзя настроить (Ms Access as publisher)?
Синхронизация нужна с интервалом не реже чем ежечасно.
Спасибо!

Linked tables в Access ведут себя также как и обычные. никакой разницы для тяжелых клиентов. самый правильный путь. почитайте доки.


спасибо, тем не менее такое решение не годится
27 май 13, 14:02    [14354073]     Ответить | Цитировать Сообщить модератору
 Re: Репликация  [new]
Glory
Member

Откуда:
Сообщений: 104751
Miguel1
Linked tables в Ms Access не годится, так как с базой Access работает массивный толстый клиент, который нельзя переписать, чтобы он рабортал с линкованными таблицами.

Сделайте linked server-ом ваш Access и читайте данные в MSSQL
27 май 13, 14:14    [14354158]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
Glory
Сделайте linked server-ом ваш Access и читайте данные в MSSQL

извиняюсь за серость, а как это примерно делается?
27 май 13, 14:22    [14354226]     Ответить | Цитировать Сообщить модератору
 Re: Репликация  [new]
Glory
Member

Откуда:
Сообщений: 104751
Miguel1
извиняюсь за серость, а как это примерно делается?

Открывается хелп по MS SQL
Ищется статья linked servers [SQL Server], Access databases
Выполняются предложенные там действия
27 май 13, 14:24    [14354245]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
Glory
Miguel1
извиняюсь за серость, а как это примерно делается?

Открывается хелп по MS SQL
Ищется статья linked servers [SQL Server], Access databases
Выполняются предложенные там действия

спасибо, уже очень близко, но...
на сервере установлена версия x64 Ms SQL и версия x86 Ms Office, соответственно Microsoft Access Database Engine 2010 Redistributable x64 не ставится, но он нужен для Ms SQL Server x64 чтобы sp_addlinkedserver сработал (т.е. он-то работает, а вот запрос на нем потом выполнить нельзя: Cannot create an instance of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "...". (Microsoft SQL Server, Error: 7302))

предложите, пожалуйста, еще варианты!
установить office x64 прошу не предлагать - идея очевидная, но в оперативном масштабе негодная по организационным соображениям
27 май 13, 23:27    [14356609]     Ответить | Цитировать Сообщить модератору
 Re: Репликация  [new]
invm
Member

Откуда: Москва
Сообщений: 9722
Miguel1
Microsoft Access Database Engine 2010 Redistributable x64 не ставится
http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/abf34eea-1029-429a-b88e-4671bffcee76/ см. ответ Paul P Clement IV
28 май 13, 00:08    [14356724]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
invm
Miguel1
Microsoft Access Database Engine 2010 Redistributable x64 не ставится
http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/abf34eea-1029-429a-b88e-4671bffcee76/ см. ответ Paul P Clement IV


интересно. но я уже продвинулся дальше - снес Office x86, поставил x64 и соответственно ADE x64, но..!
все равно ничего не работает. ошибка на sp_addlinkedserver та же
перезагружался..
файл *.mdb скопировал с сетевого диска на локальный
куда копать?!
28 май 13, 00:13    [14356739]     Ответить | Цитировать Сообщить модератору
 Re: Репликация  [new]
invm
Member

Откуда: Москва
Сообщений: 9722
Miguel1
куда копать?!
Судя по ошибке, таки в сторону использования ADE, а не Jet.
28 май 13, 00:35    [14356774]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
Кучу тем просмотрел на этом и других серверах!
exec xp_enum_oledb_providers драйвер находит..

загадочные манипуляции сделал:
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO

все равно
TITLE: Microsoft SQL Server Management Studio
------------------------------
Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)
------------------------------
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "Test". (Microsoft SQL Server, Error: 7303)
------------------------------

что еще можно посмотреть?!
28 май 13, 00:36    [14356775]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Miguel1
что еще можно посмотреть?!

В порядке бреда:
— Посмотрите, можно ли при помощи Access выгружать данные в текстовые файлы. Затем грузите эти файлы в MSSQL при помощи bcp/BULK INSERT;
— Установите "промежуточный" 32-битный SQL Server с соответствующим драйвером Jet/ACE, перекачивайте данные через него.
28 май 13, 11:00    [14357796]     Ответить | Цитировать Сообщить модератору
 Re: Репликация  [new]
invm
Member

Откуда: Москва
Сообщений: 9722
Miguel1,

Покажите скрипт создания linked-сервера.
28 май 13, 11:27    [14357978]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
invm
Miguel1,
Покажите скрипт создания linked-сервера.


Для локального файла:
EXEC sp_addlinkedserver 
   @server = N'Test', 
   @provider = N'Microsoft.ACE.OLEDB.12.0', 
   @srvproduct = N'OLEDB',
   @datasrc = N'с:\base.mdb';
GO


для файла на сети:
EXEC sp_addlinkedserver 
   @server = N'Test', 
   @provider = N'Microsoft.ACE.OLEDB.12.0', 
   @srvproduct = N'OLEDB',
   @datasrc = N'\\192.168.0.5\f\base.mdb';
GO
28 май 13, 15:02    [14359767]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
Гость333
Miguel1
что еще можно посмотреть?!

В порядке бреда:
— Посмотрите, можно ли при помощи Access выгружать данные в текстовые файлы. Затем грузите эти файлы в MSSQL при помощи bcp/BULK INSERT;
— Установите "промежуточный" 32-битный SQL Server с соответствующим драйвером Jet/ACE, перекачивайте данные через него.


спасибо, не пойдет.
про выгрузку текстовых файлов вообще не понял.. проще уж SSIS юзать (что я пока и пытаюсь сделать)
28 май 13, 15:30    [14359959]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
qwerty112
Guest
Miguel1
invm
Miguel1,
Покажите скрипт создания linked-сервера.


Для локального файла:
...
для файла на сети:
...

под какой аутентификацией это всё у вас проистекает ?
про sp_addlinkedsrvlogin помним/знаем ?

навсякий 13932478
28 май 13, 15:58    [14360186]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
qwerty112
под какой аутентификацией это всё у вас проистекает ?
про sp_addlinkedsrvlogin помним/знаем ?

навсякий 13932478


такое после sp_addlinkedserver имеется:
EXEC master.dbo.sp_addlinkedsrvlogin
	@rmtsrvname=N'Test',
	@useself=N'True',
	@locallogin=NULL,
	@rmtuser=N'Admin',
	@rmtpassword=NULL;
28 май 13, 16:02    [14360222]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
qwerty112
под какой аутентификацией это всё у вас проистекает ?

аутентификация SQL: Windows Auth либо Mixed mode - результат одинаков
28 май 13, 16:03    [14360235]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
qwerty112
Guest
Miguel1
qwerty112
под какой аутентификацией это всё у вас проистекает ?
про sp_addlinkedsrvlogin помним/знаем ?

навсякий 13932478


такое после sp_addlinkedserver имеется:
EXEC master.dbo.sp_addlinkedsrvlogin
	@rmtsrvname=N'Test',
	@useself=N'True',
	@locallogin=NULL,
	@rmtuser=N'Admin',
	@rmtpassword=NULL;

??
F1
[ @useself = ] 'useself'
Determines the name of the login used to connect to the remote server. useself is varchar(8), with a default of TRUE.

A value of true specifies that logins use their own credentials to connect to rmtsrvname, with the rmtuser and rmtpassword arguments being ignored. false specifies that the rmtuser and rmtpassword arguments are used to connect to rmtsrvname for the specified locallogin. If rmtuser and rmtpassword are also set to NULL, no login or password is used to connect to the linked server.


28 май 13, 16:11    [14360317]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
qwerty112
??
F1
[ @useself = ] 'useself'
Determines the name of the login used to connect to the remote server. useself is varchar(8), with a default of TRUE.

A value of true specifies that logins use their own credentials to connect to rmtsrvname, with the rmtuser and rmtpassword arguments being ignored. false specifies that the rmtuser and rmtpassword arguments are used to connect to rmtsrvname for the specified locallogin. If rmtuser and rmtpassword are also set to NULL, no login or password is used to connect to the linked server.




так сделал:
EXEC sp_addlinkedserver 
   @server = N'Test', 
   @provider = N'Microsoft.ACE.OLEDB.12.0', 
   @srvproduct = N'OLEDB',
   @datasrc = N'c:\base.mdb';
GO
EXEC master.dbo.sp_addlinkedsrvlogin
	@rmtsrvname=N'Test',
	@useself=N'False',
	@locallogin=NULL,
	@rmtuser=NULL,
	@rmtpassword=NULL;
go


результат неизменен
28 май 13, 16:17    [14360375]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
qwerty112
Guest
Miguel1
результат неизменен

зачем вы убрали rmtuser ?

цитату из хелпа прочитали ?
28 май 13, 16:20    [14360400]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
qwerty112
Miguel1
результат неизменен

зачем вы убрали rmtuser ?

цитату из хелпа прочитали ?


вы правы. смысл при прочтении исказился ))

EXEC master.dbo.sp_addlinkedsrvlogin
	@rmtsrvname=N'Test',
	@useself=N'False',
	@locallogin=NULL,
	@rmtuser=N'Admin',
	@rmtpassword=NULL;
go

так корректно? правда все равно не работает..
28 май 13, 16:26    [14360468]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
qwerty112
Guest
Miguel1
так корректно? правда все равно не работает..

вроде да ...

возвращаемся к 1-ому вопросу : - под какой аутентификацией вы работаете ?
28 май 13, 16:31    [14360513]     Ответить | Цитировать Сообщить модератору
 Re: Репликация / синхронизация с базой Ms Access  [new]
Miguel1
Member

Откуда: Moscow
Сообщений: 164
qwerty112
Miguel1
так корректно? правда все равно не работает..

вроде да ...

возвращаемся к 1-ому вопросу : - под какой аутентификацией вы работаете ?


пробовал Windows Autentification и Mixed mode (sa login)
28 май 13, 16:34    [14360525]     Ответить | Цитировать Сообщить модератору
 Re: Репликация  [new]
invm
Member

Откуда: Москва
Сообщений: 9722
Покажите результат
select value_in_use from sys.configurations where name = 'Ad Hoc Distributed Queries';
exec sp_MSset_oledb_prop 'Microsoft.ACE.OLEDB.12.0';
28 май 13, 16:36    [14360555]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить