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

Откуда: Москва
Сообщений: 4
Сразу напишу что в теме я - чайник :)

Имеем: Microsoft SQL Server 2000 - 8.00 SP4. и 2 базы.
База 1 - эталонная безглючная база с данными от 2010г.
База 2 - восстановленная после сбоя база от 2012г. Сами данные вроде в норме. Нарушены связи (зависимости), значения умолчаний, и, скорее всего, что-то с системными таблицами.
Структура баз идентичная, База2 - это результат работы с Базой1.
Количество таблиц - 111, из них системных -20 и тех, в которых произошли изменения данных - 50.

Вопрос: как преобразовать в нормальное состояние Базу2 ?

Возможен ли вариант переноса данных 50 таблиц из Базы2 в Базу1 без переноса остальных свойств? Можно ли получить пример скрипта (например для Management Studio ?).

Или вариант переноса системных таблиц и параметров остальных таблиц из Базы1 в Базу2 без данных?

Судя по тому, как реагируют знакомые спецы, ситуация не очень простая, жду ответов и комментариев. Спасибо!
25 апр 12, 19:06    [12471168]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных таблиц из одной базы MS SQL в другую  [new]
iljy
Member

Откуда:
Сообщений: 8711
luk888,

я думаю спецы икают от смеха, поэтому ничего внятного сказать не могут Админы делятся на тех, кто далает бакапы, и тех, кто будет их делать.

Я бы решил примерно так: заскриптовал объекты базы2 без данных, но с включением DROP, потом выкинул из скрипта инструкции DROP TABLE-CREATE TABLE. Но могут быть проблемы из-за большой разницы версий.
Можно и обратную задачу решить - перенести данные. Выгружаете все таблицы через BCP, потом также их загружаете. Нужен будет только скрипт, отключающий FOREIGN KEYS, да и индексы тоже неплохо бы.

А вообще странно - использовать 2012 для боевых баз явно рановато.
25 апр 12, 19:18    [12471226]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных таблиц из одной базы MS SQL в другую  [new]
luk888
Member

Откуда: Москва
Сообщений: 4
iljy
luk888,
Но могут быть проблемы из-за большой разницы версий.
А вообще странно - использовать 2012 для боевых баз явно рановато.

Так и думал, что про Бэкапы скажут. ну не было бэкапов . умерли они!!!
Разница версий в чем? Разница там только в объеме данных. Базы весят 500мб - 1000мб, если это нужно.
2010г и 2012г - это я имел в виду даты последней работы с базами :) в принципе - лишняя информация.
25 апр 12, 19:27    [12471271]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных таблиц из одной базы MS SQL в другую  [new]
Glory
Member

Откуда:
Сообщений: 104751
luk888
Нарушены связи (зависимости), значения умолчаний, и, скорее всего, что-то с системными таблицами.

И как вы это все установили ?
И что конкретно под этим подразумеваете ?
25 апр 12, 19:28    [12471272]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных таблиц из одной базы MS SQL в другую  [new]
luk888
Member

Откуда: Москва
Сообщений: 4
Glory
luk888
Нарушены связи (зависимости), значения умолчаний, и, скорее всего, что-то с системными таблицами.

И как вы это все установили ?
И что конкретно под этим подразумеваете ?

Значения умолчаний сравнивал в каждой из таблиц по столбцам с помощью Management Studio (или Enterprise Manager) - в Б2 в ряде таблиц они отсутствовали.
Связи (зависимости) смотрел Management Studio (посмотреть зависимости) - в Б2 их гораздо меньше. Из чего я сделал вывод (может ошибочный), что проблема в системных таблицах Б2.
25 апр 12, 19:39    [12471321]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных таблиц из одной базы MS SQL в другую  [new]
Glory
Member

Откуда:
Сообщений: 104751
luk888
Значения умолчаний сравнивал в каждой из таблиц по столбцам с помощью Management Studio (или Enterprise Manager) - в Б2 в ряде таблиц они отсутствовали

Возможно их и не было.

luk888
Связи (зависимости) смотрел Management Studio (посмотреть зависимости) - в Б2 их гораздо меньше.

Это вы про dependencies что ли ?
Так они никогда не были досточно достоверными

luk888
Из чего я сделал вывод (может ошибочный), что проблема в системных таблицах Б2.

Т.е. такой супер точный сбой, который аккуратно испортил выборочную информацию ?
Маловероятно.

Но вы можете использовать кучу продуктов, которые сравнивают базы. И выводят разницу как в структуре, так и в данных.
25 апр 12, 19:46    [12471356]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных таблиц из одной базы MS SQL в другую  [new]
luk888
Member

Откуда: Москва
Сообщений: 4
Glory
luk888
Значения умолчаний сравнивал в каждой из таблиц по столбцам с помощью Management Studio (или Enterprise Manager) - в Б2 в ряде таблиц они отсутствовали

Возможно их и не было.
luk888
Связи (зависимости) смотрел Management Studio (посмотреть зависимости) - в Б2 их гораздо меньше.

Это вы про dependencies что ли ?
Так они никогда не были досточно достоверными
luk888
Из чего я сделал вывод (может ошибочный), что проблема в системных таблицах Б2.

Т.е. такой супер точный сбой, который аккуратно испортил выборочную информацию ?
Маловероятно.
Но вы можете использовать кучу продуктов, которые сравнивают базы. И выводят разницу как в структуре, так и в данных.


Попробую по-другому. Есть прога которая юзала Б1. Доюзала до Б3. Потом произошел сбой, после проверки ошибок на диске, база не подключилась со статусом "Normal". Базу восстанавливали из 3-х файлов с помощью SQL Server Recovery Toolbox. И получили базу Б2. Воткнули ее на сервер и запустили прогу. Пошли ошибки, стали анализировать. База по данным показывает все в норме, а по функционалу - глючит. После сравнений таблиц получили ту инфу, которую я выше написал. Может, тут применим термин "нарушение целостности"... Пример глючности - при редактировании справочника из проги, из одной таблицы базы стали удаляться данные.

Разработчики проги помочь не хотят (перестали поддерживать данный продукт) но, сказали, что в Б2 должны быть связи между таблицами. При отсутствии связей между таблицами, данные прогой могут удаляться. А связи, как я понимаю, да и по их наводке, организуют системные таблицы.

Мне трудно оценить трудозатраты по решению данной проблемы, но если у кого-то есть желание и возможность помочь за разумное вознаграждение - прошу в личку. Базу, правда, прислать не смогу. Инфа коммерческая.
25 апр 12, 20:40    [12471514]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных таблиц из одной базы MS SQL в другую  [new]
Glory
Member

Откуда:
Сообщений: 104751
luk888
Воткнули ее на сервер и запустили прогу. Пошли ошибки, стали анализировать

Ошибки в программе не есть ошибки на сервере.

luk888
База по данным показывает все в норме, а по функционалу - глючит.

Хоть одно сообщение об ошибке вы можете привести ?


luk888
Пример глючности - при редактировании справочника из проги, из одной таблицы базы стали удаляться данные.При отсутствии связей между таблицами, данные прогой могут удаляться. А связи, как я понимаю, да и по их наводке, организуют системные таблицы.

Сервер сам по себе данные не удаляет, и при наличии связей и при их отсутствии. Для этого клиентские программы формируют запросы и передают их серверу на выполнение.

Сообщение было отредактировано: 25 апр 12, 20:48
25 апр 12, 20:46    [12471525]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных таблиц из одной базы MS SQL в другую  [new]
komrad
Member

Откуда:
Сообщений: 5760
luk888
Сразу напишу что в теме я - чайник :)

Имеем: Microsoft SQL Server 2000 - 8.00 SP4. и 2 базы.
База 1 - эталонная безглючная база с данными от 2010г.
База 2 - восстановленная после сбоя база от 2012г. Сами данные вроде в норме. Нарушены связи (зависимости), значения умолчаний, и, скорее всего, что-то с системными таблицами.
Структура баз идентичная, База2 - это результат работы с Базой1.


структуры баз как сравнивали?

тынц
25 апр 12, 21:47    [12471683]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных таблиц из одной базы MS SQL в другую  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31986
luk888
Разработчики проги помочь не хотят (перестали поддерживать данный продукт)

luk888
Мне трудно оценить трудозатраты по решению данной проблемы, но если у кого-то есть желание и возможность помочь за разумное вознаграждение - прошу в личку.
Самый дешёвый вариант - договориться с разработчиками или лично с кем то из их компании. Всё таки не придётся разбираться с нуля в незнакомой программе.
25 апр 12, 22:25    [12471782]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить