Главная » Microsoft SQL Server, Базы данных » Создание базы данных

0

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

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

Команда DDL create

Операция создания базы данных с использованием параметров, заданных по умолчанию, крайне проста. Например, следующая команда DDL взята из учебной базы данных Саре Hatteras Adventures:

CREATE DATABASE CHA2

Инструкция CREATE создает файл данных с заданным именем и расширением .mdf, а также файл журнала транзакций с расширением . ldf.

Естественно, команда CREATE поддерживает множество параметров. По умолчанию приняты следующие.

?               Порядок символов по умолчанию — принятый на сервере.

?               Исходный размер. С помощью инструкции создается файл объемом порядка 2 Мбайт; с помощью Object Explorer создается файл объемом 3 Мбайт. Файл журнала транзакций

при использовании кода имеет исходный объем 0,5 Мбайт; при создании в Object Explorer — 1 Мбайт.

?               Размещение. Файлы данных и журнала транзакций по умолчанию размещаются в каталоге, принятом в SQL Server по умолчанию.

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

Создание баз данных в окне Object Explorer требует только ввода ее имени в форме, показанной на рис. 17.1. Данное окно открывается после щелчка правой кнопкой мыши на узле Database и выбора в контекстном меню пункта New Database.

Дополнительная Место размещения файлов данных и журнала транзакций определяется в окне информация \ параметров сервера. Более подробно этот вопрос мы рассмотрим в главе 34.

Рис. 17.1. Проще всего создать новую базу данных с помощью ввода имени на странице свойств базы данных

Окно Database Properties состоит их нескольких страниц: General, Options и Filegroups. Для существующих баз данных в это окно добавляются страницы Files, Permissions, Extended Properties, Mirroring и Log Shipping (на рис. 17.1 они не показаны). Все страницы окна Database Properties описаны в табл. 17.1.

Таблица 17.1. Страницы окна свойств базы данных

Страница

Новая база данных

Существующая база данных

General

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

Просмотр (только чтение) общих свойств: имени, даты последнего резервирования, размера и упорядочения

Страница

Новая база данных

Существующая база данных

Files

Нет данных

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

Filegroups

Просмотр и изменение информации о файловых группах

Просмотр информации о файловых группах

Options

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

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

Permissions

Нет данных

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

Extended

Properties

Нет данных

Просмотр и модификация расширенных свойств

Mirroring

Нет данных

Просмотр и конфигурирование зеркального отображения базы данных (см. главу 52)

Transaction Log Shipping

Нет данных

Настройка доставки журнала транзакций

Концепции файлов базы данных

База данных состоит из двух файлов (точнее, из двух наборов файлов): файла данных и журнала транзакций. Файл данных содержит системные и пользовательские таблицы, индексы, представления, хранимые процедуры, пользовательские функции, триггеры и разрешения системы безопасности. Журнал транзакций с последовательной записью является “центром” SQL Server. Все обновления данных вначале записываются в журнал транзакций и проверяются, что гарантирует запись обновлений в двух местах.

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

Журнал транзакций содержит не только пользовательские записи, но и индексные записи, разбиения страниц, реорганизации таблиц и многое другое. После одного интенсивного теста обновлений я проверил журнал с помощью программы Log Explorer компании Lumigent и был немало удивлен, когда обнаружил, что объем записей о деятельности системы занимает в нем около 80%. Так как файл транзакций содержит не только текущую информацию, но и все обновления файла данных, он, как правило, все время разрастается.

Дополнительная Администрирование журнала транзакций включает в себя операции резервиро- икформацйй вания как части общего плана восстановления (см. главу 36). То, как сервер ис- пользует журнал в транзакциях, мы обсудим в главе 51.

Автоматизация роста размера файла

До выхода версии SQL Server 7 приходилось вручную управлять объемом файлов данных, чтобы иметь возможность добавления данных. К счастью, в новых версиях SQL Server этот процесс автоматизирован; при этом вы можете установить следующие параметры.

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

•                File growth in megabytes. Когда файл данных требует расширения, он автоматически увеличивается на заданное количество мегабайт. Увеличивать размер на фиксированное число мегабайт имеет смысл в крупных базах данных. Если увеличение объема файла предсказуемо, то лучший способ — установить этот параметр в значение, приблизительно равное еженедельному увеличению объема данных.

•                File grouth by percent. В случае необходимости размер файла данных автоматически увеличивается на заданный процент. Этот вариант лучше использовать в небольших базах данных. В крупных базах данных установка этого параметра может привести к слишком большому увеличению занимаемого файлом места на диске за одну операцию, что может сильно отразиться на производительности. Например, добавление 10% размера к файлу объемом в 5 Гбайт приведет к записи 500 Мбайт информации, что может продлиться довольно долго.

?               Maximum file size. Установка этого параметра не позволит переполниться дисковой подсистеме; в противном случае переполнение могло бы привести к сбою операционной системы.

На рис. 17.2 показано окно конфигурирования файла данных.

Puc. 17.3. с несколькими файлами в Management Studio

(NAME = NewDB2,

FILENAME = 1f:\SQLData\NewDB2.ndf’)

The CREATE DATABASE process is allocating 0.63 MB on disk ‘NewDB1.

The CREATE DATABASE process is allocating

1.0           MB on disk 1NewDB21.

The CREATE DATABASE process is allocating

1.0           MB on disk ‘NewDBLog1.

The CREATE DATABASE process is allocating

1.0           MB on disk ‘NewDBLog2′.

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

Изменение файлов текущей базы данных

Количество файлов, используемых текущей базой данных, можно легко изменить. Если данные заполнили устройство, вы можете добавить новый файл в таблице Database Files (рис. 17.3) так же, как и при создании базы данных.

В программном коде можно выполнить ту же операцию с помощью инструкции ALTER DATABASE с параметром ADD FILE. Синтаксис этой инструкции аналогичен использовавшейся при создании базы данных. В следующем примере к базе данных NewDB добавляется третий файл:

ALTER DATABASE NewDB ADD FILE (NAME = NewDB3,

FILENAME = ‘i:\SQLData\NewDB3.ndf’,

SIZE = 10MB,

MAXSIZE = 2Gb,

FILEGROWTH = 20) ;

Результат выполнения инструкции:

Extending database by 10.00 MB on disk ‘NewDB31.

Если некоторый файл больше не требуется либо по причине вывода из эксплуатации дисковой подсиситемы, либо из-за ее использования для других целей, файл данных или журнала транзакций может быть удален. Для этого его нужно вначале сжать с помощью функции DBCC ShrinkFile, а затем удалить в утилите Management Studio (для этого нужно выделить его и нажать клавишу <Delete>).

Дополнительные файлы можно также удалить и программным путем с помощью инструкции ALTER DATABASE REMOVE FILE. Следующая инструкция удаляет созданный ранее третий файл базы данных NewDB:

DBCC SHRINKFILE (NewDB3, EMPTYFILE)

ALTER DATABASE NewDB REMOVE FILE NewDB3;

Результат выполнения пакета следующий:

Dbld Fileld CurrentSize MinimumSize UsedPages EstimatedPages

12 5     1280                     1280                     0                      0

Файл NewDB 3 был удален.

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

Файловая группа представляет собой расширенный механизм организации объектов базы данных. По умолчанию база данных имеет всего одну файловую группу — первичную. При конфигурировании базы данных для использования нескольких файловых групп конкретные объекты (таблицы, индексы и т.п.) могут создаваться в заданных группах. Эта методика может поддерживать две основные стратегии.

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

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

| Проще всего определить состав файлов базы данных и их размеры следующим cVc образом: выполнить запрос к представлению каталога sysdababase_f iles.

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

Однако перед тем как назначать дополнительные дисковые подсистемы файлам данных, обязательно удовлетворите потребности журнала транзакций и временной базы данных. В идеальном случае лучше иметь пять дисковых подсистем (для Windows, приложений и файла подкачки; для временной базы данных tempdb и для ее журнала; а также для файла данных и журнала транзакций), прежде чем создавать дополнительные файлы и файловые группы.

с файловыми группами

Чтобы добавить к базе данных файловую группу в Management Studio, откройте страницу параметров базы данных в Object Explorer. На странице Filegroups создайте дополнительные файловые группы. После этого на странице Files создавайте новые файлы и выбирайте для них в комбинированном списке конкретные файловые группы.

Чтобы выполнить ту же операцию программным путем, используйте параметр Filegroups. В следующем примере создается база данных NewDB с двумя файловыми группами:

CREATE DATABASE NewDB ON

PRIMARY

(NAME = NewDB,

FILENAME = ‘d:\SQLData\NewDB.mdf’,

SIZE = 50MB,

MAXSIZE = 5Gb,

FILEGROWTH = 25MB),

FILEGROUP GroupTwo

(NAME = NewDBGroup 2,

FILENAME = ‘e:\SQLData\NewDBTwo.ndf1,

SIZE = 50MB,

MAXSIZE = 5Gb,

FILEGROWTH = 25MB)

LOG ON

(NAME = NewDBLog,

FILENAME = ‘f:\SQLLog\NewDBLog.ndf’,

SIZE = 100MB,

MAXSIZE = 25Gb,

FILEGROWTH = 25MB);

Модификация файловых групп

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

С помощью редактора запросов и кода Т-SQL можно создавать и удалять файловые группы. Для ЭТОГО используются инструкции ALTER DATABASE ADD FILEGROUP и ALTER DATABASE REMOVE FILEGROUP. Они имеют практически такой же синтаксис, как инструкции добавления и удаления файлов.

Удаление базы данных

База данных может быть удалена с сервера с помощью выделения ее в Object Explorer и выбора в контекстном меню команды Delete.

Для программного удаления базы данных используйте инструкцию DROP DATABASE: DROP DATABASE NewDB

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии