Как открыть файл базы данных sql server
Перейти к содержимому

Как открыть файл базы данных sql server

  • автор:

Файлы и файловые группы базы данных

Как минимум, каждая база данных SQL Server имеет два файла операционной системы: файл данных и файл журнала. Файлы данных содержат данные и объекты, такие как таблицы, индексы, хранимые процедуры и представления. Файлы журнала содержат сведения, необходимые для восстановления всех транзакций в базе данных. Файлы данных могут быть объединены в файловые группы для удобства распределения и администрирования.

Файлы базы данных

Базы данных SQL Server имеют три типа файлов, как показано в следующей таблице.

Файл Description
Основной Содержит сведения, необходимые для запуска базы данных, и ссылки на другие файлы в базе данных. В каждой базе данных имеется один первичный файл данных. Для имени первичного файла данных рекомендуется расширение MDF.
Вторичные Необязательные определяемые пользователем файлы данных. Данные могут быть распределены на несколько дисков, в этом случае каждый файл записывается на отдельный диск. Для имени вторичного файла данных рекомендуется расширение NDF.
Журнал транзакций Журнал содержит информацию для восстановления базы данных. Для каждой базы данных должен существовать хотя бы один файл журнала. Для файлов журнала транзакций рекомендуется расширение LDF.

Например, простая база данных с именем Sales включает один первичный файл, содержащий все данные и объекты, и один файл журнала, содержащий сведения журнала транзакций. Более сложная база данных с именем Orders может содержать один первичный файл и пять вторичных файлов. Данные и объекты внутри базы данных распределяются по всем шести файлам, а четыре файла журнала содержат сведения журнала транзакций.

По умолчанию и данные, и журналы транзакций помещаются на один и тот же диск и имеют один и тот же путь для обработки однодисковых систем. Для производственных сред это может быть неоптимальным решением. Рекомендуется помещать данные и файлы журнала на разные диски.

Логические и физические имена файлов

Файлы SQL Server имеют два типа имен файлов:

логическое_имя_файла — имя, используемое для ссылки на физический файл во всех инструкциях Transact-SQL. Логическое имя файла должно соответствовать правилам для идентификаторов SQL Server и быть уникальным среди логических имен файлов в соответствующей базе данных.

имя_файла_ОС — это имя физического файла, включающее путь к каталогу. Оно должно соответствовать правилам для имен файлов операционной системы.

Дополнительные сведения о файле и аргументе NAME FILENAME ALTER DATABASE File and Filegroup Options (Transact-SQL) см. в разделе ALTER DATABASE File and Filegroup Options (Transact-SQL).

Файлы данных и файлы журналов SQL Server могут использоваться как в файловой системе FAT, так и в системе NTFS. В системах Windows рекомендуется использовать файловую систему NTFS по причинам ее большей безопасности.

Файловые группы, доступные как для чтения, так и для записи, а также файлы журналов не поддерживаются со сжатой файловой системой NTFS. В сжатую файловую систему NTFS разрешено помещать лишь доступные только для чтения базы данных и доступные только для чтения вторичные файловые группы. Для экономии места настоятельно рекомендуется использовать сжатие данных вместо сжатия файловой системы.

Если на одном компьютере запущено несколько экземпляров SQL Server, каждый экземпляр получает другой каталог по умолчанию для хранения файлов для баз данных, созданных в экземпляре. Дополнительные сведения см. в разделе Расположение файлов для экземпляра по умолчанию и именованных экземпляров SQL Server.

Страницы файлов данных

Страницы файлов данных SQL Server нумеруются последовательно; первая страница файла получает нулевой номер (0). Каждый файл базы данных имеет уникальный цифровой идентификатор. Чтобы уникальным образом определить страницу базы данных, необходимо использовать как идентификатор файла, так и номер этой страницы. В следующем примере показаны номера страниц базы данных, содержащей первичный файл данных объемом в 4 МБ и вторичный файл данных объемом в 1 МБ.

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

Размер файла

Файлы SQL Server могут автоматически увеличиваться в размерах, превосходя первоначально заданные показатели. При определении файла пользователь может указывать требуемый шаг роста. Каждый раз при заполнении файла его размер увеличивается на указанный шаг роста. Если в файловой группе имеется несколько файлов, их автоматический рост начинается лишь по заполнении всех файлов.

Дополнительные сведения о страницах и их типах см. в разделе Руководство по архитектуре страниц и экстентов.

Кроме того, можно указать максимальный размер каждого файла. Если максимальный размер файла не указан, файл может продолжать увеличиваться в размерах, пока не займет все доступное место на диске. Эта функция особенно полезна, если SQL Server используется в качестве базы данных, внедренной в приложение, где у пользователя нет удобного доступа к системным администраторам. По мере необходимости пользователь может предоставить файлам возможность увеличиваться в размерах автоматически, тем самым снимая с администратора часть забот по наблюдению за свободным пространством базы данных и по распределению дополнительного пространства вручную.

Дополнительные сведения об управлении файлами журнала транзакций см. в разделе Управление размером файла журнала транзакций.

Файлы моментального снимка базы данных

Вид файла, используемый для хранения копируемых во время записи данных моментального снимка базы данных, зависит от того, создается ли моментальный снимок пользователем или используется внутренними механизмами.

  • Данные моментального снимка базы данных, созданного пользователем, хранятся в одном или нескольких разреженных файлах. Технология разреженных файлов является свойством файловой системы NTFS. Изначально разреженный файл не содержит данных пользователя, и место на диске под него не выделяется. Общие сведения об использовании разреженных файлов в моментальных снимках базы данных и о том, как растут моментальные снимки базы данных, см. в разделе Просмотр размера разреженного файла моментального снимка базы данных.
  • Моментальные снимки базы данных могут использоваться внутренними механизмами при выполнении определенных команд DBCC. Эти команды включают DBCC CHECKDB, DBCC CHECKTABLE, DBCC CHECKALLOC и DBCC CHECKFILEGROUP. Внутренним моментальным снимком базы данных используются разреженные дополнительные потоки данных исходных файлов базы данных. Подобно разреженным файлам, дополнительные потоки данных являются свойством файловой системы NTFS. Использование разреженных дополнительных потоков данных позволяет связать несколько расположений данных с одним файлом или папкой, не затрагивая при этом размер файла или статистику тома.

Файловые группы

  • Основная файловая группа содержит первичный файл данных и все вторичные файлы, которые не помещают в другие файловые группы.
  • Пользовательские файловые группы могут создаваться для удобства администрирования, распределения и размещения данных.

Например, Data1.ndf , Data2.ndf и Data3.ndf могут быть созданы на трех дисках соответственно и отнесены к файловой группе fgroup1 . В этом случае можно создать таблицу на основе файловой группы fgroup1 . Запросы данных из таблицы будут распределены по трем дискам, и это улучшит производительность. Подобного улучшения производительности можно достичь и с помощью одного файла, созданного на чередующемся наборе дискового массива RAID. Тем не менее файлы и файловые группы позволяют без труда добавлять новые файлы на новые диски.

Все файлы данных хранятся в файловых группах, перечисленных в следующей таблице.

Файловая группа Description
Основной Файловая группа, содержащая первичный файл. Все системные таблицы являются частью первичной файловой группы.
Данные, оптимизированные для памяти В основе оптимизированной для памяти файловой группы лежит файловая группа файлового потока.
Файловый поток
Пользовательский Любая файловая группа, созданная пользователем при создании или изменении базы данных.

Файловая группа по умолчанию (первичная)

Если в базе данных создаются объекты без указания файловой группы, к которой они относятся, они назначаются файловой группе по умолчанию. В любом случае только одна файловая группа создается как файловая группа по умолчанию. Файлы в файловой группе по умолчанию должны быть достаточно большими, чтобы вмещать новые объекты, не назначенные другим файловым группам.

Файловая группа PRIMARY является группой по умолчанию, если только она не была изменена инструкцией ALTER DATABASE. Системные объекты и таблицы распределяются внутри первичной файловой группы, а не новой файловой группой по умолчанию.

Файловая группа данных, оптимизированных для памяти

Дополнительные сведения об оптимизированных для памяти файловых группах см. в разделе Оптимизированные для памяти файловые группы.

Файловая группа файлового потока

Дополнительные сведения о файловых группах файлового потока см. в статьях FILESTREAM и Создание базы данных с поддержкой FILESTREAM.

Пример файлов и файловых групп

В следующем примере создается база данных на основе экземпляра SQL Server. База данных содержит первичный файл данных, пользовательскую файловую группу и файл журнала. Первичный файл данных входит в состав первичной файловой группы, а пользовательская файловая группа состоит из двух вторичных файлов данных. Инструкция ALTER DATABASE придает пользовательской файловой группе статус файловой группы по умолчанию. Затем создается таблица, определяющая пользовательскую файловую группу. (В этом примере используется универсальный путь к c:\Program Files\Microsoft SQL Server\MSSQL.1 , чтобы не указывать версию SQL Server.)

USE master; GO -- Create the database with the default data -- filegroup, filestream filegroup and a log file. Specify the -- growth increment and the max size for the -- primary data file. CREATE DATABASE MyDB ON PRIMARY ( NAME='MyDB_Primary', FILENAME= 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\MyDB_Prm.mdf', SIZE=4MB, MAXSIZE=10MB, FILEGROWTH=1MB), FILEGROUP MyDB_FG1 ( NAME = 'MyDB_FG1_Dat1', FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\MyDB_FG1_1.ndf', SIZE = 1MB, MAXSIZE=10MB, FILEGROWTH=1MB), ( NAME = 'MyDB_FG1_Dat2', FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\MyDB_FG1_2.ndf', SIZE = 1MB, MAXSIZE=10MB, FILEGROWTH=1MB), FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM ( NAME = 'MyDB_FG_FS', FILENAME = 'c:\Data\filestream1') LOG ON ( NAME='MyDB_log', FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\MyDB.ldf', SIZE=1MB, MAXSIZE=10MB, FILEGROWTH=1MB); GO ALTER DATABASE MyDB MODIFY FILEGROUP MyDB_FG1 DEFAULT; GO -- Create a table in the user-defined filegroup. USE MyDB; CREATE TABLE MyTable ( cola int PRIMARY KEY, colb char(8) ) ON MyDB_FG1; GO -- Create a table in the filestream filegroup CREATE TABLE MyFSTable ( cola int PRIMARY KEY, colb VARBINARY(MAX) FILESTREAM NULL ) GO 

Данная иллюстрация обобщает все вышесказанное (кроме данных файлового потока).

Стратегия заполнения файлов и файловых групп

В файловых группах для каждого файла используется стратегия пропорционального заполнения. Так как данные записываются в файловую группу, ядро СУБД SQL Server записывает количество пропорционально свободному пространству в файле в каждом файле в файловой группе, а не записывает все данные в первый файл до полного. Затем запись производится в следующий файл. Например, если в файле f1 свободно 100 МБ, а в файле f2 — 200 МБ, то в файл f1 записывается одна часть данных, а в файл f2 — две части, и так далее. Таким образом, оба файла будут заполнены примерно в одно и то же время, и достигается простейшее распределение данных между хранилищами.

Например, файловая группа состоит из трех файлов, для всех разрешено автоматическое увеличение. Когда свободное пространство во всех файлах группы закончится, будет расширен только первый файл. Когда заполнится первый файл и в файловую группу снова нельзя будет записывать новые данные, будет расширен второй файл. Когда заполнится второй файл и в файловую группу опять нельзя будет записывать новые данные, будет расширен третий файл. Когда заполнится третий файл и в файловую группу нельзя будет записывать новые данные, будет снова расширен первый файл и т. д.

Правила проектирования файлов и файловых групп

Для файлов и файловых групп действуют следующие правила:

  • файл или файловая группа не могут использоваться несколькими базами данных. Например, файлы sales.mdf и sales.ndf, содержащие данные и объекты базы данных sales, не могут использоваться никакой другой базой данных.
  • файл может быть элементом только одной файловой группы;
  • файлы журнала транзакций не могут входить ни в какие файловые группы.

Рекомендации

Рекомендации при работе с файлами и файловыми группами:

  • Для большинства баз данных достаточно использовать один файл данных и один файл журнала транзакций.
  • При использовании множества файлов данных создайте вторую файловую группу с дополнительным файлом и сделайте ее файловой группой по умолчанию. Тогда в первичном файле будут храниться только системные таблицы и объекты.
  • Чтобы увеличить производительность, по возможности разнесите файлы и файловые группы по нескольким доступным дискам. Объекты, активно конкурирующие за свободное пространство, поместите в разные файловые группы.
  • Используйте файловые группы для целенаправленного размещения объектов на конкретных физических дисках.
  • Помещайте разные таблицы, использующиеся в одних и тех же запросах с соединениями, в разные файловые группы. Этот этап увеличит производительность, так как для поиска соединяемых данных можно будет использовать параллельный ввод-вывод.
  • Часто используемые таблицы и некластеризованные индексы, относящиеся к ним, помещайте в разные файловые группы. Использование разных групп файлов увеличит производительность, так как можно будет использовать параллельный ввод и вывод, если файлы находятся на разных жестких дисках.
  • Не помещайте файлы журнала транзакций на тот же физический диск, где находятся другие файлы и файловые группы.
  • Если необходимо расширить том или секцию, в которой находятся файлы базы данных с помощью таких средств, как Diskpart, необходимо сначала создать резервную копию всех системных и пользовательских баз данных и остановить службы SQL Server. Кроме того, после успешного расширения томов дисков рекомендуется выполнить команду DBCC CHECKDB , чтобы обеспечить физическую целостность всех баз данных в томе.

Дополнительные рекомендации по управлению файлами журнала транзакций см. в разделе Управление размером файла журнала транзакций.

Присоединение базы данных

В этой статье описывается, как подключить базу данных в SQL Server с SQL Server Management Studio или Transact-SQL. Эту функцию можно использовать для копирования, перемещения или обновления базы данных SQL Server.

ограничения

Предварительные условия

Прежде чем продолжить, ознакомьтесь со следующими предварительными требованиями:

  • Если вы перемещаете базу данных из одного экземпляра в другой, ее необходимо сначала отсоединить от любого существующего экземпляра SQL. Попытка присоединить неотсоединенную базу данных приведет к возникновению ошибки. Дополнительные сведения см. в разделе Отсоединение базы данных.
  • При присоединении базы данных должны быть доступны все ее файлы данных. Они часто имеют расширения .MDF или .NDF (файлы данных), а также .LDF (файлы журнала транзакций). Кроме того, должны присутствовать и быть доступными все файловые группы для данных FILESTREAM. Дополнительные сведения о присоединении базы данных с поддержкой FILESTREAM см. в статье Перемещение базы данных с поддержкой FILESTREAM.
  • Если у какого-либо файла данных путь отличается от того, каким он был при первом создании или последнем присоединении, необходимо указать текущий путь к файлу.
  • Учетная запись службы ядра СУБД должна обладать разрешениями на чтение файлов в их новом расположении.
  • Если MDF-файлы и LDF-файлы находятся в разных каталогах и один из путей содержит \\?\GlobalRoot , при присоединении базы данных произойдет сбой.

Для чего использовать присоединение?

При перемещении файлов базы данных в пределах одного экземпляра рекомендуется использовать запланированное перемещение ALTER DATABASE вместо отсоединения и присоединения. Дополнительные сведения см. в статье Move User Databases.

Не рекомендуется использовать отсоединение и присоединение для резервного копирования и восстановления. При отсоединении файлов для внешнего резервного копирования из SQL Server резервные копии журналов транзакций или восстановление до точки во времени будут недоступны.

Безопасность

Разрешения на доступ к файлам устанавливаются во время ряда операций с базами данных, включая их отсоединение и присоединение. При присоединении и отсоединении базы данных ядро СУБД пытается олицетворить учетную запись Windows работающего подключения, чтобы предоставить учетной записи разрешения для доступа к файлам базы данных и журналов. Для учетных записей со смешанным режимом безопасности, использующих учетные данные SQL Server, олицетворение может завершиться сбоем.

В следующей таблице перечислены разрешения файлов базы данных и журналов после завершения присоединения или отсоединения, а также указано, может ли ядро СУБД олицетворить подключающуюся учетную запись.

Операция Подключение учетной записи можно олицетворить Разрешения на файлы предоставляются
Detach Да Только учетная запись, выполняющая операцию. Администратор операционной системы может добавить дополнительные учетные записи, если они понадобятся после отсоединения базы данных.
Detach No Учетной записи службы SQL Server (MSSQLSERVER) и членам локальной группы администраторов Windows.
Attach Да Учетной записи службы SQL Server (MSSQLSERVER) и членам локальной группы администраторов Windows.
Attach No Учетной записи службы SQL Server (MSSQLSERVER).

Дополнительные сведения о разрешениях файловой системы, предоставляемых идентификаторам безопасности служб для SQL Server, см. в статье Настройка разрешений файловой системы для доступа к ядру СУБД.

Не рекомендуется подключать или восстанавливать базы данных, полученные из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код. Дополнительные сведения о присоединении баз данных и сведения об изменениях, вносимых при присоединении баз данных в метаданные, см. в статье Присоединение и отсоединение базы данных (SQL Server).

Разрешения

Требуется разрешение CREATE DATABASE , CREATE ANY DATABASE или ALTER ANY DATABASE .

Использование SQL Server Management Studio (SSMS)

Перед перемещением базы данных

Если вы перемещаете базу данных, перед ее отсоединением от существующего экземпляра SQL Server просмотрите связанные с ней файлы и их текущее расположение на странице Свойства базы данных.

  1. В обозревателе объектов SQL Server Management Studio подключитесь к экземпляру ядра СУБД SQL Server, а затем разверните экземпляр.
  2. Раскройте список Базы данныхи выберите имя пользовательской базы данных, которую необходимо отсоединить.
  3. Щелкните правой кнопкой мыши имя базы данных и выберите Свойства. Выберите страницу Файлы и просмотрите записи в таблице Файлы базы данных.

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

Присоединение базы данных

  1. В обозревателе объектов SQL Server Management Studio подключитесь к экземпляру ядра СУБД SQL Server, а затем выберите, чтобы развернуть это представление экземпляра в SSMS.
  2. Щелкните правой кнопкой мыши узел Базы данных и выберите Присоединить.
  3. В диалоговом окне Присоединение базы данных выберите Добавить, чтобы указать присоединяемую базу данных. В диалоговом окне Поиск файлов базы данных выберите расположение базы данных и разверните дерево каталогов, чтобы найти и выбрать ее MDF-файл, например: C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\AdventureWorks2022_Data.mdf

Внимание При попытке выбора базы данных, которая уже присоединена, возникает ошибка.

Базы данных для присоединения
Отобразятся сведения о выбранных базах данных.
Отображается значок, указывающий на состояние операции присоединения. Возможные варианты значков перечислены в описании Состояние ниже. Расположение файла MDF
Отображается путь и имя выбранного MDF-файла. Имя базы данных
Отображается имя базы данных. Присоединить как
Необязательный параметр, указывает другое имя, под которым присоединяется база данных. Ответственное лицо
Содержит раскрывающийся список возможных владельцев базы данных, из которого при необходимости можно выбрать другого владельца. Состояние
Отображает состояние базы данных в соответствии со следующей таблицей:

Значок Текст состояния Description
(Нет значка) (Нет текста) Присоединение не начато или находится в режиме ожидания для этого объекта. Это состояние по умолчанию при открытии диалогового окна.
Зеленый, указывающий направо треугольник В процессе Операция присоединения была запущена, но не завершена.
Зеленый флажок Удачное завершение Объект успешно присоединен.
Красный кружок с белым крестом внутри Ошибка При выполнении операции присоединения возникла ошибка, и операция не была успешно завершена.
Кружок с двумя черными квадратами (слева и справа) и двумя белыми квадратами (сверху и снизу) Остановлено Присоединение не было завершено, поскольку вы остановили его выполнение.
Кружок, содержащий изогнутую стрелку, указывающую в направлении против часовой стрелки Выполнен откат Операция присоединения была успешной, но был выполнен ее откат из-за ошибки, возникшей при вложении другого объекта.

Сообщение
Отображается пустое сообщение или гиперссылка «Файл не найден». Прибавить
Найдите необходимые основные файлы базы данных. Когда вы выбираете MDF-файл, необходимые сведения автоматически вводятся в соответствующие поля сетки Базы данных для присоединения. Удалить
Удаляет выбранный файл из сетки Базы данных для присоединения . Сведения о базе данных «
Отображаются имена файлов, которые необходимо присоединить. Чтобы проверить или изменить путь к файлу, нажмите кнопку Обзор ().

Заметка Если файл не существует, в столбце сообщения отображается сообщение «Не найдено». Если файл журнала не найден, он существует в другом каталоге или удален. Необходимо или обновить путь файла в сетке Сведения о базе данных таким образом, чтобы этот путь указывал на правильное расположение, или удалить файл журнала из сетки. Если MDF-файл не найден, необходимо обновить путь этого файла в сетке таким образом, чтобы этот путь указывал на правильное расположение.

Использование Transact-SQL

Перед перемещением базы данных

Если вы перемещаете базу данных, перед ее отсоединением от существующего экземпляра SQL Server просмотрите связанные с ней файлы и их текущее расположение в представлении системного каталога sys.database_files . Для получения дополнительной информации см. sys.database_files (Transact-SQL).

  1. В СРЕДЕ SQL Server Management Studio выберите новый запрос , чтобы открыть редактор запросов.
  2. Скопируйте следующий скрипт Transact-SQL в редактор запросов и нажмите кнопку «Выполнить«. Этот скрипт показывает расположение физических файлов базы данных. Убедитесь, что при перемещении базы данных путем отсоединения и присоединения вы проверили все файлы.

USE [database_name] GO SELECT type_desc, name, physical_name from sys.database_files; 

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

Присоединение базы данных

  1. Соединитесь с ядром СУБД .
  2. На стандартной панели выберите пункт Создать запрос.
  3. Выполните инструкцию CREATE DATABASE с предложением FOR ATTACH . Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. Этот пример присоединяет все файлы базы данных AdventureWorks2022 и переименовывает базу данных MyAdventureWorks в .
CREATE DATABASE MyAdventureWorks ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'), (FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf') FOR ATTACH; 

Если в вашей базе данных содержатся дополнительные файлы данных (чаще всего .MDF или .NDF), их необходимо включить в инструкцию CREATE DATABASE . FOR ATTACH . Кроме того, в инструкцию также следует включить все файловые группы для данных FILESTREAM. Дополнительные сведения о присоединении базы данных с поддержкой FILESTREAM см. в статье Перемещение базы данных с поддержкой FILESTREAM.

Заметка Кроме того, можно вызвать хранимую процедуру sp_attach_db или sp_attach_single_file_db . Однако эти процедуры будут удалены в будущей версии Microsoft SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого рекомендуется использовать CREATE DATABASE . FOR ATTACH .

После обновления базы данных SQL Server

Уровень совместимости базы данных

После обновления базы данных с помощью присоединения она становится доступной. База данных автоматически обновится до уровня внутренней версии нового экземпляра. Если база данных содержит полнотекстовые индексы, то в процессе обновления будет произведен их импорт, сброс или перестроение в зависимости от установленного значения свойства сервера Режим обновления полнотекстового каталога . Если выбран режим обновления Импортировать или Перестроить, полнотекстовые индексы будут недоступны во время обновления. В зависимости от объема индексируемых данных импорт может занять несколько часов, а перестроение — в несколько (до 10) раз больше. Обратите внимание, что если при обновлении выбран режим Импортировать, а полнотекстовый каталог недоступен, то связанные с ним полнотекстовые индексы будут перестроены.

После обновления уровень совместимости базы данных останется неизменным, если только он не является в новой версии неподдерживаемым. В последнем случае обновленный уровень совместимости базы данных устанавливается как самый низкий из поддерживаемых. Например, если вы подключаете базу данных, которая была уровнем совместимости 90 перед присоединением к экземпляру SQL Server 2019 (15.x), после обновления уровня совместимости установлено значение 100, что является самым низким поддерживаемым уровнем совместимости в SQL Server 2019 (15.x). Дополнительные сведения см. в разделе Уровень совместимости ALTER DATABASE (Transact-SQL).

Система отслеживания измененных данных (CDC)

Если вы подключаете базу данных из экземпляра SQL Server 2014 (12.x) или более ранней версии, включив запись измененных данных (CDC), необходимо выполнить следующую команду, чтобы обновить метаданные отслеживания измененных данных (CDC):

USE EXEC sys.sp_cdc_vupgrade 

См. также

  • Отсоединение базы данных и подключение (SQL Server)
  • Отсоединение базы данных
  • CREATE DATABASE (SQL Server Transact-SQL)
  • Настройка разрешений файловой системы для доступа к компоненту ядра СУБД

Вопросы-Ответы-Wiki-SQL Server

Существует два способа сохранить данные, которые были получены с помощью программы Recovery Toolbox for SQL Server:

  1. Вы можете сохранить SQL скрипты на жесткий диск, они создадут объекты баз данных, например таблицы и поместить данные в эти таблицы.
  2. Вы также можете запустить скрипты в базах данных, определяемых пользователями, эти скрипты написаны на языке SQL.

Пожалуйста обратите внимание, что SQL скрипты различаются, несмотря на тот факт, что они основываются на тех же самых файлах базы данных. Это происходит из-за особенностей синтаксиса как в запросах, которые выполняются при прямом соединении с сервером с помощью ADO, так и в SQL запросах, выполняемых в среде Query Analyzer’а, которая поставляется вместе с MS SQL Server (использование «:», команды Go и т.д.). Первый способ более надежен, что же касается второго способа, он более удобен.

Конвертация данных в скрипты и сохранение их на диск

1. Отображение сохраненных данных

Если вы выбрали сохранение данных на диск, Recovery Toolbox for SQL Server создаст подкаталог, включающий название исходного MDF файла, этот подкаталог создается в каталоге, указанном пользователем, все скрипты будут помещены туда. Все скрипты создаются в соответствии с правилом, названия состоят из слова и цифры. Слово означает роль скрипта, цифра указывает на его номер. Существует множество типов скриптов, например:

  • Types*.sql – это скрипты, которые создают типы данных, определяемые пользователем.
  • Tables*.sql – скрипты, которые создают таблицы.
  • Indexes*.sql – скрипты, которые создают первичные ключи и индексы.
  • ForeignKeys*.sql – скрипты, которые создают вторичные ключи.
  • Procedure*.sql – скрипты, которые создают хранимые процедуры.
  • Function*.sql – скрипты, которые создают функции, определяемые пользователями.
  • View*.sql – скрипты, которые создают просмотры.
  • Triggers*.sql – скрипты, которые создают триггеры.
  • Data*.sql – скрипты, которые заполняют таблицы данными.

Порядковый номер скрипта не содержит никаких полезных данных, а также не указывает на последовательность выполнения скриптов или какую-либо другую информацию. Эти номера используются только для того, чтобы разделять данные и сохранять их во множество небольших документов, вместо одного большого файла. Пользователи могут определить максимальный размер файла с SQL скриптом. Кроме того, пользователям стоит обратить внимание на нумерацию Data файлов. Необходимо отметить, что каждый файл Data типа может включать данные только одной таблицы. Файлы с последовательными номерами содержат все данные для каждой из таблиц.

Внимание: Если в некоторых файлах отсутствуют номера, это означает, что некоторые таблицы не содержат никаких данных.

2. Последовательность исполнения скриптов

На этом рисунке вы можете видеть рекомендуемую последовательность исполнения:

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

  1. Пожалуйста, укажите соответствующий первичный ключ, если вы хотите создать вторичный. За счет этого, эти операции сохраняются в различные файлы, которые нужно запустить в этой последовательности.
  2. Перед созданием индексов и вторичных ключей программа заполняет таблицы. Это необходимо, так как проверка ссылочной целостности выполняется при заполнении таблицы, в которой определен вторичный ключ. Когда таблицы с вторичными ключами заполняются до таблиц с соответствующими первичными ключами, возникает ошибка. Помимо этого, данный способ обладает другой особенностью. Если восстановленная информация конфликтует с первичным ключом, уникальным индексом, и т.д., то в этом случае таблица в любом случае будет заполнена, но тогда ограничения не будут созданы (индекс, первичный ключ и т.д.). Если пользователям необходимо другое поведение, они могут сами выбрать последовательность запуска скриптов.
  3. Создание в базе данных таких объектов, как Procedures, Functions, Views, Triggers, отличается некоторыми трудностями потому, что эти объекты могут обладать запутанными и сложными зависимостями. Procedure может ссылаться на другие объекты Procedure, View может ссылаться на Function, а Trigger может ссылаться на все объекты. Поэтому программа не может помочь распутать этот клубок. Пользователям нужно вручную найти все зависимости и запустить SQL в нужной последовательности. Другая возможность состоит в запуске всех скриптов этой группы несколько раз, пока сообщения об ошибке не пропадут.

Файл install.bat создается для того, чтобы обеспечить автоматическое выполнение всех скриптов. Этот файл исполняет все скрипты, которые были ранее сохранены с помощью этой программы. Последовательность исполнения скриптов будет такой же, как и при выполнении скриптов на базе данных. Этот пакетный файл требует наличия установленной утилиты isqlw, которая входит в состав клиентской части MS SQL Server. Пожалуйста укажите такие параметры, как Имя сервера, Имя базы данных, Имя пользователя, Пароль в командной строке. Например: install.bat SQLServer SQLDatabase SQLUser SQLUserPassword

  1. Параметры нужно указывать через пробел. Если какой-либо из параметров сам содержит пробел, вам нужно указать его в двойных кавычках.
  2. Нельзя менять местами параметры.
  3. Если же файл install.bat будет запущен без указания параметров, вы увидите небольшую инструкцию, как запускать этот файл.

Если Вы используйте авторизацию в Microsoft SQL Server с помощью учетной записи Windows, то используйте файл InstallTrusted.bat. Файл InstallTrusted.bat имеет два параметра: Server name, Database name.

Как восстановить базу данных, состоящую из нескольких исходных файлов данных?

Восстановление базы данных формата MS SQL Server из нескольких источников

База данных формата MS SQL Server включает один или несколько файлов. Существует несколько типов файлов: основной файл данных (с расширением mdf), дополнительный файл данных (с расширением ndf) и лог транзакций (с расширением ldf). Если Вы хотите восстановить данные с помощью Recovery Toolbox for SQL Server, Вам нужно указать путь ко всем дополнительным файлам данных, равно как и к основному файлу. Это может быть сделано с помощью диалога Open File (открыть файл). Если ваша база данных включает только основной файл данных и лог(и) транзакций, то нужно выбрать только основной файл данных (см рис.1).

Если поврежденная база данных включает основной файл данных, дополнительный (или дополнительные) файлы, данных и лог(и) транзакций, Вам следует выбрать основной файл данных формата .mdf и все дополнительные файлы данных формата .ndf (см рис.2).

При работе программы появляется сообщение о недостатке Физической памяти (Physical Memory)

Для восстановления баз данных MS SQL Server с большим размером требуется значительное кол-во оперативной памяти. Разработчиками программы рекомендуется восстанавливать большие базы данных на компьютерах с достаточным количеством свободной Физической памяти (Physical Memory). Размер физической памяти (Physical Memory), используемой программой, должен быть не меньше размера, восстанавливаемого файла деленного на 500, плюс 20-100 Мб дополнительной памяти для работы программы. Т.е. если Вы пытаетесь восстановить .mdf файл размером 100 Гб, то на компьютере должно как минимум (100 Гб / 500) + 120 Мб = 320Мб свободной Физической памяти (Physical Memory).

При предварительном просмотре в программе Recovery Toolbox for MS SQL Server я вижу восстановленные данные, процедуры, представления (view) и прочее, но после выполнения сохраненных скриптов эти данные не отображаются в базе данных Microsoft SQL Server

Для исправления этой проблемы необходимо:

  1. Сохранить данные в виде скриптов
  2. Запустить файл install.bat со всеми необходимыми параметрами в командной строке
  3. Проверить по ответным файлам ( *. sql.txt), какие из скриптов не были успешно выполнены
  4. Загрузить скрипты выполненные с ошибками в Query analyzer от Microsoft SQL Server и попытаться выполнить их там. После получения сообщения об ошибке необходимо выявить, какая команда вызывает эту ошибку. Если эта команда записывает данные, не имеющие ни какой ценности, то ее можно просто удалить из файла. В противном случае необходимо выслать разработчикам скрипт, выполняемый с ошибками, и скриншот с ошибкой из Query analyzer. Кроме того возможно впоследствии необходимо будет отправить исходный *.mdf файл разработчикам для исследования проблемы.
При восстановлении данных с помощью программы Recovery Toolbox for SQL Server появляются избыточные или некорректные значения в полях Primary Key
  • Если значение поля Primary Key некорректно, например имеет отрицательное значение или на несколько порядков превышает все остальные значения, то следовательно исходные данные были очень сильно повреждены и полное восстановление данных невозможно
  • Если в полях, являющихся Primary Key, появляются дублирующие значения, то значить программа восстановила страницы с данными, которые должны были быть помечены в базе данных (файлы mdf, ndf) для удаления. Но реально признака того, что страница с данными должна быть удалена нет. И как следствие программа восстанавливает все данные со всех страниц. Это приводит к избыточности восстановленных данных и разработчики программы Recovery Toolbox for SQL Server не смогли подобрать критерии для отсева лишних записей. Окончательное решение о том, какие из избыточных записей в восстановленной базе данных должны быть удалены в этой ситуации ложится на администраторов баз данных и/или разработчиков приложений.
Программа Recovery Toolbox for SQL Server нуждается в утилите isqlw.exe для импорта сохраненных скриптов в базу данных. Но у меня ее нет, т.к. я пользуюсь SQL Express 2005 (SQL Express 2000). Как мне импортировать восстановленные данные в базу данных?

Утилита isqlw.exe является частью (компонентой) пакета MS SQL Server. Вы всегда можете скачать последнюю версию MS SQL Server с сайта Microsoft и установить необходимые Вам компоненты на компьютер. Демонстрационная версия MS SQL Server, скачанная с сайта Microsoft, позволяет Вам использовать компоненты в течение периода, указанного EULA.

Если Вы не можете найти соответствующие утилиты на сайте Microsoft.com, то Вы можете скачать и установить Query Analyzer с нашего сайта. Ссылка для скачивания: https://recoverytoolbox.com/download/isqlwInstall.exe.

В этот раз я могу сохранить результат, но все таблицы пустые, и я не могу видеть какую-либо информацию в них

Это возможно, если в период между использованием демо-версии программы и покупкой что-то произошло с вашим MDF файлом, например, Вы пытались использовать другое программное обеспечение для восстановления данных.

При импорте скриптов в SQL SERVER 2000 возникла ошибка конверсии данных в формат datetime

Если при выполнении скриптов появилась вот такая ошибка:

Server: Msg 242, Level 16, State 3, Line 1

[Microsoft][ODBC SQL Server Driver][SQL Server] Преобразование типа данных char в тип данных datetime выдало значения времени и даты вне корректного диапазона.

Заявленное действие было прекращено.

Это значит, что необходимо изменить языковые настройки сервера. Для этого необходимо сделать следующее:

  1. Запускаем Enterprise Manager.
  2. Выбираем и подключаемся к нужному нам серверу.
  3. Открываем его свойства нажатием правой кнопки мыши и выбираем пункт Properties.
  4. Далее выбираем закладку Server settings.
  5. В графе Default Language for user выбираем English, нажимаем кнопку OK.
  6. Останавливаем SQL server. Для этого в контекстном меню выбираем Stop, на всплывающий вопрос Are you sure you wish to stop SQL Server service… отвечаем Yes.
  7. Запускаем SQL Server. Для этого в контекстном меню выбираем Start.
  8. Теперь можно выполнить скрипт, сохраненный на диске с помощью программы Recovery Toolbox for SQL Server. Или можно запустить саму программу в режиме исполнения скриптов в базе данных.
  9. Теперь нужно вернуть все настройки назад. Для этого в Enterprise Manager открываем свойства интересующего нас сервера.
  10. В графе Default Language for user выбираем исходный язык по умолчанию, нажимаем кнопку OK.
  11. Останавливаем SQL server. Для этого в контекстном меню выбираем Stop, на всплывающий вопрос Are you sure you wish to stop SQL Server service… отвечаем Yes.
  12. Запускаем SQL Server. Для этого в контекстном меню выбираем Start.
При импорте скриптов в SQL SERVER 2005 возникла ошибка конверсии данных в формат datetime

Если при выполнении скриптов появилась вот такая ошибка:

Server: Msg 242, Level 16, State 3, Line 1

[Microsoft][ODBC SQL Server Driver][SQL Server] Преобразование типа данных char в тип данных datetime выдало значения времени и даты вне корректного диапазона.

Заявленное действие было прекращено.

Это значит, что необходимо изменить языковые настройки сервера. Для этого необходимо сделать следующее:

  1. Запускаем Management Studio.
  2. Выбираем нужный нам сервер.
  3. Заходим Security\Logins.
  4. Выбираем пользователя, который будет загружать базу данных, открываем его свойства.
  5. В графе Default Language for user выбираем English, нажимаем кнопку OK.
  6. Теперь можно выполнить скрипт, сохраненный на диске с помощью программы Recovery Toolbox for SQL Server. Или можно запустить саму программу в режиме исполнения скриптов в базе данных.
  7. Теперь нужно вернуть все настройки назад. Для этого в Management Studio открываем свойства интересующего нас пользователя.
  8. В графе Default Language for user выбираем исходный язык, нажимаем кнопку OK.
После восстановления базы данных MSDB на новом сервере DTS Packages не открываются и не запускаются

Простое копирование или восстановление таблиц данных из базы MSDB на новый сервер не позволяет восстановить DTS Packages потому, что они имеют внутренние связи со средой выполнения сервера, на котором они были созданы и на котором они ранее использовались. Для копирования DTS Packages между серверами необходимо использовать VB Scripts. Соответственно программа Recovery Toolbox for SQL Server не предназначена для восстановления DTS Packages.

Что использовать для импорта данных в MS SQL Server: sqlcmd или isqlw?

Программа Recovery Toolbox for SQL Server автоматически определяет версию сервера, на которой использовалась база данных. Соответственно если база данных использовалась на MS SQL Server 2000, то для импорта в новую базу данных программа записывает в сохраненные скрипты утилиту isqlw. Если база данных использовалась на MS SQL Server 2005 и выше, то в скриптах используется утилита sqlcmd. При импорте данных в новую базу данных на сервер с версией, отличной от оригинальной, надо использовать утилиту для соответствующего сервера:

  • Isqlw – для MS SQL Server 2000
  • Sqlcmd – для MS SQL Server 2005 и выше
Как подключить MDF, LDF файлы к серверу?
  1. Запустите SQL Server Management Studio
  2. Кликните Присоединить
  3. В обозревателе объектов кликните правой кнопкой мыши в области баз данных
  4. Кликните Присоединить
  5. Кликните кнопку Добавить
  6. Выберите MDF файл и нажмите кнопку ОК
  7. Кликните кнопку ОК
  8. Подождите пока операция завершится.
Может ли Recovery Toolbox for SQL Server восстановить данные после вирусной атаки шифровальщиком вымогателем?

Программа Recovery Toolbox for SQL Server может частично или полностью восстановить информацию из .MDF/.NDF файлов баз данных Microsoft SQL Server зашифрованных вирусными программами шифровальщиками (ransomware).

Recovery Toolbox for SQL Server не производит дешифрование данных. Вообще, как показала практика, дешифрование данных неприменимо в этих случаях.

Но Recovery Toolbox for SQL Server может быть полезен в случаях, когда MDF файл был зашифрован частично. Обычно вирусы шифруют только заголовок и/или начало файлов по причине их большого размера. В этих случаях, если был зашифрован только заголовок .mdf файла или часть MDF файла, Recovery Toolbox for SQL Server может помочь. Утилита проанализирует все имеющиеся в файле блоки с данными, произведет анализ собранной структуры данных в файле. И далее воссоздаст исходную структуру данных и собственно данные, если это возможно.

Структура MDF файла Microsoft SQL Server

Можно ли восстановить данные из MDF файла после вируса вымогателя (ransomware)?

Нет никакой гарантии, что с помощью утилиты можно восстановить 100% данных или какую-то часть данных. Для точного ответа на этот вопрос необходимо скачать ДЕМО версию Recovery Toolbox for SQL Server, указать программе зашифрованный MDF файл и дождаться окончания анализа файла. По завершению анализа .mdf файла в ДЕМО версии программы доступен полный предпросмотр данных, которые возможно извлечь из файла.

Примечание:

Отдел технической поддержки клиентов компании Recovery Toolbox информирует, что обычно программы вымогатели шифруют только заголовок файла базы данных из-за его большого размера. Как следствие очень часто удается восстановить почти всю структуру данных и почти всю информацию из исходного файла.

Copyright © 2003 — 2022 Recovery Toolbox. Все права зарегистрированы. Microsoft®, Windows® и Outlook® являются зарегистрированными торговыми марками Microsoft® Corporation.

Чем открыть файл mdf базу данных microsoft sql server?

Подскажите, пожалуйста, как отрыть файл mdf и возможно вытянуть оттуда данные в формате Exel или csv?

  • Вопрос задан более трёх лет назад
  • 19692 просмотра

Комментировать

Решения вопроса 1

kynisa

I just press buttons.

Открыть :
1) Установить Microsoft SQL Server Management Studio
2) Выполнить там :

EXEC sp_attach_db @dbname = N'', @filename1 = N''

Экспортировать в разные форматы(включая Exel и CSV) умеет EMS Data Export for SQL Server.

Ответ написан более трёх лет назад

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *