테스트 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'
참고 : http://jlblog.me/113
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
참고 : http://jlblog.me/79
토드, 이클립스에서 접속 성공.
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;
하. 힘들다..
오랜만에 삽질~
어쨋든 성공~
'개발' 카테고리의 다른 글
Fiddler 사용 시 Firefox HTTPS 접속 불가 해결 (0) | 2016.12.08 |
---|---|
[Maven] 메이븐 빌드 - 개발 / 운영 서버 별 빌드 소스 구분 (0) | 2016.11.29 |
[Database] 오라클 데이터베이스 백업(Export) / 복구(Import) 정리 (1) | 2016.11.03 |
[Database] Mysql/MariaDB 데이터베이스 백업, 복구 하기 (0) | 2016.11.02 |
[Linux] 리눅스 Local / Remote(원격) 마운트 (0) | 2016.10.20 |