Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL2008_Administration.doc
Скачиваний:
90
Добавлен:
08.11.2018
Размер:
3.38 Mб
Скачать

7.3.3. Объект smo.Server

Объект SMO.Server представдяет экземпляр сервера SQL Server. При помощи этого объекта производится подключение к конкретному серверу SQL Server.

Создание объекта SMO.Server

  1. Для создания объекта SMO.Server, подключенного к экземпляру SQL Server по умолчанию на локальном компьютере при помощи аутентификации Windows используется следующая запись: Dim oSrv As New Server

  2. Для подключения при помощи аутентификации Windows к серверу SQL Server на другом компьютере или к именованному экземпляру на локальном компьютере, используется другой вариант: Dim oSrv As New Server("Server1\Instance2")

  3. Если для подключения нужно использовать аутентификацию 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]