Oracle Data Guard용 Sun Cluster Geographic Edition 데이터 복제 안내서

Procedure대기 데이터베이스 수신기 및 이름 지정 서비스 구성 방법

  1. Oracle Data Guard에 대한 정적 수신기를 작성합니다.


    주 –

    모든 cluster-newyork 노드에서 이 단계를 수행합니다.


    Oracle Data Guard를 사용하려면 정적 수신기를 구성해야 합니다. 다음 예에서는 ${ORACLE_HOME}=/oracle/oracle/product/10.2.0/db_1을 사용하고 ${ORACLE_HOME}/network/admin/listener.ora 파일에서 정적 수신기 항목을 추가할 위치를 보여줍니다. SID_LIST_LISTENER_PHYS-NEWYORK-1(SID_NAME = salesdr1) 줄은 노드마다 다른 반면, (GLOBAL_DBNAME=salesdr_DGMGRL)cluster-paris에서 다릅니다.


    oracle (phys-newyork-1)$ cat ${ORACLE_HOME}/network/admin/listener.ora
    SID_LIST_LISTENER_PHYS-NEWYORK-1 =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = /oracle/oracle/product/10.2.0/db_1)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (SID_NAME = salesdr1)
          (GLOBAL_DBNAME=salesdr_DGMGRL)
          (ORACLE_HOME = /oracle/oracle/product/10.2.0/db_1)
        )
      )
    oracle (phys-newyork-1)$
  2. 수신기를 재시작합니다.

    정적 항목을 사용 가능하게 하려면 cluster-newyork의 각 노드에서 Oracle 수신기 프로세스를 재시작합니다.


    oracle (phys-newyork-1)$ lsnrctl stop LISTENER_PHYS_PHYS-NEWYORK-1
    LSNRCTL for Solaris: Version 10.2.0.3.0 - Production on 29-OCT-2008 02:04:56
    
    Copyright (c) 1991, 2006, Oracle.  All rights reserved.
    
    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
    The command completed successfully
    oracle$ lsnrctl start LISTENER_PHYS_PHYS-NEWYORK-1
    LSNRCTL for Solaris: Version 10.2.0.3.0 - Production on 29-OCT-2008 02:05:04
    
    Copyright (c) 1991, 2006, Oracle.  All rights reserved.
    
    Starting /oracle/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
    
    TNSLSNR for Solaris: Version 10.2.0.3.0 - Production
    …
    Services Summary...
    Service "PLSExtProc" has 1 instance(s).
      Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "salesdr" has 2 instance(s).
      Instance "salesdr1", status READY, has 2 handler(s) for this service...
      Instance "salesdr2", status READY, has 1 handler(s) for this service...
    Service "salesdrXDB" has 2 instance(s).
      Instance "salesdr1", status READY, has 1 handler(s) for this service...
      Instance "salesdr2", status READY, has 1 handler(s) for this service...
    Service "salesdr_DGB" has 2 instance(s).
      Instance "salesdr1", status READY, has 2 handler(s) for this service...
      Instance "salesdr2", status READY, has 1 handler(s) for this service...
    Service "salesdr_DGMGRL" has 1 instance(s).
      Instance "salesdr1", status UNKNOWN, has 1 handler(s) for this service...
    Service "salesdr_XPT" has 2 instance(s).
      Instance "salesdr1", status READY, has 2 handler(s) for this service...
      Instance "salesdr2", status READY, has 1 handler(s) for this service...
    The command completed successfully
  3. 모든 데이터베이스 인스턴스에 대한 네트워크 서비스 이름 지정 항목을 확인합니다.

    사용 중인 이름 지정 서비스 방법(tnsnames.ora 또는 디렉토리 서비스)에 모든 Oracle 데이터베이스 인스턴스에 대해 정의된 항목이 있는지 확인합니다. 다음 예에서는 cluster-newyork 클러스터에만 포함하는 항목 유형을 보여줍니다. 이 예에서 salesdr 데이터베이스는 salesdr의 서비스 이름을 수신기에 동적으로 등록합니다(데이터베이스 service_names 초기화 매개 변수 참조).


    oracle (phys-newyork-1)$ cat ${ORACLE_HOME}/network/admin/tnsnames.ora
    SALESDR1-SVC =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = phys-newyork-1-crs)(PORT = 1521)
          (SEND_BUF_SIZE = 65535)(RECV_BUF_SIZE = 65535))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = salesdr)
          (INSTANCE_NAME = salesdr1)
        )
      )
    
    SALESDR2-SVC =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = phys-newyork-2>-crs)(PORT = 1521)
          (SEND_BUF_SIZE = 65535)(RECV_BUF_SIZE = 65535))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = salesdr)
          (INSTANCE_NAME = salesdr2)
        )
      )
    
    SALESDR-SVC =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = phys-newyork-1-crs)(PORT = 1521)
          (SEND_BUF_SIZE = 65535)(RECV_BUF_SIZE = 65535))
          (ADDRESS = (PROTOCOL = TCP)(HOST = phys-newyork-2-crs)(PORT = 1521)
          (SEND_BUF_SIZE = 65535)(RECV_BUF_SIZE = 65535))
          (LOAD_BALANCE = yes)
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = salesdr)
        )
      )
    
    LISTENERS_SALESDR =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = phys-newyork-1-crs)(PORT = 1521))
        (ADDRESS = (PROTOCOL = TCP)(HOST = phys-newyork-2-crs)(PORT = 1521))
      )
  4. 대기 수신기 listener.oratnsnames.ora 파일에 올바른 항목이 있는지 확인하고 수신기 프로세스를 재시작합니다.

    이러한 파일에 기본 및 대기 클러스터 데이터베이스 서비스에 대한 이름 지정 서비스 항목과 정적 Oracle Data Guard 수신기 항목이 포함되어 있는지 확인합니다. Oracle 디렉토리 이름 지정 서비스 조회를 사용하지 않는 경우 tnsnames.ora에 항목을 포함해야 합니다.


    oracle (phys-newyork-1)$ lsnrctl stop LISTENER_PHYS-NEWYORK-1
    LSNRCTL for Solaris: Version 10.2.0.3.0 - Production on 29-OCT-2008 02:04:56
    
    Copyright (c) 1991, 2006, Oracle.  All rights reserved.
    
    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
    The command completed successfully
    oracle$ lsnrctl start LISTENER_PHYS-NEWYORK-1
    LSNRCTL for Solaris: Version 10.2.0.3.0 - Production on 29-OCT-2008 02:05:04
    
    Copyright (c) 1991, 2006, Oracle.  All rights reserved.
    
    Starting /oracle/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
    
    TNSLSNR for Solaris: Version 10.2.0.3.0 - Production
    …
    Services Summary...
    Service "PLSExtProc" has 1 instance(s).
      Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "salesdr_DGMGRL" has 1 instance(s).
      Instance "salesdr1", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully