Администрирование Oracle#

Инструкция описывает установку Oracle Database, создание базы данных для Global, экспорт схемы в дамп с помощью expdp и загрузку дампа с помощью impdp.

Установка Oracle Database в Windows#

Перед созданием базы установите серверную часть Oracle Database.

  1. Запустите установщик Oracle Database.

  2. На шаге Configure Security Updates укажите параметры получения уведомлений Oracle. Если уведомления не используются, оставьте адрес электронной почты пустым и подтвердите продолжение установки.

    Настройка уведомлений Oracle

  3. На шаге Select Installation Option выберите Install database software only. База данных будет создана отдельно после установки серверного ПО.

    Выбор режима установки

  4. На шаге Select Database Installation Option выберите Single instance database installation.

    Выбор типа установки

  5. На шаге Select Database Edition выберите редакцию Oracle Database, используемую в контуре. В приведенном примере используется Enterprise Edition.

    Выбор редакции Oracle Database

  6. На шаге Specify Oracle Home User укажите учетную запись, от имени которой будут работать службы Oracle. В приведенном примере используется Windows Built-in Account.

    Выбор учетной записи Oracle

  7. На шаге Specify Installation Location укажите:

    • Oracle base — корневой каталог Oracle;

    • Software location — каталог установки Oracle Database.

    Пример:

    Oracle base: E:\oracle
    Software location: E:\oracle\product\12.2.0\dbhome_1
    

    Каталоги установки Oracle

  8. Дождитесь завершения проверки предварительных требований.

  9. На странице Summary проверьте выбранные параметры и нажмите Install.

    Проверка параметров установки

После завершения установки настройте listener.

Установка Oracle Database в Linux#

В Linux серверное ПО устанавливается из дистрибутива Oracle Database от имени пользователя Oracle.

  1. Подготовьте каталоги ORACLE_BASE и ORACLE_HOME и предоставьте пользователю Oracle права на них.

  2. Распакуйте дистрибутив Oracle Database.

  3. Запустите установщик из каталога дистрибутива:

    ./runInstaller
    
  4. В мастере установки выберите установку только серверного ПО и создание одиночного экземпляра базы данных.

  5. Укажите ORACLE_BASE и ORACLE_HOME.

  6. После проверки предварительных требований запустите установку.

  7. Выполните системные скрипты, которые установщик предложит запустить от имени root.

  8. После установки задайте окружение пользователя Oracle:

    export ORACLE_BASE=<путь_к_oracle_base>
    export ORACLE_HOME=<путь_к_oracle_home>
    export PATH=$ORACLE_HOME/bin:$PATH
    

После установки настройте listener и создайте базу данных.

Настройка listener#

Listener принимает сетевые подключения к Oracle Database. Для настройки используется Oracle Net Configuration Assistant.

В Windows Oracle Net Configuration Assistant можно запустить из меню Oracle или командой netca. В Linux запустите:

$ORACLE_HOME/bin/netca
  1. Выберите Listener configuration.

    Выбор настройки listener

  2. Выберите Add для создания listener.

    Создание listener

  3. Укажите имя listener. По умолчанию используется:

    LISTENER
    

    Имя listener

  4. Выберите протокол TCP.

    Выбор протокола listener

  5. Укажите порт listener. Стандартный порт Oracle:

    1521
    

    Настройка порта listener

  6. Завершите настройку Oracle Net Configuration Assistant.

Проверьте состояние listener:

lsnrctl status

При необходимости запустите его:

lsnrctl start

Создание базы данных#

База данных создается с помощью Oracle Database Configuration Assistant (DBCA).

В Windows запустите:

dbca

В Linux запустите:

$ORACLE_HOME/bin/dbca

Основные параметры базы#

  1. В DBCA выберите Create a database.

    Создание базы данных

  2. Выберите Advanced configuration. Расширенный режим позволяет вручную настроить память, кодировку, количество процессов и расположение файлов базы.

    Выбор режима создания базы

  3. На шаге Select Database Deployment Type выберите:

    • Oracle Single Instance database;

    • шаблон General Purpose or Transaction Processing.

    Выбор типа базы

  4. На шаге Specify Database Identification Details укажите:

    • Global database name — имя базы;

    • SID — идентификатор экземпляра.

    Для используемой конфигурации Oracle 12c флаг Create as Container database не устанавливается.

    Идентификация базы

  5. На шаге Select Database Storage Option укажите расположение файлов базы. При использовании файловой системы можно оставить Use template file for database storage attributes и проверить расположение файлов перед непосредственным созданием базы.

    Настройка хранения файлов базы

  6. Настройте параметры восстановления и архивирования в соответствии с требованиями контура. В приведенном примере Fast Recovery Area и архивирование не используются.

    Настройка восстановления и архивирования

  7. На шаге настройки сети выберите ранее созданный LISTENER и проверьте используемый порт.

    Выбор listener для базы

  8. Oracle Database Vault и Oracle Label Security включаются только при необходимости. В приведенной конфигурации они не используются.

    Дополнительные механизмы безопасности

Настройка памяти#

На странице Configuration Options откройте закладку Memory и используйте Automatic Shared Memory Management.

Оставляйте не менее 40% общей ОЗУ сервера для операционной системы и дискового кеша. Для Oracle используйте не более 60% ОЗУ.

Для тестовой базы с небольшим количеством пользователей и без ресурсоемких операций используйте начальную конфигурацию:

  • SGA — 3 GB;

  • PGA — 1 GB.

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

Настройка памяти базы

Настройка кодировки#

На закладке Character sets выберите Use OS character set (CL8MSWIN1251).

Для национального набора символов используется AL16UTF16.

Также укажите:

  • Default languageРусский;

  • Default territoryРоссия.

Настройка кодировки

Настройка количества процессов#

На закладке Sizing задайте значение Processes.

Для тестовой базы используйте значение в диапазоне от 320 до 1200. Конкретное значение выбирается с учетом количества одновременных подключений и выполняемых процессов.

Настройка количества процессов

Настройка средств управления#

На шаге Management Options настройте средства управления базой. В приведенном примере используется Enterprise Manager Database Express с портом 5500.

Настройка Enterprise Manager

Настройка административных пользователей#

На шаге User Credentials задайте пароли административных пользователей Oracle.

Настройка административных пользователей

Завершение создания базы#

На шаге Creation Options установите Create database.

Перед созданием базы откройте Customize Storage Locations и проверьте состав и расположение файлов базы.

Параметры создания базы

После проверки настроек запустите создание базы и дождитесь завершения DBCA.

Проверьте состояние экземпляра:

SELECT instance_name, status
FROM v$instance;

Проверьте состояние базы:

SELECT name, open_mode
FROM v$database;

Экспорт схемы с помощью expdp#

Для создания дампа используется Oracle Data Pump Export (expdp).

Определение размера исходных данных#

Перед экспортом определите объем исходных табличных пространств:

SELECT tablespace_name,
       ROUND(SUM(bytes) / 1024 / 1024 / 1024, 2) AS size_gb
FROM dba_data_files
GROUP BY tablespace_name
ORDER BY tablespace_name;

Полученные значения используйте при выборе размера датафайлов целевой базы.

Подготовка каталога Data Pump#

Параметр DIRECTORY содержит имя объекта Oracle DIRECTORY, связанного с каталогом файловой системы на сервере Oracle.

Проверьте стандартный каталог DATA_PUMP_DIR:

SELECT directory_name, directory_path
FROM dba_directories
WHERE directory_name = 'DATA_PUMP_DIR';

Если используется отдельный каталог, создайте его на сервере Oracle и зарегистрируйте в базе:

CREATE OR REPLACE DIRECTORY GLOBAL_DP AS '<путь_к_каталогу>';

Предоставьте пользователю экспорта права на каталог:

GRANT READ, WRITE ON DIRECTORY GLOBAL_DP TO <user>;

Создание дампа#

Выполните экспорт схемы:

expdp <user>@<service> DIRECTORY=DATA_PUMP_DIR DUMPFILE=<dump_file>.dmp LOGFILE=<export_log>.log SCHEMAS=<schema>

Например, для схемы BTK:

expdp <user>@<service> DIRECTORY=DATA_PUMP_DIR DUMPFILE=btk.dmp LOGFILE=btk_export.log SCHEMAS=BTK

После завершения экспорта проверьте:

  • итоговое сообщение Data Pump;

  • журнал экспорта;

  • наличие файла .dmp в каталоге DATA_PUMP_DIR.

Импорт схемы с помощью impdp#

Для загрузки дампа используется Oracle Data Pump Import (impdp).

Импорт схемы Global выполняется вместе со служебными SQL-скриптами, которые создают и подготавливают окружение базы.

Файлы импорта#

Для импорта используются:

  • Import.bat — пример командного файла для последовательного запуска импорта в Windows;

  • drop.sql — подготовка схемы BTK к повторной загрузке;

  • pre_script.sql — создание схемы BTK, назначение табличных пространств, квот и необходимых прав;

  • pre_post_script.sql — подготовка объектов схемы после загрузки дампа;

  • pre_post_script2.sql — дополнительная подготовка объектов после импорта;

  • post_script.sql — завершающая компиляция и подготовка окружения Global;

  • dropAQ.sql — вспомогательный скрипт удаления очередей Oracle AQ. В стандартной последовательности Import.bat автоматически не запускается.

Подготовка к импорту#

Перед импортом убедитесь, что база данных создана и доступна.

Табличные пространства и датафайлы#

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

Скрипт pre_script.sql назначает схеме BTK квоты на табличные пространства:

  • USERSNEW;

  • INDX;

  • ACTNEW.

Эти табличные пространства должны существовать до запуска импорта.

Датафайлы исходной базы#

На исходной базе, из которой формируется дамп, получите список датафайлов:

SELECT tablespace_name, file_name, status, bytes
FROM dba_data_files;

По результату определите состав датафайлов исходной базы: табличные пространства, количество файлов, их расположение и размер.

Датафайлы целевой базы#

На целевой базе, в которую будет загружен дамп, получите текущий список датафайлов:

SELECT tablespace_name, file_name, status, bytes
FROM dba_data_files;

Сопоставьте список с исходной базой и добавьте недостающие датафайлы в соответствующие табличные пространства.

Для добавления датафайла используйте ALTER TABLESPACE. Например:

ALTER TABLESPACE USERS
ADD DATAFILE 'D:\oradata\test\USERS02.DBF'
SIZE 100M
REUSE
AUTOEXTEND ON
NEXT 100M
MAXSIZE UNLIMITED;

В примере D:\oradata\test\USERS02.DBF — путь к создаваемому датафайлу. Для целевой базы укажите фактический каталог данных и нужное табличное пространство.

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

Создайте табличное пространство USERSNEW:

CREATE TABLESPACE USERSNEW
DATAFILE '<путь_к_файлу>/usersnew01.dbf'
SIZE <начальный_размер>
AUTOEXTEND ON
NEXT <шаг_расширения>
MAXSIZE <максимальный_размер>;

Создайте табличное пространство INDX:

CREATE TABLESPACE INDX
DATAFILE '<путь_к_файлу>/indx01.dbf'
SIZE <начальный_размер>
AUTOEXTEND ON
NEXT <шаг_расширения>
MAXSIZE <максимальный_размер>;

Создайте табличное пространство ACTNEW:

CREATE TABLESPACE ACTNEW
DATAFILE '<путь_к_файлу>/actnew01.dbf'
SIZE <начальный_размер>
AUTOEXTEND ON
NEXT <шаг_расширения>
MAXSIZE <максимальный_размер>;

В Windows в <путь_к_файлу> укажите каталог данных Oracle. В Linux укажите каталог данных, используемый в установленном контуре.

Файлы и подключение#

Перед запуском импорта:

  1. Проверьте свободное место на дисках.

  2. Скопируйте дамп btk.dmp в физический каталог, соответствующий DATA_PUMP_DIR.

  3. Скопируйте SQL-скрипты и Import.bat в рабочий каталог.

  4. Проверьте доступность сервиса Oracle:

    sqlplus <user>@<service>
    
  5. В Import.bat замените значения примера на параметры целевой базы:

    • путь к ORACLE_HOME;

    • имя сервиса;

    • административные учетные данные;

    • имя дампа.

Предупреждение

drop.sql выполняет DROP USER BTK CASCADE и полностью удаляет существующую схему BTK вместе с принадлежащими ей объектами.

Запускайте импорт с удалением схемы только для базы, которую требуется полностью перезалить из дампа.

Порядок импорта#

Import.bat выполняет операции в следующем порядке.

  1. Запускает drop.sql под SYSDBA.

  2. Запускает pre_script.sql под SYSDBA.

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

  3. Запускает impdp и загружает дамп:

    impdp "<sys_user>/<password>@<service> as sysdba" directory=DATA_PUMP_DIR dumpfile=btk.dmp logfile=btk.log
    
  4. Запускает pre_post_script.sql от имени схемы BTK.

  5. Запускает pre_post_script2.sql под SYSDBA.

  6. Запускает post_script.sql под SYSDBA.

post_script.sql перекомпилирует объекты, перестраивает необходимые индексы, создает и подготавливает окружение GLOBAL_SYSTEM, синхронизирует административные роли и собирает статистику схемы BTK.

Для Linux используется та же последовательность запуска sqlplus и impdp, но команды выполняются из $ORACLE_HOME/bin или из окружения пользователя Oracle. Вместо Import.bat можно использовать shell-скрипт с теми же шагами.

Проверка результата#

После импорта проверьте журналы:

  • drop.log;

  • pre.log;

  • btk.log;

  • pre_post.log;

  • pre_post2.log;

  • post.log.

Проверьте наличие невалидных объектов:

SELECT owner,
       object_type,
       object_name
FROM dba_objects
WHERE status = 'INVALID'
  AND owner IN ('BTK', 'GLOBAL_SYSTEM')
ORDER BY owner, object_type, object_name;

Проверьте, что необходимые табличные пространства доступны, а датафайлы созданы и доступны Oracle.

После успешного импорта проверьте подключение Global к базе данных и выполнение основных операций системы.