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

Откуда:
Сообщений: 15
Добрый день!

Имеется резервная копия БД в виде совокупности бекапов:
Имя файла Размер
DBName.bak 11 гб
m01.bak 497 мб
m02.bak 251 мб
... ...
m99.bak 331 мб


Вопрос следующий - каким образом восстановить базу целиком?
1) каждый .bak по отдельности восстанавливать
2) или в главной резервной копии (DBName.bak) есть просто ссылки на эти секции и достаточно запустить на восстановление эту главную копию?

И второй вопрос - попробовал восстановить главную копию (DBName.bak) на SQL Server 2017, но выдало ошибку
system.data.sqlclient.sqlerror
Создание резервной копии баз данных производилось на сервере, на котором работала версия 8.00.2055...
Но с этим разобрался, нашёл на вашем ресурсе решение. Но смутил тот факт, что при попытке восстановить, например m12.bak, sql такой ошибки версии не выдает и спокойной восстанавливает кусок БД.
12 ноя 19, 15:58    [22014590]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33269
Блог
PavelPN,

А с чего вы взяли, что это одна бд?
12 ноя 19, 16:03    [22014594]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
PavelPN
Member

Откуда:
Сообщений: 15
Критик, так было заявлено админом, когда он покидал нас. Ну и лежат бекапы в одной папке, хотя это, конечно, такой себе показатель.
12 ноя 19, 16:11    [22014603]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33269
Блог
PavelPN,

Сначала изучите, что там с помощью RESTORE FILELISTONLY, затем гляньте справку по команде
https://docs.microsoft.com/ru-ru/sql/t-sql/statements/restore-statements-transact-sql?view=sql-server-ver15
12 ноя 19, 16:14    [22014608]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
PavelPN
Но смутил тот факт, что при попытке восстановить, например m12.bak, sql такой ошибки версии не выдает и спокойной восстанавливает кусок БД.

смущает вот это: "спокойной восстанавливает кусок БД".
чтобы восстановить "кусок", база должна быть весьма специфической структуры (несколько ФГ),
и синтаксис рестора там не сильно стандартный,
скорее вы пишете фигню.
12 ноя 19, 16:32    [22014619]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
PavelPN
Member

Откуда:
Сообщений: 15
Критик,
Запрос
restore filelistonly
from disk='E:\BackUp\DBName.bak'


Результат
LogicalNamePhysicalNameTypeFileGroupNameSizeIsPresent
cena_Data d:\Program Files\Microsoft SQL Server\MSSQL\data\cena.mdf D PRIMARY 11418992640 1
cena_Log D:\Program Files\Microsoft SQL Server\MSSQL\Data\cena_log.ldf L NULL 2097152000 0


Запрос
restore filelistonly
from disk='E:\BackUp\m85.bak'

Результат
LogicalNamePhysicalNameTypeFileGroupNameSizeIsPresent
flnst_Data D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\flnst85.mdf D PRIMARY 1572864000 1
flnst_Log D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\flnst85_1.ldf L NULL 271450112 1


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

Сообщение было отредактировано: 12 ноя 19, 17:01
12 ноя 19, 16:56    [22014640]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
PavelPN
Member

Откуда:
Сообщений: 15
Yasha123, если бы я не пробовал этот вариант, то не отписывал о нем в сообщение. так что никакой "фигни" здесь нет.
12 ноя 19, 16:59    [22014644]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36696
У вас бэкапы разных баз. А вы всем вещаете, что это якобы бэкап одной базы.

Сообщение было отредактировано: 12 ноя 19, 17:03
12 ноя 19, 17:03    [22014646]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
PavelPN
Yasha123, если бы я не пробовал этот вариант, то не отписывал о нем в сообщение. так что никакой "фигни" здесь нет.

еще какая фигня.
оба представленных бэкапа имеют по одному файлу данных,
так что никакой "кусок" восстановить нельзя.
только целиком
12 ноя 19, 17:17    [22014659]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
PavelPN
Member

Откуда:
Сообщений: 15
Приношу извинения, что повёл вас не в ту степь. У нас айтишник ушёл. Кратко обрисовал ситуацию как есть и всё с концами. Нового ещё не нашли.

Спасибо, теперь хотя бы будем в курсе, что DBName.bak и m01.bak - m99.bak это резервные копии разных баз. Но вопрос, тем не менее, остается открытым.
Есть совокупность m01.bak - m99.bak резервных копий (у них по инструкции RESTORE — FILELISTONLY возвращается одно логическое имя). Каким образом их восстановить и собрать в единую БД?
12 ноя 19, 17:19    [22014662]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
PavelPN

Есть совокупность m01.bak - m99.bak резервных копий (у них по инструкции RESTORE — FILELISTONLY возвращается одно логическое имя). Каким образом их восстановить и собрать в единую БД?

теепрь сделайте restore headeronly
тем, у которых внутри одна и та же база.
и покажите, что там.
12 ноя 19, 17:24    [22014673]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36696
PavelPN,

Еще раз. С чего вы решили, что вам надо все эти бэкапы собирать в _одну_ базу?
12 ноя 19, 17:26    [22014678]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
Владислав Колосов
Member

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

у Вас на сервер сейчас сколько баз, можете подсчитать?
12 ноя 19, 17:31    [22014685]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
PavelPN
Member

Откуда:
Сообщений: 15
Гавриленко Сергей Алексеевич, я развернул несколько экземпляров этих бекапов. Таблицы в них содержатся одинаковые, но в каждом экземпляре содержатся сведения только по одной территории. Например, в m01 только данные по Москве, в m20 - по Питеру, в m55 - по Новгороду. Ну и я предположил, что вся БД просто разбита по территориям.

Yasha123, сейчас сделаю и выложу.
12 ноя 19, 17:38    [22014696]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30821
PavelPN
Гавриленко Сергей Алексеевич, я развернул несколько экземпляров этих бекапов. Таблицы в них содержатся одинаковые, но в каждом экземпляре содержатся сведения только по одной территории. Например, в m01 только данные по Москве, в m20 - по Питеру, в m55 - по Новгороду. Ну и я предположил, что вся БД просто разбита по территориям.
Так и баз несколько?

Скорее всего, в вашей системе база данных состоит из множества баз данных.
А в базе, которая в "DBName.bak", есть вьюха, объединяющая таблицы этих баз.
Ждём headeronly...

В общем, тут самый правильный совет - искать специалиста :-)
12 ноя 19, 17:42    [22014701]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Гавриленко Сергей Алексеевич
PavelPN,

Еще раз. С чего вы решили, что вам надо все эти бэкапы собирать в _одну_ базу?

не, он не все базы собрался в одну собрать,
хотя и мне так сперва показалось.
он говорит, там, где бэкапы одной и той же базы,
что именно восстанавливать, вот смотрите:
автор
Есть совокупность m01.bak - m99.bak резервных копий (у них по инструкции RESTORE — FILELISTONLY возвращается одно логическое имя). Каким образом их восстановить и собрать в единую БД?

т.е. там, где несколько бэкапов одной и той же базы, он снова думает, что это ее "куски".

PavelPN: это не куски одной базы, это ее(одной и той же базы: "одно логическое имя" в ваших терминах) бэкапы
на разные моменты времени
12 ноя 19, 17:45    [22014703]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30821
Yasha123
PavelPN: это не куски одной базы, это ее(одной и той же базы: "одно логическое имя" в ваших терминах) бэкапы
на разные моменты времени
В FILELISTONLY ведь показывается логическое имя файлов.
Одинаковое - потому что эти базы делали копированием базы-заготовки.

Т.е. повторю моё предположение:
Это одна база данных (как юридический термин(, состоящее из множества баз данных (mssql), по одной на регион, а в главной базе есть либо вьюхи, либо ХП, которые работают с этим множеством баз как с одной.

В общем, надо посмотреть headeronly, там будет имя базы, которое было при бакапе.
12 ноя 19, 18:01    [22014720]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
Владислав Колосов
Member

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

у Вас на сервер сейчас сколько баз, можете подсчитать?
12 ноя 19, 18:04    [22014722]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
PavelPN
Member

Откуда:
Сообщений: 15
Запрос:
restore headeronly
from disk='E:\BackUp\m01'

Результат:
BackupName BackupType Position DeviceType UserName ServerName DatabaseName DatabaseVersion DatabaseCreationDate BackupSize FirstLSN LastLSN CheckpointLSN DatabaseBackupLSN BackupStartDate BackupFinishDate UnicodeLocaleId CompatibilityLevelBackupTypeDescription
flnst01--Full Database Backup 112syadminCA-WEB-05flnst016112011-12-20 16:14:43.00050992998416170000000375000721617000000040500001161700000003750007216170000000294000722019-10-17 13:25:49.0002019-10-17 13:25:52.000104980Database


Запрос
restore headeronly
from disk='E:\BackUp\m12'

Результат
BackupName BackupType Position DeviceType UserName ServerName DatabaseName DatabaseVersion DatabaseCreationDate BackupSize FirstLSN LastLSN CheckpointLSN DatabaseBackupLSN BackupStartDate BackupFinishDate UnicodeLocaleId CompatibilityLevelBackupTypeDescription
flnst12-Full Database Backup112syadminCA-WEB-05flnst126112011-09-29 13:50:59.00016900864038810000000161000383881000000017700001388100000001610003838810000000123000382019-09-02 14:49:48.0002019-09-02 14:49:49.000104980Database


Запрос
restore headeronly
from disk='E:\BackUp\m24'

Результат
BackupName BackupType Position DeviceType UserName ServerName DatabaseName DatabaseVersion DatabaseCreationDate BackupSize FirstLSN LastLSN CheckpointLSN DatabaseBackupLSN BackupStartDate BackupFinishDate UnicodeLocaleId CompatibilityLevelBackupTypeDescription
flnst24-Full Database Backup112syadminCA-WEB-05flnst246112011-12-20 16:21:11.00012808243215760000000053000371576000000006900001157600000000530003715760000000030000372019-09-11 12:43:20.0002019-09-11 12:43:22.000104980Database
12 ноя 19, 18:08    [22014727]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
PavelPN
Member

Откуда:
Сообщений: 15
Владислав Колосов, пока не могу сказать. У меня доступа к продакшн серверу нет. Я на своей машине этим занимаюсь. Попробую завтра узнать. Я понял о чем вы говорите. Т.е. вполне вероятно, что у нас 100 баз, где 1 база под каждую территорию выделена.

Сообщение было отредактировано: 12 ноя 19, 18:15
12 ноя 19, 18:11    [22014729]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
msLex
Member

Откуда:
Сообщений: 7734
PavelPN, ну так написано же

DatabaseName
flnst01
flnst12
flnst24
12 ноя 19, 18:12    [22014731]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
PavelPN
Member

Откуда:
Сообщений: 15
Блин, жестяк. Походу реально под каждую территорию физически создана одна база. Это нормальная вообще практика?
12 ноя 19, 18:18    [22014735]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
PavelPN
Блин, жестяк. Походу реально под каждую территорию физически создана одна база. Это нормальная вообще практика?

ну кто ж знает-то.
может, вы каждой территории высылаете ее собственную базу раз в неделю,
тогда нормально.
вы видите все, а они только свое.
а была бы одна база, как от нее получить "кусок" в виде бэкапа?
12 ноя 19, 18:38    [22014749]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
Владислав Колосов
Member

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

это же зависит от разых факторов, в том числе от обслуживания баз. Например, переиндексация выполняется по регионам по расписанию. Или вы захотите перенести базу на выделенный региональный сервер, или каждый регион сильно нагружен запросами. Если это просто коллектор данных, то обычно так не делают.
12 ноя 19, 18:47    [22014757]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из нескольких .bak  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Владислав Колосов
... или каждый регион сильно нагружен запросами.

о да, у каждого региона уж такая загруженность...
каждая базенка мегабайтами исчисляется,
и это бэкапы без компрессии, сервер-то 2005
12 ноя 19, 18:52    [22014758]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить