가상 머신(VMware) 환경이나 실무 서버 구축 시, 리눅스(Linux)에 오라클 19c 서버를 띄워두고 윈도우(Windows) 클라이언트에서 원격으로 접속해야 하는 경우가 많습니다.
오늘은 윈도우 환경에서 tnsnames.ora 파일을 통해 원격 DB와 연동하는 방법, 만들어둔 .sql 스크립트를 실행하는 방법, 그리고 가장 많이 겪는 'tnsping 무한 대기' 방화벽 에러 해결법까지 한 번에 정리해 보겠습니다.
미리 메모장 등으로 작성해 둔 테이블 생성 및 데이터 삽입용 스크립트 파일(예: school.sql)이 있다면, SQL*Plus를 통해 한 번에 실행할 수 있습니다.
-- 실행 예시 (반드시 @를 붙여야 파일로 인식합니다)
SQL> @C:\Users\st\school.sql
스크립트가 정상적으로 돌면 "테이블이 생성되었습니다", "1 행이 작성되었습니다"라는 메시지가 출력되며 세팅이 완료됩니다.
원격지 서버에 있는 DB에 접속하려면 오라클의 전화번호부 역할을 하는 tnsnames.ora 파일이 필요합니다.
가장 확실한 적용 방법은 윈도우 시스템 환경 변수에 파일의 위치를 직접 선언해 주는 것입니다.
TNS 설정이 끝났다면, 내가 설정한 별칭(Alias)으로 핑이 제대로 나가는지 테스트해야 합니다.
C:\> tnsping dal
오라클이 tnsnames.ora 파일을 찾지 못했거나, 파일 안의 문법이 틀린 경우입니다. TNS_ADMIN 환경 변수 경로에 오타가 없는지, CMD 창을 새로 띄웠는지 다시 확인합니다.
파일은 정상적으로 찾았고 리눅스 서버까지 도달했으나, 리눅스 서버의 방화벽이 오라클 포트(1521)를 막고 있는 상황입니다. 리눅스 서버 터미널로 접속하여 root 권한으로 방화벽을 열어주어야 합니다.
# 리눅스 터미널 (root 계정)
$ firewall-cmd --add-port=1521/tcp --permanent
$ firewall-cmd --reload
만약 방화벽을 열 권한이 없는 실습 서버라면, 관리자나 강사님께 "1521 포트 개방"을 요청해야 합니다.
방화벽이 정상적으로 열려있고 리스너가 살아있다면, 아래와 같이 밀리초 단위의 응답 속도와 함께 OK 사인이 떨어집니다.
확인(30밀리초) -- (영문판: OK (30 msec))
tnsping 테스트가 성공했다면 고속도로가 뚫린 것입니다! 윈도우 CMD 창에서 바로 접속을 시도합니다.
C:\> sqlplus 계정명/비밀번호@TNS별칭
-- 예시: sqlplus st06/1234@dal
SQL> 프롬프트가 뜨면 접속 성공입니다. 이제 SELECT * FROM TAB; 명령어를 통해 1번 단계에서 만들어둔 테이블들이 잘 존재하는지 확인하며 자유롭게 SQL 쿼리를 테스트해 보세요!