티스토리 뷰

오라클 연동 테스트도.. 오라클 설치만큼이나 짜증나고 힘든 작업이였습니다..

오라클이 제대로 설치됐음에도.. 연동이 안되서.. 짜증나서 지운적이 한두번이 아니죠;..

우분투, 페도라도 마찬가지지만.. 이렇게.. 한단계 한단계 진행할때마다..



백업해놓고.. 바로 그 상태에서 다시 시작할 수 있게 말이죠..

Ubuntu, Fedora, CentOS 모두 하는 방법은 같습니다..

우선 오라클에서 터미널 모드 접속 오라클 사용자 계정으로 넘어갑니다..
우선 리스너 부터 실행하고.. 오라클 실행을 해봅시다..

$ su - oracle
$ lsnrctl start 


제대로 실행되는것 확인했으니.. 종료도 해봅시다..
$ lsnrctl stop


종료도 제대로 되는군요.. 다시 리스너 시작하시구요.. 이제 오라클 실행을 해봅시다..

$ sqlplus "/as sysdba"  를 하거나

$ sqlplus /nolog
SQL> connect /as sysdba
를 실행합니다

SQL> startup 으로 데이터 베이스를 시작!..
시작하자 마자 오류;..


오류를 보니..
설치된 오라클 dbs 폴더에 initora110.ora 파일이 없다.. 뭐 그런 내용이였습니다..

그래서.. 폴더를 확인해봤죠.. 있는데 없는척 오류 낸게 아닌가해서;..


정말 없더군요;..

뭐 어쩌겠습니까;.. 다시 오라클 설치할수도없고.. 제 특기인.. 검색을 해야죠;..
ORA-01078, LRM-00109 오류 검색을 해보니.. 만들어주면 된다고 합니다..

참고 블로그 - IT 자료 블로그  네이버 블로그..

이건 제 pc에 설치한 오라클이기 때문에.. 사용자마다 틀릴 수 있습니다..
오라클 설치 폴더 안에 dbs.. 그 안에서도 spfile 로 시작하는 파일을 적어주시면 됩니다..

가끔 저 에러 말고 다른 에러가 뜨는 것도 있는데.. 설치시 SID(환경설정에서 정한 SID)를.. 잘못 적어주셨거나..
대문자도 안되는것 같습니다..

# echo $ORACLE_SID 로 SID 내용을 확인 할 수 있습니다..
SID가 대문자거나.. 설치시 다른 것으로 적으셨다면..
# vi .bash_profile 에서 SID 를 바꿔주시면 되겠습니다..

다시 오라클로 들어가 봅시다..
리스너도 실행했고.. 오라클도 실행했습니다.. 이제 확인 작업만이 남았군요..

SQL> connect scott/tiger@ora110  
Erorr :
ORA-28000: the account is locked

계정이 잠겼다고 나오네요.. 이건 비밀번호가 여러번 틀렸을 경우..
또는 사용자가 사용할 수 없는 계정 둘 중 하나입니다.. 제가 알기로는요;..

오라클 설치했을때 입력했던 비밀번호를 기억하십니까?..
SYS                        root                root
SYSTEM                 root                root
전 이렇게 등록했었습니다..

SQL> connect system/root
Connected.

제대로 접속되었습니다.. 이제 잠긴 계정을 풀어봅시다..

SQL> alter user scott account unlock;
User altered.
SQL> alter user scott identified by tiger;
User altered.

SQL> connect scott/tiger@ora110  
Connected.


한번 테스트 해본다면.. select * from tab 을 눌러 내용을 살펴봅시다..

뭐 이정도면 오라클 서버는 성공적으로 설치 확인 하신겁니다..

이제 클라이언트를 설정해봅시다..

클라이언트에 오라클 클라이언트 라던지.. 그런게 설치가 되어있어야 합니다..

이제 외부에서 오라클 서버에 접속이 되는지 테스트 해봅시다..

이부분이 가장 짜증나는 부분입니다.. 안되는게 뭐 그리 많은지;.. 계속 하다하다 실패해서..
막 물건 집어던지고 싶은걸 간신히 참았습니다;..

$ lsnrctrl start 를 해서 리스너가 켜져있는지 확인하시구요..
리눅스 서버 상의 ip를 확인하고 윈도우에서 ping 이 가는지 확인을 합니다..

$ ifconfig 를 해주시면 ip를 확인할 수 있습니다.. 윈도우에서 ip 확인하는 ipconfig 과 비슷하죠?..
저도 계속 $ ipconfig 를 쳤습니다;..

$ ifconfig 를 했는데..
-bash: ifconfig: command not found
이렇게 나왔다면.. PATH 설정이 안된겁니다..

path 설정해주기 귀찮으니.. 그냥 절대경로를 통한 명령어를 입력합시다..
$ /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:F1:17:B9 
          inet addr:***.***.***.***  Bcast:***.***.***.***  Mask:255.255.255.0
          inet6 addr: 0000::000:0000:0000:0000/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9338 errors:6 dropped:6 overruns:0 frame:0
          TX packets:534 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:935939 (914.0 KiB)  TX bytes:47626 (46.5 KiB)
          Interrupt:67 Base address:0x2000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:9607 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9607 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3097162 (2.9 MiB)  TX bytes:3097162 (2.9 MiB)

inet addr : ***.***.***.*** 가 리눅스 아이피입니다..

이 아이피를 윈도우 CMD 모드에서 ping 테스트를 해봅시다..
C:\>ping 000.000.000.000

Ping 000.000.000.000 32바이트 데이터 사용:
000.000.000.000의 응답: 바이트=32 시간=7ms TTL=64
000.000.000.000의 응답: 바이트=32 시간<1ms TTL=64
000.000.000.000의 응답: 바이트=32 시간<1ms TTL=64
000.000.000.000의 응답: 바이트=32 시간<1ms TTL=64

000.000.000.000에 대한 Ping 통계:
    패킷: 보냄 = 4, 받음 = 4, 손실 = 0 (0% 손실),
왕복 시간(밀리초):
    최소 = 0ms, 최대 = 7ms, 평균 = 1ms

제대로 핑 테스트가 통과되었습니다..
드디어 리눅스 서버의 오라클에 접속할 준비가 되었습니다..

제가 이거 처음 연동테스트 할때.. 핑테스트도 실패하고.. 왜 실패했나 찾아보고.. 아주 삽질했습니다..
리스너, 오라클 실행을 안한 상태에서 계속 했거든요;..

이제 오라클 tnsnames.ora 파일을 수정만 하면 됩니다..
오라클 클라이언트 설치 폴더 중에..
C:\oracle\product\11.2.0\client_1\network\admin

각 설치 폴더는 틀릴 수 있으니까 클라이언트 설치된 폴더 중에서도 네트워크/어드민에..

tnsnames.ora 라는 파일이 있습니다.. 없을 수도 있어요..
없으면 만들어주면 됩니다..

내용은 다음과 같습니다..

ORA110 =                        (이건 SID는 아닌데.. SID랑 같은 이름을 적어주더군요)..

                            (많은 분들이 그렇게 하니까.. 저도 그냥 그렇게 하겠습니다)..

  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 000.000.000.000)(PORT = 1521))  
 

                                                       (호스트에 리눅스 IP 적어주시구요)..

    )
    (CONNECT_DATA =
      (SERVICE_NAME = ORA110)      
        (서비스네임에.. SID 적어주시면 되겠습니다)..
    )
  )


그리고 오라클 DB를 편하게 쓰기 위한 오라클 보조프로그램 Toad를 사용해보겠습니다..
안써도 상관없는데.. 사용하면 편합니다..



토드만 써서 간단히 확인만 할꺼여서 나머지는 체크해제하고 설치했습니다..
Quest SQL Optimizer for Oracle과 Quest Installer 그리고 Toad for Oracle 3개만 설치했습니다..


토드에 접속하고.. 유저아이디/비밀번호, SID명 등을 적고 커넥트!..



그런데.. 이런게 뜨더군요..

ORA-12170: TNS: 접속 시간 초과가 발생함

참조 블로그 - 하고싶은게 너무많지만 귀찮아~ ㅋ  네이버 블로그..
뭐야 여긴 그런 내용없는데;.. 역시 참조 블로그는 만능이 아니였습니다.. 단지 참조만;..

뭐가 문제야?.. 한참을 고민하다 다시 검색!..

원격 클라이언트에서 slq 접속 시에 이런 문제가 발생한다면, 서버측의 방화벽 설정을 살펴 볼 필요가 있다
출처 - 슈퍼스타★루비..
db서버와 연결이 안되고  해결책 : 서버에서 윈도우 방화벽 해제 캬캬~
출처 - piki's village..

눈에 들어오는건 방화벽 해제.. 윈도우 방화벽을 풀려고 했으나.. 눈에 들어오는 서버측 방화벽!..

다시 리눅스 방화벽 해제 방법에 대해서;.. 검색을;..
# ps aux
# ntsysv  <- 여기서 iptables [*] 체크 해제..
# /etc/init.d/iptables stop


드디어 방화벽도 해제했고.. 다시 토드 접속!..
다시 아이디/비밀번호/SID 등을 입력하고 커넥트!..

아까 테스트 했던 아이디와 패스워드가 scott/tiger 니까 여기도 그걸로 한번 접속해 보겠습니다..

깔끔하게 접속 성공.. 그리고 아까 콘솔에서 테스트 했던 select * from tab 을 실행했습니다..



콘솔하고 결과가 똑같이 나오는게 성공입니다..

이걸로서 오라클 연동 테스트가 끝났습니다.. 이제 오라클 잘 사용하시면 되겠습니다..