2014-02-05 2 views
0

У меня есть база данных SQL Server с несколькими таблицами. Большинство из них содержат данные, которые обычно не меняются.Частичная передача данных между двумя базами данных

Одна таблица (назовем ее readings_table) содержит много строк, и она обновляется все время.

Эта конкретная таблица может содержать сотни гигабайт, в то время как все остальные объединенные таблицы могут иметь не более нескольких мегабайт.

Теперь у меня два развертываемых SQL-сервера: один в операционной сети, а другой в общедоступной сети.

Между двумя сетями существует только один способ связи (физический барьер).

У меня есть автоматический механизм для передачи данных от одного readins_table к другому онлайн.

То, что я хотел бы сделать, это создать рабочий процесс, который может помочь мне принять все данные из DB1 (операционных), за исключением readings_table таблицы, обратно его и чем восстановить его DB2.

Я читал о частичных резервных копиях БД, но я не уверен, что это будет работать в моем случае.

Поблагодарили бы за любые предложения.

+0

SQL Server ** backup ** всегда все или ничего; вы не можете делать резервные копии * все, кроме одной таблицы *. Поскольку эти другие таблицы не содержат большого количества данных, я бы предложил вам изучить создание SQL-скриптов, которые будут вставлять эти данные в таблицу базы данных на «DB2» (в SSMS, перейдите в «Задачи> Сгенерировать скрипты», а затем скрипт вы используете только часть данных ваших таблиц –

+0

Почему бы вам не использовать систему SQL Replication для этого? Он работает почти мгновенно. – Hoh

+0

@Nidzaaaa, я не думаю, что могу реплицировать, если сообщение является одним из способов –

ответ

0

Один (очень грубый) способ сделать это - фактически переместить readings_table в отдельный db отдельно. Затем вы можете связать эту таблицу с операционным db через представление SQL (называемое readings_table). Таким образом, резервные копии операционного db не будут включать эту таблицу.

SQL, из представления в оперативной БД будет выглядеть примерно так:

SELECT * FROM MyOtherDB.dbo.readings_table 

Очевидно, что есть много подводных камней с таким подходом, но он будет работать.

Смежные вопросы