Утиліта 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>

*

*