Представления каталога
Представление каталога | Отображение сведений о |
sys.databases | Информация о всех базах данных и опциях для них установленных. |
sys.filegroups | Информация обо всех файловых группах. |
sys.database_files | Информация о файлах баз данных. |
Отчеты SQL Server Management Studio
Лекция № 11
Создание базы данных
В одном экземпляре SQL Server может быть создано до 32 767 баз данных. В каждой базе данных должно быть по крайней мере 2 файла (первичный файл и файл журнала транзакций) и по крайней мере одна файловая группа. Для каждой базы данных может указываться не более 32 767 файлов и 32 767 файловых групп.
При создании новой базы данных в нее копируются все пользовательские объекты из базы данных model. Таким образом, можно добавлять любые объекты, например, таблицы, представления, хранимые процедуры и типы данных, в базу данных model, чтобы включать их во все вновь создаваемые базы данных. Файлы данных следует делать как можно большего размера, в соответствии с максимальным предполагаемым объемом данных в базе данных.
Создание базы данных осуществляется выполнением команды CREATE DATABASE:
CREATE DATABASE database_name
[ ON
{ [ PRIMARY ] [ <filespec> [,...n ]
[, <filegroup> [,...n ] ]
[ LOG ON { <filespec> [,...n ] } ] }
]
[ COLLATE collation_name ]
]
<filespec>::=
{
(
NAME = logical_file_name,
FILENAME = { 'os_file_name' }
[, SIZE = size [ KB | MB | GB | TB ] ]
[, MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
[, FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ]
) [,...n ]
}
<filegroup>::=
{
FILEGROUP filegroup_name [ CONTAINS FILESTREAM ] [ DEFAULT ]
<filespec> [,...n ]
}
Database_name
Имя новой базы данных. Имена баз данных должны быть уникальны внутри экземпляра SQL Server и должны соответствовать правилам для идентификаторов.
Аргумент database_name может иметь максимальную длину 128 символов, если для файла журнала не указано логическое имя. Если логическое имя файла не указано, то SQL Server формирует для журнала имена logical_file_name и os_file_name путем добавления суффикса к database_name. Это ограничивает длину аргумента database_name 123 символами, чтобы формируемое логическое имя файла было не длиннее 128 символов.
Если имя файла данных не указано, то SQL Server использует аргумент database_name в качестве имен logical_file_name и os_file_name. Путь по умолчанию берется из реестра. Его можно изменить в «Свойствах сервера» (страница «Параметры базы данных») в Management Studio. Изменение пути по умолчанию требует перезапуска SQL Server.
ON
Указывает, что дисковые файлы, используемые для хранения разделов данных в базе данных, определяются явно. Параметр ON необходимо применять, если за ним следует список элементов <filespec> с разделителями-запятыми, которые определяют файлы данных первичной файловой группы. За списком файлов в первичной файловой группе может следовать необязательный список элементов <filegroup> с разделителями-запятыми, которые определяют файловые группы пользователей и принадлежащие им файлы.
PRIMARY
Указывает, что связанный список <filespec> определяет первичный файл. Первый файл, указанный в элементе <filespec> в первичной файловой группе, становится первичным файлом. В базе данных может быть только один первичный файл.
Если параметр PRIMARY не указан, то первый файл списка в инструкции CREATE DATABASE становится первичным файлом.
LOG ON
Указывает, что дисковые файлы, используемые для хранения журнала базы данных, то есть файлы журналов, определяются явно. За параметром LOG ON следует список элементов <filespec> с разделителями-запятыми, которые определяют файлы журналов. Если параметр LOG ON не указан, автоматически создается один файл журнала, размер которого определяется большей из следующих двух величин: 512 КБ или 25 процентов от суммы размеров всех файлов с данными в базе данных. Этот файл помещается в местоположение для журнала по умолчанию.
<filespec>
Управляет свойствами файла.
NAME logical_file_name
Логическое имя, используемое в SQL Server при указании ссылки на файл. Аргумент logical_file_name должен быть уникальным в базе данных и должен соответствовать правилам для идентификаторов. Имя может быть символом или константой Юникода, а также обычным идентификатором или идентификатором с разделителями.
FILENAME { 'os_file_name' }
Задает физическое имя - путь и имя файла, используемые операционной системой при создании файла. Файл должен находиться на одном из следующих устройств: на локальном сервере, где установлен SQL Server, в сети хранения данных SAN или в сети на основе iSCSI. Указанный путь должен существовать до выполнения инструкции CREATE DATABASE.
Для файловой группы FILESTREAM параметр FILENAME указывает путь, где будут храниться данные FILESTREAM. Должен существовать путь вплоть до последнего каталога, но последний каталог существовать не должен. Например, если указать путь "D:\DATA\ FilestreamData ", папка " D:\DATA" должна существовать до запуска инструкции CREATE DATABASE, а папка "FilestreamData" - не должна.
Для файловой группы FILESTREAM может быть только один файл, причем файловую группу и файл необходимо создавать в одной инструкции.
Параметры SIZE, MAXSIZE и FILEGROWTH не применяется к файловой группе FILESTREAM и недоступны, если путь к файлу указан в формате UNC.
Если файл находится в необработанной секции (raw partition), аргумент os_file_name должен указывать только букву диска существующей необработанной секции. В каждой необработанной секции может быть создан только один файл.
Файлы данных не следует размещать в файловых системах со сжатием, за исключением случаев, когда файлы являются вторичными и доступны только для чтения или вся база данных доступна только для чтения. Файлы журналов ни в коем случае не должны размещаться в сжатых файловых системах.
SIZE size
Задает начальный размер файла. Параметр SIZE не может указываться, если аргумент os_file_name задан как путь в формате UNC.
Если аргумент size не задан для первичного файла, то компонент Database Engine использует размер первичного файла, указанный в базе данных model. Когда указан вторичный файл данных или журнала, но параметр size для файла не указан, компонент Database Engine задает размер файла равным 1 МБ. Размер, указанный для первичного файла, не должен быть менее размера первичного файла базы данных model.
Можно использовать суффиксы килобайт (KB), мегабайт (MB), гигабайт (GB) и терабайт (TB). По умолчанию — MБ. Аргумент Size имеет тип integer. Для значений, превышающих 2 147 483 647, используются более крупные единицы измерения.
MAXSIZE max_size
Задает максимальный размер, до которого может расти файл. Параметр MAXSIZE нельзя указывать, если аргумент os_file_name задан как путь в формате UNC. Можно использовать суффиксы KB, MB, GB и TB. По умолчанию — MБ. Укажите целое число (без дробной части). Если аргумент max_size не указан, размер файла будет увеличиваться до заполнения диска. Аргумент Max_size имеет тип integer. Для значений, превышающих 2 147 483 647, используются более крупные единицы измерения. UNLIMITED у казывает, что файл может расти вплоть до заполнения диска. В SQL Server файл журнала, для которого задано неограниченное увеличение размера, имеет максимальный размер 2 ТБ, а файл данных — 16 ТБ.