7.3.3. Объект smo.Server
Объект SMO.Server представдяет экземпляр сервера SQL Server. При помощи этого объекта производится подключение к конкретному серверу SQL Server.
Создание объекта SMO.Server
-
Для создания объекта SMO.Server, подключенного к экземпляру SQL Server по умолчанию на локальном компьютере при помощи аутентификации Windows используется следующая запись: Dim oSrv As New Server
-
Для подключения при помощи аутентификации Windows к серверу SQL Server на другом компьютере или к именованному экземпляру на локальном компьютере, используется другой вариант: Dim oSrv As New Server("Server1\Instance2")
-
Если для подключения нужно использовать аутентификацию SQL Server, то придется вначале создать и настроить объект SQL.Server.Management.Common.ServerConnection, а затем передать его в качестве параметра конструктору объекта SMO.Server:
Dim oConn As New ServerConnection oConn.ServerInstance = "Server1\Instance2" oConn.LoginSecure = False 'Выбираем аутентификацию SQL Server oConn.Login = "sa" oConn.Password = "P@ssw0rd" Dim oSrv As New Server(oConn) MsgBox(oSrv.Name) 'Проверяем
После создания объекта SMO.Server можно использовать свойства и методы этого объекта — либо для того, чтобы с их помощью непосредственно выполнить какие-то действия, либо для получения доступа к другим объектам SQL Server (базам данных, учетными записями и т.п.).
Основные свойства объекта SMO.Server:
-
BackupDevices — возвращает коллекцию BackupDeviceCollection, представляющую логические устройства резервного копирования, созданные на данном сервере;
-
Configuration — это свойство возвращает объект Configuration, который представляет доступ к параметрам настройки сервера. Эти параметры обычно настраиваются или из свойств сервера в Management Studio, или при помощи Surface Area Configuration, или при помощи хранимой процедуры sp_configure. Например, узнать, разрешена ли на сервере работа со сборками .NET из кода Transact-SQL, можно так:
MsgBox(oSrv.Configuration.IsSqlClrEnabled.RunValue)
Включить этот параметр можно следующим образом:
oSrv.Configuration.IsSqlClrEnabled.ConfigValue = 1
oSrv.Configuration.Alter()
-
Settings - это свойство возвращает другие наборы настроек для сервера;
-
Information – свойство, отвечающее за параметры работы сервера, которые программным образом изменить невозможно (версия, язык, количество процессоров в системе и т.п.);
-
Databases — при помощи этого свойства можно получить доступ к коллекции DatabaseCollection, в которой находятся объекты баз данных данного сервера;
-
FullTextService — при помощи этого свойства можно получить доступ к одноименному объекту, представляющему службу полнотекстового поиска на SQL Server 2008;
-
InstanceName — возвращает имя экземпляра SQL Server (например, Instance2). Информацию о полном имени сервера (вида Server1\Instance2) можно получить при помощи свойства Name;
-
JobServer — при помощи этого объекта можно получить доступ как к настройкам SQL Server Agent, так и к его объектам, с возможностью их программного создания, изменения, запуска, удаления и т.п. Например, чтобы получить информацию обо всех заданиях SQL Server Agent на данном сервере, можно использовать код вида:
For Each oJob In oSrv.JobServer.Jobs MsgBox(oJob.Name) Next
-
LinkedServers — это свойство возвращает коллекцию LinkedServers, представляющую объекты LinkedServer (подключенные серверы, к которым можно выполнять запросы из кода Transact-SQL). В Management Studio работа с ними производится из контейнера Server Objects Linked Servers. Средствами SMO создать объект подключенного сервера можно, например, так:
Dim oLinkedServer As New LinkedServer(oSrv, "LONDON7") oLinkedServer.ProductName = "SQL Server" oLinkedServer.Create()
-
Logins — это свойство позволяет получить доступ к коллекции LoginCollection, в которой находятся объекты Login. Эти объекты представляют объекты учетных записей на SQL Server. Создать новую учетную запись типа SQL Server можно, например, так:
Dim oLogin As New Login(oSrv, "NewSMOLogin1") oLogin.LoginType = LoginType.SqlLogin oLogin.Create("P@ssw0rd")
-
Mail — при помощи этого свойства можно получить доступ к объекту SQLMail. Несмотря на название, этот объект представляет не подсистему SQLMail, а объекты Database Mail. Обычно он используется для того, чтобы программным путем создать или настроить профили и учетные записи Database Mail;
-
NotificationServices — это свойство позволяет получить доступ к объекту NotificationServices, которое представляет службы Notification Services, установленные для данного экземпляра SQL Server. В отличие от других аналогичных ветвей, эта ветвь не позволяет получить нормальный доступ к функциональным возможностям Notification Services. Причина проста: для работы с Notification Services предназначен свой собственный набор программных объектов, который находится в пространстве имен Microsoft.SqlServer.Management.Nmo;
-
ReplicationServer — это свойство позволяет получить доступ к объекту ReplicationServer, представляющему подсистему репликации на SQL Server 2008. Для управления репликацией также предусмотрен свой собственный набор объектов (RMO — Replication Management Objects), но корневым для всего многочисленного набора объектов репликации является именно объект ReplicationServer, доступ к которому производится при помощи этого свойства;
-
Roles — это свойство позволяет получить доступ к объекту ServerRoleCollection, представляющему все роли сервера (объекты ServerRole). Эти объекты обычно используются для назначения серверных ролей учетным записям или отмены таких назначений.
Основные методы объекта SMO.Server
-
Alter() — этот метод можно вызывать после изменения параметров настройки сервера. Обычно этот метод вызывается не для сервера, а для объектов Configuration и Settings;
-
AttachDatabase() и DetachDatabase() — эти методы позволяют провести соответственно подключение и отключение базы данных к серверу с указанными вами параметрами;
-
Enum...() — эти многочисленные методы позволяют вернуть (в виде объекта DataTable или соответствующей коллекции) информацию об объектах SQL Server. Например, метод EnumLocks() возвращает информацию обо всех блокировках на сервере, EnumProcesses() — обо всех процессах на сервере и т.п.;
-
GetActiveDBConnectionCount() — позволяет узнать, сколько пользователей в настоящее время подключено к указанной базе данных, например:
MsgBox(oSrv.GetActiveDBConnectionCount("db1"))
-
GetSMOObject() — позволяет получить ссылку на объект в иерархии объектов SQL Server по URN пути;
-
KillAllProcesses() — этот метод принудительно отключает всех пользователей от указанной вами базы данных. Обычно используется перед выполнением каких-либо операций с базой данных;
-
KillDatabase() — удаление указанной базы данных (вместе с файлами). Все имеющиеся в настоящее время подключения пользователей к этой базе данных будут принудительно закрыты;
-
KillProccess() — возможность принудительно закрыть пользовательское подключение к SQL Server. Для процесса нужно указать его ID. ID процесса можно получить при помощи хранимых процедур (например, sp_who) или при помощи метода EnumProcesses();
-
PingServerVersion() — этот метод принимает имя опрашиваемого сервера и возвращает объект ServerVersion с информацией о версии SQL Server (в трех частях). Этот метод очень удобно использовать для выявления серверов SQL Server, на которых не установлены пакеты обновлений и патчи;
-
ReadErrorLog() — возвращает (при помощи объекта DataTable) информацию из текущего или указанного вами журнала ошибок SQL Server.
- Академия специальных курсов по информационным технологиям
- Глава 6. Автоматизация администрирования sql Server 2008 46
- Глава 7. Выполнение административных операций при помощи объектных моделей smo, sql-dmo и wmi 66
- Глава 8. Мониторинг и оптимизация производительности sql Server 2008 83
- Глава 9. Применение sql Server Integration Services 106
- Глава 10. Средства обеспечения отказоустойчивости sql Server 2008 131
- Глава 11. Репликация в sql Server 2008 140
- 1. Планирование и установка sql Server 2008
- 1.1 Планирование установки sql Server 2008
- 1.1.1 Оценка архитектуры приложения на основе sql Server 2008
- 1.1.2 Выбор оборудования
- 1.1.3 Выбор редакции sql Server 2008
- 1.2 Установка sql Server 2008
- 1.2.1 Начало установки. Выбор набора компонентов
- 1.2.2 Работа с именованными экземплярами
- 1.2.3 Выбор учетной записи для служб sql Server
- 1.2.4 Выбор режима аутентификации sql Server 2008
- 1.2.5 Выбор кодировки и порядка сортировки
- 1.2.6 Остальные параметры установки
- 1.3 Автоматизированная и удаленная установка
- 1.4 Проверка установки и выполнение послеустановочных задач
- 1.4.1 Проверка результатов установки
- 1.4.2 Настройка серверных сетевых библиотек Сетевые библиотеки
- Настройка сетевых библиотек
- 1.4.3 Другие послеустановочные задачи
- 2. Средства администрирования sql Server 2008
- 2.1.2 Окно Object Explorer («f8»)
- 2.1.3 Окно Summary («f7»)
- Принцип работы с Solution Explorer:
- 2.1.5 Другие окна sql Server Management Studio
- 2.1.6 Способы создания скриптов в Management Studio
- 2.1.7 Дополнительные возможности Management Studio
- 2.3.2 Службы sql Server 2008
- Службы, входящие в состав sql Server 2008:
- 2.3.3 Настройка клиентских сетевых библиотек средствами sql Server Configuration Manager. Sql Native Client
- 2.4.1 Применение sqlCmd
- 2.4.2 Специальный режим подключения Dedicated Administrator Connection (dac)
- 2.8 Другие графические утилиты sql Server 2008
- 2.9 Другие консольные утилиты sql Server 2008
- 3. Создание баз данных и настройка параметров
- 3.1 Служебные и учебные базы данных sql Server 2008
- 3.2 Физическая структура базы данных
- 3.2.1 Файлы баз данных и журналов транзакций
- 3.2.2 Определение размера файлов данных
- 3.2.3 Определение размера файлов журналов транзакций
- 3.2.4 Экстенты и страницы
- 3.2.5 Применение файловых групп
- 3.3 Логическая структура базы данных
- 3.4 Создание пользовательских баз данных
- 3.4.1 Создание базы данных из sql Server Management Studio
- 3.4.2 Создание скрипта, описывающего базу данных
- Создание бд с помощью команды Create Database.
- Генерация скрипта для существующей бд.
- 1 Способ: Создание скрипта на создание базы данных и настройку ее параметров
- 2 Способ: Создание скрипта, содержащего команды на создание объектов баз данных
- Использование шаблона редактора кода
- 3.4.3 Перенос базы данных
- Подключение файлов существующей базы данных
- Копирование базы данных при помощи Copy Database Wizard
- 3.5 Основные параметры базы данных
- 3.5.1 Режим восстановления базы данных (Recovery Model)
- 3.5.2 Режимы работы базы данных
- 3.6 Сопровождение баз данных
- 3.6.1 Увеличение размера базы данных
- 3.6.2 Уменьшение размера базы данных
- 3.6.3 Перенос файлов базы данных
- 3.6.4 Переименование базы данных
- 3.6.5 Изменение владельца базы данных
- 3.6.6 Удаление базы данных
- 3.6.7 Проверка целостности базы данных
- 4. Безопасность sql Server 2008
- 4.1 Терминология и основы системы безопасности sql Server 2008
- 4.2 Учетные записи sql Server 2008
- 4.2.1 Выбор типа учетной записи
- 4.2.2 Создание учетной записи и настройка ее параметров
- 4.2.3 Режимы аутентификации sql Server 2008. Аудит попыток входа
- 4.2.4 Учетные записи, создаваемые по умолчанию
- 4.2.5 Серверные роли. Разрешения на уровне сервера
- Добавление учетной записи в состав роли сервера и настройка прав
- 4.3 Пользователи баз данных и схемы
- 4.3.1 Создание, изменение и удаление пользователей базы данных
- 4.3.2 Встроенные пользователи базы данных
- 4.3.3 Встроенные роли баз данных
- 4.3.4 Создание пользовательской роли
- 4.3.5 Роли приложений
- 4.3.6 Управление схемами базы данных
- 4.3.5 Разрешения sql Server 2008
- 4.3.6 Предоставление прав на объекты в базе данных
- 4.4 Изменение контекста выполнения. Выражение Execute As
- 4.4.1 Предоставление права impersonate
- 4.4.2 Изменение контекста выполнения
- 5. Резервное копирование и восстановление баз данных sql Server 2008
- 5.1 Планирование резервного копирования
- 5.1.1 Выбор оборудования для хранения резервных копий
- 5.1.2 Устройства резервного копирования
- 5.1.3 Типы резервного копирования
- 5.1.4 Расписание резервного копирования
- 5.2 Проведение резервного копирования
- 5.2.1 Средства для выполнения резервного копирования
- 5.2.2 Параметры резервного копирования
- 5.2.3 Получение информации о резервном копировании и создание отчетов
- 5.3 Основы восстановления баз данных
- 5.3.1 Терминалогия восстановления бд из резервной копии
- 5.3.2 Общий план восстановления из резервной копии
- 5.3.3 Подготовка к восстановлению
- 5.4 Проведение восстановления
- 5.5 Специальные ситуации восстановления
- 5.5.1 Восстановление базы данных в оперативном режиме (online)
- 5.5.2 Восстановление отдельных страниц базы данных
- 5.5.3 Восстановление системных баз данных
- Глава 6. Автоматизация администрирования sql Server 2008
- 6.1. Автоматизация административных операций средствами sql Server Agent
- 6.1.2. Параметры настройки sql Server Agent
- 6.2. Работа с заданиями sql Server Agent
- 6.2.1. Параметры заданий.
- 6.2.2. Параметры этапов заданий.
- 6.2.3. Запуск заданий.
- 6.2.4. Настройка расписания заданий.
- 6.2.5. Настройка параметров отчета о завершении задания.
- 6.2.6. Безопасность при выполнении заданий. Настройка учетных записей прокси
- 6.2.7. Просмотр истории выполнения заданий
- 6.3. Мультисерверные задания
- 6.3.1 Предварительная подготовка:
- 6.3.2 Создание и настройка мультисерверных заданий
- 6.4. Работа с предупреждениями
- 6.4.1 Создание предупреждения
- 6.4.2 Предупреждения типа sql Server event alert
- 6.4.3 Предупреждения типа sql Server Performance condition alert
- 6.5. Работа с операторами
- 6.6. Настройка электронной почты в sql Server 2008
- 6.6.1. Обзор возможностей sql Server 2008 для работы с электронной почтой
- 6.6.2. Работа с Database Mail (sqLiMail)
- 6.6.3 Настройка Database Mail
- 6.6.4 Хранимые процедуры Database Mail
- 6.6.5 Настройка sql Server Agent для использования электронной почты
- 6.6.6 Получение информации о работе Database Mail
- 6.6.7. Работа с sqlMail
- 6.6.8 Хранимые процедуры для работы с sqlMail
- 6.6.9. Применение объекта cdo.Message для работы с электронной почтой sql Server и sql Server Agent
- 6.6.10. Использование утилит для отправки сообщений из командной строки
- 6.7. Планы обслуживания баз данных (Database Maintenance Plans)
- Глава 7. Выполнение административных операций при помощи объектных моделей smo, sql-dmo и wmi
- 7.1. Применение скриптов для выполнения административных операций
- 7.2. Объектная модель sql-dmo
- 7.2.1. Обзор объектной модели sql-dmo
- 7.2.2. Объект sqldmo.Application
- 7.2.3. Объект sqldmo.SqlServer2
- 7.2.4. Объект sqldmo.Database2
- 7.3. Объектная модель smo
- 7.3.1. Обзор объектной модели smo
- 7.3.2. Свойства и методы объектов smo
- 7.3.3. Объект smo.Server
- 7.3.4. Объект smo.Database
- 7.4.1. Характеристики wmi
- 7.4.3. Программные средства для работы с wmi
- 7.4.4. Подключение к службе wmi
- 7.4.5. Язык wql: подключаемся к объектам wmi
- 7.4.6. Работа с событиями в wmi
- 7.4.7. Объекты wmi Provider for Configuration Management
- 7.4.8. Работа с wmi Provider for Server Events
- Глава 8. Мониторинг и оптимизация производительности sql Server 2008
- 8.1. Мониторинг активности пользователей
- 8.1.1. Применение Activity Monitor
- 8.1.2. Использование хранимых процедур и динамических представлений
- 8.1.3. Использование sql Profiler (профилировщика)
- 8.1.4. Использование хранимых процедур трассировки
- 8.1.5. Применение триггеров ddl
- 8.1.6. Другие средства мониторинга активности пользователей и уведомления о событиях
- 8.2. Журналы sql Server 2008
- 8.3. Мониторинг производительности sql Server 2008
- 8.3.1. Терминология мониторинга производительности
- 8.3.2. Средства для мониторинга и анализа производительности
- 8.3.3. Нагрузочное тестирование
- 8.3.4. Приемы работы с Системным монитором
- 8.3.5. Основы работы с объектами и счетчиками
- 8.3.6. Счетчики для анализа загрузки процессора
- 8.3.7. Счетчики для анализа загрузки оперативной памяти
- 8.3.8. Счетчики для анализа производительности дисковой подсистемы
- 8.3.9. Счетчики для анализа производительности сетевой подсистемы
- 8.3.10. Объекты System Monitor для мониторинга работы sql Server 2008
- 8.4. Оптимизация работы sql Server
- 8.4.1. Оптимизация операционной системы для работы с sql Server 2008
- 8.4.3. Оптимизация подключений к sql Server 2008
- 8.4.4. Оптимизация системы индексов. Использование Database Tuning Advisor
- 8.4.5. Оценка уровня фрагментации индексов и таблиц
- 8.4.6. Устранение фрагментации индексов и таблиц
- 8.4.7. Работа с блокировками
- 8.4.8. Оптимизация запросов
- Глава 9. Применение sql Server Integration Services
- 9.1. Средства для работы с ssis
- 9.2. Преобразование пакетов dts sql Server 2000 в формат пакетов ssis
- 9.3. Использование мастера импорта/экспорта данных
- 9.4. Использование ssis Designer для создания пакетов
- 9.5. Менеджеры подключений (Connection Managers)
- 9.6. Работа с Data Flow Task
- 9.6.1. Что такое Data Flow Task
- 9.6.2. Элементы Data Flow Task
- 9.6.3. Источники и назначения Data Flow Task
- 9.6.4. Преобразования Data Flow Task
- 9.6.5. Пути и логика выполнение Data Flow Task
- 9.14. Другие задачи копирования объектов sql Server
- 9.19.1 Пример использования задачи wmi Event Watcher Task
- 9.21. Контейнеры ssis
- 8.21.1 Контейнер For Loop
- 8.21.2 Контейнер Foreach Loop
- 8.21.3 Контейнер Sequence
- 9.22. Задачи планов обслуживания (Maintenance Plans)
- 9.23. Ограничения предшественников (precedence constraints)
- 9.24. Протоколирование выполнения пакетов
- 9.25. Работа с конфигурациями
- 9.26. Хранение пакетов
- 9.27. Безопасность пакетов ssis
- Использование ролей базы данных msdb
- Применение цифровых подписей для пакетов
- 9.27.1 Настройка уровня защиты пакета
- 9.27.2 Использование ролей базы данных msdb.
- 9.27.3 Применение цифровых подписей для пакетов
- 9.28. Запуск пакетов ssis на выполнение
- 9.28.1 Использование утилиты dtexecui
- Глава 10. Средства обеспечения отказоустойчивости sql Server 2008
- 10.1. Работа sql Server 2008 в кластере
- 10.1.1. Терминология и варианты конфигурации кластера
- 10.1.2. Установка sql Server 2008 в кластер
- 10.2. Автоматическая доставка журналов (log shipping)
- 10.2.1. Терминология доставки журналов
- 10.2.2. Настройка доставки журналов
- 10.2.3. Мониторинг доставки журналов
- 10.2.4. Действия в случае сбоя основного сервера
- 10.2.5. Отмена доставки журналов
- 10.3. Зеркальное отображение баз данных
- 10.3.1. Зеркальное отображение баз данных
- 10.3.2. Терминология зеркального отображения баз данных
- 10.3.3. Настройка зеркального отображения
- 10.3.4. Мониторинг зеркального отображения
- 10.3.5. Смена ролей серверов
- 10.3.6. Приостановка и отмена зеркального отображения
- Глава 11. Репликация в sql Server 2008
- 11.1. Новые возможности репликации sql Server 2008
- 11.2. Терминология системы репликации
- 11.3. Типы репликации
- 11.4. Подготовка к настройке репликации
- 11.5. Настройка репликации
- 11.6. Средства администрирования и мониторинга репликации
- 11.6.1. Средства администрирования репликации
- 11.6.2. Применение Replication Monitor
- 11.6.3. Другие средства мониторинга репликации
- Практические задания по курсу «администрирование баз данных
- Задание для самостоятельной работы 1.1 Установка Microsoft sql Server 2008 Задание:
- Решение:
- Задание для самостоятельной работы 1.2 Просмотр журнала ошибок sql Server и системного журнала Windows Задание:
- Решение:
- Задание для самостоятельной работы 1.3 Просмотр созданных файлов и папок Задание:
- Решение:
- Задание для самостоятельной работы 1.4 Просмотр разрешений доступа, назначенных разделам реестра Задание:
- Решение:
- Задание для самостоятельной работы 2.1 Работа со скриптами в sql Server Management Studio и sqlcmd Ситуация:
- Задание:
- Решение: к пункту 1 — генерация скрипта на создание таблицы:
- К пункту 3 — настройка псевдонима для обращения к серверу:
- К пункту 2 — применение Copy Database Wizard.
- Задание для самостоятельной работы 4.1 Назначение прав на объекты sql Server 2008 и изменение контекста выполнения Задание:
- Решение: к пункту 1 — создание логинов:
- К пункту 2 — предоставление разрешений на схему и проверка прав:
- К пункту 3 - предоставление права на выполнение команды execute as:
- Задание для самостоятельной работы 4.2 Шифрование информации в таблицах баз данных Ситуация:
- Задание:
- Решение: к пункту 1 — создание симметричного ключа:
- К пункту 2 — создание зашифрованной копии таблицы:
- К пункту 3 — запрос к зашифрованным данным:
- Задание для самостоятельной работы 5.1 Резервное копирование и восстановление базы данных Задание:
- Задание для самостоятельной работы 6.1 Применение заданий, предупреждений и операторов Задание:
- Задание для самостоятельной работы 7.1 Применение объектной модели smo Задание:
- Решение:
- Задание для самостоятельной работы 7.2 Применение объектной модели sql-dmo Задание:
- Решение:
- Задание для самостоятельной работы 7.3 Работа с wmi Provider for Configuration Management Задание:
- Решение:
- Задание для самостоятельной работы 8.2 Приемы работы с Системным монитором Задание:
- Решение: к пункту 1 — сохранение набора счетчиков Системного монитора в файл html:
- К пункту 2 — использование файла html для создания журнала:
- К пункту 3 — запуск журнала из командной строки:
- К пункту 4 — анализ собранных данных в Excel:
- Задание для самостоятельной работы 8.3. Оптимизация системы индексов Задание:
- Решение:
- Задание для самостоятельной работы 8.5 Управление уровнем блокировок Задание:
- Решение: к пункту 1 — создание пустой базы данных Microsoft Access:
- К пункту 2 — создание пакета ssis:
- К пункту 3 — применение преобразований Data Flow Task:
- К пункту 4 — создание пакетного файла с зашифрованной командной строкой:
- Задание для самостоятельной работы 11.1 Настройка доставки журналов Задание:
- Решение: к пункту 1 — установка именованного экземпляра sql Server 2008:
- К пункту 2 — создание базы данных db1 на первом экземпляре сервера sql Server 2008:
- К пункту 3 — создание таблицы: см. Задание. К пункту 4 — настройка автоматической доставки журналов:
- К пункту 5 — просмотр информации о поставке журналов:
- К пункту 6 — отмена доставки журналов:
- Задание для самостоятельной работы 12.1 Настройка одноранговой репликации Задание:
- Решение: к пункту 1 — копирование базы данных:
- К пункту 2 — настройка одноранговой репликации: Часть 1 — настройка распределителя:
- Часть 2 — назначение распределителя второму серверу:
- Часть 3 — создание публикации:
- Часть 4 — настройка свойств публикации:
- Часть 5 — настройка топологии одноранговой репликации:
- Часть 6 — проверка репликации: