Ответы на билеты по дисциплине Базы данных. Базы данных. Вопросы к экзамену по дисциплине Базы данных
Скачать 0.68 Mb.
|
Режимы аутентификацииSQL Server предлагает два режима аутентификации пользователей:режим аутентификации средствами Windows NT/2000; смешанный режим аутентификации (Windows NT Authentication and SQL Server Authentication). Восстановление данных. В процессе функционирования SQL Server в силу различных причин может произойти сбой в работе сервера, что может привести к повреждению баз данных. Вы должны быть готовы воспользоваться имеющимися резервными копиями, чтобы восстановить работоспособность сервера в минимальный срок. Поскольку очень важно как можно быстрее предоставить пользователям возможность нормально работать с базами данных, следует иметь четкий и проверенный план действий по восстановлению. SQL Server обладает возможностями автоматического восстановления при сбое системы. Каждый раз, когда происходит открытие базы данных, например, при запуске системы, SQL Server проверяет целостность баз данных, анализируя соответственные журналы транзакций. Для анализа используется участок журнала, содержащий сведения обо всех транзакциях, произошедших, начиная с момента выполнения последней операции CHECKPOINT, и заканчивается остановкой SQL Server. Система обнаруживает транзакции, которые не завершены, и производит их откат (roll back). Одновременно с этим происходит поиск завершенных транзакций, которые не были сохранены на диске, и осуществляется их фиксация (forward back). Это гарантирует, что в случае неудачного завершения работы сервера при его следующем запуске будут сохранены целостность и постоянство данных. Вы можете инициировать процесс восстановления базы данных в любой момент, когда сочтете это нужным. Однако в SQL Server встроены внутренние механизмы, которые препятствуют случайному стиранию базы данных вследствие невнимательности. Процесс восстановления будет прерван в случае, если вы пытаетесь восстановить базу данных, которая уже имеется на сервере, и при этом база данных, которую вы пытаетесь восстановить, отличается от базы данных, содержащейся в резервной копии, либо имена этих двух баз данных не совпадают. С другой стороны, вы можете отключить вышеуказанные меры предосторожности. Можно прибегнуть к восстановлению данных с резервных и с том случае, когда необходимо создать на другом сервере абсолютно идентичную копию существующей базы данных. Восстановление данных подразумевает загрузку последней архивной копии данных и всех архивных копий журнала транзакций, выполненных с момента архивирования данных. Таким образом, данные восстанавливаются по состоянию на момент создания последней архивной копии журнала транзакций. Если повреждено устройство, на котором размещена БД, и это повлекло за собой потерю данных, данные могут быть восстановлены путем загрузки последних архивных копий данных и тех копий журнала транзакций, которые удалось восстановить. При восстановлении данных и журнала транзакций необходимо учитывать следующее: • Когда БД восстанавливается на основе архивной копии, она должна быть закрыта, так как данные в этой БД перезаписываются на загружаемые данные. • Если данные восстанавливаются из-за повреждения физического устройства, в первую очередь необходимо стереть поврежденную БД. Это можно выполнить с помощью команды DROP DATABASE или системной процедуры sp_dbremove. Только после этого можно пересоздать БД и восстановить данные из архивной копии. • Загрузка архивной копии журнала транзакций выполняется путем повторного выполнения записанных в нем изменений и отмены транзакций, которые не были завершены на момент создания архивной копии. • Архивные копии журнала транзакций должны загружаться в последовательности, в которой были созданы. SQL Server проверяет дату и время создания архивных копий БД и журнала транзакций для контроля правильной последовательности использования копий. После завершения загрузки всех архивных копий журнала транзакций содержание БД восстанавливается в том виде, в котором оно существовало на момент создания последней копии журнала транзакций (за исключением незавершенных транзакций). Такой процесс позволяет восстановить максимально возможный объем данных, потерянных из-за отказа системы. • Если БД создана с опцией FOR LOAD, а затем в нее загружена архивная копия данных, то эта БД получает статус «dbo use only» — «только для владельца БД». Таким образом, перед ее использованием другими пользователями вы должны отменить этот статус. Основные методы восстановления данныхВ SQL Server 7.0 можно выделить два метода восстановления данных: автоматическое и вынужденное, выполняемое системным администратором при повреждении данных. Автоматическое восстановление выполняется при загрузке SQL Server. Оно позволяет гарантировать, что все завершенные транзакции физически записаны " БД и тем самым риск наличия незавершенных транзакций при потере работоспособности системы минимален. Потеря работоспособности системы, как правило, возникает из-за перебоев в электроснабжении, и при этом подразумевается, что носитель данных не вышел из строя. Если действует режим автоматического восстановления, то при следующем запуске SQL Server автоматически восстанавливает данные для каждой БД. При этом выполняются следующие действия: • Отменяются транзакции, незавершенные на момент выключения SQL Server или потери работоспособности системы. • На основании журнала проверяются транзакции, которые были завершены в промежуток времени между выполнением последней контрольной точки и потерей работоспособности системы. При наличии таких транзакций их выполнение повторяется и записываются изменения, произведенные в данных. Такое действие получило название откат вперед (rolling forward). Автоматическое восстановление начинается с БД master, затем следует modelпосле чего стирается содержание БД tempdb и последовательно восстанавливаются БД msdb, pubs и distribution (если сервер сконфигурирован для публикаций). После этого восстанавливаются БД пользователей. В процессе автоматического восстановления данных пользователи могут регистрироваться на сервере, но доступ к БД будет открыт только после полного завершения процесса. 2.1.2 Восстановление объектов SQL ServerВосстановление БД. После восстановления устройства выполните следующие действия для воссоздания поврежденной БД: 1. Выполните приведенный ниже запрос для проверки использовавшихся поврежденной базой данных устройств: SELECT segmap, ‘size’ = size/512 FROM sysusagesWHERE dbid =(SELECT dbid FROM sysdatabasesWHERE name = ‘testDB’) Таким образом, мы определили размеры блоков для БД testDB. Вы можете и( пользовать те же параметры при пересоздании БД. Например, если результат выполнения запроса такой: Segmap size --------- ----- 20 10 10 2 4 Значения в столбце segmap означают: 3 – пространство используется для данных; 4 – пространство используется для журнала транзакций. В столбце size приведен объем пространства в мегабайтах. 2. Создайте заново БД, используя команду CREATE DATABASE, дублирующую все записи старой таблицы sysusages, начиная с первой и до первого устройства, на котором располагался журнал транзакций: CREATE DATABASE testDB ON datadevl = 20, datadev2 = 10 LOG ON logdevl = 10 3. При необходимости используйте команду ALTER DATABASE для расширения пространства на отдельных устройствах. Например, для увеличения размера, занимаемого БД на устройстве datadevl, выполните следующую команду: ALTER DATABASE testDB ON datadevl = 2Для выделения места для БД на другом устройстве можно выполнить команду: ALTER DATABASE testDB ON datadev3 = 2При выполнении команды ALTER DATABASE не забудьте, что при выделении места на устройстве, которое уже частично занято данной БД, оно автоматически будет использоваться так же, как и уже имеющееся пространство (если были записаны данные, то и будут записываться данные, если журнал транзакций — то журнал транзакций). Когда вы выделяете место на устройстве, которое до этого не использовалось данной БД, оно по умолчанию будет применяться для хранения данных. Для размещения на таком устройстве журнала транзакций выполните кoмaнду ALTER DATABASE с системной процедурой sp_logdevice. Например: ALTER DATABASE testDB ON logdev2 = 4 EXEC sp_logdevice testDB, logdev2 4. Перезагрузите БД, используя команду LOAD DATABASE, и затем загрузите архив журнала транзакций и последнюю архивную копию текущего журнала транзакций, используя команду LOAD TRANSACTION. Для загрузки БД применяется следующий шаблон: LOAD DATABASE <Иия БД> FROM <Архивное устройство 1> [, ... ] [WITH <Опции>] Для загрузки журнала транзакций используйте следующий шаблон: LOAD TRANSACTION <Имя БД> FROM <Архивное устройство 1> [, ... ] [WITH <0пции>] Для загрузки заголовка примените следующий шаблон: LOAD HEADERONLY FROM <Архивное устройство> Восстановление БД master. Повреждения БД master не могут остаться незамеченными, так как они вызовут невозможность запуска SQL Server или приведут к ошибкам чтения/записи данных. Наиболее распространенным случаем повреждения БД master является выход из строя жесткого диска во время записи данных. Процедура восстановления поврежденной БД master отличается от восстановления БД пользователей. Если БД master недоступна из-за повреждения данных, ее придется пересоздать, используя SQL Server Setup, и затем восстановить на основе последней архивной копии. Естественно, изменения, выполненные после создания последней архивной копии, будут потеряны и их придется повторить еще раз. Для восстановления БД master выполните следующие действия: 1. Запустите программу SQL Setup для пересоздания БД master. Эта БД должна быть создана с теми же кодовой страницей и порядком сортировки, которые использовались на момент создания последней архивной копии. Также необходимо убедиться, что указано такое же расположение, путь, имя и размер устройства. 2. Добавьте к устройствам сервера архивное устройство, если копия BQ.masterнаходится не на дискетах. 3. Запустите SQL Server в однопользовательском режиме, как описано выше. 4. Восстановите БД, используя ее последнюю архивную копию. 5. Выполните изменения, которые не были отражены в архивной копии. 6. Восстановите БД msdb. Восстановление БД master без архивной копии При восстановлении БД master бывают и более тяжелые ситуации, когда: • повреждено устройство, на котором расположена БД master; • повреждена копия журнала транзакций или её не существует. При этом остались в целости данные для БД пользователей. В случае повреждения копии журнала транзакций для восстановления БД master выполните следующие действия: 1. Запустите программу SQL Setup. 2. Создайте БД masterc той же кодовой страницей и порядком сортировки, которые использовались на момент записи последней архивной копии. Также необходимо убедиться в правильности расположения, пути, имени и размера устройства master. 3. Запустите SQL Server в однопользовательском режиме. 4. Выполните команду DISK REINIT для инициализации устройств, имена которых не сохранились в таблице sysdevices. 5. Выполните команду DISK REFIT для перестройки таблиц sysusages и sysdatabases. Восстановление отдельной таблицы. Ecли для восстановления таблицы вы используете команду LOAD TABLE, то следует помнить, что ее опции совершенно идентичны опциям команды LOAD DATABASE за исключением SOURCE и APPEND. Опция SOURCE определяет имя таблицы, на основании которой восстанавливается данная таблица. Эта опция используется только тогда, когда имена восстанавливаемой таблицы и таблицы в архивной копии различны. Опция APPEND служит для указания необходимости добавить данные из архивной копии в таблицу, которая уже имеет данные. |