Database 생성 방식의 종류에는 두가지가 있다.
1. DBCA이용(오라클 교재 참고할 것 3장 초반, dbca실행은 os커맨드창에서 dbca를 실행시키면 됨)
2. 수동으로 생성
여기에서는 수동으로 linux에 Database를 생성하는 방법을 알아보도록 하겠다.
(OS: linux, oracle ver.: 10gr2
Windows는 첨부파일을 참고할 것)
1. 디렉토리 생성한다.
(붉은색으로 되어 있는 부분은 생성하고 싶은 database명과 instance명이다.
자신이 원하는 이름으로 해주면 되겠다.
참고로 보통 database명과 instance명은 같은 이름으로 해준다.)
2. parameter 파일 생성한다. (참고로 parameter파일은 instance의 구성과 관계가 있다.)
아래는 파일에 들어갈 내용이다.
3. nomount상태로 시작한다.
4. database를 생성한다.
- 실제 Database 를 생성하는 단계이며, Control File / Redo Log File / Data File 이 생성된다
- 생성 후 OPEN 상태로 변경되어 $ORACLE_HOME/rdbms/admin/sql.bsg 를 자동 실행한다
- $ORACLE_HOME/rdbms/admin/sql.bsg 의 실행을 통해 TAB$,COL$ 등의 Internal Table을 생성한다
5. sys, system 유저의 패스워드를 변경한다.
6. data dictionary, pl/sql, product user profile 테이블 및 관련 프로시져 생성을 위한 작업을 해준다.
아래는 파일에 들어갈 내용이다.
파일을 실행한다. 여기에서 20분가량의 시간이 걸린다.
이걸로 database 생성은 잘 끝났다. 잘 생성되었는지 테스트해보자.
다음은 네트워크 설정이다.
원격지에서 제어하기 위해서 필요한 설정이다.
1. 리스너를 정지한다.
2. listener.ora 파일을 편집한다.
아래의 붉은 부분을 추가해준다.
3. 리스너를 시작한다.
4. tnsnames.ora파일을 편집한다.(isqlplus에 접속할 수 있도록 설정)
붉은 부분을 추가해준다.
5. 패스워드 파일을 생성한다.
여기까지해서 네트워크 세팅이 완료되었다.
잘 되었는지 테스트해보자.
여기까지 수동으로 DB를 생성하고, 네트워크 세팅하는 것을 알아보았다.
참고 : http://cafe.naver.com/gseducation/87
http://www.urbantree.wo.tc/entry/3
http://blog.naver.com/enter128
1. DBCA이용(오라클 교재 참고할 것 3장 초반, dbca실행은 os커맨드창에서 dbca를 실행시키면 됨)
2. 수동으로 생성
여기에서는 수동으로 linux에 Database를 생성하는 방법을 알아보도록 하겠다.
(OS: linux, oracle ver.: 10gr2
Windows는 첨부파일을 참고할 것)
1. 디렉토리 생성한다.
(붉은색으로 되어 있는 부분은 생성하고 싶은 database명과 instance명이다.
자신이 원하는 이름으로 해주면 되겠다.
참고로 보통 database명과 instance명은 같은 이름으로 해준다.)
OS] mkdir $ORACLE_BASE/oradata/jgh_db
2. parameter 파일 생성한다. (참고로 parameter파일은 instance의 구성과 관계가 있다.)
OS] export ORACLE_SID=jgh_db
OS] vi $ORACLE_HOME/dbs/initjgh_db.ora
OS] vi $ORACLE_HOME/dbs/initjgh_db.ora
아래는 파일에 들어갈 내용이다.
db_name = jgh_db
instance_name = jgh_db
compatible = 10.2.0
processes = 100
undo_management = auto
undo_tablespace = undotbs01
db_cache_size = 64m
shared_pool_size = 72m
db_block_size = 4096
control_files = ('$ORACLE_BASE/oradata/jgh_db/control01.ctl',
'$ORACLE_BASE/oradata/jgh_db/control02.ctl')
remote_login_passwordfile = exclusive
instance_name = jgh_db
compatible = 10.2.0
processes = 100
undo_management = auto
undo_tablespace = undotbs01
db_cache_size = 64m
shared_pool_size = 72m
db_block_size = 4096
control_files = ('$ORACLE_BASE/oradata/jgh_db/control01.ctl',
'$ORACLE_BASE/oradata/jgh_db/control02.ctl')
remote_login_passwordfile = exclusive
3. nomount상태로 시작한다.
OS] sqlplus / as sysdba
SQL> startup nomount
SQL> startup nomount
4. database를 생성한다.
- 실제 Database 를 생성하는 단계이며, Control File / Redo Log File / Data File 이 생성된다
- 생성 후 OPEN 상태로 변경되어 $ORACLE_HOME/rdbms/admin/sql.bsg 를 자동 실행한다
- $ORACLE_HOME/rdbms/admin/sql.bsg 의 실행을 통해 TAB$,COL$ 등의 Internal Table을 생성한다
create database jgh_db
logfile group 1 ('$ORACLE_BASE/oradata/jgh_db/redo01_a.log',
'$ORACLE_BASE/oradata/jgh_db/redo01_b.log') size 20m,
group 2 ('$ORACLE_BASE/oradata/jgh_db/redo02_a.log',
'$ORACLE_BASE/oradata/jgh_db/redo02_b.log') size 20m
datafile '$ORACLE_BASE/oradata/jgh_db/system01.dbf' size 200m autoextend on next 20m maxsize unlimited
sysaux datafile '$ORACLE_BASE/oradata/jgh_db/sysaux01.dbf' size 200m autoextend on next 20m maxsize unlimited
undo tablespace undotbs01 datafile '$ORACLE_BASE/oradata/jgh_db/undotbs01.dbf' size 100m autoextend on next 20m maxsize 2G
default temporary tablespace temp tempfile '$ORACLE_BASE/oradata/jgh_db/temp01.tmp' size 20m autoextend on next 20m maxsize 2G;
logfile group 1 ('$ORACLE_BASE/oradata/jgh_db/redo01_a.log',
'$ORACLE_BASE/oradata/jgh_db/redo01_b.log') size 20m,
group 2 ('$ORACLE_BASE/oradata/jgh_db/redo02_a.log',
'$ORACLE_BASE/oradata/jgh_db/redo02_b.log') size 20m
datafile '$ORACLE_BASE/oradata/jgh_db/system01.dbf' size 200m autoextend on next 20m maxsize unlimited
sysaux datafile '$ORACLE_BASE/oradata/jgh_db/sysaux01.dbf' size 200m autoextend on next 20m maxsize unlimited
undo tablespace undotbs01 datafile '$ORACLE_BASE/oradata/jgh_db/undotbs01.dbf' size 100m autoextend on next 20m maxsize 2G
default temporary tablespace temp tempfile '$ORACLE_BASE/oradata/jgh_db/temp01.tmp' size 20m autoextend on next 20m maxsize 2G;
5. sys, system 유저의 패스워드를 변경한다.
SQL> alter user sys identified by oracle;
SQL> alter user system identified by oracle;
SQL> alter user system identified by oracle;
6. data dictionary, pl/sql, product user profile 테이블 및 관련 프로시져 생성을 위한 작업을 해준다.
SQL> ed after_db_create.sql
아래는 파일에 들어갈 내용이다.
conn sys/oracle as sysdba
@?/rdbms/admin/catalog.sql -- data dictionary 생성
@?/rdbms/admin/catproc.sql -- pl/sql 환경 구성
conn system/oracle
@?/sqlplus/admin/pupbld.sql -- product user profile테이블 및 관련 프로시져 생성
@?/rdbms/admin/catalog.sql -- data dictionary 생성
@?/rdbms/admin/catproc.sql -- pl/sql 환경 구성
conn system/oracle
@?/sqlplus/admin/pupbld.sql -- product user profile테이블 및 관련 프로시져 생성
파일을 실행한다. 여기에서 20분가량의 시간이 걸린다.
SQL> @ after_db_create.sql
SQL> exit
이걸로 database 생성은 잘 끝났다. 잘 생성되었는지 테스트해보자.
OS] export ORACLE_SID=jgh_db
OS] sqlplus / as sysdba
SQL> select instance_name from v$instance;
SQL> shutdown abort
SQL> startup
OS] sqlplus / as sysdba
SQL> select instance_name from v$instance;
SQL> shutdown abort
SQL> startup
다음은 네트워크 설정이다.
원격지에서 제어하기 위해서 필요한 설정이다.
1. 리스너를 정지한다.
OS] lsnrctl stop
2. listener.ora 파일을 편집한다.
OS] vi $ORACLE_HOME/network/admin/listener.ora
아래의 붉은 부분을 추가해준다.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /home/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /home/oracle/product/10.2.0/db_1)
(GLOBAL_DBNAME = orcl)
)
(SID_DESC =
(SID_NAME = jgh_db)
(ORACLE_HOME = /home/oracle/product/10.2.0/db_1)
(GLOBAL_DBNAME = jgh_db)
)
)
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /home/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /home/oracle/product/10.2.0/db_1)
(GLOBAL_DBNAME = orcl)
)
(SID_DESC =
(SID_NAME = jgh_db)
(ORACLE_HOME = /home/oracle/product/10.2.0/db_1)
(GLOBAL_DBNAME = jgh_db)
)
)
3. 리스너를 시작한다.
OS] lsnrctl start
4. tnsnames.ora파일을 편집한다.(isqlplus에 접속할 수 있도록 설정)
OS] vi $ORACLE_HOME/network/admin/tnsnames.ora
붉은 부분을 추가해준다.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
jgh_db =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = jgh_db)
)
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
jgh_db =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = jgh_db)
)
)
5. 패스워드 파일을 생성한다.
OS] ls $ORACLE_HOME/dbs
OS] orapwd file=$ORACLE_HOME/dbs/orapwjgh_db password=oracle entries=5
OS] orapwd file=$ORACLE_HOME/dbs/orapwjgh_db password=oracle entries=5
여기까지해서 네트워크 세팅이 완료되었다.
잘 되었는지 테스트해보자.
OS] tnsping orcl
OS] tnsping jgh_db
OS] tnsping jgh_db
여기까지 수동으로 DB를 생성하고, 네트워크 세팅하는 것을 알아보았다.
참고 : http://cafe.naver.com/gseducation/87
http://www.urbantree.wo.tc/entry/3
http://blog.naver.com/enter128
'Oracle > Admin' 카테고리의 다른 글
2009년 11월 24일 수업내용 (0) | 2009.11.24 |
---|---|
Static Data Dictionary View vs Dynamic Performance View (2) | 2009.11.24 |
2009년 11월 23일 수업내용 (0) | 2009.11.23 |
Explain Plan과 Execution Plan의 차이 (0) | 2009.11.22 |
linux4에 oracle10gR2 or oracle11gR2 설치 (0) | 2009.11.22 |