|
ЧАСТЬ IV СПРАВОЧНИК
ПРИЛОЖЕНИЕ А КРАТКОЕ ОПИСАНИЕ ИЗМЕНЕНИЙ В V6.0
В этом приложении более детально описываются изменения для ORACLE RDBMS V6.0.
Сокращенный список изменений находится во Введении.
Этот раздел не претендует на исчерпывающее описание, а также не предназначен
для помощи в переходе от Версии 5 к Версии 6. За инструкциями по повышению
версии Вашей базы обратитесь, пожалуйста, к "Руководству пользователя по
инсталяции" для Версии 6.
Терминология
Полный список аналогов и отличий в терминологии между Версиями 5 и 6
представлен в конце этого раздела. В версии 6 термины "база данных" и
"экземпляр" имеют более спецефичное значение, чем в версии 5:
экземпляр процессы и память, необходимые для работы и доступа к базе
данных. Экземпляр представляет из себя "средство доступа" к базе
данных.
база данных набор файлов, содержащих данные (например - словарь данных),
представляет из себя "данные, к которым обращаются".
система базы система должна иметь как минимум один экземпляр
данных (или и одну базу данных
просто -
система)
При подготовке к использованию вместо инициализации Вы "создаете базу данных"
с помощью SQL - оператора CREATE DATABASE, вы- даваемого из утилиты SQL*DBA.
Более подробно См. Главы 1 и 13.
Утилита SQL*DBA
SQL*DBA - это новая утилита, представляющая из себя комбинацию следующих
утилит администратора Версии 5: IOR, ODS, AIJ, CCF. С помощью этой утилиты Вы
можете:
* создавать базу с помощью нового SQL - оператора - CREATE DATABASE
* выполнять любой оператор SQL или PL/SQL.
* стартовать или останавливать один или несколько экземпляров (локальных или
удаленных)
* монтировать (в разделяемом или исключительном режимах) и
открывать базу данных (делать ее доступной)
* включать или выключать режим архивирования данных журнала
* копировать или восстанавливать в процессе работы всю базу или часть ее
* переводить табличное пространство в offline и возвращать в online
* отслеживать (мониторинг) текущую работу базы данных
Некоторые из команд SQL*DBA являются привилегированными для операционной
системы, что требует пользователю, работающему с этой утилитой, иметь
привилегии на выполнение таких команд. Детали смотрите в Вашем "Руководстве
пользователя по инсталяции".
-- 1 --
DBA может подсоединяться к базе с именем пользователя SYS, используя
ключевое слово INTERNAL, для выполнения определенного типа сопровождения
(например - создание базы данных или изменение файлов базы).
Хотя с помощью SQL*DBA Вы и можете выполнять любой SQL - оператор включая
запросы, эта утилита не является средством выдачи отчетов и не имеет
форматирующих возможностей SQL*Plus или других инструментальных средств. Для
более подробной информации об SQL*DBA обратитесь к Главе 13 и Приложению В.
SQL*Loader заменяет ODL
В Версии 6 SQL*Loader заменяет ORACLE Data Loader (ODL). SQL* Loader
включает в себя все возможности ODL и обеспечивает новые. Обратитесь к
"Руководству пользователя по утилитам ORACLE" за более полной информацией по
SQL*Loader. Информация о приспособлении приложений, использующих ODL, для
работы с SQL*Loader содержится в "Руководстве пользователя по инсталяции".
Усовершенствованный словарь данных
В Версии 6 представлен новый набор обзоров словаря данных. Эти обзоры
создаются администратором базы с именем пользователя SYS.
Новые обзоры словаря данных полностью перекрывают и заменяют обзоры Версии
5. Эти обзоры разработаны для облегчения использования и совместимости с
будущими стандартами на SQL: ANSI/ISO. Имена столбцов согласованные и
мнемоничные. В следующей таблице приведен список часто используемых обзоров
Версии 5 и их эквиваленты в Версии 6.
Обзоры V5 Обзоры V6
------------------------------------------------------------
catalog all_objects
dtab dictionary
tab user_tables/user_objects
col user_tab_columns
columns all_tab_columns
views user_views
synonyms user_synonyms
indexes user_indexes
clusters user_clusters
Для обеспечения совместимости снизу вверх для создания словаря данных Версии
5 поставляется файл CATALOG5.SQL. При его использовании создается словарь,
содержащий обзоры Версии 5; владелец этих обзоров - пользователь SYSTEM.
Обзоры словаря Версии 5 могут сосуществовать с обзорами Версии 6. Для отмены
словаря данных Версии 5 воспользуйтесь файлом DROPCAT5.SQL.
Версия 6 - последняя, поддерживающая словарь данных Версии 5. Мы бы Вам
посоветовали модифицировать свои приложения для работы с обновленным словарем,
нежели продолжать использовать старый.
Файловая структура базы данных
Файлы, связанные с Версией 6, описываются ниже и далее сводятся в таблицу.
Управляющие файлы
-- 2 --
Управляющие файлы - это небольшие обязательные файлы, создаваемые и
поддерживаемые ORACLE RDBMS. Их задача - идентификация и верификация
конфигурации базы данных (например - идентификация и расположение файлов базы
и журнала повторного выполнения); конкретно это делается благодаря записи
некоторой информации в процессе работы базы. Управляющие файлы должны быть
обязательно успешно считаны для старта базы, поэтому для гарантирования
максимальной надежности рекомендуется иметь несколько копий этих файлов.
Файлы базы данных
Как и в Версии 5, база данных должна содержать как минимум - один файл
базы. В Версии 6 этот файл относится к табличному пространству SYSTEM,
аналогично тому как в Версии 5 - к партиции SYSTEM. В Версии 6 имя этого файла
должно быть указано при создании базы в команде CREATE DATABASE; при желании
Вы можете назначить несколько файлов базы данных.
Файлы журнала повторного выполнения
Файлы журнала повторного выполнения - новый элемент Версии 5; они выполняют
функцию, аналогичную файлам AIJ в Версии 5. Для работы системы необходимо
использовать как минимум - два файла журнала повторного выполнениы, однако
возможно Вы найдете более удобным использование большего числа файлов журнала.
Как и файлы базы данных, эти файлы специфицируются в команде CREATE DATABASE.
Файл INIT.ORA
Как и в предыдущих версиях системы, файл INIT.ORA может содержать различные
конфигурационные параметры, ограничивающие доступ к базе и повышающих ее
производительность. Хотя этот файл выполняет ту же функцию, многие из его
параметров изменены, а также добавлены новые. Полный справочник этих
параметров Вы найдете в Приложении D.
В приводимой таблице сравниваются соответствующие структуры системы Версии6 и
Версии 5:
Версия 6 Версия 5 Замечания
--------------------------------------------------------------
Файл(ы) базы данных Файл(ы) базы данных Существенно идентичны
Управляющие файлы - Новые в Версии 6
Файл INIT.ORA Файлы INIT.ORA Существенно идентичны
но имена параметров в
версии 6 изменены
Файлы журнала по- Новые для Версии 6,
вторного выполнения аналогичны файлам AIJ
- файлы AIJ Необязательны в V5, устарели в V6
Сегменты отката - Новые и обязательные в Версии 6,
аналогич- BI - файлу в V5
- BI - файл Обязателен в Версии 5, устарел для V6
Структуры базы данных
Некоторые объекты базы данных изменены, заменены или устарели.
-- 3 --
Новые структуры
Табличные пространства Аналогично партициям Версии 5, таблич- ные пространства
содержат объекты базы данных такие как таблицы,
кластеры и обзоры. Они являются минимальной единицей
для восстановления. Параметры памяти, связанные с
табличными пространствами, существенно заменяют опре-
деления памяти в Версии 5.
Сегменты отката Эти структуры используются для непротиворечивого
чтения, отката транзакций и восстановления базы данных.
Они су- щественно заменяют BI - файл в V5.
Последовательности Создаются с помощью оператора CREATE SEQUENCE и
используются для генерации уникальных ключей.
Измененные структуры
некоторые изменения внесены в структуру, память или опции следующих объектов:
Таблицы Изменен формат блоков данных и строк. Для создания объектов
базы могут быть использованы новые параметры памяти и
транзакций (PCTUSED, INITRANS, MAXTRANS).
Обзоры Обзоры в Версии 6 не требуют места больше, чем в Версии 5
(в V5 3 блока на каждый обзор).
Индексы В версии 6 только один индекс может запоминаться в
индексном сегменте (в Версии 5 все индексы для одной табли-
цы могли храниться в одном и том же сегменте). Далее,
индексы могут рас- полагаться в ином табличном прост-
ранстве, нежели таблица, что увеличи- вает
производительность. Все индексы V6 используют прямое (но не
обратное) сжатие.
Кластеры Ключ кластера больше
не должен содер- жать одного столбца NOT NULL. Индексы кластера могут быть
созданы вручную с использованием команды CREATE INDEX (до
того, как к данным можно обра- титься). Временные
сегменты Временные сегменты существенно экви- валентны временным таблицам
Версии 5. Значения NULL Последовательность пустых
столбцов в конце строки не требует памяти, одна- ко если за ними следует
непустой столбец - требуют по одному байту на каждое
значение NULL.
ROWID Имеет идентичный формат,
но отличное от V5 значение.
Память Набор опций, задающих ограничения и характеристики памяти,
Параметры памя- ти связаны с табличными пространства- ми,
таблицами, кластерами и индекса- ми. За полным описанием
фразы STORAGE обратитесь к "Справочному руководству по языку
SQL". Некоторые параметры памяти перешли из Версии 5, а
некото- рые - новые (INITIAL, MINEXTENTS, NEXT, PCTUSED,
PCTINCREASE). Разрешено использовать PCTFREE = 0.
Управление транзакциями
-- 4 --
Для лучшего управления транзакциями в систему были добавлены
некоторые новые возможности:
* COMMIT и ROLLBACK стали теперь операторами языка SQL (хотя
некоторые установки в SQL*Plus позволяют как и в Версии 5 тракто-
вать их в качестве команд SQL*Plus).
* Вы можете применять новый оператор SAVEPOINT для именования
точек сохранения внутри транзакции, к которым вы сможете отка-
титься.
* Неявный rollback выполняется теперь на уровне SQL - опера-
тора, а не транзакции - как было в ORACLE Версии 5.
* Вы можете также включить средство поддержки согласованного
чтения с помощью оператора SET TRANSACTION READ ONLY.
Новые режимы блокировки
В системе ORACLE V6.0 c опцией обработки транзакций
умалчиваемым режимом является блокировка на уровне строк. В Главе
12 объясняются следующие режимы блокировок:
* EXCLUSIVE
* SHARE
* ROW SHARE
* ROW EXCLUSIVE
* SHARE ROW EXCLUSIVE
* SHARE UPDATE
В системе ORACLE с опцией обработки транзакций только исклю-
чающие блокировки резервируют данные на уровне строк, когда имеет
место модификация. При выдаче SELECT FOR UPDATE все строки, удов-
летворяющие условию WHERE, блокируются еще до выборки первой
строки.
ORACLE V6.0 без опции обработки транзакций использует те же
виды блокировок кроме исключительной блокировки таблицы, запраши-
ваемой при выполнении UPDATE. В Версии 5 блокировки выполняются
при выборке каждой строки.
Шифрование пароля
Вследствие того, что ORACLE V6 использует другой алгоритм
шифровки пароля, DBA должен немедленно поменять все пароли после
импорта данных базы.
Коды ошибок
Появилось много новых сообщений об ошибках, а некоторые уста-
рели. Если в Вашей программе жестко зашита проверка определенных
кодов возврата, проверьте, пожалуйста, не изменены ли соответс-
твующие коды.
Изменения в SQL
Реализация языка SQL в Версии 6 содержит ряд изменений. Обра-
титесь к "Справочному руководству по языку SQL" за полным описа-
нием каждого оператора SQL. К упомянутым изменениям относятся
следующие:
-- 5 --
* Изменен список зарезервированных слов; См. "Справочное руко-
водство по языку SQL".
* Введен ряд новых SQL - операторов, включающих:
CREATE | DROP | ALTER DATABASE
CREATE | DROP | ALTER ROLLBACK SEGMENT
CREATE | DROP | ALTER SEQUENCE
CREATE | DROP | ALTER TABLESPACE
SAVEPOINT
SET TRANSACTION READ ONLY
* Ряд команд претерпел изменения, в особенности - связанные
со спецификацией памяти и режимами блокировок.
* Из-за изменений в структуре базы данных все команды, свя-
занные с партициями или определением пространств, устарели.
* Новый оператор CREATE SEQUENCE автоматически генерирует
уникальные возрастающие или убывающие последовательности чисел.
Псевдо-столбцы CURRVAL и NEXTVAL используются для выборки вновь
сгенерированных ключевых значений.
* Синтаксис относительной целостности поддерживается, но не
навязывается. Другими словами, дополнительная информация заносит-
ся в словарь данных, но не используется для проверки правильности
данных. Новые фразы оператора CREATE TABLE включают в себя:
* DEFAULT
* NULL
* UNIQUE
* PRIMARY KEY
* FOREIGN KEY ... REFERENCES
* CHECK
* Вводятся две новых функции в средстве поддержки националь-
ных языков: NLSSORT и REPLACE.
* Ошибки операторов откатываются не на уровне транзакций, а
на уровне SQL - операторов.
* Пустые значения (null) при возрастающей сортировке стано-
вятся вверх, а при убывающей - вниз.
Терминология Версии 5 и Версии 6
В приводимой ниже таблице содержится "свободное" описание
особенностей, зквивалентных Версии 5.1, для которых изменена фор-
ма, имя или способ доступа.
Версия 5.1 Эквивалент в Версии 6.0
------------------------------------------------------------
партиции устарели, заменены на
табличные пространства
определения устарели, заменены на фразы
пространств памяти в CREATE, ALTER
BI - файл устарел, заменен на сегменты отката
утилита ODS команда MONITOR утилиты SQL*DBA
SGA идентична в Версии 6.0
4 фоновых процесса до 5 фоновых процессов (SMON,
(ARH,CLN,BIW,BWR) PMON,DBWR,LGWR и необязательно ARCH)
необязательное ис- устарело, заменено обязательным
пользование AIJ использованием файлов журнала
-- 6 --
повторного выполнения с необяза-
тельной архивацией данных.
(нет) режимы ARCHIVELOG и NOARCHIVELOG
восстановление файлов AIJ SQL*DBA: команда RECOVER
утилита CCF SQL - оператор: CREATE DATABASE
IOR INIT SQL - оператор: CREATE DATABASE
IOR WARM SQL*DBA: команда STARTUP
(нет) монтирование/размонтирование базы данных
(нет) открытие/закрытие базы данных
IOR SHUT SQL*DBA: команда SHUTDOWN
файл INIT.ORA существенно идентичен в V6.0
индекс кластера в V6.0 может быть создан вручную
сегменты данных/индекса существенно идентичны, но по 1
индексу на сегмент
временные таблицы существенно одинаковы, но назы-
ваются сегментами
(нет) управляющий файл (связанный с
базой данных)
таблица словаря данных обзор DICTIONATY
DTAB
ПРИЛОЖЕНИЕ В СПРАВОЧНИК ПО SQL*DBA
SQL*DBA - это инструментальная утилита, помогающая админист-
ратору управлять и следить за работой базы данных. SQL*DBA может
быть использована для выполнения следующих действий:
* старт и остановка экземпляра ORACLE
* монтирование, размонтирование, открытие и закрытие базы
данных ORACLE
* мониторинг в реальном времени использования и производи-
тельности работы базы данных ORACLE
* выполнение резервного копирования и восстановления журналов
и данных базы
* выполнение команд языка SQL.
Это приложение является основным справочным пособием по ис-
пользованию SQL*DBA и содержит информацию об использовании утили-
ты, вводе команд SQL*DBA, а также справочник по всем командам SQL
*DBA, представленный в алфавитном порядке.
Вызов SQL*DBA
Для вызова утилиты SQL*DBA введите в ответ на приглашение операционной]
системы команду SQLDBA. Утилита ответит следующим образом:
Вы ввели: sqldba
Увидели : SQLDBA>
В случае необходимости можно указать, какой тип терминала Вы используете:
SQLDBA TERMINAL=VT100
-- 7 --
Где "тип терминала" - это стандартная аббревиатура, распозна-
ваемая Вашей операционной системой для терминалов, например -
VT100 или IBM3270. Распознаваемые типы терминалов соответствуют
именам терминалов, используемых утилитой CRT. Для более подробной
информации о типах терминалов и где SQL*DBA ожидает найти файлы
.CRT обратитесь к Вашему "Руководству пользователя по инсталя-
ции". Для подробной информации по утилите CRT обратитесь к "Руко-
водству пользователя по утилитам ORACLE".
SQL*DBA можно использовать в интерактивном режиме, а можно и
задать необходимую командную строку в среде операционной системы.
Различные варианты использования SQL*DBA описываются в последую-
щих разделах.
При работе в интерактивном режиме в ответ на приглашение SQL*
DBA Вы можете ввести четыре типа ответов:
* команду SQL*DBA вместе с необязательными аргументами
* SQL - оператор
* блок на PL/SQL
* команду для работы из командного файла.
Большинство команд SQL*DBA требуют, чтобы вначале Вы присое-
динились к системе ORACLE, используя имя пользователя и пароль.
Обычно это выдача команды CONNECT.
Если SQL*DBA обнаружит в вашей команде ошибку, она выдаст всю
введенную строку с указанием места ошибки.
Ввод команд SQL*DBA
Допустимы различные команды SQL*DBA. Команды могут быть:
* длиннее одной строки, если в конце непустой строки ставится
обратный слеш, означающий продолжение
* не требуют специальной пунктуации или завершающих символов
Описание синтаксиса отдельных команд SQL*DBA приводится в
конце данного приложения.
Команды SQL*DBA, не являющиеся привилегированными системными командами,
могут выполняться любым пользователем, имеющим доступ к утилите SQL*DBA.
Привилегированные команды SQL*DBS
Некоторые команды SQL*DBA являются системными привилегирован-
ными из-за сильного эффекта, оказываемого на базу данных. Напри-
мер - команды STARTUP, SHUTDOWN, CONNECT INTERNAL - это привиле-
гированные команды. Эти команды может выполнять пользователь, который:
* имеет доступ к программе SQL*DBA
* имеет системный доступ для выполнения привилегированных команд SQL*DBA.
Количество этих пользователей должно быть ограничено и обычно
они являются администраторами базы данных. Так как оба вида дос-
тупа зависят от операционной системы, обратитесь за деталями к со-
ответствующему "Руководству пользователя по инсталяции".
Выдача команд SQL
-- 8 --
Если Вы присоединены к базе данных, то сможете выполнить лю-
бой SQL - оператор из среды SQL*DBA. SQL - оператор считается
завершенным и может начать выполняться, если верно следующее:
* во входной строке первым и единственным символом является слеш или
* входная строка завершается точкой с запятой
Таким образом, ниже приводятся правильные команды SQL*DBA:
SQLDBA> CONNECT scott/tiger
SQLDBA> SELECT * FROM DICTIONARY
2> WHERE TABLE_NAME LIKE 'USER_%';
SQLDBA> SELECT * FROM SCOTT.EMP
2> /
Для любого SQL - оператора применяются элементарные способы
безопасности: пользователь, присоединившийся к базе данных, дол-
жен иметь соответствующие привилегии на выполнение этого операто-
ра. Например, если пользователь SCOTT пользуется утилитой SQL*DBA
и не имеет привилегий DBA, то для доступа к таблице NANCY.PAYROLL
пользователя NANCY он должен иметь доступ по SELECT.
Заметьте, что в отличие от SQL*Plus, SQL*DBA не имеет буфера
для SQL - операторов, а значит в ней не работают команды работы с
буфером SQL*Plus.
Выдача команд PL/SQL
Если у Вас инсталирована ORACLE RDBMS с опцией обработки
транзакций, то из среды SQL*DBA Вы можете выполнять команды
PL/SQL. Для завершения ввода команды PL/SQL или SQL - оператора
без выполнения используйте точку (.). Строки, начинающиеся с
DECLARE или BEGIN нельзя завершать точкой с запятой. Для выполне-
ния блока команд PL/SQL введите в очередной строке слеш.
Выполнение командных файлов
Для выполнения командного файла перед его именем задается символ "эт" (@):
SQLDBA> @beginday
Если не указано расширение имени файла, предполагается SQL.
Нет необходимости завершать такую команду слешем или точкой с за-
пятой. Внутри командного файла все SQL - операторы должны завер-
шаться точкой с запятой или слешем если Вы хотите, чтобы они вы-
полнились (т.к. SQL*DBA не имеет буфера, как SQL*Plus). Из команд-
ного файла можно вызывать другие командные файлы; глубина вложения
командных файлов зависит от операционной системы.
Выдача команд с уровня операционной системы
-- 9 --
Команды SQL*DBA можно выполнять без входа в среду утилиты,
вводя их в командной строке SQL*DBA. В командной строке можно
указывать либо команду SQL*DBA, либо файл, который надо выпол-
нить. Синтаксис командной строки следующий:
SQLDBA [ COMMAND="command text" ] [ TERMINAL=terminal_type ]
Например:
SQLDBA command=""startup dba pfile=myinit.ora""
(Некоторые операционные системы, например - VMS, требуют до-
полнительные кавычки для их включения в строку).
Использование SQL*DBA на распределенном оборудовании
Если дополнительно инсталирован SQL*Net, утилита SQL*DBA мо-
жет присоединяться к другим базам, находящимся в узлах сети.
Следовательно, SQL*DBA может использоваться для запуска экземпля-
ра в удаленном узле.
Для указания экземпляра для базы, с которой Вы хотите рабо-
тать, воспользуйтесь командой SET INSTANCE. Этот экземпляр может
затем использоваться для последующей выдачи команд STARTUP,
SHUTDOWN, MONITOR, CONNECT а также - любых SQL - операторов без
явного указания базы данных.
Более детально команды SET INSTANCE и SHOW INSTANCE описаны в Главе 22.
Мониторинг базы данных с помощью команды MONITOR
Используя команду MONITOR, Вы можете отслеживать текущую ра-
боту базы данных. К примеру, Вы можете увидеть:
* имена работающих в данное время пользователей ORACLE
* какие программы работают
* какие пользователи ожидают других пользователей
* к каким таблицам они обращаются
* ввод/вывод
* обобщающую статистику об использовании базы данных.
Отдельные экраны монитора Вы можете вызывать непосредственно:
SQLDBA> MONITOR LOCK
или вызвав меню монитора, просто набрав: MONITOR. Это меню
показано на Рис. В-1.
Ъ----------------------------------------------------------------ї
і і
і SQL*DBA MONITOR Menu і
і і
і Cycle n - Set cycle interval to 'n' secs і
і Exit - Exit Monitor і
і File IO - I/O on per file basis і
і IO [pid][pid] - I/O histogram of process і
і LAtch - Latches currently held і
і LOck [all] [pid][pid] - Locks held/waited for і
і Process [pid][pid] - Process information і
-- 10 --
і Rollback - Rollback segment statistics і
і SPool [filename|OFF] - Start/Stop writing log file і
і STatistics [class][pid][pid] - System activity summary і
і Table [pid][pid] - Table access information і
і User [pid][pid] - User information і
і і
і Enter Option (C,E,F,I,LA,LO,P,R,SP,ST,T,U) and parameter(s) і
А----------------------------------------------------------------Щ
Рисунок В-1 Меню команды MONITOR
Так как MONITOR предоставляет периодически меняющуюся инфор-
мацию о работе базы данных, используя его в течение некоторого
времени вы можете выделить образцы нормальной и ненормальной ра-
боты базы данных.
Экран команды MONITOR обновляется через определенные интерва-
лы. Подразумеваемый интервал - 5 секунд; его можно изменить с по-
мощью команды SET CYCLE. Хотя реально можно задавать значения
интервала от 1 до 3600 секунд, рекомендуется минимально указывать
5 секунд (из-за накладных расходов на регенерацию экрана).
Set cycle interval to 'n' secs - Установить интервал регенера-
ции 'n' секунд
Exit Monitor - Выход из монитора
I/O on per file basis - Ввод/вывод на базе файлов
I/O histogram of process - Гистограмма ввода/вывода процесса
Latches currently held - Текущие закрытые защелки
Locks held/waited for - Блокировки/ожидание блокировок
Process information - Информация о процессе
Rollback segment statistics - Статистика сегментов отката
Start/Stop writing log file - Начало/конец записи в файл журнала
System activity summary - Краткий отчет о работе системы
Table access information - Информация по обращениям к таблицам
User information - Информация о пользователях
Используя команду SQL*DBA - SPOOL, можно направить выходные
данные в файл. Различные экраны команды MONITOR описываются в
следующих разделах.
Таблицы динамической производительности, используемые командой MONITOR
Дополнительно к экранам, выдаваемым командой MONITOR, Вы мо-
жете непосредственно обратиться к данным, на основании которых
экраны формируются. Эти данные хранятся в таблицах, называемых
"Таблицами динамической производительности". Хотя эти таблицы за-
писаны непосредственно в памяти (их нет на дисках), они могут
быть запрошены оператором SELECT аналогично "только-читаемым"
таблицам.
Владельцем этих таблиц является пользователь SYS. Имена таб-
лиц начинаются с префикса V_$, а созданные на их основе обзоры -
с V$. Именно их и надо запрашивать. Полный список этих обзоров
приводится в Приложении Е.
Предоставление другим пользователям прав доступа к экранам команды MONITOR.
-- 11 --
По умолчанию только пользователь SYS имеет доступ к таблицам
динамической производительности и, соответственно, только он
обеспечивается информацией команды MONITOR. Для предоставления
доступа другим пользователям SYS может выполнить файл
MONITOR.SQL. Этот файл содержит необходимые команды GRANT для
предоставления всем пользователям права просмотра экранов монито-
ра. (Они также должны иметь доступ к утилите SQL*DBA для выполне-
ния команды MONITOR).
Для предоставления прав доступа к обзорам динамической эффек-
тивности ограниченному кругу пользователей Вы можете
модифицировать файл MONITOR.SQL.
Характеристики всех экранов команды MONITOR
Примеры выдачи команды MONITOR в этом руководстве взяты из
системы VAX/VMS; их вид может меняться от системы к системе.
Дата и время выдачи показываются в правом верхнем углу экра-
на. Если Вы выдавали команду SET INSTANCE, текущий узел и иденти-
фикатор экземпляра высвечиваются в левом верхнем углу.
По умолчанию экраны будут выдаваться попеременно для каждого
процесса. Если Вы хотите увидеть на одном экране информацию о
нескольких процессах, укажите либо один идентификатор процесса
(PID) - для одного, либо - диапазон идентификаторов - для нес-
кольких. Кроме того, Вы можете запросить статистику на уровне
всей системы (по всем процессам), указав PID 0.
Процесс 1 используется во время старта и никогда более. Про-
цессы со 2 по 5 представляют фоновые процессы (DBWR, LGWR, SMON,
PMON). Процесс 6 представляет ARCH, если он работает. Эти процес-
сы всегда появляются в том же порядке.
Многие идентификаторы объектов для того, чтобы занимать мень-
ше места на экране, представляются в шестнадцатеричном виде.
Если Вам надо получать информацию команды MONITOR на своем
экране, необходимо проверить следующее:
* Есть ли у Вас доступ к SQL*DBA ?
* Есть ли у Вас доступ к таблицам динамической производительности ?
* Правильно ли Вы указали определение терминала (CRT) при запуске SQL*DBA?
Экран MONITOR PROCESS
Пример выдачи команды MONITOR PROCESS показан на Рис. В-2. На
этом экране суммируется информация обо всех процессах, обращаю-
щихся к базе данных через указанный экземпляр (включая и фоновые процессы).
Этот экран можно использовать для определения идентификаторов
пользователей операционной системы (ID), обращающихся к базе дан-
ных через данный экземпляр ORACLE, а также программ ORACLE, кото-
рые они выполняют. Чтобы посмотреть, процесс какого пользователя
работает в настоящий момент и какой SQL - оператор последним об-
рабатывался, воспользуйтесь экраном MONITOR USER.
Ъ----------------------------------------------------------------ї
і і
-- 12 --
і ORACLE Process Monitor Tue Nov 1 16:45:33 і
і і
і ORACLE System System і
і PID PID User Name Terminal Program і
і ------ -------- --------- -------- --------------------------- і
і 2 2C000B92 MMOORE UNKNOWN $2$DUA22:[V6KNLDVE.SH .... і
і 3 2C000793 MMOORE UNKNOWN $2$DUA22:[V6KNLDVE.SH .... і
і 4 2C000B95 MMOORE UNKNOWN $2$DUA22:[V6KNLDVE.SH .... і
і 5 2C000796 MMOORE UNKNOWN $2$DUA22:[V6KNLDVE.SH .... і
і 6 2C001132 SDIMICKZ $1$DUA29:...TP1PROC.EXE і
і 7 2C001550 SDIMICKZ $1$DUA29:...TP1PROC.EXE і
і 8 2C001451 SDIMICKZ $1$DUA29:...TP1PROC.EXE і
і 9 2C001940 SDIMICKZ $1$DUA29:...TP1PROC.EXE і
і 10 2C001653 SDIMICKZ $1$DUA29:...TP1PROC.EXE і
і 11 2C001854 SDIMICKZ $1$DUA29:...TP1PROC.EXE і
і 12 2C001C52 SDIMICKZ $1$DUA29:...TP1PROC.EXE і
і 13 2C001C55 SDIMICKZ $1$DUA29:...TP1PROC.EXE і
і 15 2C00136D SDIMICKZ RTA14: $2$DUA22:[V6KNLDVE.SH .... і
А----------------------------------------------------------------Щ
Рисунок В-2 Пример экрана MONITOR PROCESS
Заметьте, что первые четыре процесса (начиная с процесса 2) -
это четыре фоновых процесса (DBWR, LGWR, SMON, PMON), а если ис-
пользуется и ARCH, он будет показан пятым. Все эти процессы вы-
полняются в одной программе. Имя пользователя, показанное в третьем
столбце, это не имя пользователя ORACLE, а имя пользователя опе-
рационной системы, обратившегося к базе.
Экран MONITOR USER
Пример выдачи команды MONITOR USER показан на Рис. В-3.
Ъ----------------------------------------------------------------ї
і ORACLE User Monitor Tue Nov 1 16:45:33 і
і і
і $1$DUA29:[SDIMMICK.TP1]TP1PROC.EXE і
і і
і Process Information і
і і
і ORACLE PID: 6 Latch Wait: NONE і
і System PID: 2C001132 Lock Wait: NONE і
і User Name: SDIMICKZ і
і Terminal: і
і Status: FOREGROUND і
і і
і Session Information і
і Session #: 1 і
і User Name: TP1 і
і User ID: 5 і
і Command: UPDATE і
А----------------------------------------------------------------Щ
Рисунок В-3 Пример экрана MONITOR USER.
В верхней части экрана показан номер процесса, назначенный
пользователю, идентификатор пользователя операционной системы и
статус системы. Эта информация подобна выдаваемой в команде
MONITOR PROCESS.
-- 13 --
Нижняя часть экрана показывает информацию ORACLE, включая имя
пользователя, номер сеанса (в данном случае 1), и последний вы-
полненный SQL - оператор.
Экpан монитоpа TABLE
Пример выдачи команды MONITOR TABLE приведен на Рис. В-3.
Этот экран показывает таблицы, к которым обращаются из открытых в
текущий момент курсоров. Процесс, показанный в столбце 1 обраща-
ется к таблице из последнего столбца. Чтобы определить, владелец
этой таблицы данный PID или нет, необходимо обратиться к экрану
MONITOR USER и посмотреть, какое имя пользователя ORACLE соот-
ветствует данному идентификатору процесса (PID).
В примере показана выдача для всей системы; можно посмотреть
cоответствующий экран и на базе пользователя.
Ъ----------------------------------------------------------------ї
і ORACLE Table Access Monitor Tue Nov 1 17:25:45 і
і і
і PID Obj# Owner ID Owner Name Table Name і
і --- ----- -------- ------------------ -------------------- і
і 13 14f 5 TP1 BRANCH і
і 13 14e 5 TP1 TELLER і
і 11 14f 5 TP1 BRANCH і
і 11 15d 5 TP1 HISTORY і
і 12 14d 5 TP1 ACCOUNT і
і 12 14e 5 TP1 TELLER і
і 12 15b 5 TP1 HISTORY і
і 12 14f 5 TP1 BRANCH і
і 13 14d 5 TP1 ACCOUNT і
і 13 15b 5 TP1 HISTORY і
і 10 14f 5 TP1 BRANCH і
і 10 14e 5 TP1 TELLER і
і 10 15b 5 TP1 HISTORY і
і 10 14d 5 TP1 ACCOUNT і
А----------------------------------------------------------------Щ
Рисунок В-4 Пример экрана MONITOR TABLE
Число во втором столбце - шестнадцатеричное представление
иденитфикатора объекта базы. Этот шестнадцатеричный ID появляется
также и в экране MONITOR LOCKS. Переведенный в десятичную систему
этот номер представляет собой идентификатор объекта, находящегося в базе.
Экран MONITOR LOCKS
Примеры выдачи информации по команде MONITOR LOCKS показаны
на рисунках В-5 - В-7. Обсуждение типов, а также наз-
начение разделяемых и исключительных блокировок приводится в Главе 12.
Ъ--------------------------------------------------------------------ї
і ORACLE Locks Monitor Tue Nov 1 16:54:27 і
і і
і Uppercase=owner Lower case=waiter і
і18 Res-es 13 Proc. S=Share X=Exclusive l=row-S R=row-X C=S/row-X і
і================--2-3-4-5-6-7-8-9-0-1-2-3-------------------------- і
іRT.......1....0 X і
іRW.10002c1....0 X і
іRW.100030f....d X і
іRW.100030f....f C і
-- 14 --
іRW.1000311....d X і
іRW.100039f....0 X і
іTD.....14d....0 S S S S S S S S і
іTD.....14e....0 S S S S S S S S і
іTD.....14f....0 S S S S S S S S і
іTD.....14a....0 S S S S S S S S і
іTD.....14d....0 R R R R R R R R і
іTD.....14e....0 R R і
іTD.....14f....0 R і
іTD.....14a....0 R R R R і
іTD......11...57 X і
іTD......16...56 X і
іTD......25...56 X і
іTD......28...56 X s і
А--------------------------------------------------------------------Щ
Рисунок В-5 Пример экрана MONITOR LOCKS
Значение выдаваемых аббревиатур следующее:
RT Блокировка буфера журнала повторного выполнения (выпол-
няется LGWR).
TD TD - блокировки - это блокировки операторов DDL в
режимах S или X. Второй после имени блокировки столбец
показывает идентификатор объекта в шестнадцатеричной
форме. Это же число появляется в экране TABLES вместе с
именем объекта.
TM Это блокировки данных в таблицах. Второй после имени
блокировки столбец показывает идентификатор объекта в
шестнадцатеричной форме. Это же число появляется в эк-
ране TABLES вместе с именем объекта.
TS Это блокировки на временные сегменты. Второй после име-
ни блокировки столбец показывает идентификатор времен-
ного сегмента.
TX это блокировки транзакций. Наличие этой блокировки
показывает процесс, выполнивший блокировку строки.
Ъ--------------------------------------------------------------------ї
і ORACLE Locks Monitor Tue Nov 1 16:54:27 і
і і
і Uppercase=owner Lower case=waiter і
і18 Res-es 13 Proc. S=Share X=Exclusive l=row-S R=row-X C=S/row-X і
і================--2-3-4-5-6-7-8-9-0-1-2-3-4------------------------ і
іCF.......0....0 X і
іCS.......0....0 S і
іRT.......1....0 X і
іRW.10002b6....0 X і
іRW.10002c1....0 X і
іRW.10002ca....0 X і
іRW.10002ed....0 X і
іRW.10002f0....0 X і
іRW.100030d....0 C і
іTD.....14d....0 S S S S S S S S і
іTD.....14e....0 S S S S S S S S і
іTD.....14f....0 S S S S S S S S і
іTD.....15a....0 S S S S S S S S і
іTM.....14d....0 R R R R R R R і
іTM.....14e....0 R R R R R і
іTM.....15a....0 R R R R R R і
-- 15 --
іTX......1e...63 X і
іTX......1f...63 X і
іTX......21...62 X і
іTX......23...63 X і
А--------------------------------------------------------------------Щ
Рисунок В-6 Пример экрана MONITOR LOCKS
Ъ--------------------------------------------------------------------ї
і ORACLE Locks Monitor Tue Nov 1 16:54:27 і
і і
і Uppercase=owner Lower case=waiter і
і18 Res-es 13 Proc. S=Share X=Exclusive l=row-S R=row-X C=S/row-X і
і================--2-3-4-5-6-7-8-9-0-1-2-3-4------------------------ і
іRT.......1....0 X і
іRW.10002b4....0 X і
іRW.10002c8....0 X і
іRW.10002de....0 X і
іRW.10002eb....0 X і
іRW.10002ee....0 X і
іRW.1000310....c C і
іTD.....14d....0 S S S S S S S S і
іTD.....14e....0 S S S S S S S S і
іTD.....14f....0 S S S S S S S S і
іTD.....15a....0 S S S S S S S S і
іTD.....14d....0 R R R R R R R R і
іTD.....14e....0 R R R R R і
іTD.....15a....0 R R R R R R R і
іTD.......b...65 X і
іTD.......f...65 X і
іTD......10...65 X і
іTD......21...64 s X і
іTD......23...65 X і
іTD......3c...65 X і
А--------------------------------------------------------------------Щ
Рисунок В-7 Пример экрана MONITOR LOCKS
Экран MONITIR LATCH
Команда MONITIR LATCH может быть использована для отслежива-
ния блокировок внутренних структур ("защелки"). Защелки защищают
внутренние разделяемые структуры памяти в SGA. Пользовательский
или фоновый процесс при обращении ко внутренней структуре "защел-
кивает" ее, а при завершении использования - освобождает. Каждая
защелка защищает свой набор данных, идентифицируемый именем защелки.
На Рис.В-8 показан пример экрана, выдаваемого командой MONITIR LATCH.
Ъ--------------------------------------------------------------------ї
і ORACLE Latch Monitor Tue Nov 1 17:04:04 і
і Willing-to-Wait-Requests- -No-Wait-Requests---- і
іLatch Name PID Total Timeouts Immediates Total Succі
і-------------------- ---- ------- ------- --------- ----- ----і
іprocess allocation 399 1 398 0 0і
іsession allocation 259341 14 259330 0 0і
іmessages 188804 2692 188534 0 0і
іenqueues 299178 3650 296973 0 0і
іcache buffers chains 739510 4972 735253 55002 54661і
іcache buffers lru ch 68236 5976 67740 177362 176054і
іcache buffer handles 71600 141 71462 0 0і
-- 16 --
іmultiblock read obje 2144 0 2144 0 0і
іinter-instance buffe 0 0 0 0 0і
іsystem commit number 101663 168 101502 0 0і
іArchive control 0 0 0 0 0і
іRedo allocation 122233 449 121828 0 0і
іRedo copy 0 0 0 6849 6849і
іDML/DDL allocation 79360 153 79228 0 0і
іtransaction allocati 16075 15 16060 0 0і
іundo global data 14627 4 14623 0 0і
іsequence cache latch 585 2 584 0 0і
іrow cache objects 258989 141 258937 0 0і
А--------------------------------------------------------------------Щ
Рисунок В-8 Пример экрана MONITIR LATCH.
Наиболее интересные в этом экране значения находятся столбце
timeout. Его значения представляют собой время ожидания timeout.
Реализация защелкиваний и алгоритм таймаута сильно зависят от
операционной системы; в некоторых системах таймаут срабатывает
после первого же обращения к ресурсу (если он занят), а в некото-
рых выполняется несколько попыток запроса перед срабатыванием ме-
ханизма таймаута. Если значение таймаута в прежних системах выше,
это явно указывает на возникавшие в них проблемы.
В столбце immediate (непосредственно) показываются защелкива-
ния, выполненные без ожидания.
Сумма чисел в столбцах immediate и timeouts не обязательно
должно равняться столбцу total, так как единственный запрос может
повлечь за собой несколько таймаутов или процесс может завершить-
ся при запросе защелкивания.
Особенно интересны для Вас будут следующие типы защелок:
* enqueues (постановки в очередь)
* cache buffers chains (цепочки кеш-буферов)
* cache buffers lru chain (цепочки буферов LRU)
* chahe buffer handles (обслуживание кеш-буферов)
* redo allocation (распределения в журнале повторного выполнения)
* redo copy (копирование журнала)
Оставшиеся значения используются в основном службой поддержки
Oracle Corporation. Если значения cache ...- параметров относи-
тельно велики для вашей операционной системы и базы, можно умень-
шить в файле INIT.ORA значения параметров DB_BLOCK_MAX_CLEAN_PCT
и DB_BLOCK_TIMEOUT_WRITE_PCT.
Экран MONITOR STATISTICS
Экран MONITOR STATISTICS используется для оперативного отсле-
живания производительности системы. По умолчанию статистика выда-
ется для всех процессов (общесистемная); можно запросить выдачу
информации по отдельному процессу или по ряду процессов. Вся
доступная статистика может быть выдана по команде MONITOR
STATISTICS ALL, а отдельные группы выдаются с использованием сле-
дующего синтаксиса команды:
MONITOR STATS [ USER | ENQUEUE | CACHE | REDO | ALL ]
-- 17 --
За некоторыми исключениями статистика выдается как "число
событий в секунду". Значения выдаются в следующие столбцы:
CUR..Текущее значение элемента статистики для данного процес-
са (или всех процессов). Это значение, модифицированное
в последнем цикле.
AVG..Показывается среднее значение этого элемента статистики
с момента начала показа этого экрана. Если экран выдает-
ся на базе пользователя, показывается среднее значение
по данному процессу; если экран представляет все процес-
сы, то берется среднее значение по всем процессам.
MAX..Показывается максимальное значение этого элемента ста-
тистики, появлявшееся с момента начала выдачи этого экрана.
MIN..Выдается соответствующее минимальное значение по всем циклам.
TOT..Суммарное значение этого элемента статистики с момента начала
выдачи этого экрана (на базе процесса или обще системном уровне).
На Рис В-9 приводится пример выдачи команды MONITOR STATISTICS
Ъ--------------------------------------------------------------------ї
і ORACLE Statistics Monitor Tue Nov 1 16:53:26 і
і ORACLE PID: 0 Session #: 0 User Name: SYSTEM STATISTICS і
іStatistic Name CUR AVG MAX MIN TOT і
і-------------- ----- -------- ------- ------- ------ і
іlongs 0 null null null 69 і
іcurrent longs 0 null null null 13 і
іcumulative opened cu 0 null null null 11841 і
іcerrent open cursors 0 null null null 33 і
іuser commits 0.00 2.68 5.00 0.00 287 і
іuser rollbacks 0.00 0.00 0.00 0.00 0 і
іuser calls 0.40 13.79 24.00 0.40 1475 і
іrecursive calls 0.00 1.50 18.60 0.00 161 і
іmessages sent 0.20 1.79 3.40 0.20 191 і
іmessages received 0.20 1.79 3.40 0.20 191 і
іbackground timeouts 0.20 0.07 0.20 0.00 7 і
А--------------------------------------------------------------------Щ
Рисунок В-9 Пример экрана MONITOR STATISTICS.
background (фоновые таймауты) Эта статистика используется службой
timeouts сопровождения и Вы можете не обращать на нее внимания.
cumulative (общее количество открывавшихся курсоров) Это число
opened открытых открытых курсоров начиная с момента теплого
cursors старта системы (включая и уже закрытые). Это количество
не сбрасывается в нуль при повторной выдаче команды MONITOR.
current Наиболее полезен этот показатель при использовании на
logons общесистемном уровне. Число в столбце CUR показывает
количество регистраций нового процесса за текущий
цикл (если экран выдан на уровне процесса, этот столбец
всегда равен 1). Его значение равно значению показателя
logons. Число в столбце TOT показывает общее количество
текущих регистраций с начала цикла.
current Текущее количество открытых курсоров. Это число более
open cursors полезно не общесистемном уровне.
-- 18 --
logons На общесистемном уровне число в столбце CUR показывает
число новых регистраций процессов в этом цикле и всегда
равно соответствующему числу в строке current logons.
На уровне процессов это число всегда 0 или 1.
Число в столбце TOT - это общее количество зарегистриро-
ванных процессов (включая закончившиеся). Это значение
не обнуляется при запросе экрана и равно общей сумме с
момента теплого пуска.
messages (получено сообщений) Эта статистика используется служ-
received бой сопровождения и на нее можно не обращать внимания.
messages (послано сообщений) Эта статистика используется служ-
sent бой сопровождения и на нее можно не обращать внимания.
recurcive Показывает число рекурсивных вызовов, включая операции
calls со словарем данных. Большое значение этого показателя
говорит о том, что достаточно часто информация не нахо-
дится в кеше словаря. Это может случаться из-за слишком
большого числа операций по разбору SQL - операторов или
если кеш - буфер для анализа слишком мал. Можно расс-
мотреть вопрос об увеличении параметров файла INIT.ORA,
начинающихся с DC.
user Количество обработанных пользовательских вызовов.
calls
user Количество транзакций в данном процессе (или во всей
commits системе). Это число должно быть равно разнице между
user calls и user rollbacks.
user Количество операций rollback для данного процесса.
rollbacks
На рисунке В-10 показан пример экрана MONITOR STATUS ENQUEUE.
Ъ--------------------------------------------------------------------ї
і ORACLE Statistics Monitor Tue Nov 1 16:53:26 і
і ORACLE PID: 0 Session #: 0 User Name: SYSTEM STATISTICS і
іStatistic Name CUR AVG MAX MIN TOT і
і-------------- ----- -------- ------- ------- ------ і
іenqueue timeouts 0.00 0.20 0.60 0.00 3 і
іenqueue waits 0.00 0.47 1.20 0.00 7 і
іenqueue deadlocks 0.00 0.00 0.00 0.00 0 і
іenqueue requests 25.00 22.47 26.20 16.20 337 і
іenqueue conversions 0.40 1.33 3.20 0.40 20 і
іenqueue releases 25.20 21.47 26.00 13.20 322 і
А--------------------------------------------------------------------Щ
Рисунок В-10 Пример экрана MONITOR STATUS ENQUEUE.
enqueue Эта статистика используется службой сопровождения
conversions ORACLE и на нее можно не обращать внимания.
enqueue Количество тупиковых блокировок процессов для опе-
deadlocks раций DDL.
enqueue Эта статистика используется службой сопровождения
releases ORACLE и на нее можно не обращать внимания.
-- 19 --
enqueue Запрошенное количество постановок в очередь для
requests блокировки.
enqueue Сколько раз постановка в очередь выполнена не сра-
timeouts зу.
enqueue Эта статистика используется службой сопровождения
waits ORACLE и на нее можно не обращать внимания.
На рисунках В-11 и В-12 приведены примеры экранов для команды
MONITOR STATISTICS CACHE.
Ъ--------------------------------------------------------------------ї
і ORACLE Statistics Monitor Tue Nov 1 16:41:14 і
і ORACLE PID: 0 Session #: 0 User Name: SYSTEM STATISTICS і
іStatistic Name CUR AVG MAX MIN TOT і
і-------------- ----- -------- ------- ------- ------ і
іdb block gets 40.70 20.46 44.18 0.00 3969 і
іconsistent gets 25.90 12.74 28.40 0.00 2472 і
іphisical reads 6.60 3.60 7.90 0.00 699 і
іphisical writes 9.90 4.39 9.90 0.00 852 і
іdb block changes 42.90 21.35 46.10 0.00 4141 і
іchange write time 0.00 0.00 0.00 0.00 0 і
іcinsistent changes 2.40 1.05 2.60 0.00 204 і
іwrite complete waits 0.90 0.38 1.45 0.00 73 і
іwrite wait time 0.00 0.00 0.00 0.00 0 і
іbuffer busy waits 0.00 0.00 0.00 0.00 0 і
іbusy wait time 0.00 0.00 0.00 0.00 0 і
іredo synch writes 3.10 1.53 3.50 0.00 296 і
іredo synch time 0.00 0.00 0.00 0.00 0 і
іDBWR exchange waits 0.00 0.00 0.00 0.00 0 і
іexchange deadlocks 0.00 0.00 0.00 0.00 0 і
іfree buffer requests 15.30 7.85 17.80 0.00 1523 і
іfree buffer scans 15.30 7.85 17.80 0.00 1523 і
іfree buffer inspects 60.00 29.74 71.20 0.00 5769 і
іfree buffer waits 5.50 2.67 6.60 0.00 0 і
іfree wait time 0.00 0.00 0.00 0.00 і
А--------------------------------------------------------------------Щ
Рисунок В-11 Пример MONITOR STATISTICS CACHE (Стр. 1).
busy wait Эта статистика используется службой сопровождения
time ORACLE и на нее можно не обращать внимания.
buffer busy Количество случаев, когда пользователь запрашивал
буфер в режиме, отличном от текущего. Большое зна-
чение говорит о конкуренции на уровне блоков.
change write Эта статистика используется службой сопровождения
time ORACLE и на нее можно не обращать внимания.
consistent Число модификаций в журнале для обеспечения согла-
changes сованного чтения.
consistent Количество логических операций чтения в режиме
gets непротиворечивого чтения. Сумма этого числа с db
block gets равняется количеству логических чтений.
db block Число логических изменений в текущем блоке базы
changes данных.
-- 20 --
db block Количество запросов на текущую копию блока. Сумма
этого числа и consistent gets равно количеству ло-
гических чтений.
dbwr exchange Используется только при работе нескольких экземп-
waits ляров. Показывает количество обменов блоков между
экземплярами. Имеет смысл только для процесса DBWR.
exchange Показывает сколько раз процесс обнаружил потенци-
deadlocks альную тупиковую ситуацию при обмене двух буферов,
что вызвало внутреннюю, восстановимую ошибку. Об-
мены выполняются только для индексных операций.
Если значение этого параметра велико, увеличьте
значения GC_DB_LOCKS и DB_BLOCK_BUFFERS.
free buffer Показывает количество пропущенных буферов в кеше в
inspected поисках свободного. Высокие значения этого пара-
метра потенциально указывают на то, что пользова-
тельский процесс выполняет слишком большую работу
и DBWR не справляется. Чтобы снизить высокие зна-
чения этого параметра, увеличьте в файле INIT.ORA
параметр DB_BLOCK_MAX_CLEAN_PCT или уменьшите
DB_BLOCK_MAX_SCAN_PCT.
free buffer Необходимое количество свободных буферов.
requested
free buffer Показывает, сколько раз сканировался список LRU
scans для поиска свободного буфера.
free buffer Сколько раз процессу требовался свободный буфер
waits (чтобы прочитать данные с диска или создать блок
для согласованного чтения), а он не был доступен.
free wait time Эта статистика используется службой сопровождения
ORACLE и на нее можно не обращать внимания.
phisical reads Количество обращений к диску для чтения блока дан-
ных из базы.
phisical Количество обращений к диску по записи, выполнен-
writes ных DBWR. Для мульти-пользовательских систем
всегда равен нулю (кроме процесса DBWR).
redo synch Эта статистика используется службой сопровождения
time ORACLE и на нее можно не обращать внимания.
redo synch Количество раз, когда журнал повторного выполнения был
writes записан на диск (обычно при записи транзакции).
write complete Показывает сколько раз процесс ожидал освобождения
waits DBWR для записи текущего блока перед выполнением
изменений.
write wait Эта статистика используется службой сопровождения
time ORACLE и на нее можно не обращать внимания.
-- 21 --
Ъ--------------------------------------------------------------------ї
і ORACLE Statistics Monitor Tue Nov 1 16:42:05 і
і ORACLE PID: 0 Session #: 0 User Name: SYSTEM STATISTICS і
іStatistic Name CUR AVG MAX MIN TOT і
і-------------- ----- -------- ------- ------- ------ і
і...continued (page 2) і
іdbwr timeout 0.00 0.16 0.40 0.00 39 і
іdbwr free needed 0.50 0.40 1.00 0.00 99 і
іdbwr free low 0.00 0.02 0.30 0.00 5 і
іdbwr buffers scanned 0.50 5.20 10.91 1.20 1274 і
іdbwr checkpoints 0.40 0.08 0.40 0.00 19 і
іconsistent forceouts 0.00 0.00 0.00 0.00 0 і
А--------------------------------------------------------------------Щ
Рисунок В-12 Пример MONITOR STATISTICS CACHE (Стр. 2).
consistent Эта статистика используется службой сопровождения
forceouts ORACLE и на нее можно не обращать внимания.
dbwr buffers Количество буферов кеше, заблокированных процессом
scanned DBWR.
dbwr check- Количество контрольных точек, выполненных DBWR
points
dbwr free low Показывает, сколько раз DBWR был уведомлен так как
пользовательский процесс проверил при поиске сво-
бодного буфера количество буферов, равное DB_BLOCK
_MAX_MOD_PCT.
dbwr free Показывает, сколько раз уведомлялся DBWR из-за то-
needed го, что пользовательский процесс не нашел свобод-
ных буферов.
dbwr timeouts Сколько раз DBWR пробуждался по завершении таймаута.
Ъ--------------------------------------------------------------------ї
і ORACLE Statistics Monitor Tue Nov 1 17:29:54 і
і ORACLE PID: 0 Session #: 0 User Name: SYSTEM STATISTICS і
іStatistic Name CUR AVG MAX MIN TOT і
і-------------- ----- -------- ------- ------- -------- і
іredo entries 4.60 16.12 37.40 1.00 661 і
іredo size 836.80 2837.66 6515.00 362.00 116344 і
іredo entries lineari 0.00 0.00 0.00 0.00 0 і
іredo buffer allocati 0.20 0.34 0.60 0.00 14 і
іredo small copies 4.20 15.88 37.00 1.80 651 і
іredo wastage 99.40 401.98 791.00 0.00 16481 і
іredo writer latching 0.00 0.00 0.00 0.00 0 і
іredo writes 1.00 2.12 4.20 0.00 87 і
іredo blocks written 3.40 6.51 15.40 0.00 267 і
іredo write time 0.00 0.00 0.00 0.00 0 і
іredo log switch wait 0.00 0.00 0.00 0.00 0 і
іredo chunk allocatio 0.00 0.07 0.20 0.00 3 і
іredo log space reque 1.80 1.34 3.40 0.00 55 і
іredo log space wait 0.00 0.00 0.00 0.00 0 і
іredo log switch inte 0.00 0.00 0.00 0.00 0 і
А--------------------------------------------------------------------Щ
Рисунок В-13 Пример экрана MONITOR STATS REDO.
-- 22 --
redo blocks Общее количество блоков, записанных в файл журнала
written повторного выполнения.
redo buffer Общее количество попыток, необходимых для распре-
allocation деления памяти в буфере журнала повторного вы-
retries полнения
redo chunk Сколько раз программа записи в файл журнала расп-
allocations ределяла новый раздел в файле для данного
экземпляра.
redo entries Количество сгенерированных элементов журнала.
redo entries Количество элементов, меньших или равных
linearized REDO_ENTRY_PRBUILD_THRESHOLD. Построение этих эле-
ментов требует дополнительных затрат CPU, но уве-
личивает параллелизм в многопользовательских системах.
redo log space Эта статистика используется службой сопровождения
requests ORACLE и на нее можно не обращать внимания.
redo log Эта статистика используется службой сопровождения
space wait ORACLE и на нее можно не обращать внимания.
redo log switchЭта статистика используется службой сопровождения
interrupts ORACLE и на нее можно не обращать внимания.
redo log Эта статистика используется службой сопровождения
switch wait ORACLE и на нее можно не обращать внимания.
redo size Общий размер в байтах файла журнала повторного
выполнения.
redo small Общее количество элементов, меньших или равных LOG
_SMALL_ENTRY_MAX_SIZE. Эти элементы копируются под
защитой защелки распределения, исключая необходи-
мость защелки копирования. Эта статистика интерес-
на только в случае мультипроцессорной системы.
redo wastage Эта статистика используется службой сопровождения
ORACLE и на нее можно не обращать внимания.
redo writer Эта статистика используется службой сопровождения
latching time ORACLE и на нее можно не обращать внимания.
redo writes Общее количество операций записи в журнал повтор-
ного выполнения.
redo write Эта статистика используется службой сопровождения
time ORACLE и на нее можно не обращать внимания.
Экран MONITOR I/O
На рисунке В-14 приводится пример экрана, выдаваемого по команде MONITOR I/O.
Этот экран выдает информацию обо всех работающих в данный момент процессах
(включая фоновые) в виде процента ввода/вывода за:
* последний интервал (слева, с подзаголовком Interval)
* все время с последнего теплого старта ( Cumulative ).
-- 23 --
Заметьте, что в суммарной гистограмме суммарный процент может не быть равным
100, так как ранее присоединенные процессы также вносят свой вклад в
результат.
Ъ--------------------------------------------------------------------ї
і ORACLE System I/O Distribution Monitor Tue Nov 1 17:05:48 і
і і
і------------Interval----------- ---------Cumulative---------- і
і%Logical %Phisical %Logical %Logical %Phisical %Logical і
і Reads Reads Writes Reads Reads Writes і
і0 100 0 100 0 100 PID 0 100 0 100 0 100 і
і-------- -------- -------- ----- -------- -------- -------- і
і 2(1) і
і 3(1) і
і 4(1) і
і 5(1) і
і- - - 6(1) = = = і
і= =- = 7(1) = = = і
і= = 8(1) = = = і
і- =- - 9(1) = = = і
і= =- = 10(1) = = = і
і- - - 11(1) = = = і
і- - - 12(1) = = = і
і= =- = 13(1) = = = і
і 14(1) і
і-------- -------- -------- -------- -------- -------- і
і 114 11 90 Totals 3215 261 2200 і
і 0.90 Hit Ratio 0.92 і
А--------------------------------------------------------------------Щ
Рисунок В-14 Пример экрана MONITOR I/O.
Наиболее важно на этом экране значение показателя Hit Ratio. Это число
показывает, какая часть запросов на чтение была удовлетворена за счет блоков,
находящихся в памяти. Эта величина вычисляется по следующей формуле:
( cumulative logical reads - phisical reads )
----------------------------------------------Д
cumulative logical reads
Например, следующим образом: (265-15)/265=0.94. Наилучшее возможное значение 1
и если это значение опускается ниже 0.8, рекомендуется выполнение
операций по настройке производительности.
Экран MONITOR ROLLBACK SEGMENT
Команда MONITOR может использоваться для просмотра текущего состояния
сегментов отката. Пример выдающегося при этом экрана дается на рисунке В-15.
Ъ--------------------------------------------------------------------ї
і ORACLE Rollback Segment Monitor Tue Nov 1 17:36:57 і
і і
і RS Rollback Size Extents Archive Write Rate Header і
і ID Segment (bytes) Xactions (byte/sec) Gets/s Waits/s і
і--- --------- -------- ------- -------- ---------- ------ ------ і
і 0 SYSTEM 152218 3 7 626 13 0 і
А--------------------------------------------------------------------Щ
Рисунок В-15 Пример экрана MONITOR ROLLBACK SEGMENT.
Если у Вас несколько сегментов отката, значения в столбце Gets/sec
должны быть примерно равны; в этом случае сегменты используются равномерно.
-- 24 --
Если значение в столбце Extents достаточно велико, возможно создание
дополнительных сегментов отката или увеличение размеров существующих.
Большое значение в столбце Waits/sec говорит о конкуренции за заголовки
сегментов отката. В этом случае Вам желательно рассмотреть вопрос об увеличении
количества сегментов отката.
Экран MONITOR FILE I/O
Экран FILE I/O содержит строку для каждого файла базы данных, в которой
суммирует активность ввода/вывода для каждого из них. Чтения выполняются
процессами пользователя, а запись - процессом DBWR. Пример такого экрана дан
на рисунке В-16.
Если в момент, когда Вы просматриваете этот экран, в базе производились
изменения (добавлялись или удалялись файлы), необходимо заново выдать экран
для получения адекватного изображения.
Ъ--------------------------------------------------------------------ї
і ORACLE File I/O Monitor Tue Nov 1 17:03:01 і
і і
і Request Rate Batch size Responce Time Total Blocksі
іFile Name Read/s Write/s blks/R blks/W ms/Read ms/Write Read Writtenі
і--------- ------ ------- ------ ------ ------- -------- ----- ------і
і і
іDISK$DEV8:[V6KNLDVE.SHELLY]DATABASE1.ORA і
і 11.40 14.40 1.00 1.00 0.00 0.00 18098 17874і
А--------------------------------------------------------------------
Рисунок В-16 Пример экрана MONITOR FILE I/O.
Если значения в столбцах 2 или 3 - request rate reads или writes
(запрошенная норма чтения или записи) высокие для всех файлов данного
дисковода, необходимо рассмотреть вопрос о перераспределении файлов базы
данных и табличных пространств по другим дисководам.
Значения столбцов 3 и 5 говорят о том, сколько данных пишется на диск за
секунду. Если это значение велико относительно емкости диска, надо рассмотреть
вопрос о переносе данных на более производительное устройство.
Данные о физическом чтении и записи вычисляются системой ORACLE только для
своих файлов и, следовательно, не включают в себя информацию об активности
ввода/вывода других файлов, находящихся на этом диске.
Значения в столбцах 6 и 7 Вы сможете увидеть только в случае, когда параметр
TIMED_STATISTICS файла INIT.ORA установлен в TRUE. Умалчиваемое значение для
этого параметра FALSE, так как для сбора этой статистики требуются некоторые
накладные расходы производительности.
ARCHIVE LOG
Назначение Старт или остановка автоматического архивирования online - файлов
журнала повторного выполнения, а также - выдача набора файлов
журнала.
Предпосылки Вы должны иметь привилегии DBA и быть связаны с открытой базой
данных ORACLE, работающей в режиме ARCHIVELOG.
Синтаксис ARCHIVE LOG [ LIST ] [ STOP ]
[ START | n | NEXT | ALL ] ['filespec']
-- 25 --
LIST Используется для показа следующего:
* диапазона файлов, подлежащих архивированию
* текущего последовательного номера файла журнала
* текущие назначения архива (указываемые либо необя- зательными
командами, либо параметром файла INIT.ORA ARCHIVE_LOG_DEST). Если
Вы работаете в режиме ARCHIVELOG и используете автоматическое
архивирование, выдача будет выглядеть следующим образом:
Database log mode ARCHIVELOG
(режим работы журнала)
Automatic archival ENABLED
(автоматическая архивация) (включена)
Archive destination DISK$DEV9:[ORACEV]ARCH
(адрес назначения архива)
Oldest online log sequence 30
(старейший номер файла журнала)
Next log sequence to archive 33
(следующий номер для архивирования)
Current log sequence number 33
(текущий последовательный номер файла)
Так как последовательный номер текущего файла и следующий номер
для архивирования одинаковы, автоматическая архивация буде
выполняться для всех номеров файлов, включая текущий. Если Вы
используете режим ARCHIVELOG, но отключили автоматическое
архивирование, последние три строки будут выглядеть так:
Oldest online log sequence 30
Next log sequence to archive 30
Current log sequence number 33
Если Вы используете режим NOARCHIVELOG, строка "Next log sequence
..." будет подавлена.
Процесс LGWR каждый раз при переключении на запись в очередной
файл увеличивает последовательный номер журнала на 1;
количество файлов, которые он использует, не указывается. Каждый
раз, когда файл журнала начинает писаться заново, он получает
очередной номер.
START Включает автоматическое архивирование. Стартует фоновый процесс
ARCH, который по мере необходимости выполняет автоматическое
архивирование. Если при старте ARCH задано новое назначение файла
архива, оно перекрывает старое. ARCH стартует автоматически при
старте экземпляра, если параметр ARCHIVE_LOG_START файла
INIT.ORA имеет значение TRUE.
STOP Выключает автоматическое архивирование. Если экземпляр был в
режиме ARCHIVELOG и все файлы журнала заполнены, все операции базы
данных приостанавливаются до завершения архивации файлов журнала
(например - пока Вы не введете команду ARCHIVE LOG START).
n Любой последовательный номер журнала, находящегося в состоянии
online. Указывает начать архивирование файла журнала с
последовательным номером "n". В случае, если этот файл не
находится в online или если указанный номер неправильный,
возникает ошибка. Эта опция может использована для повторной
архивации файла журнала.
-- 26 --
NEXT Вручную архивируется следующий файл журнала, находящийся в online,
но еще не архивировавшийся.
ALL Вручную архивируются все заполненные, но еще не ар- хивированные
файлы журнала (online).
filespec Используется для указания файла назначения для архивирования.
Примеры назначения файлов архива можно найти в "Руководстве
пользователя по инсталяции". Во многих операционных системах
несколько файлов журнала могут архивироваться на одну ленту.
Части имени назначения файлов архива могут использоваться в ка-
честве префиксов в именах файлов журнала.
Если эта информация не задана, она выбирается из параметра файла
INIT.ORA ARCHIVE_LOG_DEST. Назначение файла INIT.ORA может времен
но перекрываться заданием его в команде ARCHIVE LOG, но для того,
чтобы сделать это назначение умалчиваемым, надо воспользоваться
командой LOG ARCHIVE START archive_dest утилиты SQL*DBA.
Замечания Если файл журнала повторного выполнения заполнился и нет файла для
повторного использования, операции базы данных приостанавливаются.
Ситуацию можно разрешить, архивировав файлы журнала.
Примеры ARCHIVE LOG START
ARCHIVE LOG STOP
ARCHIVE LOG 1001
CONNECT
Назначение Подключиться к базе данных, используя указанное имя пользователя.
Предпосылки Подключение будет выполнено успешно, если задается существующая
комбинация пользователь/пароль. Команда CONNECT INTERNAL является
привилегированной систем- ной командой.
Синтаксис CONNECT [{username [/ password ]} | INTERNAL ] [ @instance-path ]
username Любое действительное для данной базы имя пользователя. Если не
задано ни имени пользователя, ни INTERNAL, SQL*DBA запросит
имя пользователя.
password Пароль, соответствующий указанному имени пользователя. Может быть
и пустой строкой.
INTERNAL Через ключевое слово INTERNAL производится подключение к
пользователю SYS. Должно использоваться аккуратно и только
администратором базы данных с целью выполнения некоторых
операций по сопровождению базы. Требует привилегий операционной
системы. (Для более полной информации смотрите Главу 2).
instance-path Правильная комбинация экземпляр/база данных. Если экземпляр
специфицирован, он становится текущим эк- земпляром на все время
сеанса. При последующих подк- лючениях этот экземпляр не станет
умалчиваемым.
Замечания Если специфицировано только имя пользователя, SQL*DBA выдаст
приглашение для задания пароля: "Password:". Вводимый пароль не
отображается. Команда CONNECT может использоваться для
-- 27 --
подключения с другим именем пользователя без предварительной
выдачи DISCONNECT. Подключение всегда сопровождается открытием
курсора.
Примеры CONNECT
* появится приглашение на введение правильного имени пользователя
и пароля
* выполнится присоединение к базе на умалчиваемом компьютере
CONNECT scott/tiger
* выполнится подключение к базе данных на текущей машине с
пользователем SCOTT и паролем TIGGER
CONNECT system
* появится запрос пароля для пользователя SYSTEM
* выполнится подключение к базе текущей машины с именем
пользователя SYSTEM
* CONNECT INTERNAL
* выполнится подключение к базе данных на текущей машине как
INTERNAL (не требуется задание пароля, но требует системных
привилегий от вызывающего пользователя)
CONNECT scott/tiger@devvms
* подключится к базе данных в узле DEVVMS с именем пользователя
SCOTT и паролем TIGER
DISCONNECT
Назначение Отключение от базы данных ORACLE.
Предпосылки Вы должны быть подключены к базе данных.
Синтаксис DISCONNECT
Замечания Во время отсоединения SQL*DBA возвращается к старой умалчиваемой
машине.
Примеры DISCONNECT
EXIT
Назначение Выход из SQL*DBA.
Предпосылки Нет.
Синтаксис EXIT
Замечания Выходит из программы SQL*DBA безусловно, независимо от того, что
Вы в данный момент выполняете. Происходит возврат к приглашению
операционной системы. Записывает незавершенные транзакции.
Примеры exit
HOST
Назначение Не выходя их утилиты SQL*DBA, выполнить команду операционной
системы.
Предпосылки Нет.
Синтаксис HOST [ operating-system-command ]
-- 28 --
Замечания Обычно команда используется для выдачи списка интересующих
администратора файлов или для редактирования файлов, которые
впоследствии будут использованы SQL*DBA. Кроме того, Ваша
операционная система может поддерживать специальные символы для
выдачи команд системы.
Если Вы просто ввели HOST, не указав команды операционной
системы, SQL*DBA просто временно выходит в среду операционной
системы предполагая, что Вы выполните несколько команд; чтобы
вернуться назад к сеансу SQL*DBA, необходимо выполнить
некоторые системозависимые действия. Обратитесь за ними к
"Руководству пользователя по инсталяции".
Примеры HOST TYPE INIT.ORA
MONITOR
Назначение Выдать в режиме реального времени информацию о блокировках,
очередях, процессах и других объектах базы данных. (См. примеры
экранов, приводимые ранее в этом приложении).
Предпосылки Вы должны быть подключены к базе данных с именем пользователя,
имеющего доступ по запросу к таблицам динамической производитель-
ности. Программа SQL*DBA должна иметь доступ к соответствующему
CRT - файлу для выдачи полноэкранной информации.
Синтаксис MON[ITOR] [ ROLLBACK | FILEIO | LATCH[ES]
[ { IO[S] | LOCK[S] [ ALL ] | PROCESS[ES] |
STST[ISTICS] [ CLASS ] | TABLE[S] | USER[S] }
[ pid ] [ pid ] ]
Описание и примеры различных экранов находятся выше в этом
приложении. Если Вы вводите команду MONITOR без каких-либо
опций, то увидите меню.
FILEIO Выдает изображение по одной строке на файл базы данных, показывая
активность их ввода/вывода.
IO Выдает гистограмму процента использования логического и
физического ввода/вывода каждым процессом за определенный
период. Эта информация дает относительное распределение
ввода/вывода, а не точный расчет этих операций.
LATCHES Выдает общую информацию о текущих защелках
LOCKS Выдает информацию о текущих процессах ORACLE и выполненных или
ожидаемых ими блокировках.
PROCESSES Выдает по одной строке информации на каждый процесс, подключенный
к базе данных.
ROLLBACK Выдает информацию, связанную с размерами, статусом и активностью
относительно всех активных сегментов отката; по одной строке на
каждый сегмент.
STATISTICS Выдает статистику, связанную с использованием базы данных. Эта
статистика описана ранее в этом приложении.
-- 29 --
TABLES Выдает имена таблиц, связанных с анализируемыми в настоящее
время SQL - операторами; вместе с таблицами выдается число
обращений по чтению и изменению, а также идентификатор процесса
и имя пользователя ORACLE, обращающегося к таблице.
USERS Выдает экран информации по каждому активному процессу. Вы можете
запросить информацию по отдельному процессу или по диапазону
процессов. На информацию о фоновых процессах мало влияют
пользовательские процессы.
Замечания Хотя для некоторых опций Вы и можете указывать индивидуальные
номера процессов, по умолчанию по очереди выдается информация по
всем процессам. Для явного задания выдачи в одном экране
суммарной информации по всем процессам необходимо указать PID 0.
Для выхода из определенной картинки используйте механизм
прерываний Вашей операционной системы. В этом случае Вы вернетесь
на приглашение SQL*DBA или в меню утилиты.
Примеры MONITOR LATCH
MONITOR LOCK 10 20
MONITOR LOCK ALL
MONITOR PROCESS 11
RECOVER
Назначение Восстановление (откат вперед) одного или нескольких табличных
пространств, а также - всей базы данных.
Предпосылки Вы должны быть подключены к базе ORACLE с привилегиями DBA.
Предпосылки относительно различных ситуаций восстановления
смотрите в Замечаниях по этому разделу.
Синтаксис RECOVER { DATABASE |
TABLESPACE tablespace-name [,tablespace-name ] ...]
tablespace-name имя одного или нескольких табличных пространств в текущей базе
данных. Одним оператором Вы можете восстановить до 16 табличных
пространств.
Замечания Для того чтобы выполнить восстановление носителя для базы данных
(все табличные пространства), база должна быть монтирована в
исключительном режиме и закрыта.
Для восстановления носителя для табличного пространства база
данных должна быть монтирована и открыта, а табличное пространство
- находиться в offline.
Перед использованием команды RESTORE Вы должны выполнить
восстановление хороших копий разрушенных файлов с ближайшей
полной копии. Убедитесь, что у Вас есть доступ ко всем
архивированным и активным файлам журнала повторного выполнения,
выполненные после полного копирования.
Когда в процессе восстановления требуется очередной архивный
файл, утилита выдает приглашение на имя файла, который
соответствует последовательному номеру файла журнала. На это
необходимо ответить именем диска, куда уже был восстановлен
соответствующий файл или спецификацией ленты. Таким образом, Вы
можете восстанавливаться непосредственно с ленты.
-- 30 --
После окончания восстановления выдается статус завершения. Для
прекращения восстановления носителя необходимо в ответ на запрос
имени файла ввести "CACEL".
Возможно ручное восстановление к определенной точке времени; оно
описывается в "online" - файле с именем RECOVERY.DOC. В этом файле
описываются также и опции команды RECOVER, которые можно
использовать в неожиданных ситуациях.
Примеры RECOVER DATABASE
RECOVER TABLESPACE TS_ONE, TS_TWO
REMARK
Назначение Ввести комментарий (обычно - в SQL - файлы).
Предпосылки Нет.
Синтаксис REM[ARK]
Замечания В основном - для пакетного использования SQL*DBA.
Комментарии игнорируются как SQL*DBA, так и ORACLE.
REM должны быть первыми символами в строке.
Примеры Следующие строки-правильный комментарий, вставленный в SQL- файл.
REM This command file is used to create a
REM database. Edit it to fill in file names
REM and sizes, and invoke it from SQLDBA
REM
REM
CREATE DATABASE dbname ...
SET
Назначение Установить или изменить характеристики текущего сеанса SQL*DBA.
Предпосылки Нет.
Синтаксис SET { INSTANCE [ instance-name ] |
ECHO [ ON | OFF ] |
TERMOUT [ ON | OFF ] |
TIMING [ ON | OFF ] |
STOPONERROR [ ON | OFF ] |
NUMWIDTH [n] |
CHARWIDTH [n] |
LONGWIDTH [n] |
DATEWIDTH [n] |
MAXDATA [n] |
ARRAYSIZE [n] |
CYCLE seconds }
INSTANCE Меняет текущий экземпляр на указанный
instance- (instance-name). Не подключает при этом к базе дан-
name ных. Ошибка, если уже есть подключение к базе. Может использовать
ся для старта, останова или мониторинга удаленного экземпляра (с
последующими командами STARTUP, SHUTDOUN или MONITOR).
Все команды, предшествующие команде SET INSTANCE будут работать
с умалчиваемым экземпляром ORACLE.
-- 31 --
Для возврата в основной экземпляр необходимо выдать либо SET
INSTANCE без указания имени экземпляра, либо SET INSTANCE LOCAL.
Если Вы зададите: SET INSTANCE DEFAULT, SQL*DBA будет искать
экземпляр с именем 'DEFAULT'.
ECHO ON Разрешает копирование на экран команд, выпол-
няемых из командных файлов.
OFF Не разрешает такое отображение (по умолчанию)
TERMOUT ON Разрешает вывод на терминал результатов рабо-
ты SQL - операторов (по умолчанию).
OFF Отменяет вывод на терминал. Полезен для предотвращения
вывода на терминал при спуллинге информации в файлы.
Заметьте, что пока не будет выдано SET TERMOUT ON, на
экран ничего выдаваться не будет.
TIMING ON Выдавать время разбора, выполнения и выборки для каждого
выполненного SQL - оператора (процессорное и общее).
OFF Не выдавать такой информации (по умолчанию).
STOPONERROR ON Указывает на то, что если при выполнении командного
файла возникли ошибки, его выполнение будет прекращено.
OFF Отключает режим STOPONERROR.
NUMWIDTH [n] Устанавливает количество выдаваемых позиций для данных типа
NUMBER. Если значение "n" не указывается, предполагается
умалчиваемый размер. По умолчанию выдается 10 позиций.
CHARWIDTH[n] Устанавливает количество выдаваемых позиций для данных типа CHAR.
Если значение "n" не указывается, предполагается умалчиваемый
размер. По умолчанию выдается 80 позиций.
LONGWIDTH[n] Устанавливает количество выдаваемых позиций для данных типа LONG.
Если значение "n" не указывается, предполагается умалчиваемый
размер. По умолчанию выдается 80 позиций.
DATEWIDTH[n] Устанавливает количество выдаваемых позиций для данных типа DATE.
Если значение "n" не указывается, предполагается умалчиваемый
размер. По умолчанию выдается 9 позиций.
MAXDATA [n] Устанавливает максимальный размер данных. Указывает максимальное
количество данных, которые будут выбраны в операторе SELECT. По
умолчанию 4096 байтов (4К). Максимальное количество (в VMS) 64k.
ARRAYSIZE[n] Устанавливает количество строк, выбираемых их базы данных
единовременно. По умолчанию - 10 строк. Максимальное значение
(для VMS) 100 строк.
CYCLE seconds Устанавливает в секундах период цикла для команды MONITOR.
Минимальное значение 1 секунда, максимальное - 3600 секунд. При
нормальной работе предпочтителен период цикла как минимум - 5
секунд.
Примеры SET INSTANCE DEVVMS
SET TIMING ON
SET CYCLE 10
SET LONGWIDTH 132
SET NUMWIDTH 20
-- 32 --
SET CHARWIDTH 5
Обе следующих команды делают одно и то же: возвращают утилиту для работы на
подразумеваемом компьютере.
SET INSTANSE
SET INSTANCE LOCAL
SHOW
Назначение Показать действующие в настоящее время установки.
Предпосылки Нет.
Синтаксис SHOW { ALL |
PARAMETERS [string] |
INSTANCE |
TIMING |
CYCLE |
CHARWIDTH |
LONGWIDTH |
DATEWIDTH |
NUMWIDTH |
TERMOUT |
SGA |
SPOOL |
ECHO }
PARAMETERS Эта опция используется для просмотра текущих значений для одного
или нескольких параметров файла INIT. Для просмотра списка
параметров INIT.ORA можно указать его в качестве аргумента
"string". Например, Вы можете ввести:
SHOW PARAMETERS COUNT
и увидите следующий результат:
NAME TYPE VALUE
-------------------------- ----------- -----
CPU_COUNT integer 0
DB_MULTIBLOCK_READ_COUNT integer 8
Замечания Большинство из этих назначений может быть изменена командой SET
утилиты SQL*DBA. Исключения составляют:
* SHOW SPOOL, который устанавливается командой SPOOL
* SHOW SGA, которая возвращает размер SGA
* SHOW PARAMETERS, возвращающая список параметров файла
INIT.ORA вместе с их текущими значениями.
Если Вы не использовали команду SET INSTANCE, команда SHOW INSTANCE
возвратит значение "local".
Примеры SHOW TIMING
Результат:
Parse 2.94 (Elapsed) 0.20 (CPU)
Execute/Fetch 13.17 (Elapsed) 2.78 (CPU)
Total 16.11 2.98
SHOW ALL
Результат, похожий на следующий:
Instance local
Spool OFF
Timing OFF
Termout ON
Echo OFF
Stoponerror OFF
-- 33 --
cycle 5
Maxdata 4096
Arraysize 5
Numwidth 10
Charwidth 80
Longwidth 80
Datewidth 9
SHOW SGA Результат, похожий на следующий:
Tolal Shared Global Area 801280 bytes
13896 bytes
Variable Size 369592 bytes
Database Buffers 409600 bytes
Redo Buffers 8192 bytes
SHUTDOWN
Назначение Остановить текущий экземпляр ORACLE, закрыв и размонтировав
базу данных (не обязательно).
Предпосылки Привилегированная команда. Необходимо быть подключенным к базе
данных.
Синтаксис SHUTDOWN [ NORMAL | IMMEDIATE | ABORT ]
NORMAL Принимается по умолчанию. Ожидает отсоединения от базы текущих
пользователей, запрещает подключение других пользователей;
закрывает и размонтирует базу данных. По окончании - останавливает
экземпляр. Во время следующего старта не требует
восстановления экземпляра.
IMMEDIATE Не ожидает завершения текущих вызовов, запрещает дальнейшее
подключение, закрывает и размонтирует базу. По окончании -
останавливает экземпляр ORACLE. Не ожидает отсоединения
текущих пользователей. Во время следующего старта не требует
восстановления экземпляра.
ABORT Наиболее быстрый способ остановки. Не ожидает завершения текущих
вызовов и отсоединения пользователей. Не закрывает и не
размонтирует базу данных, а также - не останавливает экземпляр.
Во время последующего старта требует восстановления экземпляра.
Этот вид остановки необходимо использовать при аварийном за-
вершении фонового процесса.
Замечания Выдача команды SHUTDOWN без аргументов эквивалентна команде
SHUTDOWN NORMAL.
Примеры SQLDBA> SHUTDOWN
Database closed. (база данных закрыта)
Database dismounted. (база данных размонтирована)
ORACLE instance shut doun. (экземпляр ORACLE остановлен).
SPOOL
Назначение Разрешение или запрещение спулинга в указанный файл.
Предпосылки Нет.
Синтаксис SPOOL [ filename | OFF ]
-- 34 --
filename Любое правильное имя файла. Если расширение не указано,
предполагается .LOG. Если файл с таким именем уже существует,
выдается сообщение об ошибке.
OFF Закрывает ранее открытый файл для спулинга.
Замечания По умолчанию имя файла для спулинга SQLDBA.LOG. Чтобы определить,
куда в данный момент производится спуллинг, воспользуйтесь
командой SHOW SPOOL.
Примеры SPOOL DIMMICK создает файл с именем DIMMICK.LOG.
STARTUP
Назначение Старт экземпляра ORACLE с применением различных опций включая
монтирование и открытие базы данных.
Предпосылки Привилегированная команда. Необходимо быть подключенным к базе
данных.
Синтаксис STARTUP [ option [ option ... ] ]
где option принимает значения:
[ DBA ]
[ FORCE ]
[ PFILE filespec ]
[ EXCLUSIVE | SHARED ]
[ { MOUNT | OPEN } databasename ]
[ NOMOUNT ]
DBA Запрещается указание любого имени пользователя ORACLE без
привилегий DBA.
FORCE Останавливает текущий экземпляр ORACLE (если он ра-
ботает) с опцией ABORT перед его повторным стартом.
Если текущий экземпляр работает, а старт был выпол-
нен без опции FORCE, появится сообщение об ошибке.
FORCE используется в процессе отладки и при необыч-
/T= ваться не должен.
PFILE filespec Используется для указания файла параметров для старта. Если
filespec не указано, используется файл INIT.ORA.
EXCLUSIVE Применяется по умолчанию. Означает, что база данных не может быть
монтирована и открыта иным экземпляром, кроме текущего (не может
быть параллельно открыта несколькими экземплярами). Несовместима
с опци- ями SHARED и NOMOUNT.
SHARED Используется, если база данных должна быть открыта несколькими
экземплярами ORACLE параллельно. Несовместима с EXCLUSIVE и
NOMOUNT. Ошибочна, если параметр SINGLE_PROCESS файла INIT.ORS
установлен в TRUE.
MOUNT Монтирует базу данных, но не открывает ее.
OPEN Монтирует и открывает указанную базу данных.
-- 35 --
databasename Специфицирует имя базы данных. Если имя базы не указано, оно
берется из параметра DB_NAME текущего файла INIT.ORA.
NOMOUNT Указывает, что при старте экземпляра база данных не должна
монтироваться. Несовместим с параметрами EXCLUSIVE, MOUNT, OPEN.
Замечания Ни одна опция не может быть указана дважды, а некоторые опции
являются взаимоисключающими. Используемая без аргументов, команда
STARTUP будет стартовать текущий экземпляр (используя
подразумеваемую базу данных), а также монтировать и открывать
базу данных. Для старта удаленного экземпляра необходимо вначале
выдать команду SET INSTANCE, а затем - команду STARTUP.
Примеры STARTUP
STARTUP OPEN databasename EXCLUSIVE
* эти команды эквивалентны
* запускается экземпляр
* используется стандартный файл INIT.ORA
* монтируется подразумеваемая база в исключительном режиме
* база данных открывается
STARTUP SHARED
STARTUP OPEN databasename SHARED
* эти команды эквивалентны
* запускается экземпляр
* используется стандартный файл INIT.ORA
* монтируется подразумеваемая база в режиме разделения
* база данных открывается
STARTUP FORCE NOMOUNT DBA
* в первую очередь, работающий в данный момент экземпляр
закрывается, используя SHUTDOWN ABORT.
* запускается экземпляр
* никакая база данных не идентифицируется, не монтируется и
не открывается (имя базы из файла INIT.ORA игнорируется).
Предполагается режим EXCLUSIVE.
* подключение разрешено только DBA
STARTUP PFILE=TESTPARM NOMOUNT
* экземпляр стартует с использованием параметров из файла
TESTPARM
* база данных не монтируется
* предполагается, но не используется режим EXCLUSIVE и имя
базы из файла TESTPARM.
STARTUP OPEN databasename PFILE MYINIT.ORA FORCE SHARED DBA
* в первую очередь, работающий в данный момент экземпляр
закрывается, используя SHUTDOWN ABORT.
* стартует экземпляр
* в разделяемом режиме монтируется база данных,
поименованная в файле MYINIT.ORA
* открывается база данных
* подключение разрешено только DBA
STARTUP PFILE vendors
* вместо INIT.ORA используется файл vendors
-- 36 --
STARTUP EXCLUSIVE NOMOUNT
* НЕПРАВИЛЬНО, так как параметры EXCLUSIVE и NOMOUNT
являются взаимоисключающими.
Чтобы стартовать экземпляр, монтировать, но не открывать базу
данных, необходимо воспользоваться следующей последовательностью
команд (показан также и ответ системы):
SQLDBA> STARTUP NOMOUNT
ORACLE instance started.
SQLDBA> CONNECT INTERNAL
Connected.
SQLDBA> ALTER DATABASE MOUNT;
Statement processed
В этом месте Вы можете выполнить команды по сопровождению,
затем - открыть базу данных, как показано в следующих командах:
SQLDBA> ALTER DATABASE ARCHIVELOG;
Statement processed
SQLDBA> ALTER DATABASE OPEN;
Statement processed.
ПРИЛОЖЕНИЕ С КОДЫ И СООБЩЕНИЯ ОБ ОШИБКАХ SQL*DBA
В этом приложении дается список сообщений об ошибках, которые могут появиться
при использовании утилиты SQL*DBA. Кроме того, здесь указываются возможные
причины их возникновения и действия по их обработке.
Все описываемые здесь ошибки имеют префикс DBA, что говорит об их принадлеж-
ности утилите SQL*DBA, а также LCC, указывающие на ошибки в командной строке.
Ошибки других программных продуктов ORACLE документируются в других местах.
Основной документ этого типа - "ORACLE. Коды и сообщения об ошибках", однако
сообщения других программных продуктов содержатся в соответствующих
руководствах.
Ошибки с префиксом DBA
Описываемые ниже ошибки выдаются утилитой SQL*DBA и предваряются префиксом DBA.
300 internal error code, argument:[num] (внутренний код ошибки, аргумент:)
Причина: Вам встретилась внутренняя ошибка.
Действие: Обратитесь в Службу поддержки разработки ORACLE Corporation,
имея полный комплект сообщений об ошиб- ках и описание
предшествующей ситуации.
301 cannot SET INSTANCE while connected to a database
(невозможно выполнить SET INSTANCE будучи подключенным к базе данных)
Причина: Вы пытаетесь выполнить команду SET INSTANCE в то
время как остаетесь подключенным к базе данных.
Действие: Если Вы хотите сменить текущий экземпляр, сперва выполните
команду DISCONNECT, а затем уже SET INSTANCE.
-- 37 --
302 not connected to a database (не подключены к базе данных)
Причина: Для выполнения требуемого действия Вы должны быть
подключены к базе данных.
Действие: Перед повторной попыткой выполнения требуемой опе-
рации выполните команду CONNECT.
303 cannot initialize the terminal (инициализация терминала невозможна)
Причина: Файл .CRT плохой или не может быть найден. Файл .CRT требуется
SQL*DBA для выдачи экранов по команде MONITOR.
Действие: Сделайте правильный файл .CRT доступным SQL*DBA.
304 input file I/O error[nnn] - input aborted
(ошибка В/В входного файла[nnn] - вход отвергнут)
Причина: Командный файл, используемый на входе утилиты
SQL*DBA неправильный или испорченный.
Действие: Перед повторной попыткой выполнения проверьте этот файл.
305 command size exceeds internal buffer size (num)
(размер команды превышает размер внутреннего буфера)
Причина: Размер SQL - оператора превышает доступный размер
внутреннего буфера SQL*DBA.
Действие: Укоротите SQL - оператор, убрав лишние пробелы или
используя промежуточные операторы или обзоры.
306 minitor cycle interval time out of range(1-num)
(интервал времени команды monitor выходит за границы)
Причина: Вы ввели неправильный размер интервала для команды monitor.
Действие: Введите число в секундах в диапазоне 1-3600.
307 cannot open spool file text (невозможно открыть спул - файл text)
Причина: SQL*DBA пыталась открыть файл спуллинга после того, как Вы выдали
команду SPOOL. Возможная причина - недостаточно доступной памяти на
диске или у Вас неадекватные для создания файла привилегии.
Действие: Определите, почему SQL*DBA не может открыть новый файл и затем
повторите попытку.
308 no spool file opened (нет открытого спул - файла)
Причина: Вы выдали команду SPOOL OFF, в то время как спуллинг в данный
момент не используется и открытого файла нет.
Действие: Если Вы хотите сохранить результаты работы в спул - файле, сперва
откройте его, выполните необходимую работу и уж потом
закрывайте, используя команду SPOOL OFF.
309 cannot close spool file text (невозможно закрыть спул - файл text)
Причина: Команда SPOOL OFF не может закрыть текущий спул файл.
Действие: Проверьте относительно операционной системы, почему не может быть
закрыт файл.
310 cannot open parameter file text (невозможно открыть файл параметров)
Причина: SQL*DBA не может найти или открыть файл, указанный Вами в опции
PFILE. Либо этого файла не существует, либо DBA не имеет
достаточных привилегий для его открытия.
Действие: Проверьте, что указанный файл существует в месте,
где его ожидает найти SQL*DBA и может быть открыт.
311 data size exceeds buffer size - data truncated
(размер данных превышает буфер - данные укорочены)
Причина: Результат, который вернул SQL - запрос, превышает
-- 38 --
внутренний буфер SQL*DBA.
Действие: С помощью команды SET либо увеличьте MAXDATA, либо уменьшите
ARRAYSIZE.
312 invalid pid range num num (неправильный диапазон идентификаторов процессов)
Причина: Вы ввели неправильный диапазон. При задании диапазона сперва надо
указывать меньший номер процесса. Если значение диапазона включает
любой существующий на данный момент процесс, этот диапазон будет
воспринят.
Действие: Повторите, введя правильный диапазон, например:
MONITOR PROCESSES 5 10..
313 no active processes to monitor (нет активных процессов для мониторинга)
Причина: Вы указали идентификационные номера процессов, не не
соответствующие активным в настоящее время процессам.
Действие: Повторите команду, указав идентификационные номера
процессов, которые в настоящий момент активны.
315 cannot open command file text (невозможно открыть командный файл text)
Причина: SQL*DBA не может найти указанный командный файл.
Действие: Перед повторной попыткой проверьте наличие этого файла и
возможность к нему доступа утилиты SQL*DBA.
316 cannot startup while connected to a database
(невозможно выполнить startup, будучи подключенным к базе данных)
Причина: Вы пытаетесь стартовать экземпляр, оставаясь подклю-
ченным к базе данных.
Действие: Если Вы хотите стартовать экземпляр, надо предвари-
тельно отсоединиться от текущей базы (DISCONNECT).
317 cannot shutdown while connected to database
(невозможно выполнить shutdown, будучи подключенным к базе
данных)
Причина: Вы пытаетесь остановить экземпляр, оставаясь подклю-
ченным к базе данных.
Действие: Если Вы хотите остановить экземпляр, надо предвари-
тельно отсоединиться от текущей базы (DISCONNECT).
318 SQL*DBA command line error [num] (ошибка в командной строке SQL*DBA)
Причина: Вы сделали синтаксическую ошибку (или ошибка при на-
боре строки) во время ввода командной строки SQL*DBA.
Действие: Проверьте синтаксис и попробуйте еще раз.
320 terminal type name too long (имя типа терминала слишком длинное)
Причина: Вы специфицировали имя терминала, которое м.быть как правильным,
так и нет, но оно слишком длинное (свыше 64 символов).
Действие: Проверьте имя нужного терминала и попробуйте еще раз
321 instance name too long (слишком длинное имя экземпляра)
Причина: Вы специфицировали имя экземпляра, которое может быть как
правильным, так и нет, но оно слишком длинное (свыше 64 символов).
Действие: Проверьте имя нужного экземпляра и попробуйте еще раз
-- 39 --
322 total size of command line parameters exceeds buffer size
(общая длина командной строки превышает размер буфера)
Причина: Вы ввели слишком много аргументов в командной строке и буфер SQL*DBA
переполнился.
Действие: Уменьшите число аргументов командной строки.
324 maximum number of tablespaces (nnn) exceeded - last num ignored
(максимальное количество табличных пространств (nnn) исчерпано
- последний num игнорируется)
Причина: В команде RECOVER TABLESPACE Вы указали слишком много табличных
пространств. Можно специфицировать не более 16 табличных
пространств.
Действие: Уменьшите число табличных пространств. Если Вы хотите восстановить
более 16 пространств, выполните это несколькими командами.
325 pfile too large (pfile слишком велик)
Причина: Указанный Вами файл слишком велик (более 8 К).
Действие: Уменьшите количество параметров в файле, прежде чем специфицировать
его в качестве pfile.
328 Insufficient privilege for this display
(недостаточно привилегий для этого экрана)
Причина: Вы попытались выдать экран команды MONITOR не имея на то
достаточных привилегий.
Действие: Свяжитесь с DBA для получения требуемых привилегий.
329 Insufficient privilege for SHOW SGA
(недостаточно привилегий для команды SHOW SGA)
Причина: Вы попытались выполнить команду SHOW SGA, не имея на
то достаточных привилегий.
Действие: Свяжитесь с DBA для получения требуемых привилегий.
331 cannot allocate enough memory for SQL Buffer
(невозможно распределить достаточно памяти для буфера SQL)
Причина: В текущем буфере SQL не достаточно памяти.
Действие: Воспользуйтесь командой SET для уменьшения значения MAXDATA.
333 db file(s) added after MONITOR FILEIO invoked
(после выдачи команды MONITOR FILEIO добавлены файлы базы)
Причина: С момента выдачи команды MONITOR FILEIO в базу были добавлены новые
файлы, сделав недействительным выдаваемую командой информацию.
Действие: Выдайте команду MONITOR FILEIO заново.
334 db file(s) dropped after MONITOR FILEIO invoked
(после выдачи команды MONITOR FILEIO удалены файлы базы)
Причина: С момента выдачи команды MONITOR FILEIO в базу были удалены старые
файлы, сделав недействительным вы- даваемую командой информацию.
Действие: Выдайте команду MONITOR FILEIO заново.
336 insufficient privilege for SHOW PARAMETERS
(недостаточные привилегии для SHOW PARAMETERS)
Причина: Вы попытались выполнить команду SHOW PARAMETERS, не
имея на то достаточных привилегий.
Действие: Свяжитесь с DBA для получения требуемых привилегий.
Ошибки с префиксом LCC
-- 40 --
Следующие ошибки могут возникнуть при вводе команды или старе экземпляра. Все
они имеют префикс LCC:
100 internal error, argument num (внутренняя ошибка, аргумент:)
Причина: Вам встретилась внутренняя ошибка.
Действие: Обратитесь в Службу поддержки разработки ORACLE Corporation,
имея полный комплект сообщений об ошибках и описание предшествующей
ситуации.
111 value not in legal range text
(значение не лежит в допустимом диапазоне text)
Причина: Значение параметра вышло за границы допустимого диапазона.
Действие: Проверьте диапазон и повторите с правильным значением.
112 illegal integer radix spacification text
(неверный символ основания системы счисления)
Причина:
Действие: Действительные значения символа - 'd', 'h', 'D', 'H'
113 integer conversion error or negative integer text
(ошибка в преобразовании целых чисел или отрицательное целое)
Причина: Нецелое или отрицательное число назначено в качестве целого
параметра.
Действие: Повторите ввод с правильным целым значением.
114 illegal boolean response text (неправильный двоичный ответ)
Причина: Вы ввели значение, отличное от TRUE или FALSE.
Действие: Введите правильное двоичное значение (FALSE или TRUE).
122 unrecognized keyword text (нераспознанное ключевое слово text)
Причина: Скорее всего, Вы допустили ошибку в наборе ключевого слова.
Действие: Введите строку заново.
201 could not open specified filename text
(невозможно открыть файл с указанным именем text)
Причина: Специфицированный файл не существует.
Действие: Проверьте имя файла или создайте файл с указываемым именем перед
тем, как повторять ввод.
203 missing keyword text (отсутствует ключевое слово text)
Причина: Ожидаемое ключевое слово не найдено.
Действие: Введите ключевое слово и через знак равенства - значение параметра.
204 left parentheses and no parameter specified text
(левые скобки и не указан параметр text)
Причина: Список параметров был начат, но параметр не был указан.
Действие: Добавьте соответствующий список значений и закройте скобки.
205 unbalanced parentheses text (несбалансированные скобки)
Причина: Обнаружено нечетное количество скобок, говорящее об
их отсутствии или наличии лишних.
Действие: Перенаберите оператор, указав правильное количество скобок.
206 positional parameter entered after keyword text
(позиционный параметр введен после ключевого слова text)
Причина: Отсутствует знак равенства.
Действие: Введите параметр заново, использовав знак равенства между именем
параметра и его значением.
-- 41 --
207 nested parentheses encountered text (встретились вложенные скобки text)
Причина: Разрешен только один набор круглых скобок.
Действие: Введите заново, удалив вложенные скобки.
208 unexpected keyword in value list text
(неожиданное ключевое слово в списке значений text)
Причина: Вместо значения обнаружено ключевое слово.
Действие: Вставьте соответствующее ключевому слову значение.
209 missing value for keyword at end of string text
(в конце строки отсутствует значение для ключевого слова)
Причина: Ключевое слово указано без соответствующего значения.
Действие: Укажите правильное значение вслед за ключевым словом.
210 illegal assignment operator text (неправильное назначение оператора text)
Причина: Для указания значения параметру Вы указали символ,
отличный от знака равенства.
Действие: Повторите, введя после имени параметра знак равенства.
211 unexpected delimiter text (неожиданный разделитель text)
Причина: Между значениями обнаружен неправильный разделитель.
Действие: Правильным разделителем могут быть запятая или пробел.
212 runaway quoted string text (строка с потерянной кавычкой text)
Причина: Значение параметра взято в кавычки слева, но справа кавычка
отсутствует.
Действие: Сбалансируйте кавычки.
215 parameter files nested too deep text
(слишком глубокая вложенность файлов параметров text)
Причина: Слишком глубокая вложенность файлов параметров. Мак-
симальная глубина вложенности - 3.
Действие: Уменьшите количество вложенных файлов параметров.
217 failure while processing file parameter
(неудача при обработке файла параметров)
Причина: При обработке указанного файла параметров возникла ошибка.
Действие: Для дополнительной информации просмотрите дополни- тельные
сообщения об ошибках.
218 error in file text (ошибка в файле text)
Причина: При обработке определенного файла возникла ошибка.
Действие: Обратитесь к другим сообщениям об ошибках для конкретизации ошибки.
|
|