Процесс установки экземпляра БД (instance) рассматривается для Oracle 11g (release 1, 2) под управлением ОС Linux. В данном примере подразумевается, что сам oracle установлен в директории /opt/oracle. В качестве имени sid используется MYSID.
- Установка переменных окружения. В зависимости от настроек ОС, переменные можно задать в .bash_profile или .bashrc
export ORACLE_SID=MYSID export ORACLE_UNQNAME=MYSID export ORACLE_BASE=/opt/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export PATH=$PATH:$ORACLE_HOME/bin export NLS_LANG=RUSSIAN_RUSSIA.CL8KOI8R export NLS_SORT=RUSSIAN export NLS_DATE_LANGUAGE=RUSSIAN export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
- Создание ini файла. Этот файл содержит базовые параметры экземпляра БД Oracle, располагается в директории $ORACLE_HOME/dbs и называется init<sid>.ora. В ini-файле можно задать месторасположение служебных файлов, размеров используемой памяти, параметров аудита и пр. Минимальный файл, достаточный для создания БД с Enterprise manager’ом содержит следующие параметры:
db_name = 'MYSID' remote_login_passwordfile = 'EXCLUSIVE' undo_tablespace = 'UNDOTBS1' control_files = (/opt/oracle/oradata/MYSID/ora_control1.ctl, /opt/oracle/oradata/MYSID/ora_control2.ctl, /opt/oracle/oradata/MYSID/ora_control3.ctl) shared_pool_size=268435456 java_pool_size=67108864 audit_file_dest = '/opt/oracle/admin/MYSID/audit' db_block_size = 16384 open_cursors = 300 processes = 50 job_queue_processes = 10
- Создание экземпляра БД. Для выполнения SQL-команды создания базы, необходима утилита sqlplus.
bash$ sqlplus /nolog SQL> connect / as sysdba SQL> create SPFILE from PFILE; SQL> startup nomount;
Синтаксис SQL-команды имеет различия в ORACLE 11gR1 и 11gR2. При создании указывается расположение файлов табличных пространств и блоков REDO. Все директории, в которых будут располагаться файлы, должны быть созданы заранее.
Вариант для Oracle 11g Release 2:
create database MYSID user sys identified by manager user system identified by manager2 logfile group 1 ('/opt/oracle/log/MYSID/redo01a.log', '/opt2/oracle/log/MYSID/redo01b.log') size 100M blocksize 512, group 2 ('/opt/oracle/log/MYSID/redo02a.log', '/opt2/oracle/log/MYSID/redo02b.log') size 100m blocksize 512, group 3 ('/opt/oracle/log/MYSID/redo03a.log', '/opt2/oracle/log/MYSID/redo03b.log') size 100m blocksize 512 maxlogfiles 5 maxlogmembers 5 maxloghistory 1 maxdatafiles 100 CHARACTER SET CL8KOI8R NATIONAL CHARACTER SET AL16UTF16 EXTENT MANAGEMENT LOCAL DATAFILE '/opt/oracle/oradata/MYSID/system01.dbf' SIZE 1024M REUSE SYSAUX DATAFILE '/opt/oracle/oradata/MYSID/sysaux01.dbf' SIZE 1024M REUSE DEFAULT TABLESPACE users DATAFILE '/opt/oracle/oradata/MYSID/users01.dbf' SIZE 50M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE temp TEMPFILE '/opt/oracle/oradata/MYSID/temp01.dbf' SIZE 500M REUSE UNDO TABLESPACE undotbs1 DATAFILE '/opt/oracle/oradata/MYSID/undotbs01.dbf' SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
Вариант для Oracle 11g Release 1:
create database MYSID user sys identified by manager user system identified by manager2 logfile group 1 ('/opt/oracle/oradata/MYSID/redo01a.log', '/opt2/oracle/oradata/MYSID/redo01b.log') size 100M, group 2 ('/opt/oracle/oradata/MYSID/redo02a.log', '/opt2/oracle/oradata/MYSID/redo02b.log') size 100M, group 3 ('/opt/oracle/oradata/MYSID/redo03a.log', '/opt2/oracle/oradata/MYSID/redo03b.log') size 100M maxlogfiles 5 maxlogmembers 5 maxloghistory 1 maxdatafiles 100 CHARACTER SET CL8KOI8R NATIONAL CHARACTER SET AL16UTF16 EXTENT MANAGEMENT LOCAL DATAFILE '/opt/oracle/oradata/MYSID/system01.dbf' SIZE 1024M REUSE SYSAUX DATAFILE '/opt/oracle/oradata/MYSID/sysaux01.dbf' SIZE 1024M REUSE DEFAULT TABLESPACE users DATAFILE '/opt/oracle/oradata/MYSID/users01.dbf' SIZE 50M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE temp TEMPFILE '/opt/oracle/oradata/MYSID/temp01.dbf' SIZE 500M REUSE UNDO TABLESPACE undotbs1 DATAFILE '/opt/oracle/oradata/MYSID/undotbs01.dbf' SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
После успешного завершения команды создания базы, необходимо выполненить скрипты создания словарей и др. служебных объектов.
SQL> @?/rdbms/admin/catalog.sql SQL> @?/rdbms/admin/catproc.sql SQL> exit
Выполнение дополнительных скриптов для создания таблицы профилей пользователей (PRODUCT_USER_PROFILE – позволяет отключать возможность выполнения заданных команд SQL и SQL*Plus) и Java-объектов. Выполняется от пользователя system.
bash$ sqlplus system SQL> @?/sqlplus/admin/pupbld.sql SQL> @?/javavm/install/initjvm.sql SQL> exit
bash$ sqlplus / as sysdba SQL> alter system register; SQL> exit
- Создание файла паролей. Чтобы иметь возможность назначать пользователям привилегии SYSDBA и SYSOPER, необходимо создать файл паролей.
Для linux-систем имя такого файла по-умолчанию orapw<sid>, расположение по-умолчанию: $ORACLE_HOME/dbs.bash$ cd $ORACLE_HOME/dbs bash$ orapwd file=orapwMYSID entries=10
Теперь можно назначить пользователю sys привилегию sysdba.
bash$ sqlplus / as sysdba SQL> grant sysdba to sys;
- Настройка прослушивателя (Listener). Для этого ОБЯЗАТЕЛЬНО должно быть задано имя компьютера для того ip-адреса, на котором предполагается работа прослушивателя. Конфигурация хранится в файле $ORACLE_HOME/network/admin/listener.ora
LISTENER = (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=myhost.mydomain)(PORT=1521)) (ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)) ) ) SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=MYSID) (ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1) ) )
Запуск прослушивателя:
bash$ lsnrctl LSNRCTL> start
- Создание репозитория для запуска Enterprise Manager’а.
bash$ emca -config dbcontrol db -repos create STARTED EMCA at Oct 21, 2009 8:57:05 PM EM Configuration Assistant, Version 11.2.0.0.2 Production Copyright (c) 2003, 2005, Oracle. All rights reserved. Enter the following information: Database SID: MYSID Listener port number: 1521 Listener ORACLE_HOME [ /opt/oracle/product/11.2.0/dbhome_1 ]: Password for SYS user: Password for DBSNMP user: Password for SYSMAN user: Email address for notifications (optional): Outgoing Mail (SMTP) server for notifications (optional): ----------------------------------------------------------------- You have specified the following settings Database ORACLE_HOME ................ /opt/oracle/product/11.2.0/dbhome_1 Local hostname ................ myhost.mydomain Listener ORACLE_HOME ................ /opt/oracle/product/11.2.0/dbhome_1 Listener port number ................ 1521 Database SID ................ MYSID Email address for notifications ............... Outgoing Mail (SMTP) server for notifications ............... ----------------------------------------------------------------- Do you wish to continue? [yes(Y)/no(N)]: y
Запуск Enterprise Manager:
bash$ emctl start dbconsole