скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: SQL Server 2000

Часть установленных администратором параметров конфигурации базы дан­ных может быть изменена пользователем с помощью команды SET на уровне соединения, транзакции, хранимой процедуры, пакета команд и т. д. Эти изме­нения действуют только в пределах соединения (транзакции, хранимой проце­дуры и т. д.) и будут потеряны сразу же после отсоединения пользователя. При последующем соединении снова будут использоваться параметры, установлен­ные администратором.

Использование системной хранимой процедуры sp_dboption для управле­ния свойствами базы данных было единственным вариантом в предыдущих вер­сиях. Даже при работе с SQL Server 7.0 администратор имел в своем распоряжении только эту процедуру. В SQL Server 2000 изменение параметров базы данных также может выполняться с помощью команды ALTER DATABASE с аргументом SET <optionspec>. Как нетрудно догадаться, свойства базы дан­ных, которые предполагается изменить, указываются с помощью конструкции <optionspec>, имеющей следующий синтаксис:

<opt1onspec>::=

< state_option >

[ < cursor_option >

| < auto_option >

| < sql_option >

| < recovery_option >

< state_option > .- .- =

SINGLEJJSER

|  ONLINE

|  READJ3NLY

< termination >

ROLLBACK AFTER integer [ SECONDS ]

|   ROLLBACK   IMMEDIATE

|   NO  WAIT

<  cursor_option  >   : : =

CURSOR_CLOSE_ON_COMMIT     OFF 

|   (CURSOR_DEFAULT     GLOBAL 

< auto_option >

OFF

|  AUTO_CREATE_STATISTICS ON

| AUTO_SHRINK ON

|  OFF

< sql_option > ::=


ANSI_NULL_DEFAULT      OFF  

|   ANSI_NULLS      ON  

j ANSI_PADDING ON 

j ANSIJIARNINGS OFF

| ARITHABORT ON 

|  CONCAT_NULL_YIELDS_NULL ON 

|  NUMERIC_ROUNDABORT   OFF

| QUOTEDJDENTIFIER { ON J OFF }

|  RECURSIVEJRIGGERS ON 

< recovery_option > ::=

RECOVERY FULL 

| TORN_PAGE_DETECTION   OFF

Практически все перечисленные аргументы были рассмотрены либо в этой главе, либо в главе 11. Поэтому мы не будет лишний раз на них останавливаться.

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

SQL Server 2000 позволяет отсоединять (detach) базы данных от сервера. Пользо­ватели не могут обращаться к отсоединенным базам данных. Описание отсоеди­ненной базы данных, включая описание файлов журнала транзакций и самой базы данных, удаляется из системных таблиц SQL Server и, таким образом, сервер перестает ее воспринимать. Позже эту базу данных можно присоединить (attach) на этом же или другом сервере.

Отсоединение и присоединение в основном используются для переноса баз данных с одного диска или сервера на другой. Если требуется скопировать базу данных на один или несколько удаленных серверов, можно выполнить резерв­ное копирование базы данных и разослать копии. Другой способ — выполнить отсоединение базы данных и разослать пользователям все ее файлы. У себя на сервере пользователи смогут выполнить присоединение базы данных и сразу же начать работать с ней. Процедура отсоединения и присоединения занимает го­раздо меньше времени, чем создание и восстановление резервной копии. Кроме того, отсоединенную базу данных можно записать на компакт-диски и разо­слать пользователям. Пользователи смогут работать с базой данных непосред­ственно с компакт-диска в режиме «только для чтения». Такой подход особенно эффективен при рассылке каталогов, которые не должны изменяться.

     Если планируется скопировать базу данных на компакт-диск, предварительно необходимо устано­вить все ее группы файлов в режим «только для чтения». Для этого используется команда ALTER DATABASE MODIFY FILEGROUP filegroup_name READONLY.

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

Для отсоединения базы данных используется следующая хранимая процедура:

sp_detach_db [@dbname =] "dbname" [, [@skipchecks =] "skipchecks"]

Аргумент "dbname" указывает имя базы данных, которую необходимо отсоеди­нить. Аргумент "skipchecks" управляет обновлением статистики при отсоедине-


нии. Если значение этого аргумента равно TRUE, то обновление статистики пропус­кается, если же указывается FALSE, то обновление статистики будет выполнено. Для отсоединения базы данных pubs нужно использовать следующую команду:

ЕХЕС sp_detach_db  "pubs"

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

Для присоединения отсоединенной базы данных используется системная хра­нимая процедура sp_attach_db:

sp_attach_db [@dbname =]   "dbname", [(Pfilenamel =] "filenameji" [,...16]

Аргумент "filename_n" должен содержать полный путь к первичному фай­лу присоединяемой базы данных. Описание остальных файлов базы данных хра­нится в первичном файле. Если положение этих файлов было изменено, то необходимо явно указать их положение при вызове хранимой процедуры — че­рез запятую в аргументе "f i lename_n".

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

Для присоединения базы данных pubs нужно выполнить следующую коман­ду: sp_detach_db"pubs".

"d:\mssql\data\pubs.mdf"  .

"d:\mssql\data\pubs_log.Idf"

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

sp_attach_sing1e_file_db      [@dbname =] "dbname".

[@physname =] "physicaljiame"

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

Для присоединения базы данных pubs с использованием только первичного файла необходима следующая команда: sp_attach_single_file_db "pubs",  "d:\mssql\data\pubs.mdf"

Передача прав владения

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


Для передачи прав владения базой данных от одного пользователя другому используется следующая хранимая процедура:

sp_changedbowner       [(Ploginame =]   "login"

[,[@map =]   remap_al1as_f1ag]

Рассмотрим назначение каждого из аргументов хранимой процедуры. О [Ologiname =] "login". Имя учетной записи пользователя, которого требу­ется сделать владельцем базы данных. Эта учетная запись не должна иметь доступа к базе данных ни через псевдоним, ни через отображение в пользова­теля базы данных. В противном случае перед выполнением хранимой проце­дуры необходимо сначала удалить все отображения учетной записи в пользо­вателя базы данных.

О [map =]  remap_al i as_fl ag. Этот аргумент может принимать значение TRUE или FALSE. Значение TRUE означает, что учетная запись старого владельца базы данных будет отображаться в учетную запись нового владельца. Если задано FALSE, учетная запись старого владельца уничтожается. Если этот аргумент опускается, то есть принимает значение NULL, то все существующие dbo бу­дут отражены в учетную запись нового владельца базы данных. Хранимая процедура sp_changedbowner должна выполняться в контексте базы данных, владельца которой необходимо изменить. Например, для изменения вла­дельца базы данных KHSU необходимо выполнить следующую команду:

USE   khsu

EXEC sp_changedbowner "MATRIXXAdmlnistrator"

Изменение имени базы данных

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

sp_renamedb [@old_name =]   "old_name". [@new_name =] "new_name"

Аргумент "old_name" должен содержать старое имя базы данных. Новое же имя указывается с помощью аргумента "new_name".

      Права на выполнение этой хранимой процедуры имеют только члены фиксированной роли сервера sysadmin.

Просмотр свойств базы данных

Часто бывает необходимо получить исчерпывающую информацию о структуре и параметрах базы данных. В этом разделе будут рассмотрены средства Transact-SQL, с помощью которых можно получить различную информацию о базе данных. Для просмотра значения параметров конфигурации базы данных, установ­ленных с помощью хранимой процедуры sp_dboption или средствами Enterprise Manager, можно использовать системную хранимую процедуру sp_dboption с указанием только имени базы данных. Например, для получения информации о параметрах базы данных pubs можно выполнить следующую команду: EXEC sp_dbopt1on "pubs"


Будет возвращен примерно следующий результат:

The  following  options  are  set:

published

trunc. log on chkpt. torn page detection auto create statistics auto update statistics

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

ЕХЕС spjboption "pubs",  "ANSI null default"

В результате выполнения этой команды будет получен примерно следую­щий результат:

OptionName                                        CurrentSetting

ANSI null default                                  off

Если выполнить хранимую процедуру sp_dboption вообще без аргументов, то она выдаст список всех доступных параметров конфигурации:

Settable database options:

ANSI null default

ANSI nulls

ANSI padding

ANSI warnings

arithabort

auto create statistics

auto update statistics

autoclose

autoshrink

concat null yields null

cursor close on commit

dbo use only

default to local cursor

merge publish

numeric roundabort

offline

published

quoted identifier

read only

recursive triggers

select into/bulkcopy

single user

subscribed

torn page detection

trunc. log on chkpt.

Помимо хранимой процедуры sp_dboption для получения значения тех же и некоторых дополнительных параметров конфигурации можно использовать следующую команду: DATABASEPROPERTY("database_name".   "property")

Аргумент database_name должен содержать имя базы данных, свойства ко­торой необходимо просмотреть. Возможные значения аргумента property и их назначение перечислены в табл. 14.2.

Таблица Аргументы команды DATABASEPROPERTY


 


Аргумент

IsAnsiNullDefault

IsAnsiNullEnabled

IsAnsiWarningEnabled

IsAutoClose

IsAutoShrink

IsAutoUpdateStatistics

IsBulkCopy

IsCloseCursorOnCommit-Enabled

IsDboOnly

IsDetached

IsEnergencyMode

IsFulltextEnabled

IsInLoad

IsInRecovery

IsInStandby

IsLocalCursorsDefault

IsNotRecovered IsNullConcat

IsOffline IsQuotedldentifiersEnabled

leReadOnly

IsRecursiveTriggersEnabled

IsShutDown


Назначение

Аналог аргумента "ANSI null default" процедуры sp_dboption

Аналог аргумента "ANSI nulls" процедуры sp_dboption

Аналог аргумента "ANSI warning" процедуры sp_dboption

Аналог аргумента "autoclose" процедуры sp_dboption

Аналог аргумента "autoshrink" процедуры sp_dboption

Аналог аргумента "auto update statistic" процедуры sp_dboption

Аналог аргумента "select into/bulk copy" процедуры sp_dboption

Аналог аргумента "cursor close on commit" процедуры spjdboption

Аналог аргумента "dbo use only" процедуры sp_dboption

База данных отделялась командой sp_detach

Разрешение работы с «подозрительной» базой

Поддержка полнотекстового поиска

База данных была загружена из резервной копии

Выполняется восстановление базы данных

База данных работает в режиме «только для чтения»

Аналог аргумента "default to local cursor" процедуры sp_dboption

Восстановление базы данных завершилось с ошибкой

Аналог аргумента "concat null yields null" процедуры sp_dboption

Аналог аргумента "offline" процедуры sp_dboption

Аналог аргумента "quoted identifier" процедуры sp_dboption

Аналог аргумента "read only" процедуры sp_dboption

Аналог аргумента "recursive triggers" процедуры sp_dboption

В базе при запуске сервера возникают ошибки__


продолжение &


 


Таблица (продолжение)

Аргумент                                                   Назначение

IsSingleUser                                      Аналог аргумента "single user" процедуры

sp_dboption

IsSuspect                                          Имеются сомнения в целостности базы данных
IsTruncLog                                                   Аналог аргумента "trunc. log on chkpt." процедуры

sp_dboption

Version                                             Внутренний номер версии сервера SQL Server,
________________________               на котором была создана база   

                                                               данных_________

Результатом выполнения команды DATABASEPROPERTY будет либо значение О, соответствующее значению FALSE или OFF хранимой процедуры sp_dbopt1 on, либо значение 1, соответствующее значению TRUE или ON. Исключением из правила яв­ляется значение, возвращаемое для параметра Version. Для этого параметра воз­вращается значение типа int, которое может принимать любое положительное значение. Если значение параметра не определено, то команда вернет значение NULL.

Приведем пример использования команды DATABASEPROPERTY для получе­ния информации о режиме слияния двух значений NULL, установленном для базы данных pubs: SELECT DATABASEPROPERTY   ("pubs",   " IsNullConcat")

Сервер вернет примерно следующий результат:

О

(1 row(s) affected)

Для получения некоторой общей информации о базе данных можно исполь­зовать следующую хранимую процедуру: spjielpdb [[@dbname=] "name"]

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

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

Для получения информации о базе данных pubs можно использовать следу­ющую команду:

ЕХЕС spjielpdb "pubs"

Объем информации, возвращаемый этой командой, достаточно велик, поэтому возможности при­вести эту информацию в книге нет. Однако вы можете выполнить указанную команду в Query Analyzer и посмотреть, что же будет выдано в ответ.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.