티스토리 뷰



테스트 OS : Ubuntu 14.04

오라클 : 11.2.0



개발서버로 사용중이던 우분투 서버에 오라클 11g를 설치하면서 정리한 내용.(기록용)


1.오라클 설치

 - 오라클 설치한 후  2번 삭제하고 3번만에 성공하였다. 

 - 설치관련은 아래 url 통해서 해결. (정말 정신건강에 해로움 ㅠ_ㅠ)






2.오라클 테이블스페이스 및 사용자 생성 


$ sqlplus /nolog

SQL> conn sys/as sysdba


# 테이블스페이스 생성 

CREATE TABLESPACE KTOA_TBL DATAFILE  '/opt/oracle/oracle11g/oradata/[테이블스페이스명].dbf' SIZE 2048M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED


# 사용자 생성

CREATE USER [아이디] IDENTIFIED BY [비밀번호] DEFAULT TABLESPACE [테이블스페이스명] ;


# 권한주기

GRANT connect, resource, dba TO [아이디] ;





3.데이터 복구(Import)


- 미리 백업해둔 기존DB dmp 파일을 import

- 사용자 단위로 백업했기 때문에 DB와 테이블스페이스, 사용자가 생성되어 있어야 한다. (위 2번 참고)

imp userid=[userId/password] fromuser=[userId] touser=[userId] file='/path/user_backup_1103.dmp'






4. Tool 접속


- 서버에서 sqlplus로 접속이 되나 클라이언트 PC에선 접속이 안되는 현상 발생.

- 리스너 확인 

$ ps -ef | grep tns

oracle    2669     1  0 16:24 ?        00:00:00 /opt/oracle/oracle11g/product/11.2.0/dbhome_1/bin/tnslsnr LISTENER -inherit



- 서버 listener.ora 설정 (/opt/oracle/oracle11g/product/11.2.0/dbhome_1/network/admin/listener.ora)


LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = [ServerIp])(PORT = 1521))

    )

 )


SID_LIST_LISTENER =

(SID_LIST =

    (SID_DESC =

      (SID_NAME = ORCL)

      (ORACLE_HOME = /opt/oracle/oracle11g/product/11.2.0/dbhome_1)

    )

)

ADR_BASE_LISTENER = /opt/oracle/oracle11g




- 클라이언트 tnsnames.ora 설정 (툴 사용 PC)


DEV_ORCL =

(DESCRIPTION =

 (ADDRESS = (PROTOCOL = TCP)(HOST = [ServerIp])(PORT = 1521)

  )

 (CONNECT_DATA =

  (SERVICE_NAME= ORCL)

  )



- 오라클 계정으로 접속 후 리스너 start~

$ su oracle 

$ lsnrctl start[stop]



위 설정후 리스너도 오류 없이 잘 실행 됐지만 툴에선 접속이 되지 않는다.

ORA-12170 TNS 접속시간 초과 오류 발생

삽질 시작.. 



5.방화벽 설정

우분투 ufw를 이용해 1521포트를 사용할 수 있게 허용


sudo ufw status (ufw 상태확인)


# ufw 상태확인

$ sudo ufw status 


# 1521 포트 허용

# sudo ufw allow from any to any port 1521



토드, 이클립스에서 접속 성공.




5.오라클 한글깨짐

- Import 된 데이터중 한글이 깨져 보이는 현상.

- sqlplus 접속 후 아래 쿼리 실행


$ sqlplus /nolog

SQL> conn sys/as sysdba 

SQL> update sys.props$ set value$='AMERICAN' WHERE NAME = 'NLS_LANGUAGE';

SQL> update sys.props$ set value$='AMERICA' WHERE NAME = 'NLS_TERRITORY';

SQL> update sys.props$ set value$='KO16KSC5601' WHERE NAME = 'NLS_CHARACTERSET';

SQL> commit;


SQL> select name, value$ from sys.props$ where name in ('NLS_CHARACTERSET', 'NLS_TERRITORY', 'NLS_LANGUAGE');

# 결과

NLS_LANGUAGE : AMERICAN

NLS_TERRITORY : AMERICA

NLS_CHARACTERSET : KO16KSC5601



# 차례대로 실행

SQL> shutdown immediate;

SQL> startup mount exclusive;

SQL> alter system enable restricted session;

SQL> alter system set job_queue_processes=0;

SQL> alter system set AQ_TM_PROCESSES=0;

SQL> alter database open;

SQL> alter database character set KO16KSC5601;

SQL> shutdown immediate;

SQL> startup;





- bash_profile에 아래 내용 입력(오라클 계정이어야함)

$ vi .bash_profile 

# 마지막줄에 입력

LANG=ko; export LANG


# bash_profile 적용

$ . .bash_profile



- 설정 후 기존데이터의 한글깨짐은 변함이 없음. 

- 컬럼에 한글을 입력해봄. (한글 제대로 입력됨.)

- Import한 테이블 삭제후 백업dmp 파일 다시 Import 함.

- 한글 깨짐 해결.




설치 후 설정하는 과정에서 오류가 많이 발생하였으나 설치실패 멘붕으로 인해 거의 정리를 못함.

그나마 메모해둔 오류는..


ORA-27101: shared memory realm does not exist


해결 : 

$ sqlplus /nolog

SQL> conn sys/as sysdba

SQL> startup


# DB 종료는..

SQL> shutdown immediate;




하. 힘들다..

오랜만에 삽질~

어쨋든 성공~ 






저작자 표시 비영리 동일 조건 변경 허락
신고
댓글