Создание и обслуживание баз данных сервера

 

Цель работы– изучение команд и системных хранимых процедур для создания, модификации, подключения, обслуживания, отключения и удаления баз данных, а также приобретения навыков применения указанных команд, средств утилиты Enterprise Manager и мастера Create Database Wizard.

 

 

Любая пользовательская база данных создается командой CREATE DATABASE, утилитой Enterprise Manager и мастера Create Database Wizard. В любом случае для создания базы данных и для ее обслуживания нужно иметь соответствующие права. По умолчанию такими правами обладают члены фиксированных ролей сервера sysadmin и dbcreator. При необходимости такие права можно предоставить и другим пользователям. Лицо создающее базу данных,


автоматически становится ее владельцем. Имя базы данных должно точно отражать ее назначение и создаваться по правилам построения системных идентификаторов. Длина имени не более 128 символов.

При создании базы данных могут использоваться файлы трех типов: первичный (один), вторичный (ни одного или несколько) и для журнала транзакций (один или несколько, причем если он не указан, то система создает его автоматически). Для удобства обслуживания и для повышения эффективности работы базы данных можно использовать группы файлов в качестве первичных, вторичных и для журнала транзакций. И при использовании групп первичный файл только один. Определив логическую структуру файлов и их имена, необходимо определить их физические характеристики: первоначальный размер, максимальный размер и приращение, если для файла предусматривается его рост по мере накопления данных. Приращение задается в мегабайтах. Затем следует решить, в каких папках и на каких устройствах наиболее целесообразно разместить файлы. Для обеспечения распараллеливания операций ввода-ввывода файлы одной группы желательно размещать на различных устройствах. Для обеспечения максимальной защищенности от копирования информации соответствующие файлы данных следует размещать на не форматированных (сырых) разделах, которые создаются утилитой fdisk.exe MS-DOS. На таких разделах не существует файловой системы FAT или NTFS, и созданный сервером файл не доступен операционной системе.

При работе системы следует следить за наличием сводного пространства в базе данных пользователя и в системной базе tempdb, при необходимости добавляя в них новые файлы. Эта возможность обеспечивается сервером SQL Server 2000.

Помимо файлов при создании базы данных можно задать сопоставление знаков, которые будет использоваться в этой базе по умолчанию. Если сопоставление не задать, тогда будет действовать сопоставление, указанное при установке сервера. Параметр FOR LOAD оставлен для обратной совместимости со старыми версиями.

В процессе эксплуатации созданной базы данных возникает необходимость в изменении как физических параметров, так и логической структуры этой базы. К управлению базой данных на физическом уровне относится вся работа по изменению имен, размера, количества, положения файлов базы данных, усечению базы данных и журнала транзакций, созданию групп файлов, изменению группы файлов по умолчанию, изменению имени и владельца базы данных. Большинство действий по изменению конфигурации базы данных выполняется с помощью команды ALTER DATABASE. Для уменьшения размера базы данных можно также использовать команды DBCC SHRINKDATABASE , DBCC SHRINKFILE и системная хранимая процедура sp_dboption. На логическом уровне изменяются такие параметры, как выполнение автоматического усечения журнала транзакций, автоматическое создание и обновление статистики, возможность выполнения вложенных триггеров и т.п. – всего 22 параметра. Изменять эти параметры можно командой ALTER DATABASE с параметром SET и процедурой sp_dboption.

Сервер позволяет отсоединять (sp_detach) и присоединять (sp_attach_db) до 32767 баз данных, изменять владельца (sp_changedbowner), просматривать свойства (sp_dboption и DATABASEPROPERTY), получать справки (sp_helpdb) и т.д.

 

 

Задание 1.Создать базу данных для учета продаж с именем Sales, используя один файл данных с именем Sales_dat и один файл для журнала транзакций с именем Sales_log, расположив их в папке \Data, созданной при установке сервера. Физические характеристики файлов таковы:


 

Физическая характеристика Sales_dat Sales_log
Размер файла
Максимальный размер файла
Приращение

 

Одним из вариантов реализации этого задания с использованием языка Transact-SQL может быть такой:

 

 

USE master -- эта системная база необходима при создании; GO

CREATE DATABASE Sales

ON (NAME = Sales_dat,

FILENAME = ‘c:\Program Files\Microsoft SQL Server\Mssql\Data\Saledat.mdf’,

SIZE = 10, -- по умолчанию МВ;

MAXSIZE = 50, FILEGROWTH = 5)

LOG ON (NAME = Sales_log,

FILENAME = ‘c:\Program Files\Microsoft SQL Server\Mssql\Data\Salelog.ldf’,

SIZE = 5MB,

MAXSIZE = 25MB, FILEGROWTH = 5MB)

GO

 

 

Задание 2.Проанализировать объекты созданной базы данных, удалить ее командой

DROP DATABASE Sales и заново создать ее, используя мастер базы данных:

1. В утилите Enterprise Manager щелкните по кнопке Run a Wizard.

2. В открывшемся диалоговом окне выберите папку Database и мастер Create

Database Wizard.

3. В новом окне определяется последовательность шагов по созданию базы данных:

а) задание имени новой базы данных;

б) описание одного или нескольких файлов данных;

в) определение физических характеристик файлов данных;

г) описание одного или нескольких файлов для журнала транзакций;

д) определение физических характеристик файлов для журнала транзакций.

4. Щелкните по кнопке Next.

5. В поле Database name задайте имя базы данных Sales.

6. В поле Database file location задайте или выберите папку для размещения файлов данных:

c:\Program Files\Microsoft SQL Server\Mssql\Data.

7. В поле Transaction Log location задайте или выберите папку для размещения файлов журнала транзакций:

c:\Program Files\Microsoft SQL Server\Mssql\Data.

8. Щелкните по кнопке Next.

9. Задайте имя файла данных и его размер: File Name = Sales_dat Initial Size(MB)

10. Щелкните по кнопке Next.

11. Установите переключатель Automatically grow the database files и задайте приращение Grow the files in megabytes(MB) = 5, а максимальный размер файла данных Restrict file growth to

MB = 50.

12. Щелкните по кнопке Next.

13. Задайте имя файла для журнала транзакций и его размер:


File Name = Sales_log Initial Size(MB) = 5

14. Щелкните по кнопке Next.

15. Установите переключатель Automatically grow the transaction log files и задайте приращение Grow the files in megabytes(MB) = 5, а максимальный размер файла данных Restrict file growth to

MB = 25.

16. Щелкните по кнопке Next.

17. Проверьте параметры создаваемой базы данных.

18. Если какие-либо параметры заданы не верно, то с помощью кнопок <Back возвратитесь в нужное место и исправьте параметр, а затем повторите нужные шаги.

19. Если параметры заданы правильно, то щелкните по кнопке Finish.

20. Проанализируйте объекты созданной базы данных и с помощью контекстного меню выбранного объекта, исполнив команду All Tasks/Generate SQL Scripts, создайте сценарий создания этого объекта.

21. Запишите сценарии всех созданных объектов в папку c:\Abc\Script\NewDB.sql для последующего анализа.

22. Просмотрите файл с транзакциями и проанализируйте его начальное состояние.

23. Проанализируйте содержимое 18 системных таблиц вновь созданной базы данных, используя команду SELECT:

SELECT * имя таблицы

Здесь имя таблицы может быть таким: sysallocation, syscoloumns, syscomments, sysfilegroups, sysfiles, sysobjects, syspermissions, systypes, sysusers.

 

 

Задание 3.Удалить созданную базу данных командой DROP DATABASE Sales и заново создать ее, используя утилиту Enterprise Manager:

1. В контекстном меню папки Database(меню открывается после щелчка правой кнопки мыши по этой папке) выберите пункт New Database.

2. В открытом окне Database Properties на вкладке General в поле Name задайте имя создаваемой базы данных Sales.

3. Выберите вкладку Data Files и задайте все параметры файла данных Sales_dat

(первичного файла).

4. Выберите вкладу Transaction Log и задайте все параметры файла для журнала транзакций Sales_log.

5. Щелкните по кнопке ОК, а затем Apply.

6. Убедитесь, что создана новая база данных с требуемыми параметрами.

 

Задание 4.Создать базу данных с именем Archive, используя три файла данных по 100

Мбайт и два файла для журнала транзакций также по 100 Мбайт, выполнив следующие команды

Transact-SQL:

 

 

USE master

GO

CREATE DATABASE Archive

ON PRIMARI

(NAME = Arch 1,

FILENAME = ‘c:\program files\…\data\archdar1.mdf’, SIZE = 100MB,

MAXSIZE = 200MB, FILEGROWTH = 20MB),

(NAME = Arch 2, -- вторичные файлы *.ndf: FILENAME = ‘c:\program files\…\data\archdat2.ndf’, SIZE = 100MB,

MAXSIZE = 200MB,


FILEGROWTH = 20MB), (NAME = Arch 3,

FILENAME = ‘c:\program files\…\data\archdat3.ndf’, SIZE = 100MB,

MAXSIZE = 200MB, FILEGROWTH = 20MB),

LOG ON

(NAME = Arch log 1,

FILENAME = ‘c:\program files\…\data\archlog1.ldf’, SIZE = 100MB,

MAXSIZE = 200MB, FILEGROWTH = 20MB),

(NAME = Arch log2,

FILENAME = ‘c:\program files\…\data\archlog2.ldf’, SIZE = 100MB,

MAXSIZE = 200MB, FILEGROWTH = 20MB) GO

 

Задание 5.Создать базу данных с именем Products, задавая только файл данных

Prodact_dat размером в 4 Мбайт, выполнив следующие команды Transact-SQL:

 

 

USE master

GO

CREATE DATABASE Products

ON

(NAME = Prod_dat,

FILENAME = ‘c:\program files\…\data\prods.mdf’, SIZE = 4,

MAXSIZE = 10, FILEGROWTH = 1),

GO

 

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

 

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

 

 

USE master

GO

CREATE DATABASE MyTest

GO

 

 

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

 

 

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

 

 

USE master

GO

CREATE DATABASE Products 2


ON

(NAME = Product 2_dat,

FILENAME = ‘c:\Program files\…\Prods 2.mdf’) GO

 

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

 

Задание 8.Создать базу данных с именем Sales, используя три группы файлов,

выполнив следующие команды:

 

 

USE master

GO

CREATE DATABASE Sales

ON PRIMARI

(NAME = SPrim1_dat,

FILENAME = ‘c:\Program Files\…\Data\SPrim1dat.mdf’, SIZE = 10,

MAXSIZE = 50, FILEGROWTH = 15%),

(NAME = Sprim2_dat,

FILENAME = ‘c:\ Program Files\…\Data\SPrim2dat.mdf’, SIZE = 10,

MAXSIZE = 50, FILEGROWTH = 15%),

FILEGROUP SalesGroup1 (NAME = SGrp1Fil1_dat ,

FILENAME = ‘c:\Program Files\…\Data\ SGrp1Fil1dat.ndf’, SIZE = 10,

MAXSIZE = 50, FILEGROWTH = 5),

(NAME = SGrp1Fil2_dat,

FILENAME = ‘c:\Program Files\…\Data\ SGrp1Fil2dat.ndf’, SIZE = 10,

MAXSIZE = 50, FILEGROWTH = 5),

FILEGROUP SalesGroup2 (NAME = SGrp2Fil1_dat ,

FILENAME = ‘c:\Program Files\…\Data\ SGrp2Fil1dat.ndf’, SIZE = 10,

MAXSIZE = 50, FILEGROWTH = 5),

(NAME = SGrp2Fil2_dat ,

FILENAME = ‘c:\ Program Files\…\Data\ SGrp2Fil2dat.ndf’, SIZE = 10,

MAXSIZE = 50, FILEGROWTH = 5),


 

(NAME = Sales_log,


LOG ON


FILENAME = ‘c: :\ Program Files\…\Data\ Sales log.ldf \’, SIZE = 5,

MAXSIZE = 25, FILEGROWTH = 5),

GO

Найдите все файлы базы данных Sales и проверьте их физические характеристики.


Задание 9.Отсоедините базу данных от сервера, выполнив системную хранимую процедуру sp_detach_db:

 

 

GO

EXEC sp_detach_db Sales

GO

 

 

Подсоедините вновь эту базу к серверу с помощью команды CREATE DATABASE,

используя опцию FOR ATTACH: GO