2017-02-05 3 views
1

多くのサーバー上の複数の同一データベースに対して同じクエリを実行できるデータベースクライアントツールを探しています。複数のOracle Serverで同じSQLクエリを実行するツールと集計結果

私たちには100以上のサーバーがあり、各サーバーには、複数のサーバーの同じテーブル(シャード)からプルおよび集計する必要のあるカスタムデータがあります。

私はこのクエリは私に1つ以上の行が返されます。この

select COL1,COL2 from MY_TABLE 

のようなクエリを実行できるようにしたいです。これらはすべて1つの表に集約する必要があります。

スタンドアロンまたはウェブベースのツール、オープンソースまたはライセンスされているツールをお勧めします。

答えて

1

Oracleデータベースを使用して、サーバー上のデータベースへのデータベースリンクを作成できます。データベースごとに1つのデータベースリンクが必要です。次に、次のクエリを実行できます。このデータベースは、他databaesをWICHからサーバ上に作成されなければならない

 
select COL1,COL2 
    from [email protected] 
union all 
select COL1,COL2 
    from [email protected] 
union all 
select COL1,COL2 
    from [email protected] 
union all 
select COL1,COL2 
    from [email protected] 

に到達することができ、それは例えば、任意のデータベースとすることができますOracle Database Express Editionです。 Express Editionは何の費用もかかりません。

もう1つの可能性は、MS Accessデータベースを使用することです。リモートデータベースのテーブルでは、リモートテーブルに接続されているAccessデータベースにテーブルを作成できます。私はこのアプローチをいくつか使用しましたが、現時点では詳細を覚えていません。

オラクルのソリューションが好きです。上記の選択を含むビューを作成することができます。 Oracle SQLを使用してビューを問い合せることができます。

+0

ありがとう - これは良いオプションですが、実際のデータベースにインストールしてDBリンクを追加するには、管理者権限が必要です(アプリケーション開発者/開発者エンジニアは必要ありません)。また、それはあまりにも多くのdblinksすることができます。私はリモートで実行し、各DBに別々に接続できるものを探しています。 –

1

私のオープンソースプログラムMethod5は、このようなタスクのために作られました。

プログラムは、Oracleサーバー上で動作し、このような任意のSQLクライアントから呼び出すことができます。

select * from table(m5('select COL1,COL2 from MY_TABLE')); 

それは列がDATABASE_NAMEという名前の追加の列だけでなく、要求を返します。これは、データを並行して収集し、例外を処理し、データをテーブルに格納します。

ターゲットのリストを指定できるオプションの第2パラメータがあります。デフォルトMethod5によって設定されたすべてのデータベースを照会していますが、このような結果を制限することができます。

select * from table(m5('select COL1,COL2 from MY_TABLE', 'dev,test,acme%,db1234')); 

非同期で実行することにしているかどうかの結果を保存するためにあなたの表のようなものをより細かく制御できます手順、M5_PROCは、もあります。実際には、 は、何百ものデータベースを信頼性の高い方法で照会するのは非常に難しいかもしれません。少数のデータベースがあなたのコントロールの理由から利用できないことは珍しくありません。それは難しいかもしれませんが、Method5はあなたにそのような状況を処理する能力を与えます。

いくつかの点で、方法5は@ miracle173の回答のパッケージ版です。 1回限りのクエリが必要な場合は、おそらく彼のソリューションに行くのが最善です。しかし、より堅牢なものが必要な場合は、頻繁に呼び出され、コードを投げる必要がある場合は、Method5をインストールして設定する価値があります。インストールや設定の際にヘルプが必要な場合は、直接私に連絡することができます。

+0

ありがとうございます - あなたは管理者で、データベースにインストールする必要がありますか?遠隔操作できますか? –

+0

@ software.wikipediaプログラムは、1つのマスターデータベース上のDBAによってインストールおよび設定されている必要があります。また、ユーザーを作成するために100のリモートデータベースで実行する必要のある小さなワンタイムスクリプトがあります。そのリモートスクリプトはSYSDBAとして実行する必要があります。各データベースでREMOTE_LOGIN_PASSWORDFILEがどのように設定されているかによって、リモートスクリプトを実行できる場合があります。このプログラムはDBA向けに設計されていますが、他のユーザーがアクセスできるようにする方法があります。詳細については、[ユーザーガイド](https://method5.github.io/user_guide/#services_for_non_dbas)を参照してください。 (私はそのページのリンクを修正する必要があります、私はすぐにそれを行います。) –

+0

ありがとうございます。助けになる。 –

関連する問題