Operating System Version: Red Hat Enterprise Linux AS release 4 (Nahant Update 8)
Oracle Database Version: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Step 1:
- Decide on Your Instance Identifier (SID)
> An instance is made up of the system global area (SGA) and the background processes of an Oracle Database. Decide on a unique Oracle system identifier (SID) for your instance and set the ORACLE_SID environment variable accordingly. This identifier is used to distinguish this instance from other Oracle Database instances that you may create later and run concurrently on your system.
The following example sets the SID for the instance and database we are about to create:
> [oracle@oracle10g ~]$ export ORACLE_SID=ORCL
Step 2:
- Create all the necessary directories.
[oracle@oracle10g ~]$ mkdir -p /u01/app/oracle/admin/ORCL/adump
[oracle@oracle10g ~]$ mkdir -p /u01/app/oracle/admin/ORCL/bdump
[oracle@oracle10g ~]$ mkdir -p /u01/app/oracle/admin/ORCL/cdump
[oracle@oracle10g ~]$ mkdir -p /u01/app/oracle/admin/ORCL/udump
[oracle@oracle10g ~]$ mkdir -p /u01/oradata/ORCL/
Step 3:
- Create the Initialization Parameter File
> The instance for any Oracle Database is started using an initialization parameter file.
> For convenience, store your initialization parameter file in the Oracle Database default location, using the default name.
> [oracle@oracle10g ~]$ vi $ORACLE_HOME/dbs/init$ORACLE_SID.ora
For Specifying Oracle-Managed Files at Database Creation:audit_file_dest='/u01/app/oracle/admin/ORCL/adump'
background_dump_dest='/u01/app/oracle/admin/ORCL/bdump'
compatible='10.2.0.1.0'
control_files='/u01/oradata/ORCL/control01.ctl','/u01/oradata/ORCL/control02.ctl','/u01/oradata/ORCL/control03.ctl'
core_dump_dest='/u01/app/oracle/admin/ORCL/cdump'
db_block_size=8192
db_domain=''
db_create_file_dest='/u01/oradata/'
db_file_multiblock_read_count=16
db_name='ORCL'
db_recovery_file_dest='/u01/oradata/flash_recovery_area'
db_recovery_file_dest_size=2147483648
job_queue_processes=10
log_archive_format='%t_%s_%r.dbf'
open_cursors=300
pga_aggregate_target=94371840
processes=150
remote_login_passwordfile='EXCLUSIVE'
sga_target=285212672
undo_management='AUTO'
undo_tablespace='UNDOTBS1'
user_dump_dest='/u01/app/oracle/admin/ORCL/udump'
Step 4:audit_file_dest='/u01/app/oracle/admin/ORCL/adump'
background_dump_dest='/u01/app/oracle/admin/ORCL/bdump'
compatible='10.2.0.1.0'
control_files='/u01/oradata/ORCL/control01.ctl','/u01/oradata/ORCL/control02.ctl','/u01/oradata/ORCL/control03.ctl'
core_dump_dest='/u01/app/oracle/admin/ORCL/cdump'
#db_block_size=8192
db_domain=''
db_create_file_dest='/u01/oradata/'
#db_file_multiblock_read_count=16
db_name='ORCL'
#db_recovery_file_dest='/u01/oradata/flash_recovery_area'
log_archive_dest_1='LOCATION=/u01/oradata/archivelogs/'
#db_recovery_file_dest_size=2147483648
job_queue_processes=10
log_archive_format='%t_%s_%r.dbf'
open_cursors=300
pga_aggregate_target=94371840
processes=150
remote_login_passwordfile='EXCLUSIVE'
sga_target=285212672
undo_management='AUTO'
undo_tablespace='UNDOTBS1'
user_dump_dest='/u01/app/oracle/admin/ORCL/udump'
- Connect to the Instance
- Start SQL*Plus and connect to your Oracle Database instance AS SYSDBA.
> [oracle@oracle10g ~]$ sqlplus '/as sysdba'
Step 5:
Create a Server Parameter File (Recommended)
> SQL> CREATE SPFILE='/u01/app/oracle/product/10.2.0/db_1/dbs/spfileORCL.ora' FROM PFILE='/u01/app/oracle/product/10.2.0/db_1/dbs/initORCL.ora';
Step 6:SQL> CREATE SPFILE='/u01/app/oracle/product/10.2.0/db_1/dbs/spfileORCL.ora' FROM PFILE='/u01/app/oracle/product/10.2.0/db_1/dbs/initORCL.ora';
File created.
- Start the Instance
- Start an instance without mounting a database.
> SQL> startup nomount;
Step 7:SQL> startup nomount;
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 92276304 bytes
Database Buffers 188743680 bytes
Redo Buffers 2973696 bytes
SQL>
- Issue the CREATE DATABASE Statement
- To create the new database, use the CREATE DATABASE statement. The following statement creates database ORCL:
The following CREATE DATABASE statement shows briefly how the Oracle-managed files feature works, assuming you have specified required initialization parameters.CREATE DATABASE ORCL
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/u01/oradata/ORCL/redo01.log') SIZE 52428800,
GROUP 2 ('/u01/oradata/ORCL/redo02.log') SIZE 52428800,
GROUP 3 ('/u01/oradata/ORCL/redo03.log') SIZE 52428800
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET WE8ISO8859P1
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/u01/oradata/ORCL/system01.dbf' SIZE 480M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/oradata/ORCL/sysaux01.dbf' SIZE 240M REUSE
DEFAULT TABLESPACE users LOGGING DATAFILE '/u01/oradata/ORCL/users01.dbf' SIZE 5M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
DEFAULT TEMPORARY TABLESPACE TEMP
TEMPFILE '/u01/oradata/ORCL/temp01.dbf'
SIZE 5M REUSE
UNDO TABLESPACE UNDOTBS1
DATAFILE '/u01/oradata/ORCL/undotbs01.dbf'
SIZE 45M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
Step 8:CREATE DATABASE ORCL
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
UNDO TABLESPACE UNDOTBS1
DEFAULT TABLESPACE users
DEFAULT TEMPORARY TABLESPACE TEMP;
Run Scripts to Build Data Dictionary Views
- Run the scripts necessary to build views, synonyms, and PL/SQL packages:
> [oracle@oracle10g]$ sqlplus '/as sysdba'
> SQL> set echo on
> SQL> spool ?/log/CreateDBCatalog.log
> SQL> @?/rdbms/admin/catalog.sql
> SQL> @?/rdbms/admin/catblock.sql
> SQL> @?/rdbms/admin/catoctk.sql
> SQL> @?/rdbms/admin/owminst.plb
> SQL> @?/rdbms/admin/catproc.sql
> SQL> spool off
> SQL> exit
catalog.sql - Creates the views of the data dictionary tables, the dynamic performance views, and public synonyms for many of the views. Grants PUBLIC access to the synonyms.
catproc.sql - Runs all scripts required for or used with PL/SQL.
Step 9:
- Create the password file for the database.
[oracle@oracle10g ~]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=<password> entries=5
[oracle@oracle10g ~]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=5
Step 10:
Update oratab
- Add a new entry in /etc/oratab
> [oracle@oracle10g ~]$ vi /etc/oratab
> Syntax: $ORACLE_SID:$ORACLE_HOME:<N|Y>
ORCL:/u01/app/oracle/product/10.2.0/db_1:N
Step 11:
- Configure additional listener
> [oracle@oracle10g ~]$ vi $ORACLE_HOME/network/admin/listener.ora
> Add or edit the following lines:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL10G)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(SID_NAME = ORCL10G)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle10g.localdomain)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
- Restart Listeners
> [oracle@oracle10g ~]$ lsnrctl stop
> [oracle@oracle10g ~]$ lsnrctl start
Step 12:
- Configure tnsnames
> [oracle@oracle10g ~]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
> Add or edit the following lines:
ORCL10G =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle10g.localdomain)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL10G)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle10g.localdomain)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(Key = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
- Perform Post DB Creation
[oracle@oracle10g]$ sqlplus '/as sysdba'
SQL> execute utl_recomp.recomp_serial();
Your database is now ready to use!SQL> execute utl_recomp.recomp_serial();
PL/SQL procedure successfully completed.