Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
avs99 Member Откуда: Москва - Сеул :) Сообщений: 24 |
Добрый день all!
Такая ситуация - есть база на одной машине. Там всякие тестовые данные. Надо - перенести структуру БД + справочники на другую машину (1) + в дальнейшем синхронизировать изменения полей (2) и справочных данных (3) с первой машины на вторую. Для (1) я стал использовать DTS - Task Copy SQL Server Object. На первый взгляд там все просто и ясно, я радостно запустил это дело сначала на создание новой базы и структуры, потом на копирование данных. Тут же возникли проблемы при переносе структуры - вот что она пишет в логе: ::Warning:: Transfer Status: Scripting dependent object drops The object 'dbo.fn_AuthorsOfProject' not being transfered is dependent on the table 'dbo.AuthorWorkStatus' being transfered. и это для всех вьюх, ХП и UDF. Почему так? Я ведь создаю новую БД... Далее, когда она начинает уже создавать на другой машине базу, то у неё возникают проблемы с созданием вьюх. Я смотрю скрипт по их созданию - получается, что одна из вьюх, на которую ссылаются ряд других создается после их => сообщение об ошибке. Как с этим бороться? Что вы посоветуете с (2)? Возможно ли автоматически скриптовать все изменения в структуре БД при работе через ЕМ? И насчет (3) - я совсем не знаю, как это реализовать. Киньте какую-нибудь урлу pls. С уважением, Алексей. |
30 янв 03, 11:27 [117961] Ответить | Цитировать Сообщить модератору |
tygra Member Откуда: Тверь (Иркутск, Край) Сообщений: 9997 |
Как-то странно выглядит - сначала спрашиваешь перенести структуру БД + справочники на другую машину (1) + в дальнейшем синхронизировать изменения полей (2) и справочных данных (3) с первой машины на вторую
а потом Возможно ли автоматически скриптовать все изменения в структуре БД при работе через ЕМ - ?????? Перенести всю БД - сначала бэкап, потом на другой машине восстанови. Зачем через DTS ????? Изменения данных - или реплицация MS, или своя собственная |
30 янв 03, 11:36 [117969] Ответить | Цитировать Сообщить модератору |
Sinner Member Откуда: Сообщений: 453 |
Я делал так - сначала скриптом создавал структуру,
только нужно поставить флажок Script all depend... object тогда те объекты, от которых зависит текущий будут заскриптованы заранее... предварительно отключал все реляции и триггеры (не забыв проставить SET IDENTITY Таблица ON) а потом DTS - ом переносил, через скрипты, со связанного сервера. (по окончании SET IDENTITY Таблица OFF) Это для каждой таблицы... затем включал все реляции и триггеры ... Более менее все гладко перенеслось, чего и Вам желаю... А синхронизация структур - можно еще и так создаю полный скрипт БД1 и полный скрипт БД2 (по одному файлу на каждый объект) а потом можно сравнивать всякими компарилками (Exam Diff) или в толзой составе VSS |
30 янв 03, 11:39 [117973] Ответить | Цитировать Сообщить модератору |
AVB Member Откуда: Москва Сообщений: 100 |
А ещё, для переноса структуры очень удобно пользоваться механизмом "generating scripts" (см. BOL) |
30 янв 03, 11:39 [117975] Ответить | Цитировать Сообщить модератору |
ASe
Guest |
Вообще-то это репликацией решается, но, если нет возможности ее использовать, посмотри мой вариант:
Структуру базы переносил следующим образом: - генерация скрипта в EM - ручная правка в QA с вычищением ненужных процедур и таблиц Данные переносятся хранимой процедурой sp_SyncronizeAll вида insert into TableName(f1, f2, f3) select f1, f2, f3 from remoteserver.db.dbo.tablename ... первый сервер подлинкован ко второму. |
30 янв 03, 11:46 [117988] Ответить | Цитировать Сообщить модератору |
avs99 Member Откуда: Москва - Сеул :) Сообщений: 24 |
Почему DTS? т.к. процесс переноса будет определенно несколько раз повторяться, то чтобы его более-менее автоматизировать. Т.е. ситуация такая - мы делаем проект у себя в офисе, у заказчика начинается опытная эксплуатация. Мы проект потихонечку доделываем => может менятся база. В базе есть справочники заказчика + всякая наша тестовая фигня. Справочники нужно сохранить, остальное - убрать. Переношу я все на другую машину в нашем офисе, а с неё уже через недельку где-то сделают бэкап и повезут заказчику. И вот с этого времени надо будет как-то отслеживать изменения в структуре нашей БД, чтобы потом взять скриптик и запустить его у заказчика. Вопрос - как отслеживать?
2Sinner Как? "предварительно отключал все реляции и триггеры" 2All как я понял, репликация поможет? или же в свете вышеизложенного нет? |
30 янв 03, 12:56 [118073] Ответить | Цитировать Сообщить модератору |
tygra Member Откуда: Тверь (Иркутск, Край) Сообщений: 9997 |
Вообще-то конечно лучше отслеживать руками и головой - тогда уж точно без проблем все будет. |
30 янв 03, 13:04 [118084] Ответить | Цитировать Сообщить модератору |
akuz Member [скрыт] [заблокирован] Откуда: Сообщений: 6749 |
1. Переносить надо только таблицы, ели возникают подобные предупреждения, возможно в default-ах стоят функции, которые обращаются к таблицам, которые не переносятся. В этом случае таблицы лучше переносить скриптом, убрав оттуда все ненужные ссылки.
2. Возможно ли автоматически скриптовать все изменения в структуре БД при работе через ЕМ? Возможно, для этого в EM есть кнопочка генерации скрипта изменений, правда до обновления структуры таблиц должны быть абсолютно одинаковые, иначе возможна потеря данных. 3. Добавлять данные в справочник однотипно на тест и на сервер заказчика через скрипт insert dictionary values ('a','b','c'), записывать все такие скрипты в специальный файл, который потом прогоняется у заказчика. Вести историю. |
30 янв 03, 14:12 [118168] Ответить | Цитировать Сообщить модератору |
Между сообщениями интервал более 1 года. |
teCa Member Откуда: Сообщений: 746 |
Всем привет. Не стал создавать новую тем, так как гуглил и наткнулся на эту. Собственно задача та же. Есть база размером 2Тб+, в ней множество таблиц, триггеров, хранимок, вьюх итд, ну и конечно она в продакшене 24/7. Те отключать триггеры, как предложено выше у меня не получится. Пробовал через студию wizard Generate Scripts, но он отваливается на ошибке:
Подскажите, какими еще средствами можно перенести структуру БД без данных? |
||
12 ноя 19, 13:08 [22014394] Ответить | Цитировать Сообщить модератору |
komrad Member Откуда: Сообщений: 5516 |
teCa, попробуйте dbcc clonedatabase |
12 ноя 19, 13:19 [22014408] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |