問題タブ [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.
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: パケット ライターの失敗
postgresql - postgresプロセスを安全に強制終了するには?
plpgsql 関数があります。この関数は、oracle_fdw プラグインを介して OracleXE に接続されている外部テーブルの行を削除および挿入します。毎分 cron は、psql を使用して 10 個の異なるテーブルに対してこの関数の 10 個のインスタンスを開始します。ときどき (1 週間に 1 回未満) 1 つのインスタンスが動かなくなることがあります。アクティブな状態ですが、キャンセルまたは終了することはできません。SIGKILL で強制終了できますが、これにより他のすべての postgres プロセスがキャンセルされ、回復モードが開始されます。SIGKILL を使用せずにこのプロセスを停止することは可能ですか? (CentOS 7 上の Postgres 9.3)
postgresql - oracle_fdw のライブラリをロードできませんでした
oracle_fdw の作成中に問題が発生しました。
oracle_fdw.dll を postgres lib フォルダーにコピーしました * .sql ファイルと制御ファイルの両方を shrared/extension にコピーしました
今、スーパー管理者ユーザーでpsqlに接続してクエリを作成すると
私は応答を得ています
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 を使用しました。
database - エラー: ライブラリ "oracle_fdw.dll" を読み込めませんでした: %1 は有効な Win32 アプリケーションではありません
私がやったこと、順番に:
oracle_fdw が利用可能な最新バージョンである entreprisedb.com から PostgreSQL サーバー 9.5.7 64 ビットをダウンロードしてインストールしました
インストールの2番目の部分で、他のもの(postGIS、Npgsql、pgAgentなど)を64ビットバリアントにインストールしました。
https://github.com/laurenz/oracle_fdw/releases/から oracle_fdw-1.3.0-pg95-win64.zip をダウンロードし、すべてのファイルを本来あるべき場所 C:/Program Files/PostgreSQL/9.5/ に抽出しました。 ....
pgAdmin で次のコマンドを実行しました。
CREATE EXTENSION oracle_fdw;
次のエラーが発生しました。
oracle - oracle から postgresql への移行 "UTF8" をエンコードするための無効なバイト シーケンス: 0x00
Oracle から postgresql にアプリケーションを移行しています。すでに移行した機能の 1 つで、別の Oracle データベース (Oracle のデータベース リンク、postgresql の oracle_fdw 拡張機能) からいくつかのテーブルから postgresql データベースのローカル テーブルにデータをコピーします。ただし、次のエラーが発生します。
invalid byte sequence for encoding "UTF8": 0x00
このフォーラムでこの種の問題を抱えている人もいましたが、リモート データベースから直接データをコピーしようとはしませんでした (ダンプまたは csv からデータをロードしました..)。
どうすればいいですか?