Отправляет email-рассылки с помощью сервиса Sendsay

Открыто о СУБД Oracle на русском

  Все выпуски  

Открыто о СУБД Oracle на русском : создаем кластер, контекст, управляющий файл и базу данных


Информационный Канал Subscribe.Ru

Выпуск 17

Синтаксис: создаем кластер, контекст, управляющий файл и базу данных

Уважаемые подписчики! Этот выпуск, раз уж обещан как авторский, будет посвящен моей излюбленной теме - формальному синтаксису SQL. Начнем с операторов CREATE, по алфавиту. Синтаксис представлен в виде расширенных формул Бэкуса-Наура для версии сервера 9.0.1.

Такие выпуски, посвященные формальному синтаксису, будут выходить регулярно, скажем, раз в месяц.

Оператор CREATE CLUSTER

Создание кластера - объекта схемы, содержащего данные одной или нескольких таблиц, имеющих один или несколько общих столбцов.

<оператор CREATE CLUSTER> ::=
CREATE CLUSTER [<схема>.]<имя кластера>
  (<столбец> <тип> {, <столбец> <тип>})
  {<атрибут кластера>} [<параллелизм>]
  [<зависимости строк>]; [<кэширование>];

<атрибут кластера> ::=
{<физический атрибут>}
| SIZE <целое число> [<единица измерения>]
| TABLESPACE <имя табличного пространства>
| <индексный или хэш-кластер>

<физический атрибут> ::=
PCTFREE <целое число>
| PCTUSED <целое число>
| INITRANS <целое число>
| MAXTRANS <целое число>
| <конструкция хранения>

<единица измерения> ::=
K | M

<индексный или хэш-кластер> ::=
INDEX
| [SINGLE TABLE] HASHKEYS <целое число> [HASH IS <выражение>]

<параллелизм> ::=
NOPARALLEL | PARALLEL [<целое число>]

<зависимости строк> ::=
NOROWDEPENDENCIES | ROWDEPENDENCIES

<кэширование> ::=
CACHE | NOCACHE

Конструкции хранения будет посвящен отдельный выпуск рассылки.

Примеры

Простой индексный кластер:
CREATE CLUSTER personnel (dept NUMBER(4));
Хэш-кластер с нестандартной хэш-функцией:
CREATE CLUSTER address
 (postal_code NUMBER, country_id CHAR(2))
HASHKEYS 20
HASH IS MOD(postal_code + country_id, 101);
Однотабличный хэш-кластер:
CREATE CLUSTER cust_orders (customer_id NUMBER(6))
SIZE 512 SINGLE TABLE HASHKEYS 100;

Оператор CREATE CONTEXT

Создание пространства имен для контекста (набора прикладных атрибутов) и его связь с пакетом, задающим контекст.

<оператор CREATE CONTEXT> ::=
CREATE [OR REPLACE] CONTEXT <пространство имен>
  USING [<схема>.] <имя пакета>
  [<особенности доступа и инициализации>];

<особенности доступа и инициализации> ::=
ACCESSED GLOBALLY
| INITIALIZED EXTERNALLY
| INITIALIZED GLOBALLY

Пример

Создание контекста (пространства имен) для пакета emp_mgmt:
CREATE CONTEXT hr_context USING emp_mgmt;

Оператор CREATE CONTROLFILE

Пересоздание управляющего файла для базы данных при потере существующих, переименовании базы данных или изменении ее ключевых атрибутов.

<оператор CREATE CONTROLFILE> ::=
CREATE CONTROLFILE [REUSE] [SET] DATABASE <имя базы данных>
  [<журнальные файлы>] <сброс журналов> [<файлы данных>]
  {<атрибут базы данных>} [<набор символов>] ;

<журнальные файлы> ::=
LOGFILE <спецификация журнального файла> {, <спецификация журнального файла>}

<спецификация журнального файла> ::=
[GROUP <целое число>] <спецификация файла журнала redo>

<сброс журналов> ::=
RESETLOGS | NORESETLOGS

<файлы данных> ::=
DATAFILE <спецификация файла данных> {, <спецификация файла данных>}

<атрибут базы данных> ::=
MAXLOGFILES <целое число>
| MAXLOGMEMBERS <целое число>
| MAXLOGHISTORY <целое число>
| MAXDATAFILES <целое число>
| MAXINSTANCES <целое число>
| ARCHIVELOG
| NOARCHIVELOG

<спецификация набора символов> ::=
CHARACTER SET <набор символов>

<спецификация файла журнала redo> ::=
[<файл или группа файлов>] [SIZE <целое число> [<единица измерения>]] [REUSE]

<файл или группа файлов> ::=
'<имя файла>' | ('<имя файла>'{, '<имя файла>'})

<спецификация файла данных> ::=
['<имя файла>'] [SIZE <целое число> [<единица измерения>]] [REUSE]

Пример

Пересоздание управляющего файла:
CREATE CONTROLFILE REUSE DATABASE "demo" NORESETLOGS NOARCHIVELOG
    MAXLOGFILES 32
    MAXLOGMEMBERS 2
    MAXDATAFILES 32
    MAXINSTANCES 1
    MAXLOGHISTORY 449
LOGFILE
    GROUP 1 '/home/oracle/dbs/t_log1.f' SIZE 500K,
    GROUP 2 '/home/oracle/dbs/t_log2.f' SIZE 500K
DATAFILE
    '/home/oracle/dbs/t_db1.f',
    '/home/oracle/dbs/dbu19i.dbf',
    '/home/oracle/dbs/tbs_11.f',
    '/home/oracle/dbs/smundo.dbf',
    '/home/oracle/dbs/demo.dbf'
CHARACTER SET CL8MSWIN1251;

Оператор CREATE DATABASE

Создание базы данных с предоставлением ее для общего использования.

<оператор CREATE DATABASE> ::=
CREATE DATABASE [<имя БД>] <характеристика БД> {<характеристика БД>};

<характеристика БД> ::=
CONTROLFILE REUSE
| <журнальные файлы>
| <атрибут базы данных>
| <спецификация набора символов>
| NATIONAL CHARACTER SET <набор символов>
| <спецификация файлов данных>
| <стандартное временное табличное пространство>
| <табличное пространство UNDO>
| <резервная база данных>
| <установка часового пояса>

<спецификация файлов данных> ::=
DATAFILE <спецификация файла данных> [<авторасширение>]
  {, <спецификация файла данных> [<авторасширение>]}

<авторасширение> ::=
AUTOEXTEND OFF
| AUTOEXTEND ON [NEXT <целое число> [<единица измерения>]]
  [MAXSIZE <ограничение размера файла>]

<ограничение размера файла> ::=
UNLIMITED | <целое число> [<единица измерения>]

<стандартное временное табличное пространство> ::=
DEFAULT TEMPORARY TABLESPACE <имя табличного пространства>
  [TEMPFILE <спецификация файла>] <экстенты временного пространства>

<экстенты временного пространства> ::=
[EXTENT MANAGEMENT LOCAL] [UNIFORM [SIZE <целое число> [<единица измерения>]]]

<табличное пространство UNDO> ::=
UNDO TABLESPACE <имя табличного пространства> [<спецификация файлов данных>]

<установка часового пояса> ::=
SET TIME_ZONE = '<часовой пояс>'

<часовой пояс> ::=
<знак> <часов> : <минут> | <название часового пояса>

<знак> ::=
+ | -

Примеры

Создание базы данных с явным заданием большинства характеристик:
CREATE DATABASE sample
    CONTROLFILE REUSE
    LOGFILE
        GROUP 1 ('/d3/log1.log', '/d4/log1.log') SIZE 50K,
        GROUP 2 ('/d3/log2.log', '/d4/log2.log') SIZE 50K
    MAXLOGFILES 5
    MAXLOGHISTORY 100
    MAXDATAFILES 10
    MAXINSTANCES 2
    ARCHIVELOG
    CHARACTER SET UTF8
    NATIONAL CHARACTER SET AL16UTF16
    DATAFILE
        '/d1/df1.dbf' AUTOEXTEND ON,
        '/d2/df2.dbf' AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
    DEFAULT TEMPORARY TABLESPACE temp_ts
    UNDO TABLESPACE undo_ts
    SET TIME_ZONE = '+02:00';
Создание типичной базы данных в ОС Windows NT:
CREATE DATABASE training
    LOGFILE 'g:\oracle\oradata\training\redo01.log' SIZE 1024K,
        'g:\oracle\oradata\training\redo02.log' SIZE 1024K,
        'g:\oracle\oradata\training\redo03.log' SIZE 1024K
    MAXLOGFILES 32
    MAXLOGMEMBERS 2
    MAXLOGHISTORY 1
    DATAFILE 'g:\oracle\oradata\training\system01.dbf' SIZE 58M  REUSE AUTOEXTEND ON NEXT 640K
    MAXDATAFILES 254
    MAXINSTANCES 1
    CHARACTER SET CL8MSWIN1251
    NATIONAL CHARACTER SET CL8MSWIN1251;

В следующем выпуске

О хитрых соединениях, запросах с конструкциями IN и EXISTS... Вобщем, много полезных сведений с подачи Тома Кайта. Мне уже нравится - осталось сделать. Выпуск выйдет в конце следующей недели. Следите за новостями на сайте проекта Open Oracle.

С наилучшими пожеланиями,

  В.К.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное