Подразумевается, что вы уже произвели установку Oracle DB.
Данная инструкция проверена на Oracle DB 10.2.0.1.0 for Linux под CentOS 5.0 и KUbuntu 7.04
su - oracle
export NLS_LANG=.CL8ISO8859P5 export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1 export ORACLE_SID=db01 export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export ORACLE_SID=db01
/opt/oracle/product/10.2.0/db_1/dbs/initdb01.ora
", примерно со следующим содержимым:db_cache_size=247463936 java_pool_size=4194304 large_pool_size=4194304 shared_pool_size=104857600 streams_pool_size=0 audit_file_dest='/opt/oracle/admin/db01/adump' background_dump_dest='/opt/oracle/admin/db01/bdump' compatible='10.2.0.1.0' control_files='/opt/oracle/oradata/db01/control01.ctl','/opt/oracle/oradata/db01/control02.ctl','/opt/oracle/oradata/db01/control03.ctl' core_dump_dest='/opt/oracle/admin/db01/cdump' db_block_size=8192 db_domain='' db_file_multiblock_read_count=16 db_name='db01' db_recovery_file_dest='/opt/oracle/flash_recovery_area' db_recovery_file_dest_size=2147483648 dispatchers='(PROTOCOL=TCP) (SERVICE=oracleXDB)' job_queue_processes=10 nls_language='RUSSIAN' nls_territory='RUSSIA' open_cursors=300 pga_aggregate_target=121634816 processes=150 remote_login_passwordfile='EXCLUSIVE' sga_target=364904448 undo_management='AUTO' undo_tablespace='UNDOTBS1' user_dump_dest='/opt/oracle/admin/db01/udump' log_archive_dest='/opt/oracle/admin/db01/archlog' log_archive_format="arc_%r_%t_%s.log"
mkdir -p /opt/oracle/admin/db01/adump mkdir -p /opt/oracle/admin/db01/bdump mkdir -p /opt/oracle/admin/db01/cdump mkdir -p /opt/oracle/admin/db01/udump mkdir -p /opt/oracle/admin/db01/archlog mkdir -p /opt/oracle/oradata/db01
sqlplus /nolog
connect sys/secret as sysdba;
create spfile='/opt/oracle/product/10.2.0/db_1/dbs/spfiledb01.ora' from pfile='/opt/oracle/product/10.2.0/db_1/dbs/initdb01.ora';
startup nomount;
CREATE DATABASE db01 LOGFILE GROUP 1 ('/opt/oracle/oradata/db01/redo01.log') SIZE 100M, GROUP 2 ('/opt/oracle/oradata/db01/redo02.log') SIZE 100M, GROUP 3 ('/opt/oracle/oradata/db01/redo03.log') SIZE 100M MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 ARCHIVELOG CHARACTER SET CL8ISO8859P5 NATIONAL CHARACTER SET AL16UTF16 DATAFILE '/opt/oracle/oradata/db01/system01.dbf' SIZE 325M REUSE EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE '/opt/oracle/oradata/db01/sysaux01.dbf' SIZE 325M REUSE DEFAULT TEMPORARY TABLESPACE temptbs TEMPFILE '/opt/oracle/oradata/db01/temp01.dbf' SIZE 200M REUSE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 160M UNDO TABLESPACE undotbs1 DATAFILE '/opt/oracle/oradata/db01/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
Обратите внимание на то, что имя UNDO TABLESPACE (undotbs1) должно соответствовать имени, указанному в параметре undo_tablespace (UNDOTBS1) файла initdb01.ora (п.4.). Регистр значания не имеет.
CREATE TABLESPACE users LOGGING DATAFILE '/opt/oracle/oradata/db01/users01.dbf' SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
CREATE TABLESPACE indx LOGGING DATAFILE '/opt/oracle/oradata/db01/indx01.dbf' SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
spool /home/oracle/catalog.log; @/opt/oracle/product/10.2.0/db_1/rdbms/admin/catalog.sql; spool off; spool /home/oracle/catproc.log; @/opt/oracle/product/10.2.0/db_1/rdbms/admin/catproc.sql; spool off;
alter user sys identified by syspassword; alter user system identified by syspassword;
quit;
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = db01) (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.mydomain)(PORT = 1521)) ) )
DB01 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.mydomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db01) ) )
$ORACLE_HOME/network/admin/sqlnet.ora
" со следующим содержимым:NAMES.DIRECTORY_PATH= (TNSNAMES)
$ORACLE_HOME/bin/lsnrctl start
$ORACLE_HOME/network/admin/listener.ora
":(SID_DESC = (SID_NAME = db01) (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1) )
DB01 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.mydomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db01) ) )
$ORACLE_HOME/bin/lsnrctl status
Видим подобное (для двух инстансов):
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 12-FEB-2008 12:32:00 Copyright (c) 1991, 2005, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 12-FEB-2008 12:23:02 Uptime 0 days 0 hr. 8 min. 58 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora Listener Log File /opt/oracle/product/10.2.0/db_1/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myhost.mydomain)(PORT=1521))) Services Summary... Service "db01" has 1 instance(s). Instance "db01", status READY, has 1 handler(s) for this service... Service "db01_XPT" has 1 instance(s). Instance "db01", status READY, has 1 handler(s) for this service... Service "db02" has 1 instance(s). Instance "db02", status READY, has 1 handler(s) for this service... Service "db02_XPT" has 1 instance(s). Instance "db02", status READY, has 1 handler(s) for this service... Service "oracleXDB" has 2 instance(s). Instance "db01", status READY, has 1 handler(s) for this service... Instance "db02", status READY, has 1 handler(s) for this service... The command completed successfully
Вот и всё.