sql >> データベース >  >> RDS >> PostgreSQL

postgresql内で分散トランザクションを処理する方法は?

    少し混乱しているようです。一般に、データベースシステムは、分散トランザクションタイプの2つの概念をサポートしています。

    • ネイティブ分散トランザクションと
    • XAトランザクション。

    ネイティブ分散トランザクションは通常、同じRDBMSの異なるサーバー間で行われます。 Postgresはdblink_execコマンドでもこれをサポートしています。通常、他のサーバーへの接続は、いわゆるデータベースリンクによって作成されます。 Postgresは、他の商用グレードのRDBMSよりも使用するのが少し不器用です。データベースリンクを使用できるようにするには、最初に拡張機能をインストールする必要があります。ただし、postgresrdbmsがトランザクションを管理しています。

    一方、XAトランザクションは、外部トランザクションマネージャー(TM)によって管理され、参加している各データベースには、トランザクションマネージャーに参加するXAリソースの役割があります。 RDBMSは、トランザクションをいつコミットするかを自分で決定できなくなりました。これはXAトランザクションマネージャーのタスクです。彼は2PCプロトコルを使用して、変更がデータベース全体で一貫した方法で適用またはロールバックされていることを確認します。

    Windowsなどの一部のOSでは、トランザクションマネージャーは他のOSのオペレーティングシステムの一部ではありません。通常、Javaにはトランザクションマネージャーが付属しており、対応するデータソースはXAを使用するように構成する必要があります。




    1. MOOCプラットフォームのデータベースモデル

    2. 自己署名証明書を使用して、PostgreSQLSSL接続を錆びた状態で使用する

    3. 複合主キーを使用したYiiモデル

    4. 非インタラクティブ形式でOpatchを実行する方法