오라클 멀티 인스턴스 만들기

 

홈 및 base는 모두 그대로 사용하고 sid만 변경

export ORACLE_SID=PRACCT02

 

sqlplus / as sysdba

CREATE PFILE='/home/oracle/base/product/11.2.0/dbhome_1/dbs/pfilePRACCT02.ora' FROM SPFILE='/home/oracle/base/product/11.2.0/dbhome_1/dbs/spfilePRACCT01.ora';

 

 

 

원본 DB PRACCT01의 pfile

 

새로 만들어진 pfilePRACCT02.ora 에서 PRACCT01로 되어있는부분을 수동으로 수정

 

 

STARTUP NOMOUNT PFILE='$ORACLE_HOME/dbs/pfile$ORACLE_SID.ora';

 

 

 

 

미리 경로를 만들어놔야하나보다

위에 작성된 adump경로와, controlfile경로, 아카이브경로 이렇게 3개 디렉토리를 만들어놔주자

 

참고로 nomount단계에서 실패했다면 shudown으로는 프로세스가 죽지 않으니

pkill 하여 이미 실행된 인스턴스 프로세스를 지워줘야한다.

 

보통 로그라이터 또는 dbwr를 kill하면 모든 프로세스가 깔끔하게 잘 내려간다.

kill -9 14571

 

 

다시 들어가서 아까와 마찬가지로 pfile를 통한 nomount 기동

 

 

SQL> STARTUP NOMOUNT PFILE='$ORACLE_HOME/dbs/pfile$ORACLE_SID.ora';
ORACLE instance started.

Total System Global Area  492707840 bytes
Fixed Size                  2214656 bytes
Variable Size             301991168 bytes
Database Buffers          184549376 bytes
Redo Buffers                3952640 bytes
SQL>


DBCA대신 수동으로 create DB 할때 스크립트




CREATE DATABASE PRACCT02
   USER SYS IDENTIFIED BY 비밀번호
   USER SYSTEM IDENTIFIED BY 비밀번호
   LOGFILE GROUP 1 ('$ORACLE_BASE/oradata/PRACCT02/redo01.log') SIZE 50M,
           GROUP 2 ('$ORACLE_BASE/oradata/PRACCT02/redo02.log') SIZE 50M,
           GROUP 3 ('$ORACLE_BASE/oradata/PRACCT02/redo03.log') SIZE 50M
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 100
   MAXDATAFILES 100
   CHARACTER SET AL32UTF8
   NATIONAL CHARACTER SET AL16UTF16
   EXTENT MANAGEMENT LOCAL
   DATAFILE '$ORACLE_BASE/oradata/PRACCT02/system01.dbf' SIZE 500M AUTOEXTEND ON
   SYSAUX DATAFILE '$ORACLE_BASE/oradata/PRACCT02/sysaux01.dbf' SIZE 100M AUTOEXTEND ON
   DEFAULT TABLESPACE users
      DATAFILE '$ORACLE_BASE/oradata/PRACCT02/users01.dbf' SIZE 50M AUTOEXTEND ON
   DEFAULT TEMPORARY TABLESPACE temp
      TEMPFILE '$ORACLE_BASE/oradata/PRACCT02/temp01.dbf' SIZE 50M AUTOEXTEND ON
   UNDO TABLESPACE undotbs1
      DATAFILE '$ORACLE_BASE/oradata/PRACCT02/undotbs01.dbf' SIZE 50M AUTOEXTEND ON;



 

이때 오라클은 기동시 우선적으로 spfile을 읽으려고 하기 때문에 미리 spfile을 만들어줘야한다

그냥 재기동시 


SQL> ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/home/oracle/base/product/11.2.0/dbhome_1/dbs/initPRACCT02.ora'



이때는 당황하지말고 다시 기존에 만들었던 pfile을 토대로 nomount 기동

SQL> STARTUP NOMOUNT PFILE='$ORACLE_HOME/dbs/pfilePRACCT02.ora';
ORACLE instance started.

Total System Global Area  492707840 bytes
Fixed Size                  2214656 bytes
Variable Size             301991168 bytes
Database Buffers          184549376 bytes
Redo Buffers                3952640 bytes



spfile로 pfile 생성

SQL> CREATE SPFILE FROM PFILE='$ORACLE_HOME/dbs/pfilePRACCT02.ora';

File created.

SQL> SHUTDOWN IMMEDIATE;
ORA-01507: database not mounted


ORACLE instance shut down.


SQL>  STARTUP;
ORACLE instance started.

Total System Global Area  492707840 bytes
Fixed Size                  2214656 bytes
Variable Size             301991168 bytes
Database Buffers          184549376 bytes
Redo Buffers                3952640 bytes
Database mounted.
Database opened.


 

 

 

 

listener.ora 추가

 

리스너 2 시작

service가 등록되어있지 않다.

 

 

앞서 listener 설정이 제대로 되었다면 db를 재기동해주면 해결된다.

아니라면 아래 포스팅 참고

https://bbakssang.tistory.com/148

 

오라클 listener 등록 및 DBeaver tool로 접속하기

먼저 DBEAVER로 오라클에 접속하려면 오라클 클라이언트를 설치해야한다. 각 오라클 버전에 맞는 클라이언트 설치 압축파일 해제시 아래와 같이 설치파일들이 풀리는데 setup.exe로 설치해주자. 설

bbakssang.tistory.com

 

 

잘 생성이 되었다

반응형