다음을 통해 공유


Oracle 게시자 구성

적용 대상: SQL Server

Oracle 게시자에서의 게시는 일반 스냅샷 및 트랜잭션 게시가 만들어지는 것과 같은 방식으로 만들어지지만 Oracle 게시자에서 게시를 만들려면 먼저 다음 단계(1, 3, 4단계는 이 항목에서 자세히 설명)를 수행해야 합니다.

  1. 제공 받은 스크립트를 사용하여 Oracle 데이터베이스 내에서 복제 관리 사용자를 만듭니다.

  2. 게시하는 테이블에 대해서는 1단계에서 만든 Oracle 관리 사용자에게 SELECT 권한을(역할을 사용하지 않고 ) 직접 부여합니다.

  3. Oracle 클라이언트 소프트웨어와 OLE DB 공급자를 SQL Server 배포자에 설치한 다음 SQL Server 인스턴스를 중지했다가 다시 시작합니다. 배포자가 64비트 플랫폼에서 실행되는 경우 64비트 버전의 Oracle OLE DB 공급자를 사용해야 합니다.

  4. SQL Server 배포자에서 Oracle 데이터베이스를 게시자로 구성합니다.

SQL Server는 트랜잭션 및 스냅샷 복제에 대해 다음과 같은 다른 유형의 시나리오를 지원합니다.

  • SQL Server에서 비 SQL Server 구독자에게 데이터 게시

  • Oracle과 오가는 데이터를 게시하는 데는 다음과 같은 제한 사항이 있습니다.

시나리오 2016 이하 2017 이상
Oracle에서 복제 Oracle 10g 이하만 지원 Oracle 10g 이하만 지원
Oracle에 복제 Oracle 12c까지 지원되지 않음

SQL Server가 아닌 구독자에 대한 다른 유형의 복제는 더 이상 사용되지 않습니다. Oracle 게시는 더 이상 사용되지 않습니다. 데이터를 이동하려면 변경 데이터 캡처 및 SSIS를 사용하여 솔루션을 만듭니다.

Oracle 데이터베이스에서 복제할 수 있는 개체 목록은 Oracle 게시자 디자인 고려 사항과 제한 사항을 참조하세요.

참고 항목

게시자 또는 배포자를 사용하도록 설정하고 Oracle 게시물에서 Oracle 게시 또는 구독을 만들려면 sysadmin 고정 서버 역할의 멤버여야 합니다.

Oracle 데이터베이스 내에 복제 관리 사용자 스키마 만들기

복제 에이전트는 Oracle 데이터베이스에 연결하고 만들어야 하는 사용자 스키마의 컨텍스트에서 작업을 수행합니다. 이 스키마에는 몇 가지 사용 권한을 부여해야 하며 이는 다음 섹션에 나열되어 있습니다. 이 스키마는 공용 동의어 MSSQLSERVERDISTRIBUTOR를 제외하고 Oracle 게시자의 Microsoft SQL Server 복제 프로세스에서 만든 모든 개체를 소유합니다. Oracle 데이터베이스에서 만든 개체에 대한 자세한 정보는 Oracle 게시자에서 만든 개체를 참조하세요.

참고 항목

CASCADE 옵션으로 MSSQLSERVERDISTRIBUTOR 공용 동의어와 구성된 Oracle 복제 사용자를 삭제하면 Oracle 게시자에서 모든 복제 개체가 제거됩니다.

Oracle 복제 사용자 스키마를 설정하는 데 도움이 되는 샘플 스크립트가 제공되었습니다. 스크립트는 SQL Server를 설치한 후 다음 디렉터리에서 사용할 수 있습니다. <드라이브>:\\Program Files\Microsoft SQL Server\<InstanceName>\MSSQL\Install\oracleadmin.sql. 이 스크립트에 대한 내용은 Script to Grant Oracle Permissions항목에도 포함되어 있습니다.

DBA 권한이 있는 계정을 사용하여 Oracle 데이터베이스에 연결하고 해당 스크립트를 실행합니다. 이 스크립트는 개체를 만들 기본 테이블스페이스(이 테이블스페이스는 이미 Oracle 데이터베이스에 있어야 함)를 비롯하여 복제 관리 사용자 스키마에 대한 사용자 이름 및 암호를 묻는 메시지를 표시합니다. 개체에 대해 다른 테이블스페이스를 지정하는 방법은 Oracle 테이블스페이스 관리를 참조하세요. 원하는 사용자 이름과 강력한 암호를 선택한 다음 이를 기록해 둡니다. 나중에 Oracle 데이터베이스를 게시자로 구성할 때 이러한 정보를 제공해야 합니다. 스키마는 복제에 필요한 개체에만 사용하는 것이 좋습니다. 이 스키마에 게시할 테이블을 만들지 마세요.

수동으로 사용자 스키마 만들기

복제 관리 사용자 스키마를 수동으로 만드는 경우 스키마에 직접 또는 데이터베이스 역할을 통해 다음 권한을 부여해야 합니다.

  • 공용 동의어 만들기 및 DROP PUBLIC 동의어

  • CREATE PROCEDURE

  • CREATE SEQUENCE

  • CREATE SESSION

또한 역할을 통해서가 아니라 사용자에게 직접 다음 권한을 부여해야 합니다.

  • 아무 트리거나 만듭니다. 스냅샷 및 트랜잭션 복제에만 필요합니다.

  • CREATE TABLE

  • CREATE VIEW

SQL Server 배포자에 Oracle 클라이언트 네트워킹 소프트웨어 설치 및 구성

Oracle 클라이언트 네트워킹 소프트웨어와 Oracle OLE DB 공급자를 SQL Server 배포자에서 설치 및 구성해야 Oracle 게시자에 배포자를 연결할 수 있습니다. 소프트웨어를 설치한 후 소프트웨어가 설치된 폴더에 대한 적절한 권한을 설정한 다음 SQL Server 인스턴스를 중지하고 다시 시작하여 모든 설정이 업데이트되었는지 확인합니다(사용 권한은 나중에 "디렉터리 사용 권한 설정" 섹션에서 설명).

참고 항목

Oracle 클라이언트 네트워킹 소프트웨어는 사용 가능한 최신 버전이어야 합니다. Oracle은 사용자가 최신 버전의 클라이언트 소프트웨어를 설치하는 것이 좋습니다. 따라서 클라이언트 소프트웨어는 데이터베이스 소프트웨어보다 최신 버전인 경우가 많습니다.

클라이언트 네트워킹 소프트웨어를 설치하고 구성할 수 있는 가장 간단한 방법은 Oracle 클라이언트 디스크에 있는 Oracle Universal Installer와 Net Configuration Assistant를 사용하는 것입니다.

Oracle Universal Installer에서 다음 정보를 제공해야 합니다.

정보 설명
Oracle Oracle 소프트웨어 설치를 위한 디렉터리 경로입니다. 기본값(C:\oracle\ora90 또는 이와 유사)을 적용하거나 다른 경로를 입력합니다. Oracle 홈에 대한 자세한 정보는 이 항목의 뒷부분에 있는 "Oracle 홈에 대한 고려 사항" 섹션을 참조하세요.
Oracle 홈 이름 Oracle 홈 경로에 대한 별칭입니다.
설치 유형 Oracle 10g에서 관리자 설치 옵션을 선택합니다.

Oracle Universal Installer가 작업을 완료하면 Net Configuration Assistant를 사용하여 네트워크 연결을 구성합니다. 네트워크 연결을 구성하려면 네 가지 정보를 제공해야 합니다. Oracle 데이터베이스 관리자는 데이터베이스 및 수신기를 설정할 때 네트워크 구성을 구성하며, 이 정보가 없는 경우 이 정보를 제공할 수 있어야 합니다. 다음과 같은 작업을 수행해야 합니다.

작업 설명
데이터베이스 식별 두 가지 방법으로 데이터베이스를 식별할 수 있습니다. 첫 번째 메서드는 ORACLE 시스템 식별자(SID를 사용하며 모든 Oracle 릴리스에서 사용할 수 있습니다. 두 번째 메서드는 Oracle 릴리스 8.0부터 사용할 수 있는 서비스 이름을 사용합니다. 두 방법 모두 데이터베이스를 만들 때 구성된 값을 사용하며 클라이언트 네트워킹 구성은 관리자가 데이터베이스에 대한 수신기를 구성할 때 사용한 것과 동일한 명명 방법을 사용하는 것이 중요합니다.
데이터베이스에 대한 네트워크 별칭 식별 Oracle 데이터베이스에 액세스하는 데 사용되는 네트워크 별칭을 지정해야 합니다. 또한 SQL Server 배포자에서 Oracle 데이터베이스를 게시자로 식별할 때 이 별칭을 제공합니다. 네트워크 별칭은 기본적으로 데이터베이스를 만들 때 구성된 원격 SID 또는 서비스 이름에 대한 포인터입니다. Net Service Name 및 TNS 별칭을 비롯한 여러 Oracle 릴리스 및 제품의 여러 이름에 의해 참조되었습니다. 로그인할 때 SQL*Plus에서 이 별칭을 "호스트 문자열" 매개 변수로 묻는 메시지를 표시합니다.
네트워크 프로토콜 선택 지원하려는 적절한 프로토콜을 선택합니다. 대부분의 애플리케이션은 TCP를 사용합니다.
데이터베이스 수신기를 식별할 호스트 정보 지정 호스트는 Oracle 수신기가 실행 중인 컴퓨터의 이름 또는 DNS 별칭으로, 일반적으로 데이터베이스가 있는 컴퓨터와 동일합니다. 일부 프로토콜의 경우 추가 정보를 제공해야 합니다. 예를 들어 TCP를 선택하는 경우 수신기가 대상 데이터베이스에 대한 연결 요청을 수신 대기하는 포트를 제공해야 합니다. 기본 TCP 구성은 포트 1521을 사용합니다.

디렉터리 사용 권한 설정

배포자에서 SQL Server 서비스가 실행되는 계정에는 Oracle 클라이언트 네트워킹 소프트웨어를 설치할 디렉터리 및 모든 하위 디렉터리에 대한 읽기 및 실행 권한이 부여되어야 합니다.

SQL Server 배포자와 Oracle 게시자 간의 연결 테스트

Net Configuration Assistant가 끝날 무렵, Oracle 게시자에 대한 연결을 테스트하는 옵션이 있을 수 있습니다. 연결을 테스트하기 전에 Oracle 데이터베이스 인스턴스가 온라인이고 Oracle 수신기가 실행 중인지 확인합니다. 테스트가 실패하면 연결하려는 데이터베이스를 담당하는 Oracle DBA에게 문의하십시오.

Oracle 게시자에 성공적으로 연결한 후 만든 복제 관리 사용자 스키마와 연결된 계정 및 암호를 사용하여 데이터베이스에 로그인하려고 합니다. SQL Server 서비스에서 사용하는 것과 동일한 Windows 계정으로 실행하는 동안 다음을 수행해야 합니다.

  1. 시작을 클릭한 다음 실행을 클릭합니다.

  2. cmd을 입력한 다음 확인을 클릭합니다.

  3. 명령 프롬프트에서 다음을 입력합니다.

    sqlplus <UserSchemaLogin>/<UserSchemaPassword>@<NetServiceName>

    예: sqlplus replication/$tr0ngPasswerd@Oracle90Server

  4. 네트워크 구성이 성공했다면 로그인하여 SQL 프롬프트를 볼 수 있습니다.

  5. Oracle 데이터베이스에 연결하는 데 문제가 발생하는 경우 Oracle 게시자 문제 해결에서 "SQL Server 배포자가 Oracle 데이터베이스 인스턴스에 연결할 수 없습니다." 섹션을 참조하세요.

Oracle 홈의 고려 사항

Oracle은 애플리케이션 이진 파일의 병렬 설치를 지원하지만 지정된 시간에 복제에서 하나의 이진 파일 집합만 사용할 수 있습니다. 각 이진 파일 집합은 Oracle 홈과 연결됩니다. 이진 파일이 %ORACLE_HOME%\bin 디렉터리에 있습니다. 복제에서 Oracle 게시자에 연결할 때 올바른 이진 파일 집합(특히 최신 버전의 클라이언트 네트워킹 소프트웨어)이 사용되는지 확인해야 합니다.

배포자에 SQL Server 서비스 및 SQL Server 에이전트 서비스에서 사용하는 계정으로 로그인하여 적절한 환경 변수를 설정합니다. %ORACLE_HOME% 변수는 클라이언트 네트워킹 소프트웨어를 설치할 때 지정한 설치 지점을 참조하도록 설정해야 합니다. %PATH%는 발생한 첫 번째 Oracle 항목으로 %ORACLE_HOME% \bin 디렉터리를 포함해야 합니다. 환경 변수 설정에 대해 자세한 정보는 Windows 설명서를 참조하세요.

SQL Server 배포자에서 Oracle 데이터베이스를 게시자로 구성

Oracle 게시자는 항상 원격 배포자를 사용하므로 의 인스턴스가 Oracle 게시자의 배포자로 동작하도록 구성해야 합니다. Oracle 게시자는 배포자를 하나만 사용할 수 있지만 단일 배포자는 두 개 이상의 Oracle 게시자에 사용될 수 있습니다. 배포자를 구성한 다음에는 SQL Server 배포자에서 SQL Server Management Studio, Transact-SQL 또는 RMO(복제 관리 개체)를 통해 Oracle 데이터베이스 인스턴스를 게시자로 식별합니다. 배포자 구성에 대한 자세한 내용은 배포 구성을 참조하세요.

참고 항목

Oracle 게시자는 SQL Server 배포자의 이름과 동일하거나 동일한 배포자를 사용하는 SQL Server 게시자의 이름과 같은 이름을 가질 수 없습니다.

Oracle 데이터베이스를 게시자로 식별하는 경우 Oracle 게시 옵션인 Complete 또는 Oracle Gateway를 선택해야 합니다. 게시자를 식별한 후에는 게시자를 삭제하고 다시 구성하지 않고는 이 옵션을 변경할 수 없습니다. 완료 옵션은 Oracle 게시에 지원되는 전체 기능 집합을 스냅샷 및 트랜잭션 게시에 제공하도록 설계되었습니다. Oracle Gateway 옵션은 복제가 시스템 간 게이트웨이 역할을 하는 경우 성능을 향상시킬 수 있도록 특정 디자인 최적화를 제공합니다.

SQL Server 배포자에서 Oracle 게시자를 식별한 후 복제는 Oracle 데이터베이스의 TNS 서비스 이름과 동일한 이름의 연결된 서버를 만듭니다. 이 연결된 서버는 복제에서만 사용할 수 있습니다. 연결된 서버 연결을 통해 Oracle 게시자에 연결해야 하는 경우 다른 TNS 서비스 이름을 만든 다음, sp_addlinkedserver(Transact-SQL)를 호출할 때 이 이름을 사용합니다.

Oracle 게시자를 구성하고 게시물을 만들려면 Oracle 데이터베이스에서 게시 만들기를 참조하세요.