요약하자면 꽤나 힘든 일입니다.
윈도우 버젼에선 좀 쉬운데 리눅스 버젼에선 꽤나 힘들다니..
더군다나 자신들이 만든 그 Oracle Linux 7.3 운영체제가 아닌가??
근데 정말 묘하게도 설치가 다되고 난 후에 재부팅을 실시하면 Database가 시작을 안한다.
그걸 또 사용자가 바꾸어야 하고 필요하다면 데이터베이스를 시작시키는 서비스를 직접 만들어 설정해야만 한다...
물론 Docker Container로 하면 정말 간단하게 이런 문제 없이 쓸수 있다는걸 알고 있다.
그냥
하지만 여전히 로컬/VM에서 일일이 설치하고 쓰고 있고 Docker의 철학에 따라 저 데이터베이스 컨테이너는 몇몇 기능이 비활성화 되어있다.
설정만 하면 바꿀수 있다만 또 다른 이유로 VM에 리눅스 설치후 그 리눅스에서 DB를 써보고 싶었었다. 전에 해봤는데 실패...
고로 이 글은 같은 문제를 겪을수 있는 사람들을 위해 작성합니다.
+ 리눅스를 많이 써보고 어느정도 익숙한 분들에게 잘 익힙니다.
달리 말해 리눅스 처음 쓰는 사람들은😢...
일단 설치과정에서 부터 수정을 한다.
사용된 리눅스 배포판은 Oracle Linux Server 7.3
이유는 Virtualbox Guest Addition이 잘 설치되기 때문.
그전에 네트워크 설정은 고정 ip로 반드시 되어야 하는데 이건 설치후에 DHCP로 된걸 다시 바꿔도 되니 상관없습니다.
설치 가이드는 다음 출처에 있는 대로 했습니다.
https://oracle-base.com/articles/12c/oracle-db-12cr1-installation-on-oracle-linux-7
저대로 하면 분명 설치는 재대로 됩니다.
근데 문제가 생기는데 재부팅을 해보고 시작하면 아예 시작조차도 안하는 것.
터미널에서 oracle 계정으로 로그인하고 시작해봐도 안되는것..
그래서 다음과 같은 트릭을 씁니다.
저 가이드에서 Oracle Database 설치 경로를 다 만들고 oracle 계정 환경변수 설정까지
다 준비하면 다음을 시도하세요.
윈도우 버젼에선 좀 쉬운데 리눅스 버젼에선 꽤나 힘들다니..
더군다나 자신들이 만든 그 Oracle Linux 7.3 운영체제가 아닌가??
근데 정말 묘하게도 설치가 다되고 난 후에 재부팅을 실시하면 Database가 시작을 안한다.
그걸 또 사용자가 바꾸어야 하고 필요하다면 데이터베이스를 시작시키는 서비스를 직접 만들어 설정해야만 한다...
물론 Docker Container로 하면 정말 간단하게 이런 문제 없이 쓸수 있다는걸 알고 있다.
그냥
docker pull store/oracle/database-enterprise:12.1.0.2 이러고 간단하게 환경 설정 파일을 run 할때 넣어만 주면 간단하게 쓸 수 있다.하지만 여전히 로컬/VM에서 일일이 설치하고 쓰고 있고 Docker의 철학에 따라 저 데이터베이스 컨테이너는 몇몇 기능이 비활성화 되어있다.
설정만 하면 바꿀수 있다만 또 다른 이유로 VM에 리눅스 설치후 그 리눅스에서 DB를 써보고 싶었었다. 전에 해봤는데 실패...
고로 이 글은 같은 문제를 겪을수 있는 사람들을 위해 작성합니다.
+ 리눅스를 많이 써보고 어느정도 익숙한 분들에게 잘 익힙니다.
달리 말해 리눅스 처음 쓰는 사람들은😢...
일단 설치과정에서 부터 수정을 한다.
사용된 리눅스 배포판은 Oracle Linux Server 7.3
이유는 Virtualbox Guest Addition이 잘 설치되기 때문.
그전에 네트워크 설정은 고정 ip로 반드시 되어야 하는데 이건 설치후에 DHCP로 된걸 다시 바꿔도 되니 상관없습니다.
설치 가이드는 다음 출처에 있는 대로 했습니다.
https://oracle-base.com/articles/12c/oracle-db-12cr1-installation-on-oracle-linux-7
저대로 하면 분명 설치는 재대로 됩니다.
근데 문제가 생기는데 재부팅을 해보고 시작하면 아예 시작조차도 안하는 것.
터미널에서 oracle 계정으로 로그인하고 시작해봐도 안되는것..
그래서 다음과 같은 트릭을 씁니다.
저 가이드에서 Oracle Database 설치 경로를 다 만들고 oracle 계정 환경변수 설정까지
다 준비하면 다음을 시도하세요.
- 먼저 새 터미널 탭을 열거나 해서 새 터미널에서 root로 로그인 합니다.
- 그 다음 터미널에
. /home/oracle/.bash_profile을 입력하고 - oracle 계정으로 로그인한 터미널에
. ~/.bash_profile
저렇게 하는 이유는 설치할 때 환경변수가 이상하게 날아가 버려서 저렇게 이중으로 환경변수를 재대로 설정하기 위함입니다.
그리고
/home/oracle/.bash_profile 을 편집할 때 ORACLE_UNQNAME 과 ORACLE_SID를
cdb1으로 설정하라고 하는데 이걸 orcl로 바꾸세요.
물론 고수라면 바꾸어서 쓰기도 하지만...
이후 설치를 진행 하시면 됩니다. 근데 잊을뻔했지만 저는 다운로드한 DB 설치 프로그램 압축파일 2개를 별도의 가상 하드디스크에 넣고 압축을 푼 후 oracle 계정에 접근 권한을 넣어주었는데 저의 또다른 계정에서 압축을 풀면 접근이 안되서..
이건 뭐 알아서 하시면 됩니다.
그 다음 과정
이제 설치를 하면 됩니다. ./runInstaller 를 하라고 하는데 그러면 됩니다.
그 다음으로 해야할 과정은 root 터미널에서 좀 잔업을 하라는거 해주면 되는데 추가적으로
/etc/oratab/ 을 편집하세요.
설치 막바지에 이르르면 orcl:/u01/app/oracle/product/12.1.0.2/db_1:N 로 되어있는데
이게 자동 시작을 비활성화 합니다. N을 Y로하면 됩니다.
oracle-base.com에서 자동화된 시작에 대한 방법에 대한 가이드가 있지만 저는 그냥 따로 했습니다.
설치가 다되면 계정(
sys같은)암호 설정하는 버튼과 함깨 막바지에 이르고 OK누르면 끝.
이제 Database는 설치는 다됬지만 아직 이게 끝이 아닙니다.
정상적인 사용 방법
이제 사용하다 보면 또 다른 계정을 만들고 그 계정에서 테이블 생성 및 다른 작업을 하실텐데 그게 안됩니다.
그냥은요..
재부팅하고 보면 만든 계정으로 로그인시
ORA-01034라는 에러를 뿜어대는데 확인해 보니Database가 mount되지 않은게 문제...(알다시피 컨테이너 DB라는 개념을 쓰는 Oracle DB)
해서 재부팅하고 나면 분명
sqlplus 는 되는데 계정은 sys빼면 다안된다는..
해결 방법은
sqlplus sys as sysdba 입력후 (oracle 계정으로 로그인해서)
로그인 하고 마무리로 startup 명령어로 마운트 하고 열면 된다. 아래는 터미널에서 입력한것들.
[oracle@ol7 xen]$ sqlplus stmanager/test09
SQL*Plus: Release 12.1.0.2.0 Production on Sat Jul 29 23:15:31 2017
Copyright (c) 1982, 2014, Oracle. All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3640
Additional information: 644371931
Process ID: 0
Session ID: 0 Serial number: 0
Enter user-name: sys as sysdba
Enter password:
Connected to an idle instance.
SQL> !clear
SQL> startup
ORACLE instance started.
Total System Global Area 1610612736 bytes
Fixed Size 2924928 bytes
Variable Size 1006636672 bytes
Database Buffers 587202560 bytes
Redo Buffers 13848576 bytes
Database mounted.
Database opened.
SQL> conn stmanager/test09
Connected.
SQL> select * from testtable;
NAME AGE
------------------------------ ----------
????????? 33
SQL> exit
Disconnected from Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
SQL*Plus: Release 12.1.0.2.0 Production on Sat Jul 29 23:15:31 2017
Copyright (c) 1982, 2014, Oracle. All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3640
Additional information: 644371931
Process ID: 0
Session ID: 0 Serial number: 0
Enter user-name: sys as sysdba
Enter password:
Connected to an idle instance.
SQL> !clear
SQL> startup
ORACLE instance started.
Total System Global Area 1610612736 bytes
Fixed Size 2924928 bytes
Variable Size 1006636672 bytes
Database Buffers 587202560 bytes
Redo Buffers 13848576 bytes
Database mounted.
Database opened.
SQL> conn stmanager/test09
Connected.
SQL> select * from testtable;
NAME AGE
------------------------------ ----------
????????? 33
SQL> exit
Disconnected from Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
반드시 Database mounted.와 Database opened. 라는 결과가 보여야 정상적으로 사용가능.
이렇게 해서 연습을 할 수 있는 준비가 다되었습니다.
2번 재부팅해서 시험했는데 정상적으로 먹힙니다.
눈물나는 이 문제는 이제 다 해결됬네요...
이제 저는 Oracle Database를 연습하고 Mysql도...
물론 저대로 하면 좀 번거로우므로 다른 해결법을 찾는중 입니다.
물론 저대로 하면 좀 번거로우므로 다른 해결법을 찾는중 입니다.
댓글
댓글 쓰기