Oracle パブリッシャーのトラブルシューティングTroubleshooting Oracle Publishers

適用対象:○SQL Server XAzure SQL DatabaseXAzure SQL Data Warehouse XParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

このトピックでは、Oracle パブリッシャーを構成および使用する際に発生する可能性のあるいくつかの問題を示します。This topic lists a number of issues that might arise when configuring and using an Oracle Publisher.

Oracle クライアントおよびネットワーキング ソフトウェアに関連するエラーが発生するAn Error Is Raised Regarding Oracle Client and Networking Software

ディストリビューター上の MicrosoftMicrosoft SQL ServerSQL Server が実行されるアカウントには、Oracle クライアント ネットワーク ソフトウェアがインストールされているディレクトリ (およびすべてのサブディレクトリ) に対する読み取り権限と実行権限を付与する必要があります。The account under which MicrosoftMicrosoft SQL ServerSQL Server runs on the Distributor must be granted read and execute permissions for the directory (and all subdirectories) in which the Oracle client networking software is installed. これらの権限が付与されていなかったり、Oracle クライアント コンポーネントが正しくインストールされていない場合は、次のエラー メッセージが表示されます。If the permissions are not granted or the Oracle client components are not installed properly, you will receive the following error message:

"[Microsoft OLE DB Provider for Oracle] によるサーバーへの接続に失敗しました。"Connection to server failed with [Microsoft OLE DB Provider for Oracle]. Oracle クライアントおよびネットワーク コンポーネントが見つかりません。Oracle client and networking components were not found. これらのコンポーネントは、Oracle Corporation によって提供され、Oracle バージョン 7.3.3 以降のクライアント ソフトウェエア インストールの一部です。These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation. これらのコンポーネントがインストールされるまで、プロバイダーは機能しません。"Provider is unable to function until these components are installed."

適切な Oracle クライアントがディストリビューターにインストールされている場合は、そのクライアントのインストールが完了した後に、 SQL ServerSQL Server をいったん停止して再起動したか確認してください。If an appropriate Oracle client has been installed at the Distributor, ensure that SQL ServerSQL Server was stopped and then restarted after the client installation completed. これは、 SQL ServerSQL Server でクライアント コンポーネントを認識するために必要です。This is required in order for SQL ServerSQL Server to recognize the client components.

権限が付与されていること、およびコンポーネントが正しくインストールされていることを確認したにもかかわらず、このエラーが継続して発生する場合は、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI のレジストリ設定が正しいかどうかを確認してください。If you have verified that permissions are granted and that components are installed correctly, but this error persists, verify that the registry settings at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI are correct:

  • Oracle 10g の場合、正しい設定は次のようになります。For Oracle 10g, the correct settings are

    • OracleOciLib = oci.dllOracleOciLib = oci.dll

    • OracleSqlLib = orasql10.dllOracleSqlLib = orasql10.dll

    • OracleXaLib = oraclient10.dllOracleXaLib = oraclient10.dll

  • Oracle 9i の場合、正しい設定は次のようになります。For Oracle 9i, the correct settings are

    • OracleOciLib = oci.dllOracleOciLib = oci.dll

    • OracleSqlLib = orasql9.dllOracleSqlLib = orasql9.dll

    • OracleXaLib = oraclient9.dllOracleXaLib = oraclient9.dll

SQL Server ディストリビューターが Oracle データベース インスタンスに接続できないThe SQL Server Distributor Cannot Connect to the Oracle Database Instance

SQL ServerSQL Server ディストリビューターが Oracle パブリッシャーに接続できない場合は、次の点を確認してください。If the SQL ServerSQL Server Distributor cannot connect to the Oracle Publisher, ensure that:

  • 必要な Oracle ソフトウェアがディストリビューターにインストールされているかどうか。The necessary Oracle software is installed on the Distributor.

  • Oracle データベースがオンラインになっており、SQL*Plus などのツールを使用して Oracle データベースに接続できるかどうか。The Oracle database is online and you can connect to it using a tool like SQL*Plus.

  • レプリケーションが Oracle パブリッシャーに接続する際に使用するログインに十分な権限があるかどうか。The login replication uses to connect to the Oracle Publisher has sufficient permissions. 詳細については、「Configure an Oracle Publisher」(Oracle パブリッシャーの構成) をご覧ください。For more information, see Configure an Oracle Publisher.

  • Oracle パブリッシャーの構成中に定義された TNS 名が tnsnames.ora ファイルに記載されているかどうか。The TNS names defined during configuration of the Oracle Publisher are listed in the tnsnames.ora file.

  • 正しい Oracle ホームおよびパスが使用されているかどうか。The correct Oracle Home and path are used. SQL ServerSQL Server ディストリビューターに Oracle バイナリのセットが 1 つしかインストールされていない場合でも、Oracle ホーム関連の環境変数が正しく設定されていることを確認してください。Even if you have only one set of Oracle binaries installed on the SQL ServerSQL Server Distributor, ensure that the environment variables related to the Oracle Home are set properly. 環境変数の値を変更した場合は、 SQL ServerSQL Server を停止してから再起動して、変更を有効にする必要があります。If you change environment variable values, you must stop and restart SQL ServerSQL Server for the change to take effect.

    接続の構成とテストの詳細については、「Configure an Oracle Publisher (Oracle パブリッシャーの構成)」の「Installing and Configuring Oracle Client Networking Software on the SQL ServerSQL Server Distributor (SQL Server ディストリビューターへの Oracle クライアント ネットワーク ソフトウェアのインストールと構成)」を参照してください。For more information about configuring and testing connectivity, see "Installing and Configuring Oracle Client Networking Software on the SQL ServerSQL Server Distributor" in Configure an Oracle Publisher.

Oracle パブリッシャーが別のディストリビューターに関連付けられているThe Oracle Publisher Is Associated with Another Distributor

Oracle パブリッシャーは、1 つの SQL ServerSQL Server ディストリビューターにのみ関連付けることができます。An Oracle Publisher can only be associated with one SQL ServerSQL Server Distributor. 別のディストリビューターを Oracle パブリッシャーに関連付ける場合は、関連付けられているディストリビューターを削除してから、別のディストリビューターを使用する必要があります。If a different Distributor is associated with the Oracle Publisher, it must be dropped before another Distributor can be used. ディストリビューターを最初に削除しない場合、次のエラー メッセージのいずれかが表示されます。If the Distributor is not dropped first, you will receive one of the following error messages:

  • "Oracle サーバー インスタンス '<OraclePublisherName>' は、'<SQLServerDistributorName>' をディストリビューターとして使用するように構成されています。"Oracle server instance '<OraclePublisherName>' has been previously configured to use '<SQLServerDistributorName>' as its Distributor. '<NewSQLServerDistributorName>' をディストリビューターとして使用するためには、Oracle サーバー インスタンスの現在のレプリケーション構成を削除する必要があります。その場合、サーバー インスタンス上のすべてのパブリケーションが削除されます。"To begin using '<NewSQLServerDistributorName>' as its Distributor, you must remove the current replication configuration on the Oracle server instance, which will delete all publications on that server instance."

  • "Oracle サーバー '<OracleServerName>' は、既にディストリビューター '<SQLServerDistributorName>.<DistributionDatabaseName>' のパブリッシャー '<OraclePublisherName>' として定義されています。"Oracle server '<OracleServerName>' is already defined as publisher '<OraclePublisherName>' on distributor '<SQLServerDistributorName>.<DistributionDatabaseName>'. パブリッシャーを削除するか、パブリック シノニム '<SynonymName>' を削除して、再作成してください。"Drop the publisher or drop the public synonym '<SynonymName>' to recreate."

    Oracle パブリッシャーが削除されると、Oracle データベース内のレプリケーション オブジェクトが自動的にクリーンアップされます。When an Oracle Publisher is dropped, the replication objects in the Oracle database are automatically cleaned up. ただし、Oracle レプリケーション オブジェクトを手動でクリーンアップすることが必要な場合もあります。However, manual cleanup of the Oracle replication objects is necessary in some cases. レプリケーションで作成した Oracle レプリケーション オブジェクトを手動でクリーン アップするには、次の手順を実行します。To manually clean up Oracle replication objects created by replication:

  1. DBA 権限で Oracle パブリッシャーに接続します。Connect to the Oracle publisher with DBA permissions.

  2. SQL コマンド DROP PUBLIC SYNONYM MSSQLSERVERDISTRIBUTOR;を実行します。Issue the SQL command DROP PUBLIC SYNONYM MSSQLSERVERDISTRIBUTOR;.

  3. SQL コマンド DROP USER <replication_administrative_user_schema>``CASCADE;を実行します。Issue the SQL command DROP USER <replication_administrative_user_schema>``CASCADE;.

主キーの欠如に関する SQL Server エラー 21663 が発生するSQL Server Error 21663 Is Raised Regarding the Lack of a Primary Key

トランザクション パブリケーションのアーティクルには、有効な主キーが必要です。Articles in transactional publications must have a valid primary key. 有効な主キーがない場合は、アーティクルを追加しようとすると、次のエラー メッセージが表示されます。If they do not have a valid primary key, you will receive the following error message when you attempt to add an article:

"ソース テーブル [<TableOwner>].[<TableName>] に有効な主キーが見つかりません。""No valid primary key found for source table [<TableOwner>].[<TableName>]"

主キーの要件の詳細については、トピック「 Design Considerations and Limitations for Oracle Publishers」の「一意のインデックスおよび制約」を参照してください。For information about requirements for primary keys, see the section "Unique Indexes and Constraints" in the topic Design Considerations and Limitations for Oracle Publishers.

リンク サーバー ログインの重複に関する SQL Server エラー 21642 が発生するSQL Server Error 21642 Is Raised Regarding a Duplicate Linked Server Login

Oracle パブリッシャーを最初に構成するときに、パブリッシャーとディストリビューター間の接続用にリンク サーバー エントリが作成されます。When an Oracle Publisher is initially configured, a linked server entry is created for the connection between the Publisher and the Distributor. リンク サーバーには、Oracle TNS サービスと同じ名前が付けられます。The linked server has the same name as the Oracle TNS service name. 同じ名前でリンク サーバーを作成しようとすると、次のエラー メッセージが表示されます。If you attempt to create a linked server with the same name, the following error message is shown:

"異種パブリッシャーにはリンク サーバーが必要です。"Heterogeneous publishers require a linked server. リンク サーバー '<LinkedServerName>' は既に存在します。A linked server named '<LinkedServerName>' already exists. リンク サーバーを削除するか、または別のパブリッシャー名を選択してください。"Please remove linked server or choose a different publisher name."

このエラーは、リンク サーバーを直接作成しようとしたり、Oracle パブリッシャーと SQL ServerSQL Server ディストリビューター間のリレーションシップを以前に削除し、再構成しようとしている場合に発生する可能性があります。This error can occur if you attempt to create the linked server directly or if you have previously dropped the relationship between the Oracle Publisher and the SQL ServerSQL Server Distributor, and you are now attempting to reconfigure it. パブリッシャーを再構成しようとしているときにこのエラーが表示される場合は、sp_dropserver (Transact-SQL) を使用してリンク サーバーを削除してください。If you receive this error while attempting to reconfigure the Publisher, drop the linked server with sp_dropserver (Transact-SQL).

リンク サーバー接続で Oracle パブリッシャーに接続する必要がある場合は、別の TNS サービス名を作成してから、sp_addlinkedserver (Transact-SQL) を呼び出すときにこの名前を使用します。If you need to connect to the Oracle Publisher over a linked server connection, create another TNS service name, and then use this name when calling sp_addlinkedserver (Transact-SQL). TNS サービス名の作成の詳細については、Oracle のマニュアルを参照してください。For information about creating TNS service names, see the Oracle documentation.

SQL Server エラー 21617 が発生するSQL Server Error 21617 Is Raised

Oracle パブリッシングでは、Oracle アプリケーション SQL*PLUS を使用して、パブリッシャー サポートコードのパッケージを Oracle データベースにダウンロードします。Oracle publishing uses the Oracle application SQL*PLUS to download the package of Publisher support code to the Oracle database. Oracle パブリッシャーを構成する前に、 SQL ServerSQL Server は SQL*PLUS がディストリビューターのシステム パスを介してアクセス可能であることを確認します。Before attempting to configure the Oracle Publisher, SQL ServerSQL Server verifies that SQL*PLUS is accessible through the system path on the Distributor. SQL*PLUS を読み込めない場合、次のエラー メッセージが表示されます。If SQL*PLUS cannot be loaded, the following error message is shown:

"SQL*PLUS を実行できません。"Unable to run SQL*PLUS. ディストリビューターに Oracle クライアント コードの現在のバージョンがインストールされていることを確認してください。"Make certain that a current version of the Oracle client code is installed at the distributor."

ディストリビューターで SQL*PLUS を検索してください。Try to locate SQL*PLUS on the Distributor. Oracle 10g クライアント インストールの場合、この実行可能ファイルの名前は sqlplus.exe です。For an Oracle 10g client install, the name of this executable is sqlplus.exe. 通常は %ORACLE_HOME%/bin にインストールされています。It is typically installed in %ORACLE_HOME%/bin. SQL*PLUS のパスがシステム パスに含まれていることを確認するには、システム変数 Path の値を調べます。To verify that the path of SQL*PLUS appears in the system path, examine the value of the system variable Path:

  1. [マイ コンピューター] を右クリックし、 [プロパティ] をクリックします。Right-click My Computer, and then click Properties.

  2. [詳細設定] タブをクリックし、 [環境変数] をクリックします。Click the Advanced tab, and then click Environment variables.

  3. [環境変数] ダイアログ ボックスの [システム環境変数] ボックスで、 [Path] 変数をクリックし、 [編集] をクリックします。In the Environment Variables dialog box, in the System variables list, select the Path variable, and then click Edit.

  4. [システム変数の編集] ダイアログ ボックスで、 [変数値] ボックスに sqlplus.exe を含むフォルダーへのパスが表示されていない場合は、このパスを含むように文字列を編集します。In the Edit System Variable dialog box: if the path to the folder that contains sqlplus.exe is not present in the Variable value text box, edit the string to include it.

  5. 開いている各ダイアログ ボックスで [OK] をクリックして作業を終了し、変更を保存します。Click OK on each open dialog box to exit and save changes.

    ディストリビューターで sqlplus.exe が見つからない場合は、Oracle クライアント ソフトウェアの現在のバージョンをディストリビューターにインストールします。If you cannot locate sqlplus.exe on the Distributor, install a current version of the Oracle client software at the Distributor. 詳細については、「Configure an Oracle Publisher」(Oracle パブリッシャーの構成) をご覧ください。For more information, see Configure an Oracle Publisher.

SQL Server エラー 21620 が発生するSQL Server Error 21620 Is Raised

Oracle データベースのバージョン 8.1 よりも前のバージョンに接続している場合、Oracle パブリッシングでは、ディストリビューターにインストールされている Oracle クライアント ソフトウェアが、バージョン 9 からのものである必要があります。If you are connecting to an Oracle database earlier than version 8.1, Oracle publishing requires that the Oracle client software installed on the Distributor be from version 9. Oracle データベースのバージョン 8.1 以降に接続している場合は、Oracle クライアント ソフトウェアのバージョン 10 以降を使用することをお勧めします。If you are connecting to an Oracle database that is version 8.1 or later, we recommend that the Oracle client software be version 10 or later.

Oracle パブリッシャーを構成する前に、Oracle パブリッシングはディストリビューターのシステム パスを介してアクセスできる SQL*PLUS のバージョンが、バージョン 9 以降であることを確認します。Before attempting to configure the Oracle Publisher, Oracle publishing verifies that the version of SQL*PLUS accessible through the system path on the Distributor is version 9 or later. バージョン 9 以降でない場合、次のエラー メッセージが表示されます。If it is not, the following error message is shown:

"システムの Path 変数からアクセスできる SQL*PLUS のバージョンが古いため、Oracle パブリッシングをサポートできません。"The version of SQL*PLUS that is accessible through the system Path variable is not current enough to support Oracle publishing. ディストリビューターに Oracle クライアント コードの現在のバージョンがインストールされていることを確認してください。"Make certain that a current version of the Oracle client code is installed at the distributor."

ディストリビューターに Oracle クライアント ソフトウェアの複数のバージョンがインストールされている場合は、最新のバージョンが少なくともバージョン 9 であり、システム パス変数でそのバージョンが最初に参照されていることを確認します (最新のバージョンが最初に参照されていれば、他のバージョンが参照されていてもかまいません)。If you have multiple versions of the Oracle client software installed on the Distributor, make sure that the most current version is at least version 9 and that the system path variable refers first to this version (references to other versions can appear as long as the most recent appears first). システム パス変数の編集に関する詳細については、このトピックで既に説明した「SQL Server エラー 21617 が発生する」を参照してください。For more information about editing the system path variable, see the section "SQL Server Error 21617 is Raised" earlier in this topic.

SQL Server エラー 21624 または SQL Server エラー 21629 が発生するSQL Server Error 21624 or Error 21629 Is Raised

64 ビット ディストリビューターの場合、Oracle パブリッシングでは、Oracle OLEDB Provider for Oracle (OraOLEDB.Oracle) が使用されます。For 64-bit Distributors, Oracle publishing uses the Oracle OLEDB Provider for Oracle (OraOLEDB.Oracle). ディストリビューターに Oracle OLEDB プロバイダーがインストールおよび登録されていることを確認してください。Make sure that the Oracle OLEDB provider is installed and registered on the Distributor. このプロバイダーがインストールおよび登録されていない場合、次のエラー メッセージのいずれかまたは両方が表示されます。If the provider is not installed and registered, one or both of the following error messages is shown:

  • "ディストリビューター '%s' に登録済みの Oracle OLEDB プロバイダー OraOLEDB.Oracle が見つかりません。"Unable to locate the registered Oracle OLEDB provider, OraOLEDB.Oracle, at distributor '%s'. ディストリビューターに現在のバージョンの Oracle OLEDB プロバイダーがインストールおよび登録されていることを確認してください。"Make certain that a current version of the Oracle OLEDB provider is installed and registered at the distributor."

  • "Oracle 用の Oracle OLEDB プロバイダー OraOLEDB.Oracle が登録されていることを示す CLSID レジストリ キーがディストリビューターに存在しません。"The CLSID registry key indicating that the Oracle OLEDB Provider for Oracle, OraOLEDB.Oracle, has been registered is not present at the distributor. ディストリビューターに Oracle OLEDB プロバイダーがインストールおよび登録されていることを確認してください。"Make certain that the Oracle OLEDB provider is installed and registered at the distributor."

    Oracle クライアント ソフトウェア バージョン 10g を使用している場合、プロバイダーは OraOLEDB10.dll です。バージョン 9i の場合、プロバイダーは OraOLEDB.dll です。If you are using Oracle client software version 10g, the provider is OraOLEDB10.dll; for version 9i, it is OraOLEDB.dll. プロバイダーは %ORACLE_HOME%\BIN (たとえば、C:\oracle\product\10.1.0\Client_1\bin) にインストールされます。The provider is installed in %ORACLE_HOME%\BIN (for example, C:\oracle\product\10.1.0\Client_1\bin). ディストリビューターに Oracle OLEDB プロバイダーがインストールされていない場合は、Oracle が提供する Oracle クライアント ソフトウェア インストール ディスクからインストールしてください。If you determine that the Oracle OLEDB provider is not installed on the Distributor, install it from the Oracle client software install disc provided by Oracle. 詳細については、「Configure an Oracle Publisher」(Oracle パブリッシャーの構成) をご覧ください。For more information, see Configure an Oracle Publisher.

    Oracle OLEDB プロバイダーがインストールされている場合は、そのプロバイダーが登録されていることを確認してください。If the Oracle OLEDB provider is installed, make sure that it is registered. プロバイダーの DLL を登録するには、DLL がインストールされているディレクトリから次のコマンドを実行し、 SQL ServerSQL Server インスタンスを停止して再起動します。To register the provider DLL, execute the following command from the directory in which the DLL is installed, and then stop and restart the SQL ServerSQL Server instance:

  1. regsvr32 OraOLEDB10.dll または regsvr32 OraOLEDB.dllregsvr32 OraOLEDB10.dll or regsvr32 OraOLEDB.dll.

SQL Server エラー 21626 または SQL Server エラー 21627 が発生するSQL Server Error 21626 or Error 21627 Is Raised

Oracle パブリッシング環境が正しく構成されていることを確認するために、 SQL ServerSQL Server により、構成時に指定したログイン資格情報を使用して、Oracle パブリッシャーへの接続が試行されます。To verify that the Oracle publishing environment is configured properly, SQL ServerSQL Server tries to connect to the Oracle Publisher with the login credentials you specified during configuration. SQL ServerSQL Server ディストリビューターが Oracle パブリッシャーに接続できない場合、次のエラー メッセージが表示されます。If the SQL ServerSQL Server Distributor cannot connect to the Oracle Publisher, the following error message is shown:

  • "Oracle OLEDB プロバイダー OraOLEDB.Oracle を使用して Oracle データベース サーバー '%s' に接続できません。""Unable to connect to Oracle database server '%s' using the Oracle OLEDB provider OraOLEDB.Oracle."

    このエラー メッセージが表示された場合は、Oracle パブリッシャーの構成時に指定したのと同じログインとパスワードを使用して SQL*PLUS を直接実行することにより、Oracle データベースへの接続を確認してください。If this error message is shown, verify connectivity to the Oracle database by running SQL*PLUS directly using the same login and password specified during configuration of the Oracle Publisher. 詳細については、このトピックで既に説明した「SQL Server ディストリビューターが Oracle データベース インスタンスに接続できない」を参照してください。For more information, see the section "The SQL Server Distributor Cannot Connect to the Oracle Database Instance" earlier in this topic.

SQL Server エラー 21628 が発生するSQL Server Error 21628 Is Raised

64 ビット ディストリビューターの場合、Oracle パブリッシングでは、Oracle OLEDB Provider for Oracle (OraOLEDB.Oracle) が使用されます。For 64-bit Distributors, Oracle publishing uses the Oracle OLEDB Provider for Oracle (OraOLEDB.Oracle). Oracle プロバイダーを SQL ServerSQL Server と同じプロセスで実行可能にするために、 SQL ServerSQL Serverによってレジストリ エントリが作成されます。 SQL ServerSQL Server creates a registry entry to allow the Oracle provider to run in process with SQL ServerSQL Server. このレジストリ エントリの読み取りまたは書き込みに問題がある場合、次のエラー メッセージが表示されます。If there is a problem reading or writing this registry entry, the following error message is shown:

"ディストリビューター '%s' のレジストリを更新し、Oracle OLEDB プロバイダー OraOLEDB.Oracle を SQL ServerSQL Serverと同じプロセスで実行可能にすることができません。"Unable to update the registry of distributor '%s' to allow Oracle OLEDB provider OraOLEDB.Oracle to run in process with SQL ServerSQL Server. SQL ServerSQL Server が所有しているレジストリ キーの変更が現在のログインに許可されていることを確認してください。"Make certain that current login is authorized to modify SQL ServerSQL Server owned registry keys."

Oracle パブリッシングでは、このレジストリ エントリが存在し、64 ビット ディストリビューターの場合は 1 に設定されている必要があります。Oracle publishing requires the registry entry to exist and to be set to 1 for 64 bit Distributors. このエントリが存在しない場合は、 SQL ServerSQL Server によって作成されます。If the entry does not exist, SQL ServerSQL Server will attempt to create it. このエントリは存在するが、 0に設定されている場合は、設定は変更されず、Oracle パブリッシャーの構成は失敗します。If the entry exists, but is set to 0, the setting will not be changed; the configuration of the Oracle Publisher will fail.

レジストリ設定を表示および変更するには、次の手順を実行します。To view and modify the registry setting:

  1. [スタート] ボタンをクリックし、 [ファイル名を指定して実行] をクリックします。Click Start, and then click Run.

  2. [ファイル名を指定して実行] ダイアログ ボックスで、「 regedit」と入力し、 [OK] をクリックします。In the Run dialog box, type regedit, and then click OK.

  3. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName> \Providers に移動します。Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName> \Providers.

    [Providers] の下に、[OraOLEDB.Oracle] という名前のフォルダーがあります。Included under Providers should be a folder named OraOLEDB.Oracle. このフォルダーの中に、 [AllowInProcess] という名前の DWORD 値があり、値は 1になっている必要があります。Within this folder should be the DWORD value name AllowInProcess, with a value of 1.

  4. [AllowInProcess]0に設定されている場合は、このレジストリ エントリを 1に更新します。If you determine that AllowInProcess is set to 0, update the registry entry to 1:

    1. エントリを右クリックし、 [変更] をクリックします。Right-click the entry, and then click Modify.

    2. [文字列の編集] ダイアログ ボックスで、 [値のデータ] ボックスに「 1 」と入力します。In the Edit String dialog box, type 1 in the Value data field.

SQL Server エラー 21684 が発生するSQL Server Error 21684 Is Raised

管理ユーザー アカウントに十分な権限がない場合は、次のエラー メッセージが表示されます。If the administrative user account does not have sufficient privileges, the following error message is shown:

"Oracle パブリッシャー '%s' の管理者ログインに関連付けられた権限が不十分です。""The permissions associated with the administrator login for Oracle publisher '%s' are not sufficient."

ユーザーに与えられた権限を確認するには、クエリ SELECT * from session_privsを実行します。To verify the permissions granted to the user, execute the following query: SELECT * from session_privs. 出力は次のようになります。The output should be similar to the following:

PRIVILEGE

------------------

CREATE SESSION

CREATE TABLE

CREATE PUBLIC SYNONYM

DROP PUBLIC SYNONYM

CREATE VIEW

CREATE SEQUENCE

CREATE PROCEDURE

CREATE TRIGGER

レプリケーション ユーザー スキーマの権限に関する問題が発生するYou Encounter Permissions Issues for the Replication User Schema

レプリケーション ユーザー スキーマには、「Configure an Oracle Publisher (Oracle パブリッシャーの構成)」の「Creating the User Schema Manually (手動によるユーザー スキーマの作成)」で説明されている権限が必要です。The replication user schema must have the permissions described in "Creating the User Schema Manually" in Configure an Oracle Publisher.

Oracle エラー ORA-01000Oracle Error ORA-01000

パブリケーションへアーティクルを追加処理中に、レプリケーションは Oracle パブリッシャーでカーソルを使用します。Replication uses cursors on the Oracle Publisher during the process of adding articles to a publication. この処理中にパブリッシャーで使用できるカーソルの最大数を超える可能性があります。It is possible to exceed the maximum number of cursors available on the Publisher during this process. 最大数を超えると、次のエラーが発生します。If this occurs, the following error is raised:

"ORA-01000: maximum open cursors exceeded""ORA-01000: maximum open cursors exceeded"

この問題を回避するには、Oracle データベースの max_open_cursors 設定に、高い値 (1000 以上) を設定します。To avoid this problem, ensure that the max_open_cursors setting in the Oracle databases is set to a sufficiently high number (at least 1000). この設定の詳細については Oracle のマニュアルを参照してください。For more information about this setting, see the Oracle documentation.

Oracle エラー ORA-01555Oracle Error ORA-01555

次の Oracle データベース エラーは、スナップショット レプリケーションに関連するものではありません。このエラーは、Oracle でのデータの読み取り一貫性ビューの構築方法に関連します。The following Oracle database error is not related to snapshot replication; it is related to how Oracle constructs read-consistent views of data:

"ORA-01555: Snapshot too old""ORA-01555: Snapshot too old"

Oracle では、ロールバック セグメントと呼ばれるオブジェクトを使用して、SQL ステートメントの発行時点のデータの読み取り一貫性ビューを構築します。Using objects known as rollback segments, Oracle constructs read-consistent views of data as of the point in time a SQL statement is issued. "Snapshot too old" エラーは、ロールバック情報が他の同時接続セッションによって上書きされた場合に発生する可能性があります。A "snapshot too old" error might occur when rollback information is overwritten by other concurrent sessions. Oracle 9i よりも前のバージョンでは、このエラーの発生頻度を減らす方法として、ロールバック セグメントのサイズや数を増やしたり、大きいトランザクションを特定のロールバック セグメントに割り当てる方法が推奨されていました。Prior to Oracle 9i, the recommended method of reducing the frequency of this error was to increase the size and/or number of rollback segments, and to assign large transactions to a specific rollback segment.

Oracle 9i では、ロールバック セグメントに代わる、UNDO テーブルスペースの概念が導入されました。In Oracle 9i, Oracle introduced the UNDO tablespace concept, which replaces the rollback segment. Oracle 9i で "Snapshot too old" エラーを回避するには、次の方法をお勧めします。To prevent the "snapshot too old" error in Oracle 9i, it is recommended that you:

  • 十分な空き領域を持つ UNDO テーブルスペースを作成する。Create an UNDO tablespace with an appropriate amount of free space.

  • 作成したテーブルスペースに保証される保有期間を設定する (Oracle 10G 以上)。Set the retention guarantee on the tablespace (Oracle 10G and greater).

  • Oracle の初期化パラメーター UNDO_MANAGEMENT および UNDO_RETENTION を構成する。Configure the Oracle initialization parameters UNDO_MANAGEMENT and UNDO_RETENTION.

    "Snapshot too old" エラーを回避する方法の詳細については、Oracle のマニュアルを参照してください。For further details about avoiding the "snapshot too old" error, consult the Oracle documentation.

Oracle エラー ORA-22285Oracle Error ORA-22285

テーブルに BFILE 列が含まれている場合、この列のデータはファイル システムに格納されます。If a table includes a BFILE column, the data for the column is stored in the file system. レプリケーション管理ユーザー アカウントには、次の構文を使用して、このデータが格納されているディレクトリへのアクセスを許可する必要があります。The replication administrative user account must be granted access to the directory in which the data is stored using the following syntax:

GRANT READ ON DIRECTORY <directory_name> TO <replication_administrative_user_schema>

アクセスが許可されていない場合は、ログ リーダー エージェントにより次のエラーが発生します。If access is not granted, the following error is raised by the Log Reader Agent:

"ORA-22285: non-existent directory or file for FILEOPEN operation""ORA-22285: non-existent directory or file for FILEOPEN operation"

パブリッシャーの再構成が必要になる変更Changes Are Made That Require Reconfiguration of the Publisher

レプリケーション メタデータ テーブルまたはプロシージャを変更した場合は、パブリッシャーを削除して再構成する必要があります。Changes to replication metadata tables or procedures require that you drop and reconfigure the Publisher. パブリッシャーを再構成するには、パブリッシャーを削除し、 [SQL Server Management Studio]SQL Server Management Studio、Transact-SQL、または RMO を使用してパブリッシャーを再構成する必要があります。To reconfigure the Publisher, you must drop the Publisher and configure it again using [SQL Server Management Studio]SQL Server Management Studio, Transact-SQL, or RMO. パブリッシャーの構成の詳細については、「Configure an Oracle Publisher (Oracle パブリッシャーの構成)」を参照してください。For information about configuring the Publisher, see Configure an Oracle Publisher.

Oracle パブリッシャーを削除するには ( SQL Server Management Studio )To drop an Oracle Publisher ( SQL Server Management Studio )

  1. [SQL Server Management Studio]SQL Server Management Studio の Oracle パブリッシャーのディストリビューターに接続し、サーバー ノードを展開します。Connect to the Distributor for the Oracle Publisher in [SQL Server Management Studio]SQL Server Management Studio and expand the server node.

  2. [レプリケーション] を右クリックし、 [ディストリビューターのプロパティ] をクリックします。Right-click Replication, and then click Distributor Properties.

  3. [ディストリビューターのプロパティ] ダイアログ ボックスの [パブリッシャー] ページで、Oracle パブリッシャーのチェック ボックスをオフにします。On the Publishers page of the Distributor Properties dialog box, clear the check box for the Oracle Publisher.

  4. [OK] をクリックします。Click OK.

    Oracle パブリッシャーを削除するには (Transact-SQL)To drop an Oracle Publisher (Transact-SQL)

参照See Also

Configure an Oracle Publisher (Oracle パブリッシャーの構成) Configure an Oracle Publisher
Oracle パブリッシングの概要Oracle Publishing Overview