Команда sdemon
Команда sdemon в основном используется для управления и мониторинга сервисов ArcSDE; однако несколько операций также позволяют управлять прямыми подключениями к базе геоданных и контролировать их.
Для управления сервисами ArcSDE на системах UNIX обычно используются операции start, shutdown, pause и resume. На системах Microsoft Windows сервисы ArcSDE обычно управляются с помощью диалогового окна Сервисы Windows (Windows Services).
Сервисом ArcSDE можно управлять удаленно, включив опции сервера (-s) и сервиса (-i) в командную строку. Сервисами ArcSDE на ОС UNIX можно управлять дистанционно с помощью операции sdemon, выполняемой на компьютере с ОС Windows. Однако сервисами ArcSDE на ОС Windows можно управлять дистанционно с помощью операции sdemon, выполняемой только на компьютерах с ОС Windows. Для удаленного управления сервисом ArcSDE, установленном на UNIX, необходимо выполнить дополнительные шаги. Подробнее см. в Запуск удаленного сервиса ArcSDE на Linux или UNIX и Остановка удаленного сервиса ArcSDE.
Администратор базы геоданных должен иметь соответствующие права для отключения сервиса ArcSDE от базы геоданных. Однако, чтобы отключить прямые подключения к базе геоданных, администратор базы геоданных в большинстве случаев должен иметь дополнительные права. Необходимость тех или иных прав зависит от СУБД, в которой хранится база геоданных. Эти права перечислены ниже:
СУБД | Необходимые права доступа/авторизация |
---|---|
DB2 | Пользователь должен иметь авторизацию DBADM. Пользователь sde обычно имеет такую авторизацию, но если она была отменена, ее необходимо снова назначить для отключения прямых подключений к базе геоданных. Операция отключения не может применяться с sdemon, если вы используете DB2 на операционной системе z (z/OS). |
Informix | Пользователь должен быть пользователем informix. Необходимо установить Informix IDS 11 или более позднюю версию, чтобы использовать операцию kill с командой sdemon для отключения прямых подключений. |
Oracle | Пользователь sde должен обладать либо ролью DBA, либо правами ALTER SYSTEM и SELECT_CATALOG_ROLE. |
SQL Server | Если вы используете базу геоданных со схемой dbo, администратор базы геоданных уже является участником группы sysadmin и имеет возможность отключать прямые подключения. Если используется база геоданных со схемой sde, пользователь должен быть добавлен в фиксированную серверную роль processadmin (не в sysadmin). |

Вы не можете использовать операцию kill для сброса прямых подключений к базе геоданных на PostgreSQL.
Синтаксис
Инструменты командной строки для администрирования ArcSDE используют синтаксис в стиле UNIX и представление в соответствие со следующими соглашениями:
-
- <буква> или – <слово>: задает опцию команды, например, -o, -a или -interleave
Регистр символов также учитывается, будьте внимательны при выборе регистра.
- Текст, расположенный между знаками < и >: обязательный аргумент; замещается соответствующим значением.
Например, -u <DB_user_name> может иметь вид -u mlogin.
- Черта ( | ): список взаимоисключающих аргументов; необходимо выбрать один из списка.
- Квадратные скобки ([ ]) : дополнительный параметр; если значение не указано, используется значение по умолчанию.
- Фигурные скобки ({ }): содержит список возможных вариантов, разделенных символом черты
sdemon -o start {[-i {<service> | <port#>}] {[-s <server_name>] | [-H <sde_directory>]} [-p <GDB_admin_password>]
sdemon -o pause {[-i {<service> | <port#>}] [-s <server_name>] | [-H <sde_directory>]}
sdemon -o resume {[-i {<service> | <port#>}] {[-s <server_name>] | [-H <sde_directory>]} [-p <GDB_admin_password>]
sdemon -o shutdown {[-i <service>] {[-s <server_name>] | [-H <sde_directory>]} [-p <GDB_admin_password>] [-N]
sdemon -o status {[-i {<service> | <port#>}] {[-s <server_name>] | [-H <sde_directory>]} [-q] [-u <user_name>] [-p <user_password>] [-D <database_name>]
sdemon -o info -I <{users | users_long | config | stats | locks |vars | instances}> [-q] {[-i {<service> | <port#>}] {[-s <server_name>] | [-H <sde_directory>]} [-u <user_name>] [-p <user_password>] [-D <database_name>]
sdemon -o kill -t <{ all | pid }> [-p <GDB_admin_password>] [-N] {[-i {<service> | <port#>}] {[-s <server_name>] | [-H <sde_directory>]} [-u <user_name>] [-p <user_password>] [-D <database_name>]
sdemon -h
sdemon -?
Операции
Операция выполняет определенную задачу, связанную с командой, и задается опцией -o. С помощью команды sdeservice можно выполнить следующие операции:
Операция | Описание |
---|---|
Запуск | Запуск указанного сервиса ArcSDE. Только администратор базы геоданных может эту операцию. |
Остановить | Запрет новых клиентских подключений к базе геоданных, как прямых подключений, так и сервисов ArcSDE. Существующие подключения остаются. |
resume | Разрешить новые клиентские подключения к базе геоданных. |
shutdown | Немедленное отключение сервиса ArcSDE, при условии что ни одна задача на сервере не запущена. |
Статус | Сообщает о статусе сервиса и информацию о подключении. |
info | Отображает информацию о пользователях, настройке, статистику, блокировки и переменные среды. Эту операцию может выполнить любой пользователь. |
kill | Сброс всех или выбранных подключений к базе данных. |
Опции
Каждая операция имеет набор опций. Поскольку опция предваряется определенной буквой, их можно указывать в любом порядке. Опции чувствительны к регистру, будьте внимательны.
В зависимости от операции, некоторые опции являются обязательными, а некоторые – нет, как показано в квадратных скобках ([ ]). С командой sdeservice доступны следующие опции:
Опции | Описание |
---|---|
-D | Имя базы данных; не поддерживается в Oracle |
-h или -? | Используйте любую из этих опций, чтобы узнать о синтаксисе команды. Если команда запускается из оболочки С, используйте -h или -\?. |
-H | Домашняя директория ArcSDE (SDEHOME); требуется, только если не задана переменная SDEHOME или используется несколько сервисов |
-i | Имя сервиса ArcSDE или номер порта; требуется, если не используется имя по умолчанию, esri_sde. |
-I | Используется только с операцией info, операция запрашивает информацию о конфигурации, блокировках, статистику, переменные среды или базы данных с пользовательской схемой (Oracle).
|
-N | Не выполнять проверку; операция начинается немедленно после получения команды. |
-o | Задание операции. |
-p | В операциях start, pause, resume, shutdown и kill эта опция используется для задания пароля администратора базы геоданных. В операциях status и info может быть указан пароль любого пользователя. |
-q | Все заголовки и предупреждения подавляются. |
-s | Имя компьютера-сервера ArcSDE (по умолчанию: localhost) |
-t | Используется с операцией kill для выбора одного из вариантов:
|
-u | Имя пользователя базы данных. При использовании с операцией kill, опция -u позволяет задать пользователя базы данных, имеющего разрешения для закрытия подключений. Поскольку администратор может не обладать соответствующими правами, этот пользователь не обязательно должен быть администратором. При использовании с операциями info или status, имя любого пользователя, имеющего доступ к базе геоданных. |
Примеры
Запуск сервиса ArcSDE
В этом примере создается сервис ArcSDE для Informix:
sdeservice -o create -d INFORMIX -p sde.space -i esri_inf
-u informix -P sde.inf
Администратор базы геоданных может использовать операцию start для запуска сервиса ArcSDE. Администратор может запустить сервис локально (выполнить команду на том компьютере где работает сервис) или удаленно. При локальном запуске на компьютере с Windows это можно сделать с помощью меню Сервисы Windows (Windows Services), вместо использования команды sdemon с операцией start. При удаленном запуске сервиса Windows, это необходимо сделать с другого компьютера с Windows, который имеет доступ к хосту по сети, а команда должна содержать имя хоста и имя сервиса. Например:
sdemon -o start -s banana -i arcsde -p spatial.data

Необходимо использовать имя сервиса (в данном случае, arcsde), а не номер порта. Использование номера порта приведет к ошибке.
Можно запустить сервис из командной строки на локальном сервере Windows. Если имеется только один сервис ArcSDE, имя сервиса задавать не нужно. Если вы не укажите пароль администратора, появится запрос.
sdemon -o start
Please enter ArcSDE DBA password:
ArcSDE instance esri_sde started Tues May 03 10:40:09 2011
Чтобы удаленно запустить сервис на сервере UNIX или Linux можно использовать компьютер как с Windows, так и с UNIX или Linux. Однако прежде чем сделать это, необходимы некоторые настройки. См. Задание переменных для пользователя sde OS на Linux или UNIX.
После завершения настройки можно удаленно запустить сервис, используя операцию start.
sdemon -o start -s bluebeard -i sde -p spatial.data
В этом примере показан запуск локального сервиса на сервере UNIX:
sdemon -o start -i arcsde -p mineallmine

Операция start не использует сервис, указанный переменной SDEINSTANCE, даже если он в ней задан.
Приостановка корпоративной базы геоданных
Использование операции pause не разрешает выполнение запросов новых клиентских подключений. Клиентские задачи не могут получить прямой доступ или доступ через сервис ArcSDE к базе геоданных до возобновления ее работы.
sdemon –o pause –i sde_service
Please enter ArcSDE DBA password:
ArcSDE instance sde_service on tool is Paused, no further connections will be allowed.
Операция pause изменяет значение в таблице SERVER_CONFIG, что блокирует прямые подключения пользователей к базе геоданных.
Возобновление работы приостановленной базы геоданных
Использование операции resume снова разрешает выполнение запросов клиентских подключений. После выполнения этой команды клиентские задачи могут подключаться к базе геоданных.
sdemon -o resume -i sde_service
Please enter ArcSDE DBA password:
ArcSDE instance sde_service on tool is Resuming, new connections will now be allowed.
Остановка сервиса ArcSDE
Используйте операцию shutdown для немедленной остановки сервиса ArcSDE, если на нем не выполняются серверные задачи. Если на сервере запущены какие-либо задачи, вам будет предложено удалить их перед остановкой сервиса. Если используется опция -N, все серверные задачи будут остановлены и система немедленно выключится. Обратите внимание, что в этом примере опция -i не задана; поскольку используется имя сервиса по умолчанию, нет необходимости задавать ее в явном виде.
sdemon -o shutdown
Please enter ArcSDE dba password:
ArcSDE instance esri_sde on juke is shutdown
Определение статуса сервиса ArcSDE
Операция status сообщает о работе, приостановке или остановке сервиса ArcSDE, а также сообщает о числе текущих подключений к базе геоданных. В примере ниже выводится сообщение о состоянии экземпляра esri_sde. Видно, что сервис работает (не остановлен и не приостановлен) и имеет два активных подключения.
sdemon -o status
ArcSDE instance esri_sde Status on juke at Mon May 02 08:09:10 2011
----------------------------------------------------------
Server Connection Mode: Accepting Connections
Active Server Processes: 6
База геоданных приостанавливается при ее обновлении. Если вы проверите ее состояние в этот момент, вы увидите следующее сообщение:
ArcSDE instance is currently paused for upgrade, no new connections allowed now
Получение информации о корпоративной базе геоданных
Чтобы отобразить информацию о пользователях, конфигурации, блокировках, статистику или переменные среды корпоративной базы геоданных, используйте операцию info. В этом примере запрашивается информация о конфигурации сервиса ArcSDE (показана только часть информации). Поскольку опция -i не задана, предполагается, что сервис имеет значение по умолчанию (5151).
sdemon -o info -I config
ArcSDE I/O Manager Configuration Parameters
-------------------------------------------
ArcSDE Version 10.1
ArcSDE Server Build 123456
Underlying DBMS PostgreSQL
Max. Server Connections 52
Root Path C:\arcgis
Temp Path C:\Temp
...
В данном примере возвращается информация о блокировках в базе геоданных:
sdemon -o info -I locks -i 99887 -u auser -p dpwd -D gis
ArcSDE Instance 99887 Lock Table Information on server1
No ArcSDE Layer Locks registered.
1 SDE Id: 12, State: 9, Lock Type: Shared State
1 ArcSDE State Lock(s) currently in use.
1 SDE Id: 12, table: 62, Lock Type: Shared Table
1 ArcSDE Table Lock(s) currently in use
No ArcSDE Object Locks registered.
В этом примере запрашивается информация о базах геоданных с пользовательской и sde схемами в базе данных Oracle:
sdemon -o info -I instances
ArcSDE Instance sdeora's instances on blue at Wed May 04 11:45:33 2011
----------------------------------------------------------------
Instance Type Created Id
--------- ------ -------------------------- --------
SDE MASTER Wed Oct 27 09:35:02 2005 0
SDE2 PROJECT Tues Apr 12 08:12:09 2011 1

Или, для получения информации о базах геоданных в пользовательской схеме на Oracle можно использовать SQL для запросов к системной таблице INSTANCES.
В следующем примере видно, какие пользователи подключены к базе геоданных. В возвращенной информации S-ID означает SDE-ID сервера, S-PID – ID процесса сервера на уровне ОС, User – имя пользователя, установившего подключение, Conn – тип подключения (AS = ArcSDE сервис/сервер приложений или DC = прямое подключение), ClientMachine:OS – имя клиентского компьютера и ОС на нем, Started – дата и время инициализации подключения.
sdemon -o info -I users -i 8874 -s myserver
ArcSDE Instance 8874 Registered Server Tasks on myserver at Wed Jun 01 08:33:55 2011
---------------------------------------------------------------
S-ID S-PID User Conn ClientMachine:OS Started
----- ------ ---------- ------ -------------------- ----------
123 558899 JAKE AS dcli:Win32 Wed Jun 01 06:30:00 2011
124 558900 MOLLY DC flying:Win32:XDR Wed Jun 01 07:00:00 2011
Та же информация, возвращаемая с помощью опции users_long выглядит так:
sdemon -o info -I users_long -i 8874 -s myserver
ArcSDE Instance 8874 Registered Server Tasks on myserver at Wed Jun 01 08:34:26 2011
---------------------------------------------------------------
Server task ID: 123
Server task PID: 558899
Connection type: AppSrvr
User name: JAKE
Client machine: dcli
Client OS: Win32
XDR: no
Start time: Wed Jun 01 06:30:00 2011
Server task ID: 124
Server task PID: 558900
Connection type: Direct
User name: MOLLY
Client machine: flying
Ciient OS: Win32
XDR: yes
Start time: Wed Jun 01 07:00:00 2011
Удаление подключений из базы геоданных
Операция kill сбрасывает все или только заданные подключения к сервису ArcSDE или может использоваться для остановки всех или выбранных прямых подключений к базе геоданных.
Операцию kill следует использовать только в том случае, если процесс пользователя завершен некорректно или завис. Однако иногда может потребоваться отключить всех пользователей, например, если после просьбы отключиться для обновления базы геоданных, кто-то остается в системе.
В этом примере сбрасываются все подключения к базе геоданных:
sdemon -o kill -t all -i 4664 -p zeus
В этом примере сбрасывается определенное подключение. Подключение использует процесс с ID (S-ID) 400.
sdemon -o kill -t 400 -i 50999 -p nolooking