問題タブ [oracle-fdw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
153 参照

postgresql - postgresql データベースから oracle データベースのメタテーブルにアクセスする方法

私のOracleデータベース(11.2)とpostgresqlデータベース(9.3.5)

私の要件は、oracle データベースから postgresql データベースにデータを抽出することです。そのために、oracle_fdw (外部データ ラッパーの概念) を使用しました。

特定のスキーマ(oracle db)のすべてのデータを抽出できました。

通常のテーブルのデータは抽出できますが、all_tab_columns のようなメタ テーブルにはアクセスできません。

サーバーとユーザーを作成し、サーバーの詳細とユーザー マッピングの詳細 (sys 権限) を提供しましたが、時間にアクセスするとエラーが発生しました

エラー: 外部テーブル "all_tab_columns" のセッションを認証できません SQL 状態: HV00N 詳細: ORA-12571: TNS: パケット ライターの失敗

0 投票する
0 に答える
606 参照

postgresql - postgresプロセスを安全に強制終了するには?

plpgsql 関数があります。この関数は、oracle_fdw プラグインを介して OracleXE に接続されている外部テーブルの行を削除および挿入します。毎分 cron は、psql を使用して 10 個の異なるテーブルに対してこの関数の 10 個のインスタンスを開始します。ときどき (1 週間に 1 回未満) 1 つのインスタンスが動かなくなることがあります。アクティブな状態ですが、キャンセルまたは終了することはできません。SIGKILL で強制終了できますが、これにより他のすべての postgres プロセスがキャンセルされ、回復モードが開始されます。SIGKILL を使用せずにこのプロセスを停止することは可能ですか? (CentOS 7 上の Postgres 9.3)

0 投票する
2 に答える
2389 参照

postgresql - oracle_fdw のライブラリをロードできませんでした

oracle_fdw の作成中に問題が発生しました。

oracle_fdw.dll を postgres lib フォルダーにコピーしました * .sql ファイルと制御ファイルの両方を shrared/extension にコピーしました

今、スーパー管理者ユーザーでpsqlに接続してクエリを作成すると

私は応答を得ています

0 投票する
2 に答える
6092 参照

oracle - Postgres で oracle_fdw 拡張機能を作成できない

ここの手順に従って、Oracle 外部データ ラッパーoracle_fdwを PostgreSQL サーバーにインストールします。

Oracle バージョン: Oracle Database 12c Enterprise Edition リリース 12.1.0.2.0 - Red Hat Linux 7.2 で動作する 64 ビット製品

PostgreSQL バージョン: x86_64-unknown-linux-gnu 上の PostgreSQL 9.4.4、gcc でコンパイル (Debian 4.7.2-5) 4.7.2、64 ビット、Debian 7 (wheezy) で実行。

sqlplus をインストールし、sqlplus を使用して PostgreSQL サーバーから Oracle サーバーに正常に接続できたので、接続は問題ありません。

しかし、拡張機能を作成しようとすると、次のエラーが発生します。

次に、https: //github.com/dalibo/pg_qualstats/issues/1 からヒントを得て、postgresql.conf の shared_preload_libraries に oracle_fdw を次のように追加しました。

しかし、今はPostgresを再起動できません:

/var/log/postgresql/postgresql-9.4-main.log を見ると、次の 2 行しか表示されません。

shared_preload_libraries から oracle_fdw を削除すると、postgres を再起動できるため、これが再起動の失敗の原因となっています。そこで、shared_preload_libraries から oracle_fdw を削除し、postgresql.conf に次のように保存しました。

その後、Postgres を再起動できました。


正確な手順は次のとおりです。

PostgreSQL サーバーの OS バージョン

Oracle Instant Client のインストール

ここに記載されている手順を使用してインストール: https://help.ubuntu.com/community/Oracle%20Instant%20Client

http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.htmlから次の rpm ファイルをダウンロードしました。

  • oracle-instantclient-basic-10.2.0.3-1.x86_64.rpm
  • oracle-instantclient-devel-10.2.0.3-1.x86_64.rpm
  • oracle-instantclient-sqlplus-10.2.0.3-1.x86_64.rpm

次のコマンドを使用して、それらを PostgreSQL サーバーにインストールしました。

インストールの確認:

sqlplus を使用して Oracle サーバーに接続する

したがって、これは正常に機能します。

oracle_fdw のインストール

http://pgxn.org/dist/oracle_fdw/から oracle_fdw バージョン 1.4.0 ie ファイル oracle_fdw-1.4.0.zip をダウンロードしました 。

次に、解凍​​して次のようにインストールします。

Postgres で拡張機能を作成する


スタックトレース

Laurenz Albe の回答で推奨されているように、GNU デバッガー (gdb) をインストールし、次のスタック トレースを取得しました (今のところデバッグ シンボルはありません)。


更新:debian 8(8.6、jessie)で実行されているPostgres 9.4.9に拡張機能をインストールできました。私は Oracle Instant Client バージョン 12.1.0.2.0-1 と oracle_fdw バージョン 1.5 を使用しました。

0 投票する
1 に答える
1146 参照

database - エラー: ライブラリ "oracle_fdw.dll" を読み込めませんでした: %1 は有効な Win32 アプリケーションではありません

私がやったこと、順番に:

  1. oracle_fdw が利用可能な最新バージョンである entreprisedb.com から PostgreSQL サーバー 9.5.7 64 ビットをダウンロードしてインストールしました

  2. インストールの2番目の部分で、他のもの(postGIS、Npgsql、pgAgentなど)を64ビットバリアントにインストールしました。

  3. https://github.com/laurenz/oracle_fdw/releases/から oracle_fdw-1.3.0-pg95-win64.zip をダウンロードし、すべてのファイルを本来あるべき場所 C:/Program Files/PostgreSQL/9.5/ に抽出しました。 ....

  4. pgAdmin で次のコマンドを実行しました。

    CREATE EXTENSION oracle_fdw;

次のエラーが発生しました。

0 投票する
2 に答える
1298 参照

oracle - oracle から postgresql への移行 "UTF8" をエンコードするための無効なバイト シーケンス: 0x00

Oracle から postgresql にアプリケーションを移行しています。すでに移行した機能の 1 つで、別の Oracle データベース (Oracle のデータベース リンク、postgresql の oracle_fdw 拡張機能) からいくつかのテーブルから postgresql データベースのローカル テーブルにデータをコピーします。ただし、次のエラーが発生します。

invalid byte sequence for encoding "UTF8": 0x00

このフォーラムでこの種の問題を抱えている人もいましたが、リモート データベースから直接データをコピーしようとはしませんでした (ダンプまたは csv からデータをロードしました..)。

どうすればいいですか?