Mdf не является действительным заголовком файла базы данных свойство pageaudit неверно
Я получил файл базы данных и инструкции по его загрузке, чтобы установить SQL Server 2005 и затем присоединить его с помощью SQL Server Management Studio.
После установки все, я пытался прикрепить файл MDF, но затем он говорит мне:
поиск в каталоге для файла "D: .LDF" завершился ошибкой операционной системы 21 (ошибка не найдена)
Файл LDF не поставляется с базой данных, поэтому, вероятно, он должен быть сгенерирован автоматически.
Теперь D-диск - это то место, где находится мой CD-привод, так что он там ничего не найдет. Не удастся создать что-то там.
Почему он пытается найти файл журнала по определенному пути? Почему не там, где находится файл базы данных?
Как я могу прикрепить эту базу данных?
Я понял, что когда я выбираю базу данных для присоединения, под «подробностями базы данных» появляются три записи. MDF, NDF и LDF. «Текущий путь к файлу» LDF указывает на путь диска D выше, поэтому я удалил его.
База данных не может быть обновлена, потому что она доступна только для чтения или имеет файлы только для чтения.
Сделайте базу данных или файлы доступными для записи и перезапустите восстановление.Ошибка активации файла. Физическое имя D: .LDF может быть неправильным.
Новый файл журнала ". " создан. (Microsoft SQL Server, ошибка: 3415)
Поэтому теперь он создает новый файл журнала в той же папке, что и файл базы данных, и это здорово, но, похоже, есть проблемы с безопасностью.
Инструкции требуют, чтобы я использовал логин "sa", который, похоже, является учетной записью sysadmin. Я подключен к своему экземпляру SQL Server, используя этот логин.
Я проверил свойства файла, что он не только для чтения. Каталог не только для чтения. Все ACL разрешены.
Закрытие SSMS и повторное открытие его в качестве администратора не имеет значения.
select SERVERPROPERTY('ProductVersion') возвращает 9.00.4035.00. Есть еще один файл, который поставляется с базой данных «dbdata.ini», который говорит «IsSql2000 = 1», так что, предположительно, он предназначен для загрузки в SQL Server 2000. Я посмотрю, смогу ли я заставить его работать в 2000 году.
Это не проблема доступа. Проблема заключается в том, что вы подключаете базу данных к более высокой версии SQL Server, чем тот экземпляр, к которому он .mdf был изначально подключен, и он доступен только для чтения. SQL Server пытается обновить базу данных как часть присоединения и не может, потому что БД находится в режиме только для чтения.
. для базы данных только для чтения, журнал не может быть перестроен, потому что основной файл не может быть обновлен. Поэтому, когда вы присоединяете базу данных только для чтения, чей журнал недоступен, вы должны предоставить файлы журнала или файлы в FOR ATTACH предложении.
Вам нужно сопроводительное .ldf для базы данных. Я хотел бы связаться с кем бы обеспечил базу данных и попросить их предоставить оба .mdf и .ldf файлы. Затем вы можете прикрепить его со следующим синтаксисом:
READ_ONLY Статус не может быть удален из базы данных , не подключая его , потому что он хранится в метаданных базы данных. Чтобы изменить это, база данных должна быть онлайн и присоединена.
Другая альтернатива - запросить резервную копию базы данных. Вы можете обойти некоторые из этих проблем проще, если вы выполняете восстановление базы данных вместо присоединения.
Как восстановить базу данных Microsoft SQL Server
Как восстановить поврежденную или нерабочую базу данных Microsoft SQL Server. Как восстановить данные из поврежденного файла *.mdf - пошаговая инструкция:
Как восстановить неисправный MDF файл Microsoft SQL Server?
Recovery Toolbox for SQL Server
Возможности утилиты восстановления баз данных MS SQL Server
- Восстановление баз данных SQL Server и *.MDF файлов всех версий Microsoft SQL Servers: 7/2000/2005/2008/2008 R2/2012/2014/2016
- Восстановление всех объектов поврежденного .mdf файла: типы данных, данные таблиц, просмотры, сохраненные процедуры, пользовательские функции, триггеры, индексы, главные и внешние ключи, ограничения и прочее
- Восстановление баз данных SQL сохраненных в нескольких файлах (*.mdf + *.ndf файлы)
- Экспорт восстановленных данных напрямую в базу данных Microsoft SQL Server
- Сохранение исправленных данных как SQL скрипты
- Предварительный просмотр восстановленных данных и структур
- Утилита восстановления SQL успешно протестирована под Windows 98/Me/2000/XP/Vista/7/8/10 или Windows Server 2003/2008/2012/2016 и выше
- Многоязычный интерфейс для исправления MDF файлов
- Восстанавливает данные после атаки вирусом шифровальщиком вымогателем (ransomware).
- Утилита просмотра MDF файлов
Recovery Toolbox for SQL Server является решением все в одном для исправления поврежденных MDF/NDF файлов. Recovery Toolbox for SQL Server поможет вернуть данные из mdf файлов подвешенных баз данных.
Восстановление SQL базы данных
Процесс восстановления базы данных SQL Server Microsoft это сложная задача, состоящая из нескольких этапов. Процесс исправления повреждений БД SQL подразумевает восстановление MDF файла, в котором хранятся все объекты базы данных:
- Таблицы (Tables)
- процедуры (Stored Procedures)
- функции (Functions)
- триггеры (Triggers)
- индексы (Indexes)
- Просмотры (Viewers)
Как восстановить MDF файл
Простое восстановление MDF файла путем исправления или модификации содержимого поврежденного MDF файла невозможно. MDF файл имеет сложную структуру со множеством связей между объектами. Соответственно малейшие правки внутри поврежденного MDF файла приведут к нарушению целостности данных и еще большему усложнению восстановления MDF файла. Это, в свою очередь, может привести к увеличению затрат времени на восстановление всей базы данных MS SQL, или даже утере возможности восстановления в целом. Таким образом, ответ на вопрос о том, как восстановить MDF файл, требует полного понимания процесса.
Процесс восстановления MDF файлов осуществляется в несколько этапов:
- Анализ структуры MDF файла
- Выделение страниц, хранящих данные
- Структурирование страниц данных в MDF файле
- Удаление избыточных страниц для исключения дублирования контента
- Выделение системных данных, описывающих структуру хранимых данных
- Сборка разрозненных данных в общие структуры таблиц, индексов и других объектов
- Сохранение данных в виде отдельных файлов как SQL скрипты (*.sql файлы)
- Создание новой базы данных в MSSQL Server
- Последовательный импорт данных из SQL скриптов (*.sql файлы) в новую базу данных
- Замена поврежденной базы данных новым MDF файлом (новой базой данных)
В результате восстановления БД SQL, после импорта всех данных, извлеченных из поврежденного MDF файла, в новую базу мы можем считать эту новую БД восстановленной базой данных MS SQL Server. А MDF файл новой исправленной базы MS SQL Server это и есть восстановленный MDF файл. Таким образом, данный алгоритм позволяет Recovery Toolbox for SQL Server получить рабочую версию базы данных MS SQL, являющуюся полной копией исходного файла до повреждения. При восстановлении MDF файла сначала требуется восстановить данные (таблицы), далее восстанавливаются все остальные пользовательские объекты (Процедуры (Stored Procedures), функции (Functions), триггеры (Triggers), индексы (Indexes) и Просмотры (Viewers)). Иными словами, восстановление MDF файла проходит через промежуточный шаг: сохранение данных в .sql файлы. Таким образом, сами поврежденные MDF файлы поврежденной базы данных MSSQL Server не редактируются и не модифицируются в процессе восстановления БД.
На протяжении многих лет в нашей компании работал сервер SQL Server 2005, когда совсем недавно мы столкнулись с некоторыми проблемами. Сервер был настроен на RAID 5 и имел один диск горячего резерва в массиве. Один из дисков вышел из строя, а вскоре после этого вышел из строя и второй. К сожалению, у нас не было резервных копий большей части этих данных (пожалуйста, избавьте меня от комментариев "надо было иметь резервные копии" - я знаю о важности надежного плана резервного копирования).
Итак, мы потеряли два диска, у нас нет официального DBA, и база данных недоступна. Один из наших ИТ-специалистов попытался восстановить RAID-массив, и мы полагаем, что RAID начал восстанавливаться, но ему приказали отключить его, поскольку существовала опасность потенциальной потери данных во время восстановления RAID.
Мы отправили весь сервер в компанию по восстановлению данных. Они потратили две недели на работу с сервером, сначала создав образ всех дисков, а затем восстановив данные из RAID-массива.
Я получил жесткий диск, содержащий все "восстановленные" файлы. Это коллекция в основном файлов баз данных (MDF) и журналов транзакций (LDF). Каждая база данных, которая находилась на сервере, состояла только из одного MDF и одного LDF. В настоящее время у меня нет доступа к исходному серверу, поэтому я пытался присоединить эти базы данных к другому серверу, работающему под управлением SQL Server 2005. Однако, когда я пытаюсь присоединить любую из баз данных, я сталкиваюсь с проблемами. Некоторые из различных ошибок, которые я получил, показаны ниже. Мне не удалось восстановить ни один из этих файлов. Я выполнил шаги, описанные в этой статье, но даже тогда не смог восстановить ни один из файлов.
Мы заплатили крупную сумму компании по восстановлению данных за восстановление данных с этого сервера, и мне было поручено доказать без сомнений, что эти данные полезны или бесполезны для нас. У меня просто нет опыта, чтобы знать наверняка, поэтому я задаю вопрос вам, dba.stackexchange: Есть ли вообще способ восстановить эти файлы?.
Заголовок файла 'G:\Data\Data201112_log.ldf' не является допустимым. заголовок файла базы данных. Свойство PageAudit неверно. (Microsoft SQL Server, Ошибка: 5172)
G:\Data\Data201005.mdf не является первичным файлом базы данных. (Microsoft SQL Server, Error: 5171)
Произошла ошибка при обработке журнала для базы данных 'Data201008'. Если возможно, восстановите ее из резервной копии. Если резервная копия недоступна, возможно, потребуется перестроить журнал.
У меня есть база данных в dev (SQL Server 2005 на Windows Server 2008), которую мне нужно перейти на prod (SQL Server 2000 на Windows Server 2003). Мой процесс выглядит следующим образом:
- Войдите в dev, откройте SQL Server Management Studio
- Щелкните правой кнопкой мыши на базе данных | Задачи | Резервный. Сохраните все параметры по умолчанию (полное резервное копирование и т. Д.)
- Переместите файл .bak локально в prod (без сетевого диска), войдите в prod, откройте SQL Server Enterprise Manager.
- Щелкните правой кнопкой мыши узел Базы данных | Все задачи | Восстановить базу данных.
- Измените Восстановить как базу данных, чтобы отобразить то же имя базы данных.
- Нажмите переключатель «С устройства». Нажмите «Выбрать устройства»
- Нажмите Восстановить из: Добавить . найдите файл .bak (маленький - всего 6 МБ)
Теперь я готов восстановить базу данных, поэтому я нажимаю ОК и получаю следующую ошибку:
«Семейство носителей на устройстве« E: . bak »сформировано неправильно. SQL Server не может обработать это семейство носителей. RESTORE DATABASE прерывается ненормально».
Эта ошибка немедленная.
Я пробовал несколько разных вариантов этого - восстановление машины db to dev с другим именем базы данных и именами файлов журналов (откуда она возникла), создание пустой базы данных с тем же физическим путем к файлам и попытка ее восстановления, сделать несколько разных .bak файлов и убедиться, что они проверены перед загрузкой в prod. Я точно знаю, что каталог для файлов .mdf и .ldf существует на prod, хотя сами файлы не существуют. Если, прежде чем я нажму OK для восстановления, перейдите на вкладку параметров вместо этого я получаю следующую ошибку:
Ошибка 3241: Семейство носителей на устройстве «E: . bak» сформировано неправильно. SQL Server не может обработать это семейство носителей. ВОССТАНОВЛЕНИЕ ФИЛИСТА завершается ненормально.
У кого-нибудь есть яркие идеи?
Я согласен, просто потратил день на это и потратил впустую мое время, это похоже на проблему обратной совместимости, от 2k8 R2 до 2k5 в моем случае.
Заголовки резервных копий в MSSQL2008 отличаются от заголовков в MSSQL2005, что, вероятно, является источником вашей проблемы. Попробуйте экспортировать БД вместо парадигмы резервного копирования и восстановления или настройте MSSQL2008 на своем сервере DEV.
Как говорит Майк Диммик - SQL 2000 не распознает резервные копии SQL 2005 (как Word 2000 не распознает файлы DOCX 2007 года). Поэтому вам придется переносить данные в формате с более низким общим знаменателем, таком как сценарии SQL. Попробуйте Мастер публикации баз данных, который является частью SQL Server Hosting Toolkit, который генерирует один файл SQL для схемы и данных.
Важно проверить, установлен ли у вас SqlExpress (возможно, он установлен, даже не подозревая, что он у вас есть). Очень легко по ошибке войти в SqlExpress, а затем запаниковать, потому что он не позволит вам восстановить базу данных 2008 года. Это, вероятно, очень распространенная причина получения этой ошибки.
Вы можете перемещать резервные копии вперед в семействе SQL Server, то есть с 2000 на 2005 или 2008, но не назад: вы не можете восстановить резервную копию SQL Server 2005 на SQL Server 2000.
Возможно, это проблема с правами доступа, которая препятствует созданию файла при попытке восстановления. Попробуйте создать новую базу данных с тем же именем, которое вы хотите, и затем восстановить поверх нее.
Кроме того, если вы пытаетесь восстановить резервную копию с внешнего жесткого диска или сетевого ресурса, попробуйте скопировать файл резервной копии на локальный компьютер перед попыткой восстановления.
По умолчанию в SQL Server 2005 есть два объекта исследования. Я полагаю, вы пытаетесь использовать объект server / sqlexpress. Попробуйте восстановить на другой.
(С облегчением вздохнул.) Аааа, вот в чем проблема.
У меня SQL Server 2008 SP1 работает на удаленном ПК. Я сделал резервную копию его базы данных, но не смог восстановить локальную копию SQL Server 2008 из файла .bak.
Как говорит [Yini], это было связано с тем, что моя копия SQL Server 2008 открывала мой экземпляр SQL Server 2005 на моем локальном ПК, а не мой экземпляр SQL Server 2008. Genius.
«Семейство носителей на устройстве« D: \ DatabaseBackup_21_02_2011.bak »сформировано неправильно. SQL Server не может обработать это семейство носителей».
Моя резервная копия не была сформирована неправильно. Его просто невозможно восстановить в экземпляр SQL Server 2005 , даже когда я использую SQL Server 2008 с пакетом обновления 1 (SP1).
Используя мастер импорта и экспорта SQL Server, я получаю эту ошибку:
Ошибка 0xc0202009: Поток данных Задача 1: Код ошибки служб SSIS DTS_E_OLEDBERROR.
Произошла ошибка OLE DB. Код ошибки: 0x80004005.
Не удалось выделить новую страницу для базы данных 'database' из-за недостатка места на диске в файловой группе 'PRIMARY'. Создайте необходимое пространство, удалив объекты в файловой группе, добавив дополнительные файлы в файловую группу или установив автоматический рост для существующих файлов в файловой группе.
Какой лучший обходной путь? Эти данные в конечном итоге займет около 60-80 ГБ.
Какую версию SQL Server вы используете? Сколько свободного места доступно на диске (дисках), где хранятся файлы данных для «базы данных»?
Брэндон, SQL SERVER 2012. 760 ГБ свободного места на диске, где хранятся файлы данных для базы данных. Кен, у меня включено автоматическое увеличение, автоматическое увеличение увеличивается на 2500 МБ, а максимальный размер неограничен. Должен ли я все еще сталкиваться с этой проблемой? Возможно ли, что есть несколько автостров, которые необходимо включить?
Может ли быть так, что autogrow работает только между элементами, а ОДНА вставка превышает лимит? Я бы поспорил - если 20000-гигабайтная вставка не срабатывает на 2500-гигабайтном автограве . может быть, есть 900 МБ свободной, и вставка не удалась.
Однажды я столкнулся с этой проблемой у клиента, и мне потребовалось время, чтобы разобраться.
какую версию sql вы используете?
Вы уверены, что это
Не удалось выделить новую страницу для базы данных 'database' из-за недостатка места на диске в файловой группе 'PRIMARY'.
Не удалось выделить новую страницу для базы данных «tempdb» из-за недостатка места на диске в файловой группе «PRIMARY».
Если он [tempdb] находится на отдельном диске, и вы уверены, что у вас достаточно места, я бы пошел дальше и размер файла данных соответствовал ожидаемому размеру конечного состояния:
Также убедитесь, что файл журнала базы данных отделен от файла данных. Если нет, то вы вернулись с конкурирующими событиями роста. Если они находятся на отдельных дисках, то я бы тоже прошел их по размеру.
пока вы не получите желаемый размер файла журнала. Давайте назовем это 80GB, где вы установите свой рост до определенного размера. Я использую значения, рекомендованные Полом Рэндалом и Кимберли Трипп
Читайте также: