Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Добрый день! Имеется резервная копия БД в виде совокупности бекапов: Имя файла Размер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.11.2019, 15:58 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN, А с чего вы взяли, что это одна бд? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 16:03 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Критик, так было заявлено админом, когда он покидал нас. Ну и лежат бекапы в одной папке, хотя это, конечно, такой себе показатель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 16:11 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN, Сначала изучите, что там с помощью RESTORE FILELISTONLY, затем гляньте справку по команде https://docs.microsoft.com/ru-ru/sql/t-sql/statements/restore-statements-transact-sql?view=sql-server-ver15 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 16:14 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN Но смутил тот факт, что при попытке восстановить, например m12.bak, sql такой ошибки версии не выдает и спокойной восстанавливает кусок БД. смущает вот это: "спокойной восстанавливает кусок БД". чтобы восстановить "кусок", база должна быть весьма специфической структуры (несколько ФГ), и синтаксис рестора там не сильно стандартный, скорее вы пишете фигню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 16:32 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Критик, Запрос Код: sql 1. 2. Результат LogicalNamePhysicalNameTypeFileGroupNameSizeIsPresentcena_Data d:\Program Files\Microsoft SQL Server\MSSQL\data\cena.mdf D PRIMARY 11418992640 1cena_Log D:\Program Files\Microsoft SQL Server\MSSQL\Data\cena_log.ldf L NULL 2097152000 0 Запрос Код: sql 1. 2. Результат LogicalNamePhysicalNameTypeFileGroupNameSizeIsPresentflnst_Data D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\flnst85.mdf D PRIMARY 1572864000 1flnst_Log D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\flnst85_1.ldf L NULL 271450112 1 У них разные логические имена. Наверное, такого не должно быть, если в теории это бекапы одной базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 16:56 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Yasha123, если бы я не пробовал этот вариант, то не отписывал о нем в сообщение. так что никакой "фигни" здесь нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 16:59 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
У вас бэкапы разных баз. А вы всем вещаете, что это якобы бэкап одной базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 17:03 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN Yasha123, если бы я не пробовал этот вариант, то не отписывал о нем в сообщение. так что никакой "фигни" здесь нет. еще какая фигня. оба представленных бэкапа имеют по одному файлу данных, так что никакой "кусок" восстановить нельзя. только целиком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 17:17 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Приношу извинения, что повёл вас не в ту степь. У нас айтишник ушёл. Кратко обрисовал ситуацию как есть и всё с концами. Нового ещё не нашли. Спасибо, теперь хотя бы будем в курсе, что DBName.bak и m01.bak - m99.bak это резервные копии разных баз. Но вопрос, тем не менее, остается открытым. Есть совокупность m01.bak - m99.bak резервных копий (у них по инструкции RESTORE — FILELISTONLY возвращается одно логическое имя). Каким образом их восстановить и собрать в единую БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 17:19 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN Есть совокупность m01.bak - m99.bak резервных копий (у них по инструкции RESTORE — FILELISTONLY возвращается одно логическое имя). Каким образом их восстановить и собрать в единую БД? теепрь сделайте restore headeronly тем, у которых внутри одна и та же база. и покажите, что там. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 17:24 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN, Еще раз. С чего вы решили, что вам надо все эти бэкапы собирать в _одну_ базу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 17:26 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN, у Вас на сервер сейчас сколько баз, можете подсчитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 17:31 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей Алексеевич, я развернул несколько экземпляров этих бекапов. Таблицы в них содержатся одинаковые, но в каждом экземпляре содержатся сведения только по одной территории. Например, в m01 только данные по Москве, в m20 - по Питеру, в m55 - по Новгороду. Ну и я предположил, что вся БД просто разбита по территориям. Yasha123, сейчас сделаю и выложу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 17:38 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN Гавриленко Сергей Алексеевич, я развернул несколько экземпляров этих бекапов. Таблицы в них содержатся одинаковые, но в каждом экземпляре содержатся сведения только по одной территории. Например, в m01 только данные по Москве, в m20 - по Питеру, в m55 - по Новгороду. Ну и я предположил, что вся БД просто разбита по территориям. Скорее всего, в вашей системе база данных состоит из множества баз данных. А в базе, которая в "DBName.bak", есть вьюха, объединяющая таблицы этих баз. Ждём headeronly... В общем, тут самый правильный совет - искать специалиста :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 17:42 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей Алексеевич PavelPN, Еще раз. С чего вы решили, что вам надо все эти бэкапы собирать в _одну_ базу? не, он не все базы собрался в одну собрать, хотя и мне так сперва показалось. он говорит, там, где бэкапы одной и той же базы, что именно восстанавливать, вот смотрите: авторЕсть совокупность m01.bak - m99.bak резервных копий (у них по инструкции RESTORE — FILELISTONLY возвращается одно логическое имя ). Каким образом их восстановить и собрать в единую БД? т.е. там, где несколько бэкапов одной и той же базы, он снова думает, что это ее "куски". PavelPN : это не куски одной базы, это ее(одной и той же базы: "одно логическое имя" в ваших терминах) бэкапы на разные моменты времени ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 17:45 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Yasha123 PavelPN : это не куски одной базы, это ее(одной и той же базы: "одно логическое имя" в ваших терминах) бэкапы на разные моменты времени Одинаковое - потому что эти базы делали копированием базы-заготовки. Т.е. повторю моё предположение: Это одна база данных (как юридический термин(, состоящее из множества баз данных (mssql), по одной на регион, а в главной базе есть либо вьюхи, либо ХП, которые работают с этим множеством баз как с одной. В общем, надо посмотреть headeronly, там будет имя базы, которое было при бакапе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:01 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN, у Вас на сервер сейчас сколько баз, можете подсчитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:04 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Запрос: Код: sql 1. 2. Результат: BackupName BackupType Position DeviceType UserName ServerName DatabaseName DatabaseVersion DatabaseCreationDate BackupSize FirstLSN LastLSN CheckpointLSN DatabaseBackupLSN BackupStartDate BackupFinishDate UnicodeLocaleId CompatibilityLevelBackupTypeDescriptionflnst01--Full Database Backup 112syadminCA-WEB-05flnst016112011-12-20 16:14:43.00050992998416170000000375000721617000000040500001161700000003750007216170000000294000722019-10-17 13:25:49.0002019-10-17 13:25:52.000104980Database Запрос Код: sql 1. 2. Результат BackupName BackupType Position DeviceType UserName ServerName DatabaseName DatabaseVersion DatabaseCreationDate BackupSize FirstLSN LastLSN CheckpointLSN DatabaseBackupLSN BackupStartDate BackupFinishDate UnicodeLocaleId CompatibilityLevelBackupTypeDescriptionflnst12-Full Database Backup112syadminCA-WEB-05flnst126112011-09-29 13:50:59.00016900864038810000000161000383881000000017700001388100000001610003838810000000123000382019-09-02 14:49:48.0002019-09-02 14:49:49.000104980Database Запрос Код: sql 1. 2. Результат BackupName BackupType Position DeviceType UserName ServerName DatabaseName DatabaseVersion DatabaseCreationDate BackupSize FirstLSN LastLSN CheckpointLSN DatabaseBackupLSN BackupStartDate BackupFinishDate UnicodeLocaleId CompatibilityLevelBackupTypeDescriptionflnst24-Full Database Backup112syadminCA-WEB-05flnst246112011-12-20 16:21:11.00012808243215760000000053000371576000000006900001157600000000530003715760000000030000372019-09-11 12:43:20.0002019-09-11 12:43:22.000104980Database ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:08 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов, пока не могу сказать. У меня доступа к продакшн серверу нет. Я на своей машине этим занимаюсь. Попробую завтра узнать. Я понял о чем вы говорите. Т.е. вполне вероятно, что у нас 100 баз, где 1 база под каждую территорию выделена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:11 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN, ну так написано же DatabaseName flnst01 flnst12 flnst24 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:12 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Блин, жестяк. Походу реально под каждую территорию физически создана одна база. Это нормальная вообще практика? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:18 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN Блин, жестяк. Походу реально под каждую территорию физически создана одна база. Это нормальная вообще практика? ну кто ж знает-то. может, вы каждой территории высылаете ее собственную базу раз в неделю, тогда нормально. вы видите все, а они только свое. а была бы одна база, как от нее получить "кусок" в виде бэкапа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:38 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN, это же зависит от разых факторов, в том числе от обслуживания баз. Например, переиндексация выполняется по регионам по расписанию. Или вы захотите перенести базу на выделенный региональный сервер, или каждый регион сильно нагружен запросами. Если это просто коллектор данных, то обычно так не делают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:47 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов ... или каждый регион сильно нагружен запросами. о да, у каждого региона уж такая загруженность... каждая базенка мегабайтами исчисляется, и это бэкапы без компрессии, сервер-то 2005 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:52 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
вообще что-то ваши показания расходятся с тем, что в бэкапах. сервер-исходник 2005, хотя и в совместимости 80 (2000). откуда бы ему взять, что исходный сервер 2000? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 18:56 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN Блин, жестяк. Походу реально под каждую территорию физически создана одна база. Это нормальная вообще практика? Yasha123 может, вы каждой территории высылаете ее собственную базу раз в неделю, тогда нормально. Владислав Колосов, Да там объёмы мизерные, базы по 300 мегабайт. Не терабайт, и даже не гигабайт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 19:07 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Yasha123 вообще что-то ваши показания расходятся с тем, что в бэкапах. сервер-исходник 2005, хотя и в совместимости 80 (2000). откуда бы ему взять, что исходный сервер 2000? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 19:10 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
alexeyvg Yasha123 вообще что-то ваши показания расходятся с тем, что в бэкапах. сервер-исходник 2005, хотя и в совместимости 80 (2000). откуда бы ему взять, что исходный сервер 2000? не сходится с вот этим: авторСоздание резервной копии баз данных производилось на сервере, на котором работала версия 8.00.2055... бэкапилось на 2005-ом, а не на 2000-ом. и наплевал он на совместимость базы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 19:13 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Yasha123 alexeyvg А что не сходится? Да, базы работают(-ли) на 2005, в режиме совместимости с 2000м авторСоздание резервной копии баз данных производилось на сервере, на котором работала версия 8.00.2055... и наплевал он на совместимость базыНепонятно, что не сходится. Да, работал много лет на 2005, базы были при этом в режиме совместимости с 2000-м. При этом базы переходили с сервера на сервер (минимум 2 раза), и всё это были 2005-е серверы. А когда то, в 2000-м году (или позже), их создали на 2000-м (и тоже неизвестно сколько раз переносили с одного 2000-го на другой). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 19:26 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
alexeyvg Да, работал много лет на 2005, базы были при этом в режиме совместимости с 2000-м. При этом базы переходили с сервера на сервер (минимум 2 раза), и всё это были 2005-е серверы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 19:27 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
не понимаю, при чем тут история вашей жизни, но бэкапивший сервер был 2005, а ошибка говорит, что 2000. и наплевать, на каком сервере база родилась, важно, каков формат данного бэкапа. те. версия бэкапившего сервера. и это 2005, а не 2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 19:35 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Yasha123 не понимаю, при чем тут история вашей жизни, Yasha123 но бэкапивший сервер был 2005, а ошибка говорит, что 2000. Делов то, пробовал человек разные бакапы, пытался разобраться... А может, действительно 2005м там и не пахло, был только 2000-й Это же не имеет отношения к проблеме автора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 22:06 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
еще как относится. ТС, у вас базы минимум с двух разных серверов. сделайте restore headeronly и бэкапу "главной базы" тоже. проверьте колонку server name, там будет другой сервер. не знаю, что это означает в вашем случае, но, например, может оказаться, что из одной базы в другую обращаются через linked server ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 07:42 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
alexeyvg А может, действительно 2005м там и не пахло, был только 2000-й. как же не пахло, если restore headeronly показывает версию базы 611. вам говорю, там минимум 2 сервера, но вы меня упорно не слышите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 07:45 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Yasha123 еще как относится. может оказаться, что из одной базы в другую обращаются через linked server ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 08:37 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Yasha123 вам говорю, там минимум 2 сервера, но вы меня упорно не слышите Скорее, так и есть (хотя всё таки ТС мог для главной базы достать какой то старый бакап, а то делать систему на многих серверах как то совсем усложнение, для таких небольших объёмов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 08:43 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN Критик, так было заявлено админом, когда он покидал нас Уверен, - сейчас этот админ сидит в темноте и хохочет гомерическим смехом, запрокинув голову :) Ну прикольнулся человек перед уходом, ну потроллил, ну что уж тут такого :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 08:54 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Добрый день. Спасибо большое за помощь, хотя бы представление получили общее о том, как утроено всё. Получилось посмотреть как это на рабочем сервере лежит. Вы оказались полностью правы, под каждую территорию отдельно создана БД и похоже эта DBName на 11 гб выступает как агрегатор сведений и содержит всевозможные представления из всех этих 100 баз. Каким образом они связаны я не знаю. Тут уж просто будем искать специалиста, чтобы всё это поднимал оперативно. А пока я хочу у себя развернуть территориальные базы, хотя бы для локального доступа к ним. Можете подсказать скрипт как их в автоматическом режиме восстановить? При условии, что некоторые номера почему-то пропущены. Т.е. есть m07.bak, а после него m09.bak А то все руками поднимать это трата времени, а его не хватает сейчас крайне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 10:45 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN похоже эта DBName на 11 гб выступает как агрегатор сведений и содержит всевозможные представления из всех этих 100 баз. были бы там одни представления, была бы база размером в мегабайт. у вас же как раз наоборот, все гигабайты там, а остальные базы - крошки какие-то. так что в этой базе своего добра хватает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 11:01 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN, писал я такой скрипт, найти не могу, не сохранил, видимо. 1) включаете xp_cmdshell через sp_configure 2) Читаете список файлов во временную таблицу: Код: sql 1. 2. 3. 4. 5. Далее в курсоре по каждому файлу: 3) Через динамический SQL формируете команду на restore headeronly, чтобы получить название базы. 4) Аналогично - restore filelistonly, для получения списка файлов для базы. 5) Динамическим SQL генерируете команду на восстановление базы, выполняете. В принципе, все, что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 11:05 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Yasha123, согласен с вами. Учитывая увиденные таблицы и их содержимое, я вообще не понимаю что там хранится. Minamoto, прошу прощения, но мои знания в t-sql ограничиваются пользовательскими селектами. И используемые вами понятия "курсора" и "динамического sql" мне, к сожалению, даже не говорят ни о чем. Если вам не будет напряжно и есть время, могу я попросить вас помочь со скриптом. Понять написанный код я более менее смогу, но написать самому, я думаю у меня займет пару дней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 11:33 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Minamoto PavelPN, писал я такой скрипт, найти не могу, не сохранил, видимо. 1) включаете xp_cmdshell через sp_configure 2) Читаете список файлов во временную таблицу: Код: sql 1. 2. 3. 4. 5. включать xp_cmdshell не обязательно то же самое можно получить процедурой xp_dirtree например, Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 11:46 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
komrad включать xp_cmdshell не обязательно то же самое можно получить процедурой xp_dirtree например, Код: sql 1. Да, но я помню, что перешел именно на xp_cmdshell для большего удобства - в утилите dir там можно более гибко управлять набором возвращаемых файлов, использовать маски, фильтровать и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 11:51 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN мои знания в t-sql ограничиваются пользовательскими селектами. И используемые вами понятия "курсора" и "динамического sql" мне, к сожалению, даже не говорят ни о чем. Если вам не будет напряжно и есть время, могу я попросить вас помочь со скриптом. Понять написанный код я более менее смогу, но написать самому, я думаю у меня займет пару дней. вот именно. вам проще скидать результаты restore filelistonly в одну таблицу и копипастом сделать скрипт для всех баз. на все про все макс. 10 минут на все 100 баз. у вас же все пути, куда будете складывать файлы баз, одни и те же. остается размножить 1 скрипт 100 раз и позаменять имя базы и имена файлов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 12:11 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Yasha123, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Таким образом вы имеете в виду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 12:20 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN, у вас снова что-то не то с версиями. если вы на 2017-ый сервер восстанавливаете, почему в путях MSSQL 12 .MSSQLSERVER? да и не кладите файлы на системный диск, на другой сложите. так-то да, должно быть типа такого: Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 12:29 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN, а какая версия сервера куда базы надо восстановить? покажите select @@version ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 12:29 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN, типа того... Только я таки не поленился, написал скрипт. Используйте на свой страх и риск :) ЗЫ: Не забудьте правильные директории указать, для отладки замените последний "EXEC sp_executesql @sql" на "PRINT @sql" Если не будет выполняться с ошибкой, что возвращаемый набор данных не соответствует описанному в таблицах @header и @filelist - приведите их описание к тому набору полей, которое возвращается вашими командами. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 12:30 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Yasha123 PavelPN, у вас снова что-то не то с версиями. если вы на 2017-ый сервер восстанавливаете, почему в путях MSSQL 12 .MSSQLSERVER? Блин, это я дурак. Версию SSMS вместо версии sql server вам назвал. Версия sql server: Microsoft SQL Server 2014 - 12.0.4100.1 (X64) Apr 20 2015 17:29:27 Copyright (c) Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 12:43 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Minamoto, спасибо. Сегодня попробую всё провернуть в течении дня. По результату отпишу. В целом, всем спасибо за помощь!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 12:44 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
komrad, вам тоже спасибо. Не знаю, успею ли я оба потестить скрипта, но на будущее сохраню оба варианта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 12:59 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN komrad, вам тоже спасибо. Не знаю, успею ли я оба потестить скрипта, но на будущее сохраню оба варианта. Оба скрипта (в том числе и мой) , что вам дали не сработают, так как расчет был на 2005 сервер, а у вас оказался 2014. Чуть позже выложу процу для 2014. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 13:02 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN, Держите скрипт - с помощью него можно из папки с любым кол-вом bak файлов получить автосгенеренный код на восстановление, который выплюнется этим скриптом. Далее - просто скопировать этот скрипт в новое окно и нажать F5. Полезно в том, что в одном месте задаете конфигурацию - куда восстанавливать дата-файлы, ку да - логи и это по-сути все. Таким образом с помощью него - можно целые окрцужения накатывать-разворачивать по щелчку пальцев P.S. этот безумный скрипт писал в свое время человек, который сейчас в Сбербанке Архитектором работает :) 1) Версия для MSSQL 2012 и старше Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 13:06 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PsyMisha, 2) Вторая версия генератора на рестор - для MSSQL 2008 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. Модератор: Будьте добры упаковывать ваши портяночки в тег spoiler. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 13:07 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PavelPN А пока я хочу у себя развернуть территориальные базы, хотя бы для локального доступа к ним. Можете подсказать скрипт как их в автоматическом режиме восстановить? При условии, что некоторые номера почему-то пропущены. Т.е. есть m07.bak, а после него m09.bak А то все руками поднимать это трата времени, а его не хватает сейчас крайне. PsyMisha P.S. этот безумный скрипт писал в свое время человек, который сейчас в Сбербанке Архитектором работает :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Выполнить в SSMS с выводом результата в текст, потом скопировать и выполнить (предварительно проверив, конечно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 13:18 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
alexeyvg, ... а имена датабаз - каждую руками вписывать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 13:20 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PsyMisha P.S. этот безумный скрипт писал в свое время человек, который сейчас в Сбербанке Архитектором работает :) ну, скрипт достаточно простой заметил, что не обрабатывает следующие моменты: - целевая база уже существует - кол-во ее файлов меньше, чем в бекапе - кол-во бекапов в файле bak больше одного и бекапы разных типов - не восстанавливается предыдущий владелец базы - не фиксятся sql юзера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 13:30 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
komrad - не восстанавливается предыдущий владелец базы а с чего бы вдруг его восстанавливать? у ТС вообще другой сервер, про старые логины он и вообще не знает --- щаз запутаем бедного ТС ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 13:34 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
komrad PsyMisha P.S. этот безумный скрипт писал в свое время человек, который сейчас в Сбербанке Архитектором работает :) ну, скрипт достаточно простой заметил, что не обрабатывает следующие моменты: - целевая база уже существует - кол-во ее файлов меньше, чем в бекапе - кол-во бекапов в файле bak больше одного и бекапы разных типов - не восстанавливается предыдущий владелец базы - не фиксятся sql юзера - В папке с бэкапами есть более одного бэкапа для одной базы - В папке с бэкапами есть разностные бэкапы - В папке с бэкапами есть не бэкапы с расширением bak Собственно мой скрипт тоже не обрабатывает эти случаи, за исключением последнего. Все это можно пофиксить, при желании, если хочется написать максимально универсальный вариант. Но задачи такой не стоит, т.к. обычно это явно работа на один раз для одного конкретного кейса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 13:37 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PsyMisha alexeyvg, ... а имена датабаз - каждую руками вписывать :) Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 13:38 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
Yasha123 komrad - не восстанавливается предыдущий владелец базы а с чего бы вдруг его восстанавливать? у ТС вообще другой сервер, про старые логины он и вообще не знает --- это отработка ситуации когда восстанавливают базу на тот же сервер и доступ приложению выдан через эккаунт с dbo (нет юзера в базе) в итоге база восстановлена, владелец - учетка дба, приложение войти в базу не может такой сетап, конечно, не правильный, но отнюдь не редкий старые логины - это вариант переноса базы на другой сервер и использование sql учеток (sid не совпадают) Yasha123 щаз запутаем бедного ТС нет, путать не будем ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 13:42 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
komrad такой сетап, конечно, не правильный, но отнюдь не редкий натуральное ССЗБ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 14:19 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
komrad, Я, если честно, предпочитаю модульные решения. Вся эта начинка по генерации рестора баз и так выглядит насыщенной, - всякие там обёртки, проверки и т.п. По-идее - этот уровень не должен знать бизнес-задачи, - что там юзеры-логины склеить-примапить и т.п. Это должен делать уже отдельный специализированный скрипт, который запускается как модуль уже на последующем этапе Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 14:35 |
|
||
|
Восстановление БД из нескольких .bak
|
|||
|---|---|---|---|
|
#18+
PsyMisha, Чекнуть, какие именно юзеры в базах остались без логина - непримаплены - orphaned - можно так же массовым курсором Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 14:41 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1686955]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
153ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
110ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 557ms |

| 0 / 0 |
