Способ синхронизации производственных и тестовых баз данных - PullRequest
2 голосов
/ 05 ноября 2010

Мне нужно синхронизировать данные сервера ms-sql 2005 & 2008 с моим сервером разработки (mssql 2005 & 2008).

Проблема в том, что я не могу создать файлы .bak, нет разрешений (для доступа к сетевому ресурсу, на котором сохранена резервная копия).Проблема не в том, что я не могу просматривать данные (у меня есть полный доступ на чтение к производственному серверу).Я также могу создавать резервные копии данных в CSV-файлах и считывать их в моей системе, но это довольно болезненно (кодирование, ограничения ссылок на внешние ключи, необходимость делать это для каждой таблицы и т. Д.).Проблема в том, что у администратора нет времени, чтобы установить мне необходимые разрешения (у него большие проблемы ...).

Как я все еще могу синхронизировать данные с моим сервером разработки?Мне нужна какая-то синхронизация с файлом, затем все равно перенести (вручную по FTP), а затем обновить базу данных разработки.Я уже пытался выполнить резервное копирование в резервный файл на сетевом ресурсе, но это тоже не работает.

Я не против, если мне придется немного кодировать в свободное время, но я действительноЯ не хочу делать все низкоуровневые вещи самостоятельно, например, разрешать зависимости.

Пока я буду этим заниматься, было бы здорово, если бы я мог объединить данные с нескольких рабочих серверов на моей машине для разработки.

Есть идеи или указатели?

Ответы [ 6 ]

2 голосов
/ 05 ноября 2010

Проверьте сравнение данных sql:

http://www.red -gate.com / продукция / SQL_Data_Compare /

Это то, что мы используем, когда нам нужно синхронизировать базы данных.

1 голос
/ 05 ноября 2010

Вы можете попробовать проект http://sqlinserter.codeplex.com/.

Создает скипы в виде вставки в значения table1 (col1, col2) (1,2)

1 голос
/ 05 ноября 2010

Что вы тестируете?Если вы не проводите тесты производительности или интеграции, производственные данные не будут очень полезными, поскольку они содержат множество общих случаев (которые повторяются миллионы раз) и несколько угловых случаев.

Поэтому я редко синхронизируюте два.Что я делаю: у меня есть база данных для разработки (набор файлов SQL), которую настраивает первый тест.Это содержит данные искусственных испытаний плюс данные, которые вызвали ошибки в производстве.Чтобы сделать это полезным, тестовая база данных настолько мала, насколько это возможно.

Тогда у нас есть система интеграционных испытаний, которая просто является зеркалом производственной базы данных.Это используется для тестов производительности и некоторых больших автоматических тестов, но не для модульного тестирования.

1 голос
/ 05 ноября 2010

Возможно, вы захотите взглянуть на инструмент RedGate SQL Data Compare .

1 голос
/ 05 ноября 2010

Redgate sql сравнить делает работу, но стоит кучу долларов http://www.red -gate.com / products / SQL_Compare /

0 голосов
/ 05 ноября 2010

У вашего администратора нет запланированных регулярных резервных копий для производственной базы данных?

Недостаточно разрешения READ для резервного копирования базы данных.Вы не сможете получать индексы, связи или хранимые процедуры без разрешения BACKUP DATABASE.

Эти разрешения вам не нужны, если администратор может просто предоставить вам доступ к файлам резервной копии.Если нет резервных файлов вашей производственной базы данных, у него могут быть НАМНОГО большие проблемы в будущем.

...