Oracle 구독자Oracle Subscribers

SQL Server 2005SQL Server 2005부터 SQL ServerSQL Server 는 Oracle에서 제공하는 Oracle OLE DB 공급자를 통해 Oracle에 밀어넣기 구독을 지원합니다.Beginning with SQL Server 2005SQL Server 2005, SQL ServerSQL Server supports push subscriptions to Oracle through the Oracle OLE DB provider supplied by Oracle.

Oracle 구독자 구성Configuring an Oracle Subscriber

Oracle 구독자를 구성하려면 다음 단계를 수행하십시오.To configure an Oracle Subscriber, follow these steps:

  1. 배포자에서 Oracle 구독자에 연결할 수 있도록 SQL ServerSQL Server 배포자에 Oracle 클라이언트 네트워킹 소프트웨어 및 Oracle OLE DB 공급자를 설치하고 구성합니다.Install and configure Oracle client networking software and the Oracle OLE DB provider on the SQL ServerSQL Server Distributor, so that the Distributor can make connections to the Oracle Subscriber. Oracle 클라이언트 네트워킹 소프트웨어는 사용 가능한 최신 버전이어야 합니다.The Oracle client networking software should be the most recent version available. Oracle에서는 최신 버전의 클라이언트 소프트웨어를 설치할 것을 권장합니다.Oracle recommends that users install the most recent versions of client software. 따라서 클라이언트 소프트웨어 버전이 데이터베이스 소프트웨어 버전보다 최신인 경우가 종종 있습니다.The client software is therefore often a more recent version than the database software. 소프트웨어를 설치하는 가장 간단한 방법은 Oracle 클라이언트 디스크에서 Oracle Universal Installer를 사용하는 것입니다.The most straightforward way to install the software is to use the Oracle Universal Installer on the Oracle Client disk. Oracle Universal Installer에서 다음 정보를 지정합니다.In the Oracle Universal Installer, you will supply the following information:

    정보Information 설명Description
    OracleOracle Home Oracle 소프트웨어 설치를 위한 디렉터리 경로입니다.This is the path to the install directory for the Oracle software. 기본값(C:\oracle\ora90 또는 유사한 경로)을 그대로 적용하거나 다른 경로를 입력합니다.Accept the default (C:\oracle\ora90 or similar) or enter another path. Oracle 홈에 대한 자세한 내용은 이 항목의 뒷부분에 나오는 "Oracle 홈에 대한 고려 사항" 섹션을 참조하십시오.For more information about the Oracle Home, see the section "Considerations for Oracle Home" later in this topic.
    Oracle 홈 이름Oracle home name Oracle 홈 경로에 대한 별칭입니다.An alias for the Oracle home path.
    설치 유형Installation type Oracle 10g에서 런타임 또는 관리자 설치 옵션을 선택합니다.In Oracle 10g, select the Runtime or Administrator installation option.
  2. 구독자의 TNS 이름을 만듭니다.Create a TNS name for the Subscriber. TNS(Transparent Network Substrate)는 Oracle 데이터베이스에서 사용되는 통신 계층입니다.TNS (Transparent Network Substrate) is a communication layer used by Oracle databases. TNS 서비스 이름은 네트워크상에서 Oracle 데이터베이스 인스턴스를 식별하는 이름입니다.The TNS Service Name is the name by which an Oracle database instance is known on a network. Oracle 데이터베이스에 대한 연결을 구성할 때 TNS 서비스 이름을 지정합니다.You assign a TNS Service Name when you configure connectivity to the Oracle database. 복제에서는 TNS 서비스 이름을 사용하여 구독자를 식별하고 연결을 설정합니다.Replication uses the TNS Service name to identify the Subscriber and to establish connections.

    Oracle Universal Installer가 작업을 완료하면 Net Configuration Assistant를 사용하여 네트워크 연결을 구성합니다.After the Oracle Universal Installer is complete, use the Net Configuration Assistant to configure network connectivity. 네트워크 연결을 구성하려면 다음 4가지 정보를 입력해야 합니다.You must supply four pieces of information to configure network connectivity. Oracle 데이터베이스 관리자는 데이터베이스와 수신기를 설정할 때 네트워크를 구성하며, 필요한 경우 이 정보를 사용자에게 제공할 수 있어야 합니다.The Oracle database administrator configures the network configuration when setting up the database and listener and should be able to provide this information if you do not have it. 다음과 같은 작업을 수행해야 합니다.You must do the following:

    작업Action 설명Description
    데이터베이스 식별Identify the database 두 가지 방법으로 데이터베이스를 식별할 수 있습니다.There are two methods for identifying the database. 첫 번째 방법은 Oracle SID(시스템 식별자)를 사용하는 것으로 모든 Oracle 릴리스에서 사용할 수 있습니다.The first method uses the Oracle System Identifier (SID) and is available in every Oracle release. 두 번째 방법은 서비스 이름을 사용하는 것으로 Oracle 릴리스 8.0부터 사용할 수 있습니다.The second method uses the Service Name, which is available starting with Oracle release 8.0. 두 가지 방법 모두 데이터베이스를 만들 때 구성된 값을 사용하며 클라이언트 네트워크 구성에서 데이터베이스를 위한 수신기를 구성할 때 관리자가 사용한 것과 동일한 명명 규칙을 사용하는 것이 중요합니다.Both methods use a value that is configured when the database is created and it is important that the client networking configuration use the same naming method that the administrator used when configuring the listener for the database.
    데이터베이스에 대한 네트워크 별칭 식별Identify a network alias for the database Oracle 데이터베이스 액세스에 사용할 네트워크 별칭을 지정해야 합니다.You must specify a network alias, which is used to access the Oracle database. 네트워크 별칭은 데이터베이스를 만들 때 구성된 원격 SID 또는 서비스 이름을 가리킵니다. 이 별칭은 다양한 Oracle 릴리스 및 제품에서 네트 서비스 이름 및 TNS 별칭 등 여러 이름으로 불립니다.The network alias is essentially a pointer to the remote SID or Service Name that was configured when the database was created; it has been referred to by several names in different Oracle releases and products, including Net Service Name and TNS Alias. SQLPlus의 경우 로그인 시 이 별칭을 "Host String" 매개 변수로 입력하라는 메시지가 나타납니다.SQLPlus prompts for this alias as the "Host String" parameter when you log in.
    네트워크 프로토콜 선택Select the network protocol 지원할 적절한 프로토콜을 선택합니다.Select the appropriate protocols you would like to support. 대부분의 응용 프로그램은 TCP를 사용합니다.Most applications use TCP.
    데이터베이스 수신기를 식별할 호스트 정보 지정Specify the host information to identify the database listener 호스트는 Oracle 수신기가 실행 중인 컴퓨터의 이름이나 DNS 별칭이며, 일반적으로 Oracle 수신기는 데이터베이스가 상주하는 컴퓨터에서 실행됩니다.The host is the name or DNS alias of the computer on which the Oracle listener is running, which is typically the same computer on which the database resides. 일부 프로토콜의 경우 추가 정보를 제공해야 합니다.For some protocols, you must provide additional information. 예를 들어 TCP를 선택할 경우 수신기가 대상 데이터베이스에 대한 연결 요청을 수신하는 포트를 지정해야 합니다.For example, if you select TCP, you must supply the port on which the listener is listening for connection requests to the target database. 기본 TCP 구성은 포트 1521을 사용합니다.The default TCP configuration uses port 1521.
  3. 스냅숏 또는 트랜잭션 게시를 만든 후 SQL ServerSQL Server 이외 구독자에 대해 설정한 다음 구독자에 대한 밀어넣기 구독을 만듭니다.Create a snapshot or transactional publication, enable it for non- SQL ServerSQL Server Subscribers, and then create a push subscription for the Subscriber. 자세한 내용은 Create a Subscription for a Non-SQL Server Subscriber을(를) 참조하세요.For more information, see Create a Subscription for a Non-SQL Server Subscriber.

디렉터리 사용 권한 설정Setting directory permissions

배포자에서 SQL ServerSQL Server 서비스가 실행되는 계정에는 Oracle 클라이언트 네트워킹 소프트웨어가 설치된 디렉터리 및 모든 하위 디렉터리에 대한 읽기 및 실행 권한을 부여해야 합니다.The account under which the SQL ServerSQL Server service on the Distributor runs must be granted read and execute permissions for the directory (and all subdirectories) where the Oracle client networking software is installed.

SQL Server 배포자와 Oracle 게시자 간 연결 테스트Testing connectivity between the SQL Server Distributor and the Oracle Publisher

Net Configuration Assistant의 끝 부분에는 Oracle 구독자에 대한 연결을 테스트하는 옵션이 있습니다.Near the end of the Net Configuration Assistant there might be an option to test the connection to the Oracle Subscriber. 연결을 테스트하기 전에 Oracle 데이터베이스 인스턴스가 온라인 상태인지 Oracle 수신기가 실행 중인지 확인합니다.Before you test the connection, ensure that the Oracle database instance is online and that the Oracle Listener is running. 테스트가 실패하면 연결하려는 데이터베이스를 담당하는 Oracle DBA에게 문의하십시오.If the test is unsuccessful, contact the Oracle DBA responsible for the database to which you are trying to connect.

Oracle 구독자에 성공적으로 연결되면 구독에 대한 배포 에이전트를 구성할 때와 동일한 계정 및 암호를 사용하여 데이터베이스에 로그인합니다.After you have made a successful connection to the Oracle Subscriber, attempt to log in to the database using the same account and password as you configured for the Distribution Agent for the subscription:

  1. 시작을 클릭한 다음 실행을 클릭합니다.Click Start, and then click Run.

  2. cmd 를 입력한 다음 확인을 클릭합니다.Type cmd and click OK.

  3. 명령 프롬프트에서 다음을 입력합니다.At the command prompt, type:

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

    예: sqlplus replication/$tr0ngPasswerd@Oracle90ServerFor example: sqlplus replication/$tr0ngPasswerd@Oracle90Server

  4. 네트워크 구성이 성공했다면 로그인하여 SQL 프롬프트를 볼 수 있습니다.If the networking configuration was successful, the login will succeed and you will see a SQL prompt.

Oracle 홈에 대한 고려 사항Considerations for Oracle Home

Oracle은 응용 프로그램 이진 파일을 함께 설치하도록 지원하지만 복제에서는 특정 시간에 하나의 이진 파일 집합만 사용할 수 있습니다.Oracle supports side-by-side installation of application binaries, but only one set of binaries can be used by replication at a given time. 각 이진 파일 집합은 Oracle 홈과 연결되어 있으며 이진 파일은 %ORACLE_HOME%\bin 디렉터리에 있습니다.Each set of binaries is associated with an Oracle Home; the binaries are in the directory %ORACLE_HOME%\bin. 복제에서 Oracle 구독자에 연결할 때 올바른 이진 집합(특히 최신 버전의 클라이언트 네트워킹 소프트웨어)을 사용해야 합니다.You must ensure that the correct set of binaries (specifically the latest version of the client networking software) is used when replication makes connections to the Oracle Subscriber.

배포자에 SQL ServerSQL Server 서비스 및 SQL ServerSQL Server 에이전트 서비스에서 사용하는 계정으로 로그인하여 적절한 환경 변수를 설정합니다.Log into the Distributor with the accounts used by the SQL ServerSQL Server service and the SQL ServerSQL Server Agent service and set the appropriate environment variables. %ORACLE_HOME% 변수는 클라이언트 네트워킹 소프트웨어 설치 시 지정한 설치 지점을 참조할 수 있도록 설정되어야 합니다.The %ORACLE_HOME% variable should be set to refer to the installation point you specified when you installed the client networking software. %PATH%는 %ORACLE_HOME% \bin 디렉터리를 처음 검색되는 Oracle 항목으로 포함해야 합니다.The %PATH% must include the %ORACLE_HOME% \bin directory as the first Oracle entry that is encountered. 환경 변수 설정 방법은 Windows 설명서를 참조하십시오.For information about setting environment variables, see the Windows documentation.

참고

SQL ServerSQL Server 배포자에 Oracle 홈이 두 개 이상 있는 경우 배포 에이전트에서 최신 Oracle OLE DB 공급자를 사용 중인지 확인합니다.If you have more than one Oracle home on the SQL ServerSQL Server Distributor, ensure that the Distribution Agent is using the most recent Oracle OLE DB provider. SQL ServerSQL Server 배포자의 클라이언트 구성 요소를 업데이트했을 때 Oracle에서 OLE DB 공급자를 기본적으로 업데이트하지 않는 경우가 있습니다.In some cases, Oracle does not update the OLE DB provider by default when you update the client components on the SQL ServerSQL Server Distributor. 이 경우 이전 OLE DB 공급자를 제거하고 최신 OLE DB 공급자를 설치합니다.Uninstall the old OLE DB provider and install the latest OLE DB provider. 공급자 설치 및 제거 방법은 Oracle 설명서를 참조하십시오.For more information about installing and uninstalling the provider, see the Oracle documentation.

Oracle 구독자에 대한 고려 사항Considerations for Oracle Subscribers

Oracle 구독자로 복제하는 경우 Non-SQL Server Subscribers항목에서 다루는 고려 사항 외에 다음 문제도 고려해 보십시오.In addition to the considerations covered in the topic Non-SQL Server Subscribers, consider the following issues when replicating to Oracle Subscribers:

  • Oracle에서는 빈 문자열과 NULL 값을 모두 NULL로 처리합니다.Oracle treats both empty strings and NULL values as NULL. SQL ServerSQL Server 열을 NOT NULL로 정의한 다음 해당 열을 Oracle 구독자로 복제하는 경우 이것은 중요한 문제입니다.This is important if you define a SQL ServerSQL Server column as NOT NULL, and are replicating the column to an Oracle Subscriber. 변경 내용을 Oracle 구독자에 적용할 때 오류가 발생하지 않게 하려면 다음 중 하나를 수행해야 합니다.To avoid failures when applying changes to the Oracle Subscriber, you must do one of the following:

    • 빈 문자열이 게시된 테이블에 열 값으로 삽입되지 않았는지 확인합니다.Ensure that empty strings are not inserted into the published table as column values.

    • 오류에 대한 알림을 배포 에이전트 기록 로그에 받은 다음 계속 처리할 수 있으면 배포 에이전트에 –SkipErrors 매개 변수를 사용합니다.Use the –SkipErrors parameter for the Distribution Agent if it is acceptable to be notified of failures in the Distribution Agent history log and to continue processing. Oracle 오류 코드 1400(-SkipErrors1400)을 지정합니다.Specify the Oracle error code 1400 (-SkipErrors1400).

    • 빈 문자열과 연결된 가능성이 있는 모든 문자 열에서 NOT NULL 특성을 제거하여 생성된 테이블 생성 스크립트를 수정하고 @creation_script sp_addarticle 매개 변수를 사용하여 수정된 스크립트를 아티클에 대한 사용자 지정 생성 스크립트로 제공합니다.Modify the generated create table script, removing the NOT NULL attribute from any character columns that may have associated empty strings, and supply the modified script as a custom create script for the article using the @creation_script parameter of sp_addarticle.

  • Oracle 구독자에서는 0x4071 스키마 옵션을 지원합니다.Oracle Subscribers support a schema option of 0x4071. 스키마 옵션에 대한 자세한 내용은 sp_addarticle(Transact-SQL)을 참조하세요.For more information about schema options, see sp_addarticle (Transact-SQL).

SQL Server에서 Oracle로 데이터 형식 매핑Mapping Data Types from SQL Server to Oracle

다음 표에서는 Oracle을 실행 중인 구독자로 데이터를 복제할 때 사용되는 데이터 형식 매핑을 보여 줍니다.The following table shows the data type mappings that are used when data is replicated to a Subscriber running Oracle.

SQL Server 데이터 형식SQL Server data type Oracle 데이터 형식Oracle Data type
bigintbigint NUMBER(19,0)NUMBER(19,0)
binary(1-2000)binary(1-2000) RAW(1-2000)RAW(1-2000)
binary(2001-8000)binary(2001-8000) BLOBBLOB
bitbit NUMBER(1)NUMBER(1)
char(1-2000)char(1-2000) CHAR(1-2000)CHAR(1-2000)
char(2001-4000)char(2001-4000) VARCHAR2(2001-4000)VARCHAR2(2001-4000)
char(4001-8000)char(4001-8000) CLOBCLOB
datedate DATEDATE
datetimedatetime DATEDATE
datetime2(0-7)datetime2(0-7) TIMESTAMP(7)(Oracle 9 및 Oracle 10), VARCHAR(27)(Oracle 8)TIMESTAMP(7) for Oracle 9 and Oracle 10; VARCHAR(27) for Oracle 8
datetimeoffset(0-7)datetimeoffset(0-7) TIMESTAMP(7) WITH TIME ZONE(Oracle 9 및 Oracle 10), VARCHAR(34)(Oracle 8)TIMESTAMP(7) WITH TIME ZONE for Oracle 9 and Oracle 10; VARCHAR(34) for Oracle 8
decimal(1-38, 0-38)decimal(1-38, 0-38) NUMBER(1-38, 0-38)NUMBER(1-38, 0-38)
float(53)float(53) FLOATFLOAT
floatfloat FLOATFLOAT
geographygeography BLOBBLOB
geometrygeometry BLOBBLOB
hierarchyidhierarchyid BLOBBLOB
imageimage BLOBBLOB
intint NUMBER(10,0)NUMBER(10,0)
moneymoney NUMBER(19,4)NUMBER(19,4)
nchar(1-1000)nchar(1-1000) CHAR(1-1000)CHAR(1-1000)
nchar(1001-4000)nchar(1001-4000) NCLOBNCLOB
ntextntext NCLOBNCLOB
numeric(1-38, 0-38)numeric(1-38, 0-38) NUMBER(1-38, 0-38)NUMBER(1-38, 0-38)
nvarchar(1-1000)nvarchar(1-1000) VARCHAR2(1-2000)VARCHAR2(1-2000)
nvarchar(1001-4000)nvarchar(1001-4000) NCLOBNCLOB
nvarchar(max)nvarchar(max) NCLOBNCLOB
realreal REALREAL
smalldatetimesmalldatetime DATEDATE
smallintsmallint NUMBER(5,0)NUMBER(5,0)
smallmoneysmallmoney NUMBER(10,4)NUMBER(10,4)
sql_variantsql_variant 해당 사항 없음N/A
sysnamesysname VARCHAR2(128)VARCHAR2(128)
texttext CLOBCLOB
time(0-7)time(0-7) VARCHAR(16)VARCHAR(16)
timestamptimestamp RAW (8)RAW(8)
tinyinttinyint NUMBER(3,0)NUMBER(3,0)
uniqueidentifieruniqueidentifier CHAR (38)CHAR(38)
varbinary(1-2000)varbinary(1-2000) RAW(1-2000)RAW(1-2000)
varbinary(2001-8000)varbinary(2001-8000) BLOBBLOB
varchar(1-4000)varchar(1-4000) VARCHAR2(1-4000)VARCHAR2(1-4000)
varchar(4001-8000)varchar(4001-8000) CLOBCLOB
varbinary(max)varbinary(max) BLOBBLOB
varchar(max)varchar(max) CLOBCLOB
xmlxml NCLOBNCLOB

관련 항목:See Also

Non-SQL Server Subscribers Non-SQL Server Subscribers
게시 구독 Subscribe to Publications