СОЗДАНИЕ БАЗЫ ДАННЫХ
ГЛАВА 2
----------------------------------------------------------------
СОЗДАНИЕ БАЗЫ ДАННЫХ
Эта глава перечисляет шаги, необходимые для создания базы
данных. Темы этой главы включают обсуждение следующих вопросов:
* подготовка к созданию базы данных ORACLE
* создание базы данных ORACLE
* первоначальная настройка базы данных
* создание словаря данных
* добавление структур после создания базы данных
[Trusted]
Если вы используете Trusted ORACLE, обратитесь к документу
Trusted ORACLE7 Server Administrator's Guide для дополнительной
информации о создании баз данных в этом окружении.
Создание базы данных ORACLE 2-1
----------------
Подготовка к созданию базы данных
При создании базы данных необходимо подготовить несколько файлов
данных операционной системы, которые будут использоваться вместе
как единая база данных. База данных создается один раз,
независимо от того, сколько файлов данных она имеет, и сколько
инстанций будут обращаться к ней. Процедуру создания базы
данных можно также использовать для того, чтобы стереть
информацию в существующей базе данных и создать новую базу
данных с тем же именем и физической структурой.
Создание базы данных включает следующие операции:
* создание новых файлов данных, или стирание данных,
хранившихся в предыдущих файлах данных
* создание структур, требующихся ORACLE для доступа и
работы с базой данных (словаря данных)
* создание и инициализация управляющих файлов и файлов
журнала повторения для базы данных
База данных создается с помощью предложения, включающего команду
SQL CREATE DATABASE; однако, прежде чем выдавать такое
предложение, рассмотрите следующие вопросы:
* Спланируйте ваши таблицы и индексы, и оцените, сколько
пространства они потребуют. Подробная информация о
таблицах, индексах и управлении пространством содержится
в главах 7 и 8.
* Спланируйте проблемы защиты вашей базы данных, включая
конфигурацию ее онлайнового и архивного журналов (с
учетом занимаемого ими пространства) и страгегию
резервного копирования. Для дополнительной информации об
онлайновом и архивном журналах обратитесь к главам 5 и 17
соответственно; вопросы копирования и восстановления базы
данных обсуждаются в главах 18 и 19.
* Выберите набор символов базы данных. Вы должны указать
набор символов при создании базы данных, и не сможете
изменить его до повторного создания базы данных. Все
символьные данные в базе данных, включая данные в словаре
данных, хранятся в наборе символов базы данных. Если
пользователи предполагают обращаться к базе данных,
используя другие наборы символов, то набор символов базы
данных должен быть надмножеством всех используемых
наборов символов. Для дополнительной информации о
вопросах поддержки национальных языков (NLS) обратитесь к
приложению C.
2-2 Руководство администратора
Эта глава предоставляет относительно общую информацию о создании
базы данных, касающуюся любой операционной системы. Еще одним
важным источником информации по этой теме является руководство
по инсталляции ORACLE [IUG] для вашей конкретной платформы. При
создании базы данных вам придется постоянно обращаться к этому
руководству.
Кроме того, ознакомьтесь с главой 3, "Запуск и закрытие", чтобы
понимать принципы и возможности запуска и останова инстанции,
монтирования и открытия базы данных, и использования файлов
параметров.
Если вы создаете базу данных в Trusted ORACLE, обратитесь к
документу Trusted ORACLE7 Server Administrator's Guide для
информации о дополнительных шагах и соображениях.
Необходимые предпосылки
-----------------------
Для создания новой базы данных вы должны иметь:
* привилегии операционной системы, соответствующие
полноправному администратору базы данных (см.
"Соединение в режиме INTERNAL" на странице 1-4)
* достаточное количество памяти для запуска инстанции
ORACLE
* достаточный объем дискового пространства для планируемой
базы данных на компьютере, выполняющем ORACLE
Начальная база данных
---------------------
В зависимости от вашей операционной системы, база данных уже
могла быть создана как часть процедуры инсталляции ORACLE. Вы
можете использовать эту начальную базу данных и настроить ее в
соответствии с вашими требованиями, либо отбросить ее и создать
вместо нее одну или несколько новых баз данных.
Миграция старой версии базы данных
----------------------------------
Если вы уже используете предыдущую версию ORACLE, то создание
базы данных требуется лишь в том случае, если вам нужна
совершенно новая база данных. В противном случае вы можете
осуществить миграцию ваших существующих баз данных ORACLE и
продолжать работать с ними в новой версии программного
обеспечения ORACLE. Для вопросов миграции обратитесь к
документу ORACLE7 Server Migration Guide и вашему руководству по
инсталляции [IUG].
Для указаний по миграции в Trusted ORACLE, обратитесь к
документу Trusted ORACLE7 Server Administrator's Guide.
Создание базы данных ORACLE 2-3
----------------
Создание базы данных ORACLE
Для создания каждой новой базы данных ORACLE необходимо
последовательно выполнить следующие шаги:
1. Скопировать все существующие базы данных.
2. Создать файлы параметров.
3. Отредактировать новые файлы параметров.
4. Проверить идентификатор инстанции ORACLE.
5. Запустить SQL*DBA и соединиться с ORACLE как INTERNAL.
6. Запустить инстанцию.
7. Создать базу данных.
8. Скопировать базу данных.
Шаг 1: Копирование существующих баз данных
------------------------------------------
Корпорация Oracle настоятельно рекомендует вам сделать полные
копии всех существующих баз данных, прежде чем создавать новые
базы данных, на случай, если создание базы данных
непреднамеренно затронет какие-либо существующие файлы.
Необходимо скопировать файлы параметров, файлы данных, файлы
журнала повторения и управляющие файлы. Более подробная
информация о копировании содержится в главе 18.
Шаг 2: Создание файлов параметров
---------------------------------
Инстанция (SGA и фоновые процессы) для любой базы данных ORACLE
запускается с помощью файла параметров. (См. "Использование
файлов параметров" на странице 3-13.)
Каждая база данных в вашей системе должна иметь хотя бы один
настроенный файл параметров, соответствующий только этой базе
данных; не используйте один и тот же файл параметров для
нескольких баз данных.
Чтобы создать файл параметров для базы данных, которую вы
собираетесь создавать, скопируйте средствами операционной
системы файл параметров, предоставленный на дистрибутивном
носителе Oracle. Дайте этой копии новое имя; теперь вы можете
отредактировать и настроить этот новый файл для вашей новой базы
данных. (Для более подробной информации о том, как копировать
этот файл, обратитесь к вашему документу по инсталляции [IUG].)
В окружении распределенной обработки, SQL*DBA часто выполняется
на машине клиента, связанной с сервером базы данных через сеть.
Если вы собираетесь создавать базу данных в такой конфигурации,
предварительно скопируйте новый файл параметров с компьютера,
выполняющего ORACLE, на вашу рабочую станцию клиента. Эта
2-4 Руководство администратора
процедура зависит от операционной системы; за подробностями о
копировании файлов между компьютерами в вашей сети обратитесь к
вашему документу по инсталляции [IUG].
Шаг 3: Редактирование новых файлов параметров
---------------------------------------------
Перед созданием новой базы данных проверьте и отредактируйте в
новом файле параметров по крайней мере следующие параметры:
DB_NAME, DB_DOMAIN, CONTROL_FILES, DB_BLOCK_SIZE,
DB_BLOCK_BUFFERS, PROCESSES и ROLLBACK_SEGMENTS.
В большинстве случаев необходимо также отредактировать либо
LICENSE_MAX_SESSIONS и LICENSE_SESSION_WARNING, либо
LICENSE_MAX_USERS.
Значение каждого из этих параметров описано ниже. (См. также
секцию "Использование файлов параметров" на странице 3-13.)
DB_NAME и DB_DOMAIN
Параметры DB_NAME и DB_DOMAIN совместно задают ГЛОБАЛЬНОЕ ИМЯ
БАЗЫ ДАННЫХ (т.е. имя и местоположение базы данных в сетевой
структуре); после создания базы данных имя ее изменить нелегко.
Параметр DB_NAME определяет локальную компоненту имени базы
данных, тогда как параметр DB_DOMAIN указывает ее домен
(логический адрес) в сетевой структуре. Комбинация значений
этих двух параметров должна формировать имя базы данных,
уникальное во всей сети. Например, чтобы создать базу данных с
глобальным именем TEST.US.ACME.COM, отредактируйте параметры в
новом файле параметров следующим образом:
DB_NAME = TEST
DB_DOMAIN = US.ACME.COM
Параметр DB_NAME должен задаваться как текст, содержащий не
более восьми символов. Во время создания базы данных, имя,
предоставляемое параметром DB_NAME, записывается в файлы данных,
файлы журнала, а также в управляющий файл базы данных. Если во
время запуска инстанции обнаружится несовпадение значения
параметра DB_NAME в файле параметров и именами базы данных в
управляющем файле, то база данных не запустится.
Параметр DB_DOMAIN задается как текст, специфицирующий сетевой
домен, в котором создается база данных; обычно это имя
организации, которой принадлежит база данных. Если база данных,
которую вы создаете, когда-нибудь может стать частью системы
распределенной базы данных, то обратите особое внимание на этот
параметр инициализации перед тем, как создавать базу данных.
Для дополнительной информации см. секцию "Управление глобальными
именами баз данных" на странице 15-3.
CONTROL_FILES
Включите в ваш новый файл параметров параметр CONTROL_FILES, и в
качестве его значения укажите список имен управляющих файлов,
которые вы будете использовать для новой базы данных. Если вы
Создание базы данных ORACLE 2-5
хотите, чтобы ORACLE создал новые файлы операционной системы для
управляющих файлов вашей базы данных, проверьте, чтобы имена
файлов, перечисленные в параметре CONTROL_FILES, не совпадали с
именами существующих файлов. И наоборот, если вы хотите, чтобы
ORACLE повторно использовал существующие файлы при создании
вашей базы данных, проверьте, чтобы имена файлов, перечисленные
в параметре CONTROL_FILES, совпадали с именами этих существующих
[!] файлов. БУДЬТЕ ПРЕДЕЛЬНО ВНИМАТЕЛЬНЫ ПРИ ЗАДАНИИ ЭТОГО
ПАРАМЕТРА. ЕСЛИ ВЫ НЕЧАЯННО УКАЖЕТЕ ИМЯ СУЩЕСТВУЮЩЕГО ФАЙЛА, ТО
ПОСЛЕ ВЫПОЛНЕНИЯ КОМАНДЫ CREATE DATABASE СТАРОЕ СОДЕРЖИМОЕ ЭТОГО
ФАЙЛА БУДЕТ ПЕРЕКРЫТО.
Если параметр CONTROL_FILES не используется для указания имен
управляющих файлов, то ORACLE использует умалчиваемое имя. Это
имя зависит от операционной системы; для подробностей обратитесь
к вашему руководству по инсталляции [IUG].
Корпорация Oracle настоятельно рекомендует вам использовать как
минимум два управляющих файла, расположенных на раздельных
физических устройствах. Поэтому при специфицировании параметра
CONTROL_FILES для нового файла параметров руководствуйтесь
следующими указаниями:
* Укажите по меньшей мере два имени файла в параметре
CONTROL_FILES.
* Поместите каждый управляющий файл на отдельном физическом
дисковом устройстве, задав для него полное имя,
включающее спецификацию устройства.
Замечание: Спефицикация файла для управляющих файлов зависит от
операционной системы. Независимо от операционной системы,
ВСЕГДА задавайте полную спецификацию имен для ваших управляющих
файлов.
Когда вы выполните предложение CREATE DATABASE (на шаге 8),
управляющие файлы, перечисленные в параметре CONTROL_FILES,
будут созданы.
DB_BLOCK_SIZE
Умалчиваемый размер блока данных для каждого сервера ORACLE
зависит от операционной системы; см. ваше руководство по
инсталляции. Обычно этот размер равен 2K или 4K. В большинстве
случаев не следует изменять умалчиваемый размер блока. Иногда,
однако, больший размер блока данных позволяет достичь большей
эффективности ввода-вывода. К таким случаям относятся
следующие:
* ORACLE находится на большой компьютерной системе с
большим объемом памяти и быстрыми дисководами. Например,
базы данных, управляемые мэйнфреймами с обширными
ресурсами оборудования, обычно используют размер блока
данных 4K или более.
* Операционная система, в которой выполняется ORACLE,
использует слишком маленький размер блока операционной
системы. Например, если размер блока ОС равен 1K, то
2-6 Руководство администратора
ORACLE при использовании такого же размера блока пришлось
бы выполнять лишние операции ввода-вывода при нормальной
работе. Чтобы избавиться от этого, все создаваемые базы
данных должны иметь размер блока, больший, чем принятый в
операционной системе.
Размер блока каждой базы данных задается при создании этой базы
данных параметром инициализации DB_BLOCK_SIZE. Этот размер
блока НЕЛЬЗЯ изменять после создания базы данных, если только не
создавать ее заново. Если размер блока данных базы данных
отличен от размера блока ОС, делайте его кратным размеру блока
ОС.
Например, если размер блока вашей ОС равен 2K (2048 байт), то
следующее задание параметра инициализации DB_BLOCK_SIZE должно
быть корректным:
DB_BLOCK_SIZE=4096
DB_BLOCK_SIZE также определяет размер буферов базы данных в
буферном кэше в глобальной области системы (SGA).
DB_BLOCK_BUFFERS
Этот параметр определяет число буферов в буферном кэше в
глобальной области системы (SGA). Число буферов влияет на
производительность кэша. Большие размеры кэша уменьшают число
физических операций записи модифицированных данных. Однако
слишком большой кэш может занять слишком много памяти и привести
к страничному обмену или свопингу памяти.
Оцените число блоков данных, к которым наиболее часто обращаются
ваши приложения, учитывая таблицы, индексы и сегменты отката.
Эта оценка даст грубое приближение минимального числа буферов,
которое должно быть в кэше.
Для дополнительной информации о настройке буферного кэша см.
секцию "Настройка буферного кэша", начиная со страницы 21-17.
PROCESSES
Этот параметр определяет максимальное число процессов
операционной системы, которые могут быть одновременно соединены
с ORACLE. Значение этого параметра должно включать 5 для
фоновых процессов и по 1 для каждого пользовательского процесса.
Например, если вы планируете иметь 50 конкурирующих
пользователей, установите этот параметр не меньше 55.
ROLLBACK_SEGMENTS
Этот параметр задает список сегментов отката, которые инстанция
ORACLE запрашивает при запуске базы данных. Укажите ваши
сегменты отката как значение этого параметра. Чтобы определить,
как много сегментов отката вам нужно, обратитесь к таблице 23-1
на странице 23-3.
После инсталляции вы должны создать по меньшей мере один сегмент
отката в табличном пространстве SYSTEM (в дополнение к сегменту
отката SYSTEM), прежде чем можно создавать любые объекты схем.
Создание базы данных ORACLE 2-7
LICENSE_MAX_SESSIONS, LICENSE_SESSION_WARNING
и LICENSE_MAX_USERS
ORACLE помогает вам обеспечивать, чтобы ваша установка отвечала
лицензионному соглашению ORACLE. Если ваша лицензия
ограничивает одновременную работу, вы можете отслеживать и
лимитировать число сессий, одновременно соединенных с
инстанцией; если ваша лицензия ограничивает число пользователей,
то вы можете лимитировать количество имен пользователей,
определенных в базе данных. Чтобы использовать это средство, вы
должны знать тип лицензионного соглашения на вашей установке и
максимальное число сессий или имен, определяемое этим
соглашением. У вас может оказаться лицензия любого из этих двух
типов, но не обе сразу.
Следующие секции объясняют, как первоначально установить лимиты
на число сессий и число пользователей. См. секцию
"Использование лицензирования по сессиям и пользователям" на
странице 11-2 для дополнительной информации об этом средстве.
Установка лимитов на одновременную работу
Вы можете установить лимит на число одновременных сессий,
которые могут быть присоединены к базе данных на конкретном
компьютере. Максимальное число одновременных сессий для
инстанции задается параметром LICENSE_MAX_SESSIONS в файле
параметров, используемом для запуска инстанции. Например:
LICENSE_MAX_SESSIONS = 80
Помимо максимума, вы можете также установить предупреждающий
лимит на число сессий. Когда достигается этот лимит,
дополнительные пользователи по-прежнему могут подключаться
(вплоть до максимального лимита), но ORACLE посылает
предупреждающее сообщение каждому соединяющемуся пользователю.
Предупреждающий лимит задается параметром
LICENSE_SESSION_WARNING. Задавайте для этого параметра значение
меньше, чем LICENSE_MAX_SESSIONS.
Для инстанций, выполняющихся в параллельном сервере, каждая
инстанция может иметь свои собственные значения для
максимального и предупреждающего лимитов на число сессий.
Однако сумма лимитов по всем инстанциям не должна превышать
лимит, установленный лицензией. Обратитесь к документу ORACLE7
Parallel Server Administrator's Guide для дополнительной
информации об установке лимитов в этом окружении.
Установка лимитов на число имен пользователей
Вы можете установить лимит на число пользователей, определенных
в базе данных. После того как достигнут этот лимит, вы не
можете создавать новых пользователей.
Замечание: Этот механизм предполагает, что каждое лицо,
обращающееся к базе данных, имеет уникальное имя пользователя, и
что никакие два лица не пользуются одинаковым именем
пользователя. Поэтому для того, чтобы это средство помогало вам
соблюдать лицензионное соглашение ORACLE, вы не должны позволять
пользователям совместно использовать одни и те же имена.
2-8 Руководство администратора
Чтобы ограничить число учетных имен пользователей в базе данных,
установите параметр LICENSE_MAX_USERS в файле параметров базы
данных. Например:
LICENSE_MAX_USERS = 200
Для инстанций, выполняющихся в параллельном сервере, все
инстанции должны иметь одинаковые значения этого параметра.
Обратитесь к документу ORACLE7 Parallel Server Administrator's
Guide для дополнительной информации об установке лимитов в этом
окружении.
Шаг 4: Проверка идентификатора инстанции
----------------------------------------
ЕСЛИ У ВАС ЕСТЬ ДРУГИЕ БАЗЫ ДАННЫХ, ПРОВЕРЬТЕ ИДЕНТИФИКАТОР
ИНСТАНЦИИ ORACLE. Эта процедура специфична для операционной
системы; обратитесь к вашему руководству по инсталляции [IUG].
Идентификатор инстанции ORACLE должен совпадать с именем базы
данных (значением DB_NAME), чтобы избежать путаницы с другими
инстанциями ORACLE, одновременно работающими в вашей системе.
Шаг 5: Запуск SQL*DBA и подключение в режиме INTERNAL
-----------------------------------------------------
Запуск SQL*DBA специфичен для операционной системы; обратитесь к
вашему руководству по инсталляции [IUG].
Запустив SQL*DBA, соединитесь с базой данных как INTERNAL.
(Обратитесь к секции "Соединение в режиме INTERNAL" на странице
1-4, а также к вашему руководству по инсталляции.)
Шаг 6: Запуск инстанции
-----------------------
Для запуска инстанции (SGA и фоновых процессов) для новой базы
данных используйте диалоговое окно Start Up Instance в SQL*DBA.
В диалоговом окне Start Up Instance, убедитесь, что не выбран ни
один из переключателей монтирования базы данных, что в поле
Database Name задано имя базы данных, и что в поле Parameter
File задано имя файла параметров. Если вы не знакомы с
диалоговым окном Start Up Instance, обратитесь к примеру на
странице 3-6.
После выполнения диалогового окна Start Up Instance инстанция
запускается. В этот момент базы данных еще не существует. Лишь
SGA и фоновые процессы запущены для подготовки к созданию новой
базы данных.
Шаг 7: Создание базы данных
---------------------------
Для создания новой базы данных используйте команду SQL CREATE
DATABASE, которая допускает необязательные параметры,
позволяющие указать имя базы данных, установить максимальное
число файлов, их имена и размеры, и т.д. При своем выполнении
предложение CREATE DATABASE выполняет следующие операции:
* создает файлы данных для базы данных
Создание базы данных ORACLE 2-9
* создает управляющие файлы для базы данных
* создает файлы журнала повторения для базы данных
* создает табличное пространство SYSTEM и сегмент отката
SYSTEM
* создает словарь данных
* создает пользователей SYS и SYSTEM
* специфицирует набор символов для базы данных
* монтирует и открывает базу данных для использования
Распределение файлов данных и журнала, а также создание словаря
данных могут потребовать значительного времени.
Замечание: Проверьте, чтобы заданные вами файлы данных и файлы
журнала повторения не пересекались с файлами другой базы данных.
Для полной информации о команде CREATE DATABASE обратитесь к
документу ORACLE7 Server SQL Language Reference Manual. Для
дополнительной информации о наборах символов и создании базы
данных обратитесь также к приложению C.
Пример команды CREATE DATABASE
------------------------------
Следующее предложение показывает пример команды CREATE DATABASE:
CREATE DATABASE test
LICENSE_MAX_USERS 64
LOGFILE GROUP 1 ('test_log1a', 'test_log1b') SIZE 500K,
LOGFILE GROUP 2 ('test_log2a', 'test_log2b') SIZE 500K
DATAFILE 'test_system' SIZE 10M;
Опции MAXLOGFILES, MAXLOGMEMBERS, MAXDATAFILES, MAXLOGHISTORY и
MAXINSTANCES в этом примере принимают свои умалчиваемые
значения, которые зависят от операционной системы. База данных
монтируется в умалчиваемых режимах NOARCHIVELOG и EXCLUSIVE, а
затем открывается.
Показанное в этом примене предложение приведет к созданию базы
данных со следующими характеристиками:
* Новая база данных имеет имя TEST.
* Табличное пространство SYSTEM новой базы данных состоит
из одного 10-мегабайтового файла данных с именем
TEST_SYSTEM.
* Новая база данных имеет две группы онлайнового журнала,
каждая из которых содержит по два 500KB члена.
* Новая база данных не перекрывает никаких существующих
файлов при создании управляющих файлов, специфицированных
в файле параметров.
Замечание: Во время создания базы данных вы можете установить
несколько лимитов. Некоторые из этих лимитов попадают также под
перекрывающие ограничения операционной системы; кроме того, они
могут влиять друг на друга. Например, если вы задаете параметр
2-10 Руководство администратора
MAXDATAFILES, то ORACLE распределяет в управляющем файле
достаточно места для указанного максимального количества имен
файлов, даже если первоначально в базе данных всего один файл
данных. Поскольку максимальный размер управляющего файла
ограничен и зависит от операционной системы, вам, возможно, не
удалось бы задать теоретически максимальные значения для всех
параметров CREATE DATABASE. Обратитесь к документам ORACLE7
Server Utilities User's Guide и ORACLE7 Server SQL Language
Reference Manual для дополнительной информации об установке
лимитов во время создания базы данных; обратитесь к вашему
руководству по инсталляции для информации о лимитах ОС.
Шаг 8: Копирование базы данных
------------------------------
Вы должны выполнить полное копирование базы данных, чтобы иметь
полный комплект файлов, из которых можно было бы восстановить
базу данных в случае сбоя носителя. См. главу 18.
Проблемы при создании базы данных
---------------------------------
Если по какой-либо причине создание базы данных не проходит,
выполните следующие шаги, прежде чем повторять попытку создания:
1. Закройте инстанцию.
2. Удалите все файлы, которые были созданы предложеним CREATE
DATABASE.
Выполнив эти два шага и устранив причину, вызвавшую ошибку при
создании базы данных, продолжите с шага 6.
После создания базы данных
--------------------------
После того, как база данных создана, инстанция по-прежнему
работает, а база данных открыта и доступна для нормальной
работы. В последующем, для запуска и останова базы данных
используйте SQL*DBA. Если в вашей системе несколько баз данных,
при каждом последующем запуске базы данных указывайте файл
параметров. Обратитесь к документу ORACLE7 Server Utilities
User's Guide для информации о входном поле Parameter File в
диалоговом окне Start Up Instance.
Если вы планируете инсталлировать другие продукты ORACLE для
использования с этой базой данных, руководствуйтесь инструкциями
по инсталляции для этих продуктов; некоторые продукты требуют от
вас создания дополнительных таблиц словаря данных. Используйте
руководства по инсталляции и дополнительную документацию для
дополнительных продуктов. Как правило, с такими продуктами
поставляются командные файлы, помогающие создать и загрузить
требуемые таблицы словаря данных.
Дистрибутивный носитель сервера ORACLE может включать
разнообразные файлы SQL, предназначенные для экспериментирования
с системой, изучения SQL или создания дополнительных таблиц,
обзоров или синонимов.
Вновь созданная база данных имеет двух пользователей, SYS и
SYSTEM. Пароли для этих двух имен следует изменить вскоре после
создания базы данных; см. "Учетные имена АБД" на странице 1-6
для дополнительной информации об этих именах, и "Изменение
Создание базы данных ORACLE 2-11
пользователей" на странице 11-11 для информации о процедуре
изменения пароля пользователя.
----------------
Указания по начальной настройке
Сразу же после инсталляции вы можете внести в ORACLE несколько
существенных настроечных изменений, которые помогут сократить
потребности в настройке при последующей работе с ORACLE. Эта
секция дает рекомендации по следующим вопросам инсталляции:
* распределение сегментов отката
* разделение ввода-вывода между дисками
Распределение сегментов отката
------------------------------
Правильное распределение сегментов отката служит оптимизации
производительности базы данных. Размер и число сегментов
отката, требуемые для оптимальной производительности, зависит от
вашего приложения. Табл.23-1 на странице 23-3 содержит
некоторые общие указания по выбору числа сегментов отката в
зависимости от числа одновременных транзакций на вашем сервере
ORACLE. Эти указания пригодны для большинства смесей
приложений.
Для создания сегментов отката используйте предложение CREATE
ROLLBACK SEGMENT. Эта команда описана в документе ORACLE7
Server SQL Language Reference Manual.
Выбор размеров для сегментов отката
Размер вашего сегмента отката также может влиять на
производительность. Этот размер определяется параметрами
пространства в предложении CREATE ROLLBACK SEGMENT. Ваши
сегменты отката должны быть достаточно велики для того, чтобы
вмещать записи отката для ваших транзакций. Для информации о
том, как выбрать размеры сегментов отката, см. секцию
"Уменьшение соперничества за сегменты отката" на странице 23-2.
Распределение ввода-вывода
--------------------------
Правильное распределение ввода-вывода способно резко улучшить
производительность. Ввод-вывод можно распределить во время
инсталляции ORACLE, благодаря чему уменьшается потребность
дальнейшего распределения операций ввода-вывода для работающей
базы данных.
Есть несколько способов распределить ввод-вывод во время
инсталляции ORACLE:
* размещение файлов журнала
* размещение файлов данных
* разделение таблиц и индексов
2-12 Руководство администратора
* выбор плотности данных (строк на блок данных)
Для обсуждения всех этих возможностей см. секцию "Распределение
ввода-вывода" на странице 22-4.
Создание словаря данных
-----------------------
Словарь данных автоматически создается во время создания базы
данных. Впоследствии, во время нормальной работы базы данных,
ORACLE обновляет словарь данных по каждому предложению DDL.
Базовые таблицы словаря данных должны быть первыми объектами,
создаваемыми в каждой базе данных, потому что эти таблицы должны
присутствовать для сохранения информации обо всех остальных
создаваемых объектах, определяемых пользователями. Во время
создания базы данных считывается параметр инициализации
INIT_SQL_FILES, чтобы определить имена скриптов, которые должны
быть выполнены немедленно после создания базы данных для
создания словаря данных и других важных структур. Умалчиваемые
имена этих скриптов зависят от операционной системы (обратитесь
к вашему руководству по инсталляции).
В общем случае, эти начальные файлы SQL выполняют следующие
задачи:
1. Определяют табличное пространство SYSTEM и сегмент отката
SYSTEM.
2. Определяют базовые таблицы словаря данных в табличном
пространстве SYSTEM. (Словарь данных создается и должен
оставаться в табличном пространстве SYSTEM.) Для каждой
таблицы и каждого столбца в базовой таблице загружается
также комментарий, чтобы предоставить онлайновую
документацию по словарю данных.
3. Загружают данные в некоторые таблицы словаря данных.
Таблица 2-1 перечисляет скрипты, которые требуются для указанных
опций сервера ORACLE. Соответствующие скрипты для опций сервера
ORACLE выполняются автоматически, когда вы создаете базу данных.
Здесь они описаны потому, что вам может потребоваться снова
выполнять их при переходе на новую версию ORACLE; ваш документ
"Замечания по версии" указывает, когда это необходимо. Имена и
местоположения этих скриптов зависят от операционной системы;
они приводятся в руководстве по инсталляции. Чтобы выполнять
эти скрипты, вы должны быть подключены с именем SYS. Скрипты,
имена которых начинаются буквами DBMS, более полно описываются в
документе ORACLE7 Server Application Developer's Guide, а также
в комментариях в самих скриптах.
Создание базы данных ORACLE 2-13
Табл.2-1
Требуемые скрипты SQL
г============T=========T=======================================¬
¦Имя скрипта ¦Требуемые¦Описание ¦
¦ ¦опции ¦ ¦
¦------------+---------+---------------------------------------¦
¦CATALOG.SQL ¦нет ¦Создает словарь данных и общие синони- ¦
¦ ¦ ¦мы для для многих его обзоров, и дает ¦
¦ ¦ ¦доступ к этим синонимам для PUBLIC; ¦
¦ ¦ ¦вызывает CATAUDIT, CATEXP и CATLDR ¦
¦------------+---------+---------------------------------------¦
¦CATAUDIT.SQL¦нет ¦Создает аудиторский журнал базы данных ¦
¦ ¦ ¦и его обзоры (автоматически вызывается ¦
¦ ¦ ¦из CATALOG; журнал можно удалить ¦
¦ ¦ ¦скриптом CATNOAUD) ¦
¦------------+---------+---------------------------------------¦
¦CATEXP.SQL ¦нет ¦Создает таблицы словаря для утилит ¦
¦ ¦ ¦экспорта и импорта (вызывается из ¦
¦ ¦ ¦CATALOG) ¦
¦------------+---------+---------------------------------------¦
¦CATLDR.SQL ¦нет ¦Создает обзоры для SQL*Loader; ¦
¦ ¦ ¦вызывается из CATALOG ¦
¦------------+---------+---------------------------------------¦
¦CATPARR.SQL ¦паралл. ¦Создает обзоры словаря данных для ¦
¦ ¦сервер ¦параллельного сервера ¦
¦------------+---------+---------------------------------------¦
¦CATTRUST.SQL¦Trusted ¦Определяет структуры для сервера ¦
¦ ¦ORACLE ¦Trusted ORACLE ¦
¦------------+---------+---------------------------------------¦
¦CATPROC.SQL ¦процедур-¦Выполняет все скрипты, требуемые или ¦
¦ ¦ная ¦или используемые с процедурной ¦
¦ ¦ ¦опцией: CATPRC,CATSNAP,CATRPC,STANDARD,¦
¦ ¦ ¦DBMSSTDX,PIPDL,PIDIAN,DIUTIL,PISTUB, ¦
¦ ¦ ¦DBMSUTIL,DBMSSNAP,DBMSLOCK,DBMSPIPE, ¦
¦ ¦ ¦DBMSALRT, DBMSOTPT, DBMSDESC ¦
¦------------+---------+---------------------------------------¦
¦CATPRC.SQL ¦процедур-¦Создает обзоры словаря данных для хра- ¦
¦ ¦ная ¦нимых процедур, пакетов и триггеров ба-¦
¦ ¦ ¦зы данных (вызывается из CATALOG) ¦
¦------------+---------+---------------------------------------¦
¦CATSNAP.SQL ¦процедур.¦Создает структуры словаря данных для ¦
¦ ¦распреде-¦снимков (вызывается из CATALOG; ¦
¦ ¦ленная ¦требует CATPRC) ¦
¦------------+---------+---------------------------------------¦
¦CATRPC.SQL ¦процедур.¦Создает обзоры словаря данных для ¦
¦ ¦распреде-¦снимков (вызывается автоматически ¦
¦ ¦ленная ¦скриптом CATPROC; требует CATPRC) ¦
¦------------+---------+---------------------------------------¦
¦STANDARD.SQL¦процедур-¦Создает пакеты PL/SQL для процедурной ¦
¦ ¦ная ¦опции (вызывается из CATPTOC; ¦
¦ ¦ ¦требует CATPRC) ¦
¦------------+---------+---------------------------------------¦
¦DBMSSTDX.SQL¦процедур-¦Включает расширения в пакет standard ¦
¦ ¦ная ¦(вызывается из CATPROC; ¦
¦ ¦ ¦требует STANDARD) ¦
¦------------+---------+---------------------------------------¦
¦PIPIDL.SQL ¦процедур-¦Создает пакеты PL/SQL для процедурной ¦
¦ ¦ная ¦опции (вызывается из CATPROC; ¦
¦ ¦ ¦требует DBMSSTDX) ¦
L============¦=========¦=======================================-
2-14 Руководство администратора
г============T=========T=======================================¬
¦Имя скрипта ¦Требуемые¦Описание ¦
¦ ¦опции ¦ ¦
¦------------+---------+---------------------------------------¦
¦PIDIAN.SQL ¦процедур-¦Создает пакеты PL/SQL для процедурной ¦
¦ ¦ная ¦опции (вызывается из CATPROC; ¦
¦ ¦ ¦требует DBMSSTDX) ¦
¦------------+---------+---------------------------------------¦
¦DIUTIL.SQL ¦процедур-¦Создает пакеты PL/SQL для процедурной ¦
¦ ¦ная ¦опции (вызывается из CATPROC; ¦
¦ ¦ ¦требует PIDIAN) ¦
¦------------+---------+---------------------------------------¦
¦PISTUB.SQL ¦процедур-¦Создает пакеты PL/SQL для процедурной ¦
¦ ¦ная ¦опции (вызывается из CATPROC; ¦
¦ ¦ ¦требует DIUTIL) ¦
¦------------+---------+---------------------------------------¦
¦DBMSUTIL.SQL¦процедур-¦Создает утилиты, которые можно вызывать¦
¦ ¦ная ¦из процедур (вызывается из CATPROC; ¦
¦ ¦ ¦требует PISTUB) ¦
¦------------+---------+---------------------------------------¦
¦DBMSSNAP.SQL¦процедур-¦Создает процедуры для администрирования¦
¦ ¦ная ¦снимков (вызывается из CATPROC; требует¦
¦ ¦распреде-¦CATSNAP; должен выполняться как на ¦
¦ ¦ленная ¦узле снимка, так и на узле главной ¦
¦ ¦ ¦таблицы) ¦
¦------------+---------+---------------------------------------¦
¦DBMSALRT.SQL¦процедур-¦Позволяет пользователям и приложениям ¦
¦ ¦ная ¦использовать сигнализаторы событий ¦
¦ ¦ ¦(вызывается из CATPROC; требует PISTUB)¦
¦------------+---------+---------------------------------------¦
¦DBMSLOCK.SQL¦процедур-¦Позволяет пользователям и приложениям ¦
¦ ¦ная ¦использовать пакет блокировок ¦
¦ ¦ ¦(вызывается из CATPROC; требует PISTUB)¦
¦------------+---------+---------------------------------------¦
¦DBMSMAIL.SQL¦процедур-¦Позволяет пользователям и приложениям ¦
¦ ¦ная ¦посылать сообщения Oracle*Mail ¦
¦ ¦ ¦(вызывается из CATPROC; требует PISTUB;¦
¦ ¦ ¦вы должны выполнить его на посылающей ¦
¦ ¦ ¦базе данных, и запустить UTLMAIL.SQL ¦
¦ ¦ ¦на принимающей базе данных) ¦
¦------------+---------+---------------------------------------¦
¦DBMSOTPT.SQL¦процедур-¦Позволяет разработчикам приложений ¦
¦ ¦ная ¦принимать ввод из процедур ¦
¦ ¦ ¦(вызывается из CATPROC; требует PISTUB)¦
¦------------+---------+---------------------------------------¦
¦DBMSPIPE.SQL¦процедур-¦Позволяет сессиям одной и той же ¦
¦ ¦ная ¦инстанции общаться друг с другом ¦
¦ ¦ ¦(вызывается из CATPROC; требует PISTUB)¦
¦------------+---------+---------------------------------------¦
¦DBMSDESC.SQL¦процедур-¦Создает пакет, который позволяет вам ¦
¦ ¦ная ¦описывать аргументы и возвращать ¦
¦ ¦ ¦значения из программных единиц ¦
¦ ¦ ¦(вызывается из CATPROC; требует PISTUB)¦
L============¦=========¦=======================================-
С помощью параметра INIT_SQL_FILES можно также специфицировать
другие файлы SQL, чтобы создать специфические для вашей
установки таблицы после создания словаря данных. Например, вы
могли бы добавить имена ваших файлов ПОСЛЕ умалчиваемых имен
файлов:
Создание базы данных ORACLE 2-15
INIT_SQL_FILES = (CATALOG.SQL, CATPROC.SQL ACME_DBA.SQL)
В этом примере ACME_DBA.SQL - это дополнительный файл, который
должен быть выполнен после создания базы данных.
----------------
Создание дополнительных структур словаря данных
ORACLE поставляет с сервером ряд других скриптов, создающих
дополнительные структуры, которые вы можете использовать для
управления вашей базой данных и создания приложений. Эти
скрипты перечислены ниже; для дополнительной информации о них
обратитесь к приложению B. Точные имена и местоположения этих
скриптов зависят от операционной системы (обратитесь к вашему
руководству по инсталляции).
Табл.2-2
Дополнительные скрипты SQL
г============T=========T=======T===============================¬
¦Имя скрипта ¦Требуемые¦Кто вы-¦Описание ¦
¦ ¦опции ¦полняет¦ ¦
¦------------+---------+-------+-------------------------------¦
¦CATALOG6.SQL¦нет ¦SYS ¦Создает обзоры словаря версии 6¦
¦------------+---------+-------+-------------------------------¦
¦CATBLOCK.SQL¦нет ¦SYS ¦Создает обзор BLOCKING_LOCKS, ¦
¦ ¦ ¦ ¦который показывает, какие ¦
¦ ¦ ¦ ¦блокировки держат систему ¦
¦------------+---------+-------+-------------------------------¦
¦CATDBSYN.SQL¦нет ¦имеющий¦Создает личные синонимы для ¦
¦ ¦ ¦доступ ¦словарных обзоров DBA_ ¦
¦ ¦ ¦к таб- ¦ ¦
¦ ¦ ¦лицам ¦ ¦
¦ ¦ ¦словаря¦ ¦
¦------------+---------+-------+-------------------------------¦
¦CATEXP6.SQL ¦нет ¦SYS ¦Создает обзоры для использова- ¦
¦ ¦ ¦ ¦ния утилиты экспорта версии 6 ¦
¦ ¦ ¦ ¦в ORACLE7 ¦
¦------------+---------+-------+-------------------------------¦
¦CATNOAUD.SQL¦нет ¦SYS ¦Удаляет аудиторский журнал, ¦
¦ ¦ ¦ ¦который был создан CATAUDIT, ¦
¦ ¦ ¦ ¦включая его данные и обзоры ¦
¦------------+---------+-------+-------------------------------¦
¦CATNOPRC.SQL¦нет ¦SYS ¦Удаляет структуры словаря дан- ¦
¦ ¦ ¦ ¦ных, созданные CATPRC ¦
¦------------+---------+-------+-------------------------------¦
¦CATSTAT.SQL ¦нет ¦SYS ¦Выполняет команду ANALYZE на ¦
¦ ¦ ¦ ¦структурах словаря данных, ¦
¦ ¦ ¦ ¦чтобы разрешить стоимостную ¦
¦ ¦ ¦ ¦оптимизацию внутренних предло- ¦
¦ ¦ ¦ ¦жений SQL; должен запускаться ¦
¦ ¦ ¦ ¦периодически для обновления ¦
¦ ¦ ¦ ¦статистики (предназначен для ¦
¦ ¦ ¦ ¦узлов, не имующих процедурной ¦
¦ ¦ ¦ ¦опции; узлы с процедурной ¦
¦ ¦ ¦ ¦опцией могут вместо этого ¦
¦ ¦ ¦ ¦вызывать ANALYZE_SCHEMA() ¦
L============¦=========¦=======¦===============================-
2-16 Руководство администратора
г============T=========T=======T===============================¬
¦Имя скрипта ¦Требуемые¦Кто вы-¦Описание ¦
¦ ¦опции ¦полняет¦ ¦
¦------------+---------+-------+-------------------------------¦
¦UTLBSTAT.SQL¦нет ¦любой ¦Начинает сбор статистики для ¦
¦ ¦ ¦ ¦настройки производительности ¦
¦ ¦ ¦ ¦(заканчивает скрипт UTLESTAT) ¦
¦------------+---------+-------+-------------------------------¦
¦UTLCHAIN.SQL¦нет ¦любой ¦Создает таблицы для сохранения ¦
¦ ¦ ¦ ¦вывода команды ANALYZE с опцией¦
¦ ¦ ¦ ¦CHAINED_ROWS ¦
¦------------+---------+-------+-------------------------------¦
¦UTLDTREE.SQL¦процедур-¦любой ¦Создает таблицы и обзоры по ¦
¦ ¦ная ¦ ¦зависимостям между объектами ¦
¦------------+---------+-------+-------------------------------¦
¦UTLESTAT.SQL¦нет ¦любой ¦Заканчивает сбор статистики, ¦
¦ ¦ ¦ ¦начатый скриптом UTLBSTAT ¦
¦------------+---------+-------+-------------------------------¦
¦UTLEXCPT.SQL¦нет ¦любой ¦Создает умалчиваемую таблицу ¦
¦ ¦ ¦ ¦(EXCEPTIONS) для сохранения ¦
¦ ¦ ¦ ¦исключений от включенных ¦
¦ ¦ ¦ ¦ограничений ¦
¦------------+---------+-------+-------------------------------¦
¦UTLEXP6.SQL ¦нет ¦SYS ¦Возвращает список объектов, ¦
¦ ¦ ¦ ¦которые не были экспортированы ¦
¦ ¦ ¦ ¦экспортом SQL*Net базы данных ¦
¦ ¦ ¦ ¦версии 6 ¦
¦------------+---------+-------+-------------------------------¦
¦UTLDIDXS.SQL¦нет ¦любой ¦Выдает результаты выполнения ¦
¦ ¦ ¦ ¦скриптов UTLDIDXSS и UTLDIDXSO ¦
¦------------+---------+-------+-------------------------------¦
¦UTLOIDXS.SQL¦нет ¦любой ¦Выполняет UTLIDXSS на несколь- ¦
¦ ¦ ¦ ¦ких столбцах ¦
¦------------+---------+-------+-------------------------------¦
¦UTLLOCKT.SQL¦нет ¦SYS ¦Выдает граф ожиданий блокировок¦
¦ ¦ ¦ ¦в формате структуры дерева ¦
¦------------+---------+-------+-------------------------------¦
¦UTLMAIL.SQL ¦нет ¦SYS ¦Позволяет базе данных Oracle* ¦
¦ ¦ ¦ ¦Mail принимать сообщения от ¦
¦ ¦ ¦ ¦процедур (выполняется на базе ¦
¦ ¦ ¦ ¦данных Oracle*Mail; требует ¦
¦ ¦ ¦ ¦запуска DBMSMAIL.SQL на базе ¦
¦ ¦ ¦ ¦данных, которая будет посылать ¦
¦ ¦ ¦ ¦сообщения) ¦
¦------------+---------+-------+-------------------------------¦
¦UTLMONTR.SQL¦нет ¦SYS ¦Предоставляет права доступа ко ¦
¦ ¦ ¦ ¦всем таблицам производительно- ¦
¦ ¦ ¦ ¦сти, используемым мониторами ¦
¦ ¦ ¦ ¦SQL*DBA, группе PUBLIC, ¦
¦ ¦ ¦ ¦в том числе доступ к мониторам ¦
¦------------+---------+-------+-------------------------------¦
¦UTLSAMPL.SQL¦нет ¦любой ¦Создает тестовые таблицы (такие¦
¦ ¦ ¦ ¦как EMP и DEPT) и пользователей¦
¦------------+---------+-------+-------------------------------¦
¦UTLSIDXS.SQL¦нет ¦любой ¦Вычисляет селективность столбца¦
¦ ¦ ¦ ¦и проверяет, подходит ли ¦
¦ ¦ ¦ ¦индекс, созданный для столбца ¦
¦------------+---------+-------+-------------------------------¦
¦UTLXPLAN.SQL¦нет ¦любой ¦Создает таблицу PLAN_TABLE, ¦
¦ ¦ ¦ ¦которая содержит вывод команды ¦
¦ ¦ ¦ ¦EXPLAIN PLAN ¦
L============¦=========¦=======¦===============================-
Создание базы данных ORACLE 2-17