Oracle 데이터베이스에서 게시 만들기Create a Publication from an Oracle Database

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse 이 항목에서는 SQL Server Management StudioSQL Server Management Studio 또는 Transact-SQLTransact-SQL을 사용하여 SQL Server 2017SQL Server 2017의 Oracle 데이터베이스에서 구독을 만드는 방법에 대해 설명합니다. This topic describes how to create a publication from an Oracle database in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

항목 내용In This Topic

시작하기 전 주의 사항Before You Begin

필수 구성 요소Prerequisites

  • 게시를 만들기 전에 MicrosoftMicrosoft SQL ServerSQL Server 배포자에 Oracle 소프트웨어를 설치하고 Oracle 데이터베이스를 구성해야 합니다.Before creating a publication, you must install Oracle software on the MicrosoftMicrosoft SQL ServerSQL Server Distributor, and you must configure the Oracle database. 자세한 내용은 Oracle 게시자 구성을 참조하세요.For more information, see Configure an Oracle Publisher.

SQL Server Management Studio 사용Using SQL Server Management Studio

새 게시 마법사를 사용하여 Oracle 데이터베이스에서 스냅숏 또는 트랜잭션 게시를 만듭니다.Create a snapshot or transactional publication from an Oracle Database with the New Publication Wizard.

처음으로 Oracle 데이터베이스에서 게시를 만들 때는 SQL ServerSQL Server 배포자에서 Oracle 게시자를 식별해야 합니다. 같은 데이터베이스의 후속 게시에 대해서는 이 작업을 수행할 필요가 없습니다.The first time you create a publication from an Oracle database, you must identify the Oracle Publisher at the SQL ServerSQL Server Distributor (you do not need to do this for subsequent publications from the same database.). 새 게시 마법사나 배포자 속성 - <배포자> 대화 상자에서 Oracle 게시자를 식별할 수 있습니다. 이 항목에서는 배포자 속성 - <배포자> 대화 상자를 보여 줍니다.Identifying the Oracle Publisher can be accomplished from the New Publication Wizard or the Distributor Properties - <Distributor> dialog box; this topic shows the Distributor Properties - <Distributor> dialog box.

SQL Server 배포자에서 Oracle 게시자를 식별하려면To identify the Oracle Publisher at the SQL Server Distributor

  1. SQL Server Management StudioSQL Server Management Studio에서 Oracle 게시자가 배포자로 사용할 SQL ServerSQL Server 인스턴스에 연결한 다음 해당 서버 노드를 확장합니다.In SQL Server Management StudioSQL Server Management Studio, connect to the SQL ServerSQL Server instance that the Oracle Publisher will use as a Distributor, and then expand the server node.

  2. 복제 폴더를 마우스 오른쪽 단추로 클릭한 다음 배포자 속성을 클릭합니다.Right-click the Replication folder, and then click Distributor Properties.

  3. 배포자 속성 - <배포자> 대화 상자의 게시자 페이지에서 추가를 클릭하고 Oracle 게시자 추가를 클릭합니다.On the Publishers page of the Distributor Properties - <Distributor> dialog box, click Add, and then click Add Oracle Publisher.

  4. 서버에 연결 대화 상자에서 옵션 단추를 클릭합니다.In the Connect to Server dialog box, click the Options button.

  5. 로그인 탭에서 다음을 수행하세요.On the Login tab:

    1. Oracle 데이터베이스 인스턴스 이름을 입력하거나 서버 인스턴스 콤보 상자에서 더 찾아보기 를 선택합니다.Enter the Oracle database instance name or select Browse for more in the Server instance combo box.

    2. Oracle 표준 인증 (권장) 또는 Windows 인증을 선택합니다.Select Oracle Standard Authentication (recommended) or Windows Authentication.

      Windows 인증을 선택하면 Windows 자격 증명을 사용한 연결을 허용하도록 Oracle 서버를 구성해야 하며(자세한 내용은 Oracle 설명서 참조), 복제 관리 사용자 스키마에 대해 지정한 MicrosoftMicrosoft Windows 계정과 동일한 계정으로 로그인해야 합니다.If you select Windows Authentication: the Oracle server must be configured to allow connections using Windows credentials (for more information, see the Oracle documentation); and you must be currently logged in with the same MicrosoftMicrosoft Windows account you specified for the replication administrative user schema.

    3. Oracle 표준 인증을 선택하는 경우에는 구성하는 동안 Oracle 게시자에 만든 복제 관리 사용자 스키마의 로그인 및 암호를 입력합니다.If you select Oracle Standard Authentication, enter the login and password of the replication administrative user schema you created on the Oracle Publisher during configuration.

  6. 연결 속성 탭에서 게시자 유형으로 게이트웨이 또는 전체를 선택합니다.On the Connection Properties tab, select a Publisher type of Gateway or Complete.

    전체 옵션은 Oracle 게시에 대해 지원되는 완전한 기능 집합을 스냅숏 및 트랜잭션 게시에 제공하도록 디자인되었습니다.The Complete option is designed to provide snapshot and transactional publications with the complete set of supported features for Oracle publishing. 게이트웨이 옵션은 복제가 시스템 간의 게이트웨이로 사용되는 경우 성능을 향상시킬 수 있도록 특정 디자인 최적화를 제공합니다.The Gateway option provides specific design optimizations to improve performance for cases where replication serves as a gateway between systems. 동일한 테이블을 여러 트랜잭션 게시에 게시하려는 경우에는 게이트웨이 옵션을 사용할 수 없습니다.The Gateway option cannot be used if you plan to publish the same table in multiple transactional publications. 게이트웨이를 선택하면 트랜잭션 게시의 경우 특정 테이블이 한 번만 나타날 수 있지만 스냅숏 게시의 경우에는 이러한 제한이 없습니다.A table can appear in at most one transactional publication and any number of snapshot publications if you select Gateway.

  7. 연결을 클릭하면 Oracle 게시자에 연결되고 이 게시자가 복제용으로 구성됩니다.Click Connect, which creates a connection to the Oracle Publisher and configures it for replication. 서버에 연결 대화 상자가 닫히고 배포자 속성 - <배포자> 대화 상자로 돌아갑니다.The Connect to Server dialog box closes and you are returned to the Distributor Properties - <Distributor> dialog box.

    참고

    네트워크 구성에 문제가 있는 경우 이 시점에 오류가 표시됩니다.If there are any problems with the network configuration, you will receive an error at this point. Oracle 데이터베이스 연결에 문제가 있으면 Troubleshooting Oracle Publishers의 "SQL Server 배포자가 Oracle 데이터베이스 인스턴스에 연결할 수 없습니다" 섹션을 참조하세요.If you experience problems connecting to the Oracle database, see the section "The SQL Server Distributor cannot connect to the Oracle database instance" in Troubleshooting Oracle Publishers.

  8. 확인을 클릭합니다.Click OK.

Oracle 데이터베이스에서 게시를 만들려면To create a publication from an Oracle database

  1. Oracle 게시자가 배포자로 사용할 SQL ServerSQL Server 인스턴스에 연결한 다음 해당 서버 노드를 확장합니다.Connect to the SQL ServerSQL Server instance that the Oracle Publisher will use as a Distributor, and then expand the server node.

  2. 복제 폴더를 확장합니다.Expand the Replication folder.

  3. 로컬 게시 폴더를 마우스 오른쪽 단추로 클릭한 다음 새 Oracle 게시를 클릭합니다.Right-click the Local Publications folder, and then click New Oracle Publication.

  4. 새 게시 마법사의 Oracle 게시자 페이지에서 Oracle 게시자를 선택합니다.On the Oracle Publisher page of the New Publication Wizard, select the Oracle Publisher. Oracle 게시자가 표시되지 않으면 Oracle 게시자 추가를 클릭하여 표시되는 이전 절차의 단계를 따르세요.If the Oracle Publisher is not displayed, click Add Oracle Publisher, which takes you through the steps from the previous procedure.

  5. 게시 유형 페이지에서 스냅숏 게시 또는 트랜잭션 게시를 선택합니다.On the Publication Type page, select Snapshot publication or Transactional publication.

  6. 아티클 페이지에서 게시할 데이터베이스 개체를 선택합니다.On the Articles page, select the database objects you want to publish.

    필요에 따라 테이블을 확장한 다음 하나 이상의 열에 대한 확인란의 선택을 취소하는 방법으로 테이블 열을 필터링하여 제외시킵니다.Optionally, filter out table columns by expanding a table and then clearing the checkbox for one or more columns. 아티클 속성 을 클릭하여 아티클 속성을 보고 수정하며 필요에 따라 대체 데이터 형식 매핑을 지정합니다.Click Article Properties to view and modify article properties and to specify alternative data type mappings if necessary. 데이터 형식 매핑에 대한 자세한 내용은 Oracle 게시자에 대한 데이터 형식 매핑 지정을 참조하세요.For more information about data type mappings, see Specify Data Type Mappings for an Oracle Publisher.

  7. 테이블 행 필터 페이지에서 필요에 따라 필터를 적용하여 하나 이상의 테이블에서 데이터 하위 집합을 게시합니다.On the Filter Table Rows page, optionally apply filters to publish a subset of data from one or more tables.

  8. 모든 개체를 만들고 필요한 모든 데이터를 구독 데이터베이스에 추가한 경우에만 스냅숏 에이전트 페이지에서 즉시 스냅숏 만들기 의 선택을 취소합니다.On the Snapshot Agent page, clear Create a snapshot immediately only if you have created all objects and added all required data in the subscription database.

  9. 에이전트 보안 페이지에서 스냅숏 에이전트(모든 게시의 경우) 및 로그 판독기 에이전트(트랜잭션 게시의 경우)에 대한 자격 증명을 지정합니다.On the Agent Security page, specify credentials for the Snapshot Agent (for all publications) and the Log Reader Agent (for transactional publications). 사용자가 지정한 SQL ServerSQL Server Windows 계정의 컨텍스트를 사용하여 에이전트를 실행하고 MicrosoftMicrosoft 배포자에 연결합니다.The agents run and make connections to the SQL ServerSQL Server Distributor using the context of the MicrosoftMicrosoft Windows account you specify. 에이전트는 복제 관리 사용자 스키마로 지정한 계정의 컨텍스트를 사용하여 Oracle 데이터베이스에 연결합니다.The agents make connections to the Oracle database using the context of the account you specified as the replication administrative user schema. 자세한 내용은 Oracle 게시자 구성을 참조하세요.For more information, see Configure an Oracle Publisher.

    각 에이전트에 필요한 사용 권한에 대한 자세한 내용은 Replication Agent Security ModelReplication Security Best Practices을 참조하세요.For more information about the permissions required by each agent, see Replication Agent Security Model and Replication Security Best Practices.

  10. 마법사 동작 페이지에서 필요에 따라 게시를 스크립팅합니다.On the Wizard Actions page, optionally script the publication. 자세한 내용은 Scripting Replication을 참조하세요.For more information, see Scripting Replication.

  11. 마법사 완료 페이지에서 게시의 이름을 지정합니다.On the Complete the Wizard page, specify a name for the publication.

Transact-SQL 사용Using Transact-SQL

Oracle 데이터베이스를 게시자로 구성한 경우 시스템 저장 프로시저를 사용하여 MicrosoftMicrosoft SQL ServerSQL Server 게시자와 동일한 방법으로 트랜잭션 또는 스냅숏 게시를 만들 수 있습니다.After the Oracle database has been configured as a Publisher, you can create a transactional or snapshot publication the same way that you would from a MicrosoftMicrosoft SQL ServerSQL Server Publisher, by using system stored procedures.

Oracle 게시를 만들려면To create an Oracle Publication

  1. Oracle 데이터베이스를 게시자로 구성합니다.Configure the Oracle database as a Publisher. 자세한 내용은 Oracle 게시자 구성을 참조하세요.For more information, see Configure an Oracle Publisher.

  2. 원격 배포자가 없는 경우 원격 배포자를 구성합니다.If a remote Distributor does not exist, configure the remote Distributor. 자세한 내용은 Configure Publishing and Distribution을 참조하세요.For more information, see Configure Publishing and Distribution.

  3. Oracle 게시자가 사용할 원격 배포자에서 sp_adddistpublisher(Transact-SQL)를 실행합니다.At the remote Distributor that the Oracle Publisher will use, execute sp_adddistpublisher (Transact-SQL). @publisher에 Oracle 데이터베이스 인스턴스의 TNS(Transparent Network Substrate) 이름을 지정하고 @publisher_typeORACLE 또는 ORACLE GATEWAY 값을 지정합니다.Specify the Transparent Network Substrate (TNS) name of the Oracle database instance for @publisher and a value of ORACLE or ORACLE GATEWAY for @publisher_type. Oracle 게시자에서 원격Specify 배포자에 연결할 때 사용하는 보안 모드를 다음 중 하나로 SQL ServerSQL Server 합니다.Specify the security mode used when connecting from the Oracle Publisher to the remote SQL ServerSQL Server Distributor as one of the following:

    • 기본값인 Oracle 표준 인증을 사용하려면 @security_mode@security_mode, @login에 구성 중 Oracle 게시자에 만든 복제 관리 사용자 스키마의 로그인, @password의 Oracle 데이터베이스에서 구독을 만드는 방법에 대해 설명합니다.To use Oracle Standard Authentication, the default, specify a value of 0 for @security_mode, the login of the replication administrative user schema you created on the Oracle Publisher during configuration for @login, and the password for @password.

      중요

      가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다.When possible, prompt users to enter security credentials at runtime. 스크립트 파일에 자격 증명을 저장하는 경우에는 무단으로 액세스하지 못하도록 파일에 보안을 설정해야 합니다.If you store credentials in a script file, you must secure the file to prevent unauthorized access.

    • Windows 자격 증명을 사용하려면 @security_mode@security_mode의 Oracle 데이터베이스에서 구독을 만드는 방법에 대해 설명합니다.To use Windows Authentication, specify a value of 1 for @security_mode.

      참고

      Windows 인증을 사용하려면 Windows 자격 증명을 사용한 연결을 허용하도록 Oracle 서버를 구성해야 하며(자세한 내용은 Oracle 설명서 참조), 복제 관리 사용자 스키마에 대해 지정한 Microsoft Windows 계정과 동일한 계정으로 로그인한 상태여야 합니다.To use Windows Authentication, the Oracle server must be configured to allow connections using Windows credentials (for more information, see the Oracle documentation); and you must be currently logged in with the same Microsoft Windows account you specified for the replication administrative user schema..

  4. 게시 데이터베이스에 대한 로그 판독기 에이전트 작업을 만듭니다.Create a Log Reader Agent job for the publication database.

    • 게시된 데이터베이스에 대한 로그 판독기 에이전트 작업이 존재하는지 확실하지 않으면 배포 데이터베이스의 Oracle 게시자가 사용하는 배포자에서 sp_helplogreader_agent(Transact-SQL)를 실행합니다.If you are unsure whether a Log Reader Agent job exists for a published database, execute sp_helplogreader_agent (Transact-SQL) at the Distributor used by the Oracle Publisher on the distribution database. @publisher에 Oracle 게시자의 이름을 지정합니다.Specify the name of the Oracle Publisher for @publisher. 결과 집합이 비어 있으면 로그 판독기 에이전트 작업을 만들어야 합니다.If the result set is empty, then a Log Reader Agent job must be created.

    • 게시 데이터베이스에 대한 로그 판독기 에이전트 작업이 이미 존재하면 5단계를 실행합니다.If a Log Reader Agent job already exists for the publication database, proceed to step 5.

    • 배포 데이터베이스의 Oracle 게시자가 사용하는 배포자에서 sp_addlogreader_agent(Transact-SQL)를 실행합니다.At the Distributor used by the Oracle Publisher on the distribution database, execute sp_addlogreader_agent (Transact-SQL). 이때 @job_login@job_password의 Oracle 데이터베이스에서 구독을 만드는 방법에 대해 설명합니다.Specify the Windows credentials under which the agent runs for @job_login and @job_password.

      참고

      동일한 테이블을 여러 트랜잭션 게시에 게시하려는 경우에는 @job_login 매개 변수는 3단계에 제공된 로그인과 일치해야 합니다.The @job_login parameter must match the login supplied in step 3. 게시자 보안 정보를 제공하지 마세요.Do not supply publisher security information. 로그 판독기 에이전트는 3단계에 제공된 보안 정보를 사용하여 게시자에 연결합니다.The Log Reader agent connects to the Publisher using the security information provided in step 3.

  5. 배포 데이터베이스의 배포자에서 sp_addpublication(Transact-SQL)을 실행하여 게시를 만듭니다.At the Distributor on the distribution database, execute sp_addpublication (Transact-SQL) to create the publication. 자세한 내용은 Create a Publication을 참조하세요.For more information, see Create a Publication.

  6. 배포 데이터베이스의 배포자에서 sp_addpublication_snapshot(Transact-SQL)을 실행합니다.At the Distributor on the distribution database, execute sp_addpublication_snapshot (Transact-SQL). @publication에 4단계에서 사용된 게시 이름을, @job_name@password에 스냅숏 에이전트를 실행하는 데 사용되는 Windows 자격 증명을 지정합니다.Specify the publication name used in step 4 for @publication and the Windows credentials under which the Snapshot Agent runs for @job_name and @password. 게시자에 연결할 때 Oracle 표준 인증을 사용하려면 @security_mode@publisher_security_mode 을 지정하고 @publisher_login@publisher_password의 Oracle 데이터베이스에서 구독을 만드는 방법에 대해 설명합니다.To use Oracle Standard Authentication when connecting to the Publisher, you must also specify a value of 0 for @publisher_security_mode and the Oracle login information for @publisher_login and @publisher_password. 이렇게 하면 게시에 대해 스냅숏 에이전트 작업이 만들어집니다.This creates a Snapshot Agent job for the publication.

참고 항목See Also

Oracle 게시자 구성 Configure an Oracle Publisher
데이터 및 데이터베이스 개체 게시 Publish Data and Database Objects
Oracle 게시자에 대한 트랜잭션 집합 작업 구성(복제 Transact-SQL 프로그래밍) Configure the Transaction Set Job for an Oracle Publisher (Replication Transact-SQL Programming)
Oracle 게시 개요 Oracle Publishing Overview
Script to Grant Oracle PermissionsScript to Grant Oracle Permissions