Oracle Silent Install
Неинтерактивная установка Oracle на CentOS
Задача: установить Оракл 11.
Pre-install
Параметры sysctl:
kernel.shmall = 2097152000 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000
Кроме того создаю пользователя oracle и группу dba
Установка
Скачать архив
Скачиваю отсюда: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html файл (в моем случае) linux.x64_11gR1_database_1013.zip, распаковываю, получаю папку /database
Подготовить responseFile
Я использовал следующий response file, слегка подправив пример из дистрибутива:
RESPONSEFILE_VERSION=2.2.1.0.0 UNIX_GROUP_NAME=dba FROM_LOCATION="/home/oracle/install/database/stage/products.xml" NEXT_SESSION_RESPONSE=false ORACLE_BASE="/home/oracle/app/oracle" ORACLE_HOME="/home/oracle/app/oracle/product/11.1.0/db_1" ORACLE_HOME_NAME=OraDbHome11 TOPLEVEL_COMPONENT={"oracle.server","11.1.0.6.0"} DEINSTALL_LIST={"oracle.server","11.1.0.6.0"} SHOW_SPLASH_SCREEN=false SHOW_WELCOME_PAGE=false SHOW_NODE_SELECTION_PAGE=false SHOW_SUMMARY_PAGE=false SHOW_INSTALL_PROGRESS_PAGE=false SHOW_CONFIG_TOOL_PAGE=false SHOW_XML_PREREQ_PAGE=false SHOW_ROOTSH_CONFIRMATION=true SHOW_END_SESSION_PAGE=false SHOW_EXIT_CONFIRMATION=false NEXT_SESSION=false NEXT_SESSION_ON_FAIL=false SHOW_DEINSTALL_CONFIRMATION=false SHOW_DEINSTALL_PROGRESS=false RESTART_SYSTEM=<Value Unspecified> RESTART_REMOTE_SYSTEM=<Value Unspecified> REMOVE_HOMES=<Value Unspecified> ORACLE_HOSTNAME=<Value Unspecified> SHOW_END_OF_INSTALL_MSGS=false CLUSTER_NODES=<Value Unspecified> COMPONENT_LANGUAGES={"en"}
Обратить внимание - все пути указывать абсолютные.
Установка
Запускаю установку:
./runInstaller -silent -responsefile /home/oracle/install/database/oracle_install.rsp
Установка завершается без ошибок.
что подправить после установки
- задать переменную окружения $ORACLE_SID
- задать переменную окружения $ORACLE_HOME
- создать файл $ORACLE_HOME/db_1/dbs/ini${ORACLE_SID}.ora (там же есть пример, я просто его скопировал)
- при попытке сделать startup получил ошибку
ORA-00371: not enough shared pool memory, should be at least 62198988 bytes
Править $ORACLE_HOME/db_1/dbs/ini${ORACLE_SID}.ora - shared_pool_size
Создание инстанса базы данных
Кое-что написано тут: http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/create.htm#
sqlplus / as SYSDBA
STARTUP NOMOUNT
CONTROLFILE REUSE - не уверен что нужно. У меня база не создалась с первого раза, потому добавил эту опцию.
CREATE DATABASE netrac CONTROLFILE REUSE USER SYS IDENTIFIED BY stargate USER SYSTEM IDENTIFIED BY stargate LOGFILE GROUP 1 ('/home/oracle/oradata/netrac/redo01.log') SIZE 100M, GROUP 2 ('/home/oracle/oradata/netrac/redo02.log') SIZE 100M, GROUP 3 ('/home/oracle/oradata/netrac/redo03.log') SIZE 100M MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 CHARACTER SET US7ASCII NATIONAL CHARACTER SET AL16UTF16 DATAFILE '/home/oracle/oradata/netrac/system01.dbf' SIZE 325M REUSE EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE '/home/oracle/oradata/netrac/sysaux01.dbf' SIZE 325M REUSE DEFAULT TABLESPACE tbs_1 DATAFILE '/home/oracle/oradata/netrac/tbs_1' SIZE 1024M DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE '/home/oracle/oradata/netrac/temp01.dbf' SIZE 20M REUSE UNDO TABLESPACE undotbs DATAFILE '/home/oracle/oradata/netrac/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
Database created.
Затем (из sqlplus)
@/home/oracle/app/oracle/product/11.1.0/db_1/rdbms/admin/catalog.sql @/home/oracle/app/oracle/product/11.1.0/db_1/rdbms/admin/catproc.sql
Результат:
1 row created. Commit complete. PL/SQL procedure successfully completed. TIMESTAMP -------------------------------------------------------------------------------- COMP_TIMESTAMP CATALOG 2011-07-21 23:28:46
Конфигурационные файлы
listener.ora
Закомментирована секция относящаяся ко второму инстансу.
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522)) (ADDRESS = (PROTOCOL = TCP)(HOST = centos-ora)(PORT = 1522)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = netrac) ) # (SID_DESC = # (SID_NAME = netracora) # ) )