OS : Red Hat Enterprise Linux Server 6.10
DB : Oracle 11.2.0.1
Oracle Database์์ DBCA๋ฅผ ์ด์ฉํ์ง ์๊ณ ์๋์ผ๋ก CREATE DATABASE ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ๋ ์ค์ต์ ํ๋ ค๊ณ ํฉ๋๋ค. ์๋ก์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ๋ฉด ์๋ก์ด SID๋ฅผ ์ง์ ํ์ฌ ์ ๋ฌด๋ฅผ ๋๋ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
1. ํ๊ฒฝ๋ณ์ ์์ oraenv ์ฌ์ฉ
Oracle ์ค์นํ๋ ๊ณผ์ ์์ ORACLE_SID, ORACLE_HOME ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ํ๋ ์์ ์ ์งํํ์ ๊ฒ ์ ๋๋ค. Oracle Instance๋ฅผ ๊ธฐ๋ํ ๋ ์ด๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฐ๊ฒฐํด์ผํ๋์ง ์๋ ค์ฃผ๋ ๋ณ์๊ฐ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ๋ ๋ ์์ฑํ๋ค๋ฉด ๊ฐ๋จํ๊ฒ ์ด ๋๊ฐ์ง ํ๊ฒฝ๋ณ์๋ฅผ ์์ ํ๊ณ ๋ค์ Instance๋ฅผ ๊ธฐ๋ํ๋ค๋ฉด ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ณด๋ก ์ ์์ด ๊ฐ๋ฅํฉ๋๋ค.
ํ์ง๋ง ๋ฒ๊ฐ์๊ฐ๋ฉด ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์์ ๋ฐ๊ฟ๊ฐ๋ฉด์ ํด์ผํ ๋ ํ๊ฒฝ๋ณ์๋ฅผ ์ฌ์ ์ํด์ฃผ๋ ์์ ์ด ๋ฒ๊ฑฐ๋กญ๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Oracle์์ ์ ๊ณตํด์ฃผ๋ oraenv๋ฅผ ์ฌ์ฉํ๋ฉด ์ข ๋ ํธํ ๋ฐฉ๋ฒ์ผ๋ก ํ๊ฒฝ๋ณ์์ ๋ณ๊ฒฝ์์ ์ ํ ์ ์์ต๋๋ค.
[oracle@host ~]$ . oraenv
ORACLE_SID = [orcl] ? prod
ORACLE_HOME = [/opt/oracle] ? /opt/oracle/app/product/11.2.0/dbhome_1
The Oracle base for ORACLE_HOME=/opt/oracle/app/product/11.2.0/dbhome_1 is /opt/oracle/app
[oracle@6host ~]$ echo $ORACLE_SID
prod
[oracle@host ~]$ echo $ORACLE_HOME
/opt/oracle/app/product/11.2.0/dbhome_1
oratab ํ์ผ ์์
oraenv๋ฅผ ์ฌ์ฉํด์ ํ๊ฒฝ๋ณ์ ๋ณ๊ฒฝ์์ ์ด ๊ฐ๋ฅํ์ง๋ง, ORACLE_HOME ๊ฒฝ๋ก๊ฐ์ ๊ฒฝ์ฐ๋ ์คํ๋ก ์ธํด ์๋ชป ํ์ดํํ ์ ์์ ๋ฟ๋๋ฌ ์ด๊ฒ๋ ๊ท์ฐฎ์ ์์ ์ด๋ค. ๊ทธ๋์ /etc/oratab ํ์ผ์ ์ด์ด ๋ณ์๋ฅผ ์ ์ํ๋ฏ ๋ฏธ๋ฆฌ ๋ณ๊ฒฝํ ์ ๋ณด๋ฅผ ์ ์ฅํด๋๋ฉด ๋ ๊ฐํธํ๊ฒ ํ๊ฒฝ๋ณ์ ์์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
[oracle@host ~]$ vi /etc/oratab
# This file is used by ORACLE utilities. It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.
# A colon, ':', is used as the field terminator. A new line terminates
# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
orcl:/opt/oracle/app/product/11.2.0/dbhome_1:N
orcl์ด๋ผ๋ SID๋ฅผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ ์ dbca๋ฅผ ์ด์ฉํด์ ์์ฑํ์ต๋๋ค. ORACLE_SID=prod๋ก ์ถ๊ฐ ์์ฑํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ณด๋ฅผ ์์ ๊ฐ์ด ํ์์ ๋ง๊ฒ ์ถ๊ฐํ๊ฒ ์ต๋๋ค.
orcl:/opt/oracle/app/product/11.2.0/dbhome_1:N
prod:/opt/oracle/app/product/11.2.0/dbhome_1:N
oratab ํ์ผ์ ์์ ํ๊ณ ๋ค์ oraenv ๋ช ๋ น์ ์ฌ์ฉํด์ prod๋ก ๋ณ๊ฒฝํด๋ณด๊ฒ ์ต๋๋ค.
[oracle@host ~]$ . oraenv
ORACLE_SID = [prod] ? prod
The Oracle base for ORACLE_HOME=/opt/oracle/app/product/11.2.0/dbhome_1 is /opt/oracle/app
ORACLE_SID ๊ฐ๋ง ์ ๋ ฅํ๋๋ฐ ORACLE_HOME์ ๋ํ ์ ๋ณด๋ฅผ ์๋์ผ๋ก ์ธ์ํ์ฌ ๋ณ๊ฒฝ ์๋ฃ๋์์ต๋๋ค.
2. pfile ์์ฑ
[oracle@host ~]$ cd $ORACLE_HOME/dbs
[oracle@host dbs]$ ls
hc_DBUA0.dat hc_orcl.dat init.ora initorcl.ora lkORCL orapworcl spfileorcl.ora
[oracle@host dbs]$ vi initprod.ora
db_name=prod
control_files='/opt/oracle/app/oradata/prod/control01.ctl'
sga_target=400M
remote_login_passwordfile='EXCLUSIVE'
Database Create๋ nomount ์ํ์์ ๊ฐ๋ฅํฉ๋๋ค. ํ๋ผ๋ฏธํฐ ํ์ผ์ ์ฝ์ ์ ์๋ ์ํ๊น์ง Database๋ฅผ ์ฌ๋ฆฌ๋ ์์ ์ด ํ์ํ์ฌ pfile์ ์ง์ ์์ฑํ์ฌ ์ต์๋ก ํ์ํ ๋ด์ฉ์ ์์ฑํฉ๋๋ค. pfile์ $ORACLE_HOME/dbs ๊ฒฝ๋ก์ init<ORACLE_SID>.ora ํํ๋ก ํ์ผ์ด ์กด์ฌํด์ผํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก Parameter file์ ์ด๊ธฐ ์ํด์๋ db_name, control_files, shared_pool_size ๊ทธ๋ฆฌ๊ณ db_cache_size ์ด 4๊ฐ์ง ํ๋ผ๋ฏธํฐ๊ฐ ์ ์๋์ด ์์ด์ผํฉ๋๋ค. ํ์ง๋ง sga_target ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ํ๋ค๋ฉด sga ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋์ผ๋ก ํ ๋นํ๊ธฐ ๋๋ฌธ์ shared_pool_size์ db_cache_size์ ์ ๋ณด๋ฅผ ์ ์ธํ ์ ์์ต๋๋ค.
remote_login_passwordfile์ ํ์์ ์ธ ์์๋ ์๋์ง๋ง Password fie์ด ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฌ์ฉํ ์ ์๋๋ก ์ค์ .
3. spfile ์์ฑ
[oracle@host ~]$ sqlplus / as sysdba
SQL> create spfile from pfile;
File created.
SQL> !ls $ORACLE_HOME/dbs
hc_DBUA0.dat hc_orcl.dat init.ora initorcl.ora initprod.ora lkORCL orapworcl spfileorcl.ora spfileprod.ora
pfile์ ์ฌ์ฉํด์ ์คํํ ์ ์์ง๋ง, ํธ์์ ์์ฑํ pfile๋ก spfile์ ์์ฑํ๊ณ Database๋ฅผ ์คํํ ๊ณํ์ ๋๋ค. spfile ์์ฑ ์์ ์ DB๊ฐ ๋ด๋ ค๊ฐ์๋ ์ํ์์ ๋ง๋ค ์ ์๊ณ ์์ฑ ์ดํ spfile<ORACLE_SID>.ora ํํ์ ํ์ผ์ด ๋ง๋ค์ด์ง ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
DB nomount ์คํ
SQL> startup nomount
ORACLE instance started.
Total System Global Area 417546240 bytes
Fixed Size 2213936 bytes
Variable Size 134219728 bytes
Database Buffers 272629760 bytes
Redo Buffers 8482816 bytes
Database ์์ฑ์ ์ํด nomount ์ํ๋ก DB๋ฅผ ์คํํฉ๋๋ค. ์ ์์ ์ผ๋ก ์ฌ๋ผ์๋ค๋ฉด ์์ฑํ pfile์ ๋ฌธ์ ๊ฐ ์๋ค๋ ๋ป์ ๋๋ค.
4. DB ์์ฑ
[oracle@host ~]$ mkdir /opt/oracle/app/oradata/prod
DB ์์ฑํ๋ฉด์ ๋ง๋ค์ด์ง datafile, redologfile๋ค์ ๊ฒฝ๋ก๋ฅผ ๋ง๋ค์ด์ค๋๋ค.
[oracle@host ~]$ sqlplus / as sysdba
CREATE DATABASE prod
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
CONTROLFILE REUSE
LOGFILE GROUP 1 ('/opt/oracle/app/oradata/prod/redo01a.log'
,'/opt/oracle/app/oradata/prod/redo01b.log') SIZE 100M REUSE,
GROUP 2 ('/opt/oracle/app/oradata/prod/redo02a.log'
,'/opt/oracle/app/oradata/prod/redo02b.log') SIZE 100M REUSE
EXTENT MANAGEMENT LOCAL
DATAFILE '/opt/oracle/app/oradata/prod/system01.dbf' SIZE 400M REUSE AUTOEXTEND ON
SYSAUX
DATAFILE '/opt/oracle/app/oradata/prod/sysaux01.dbf' SIZE 200M REUSE AUTOEXTEND ON
DEFAULT TEMPORARY TABLESPACE TEMP
TEMPFILE '/opt/oracle/app/oradata/prod/temp01.dbf' SIZE 100M REUSE AUTOEXTEND ON
UNDO TABLESPACE UNDOTBS1
DATAFILE '/opt/oracle/app/oradata/prod/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16;
Database created.
USER SYS IDENTIFIED ... : SYS ์ ์ ๋น๋ฐ๋ฒํธ ์ง์
USER SYSTEM IDENTIFIED ... : SYSTEM ์ ์ ๋น๋ฐ๋ฒํธ ์ง์
CONTROLFILE :
REUSE ๋ช ๋ น์ ์ฌ์ฉํ๊ธฐ ์ํด ๋ช ์. LOGFILE GROUP ์ด๋ DATAFILE๋ค์์๋ REUSE ์ต์ ์ด ๋ถ์ด ์์ต๋๋ค. ์ด ์ต์ ์ ๋ง์ฝ ํด๋น ํ์ผ์ด ์ด๋ฏธ ์กด์ฌํ๋ค๋ฉด ํด๋น ํ์ผ ์ด๋ฆ ๊ทธ๋๋ก ์ฌ์ฉํ์ฌ ๋ฎ์ด์จ์ DB๋ฅผ ์์ฑํฉ๋๋ค.
LOGFILE GROUP : ๋ก๊ทธ ํ์ผ์ ์ต์ 2๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ์ง์ ํด์ผํฉ๋๋ค.
EXTENET MANAGEMENT LOCAL :
LOCAL ๋ฐฉ์์ Tablespace์ ๋ํ free space ๊ณต๊ฐ์ datafile ์์ฒด์์ bitmap์ ์ด์ฉํด์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ค๋ฅธ๋ฐฉ๋ฒ์ผ๋ก Tablespace์ free space ๊ณต๊ฐ์ ๋ํ ์ ๋ณด๋ฅผ data dictionary์์ ๊ด๋ฆฌํ๋ DICTIONARY ๋ฐฉ์์ด ์์ง๋ง data dictionary์ ๋ํ ๊ฒฝํฉ์ด ์ฌํด์ง๊ณ ์ฑ๋ฅ์ ํ์ ์์ธ์ผ๋ก Oracle 8i๋ถํฐ LOCAL ๋ฐฉ์์ด ์ฒ์ ์๊ฐ๋๋ฉด์ ์ด ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ๋๋ก ๊ถ์ฅํฉ๋๋ค.
DATAFILE :
์ง์ ์์ : SYSTEM Tablespace
SYSAUX : SYSTEM Auxilary(๋ณด์กฐ)
UNDO : ์ธ๋ Tablespace ์ง์
TEMPFILE : TEMPORARY Tablespace๋ DEFAULT TEMPORARY TABLESPACE๋ฅผ ๊ผญ ์ง์ ํด์ค์ผํฉ๋๋ค.
CHARACTER SET, NATIONAL CHARACTER SET : ๋ฌธ์ ์ธ์ฝ๋ฉ ์ง์
DB Open ํ์ธ
SQL> select instance_name, status from v$instance;
Instance๊ฐ Open ์ํ๊น์ง ์ฌ๋ผ์๋์ง ํ์ธํฉ๋๋ค.
์ฌ๋ฌ SID ์ฌ์ฉ ํ์ธ
ํ๊ฒฝ๋ณ์ ๋ณ๊ฒฝ
[oracle@host ~]$ . oraenv
ORACLE_SID = [prod] ? orcl
The Oracle base for ORACLE_HOME=/opt/oracle/app/product/11.2.0/dbhome_1 is /opt/oracle/app
[oracle@host ~]$ sqlplus / as sysdba
prod์ ๋ถ์ด์ ์์ ํ๋ค๊ฐ orcl๋ก ๋ณ๊ฒฝํด์ ์์ ํ๊ธฐ ์ํด์ oraenv๋ก ํ๊ฒฝ๋ณ์์ ์ ๋ณด๋ฅผ ๋ณ๊ฒฝํ๊ณ ๋ก๊ทธ์ธํด์ค๋๋ค.
orcl instance startup
SQL> startup
orcl instance๋ฅผ ๊ธฐ๋ํด์ค๋๋ค.
SQL> select instance_name, status from v$instance;
orcl์์๋ ๋ง์ฐฌ๊ฐ์ง๋ก instance์ open ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
[oracle@host ~]$ ps -ef | grep smon
์ฃผ์ ํ๋ก์ธ์ค์ค ํ๋์ธ smon์ ํ๋ก์ธ์ค๊ฐ ๊ธฐ๋์ค์ธ์ง ํ์ธํฉ๋๋ค. prod์ orcl๋ชจ๋ ์ฌ๋ผ์ ์๋ค๋ฉด ๊ฐ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐ๋ ์ธ์คํด์ค๋ฅผ ์ฌ๋ ค์ค ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
ํ์์์
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ฑ์ ์๋ฃ๋์๊ณ ์ด์์์ด ๋์๊ฐ๋๋ค. ํ์ง๋ง ์๋ ์์ฑํ์ ๋ Data Dictionary ์กฐํ์์ ์ด๋, Oracle์์ ์ ๊ณตํ๋ ํจํค์ง๋ค์ด ์คํ๋์ง ์์ต๋๋ค. ์ด๋ฐ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ํ์์์ ์ ํด์ค์ผํฉ๋๋ค. ํ์์์ ์ ๋ํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ํตํด ์งํํ ์ ์์ต๋๋ค.
๋๊ธ