it-source

Oracle 11g 데이터베이스에 원격으로 연결하는 방법

criticalcode 2023. 6. 30. 22:25
반응형

Oracle 11g 데이터베이스에 원격으로 연결하는 방법

저는 A 컴퓨터에 Oracle 11g XE를 설치했습니다.sql 할 수 .connect username/passwordSQL 지침을 데모 데이터베이스로 보낼 수도 있습니다. Select * from demo_customers;

데이터베이스가 시스템 A의 로컬 호스트에서 실행되고 있습니다.

나는 B 컴퓨터가 로컬 호스트에 있는 A 컴퓨터의 데이터베이스에 연결하기를 원합니다.내가 어떻게 그럴 수 있을까?

수신기를 시작하려면 서버 A에서 lsnrctl 유틸리티를 실행해야 합니다.그런 다음 다음 다음 구문을 사용하여 시스템 B에서 연결합니다.

sqlplus username/password@hostA:1521 /XE

포트 정보는 기본값인 1521이 사용되는 경우 선택 사항입니다.

수신기 구성 설명서는 여기에 있습니다. 원격 연결 설명서는 여기에 있습니다.

오라클 서버를 설치하면 로컬 시스템에서 문제 없이 연결할 수 있습니다.그러나 홈 네트워크의 다른 Mac 노트북에서는 Sql Developer 또는 Sql Plus를 사용하여 연결할 수 없습니다.몇 가지 조사를 한 후에 다음과 같은 추가 단계를 수행해야 한다는 것을 알게 되었습니다.

Oracle net Manager를 사용합니다.수신기를 선택합니다.127.0.0.1 또는 localhost 외에 IP 주소(내 경우 192.168.1.12)를 추가합니다.

그러면 [Oracle Home]\product\11.2.0\dbhome_1\network\admin\listener.ora에 항목이 추가됩니다.

  • 수신기 서비스를 다시 시작합니다.(참고: 저는 작동하기 위해 기계를 한 번 재부팅합니다.)

  • 하여 lsnrctl 확인
    HOST=192.168.1.12가 추가로 표시되고 이를 원격으로 연결하여 작동해야 합니다.

    C:\Windows\시스템32>lsnrctl 상태
    Windows용 : 64비트 LSNRCTL: 11 - on 13 파일 11.2.0.1.0 - 05-SEP-2015 파일 13:51:43
    파일 (c) 1991, 2010, Oracle.무단 전재 금지.
    DESCRIPTION==IPC)(EXTPROC1521))(DESCRIPTION=(ADDRESSION=(PROTOCOL=IPC)(KEY=EXTPROC1521))에 연결 입니다.


    LISTENER
    Windows용 버전 : 64비트 Windows용 버전 TNSLSNR: 11 - 버전 11.2.0.1.0 - 운영용 버전
    05-SEP-2015 ~ 05-SEP-2015 13:45:18
    0시간 6시간 24시간
    레벨 off 꺼짐벨
    ON : OS : 로컬 OS 인증 : 로컬 OS
    OFFSNMP 파일
    매개 변수 은 수신기 매개 변수 파일입니다.
    :\oracle11gr2\product\11.2.0\dbhome_1\network\admin\listener.ora
    d 파일:\oracle11gr2\tnslsnr\eagleii\listener\alert\log.xml
    수신 끝점 요약...
    DESCRIPTION=(PROTOCOL=PIPNAME=\.(DESCRIPTION=(PROTOCOL=ipc)(PIPNAME=\)).pipe\EXTPROC1521ipc)).
    DESCRIPTION=(호스트=127.0.0.1)(PORT=1521)
    DESCRIPTION(주소=(PROTOCOLPROTOCOL=(PROTOCOL=)(HOST=192.168.1.12)(포트=1521)
    서비스 요약...
    서비스 "CLRextProc"에 인스턴스가 하나 있습니다.
    인스턴스 "CLRextProc", 상태 UNKNOWN, 이 서비스에 대한 핸들러가 1개 있습니다...
    서비스 "xe"에 인스턴스가 하나 있습니다.
    인스턴스 "xe"(상태 READY)에 이 서비스에 대한 핸들러가 1개 있습니다...서비스 "xeXDB"에 인스턴스가 하나 있습니다.
    인스턴스 "xe"(상태 READY)에 이 서비스에 대한 핸들러가 1개 있습니다...이 성공적으로 되었습니다.

  • tnsping을 사용하여 연결을 테스트합니다.
    파일이 아닌 IPv4합니다.

C:\Windows\System32>tnsping 192.168.1.12
Windows용 : 64비트 Windows용 TNS Ping 파일: 11 - 05-SEP-2015 14 파일: 11.2.0.1.0 - 05-SEP-2015 14:09:11 파일:09:11
파일 (c) 1997, 2010, Oracle.무단 전재 금지.
사용된 매개 변수 파일:
D:\oracle11gr2\product\11.2.0\dbhome_1\net\net\admin\sqlnet.ora

하여 별칭 EZCONNECT를 했습니다.
DESCRIPTION==(=)), =(PROTOCOL DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(주소=(HOST=192.168.1.12)(PORT=1521)에 연락하려고 .
확인(0msec)

먼저 클라이언트 연결 요청을 수신하는 데이터베이스 서버(컴퓨터 A)의 수신기가 실행 중인지 확인합니다.실행하려면 실행lsnrctl status지휘권

만약에, 만약에 당신이TNS:no listener메시지(아래 이미지 참조). 수신기 서비스가 실행되고 있지 않음을 나타냅니다.시하려실행을 합니다.lsnrctl start지휘권

enter image description here

둘째, 데이터베이스 작업 및 원격 클라이언트의 연결을 위해 다음 실행 파일을 Windows 방화벽 예외 목록에 추가해야 합니다(이미지 참조).

Oracle_home\bin\oracle.exe - Oracle 데이터베이스 실행 파일

Oracle_home\bin\tnslsnr.exe - Oracle Listener

enter image description here

마지막으로 클라이언트 시스템(컴퓨터 B)에 오라클 인스턴트 클라이언트를 설치하고 다음을 실행합니다.

sqlplus user/password@computerA:port/XE

컴퓨터에서는 아무 것도 할 필요가 없기 때문에 인터넷 액세스가 아닌 경우 두 시스템이 동일한 네트워크에 있는지 확인하기만 하면 됩니다(이 경우 정적 IP가 필요함).이제 컴퓨터 b에서 시작 메뉴에서 오라클 폴더 아래의 구성 찾기를 클릭합니다. 창 팝업이 나타나면 해당 폴더 아래의 Net Configuration Assistant를 클릭합니다. 로컬 넷 구성 옵션을 클릭합니다. 세 번째 옵션이어야 합니다.

이제 추가를 클릭하고 다음 화면에서 다음을 클릭합니다. 여기서 서비스 이름을 묻습니다. 여기서 컴퓨터 A의 오라클 글로벌 데이터베이스 이름을 추가해야 합니다. 이제 다음 화면을 클릭하십시오. 일반적으로 호스트 이름에 tcp 클릭 다음에 컴퓨터 A의 이름을 입력하십시오. 내 컴퓨터 속성에서 찾을 수 있습니다.컴퓨터 A에서 변경할 때까지 다음 포트 변경 안 함을 클릭하고 여기서 연결 작동 여부를 확인할 수 있는 연결 테스트를 선택한 후 오류가 사용자 이름과 암호가 올바르지 않으면 로그인 자격 증명 단추를 클릭하고 올바른 사용자 이름과 암호를 입력합니다.컴퓨터에 연결할 수 없다는 메시지가 표시되면 1521 포트에 대한 방화벽에서 예외를 추가하거나 컴퓨터 A에서 방화벽을 사용하지 않도록 설정해야 합니다.

먼저, 컴퓨터 AND B의 정적 IP 주소를 추가해야 합니다.예를 들어 컴퓨터 A(172.20.14.13)와 B(172.20.14.78)를 예로 들 수 있습니다.

두 번째. Net Manager가 있는 컴퓨터 A에서 수신기에 새 주소(172.20.14.13)를 추가하거나 수신기에 새 레코드를 수동으로 추가합니다.ora

# listener.ora Network Configuration File: E:\app\user\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = E:\app\user\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:E:\app\user\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.14.13)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = E:\app\user

세 번째. Net Manager를 사용하여 IP 주소 컴퓨터 B(172.20.14.78)로 서비스 명명을 만들거나 수동으로 새 레코드를 tnsnames.ora에 추가합니다.

# tnsnames.ora Network Configuration File: E:\app\user\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

ALINADB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = alinadb)
    )
  )

LISTENER_ALINADB =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


LOCAL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.14.13)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = alinadb)
    )
  )

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.14.78)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

번째. 컴퓨터 B(172.20.14.78)에 win64_11gR2_client를 설치합니다(예를 들어 Windows 10 Pro 64비트에서 사용하는 경우).

5. Net Configuration Assistant 수신기(localhost)로 만들거나 수신기에 수동으로 레코드를 추가합니다.ora

# listener.ora Network Configuration File: F:\app\alinasoft\product\11.2.0\client_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = myserver)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
      )

    ADR_BASE_LISTENER = F:\app\alinasoft

6. Net Manager를 사용하여 IP 주소 컴퓨터 A(172.20.14.13)로 서비스 명명을 만들거나 수동으로 새 레코드를 tnsnames.ora에 추가합니다.

SERVER-DB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.14.13)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = alinadb)
    )
  )

원격 클라이언트에서 데이터베이스 작업 및 연결을 위해 7개(컴퓨터 A - (172.20.14.13), 다음 실행 파일을 윈도우즈 방화벽 예외 목록에 추가해야 합니다. (이미지 참조) Oracle_home\bin\oracle.exe - Oracle Database 실행 파일 Oracle_home\bin\tnsnr.exe - Oracle Listener

8 Oracle Enterprise Manager용 포트 1158(컴퓨터 A - (172.20.14.13))에 대한 연결 허용(https://172.20.14.13:1158/em/console/logon/logon)

아홉 번째 포트 1521(입력 및 출력)에 대한 연결 허용(컴퓨터 A - (172.20.14.17)

10번째 컴퓨터 B 172.20.14.78 sqlplus /NLOG CONNECT 시스템/oracle@//172.20.14.13:1521/alinadb

Toad를 사용하는 경우, 저의 경우는

# . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh  

#  sqlplus /nolog  

SQL> connect sys/password as sysdba                                           

SQL>  EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);  

SQL> CONNECT sys/password@hostname:1521 as sysdba

언급URL : https://stackoverflow.com/questions/8108320/how-to-connect-to-oracle-11g-database-remotely

반응형