Mdf и ldf как подключить

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

Предварительные требования Prerequisites

Базу данных сначала необходимо отсоединить. The database must first be detached. Попытка присоединить базу данных, которая не была отсоединена, приведет к возникновению ошибки. Attempting to attach a database that has not been detached will return an error. Дополнительные сведения см. в разделе Отсоединение базы данных. For more information, see Detach a Database.

При присоединении базы данных должны быть доступны все файлы данных (файлы MDF и LDF). When you attach a database, all data files (MDF and LDF files) must be available. Если у какого-либо файла данных путь отличается от того, каким он был при первом создании или последнем присоединении, необходимо указать текущий путь к файлу. If any data file has a different path from when the database was first created or last attached, you must specify the current path of the file.

Если при присоединении базы данных файлы MDF и LDF находятся в разных каталогах, а один из путей содержит \\?\GlobalRoot, операция завершается ошибкой. When you attach a database, if MDF and LDF files are located in different directories and one of the paths includes \\?\GlobalRoot, the operation will fail.

Для чего использовать присоединение? Is Attach the best choice?

Мы не рекомендуем использовать отсоединение и присоединение для резервного копирования и восстановления, We don’t recommend using detach and attach for Backup and Recovery. так как резервные копии журналов транзакций отсутствуют, а файлы могут быть случайно удалены. There are no transaction log backups, and it’s possible to accidentally delete files.

безопасность Security

Разрешения на доступ к файлам устанавливаются во время выполнения определенных операций с базами данных, включая отсоединение и присоединение баз данных. File access permissions are set during a number of database operations, including detaching or attaching a database. Дополнительные сведения о разрешениях на доступ к файлам, настраиваемых при отсоединении и присоединении базы данных см. в разделе Защита данных и файлов журналов электронной документации по SQL Server 2008 R2 SQL Server 2008 R2 (документация актуальна). For information about file permissions that are set whenever a database is detached and attached, see Securing Data and Log Files from SQL Server 2008 R2 SQL Server 2008 R2 Books Online (Still a valid read!)

Не рекомендуется подключать или восстанавливать базы данных, полученные из неизвестных или ненадежных источников. We recommend that you do not attach or restore databases from unknown or untrusted sources. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Such databases could contain malicious code that might execute unintended Transact-SQL Transact-SQL code or cause errors by modifying the schema or the physical database structure. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код. Before you use a database from an unknown or untrusted source, run DBCC CHECKDB on the database on a nonproduction server and also examine the code, such as stored procedures or other user-defined code, in the database. Дополнительные сведения о присоединении баз данных и сведения об изменениях, вносимых при присоединении баз данных в метаданные, см. в статье Присоединение и отсоединение базы данных (SQL Server). For more information about attaching databases and information about changes that are made to metadata when you attach a database, see Database Detach and Attach (SQL Server).

READ  Как подключить к ноутбуку камеру слежения

Permissions Permissions

Использование среды SQL Server Management Studio Using SQL Server Management Studio

Присоединение базы данных To Attach a Database

Щелкните правой кнопкой мыши узел Базы данных и выберите команду Присоединить. Right-click Databases and click Attach.

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\AdventureWorks2012_Data.mdf

При попытке выбора базы данных, которая уже присоединена, возникает ошибка. Trying to select a database that is already attached generates an error.

Базы данных для присоединения Databases to attach
Отобразятся сведения о выбранных базах данных. Displays information about the selected databases.

Расположение файла MDF MDF File Location
Отображается путь и имя выбранного MDF-файла. Displays the path and file name of the selected MDF file.

Имя базы данных Database Name
Отображается имя базы данных. Displays the name of the database.

Присоединить как Attach As
Необязательный параметр, указывает другое имя, под которым присоединяется база данных. Optionally, specifies a different name for the database to attach as.

Владелец Owner
Содержит раскрывающийся список возможных владельцев базы данных, из которого при необходимости можно выбрать другого владельца. Provides a drop-down list of possible database owners from which you can optionally select a different owner.

Состояние Status
Отображается состояние базы данных в соответствии со следующей таблицей. Displays the status of the database according to the following table.

Значок Icon Текст состояния Status text Описание Description
(Нет значка) (No icon) (Нет текста) (No text) Операция присоединения не была запущена или находится в режиме ожидания для этого объекта. Attach operation has not been started or may be pending for this object. Это состояние по умолчанию при открытии диалогового окна. This is the default when the dialog is opened.
Зеленый, указывающий направо треугольник Green, right-pointing triangle Выполняется In progress Операция присоединения была запущена, но не завершена. Attach operation has been started but it is not complete.
Зеленый флажок Green check mark Успешно Success Объект успешно присоединен. The object has been attached successfully.
Красный кружок с белым крестом внутри Red circle containing a white cross Error Error При выполнении операции присоединения возникла ошибка, и операция не была успешно завершена. Attach operation encountered an error and did not complete successfully.
Кружок с двумя черными квадратами (слева и справа) и двумя белыми квадратами (сверху и снизу) Circle containing two black quadrants (on left and right) and two white quadrants (on top and bottom) Остановлена Stopped Операция присоединения не была успешно завершена, т.к. пользователь остановил операцию. Attach operation was not completed successfully because the user stopped the operation.
Кружок, содержащий изогнутую стрелку, указывающую в направлении против часовой стрелки Circle containing a curved arrow pointing counter-clockwise Выполнен откат Rolled Back Операция присоединения была успешной, но был выполнен ее откат из-за ошибки, возникшей при вложении другого объекта. Attach operation was successful but it has been rolled back due to an error during attachment of another object.

Сообщение Message
Отображается пустое сообщение или гиперссылка «Файл не найден». Displays either a blank message or a «File not found» hyperlink.

Сведения о базе данных « « « » database details
Отображаются имена файлов, которые необходимо присоединить. Displays the names of the files to be attached. Чтобы проверить или изменить путь к файлу, нажмите кнопку Обзор ( . ). To verify or change the pathname of a file, click the Browse button (. ).

Имя исходного файла Original File Name
Отображается имя присоединенного файла, принадлежащего базе данных. Displays the name of the attached file belonging to the database.

Тип файла File Type
Указывается тип файла: Данные или Журнал. Indicates the type of file, Data or Log.

Текущий путь к файлу Current File Path
Отображается путь к выбранному файлу базы данных. Displays the path to the selected database file. Путь может быть изменен вручную. The path can be edited manually.

Сообщение Message
Отображается пустое сообщение или гиперссылка «Файл не найден«. Displays either a blank message or a «File not found» hyperlink.

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

Присоединение базы данных To attach a database

На панели «Стандартная» нажмите Создать запрос. From the Standard bar, click New Query.

Дальнейшие действия. После обновления базы данных SQL Server Follow Up: After Upgrading a SQL Server Database

Для подключения базы данных из экземпляра под управлением SQL Server 2014 (12.x) SQL Server 2014 (12.x) или более ранней версии, в которой включена система отслеживания измененных данных (CDC), потребуется также выполнить следующую команду, чтобы обновить метаданные системы отслеживания измененных данных (CDC). If you are attaching a database from an instance running SQL Server 2014 (12.x) SQL Server 2014 (12.x) or below which had Change Data Capture (CDC) enabled, you will also need to execute the command below to upgrade the Change Data Capture (CDC) metadata.

Источник

Восстановление базы 1С под SQL-Server

Иногда приходится столкнуться с ситуацией, когда плоды многолетней работы, находящиеся в SQL-базе данных оказываются под угрозой. Эта статья о том, как не допустить потерю данных, а в случае, если это всё-таки произошло, как восстановить данные из того, что осталось от некогда нормальной базы.

Итак, приступим. Ситуация следующая: имеется сервер с запущенной на нем 1С+SQL. Во время работы SQL базы рубанули питание. Результат плачевный: база находится в состоянии suspect, и когда 1с пытается к ней зацепиться, выдается ошибка, что мол соединиться невозможно т.к. база помечена suspect for recovery. Этот режим в принципе означает, что MSSQL Server попытается восстановить базу своими средствами. Я не стал ни чего трогать и оставил все на ночь, в надежде, что к утру база восстановится, но и утром было то же самое, и к базе, стало быть, ни как не подобраться. Backup по закону подлости имеется, но он трехдневной давности, плюс имеется куча документов которые проводятся лишь по базе, а по бумажным документам их нет, т.е. возможности вручную восстановить документы нет. Потратив кучу сил, и нервов, (которые, как известно не восстанавливаются :)), я пришел к следующей последовательности действий, необходимых для восстановления базы.

1) Основной принцип поначалу – не навреди. Глушим SQL server и копируем *.mdf и *.ldf файлы от базы в сторону.
2) В принципе, бывает, что состояние suspect возникает из-за того, что поменялись пути к файлам с базой (например, добавился новый диск в системе, который потом убрали, переименовали папку с базой и т.д.). Затем, конечно же, пути восстановили, но база все равно остается помеченной как suspect. Вот что мы делаем:
3) Запускаем SQL Server.
4) Пробуем подключить базу через Enterprise Manager:
Правой кнопкой по Databases, в появившемся меню выбираем All tasks->Attach database, затем в появившемся диалогов окне выбираем файл с базой (*.mdf) и устанавливаем необходимые параметры.
5) или через Query Analyser примерно такой командой:
a. sp_attach_db @dbname = ‘DemoXMB’,
b. @filename1 = ‘E:\Data\DemoXMB_Data.MDF’,
c. @filename2 = ‘E:\Data\DemoXMB_Log.LDF’
6) Пути к базе, естественно нужно заменить на свои. Если база подключилась, то, можно сказать, отделались легким испугом, если же нет, то продолжим.
7) Если log-файл не поврежден (*.ldf), а поврежден *.mdf (например, при подключении базы sql ругается на ошибки в mdf-файле), и режим сохранения backup’а стоит full, то восстанавливаем базу без восстановления лога транзакций, почти 100%, что все мучения на этом могут закончиться.
8) Если же наоборот, поврежден ldf-файл, но остался *.mdf файл, при подключении база ругается на отсутствие/повреждение лога транзакций. В этом случае можно воспользоваться ХП «sp_attach_single_file_db»

Например:
use master
EXEC sp_attach_single_file_db @dbname = ‘DemoXMB’,
@physname = ‘c:\mssql7\data\DemoXMB_Dat.mdf’

При выполнении этих команд, создастся файл DemoXMB_Log.ldf в том же каталоге где и база, размером 1MB и авторасширением.
Если есть *.MDF и *.LDF-файлы, или данные хранятся более чем в одном физическом файле (общее количество подключаемых физических файлов не должно превышать 16-ти), то следует использовать ХП «sp_attach_db»

Например:
use master
EXEC sp_attach_db @dbname = ‘DemoXMB’,
@filename1 = ‘c:\mssql7\data\DemoXMB_Dat.mdf’,
@filename1 = ‘c:\mssql7\data\DemoXMB_Log.ldf’

Для подключения более 16-ти физических файлов к БД следует использовать команду:
CREATE DATABASE FOR ATTACH

Однако если ничего не помогло, оказались поврежденными оба файла и база всё еще в состоянии suspect, то можно попробовать сбросить состояние базы следующей последовательностью: (перед использованием этой ХП необходимо разрешить прямое изменение системных таблиц)
use master
go
Разрешаем прямое изменение системных таблиц:
sp_configure ‘allow updates’,1
go
reconfigure with override
go
Для сброса признака suspect выполняем в БД master ХП sp_resetstatus:
sp_resetstatus ‘DataBaseName’
go
А теперь запретим прямое изменение системных таблиц:
sp_configure ‘allow updates’,0
go
reconfigure with override
go

В принципе, когда я выполнил все эти шаги, статус suspect сбросился, НО! при попытке выполнить какие-либо действия SQL начинала ругаться, что база все еще в состоянии suspect. И тогда я сделал так:

Из QA выполняем скрипт:
Use master
go
sp_configure ‘allow updates’, 1
reconfigure with override
go

Там же выполняем :
update sysdatabases set status= 32768 where name = ‘ ‘

Перезапускаем SQL Server. В принципе база должна быть видна (в emergency mode).

Из QA выполняем:
USE ‘ ‘
GO
sp_dboption ‘ ‘, ‘single_user’, ‘true’
go
DBCC CHECKDB(‘ ‘, REPAIR_ALLOW_DATA_LOSS)
go

Если все в порядке, то:
sp_dboption ‘ ‘, ‘single_user’, ‘false’
go
Use master
go
sp_configure ‘allow updates’, 0
go

Но! Здесь следует сделать паузу. Статья не была бы полной, если бы я не описал методы для предотвращения подобных проблем. Итак, самый простой и надежный способ: архивация, архивация и еще раз архивация. В Enterprise Manager заходим в меню Tools->Wizards->Management->Backup Wizard и настраиваем все необходимые параметры. В результате, у меня полный сброс SQL базы на диск происходит ночью, а затем каждые 15 минут backup изменений, внесенных в базу. В принципе, если бы у меня был такой backup, я бы за пару минут сделал откат назад, и продолжил бы попивать Coca-Cola :).

Источник

Поделиться с друзьями
Как подключить и установить...
Adblock
detector