Рефераты. SQL Server 2000

      Если присоединение участвующей в репликации базы данных выполняется не на «родном» серве­ре, то необходимо удалить поддержку репликации. Для этого используется хранимая процедура sp_removedbreplication [@dbname =] "dbname".

О collation_name. С помощью этого аргумента указывается сопоставление по умолчанию для всех объектов, создаваемых в базе данных. Это же сопостав­ление будет использоваться и для системных таблиц. Разрешается указывать как сопоставления Windows, так и сопоставления SQL Server. Если сопос­тавление не указывается, то для базы данных будет использоваться сопос­тавление, определенное на уровне сервера, то есть то сопоставление, которое было выбрано при установке SQL Server 2000.

Как видно из синтаксиса команды CREATE TABLE и уже рассмотренных аргу­ментов этой команды, при создании базы данных можно определить набор файлов, из которых будет состоять создаваемая база данных. Уже было сказано, что файл определяется с помощью конструкции <fi1espec>, синтаксис которой приведен ниже. Эта конструкция имеет одинаковый формат для всех типов файлов (первич­ного, вторичного и журнала транзакций). Чтобы соответствующий файл был пер­вичным, перед его определением необходимо указать ключевое слово PRIMARY. Журнал транзакций определяется с помощью ключевого слова LOG ON. Если ни одно из этих ключевых слов не указывается (указывается только слово ON), то соответствующий файл будет вторичным. Дополнительно файлы данных могут быть включены в группы. Это будет рассмотрено несколько позже в этом же разделе.

< filespec >

( [ NAME = Iogica1_file_name , ]

FILENAME = "os_file_name"

[ , SIZE = size ]

[ . MAXSIZE = max_size ]

[ . FILEGROWTH = growthj increment ] ) [ . ...n ]

Рассмотрим назначение используемых аргументов.

О NAME = logical_file_name. Логическое имя файла, под которым он будет опознаваться при выполнении различных команд Transact-SQL. Логическое имя файла должно быть уникальным в пределах базы данных. Имя файла журнала транзакций не должно совпадать с именем файла самой базы дан­ных. Использование ключевого слова NAME не требуется, если выполняется присоединение базы данных, однако таким образом можно указать новое ло­гическое имя для физического файла.

О FILENAME = "os_f 11 e_name". Если с помощью предыдущего аргумента указы­валось логическое имя файла, то рассматриваемый аргумент предназначен для указания полного пути и названия соответствующего физического файла, ко­торый будет создан на жестком диске. Это имя будет иметь файл на уровне операционной системы. Если вы воспользуетесь какой-либо программой про­смотра диска, то после успешного выполнения команды CREATE DATABASE сможете увидеть файл с указанным именем. Напомним, что SQL Server 2000 не позволяет создавать файлы базы данных на сжатых томах и сетевых дисках.


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

О SIZE = size. С помощью этого аргумента указывается первоначальный раз­мер, который будет иметь соответствующий файл. Размер может быть указан либо в мегабайтах, либо в килобайтах. Для явного задания величины можно использовать приставки М b и К Ь. По умолчанию считается, что размер задает­ся в мегабайтах. Минимальный размер файла составляет 512 Кбайт. Если раз­мер файла не указывается явно, то по умолчанию будет создан файл размером > 1 Мбайт. Отметим, что в качестве размера файла разрешается задавать только целочисленные значения. Таким образом, если необходимо задать дробное ко­личество мегабайт, следует указать соответствующее значение в килобайтах.

О FILEGROWTH = growth_iincrement. При описании физической архитектуры базы данных в главе 4 было сказано, что начиная с SQL Server 7.0 поддерживает­ся автоматическое увеличение (auto grow) размера базы данных, что реали­зуется путем последовательного автоматического увеличения размеров фай­лов, входящих в состав базы данных. SQL Server 2000 позволяет контролировать величину прироста каждого из файлов базы данных отдель­но от других, задавая шаг прироста не на уровне базы данных, а на уровне отдельного файла. С помощью рассматриваемого аргумента задается величи­на прироста файла базы данных. Шаг прироста может быть указан как в аб­солютном выражении в виде конкретного количества мегабайт (М Ь) или килобайт (Kb), так и в относительном в виде определенного процента (%) от первоначального размера файла. По умолчанию предполагается, что указы­вается значение в мегабайтах. Если аргумент FILEGROWTH опущен, то файл будет увеличиваться на 10 % от первоначального объема. Минимальный раз­мер, на который может быть увеличен файл, составляет 64 Кбайт. Отметим, что в сумме первоначальный размер файла и выбранный шаг прироста не должны превышать указанный максимальный размер файла.

О MAXSIZE = UNLIMITED . Автоматическое увеличение файлов связано с определенными проблемами. В частности, если диск с файлом базы данных используется для хранения временных файлов различных приложе­ний, то увеличение файла базы данных до большого размера может привести к нарушению работоспособности приложений. Для избежания этой и других подобных проблем SQL Server 2000 позволяет ограничивать рост файлов кон­кретным размером. Для этого и требуется рассматриваемый аргумент. Мак­симальный размер может быть указан в мегабайтах (Mb— используется по умолчанию) или килобайтах (Kb). Отметим, что ограничение роста отдель­ного файла не ограничивает возможность увеличения роста всей базы дан­ных, так как размер базы данных может увеличиваться за счет пророста дру­гих файлов. Если ограничивать максимальный размер файла не нужно, то

 необходимо указать значение UNLIMITED или вообще опустить аргумент MAXSIZE, так как по умолчанию размер файла не ограничивается, и он будет расти, пока не заполнит все доступное пространство на диске. Мы рассмотрели синтаксис конструкции <filespec>, которая используется для описания файлов базы данных. Как уже было сказано, файлы данных (mdf и ndf) могут объединяться в так называемые группы файлов. Подобное объеди­нение выполняется с целью упрощения управления файлами. Например, при создании резервных копий можно выполнять архивирование не всей базы дан- • ных целиком, а лишь определенной группы файлов. Основным же назначением групп файлов является размещение в них данных определенных таблиц или их отдельных столбцов, а также хранение индексов. При создании таблицы вы мо­жете явно указать, в какой группе файлов должны храниться данные того или иного столбца. Как следствие, подобным образом можно предписать хранить данные столбцов на разных логических или физических дисках.

Файлы, не включенные явно ни в какую группу, будут включены в группу файлов по умолчанию, которой первоначально является первичная группа фай­лов. Однако если имеется необходимость в дополнительных группах файлов с теми или иными файлами, необходимо воспользоваться конструкцией <filegroup>, имеющей следующий синтаксис:

<fiIegroup>   : : =

FILEGROUP filegroupjiame <filespec> [,..'.n]

Аргумент fi1egroup_name определяет имя группы файлов, под которым она будет распознаваться при выполнении команд Transact-SQL. После имени группы файлов следует определение включаемых в нее файлов. Как видно из синтакси­са, в одну группу файлов может быть включено множество файлов.

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

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


Для создания переносимой базы данных используется хранимая процедура sp_create_removable. Чтобы после создания базы данных проверить, соответствует ли она требованиям переносимой базы данных, можно использовать хранимую процедуру sp_certify_removable.



Управление базами данных

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

Большинство действий по изменению конфигурации базы данных выполня­ется с помощью команды ALTER DATABASE:

ALTER DATABASE database

j SET < optionspec > [  .. .'.n ] [ WITH < termination > ]

j COLLATE < collationjiame >

}

Как видно из синтаксиса, за один вызов команды может быть изменено не

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

шагов. Рассмотрим более подробно назначение каждого из аргументов.

О database. Имя базы данных, которую необходимо модифицировать. Естествен­но, указанная база данных должна существовать на сервере.


Чтобы иметь возможность изменить базу данных, необходимо, чтобы с ней не работал ни один пользо­ватель. Если же в базе данных имеется хоть одна активная транзакция, то попытка выполнения коман­ды ALTER DATABASE завершится ошибкой. В этом случае нужно дождаться, пока будут завершены все транзакции, либо воспользоваться аргументом WITH TERMINATION, который будет рассмотрен далее.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.