Утиліта SQL * Plus. Створення та виконання сценаріїв. Частина IV

Команда SHOW


Команда SHOW дозволяє отримати значення системних змінних SQL * Plus, а також ряд інформації про середовище, бази даних, до якої підключена утиліта, і про помилки в останньої виконаної команді. Ця команда має наступний синтаксис:



<Команда SHOW>:: =
SHO[W] <Опція>
<Опція>:: =
<Ім'я системної змінної>
  / ALL
  / BTI[TLE]
  / ERR[ORS] [[<Об'єкт>] [<схема>.] <Ім'я об'єкта>]
  / LNO
  / PARAMETERS [<Частина параметра>]
  / PNO
  / REL[EASE]
  / REPF[OOTER]
  / REPH[EADER]
  / SGA
  / SPOO[L]
  / SQLCODE
  / TTI[TLE]
  / USER
<Об'єкт>:: =
FUNCTION   / PROCEDURE
  / PACKAGE
  / PACKAGE BODY
  / TRIGGER
  / VIEW
  / TYPE
  / TYPE BODY
  / DIMENSION
  / JAVA CLASS

Призначення опцій представлено в табл. 16.


Таблиця 16. Опції команди SHOW.

















































Опція  Призначення 
ALL  Видає значення всіх опцій SHOW, Крім ERRORS і SGA, І всіх системних змінних.
BTI[TLE Видає поточне визначення BTITLE (Нижнього колонтитула).
ERR[ORS Видає помилки компіляції збереженої програмної одиниці. При компіляції видається повідомлення, що помилки є. Для отримання детальної інформації про помилки необхідно виконати команду SHOW ERRORS. При виконанні цієї команди без аргументів, видається інформація про помилки при компіляції останньої створеної або зміненої програмної одиниці. Якщо ж вказати тип та ім'я програмної одиниці, будуть видані помилки, отримані при її компіляції.

Видається номер рядка / стовпця (у стовпці LINE/COL), В яких виявлена помилка, і текст повідомлення про помилку (у стовпці ERROR). Форматом видачі можна керувати за допомогою команди COLUMN.

LNO  Показує номер поточного рядка на сторінці.
PARAMETERS  Видає ім'я, тип і поточне значення одного або кількох параметрів ініціалізації. При виклику без додаткових параметрів, ця команда видає інформацію про всі параметри ініціалізації. Якщо вказати частини імен параметрів, буде видана інформація тільки про параметри, в імена яких зазначені частини присутні.

Для використання цієї опції необхідна об'єктна привілей SELECT на подання V_$PARAMETER.

PNO  Видає номер поточної сторінки результатів.
REL[EASE Видає номер версії сервера Oracle, До якої підключена утиліта SQL * Plus.
REPF[OOTER Видає поточне визначення REPFOOTER.
REPH[EADER Видає поточне визначення REPHEADER.
SGA  Видає інформацію про область SGA примірника, до якого підключена утиліта SQL * Plus.

Для використання опції SGA необхідна об'єктна привілей SELECT на подання V_$SGA.

SPOO[L Видає інформацію про те, чи направляються результати у файл або на принтер.
SQLCODE  Видає код завершення останнього оператора SQL.
TTI[TLE Видає поточне визначення TTITLE (Верхнього колонтитула).
USER  Видає ім'я поточного користувача.

Розглянемо приклад використання ряду опцій команди SHOW:

17:21:24 SQL> connect system/manager
Зв'язано.
17:21:47 SQL> show sga

Total System Global Area 152581388 bytes
Fixed Size 70924 bytes
Variable Size 78741504 bytes
Database Buffers 73691136 bytes
Redo Buffers 77824 bytes
17:21:49 SQL> show sqlcode
sqlcode 0
17:33:36 SQL> select * from emp;
select * from emp
*
помилка в рядку 1:
ORA-00942: таблиця або подання користувача не існує

Затрач.время: 00:00:00.40
17:33:43 SQL> show sqlcode
sqlcode 942
17:33:50 SQL> show spool
spool OFF
17:34:52 SQL> show linesize
linesize 128
17:36:07 SQL> show user
USER має значення "SYSTEM"
17:36:10 SQL> show parameters buff

NAME TYPE VALUE
buffer_pool_keep string
buffer_pool_recycle string
db_block_buffers integer 17991
log_buffer integer 32768
use_indirect_data_buffers boolean FALSE


Інші корисні команди


Є ще кілька корисних команд, що не відносяться ні до однієї з розглянутих вище категорій. Ось деякі з них.


Команда EXECUTE


Ця команда виконує один оператор PL / SQL. Найчастіше, це виклик збереженої процедури або функції. Команда, по суті, неявно створює анонімний блок, в якому виконується оператор. Розглянемо приклад:

18:02:02 SQL> set timing off
18:02:36 SQL> set serverout on
18:02:41 SQL> exec ListBlackFridays(sysdate, 3);
13.09.02
13.12.02
13.06.03

Процедура PL / SQL успішно завершена.


Команда PASSWORD


Команда PASSWORD дозволяє змінити пароль користувача, не відображаючи його на екрані. Ця команда має такий простий синтаксис:



<Команда PASSWORD>:: =
PASSW[ORD] [<Ім'я користувача>]

За замовчуванням, змінюється пароль поточного користувача. Щоб змінювати пароль іншого користувача, необхідна відповідна привілей:

18:02:49 SQL> set time off
SQL> connect system/manager
Зв'язано.
SQL> password scott
Зміна пароля для scott
Новий пароль: *****
Повторіть новий пароль: *****
SQL> connect scott/tiger
Зв'язано.

Команди адміністрування бази даних


Ряд команд утиліти SQL * Plus призначений для АБД. По суті, SQL * Plus – повнофункціональне засіб адміністрування. Доступні в SQL * Plus команди адміністрування розглядаються в даному розділі.


Запуск бази даних


Починаючи з Oracle8, утиліту SQL * Plus можна використовувати для запуску і зупинки бази даних (раніше для цих цілей використовувалися утиліти svrmgrl і SQL*DBA). Запуск бази даних складається з трьох кроків:



  1. Запуск примірника.

    Примірник – це сукупність фонових процесів і областей пам'яті, необхідних для доступу до бази даних Oracle.


  2. Монтування бази даних.

    При монтуванні база даних пов'язується із запущеним раніше екземпляром.


  3. Відкриття бази даних.

    Відкриття бази даних робить її доступною користувачам для звичайних операцій.


Запуск бази даних в SQL * Plus виконується командою STARTUP, Що має наступний синтаксис:



<Команда STARTUP>:: =
STARTUP [FORCE] [RESTRICT] [PFILE=<Ім'я файлу параметрів>] <дію запуску>
<Дію запуску>:: =
MOUNT [<Ім'я бази даних>]
  / OPEN [<Опція відкриття>] [<ім'я бази даних>]
  / NOMOUNT
<Опція відкриття>:: =
READ ONLY
  / READ WRITE [RECOVER]
  / RECOVER

Всі варіанти команди STARTUP, Так чи інакше, запускають примірник (виділяється пам'ять і запускаються фонові процеси). Опції команди STARTUP представлені в табл. 17.


Таблиця 17. Опції команди STARTUP.




























Опція  Призначення 
FORCE  Зупиняє (з опцією ABORT) І потім перезапускає екземпляр. Це єдина опція команди STARTUP, Яку можна застосовувати до працюючого екземпляру. Використовується при налагодженні і в екстраординарних ситуаціях.
RESTRICT  Дозволяє підключатися до бази даних після запуску тільки користувачам, які мають системної привілеєм RESTRICTED SESSION. Це обмеження в подальшому можна зняти за допомогою команди ALTER SYSTEM.
PFILE  Визначає нестандартний файл параметрів ініціалізації. Якщо ця опція не вказана, використовується стандартний файл (в ОС UNIX це зазвичай $ORACLE_HOME/admin/dbs/init$ORACLE_SID.ora, А в Windows – %ORACLE_HOME%databaseinit%ORACLE_SID%.ora).
MOUNT  Монтує зазначену (стандартну локальну – значення параметра ініціалізації DB_NAME) Базу даних, але не відкриває її.
OPEN  Монтує і відкриває зазначену базу даних.
NOMOUNT  Примірник запускається, але база даних не монтується.
RECOVER  Вимагає виконати відновлення носіїв, якщо необхідно, перед запуском примірника. Застосування цієї опції аналогічно виконання команди RECOVER DATABASE з подальшим звичайним запуском. Так можна виконувати тільки повне відновлення.

Цю команду може виконувати тільки користувач, що підключився як SYSOPER або SYSDBA до виділеного серверного процесу. За замовчуванням використовується опція OPEN. Команда STARTUP OPEN RECOVER монтує і відкриває базу даних, навіть якщо повне відновлення закінчилося невдало.


Зупинка бази даних


Команда SHUTDOWN в SQL * Plus зупиняє поточний екземпляр Oracle, До якого підключений користувач, і може при цьому закрити і демонтувати базу даних. Цю команду можна застосовувати тільки для серверів версії 8 і вище.


Команда SHUTDOWN має наступний синтаксис:



<Команда SHUTDOWN>:: =
SHUTDOWN <режим зупинки>
<Режим зупинки>:: =

ABORT / IMMEDIATE / NORMAL / TRANSACTIONAL [LOCAL]

Призначення опцій команди SHUTDOWN описане в таблиці. 18:


Таблиця 18. Опції команди SHUTDOWN.



















Опція  Призначення 
ABORT  Виконує негайну зупинку бази даних, не чекаючи завершення транзакцій і відключення користувачів. Ця опція використовується при аварійному завершенні одного з фонових процесів або при неможливості нормальної зупинки. При перезапуску буде заново.
IMMEDIATE  Чи не чекає завершення транзакцій (автоматично їх відкатує) і відключення користувачів. Нові підключення забороняються. База даних закривається і демонтується, потім зупиняється екземпляр. При перезапуску відновлення не буде потрібно.
NORMAL  Чекає відключення всіх користувачів від бази даних (нові підключення заборонені). База даних закривається і демонтується, потім зупиняється екземпляр. При перезапуску відновлення не буде потрібно.

Ця опція використовується за замовчуванням.

TRANSACTIONAL [LOCAL Чекає завершення активних транзакцій. При спробі почати нову транзакцію відбувається відключення сеансу. Після завершення всіх активних транзакцій всі сеанси автоматично відключаються. Потім зупинка йде як при введенні опції IMMEDIATE.

Режим LOCAL задає такий режим зупинки тільки для локальних транзакцій. Сервер не чекає завершення віддалених транзакцій.


Цю команду може виконувати тільки користувач, що підключився як SYSOPER або SYSDBA до виділеного серверного процесу. За замовчуванням використовується опція NORMAL.


Управління архівуванням журналів повторного виконання


Кожна база даних Oracle має набір з двох або більше файлів журналу повторного виконання, який узагальнено називають просто журналом повторного виконання. До цього журналу записуються зміни даних, які використовуються при відновленні бази даних після збоїв. Для захисту від збою самого журналу сервер Oracle підтримує його мультиплексування (підтримку декількох копій на різних дисках у вигляді групи) і архівування.


Якщо база даних працює в режимі ARCHIVELOG, Виконується архівування оперативного логічного журналу, що забезпечує повне відновлення при збої як примірника, так і диска з журналами повторного виконання, оскільки всі зміни даних зберігаються в окремому, заархівованому журнальному файлі.


Для управління режимом архівування журналів повторного виконання утиліта SQL * Plus пропонує команду ARCHIVE LOG, Яка має такий синтаксис:



<Команда ARCHIVE LOG>:: =
ARCHIVE LOG <Команда або журнал> [TO <Місце призначення>]
<Команда або журнал>:: =
LIST / STOP / START / NEXT / ALL / <Номер журналу>

Ця команда дозволяє почати або зупинити автоматичне архівування оперативних файлів журналу повторного виконання, явно заархівувати зазначені за номерами файли або видати інформацію про них. Опції команди ARCHIVE LOG описані в табл. 19.


Таблиця 19. Опції команди ARCHIVE LOG.

























Опція  Призначення 
LIST  Видає інформацію про режим архівування, каталозі, в якому створюються файли архіву, номерах поточної, останньої заархівований і вимагає архівування групи журналів. Вид видаваної інформації представлений у прикладі нижче.
STOP  Зупиняє автоматичне архівування. Якщо екземпляр, як і раніше працює в режимі ARCHIVELOG і всі групи журналів повторного виконання заповнені, робота бази даних призупиняється, поки файл журналу повторного виконання не буде заархівований (наприклад, командами ARCHIVE LOG NEXT або ARCHIVE LOG ALL).
START  Включає автоматичне архівування. Запускає фоновий процес ARCH, Що виконує автоматичне архівування при необхідності. Якщо запускається процес ARCH і в команді вказано ім'я файлу, цей файл стає новим стандартним місцем призначення для архіву. Процес ARCH запускається автоматично при запуску екземпляра, якщо параметр ініціалізації LOG_ARCHIVE_START має значення TRUE.
NEXT  Явно архівує наступну заповнену, але ще не заархівовані оперативну групу файлів журналу повторного виконання.
ALL  Явно архівує всі заповнені, але ще не заархівовані оперативні групи файлів журналу повторного виконання.
номер журналу  Викликає архівування будь ще доступною оперативної групи файлів журналу повторного виконання з вказаним номером послідовності. Якщо така група не знайдена, видається повідомлення про помилку. Ця опція дозволяє повторно виконати архівування групи.

Якщо місце призначення для архіву не вказано явно в командному рядку, використовується параметр ініціалізації LOG_ARCHIVE_DEST (Стандартне місце призначення). Якщо нове місце призначення вказано з опцією START, Воно стає стандартним. В інших випадках туди записуються тільки відповідні архіви, ініційовані даною командою.


Команду ARCHIVE LOG може виконувати тільки користувач, що підключився як SYSOPER або SYSDBA. Вона застосовується тільки до поточного екземпляру. Для управління іншими екземплярами і кластером в цілому використовується SQL-оператор ALTER SYSTEM.


Якщо всі оперативні групи файлів журналу повторного виконання заповнені і не доступні для повторного використання (тобто сервер працює в режимі ARCHIVELOG, І вони не скопійовані) робота бази даних призупиняється. Явна архівування вирішує цю проблему.


Розглянемо простий приклад використання команди ARCHIVE LOG для перегляду інформації про поточний стан архівування журналів повторного виконання:

SQL> archive log list
Режим журналу бази даних Режим архіву
Автоматичне архівування Включено
Місце розміщення архіву g: oracleoradata raining
Найстаріша послідовність оперативних журналів 745
Наступна послідовність журналів для архівування 747
Поточна послідовність журналів 747
SQL> archive log 745
ORA-16013: журнал 1 з номером послідовності 745 не вимагає
архівування
ORA-00312: оперативний протокол 1 процесу 1:
“G:ORACLEORADATATRAININGREDO01.LOG”

Відновлення бази даних


Якщо база даних працювала в режимі ARCHIVELOG, Після збою носія її можна повністю або частково відновити. Для цього в SQL * Plus пропонується команда RECOVER, Що має наступний, дуже об'ємний, синтаксис:



<Команда RECOVER>:: =
RECOVER <Режим відродження> [<ступінь паралелізму>]
<Режим відновлення>:: =
<Загальне відновлення> / <кероване відновлення> / END BACKUP
<Загальне відновлення>:: =
[AUTOMATIC] [FROM <Місцезнаходження>] <команда відродження>
<Команда відродження>:: =
<Вид відродження> [TEST ALLOW <Ціле число> CORRUPTION]
  / CONTINUE [DEFAULT]
  / CANCEL
<Вид відродження>:: =
<Повне відновлення>
/ <Часткове відновлення>
  / LOGFILE <Ім'я файлу>
<Повне відновлення>:: =
[STANDBY] DATABASE {<Рівень відновлення>} <рівень відродження> UNTIL <Точка відродження>
  / USING BACKUP CONTROLFILE
<Точка відродження>:: =
CANCEL / TIME <Дата> / CHANGE <Ціле число>
<Часткове відновлення>:: =
<Табличні простору або файли даних>
  / STANDBY <Табличні простору або файли даних>
    UNTIL [CONSISTENT] [WITH] CONTROLFILE
<Табличні простору або файли даних>:: =
TABLESPACE <Табличний простір> {, <Табличний простір>}
  / DATAFILE <Файл даних> {, <Файл даних>}
<Кероване відновлення>:: =
MANAGED STANDBY DATABASE <Опція керованого відродження>
<Опція керованого відновлення>:: =
NODELAY
  / [TIMEOUT] <Ціле число>
  / CANCEL [IMMEDIATE] [NOWAIT]
  / DISCONNECT [FROM SESSION] [FINISH [NOWAIT]]
<Ступінь паралелізму>:: =
PARALLEL [<Ціле число>] / NOPARALLEL

Опції команди RECOVER коротко описані в табл. 20.


Таблиця 20. Опції команди RECOVER.
























































































Опція  Призначення 
AUTOMATIC  Автоматично генерує ім'я архівного файлу журналу повторного виконання, необхідного для продовження операції відновлення. Для цього використовуються значення параметрів конфігурації LOG_ARCHIVE_DEST і LOG_ARCHIVE_FORMAT (Або відповідні стандартні значення). Якщо файл з таким ім'ям не знайдений, SQL * Plus запитує ім'я файлу, виводячи автоматично згенероване як підказка. Ім'я запитується також, якщо не зазначено ані опція AUTOMATIC, Ні опція LOGFILE. Якщо заздалегідь відомо, що архівування виконувалося у файл з нестандартним ім'ям, має сенс відразу вказати опцію LOGFILE.
FROM <Місцезнаходження> Визначає місцезнаходження архівних файлів журналу повторного виконання. За замовчуванням використовується значення параметра ініціалізації LOG_ARCHIVE_DEST. Можна також задати місцезнаходження архівних файлів за допомогою команди SQL * Plus SET LOGSOURCE.
LOGFILE  Продовжує відновлення носіїв, застосовуючи зазначений файл журналу повторного виконання. При відновленні в інтерактивному режимі (AUTORECOVERY OFF), Запитує нове ім'я файлу, якщо зазначений файл журналу не знайдено.
TEST ALLOW <Ціле число> CORRUPTION  У разі пошкодження файлу журналу вказує, при скількох пошкоджених блоках ще можна продовжувати відновлення. У ході звичайного відновлення це значення не повинно бути більше 1.
CONTINUE  Продовжує відновлення кількох екземплярів після переривання для відключення відновлення одного з них.
CONTINUE DEFAULT  Продовжує відновлення, використовуючи автоматично згенероване ім'я архівного файлу журналу повторного виконання, якщо воно не вказано явно. Аналогічно опції AUTOMATIC, Але не запитує альтернативне ім'я файлу, якщо файл не знайдений.
CANCEL  Перериває відновлення, яке ведеться до CANCEL (Див. опцію UNTIL CANCEL).
STANDBY DATABASE  Відновлює резервну базу даних, використовуючи керуючий файл і архівні файли журналу повторного виконання основної бази даних. Резервна база даних повинна бути змонтована, але не відкрита.
DATABASE  Відновлює всю базу даних в цілому.
UNTIL CANCEL  Визначає неповне відновлення, до переривання адміністратором. Необхідно вказати або підтвердити автоматично згенеровані імена файлів журналів повторного виконання. Відновлення завершиться, якщо вказати CANCEL замість чергового імені файлу.
UNTIL TIME  Визначає неповне відновлення до моменту часу. Момент часу вказується в одиночних лапках за форматом “YYYY-MM-DD:HH24:MI:SS”.
UNTIL CHANGE  Визначає неповне відновлення до зазначеного за номером зміни (SCN), Не включаючи його.
USING BACKUP CONTROLFILE  Вказує, що замість поточного керуючого файлу повинна використовуватися його резервна копія.
TABLESPACE  Відновлює зазначені табличні простору поточної бази даних (до 16).
DATAFILE  Відновлює будь-яку кількість вказаних файлів даних.
STANDBY TABLESPACE  Реконструює втрачене або пошкоджене табличний простір на резервній базі даних, використовуючи архівні файли журналу повторного виконання і керуючий файл основної бази даних.
STANDBY DATAFILE  Реконструює загублений або пошкоджений файл даних на резервній базі даних, використовуючи архівні файли журналу повторного виконання і керуючий файл основної бази даних.
UNTIL CONSISTENT WITH CONTROLFILE  Вказує, що відновлення старого табличного простору або файлу даних використовує поточний керуючий файл резервної бази даних.
MANAGED STANDBY DATABASE  Визначає режим стійкого відновлення резервної бази даних. У цьому режимі передбачається, що резервна база даних є активним компонентом. У такому режимі можна відновлювати лише носії.
NODELAY  Негайно застосовує відкладений архівний журнал до резервної базі даних, незалежно від установки параметра DELAY в параметрі ініціалізації LOG_ARCHIVE_DEST_n в основній базі даних.
TIMEOUT  Задає період очікування (у хвилинах) для операції стійкого відновлення. Якщо за цей час не стане доступним архівний журнал повторного виконання, процес відновлення завершується з помилкою. Якщо ця конструкція не вказана, резервна база даних залишається в стані очікування відновлення, поки не буде повторно виконана команда RECOVER з конструкцією CANCEL або поки не відбудеться зупинка чи збій екземпляра.
CANCEL  При керованому відновленні конструкція CANCEL перериває відновлення резервної бази даних після застосування поточного архівного файлу повторного виконання. Запрошення SQL * Plus знову з'явиться після зупинки процесу відновлення.
CANCEL IMMEDIATE  Перериває кероване відновлення резервної бази даних після застосування поточного архівного файлу повторного виконання або після прочитання наступного, в залежності від того, яка подія відбудеться раніше. Запрошення SQL * Plus знову з'явиться після зупинки процесу відновлення. Команду RECOVER CANCEL IMMEDIATE не можна виконувати з того ж сеансу, з якого була виконана команда RECOVER MANAGED STANDBY DATABASE.
CANCEL NOWAIT  Перериває кероване відновлення резервної бази даних після прочитання наступного файлу журналу повторного виконання та видає запрошення SQL * Plus.
DISCONNECT FROM SESSION  Вказує, що в ході керованого відновлення архівні файли повторного виконання повинні застосовуватися окремим фоновим процесом, не блокуючим поточний сеанс.
FINISH  Негайно відновлює резервні файли поточного журналу повторного виконання резервної бази даних. Використовується при збої основної бази даних.
NOWAIT  Повертає управління негайно, не чекаючи завершення процесу відновлення.

Для виконання команди RECOVER необхідно володіти роллю SYSDBA і підключитися через виділений серверний процес.


Щоб можна було виконати відновлення носіїв для всієї бази даних в цілому (для всіх табличних просторів), база даних повинна бути змонтована, але закрита, а всі потребують відновлення табличні простору повинні бути включені (online). Для відновлення ж окремого табличного простору база даних повинна бути змонтована і відкрита, а саме табличний простір відключено. Для відновлення файлу даних, база даних може залишатися відкритою і змонтованої, а пошкоджені файли – відключені (якщо тільки вони не входять в табличний простір SYSTEM).


Розглянемо простий приклад зупинки, запуску та відновлення носія з SQL * Plus:

SQL> connect system/manager as sysdba
Зв'язано.
SQL> shutdown
База даних закрита.
База даних розмонтувати.
Примірник ORACLE завершений.
SQL> startup mount
Примірник ORACLE запущений.
Total System Global Area 152581388 bytes
Fixed Size 70924 bytes
Variable Size 78741504 bytes
Database Buffers 73691136 bytes
Redo Buffers 77824 bytes
База даних змонтована.
SQL> recover database until time “2001-12-09:00:00:00”
Відновлення носія завершено.
SQL> alter database open;

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*