방화벽 안에 있는 윈도우 2000 서버에 오라클 8.1.7 설치 및 접속하기
OS : Windows 2000 Server Standard Edition
DB : Oracle 8.1.7 Standard Edition
CPU : Pentium 4
다음과 같은 문제들을 겪었습니다.
1. 처음 CD를 넣고 setup을 하면 아무것도 안 뜬다
2. 설치화면이 뜨긴뜨는데 에러가 발생한다.(jvm.dll 이 없다고 나올 때가 있고, 또 하나는 기억이 안남)
3. 방화벽에서 oracle이 사용하는 port를 열어놨는데, 외부에서 접속이 안된다
4. ociw32.dll을 지우거나 덮어쓸 수 없다.
지식인이랑 구글이랑 수없이 찾아봤지만 위 문제를 해결하는 방법에 대해서 완벽하게 설명된 것이 없었습니다.
1. 처음 CD를 넣고 setup을 하면 아무것도 안 뜬다
원인
- 다른 사람들의 답을 읽어보면 Pentium 4에서 발생하는 문제랍니다. 별 그지같은 이유로 설치자체가 안되다니...
해결 절차
윈도우 터미널로 접속해서는 설치하지 마십시오. 이게 원인인지 모르겠지만 설치 도중에 에러가 발생합니다.(저는 터미널로 접속해서 설치했더니 에러나서 VNC로 접속해서 설치했습니다)
우선 CD로는 설치할 수 가 없습니다. 오라클 CD의 내용을 모두 HDD로 복사해야 합니다.
복사를 했으면 파일 검색을 해서 symcjit.dll 파일을 찾으세요.
제꺼는 여기에 있더군요. D:\SW\oracle 817 se\stage\Components\oracle.swd.jre\1.1.7.30\1\DataFiles\Expanded\jre\win32\bin
이거말고 하나 더 있는데, 그건 신경 안 써도 되는것 같습니다.
symcjit.dll의 파일명을 symcjit.dll.org로 변경
이제 setup.exe를 실행하면 됩니다. 오라클 제일 상위 폴더에 있는 setup.exe이 안되면 D:\SW\oracle 817 se\install\win32 에 있는 setup.exe를 실행하시면 됩니다.
* 다른 사람들이 질문한 답을 읽어보면 symcjit.dll을 다른 버전을 다운받아서 덮어쓰라고 하던데요, 그렇게 해도 됩니다. 근데 이름 변경만으로도 해결됩니다.
* oracle 8.1.7 standard edition은 www.oracle.com에서 다운 받았습니다. 회원가입 해야 합니다.(아무나 할 수 있습니다)
* 처음에는 8.1.6으로 하다가 에러가 계속 나서 8.1.7을 다운 받았습니다.
2. 설치화면이 뜨긴뜨는데 에러가 발생한다.(jvm.dll 이 없다고 나올 때가 있고, 또 하나는 기억이 안남)
원인
이건 확실하지 않은데요, symcjit.dll 때문이기도 하고, jvm.dll을 버전 때문인 것 같습니다.
8.1.6 으로 설치시 에러가 나서 jre 1.1.8 을 다운받아서 설치해봤는데, 무슨 파일을 찾을 수 없다고 나옵니다. 그 파일에 path 걸어줘 받은데 여전히 나더군요. 이번엔 j2ee sdk 1.4를 다운받아서 설치해봤습니다. jvm.dll에러는 여전히 나오더군요.
해결 절차
이 문제는 해결책이 좀 제한적인데요. 8.1.7로 설치하면 됩니다. 다운받아서 1번의 해결 절차를 거치면 문제 없습니다.
* 8.1.6에서 에러가 많이 나서 그 다음부터는 8.1.7로만 시도했습니다.
3. 방화벽에서 oracle이 사용하는 port를 열어놨는데, 방화벽 밖에서 접속이 안된다
원인
오라클이 dynamic으로 접속 포트를 바꾸기 때문입니다.
클라이언트가 오라클이 사용하는 포트(default 1521)로 접속을 해오면 TNS Listener가 동적으로 다른 포트로 바꾸어서 연결을 해준답니다.
그러니 1521 한 개만 열어서는 절대 접속이 안되죠.
접속시 "ora-12535: TNS:작동이 중단중입니다." 라고 에러가 납니다.
그래서 찾아보면 네트웍 접속이 느리니 CONNECT_TIMEOUT 값을 늘리라고 하는데, 저같은 경우는 이게 원인이 아니었으며, 이 값을 설정하는 방법도 확실한 것 찾기는 정말 힘듭니다.
해결책 1
가장 쉽고 단순하게 방화벽의 모든 포트 또는 오라클이 동적으로 사용하는 포트 구간을 알아내서(저는 그것까지 알 필요는 없어서 알아보지는 않았습니다) 모두 열어둔다.
하지만 대부분 정책상 이렇게 하기가 어렵죠
해결책 2
다른 사람들이 대답한 걸 보면 registry나 환경 변수에 USE_SHARED_SOCKET을 사용하라고 합니다. 환경변수는 알겠는데 registry에 대한 부분은 명확하지가 않더군요.
HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOME0 여기에다가 USE_SHARED_SOCKET=TRUE 라고 하라는데 여기에 있는 다른 TRUE/FALSE 들은 타입이 REG_EXPAND_SZ던가(잘 기억 안남) 로 되어 있더군요. 그래서 이걸 그냥 문자열로 하면 되는건지 잘 모르겠더군요.(한 번 해보면 되겠지 생각이 들면서도 결국 안해봤습니다.)
암튼 레지스트리는 명확하지가 않아서 환경변수를 사용했습니다.
시작메뉴-설정-제어판-시스템을 실행합니다.(또는 내컴퓨터 등록정보)
고급-환경 변수를 클릭
시스템 변수에서 새로만들기 클릭하고 변수 이름 : USE_SHARED_SOCKET, 변수 값 : TRUE 로 입력
시스템 다시 부팅(확실하진 않지만 오라클만 죽였다 살려서는 안되는듯)
자~ 이제 다시 부팅되길 초조한 마음으로 기다리다가 부팅되면 방화벽 밖에서 접속을 시도해 보세요. 되나요? 안됩니다. -_-
방화벽 안에서 해보세요. 잘되던 방화벽 안쪽에서도 안되고, 오라클이 설치된 서버에서도 안되더군요. 젠장!!
ora-12537 에러 나옵니다. 찾아보면 end of file 인가를 만나서 정상적으로 끊어진거고, 에러메시지가 아니다 란 듯이 답변이 되어 있습니다. 짜증 이빠이 나더군요.
그래서 더 찾아봤습니다. 최신 oracle patch를 설치하라고 하데요. 근체 최신 패치는 어디서 받는지 아세요? 저는 오라클 싸이트에서는 못 찾았습니다.
이건 metalink란 곳에 있는데, 여기는 아무나 가입할 수 있는 곳이 아닙니다. 그래서 id가지고 있는 사람에게 부탁해서
oracle 8.1.7.4.1 패치를 다운 받았습니다. 100MB 쯤합니다.
다운 받아서 setup.exe 실행했습니다. 아무것도 안 뜨더군요. 짜증내면서
오라클 관련 서비스를 모두 죽입니다.
symcjit.dll 검색해서 이름 바꿨습니다.
바로 뜹니다.
특별히 지정할 것 없었고 그냥 설치했습니다. 4번 문제인 ociw32.dll 을 어떻게 할 수 없다고 에러 나더군요. 서비스 다시 확인했는데, 오라클 서비스는 모두 죽어있었습니다.
이것두 안되면 어쩌나 걱정하면 설치 취소하고 다시 부팅했습니다.
여전히 ociw32.dll을 어떻게 할 수 없답니다. 다 죽였는데 어쩌라고~
작업관리자로 프로세스 목록을 봤습니다. msdtc.exe가 눈에 거슬리더군요.
서비스에서 Distributed Transaction Coordinator를 한 번 죽여봤습니다.
오옷!
에러 난 화면에서 재시도 눌렀더니 넘어갑니다.
제가 자랑스럽더군요 -_-a
이후에는 문제없이 설치됐고, 설치 후 리부팅 했습니다.(안해도 될 것 같은데, 좀 꺼림칙하다 싶으면 리부팅하는게 속편합니다)
다시 부팅 후 오라클이 설치된 서버에서 접속해 봤습니다. 오옷 일단 됩니다.
자~ 이제 터미널로 방화벽 밖의 서버에 접속해서 그 서버에서 오라클 접속을 시도 했습니다.
이래도 안되면 방화벽 모든 포트를 여는 수 밖에 없는데, 그러려면 협조전 올리고 결재 맡고....복잡해지는데 하면서 긴장을 하고 있는데, SQL> 프롬프트가 이렇게 반가울 수가~ 드뎌 접속이 됐습니다. T_T
=========================================================
이것 땜시 고생한 지난 2주간이 너무 아깝습니다.
이거 작성하는것도 꽤 시간이 걸리는군요. 같은 문제에 직면해 있는 분들에게 도움이 되길 바라며, 힘내십시오.
4번의 해결책을 3번 해결책에 같이 설명했습니다.
'프로그래밍 > oracle' 카테고리의 다른 글
oracle - 실행계획 SQL 연산(AND-EQUAL) (0) | 2012.08.17 |
---|---|
oracle - 오라클 초보 사용자를 위한 팁 (0) | 2012.08.17 |
oracle - 기타(권한) (0) | 2012.08.17 |
oracle - 개발자가 범하기 쉬운 튜닝 이슈 (0) | 2012.08.17 |
오라클에서 ㄱ,ㄴ,ㄷ 으로 시작하는 한글이름 검색하기는 어찌하면 되나요. (0) | 2012.08.17 |