データベース管理では、オープンソースデータベースの管理を簡素化するのに役立つ多くのツールが使用されています。これらのタイプのアプリケーションを使用する利点は、データベース内のさまざまなオブジェクト(テーブル、インデックス、シーケンス、プロシージャ、ビュー、トリガーなど)の可用性メニューであるため、ネイティブデータベースクライアントを使用するときにコマンドラインを使用する必要がありません。 。メニューを閲覧するだけで、すぐに画面に表示されます。
このブログでは、pgAdminと呼ばれるPostgreSQL用のサードパーティのデータベース管理アプリケーションの1つを確認します。これは、テーブル、インデックス、ビュー、トリガー、ストアドプロシージャの作成に至るまで、データベース管理に役立つオープンソースのデータベース管理ツールです。それに加えて、pgAdminは、セッション、1秒あたりのトランザクション数、およびロックに関連する情報についてデータベースを監視することもできます。
pgAdminモニタリング
pgAdminには、データベースの現在の状態を理解するための貴重な洞察となるメトリックがいくつかあります。 pgAdminの表示指標は次のとおりです。

ダッシュボードでは、データベースへの着信接続に関連する情報を監視できます。サーバーセッションを介して。データベース内のコミットトランザクション、ロールバック、および1秒あたりの合計トランザクションに関連する情報は、[1秒あたりのトランザクション]画面に表示されます。のタプルには、データベースでのタプルの挿入、更新、削除の合計に関連する情報が含まれています。タプルアウトには、データベースからクライアントに返されるタプル情報が含まれています。タプル自体は、PostgreSQLでの行の用語です。メトリックブロックI/Oには、ディスク情報に関連する情報が含まれています。これには、データベースキャッシュから読み取られたブロックとフェッチされたブロックの両方が含まれます。
サーバーアクティビティには、実行中のセッション、データベースで発生するロック、クエリからのプリペアドステートメント、およびデータベース構成に関連する情報が含まれます。下の写真に示すように。

[プロパティ]で、実行中のPostgreSQLデータベースに関連する情報を確認できます。アクセスされるデータベース名、サーバータイプ、データベースバージョン、IPアドレス、使用されるユーザー名など。

SQLには、選択したオブジェクトから作成された生成されたSQLスクリプトに関連する情報が含まれています次のように:

強調表示されたオブジェクトの情報は、次のように詳細に表示されます。オブジェクトを再構築するためのスクリプト。
[統計]タブでは、データベースで実行されている各オブジェクトから収集された統計に関連する情報がメニューに表示されます。

例として、上記の表にはタプルに関する情報が含まれています(挿入、更新) 、削除、ライブ、デッド)。バキュームと自動分析に関連する情報もあります。
Vacuumは、データベース内のデッドタプルをクリーンアップし、デッドタプルが使用するディスクストレージを再利用するために実行されます。関数を自動分析してオブジェクトの統計を生成し、オプティマイザーがクエリの実行プランを正確に決定できるようにします。
ClusterControlPostgreSQLモニタリング
ClusterControlには、PostgreSQLデータベースに関連するさまざまなメトリックがあり、[概要]、[ノード]、[ダッシュボード]、[クエリモニター]、および[パフォーマンス]タブにあります。次のメトリックがClusterControlに表示されます。

[概要]セクションには、接続、数などのサーバー負荷メトリックに関連する情報が含まれています挿入、削除、更新、コミットとロールバック、および接続。さらに、下の図に示すように、ヘルスノード、PostgreSQLデータベースのレプリケーションステータス、サーバー使用率に関連する情報などの情報があります。

[ノード]タブには、CPUから始まるサーバー側のグラフ関連情報が表示されます使用率、メモリ、ディスク使用量、ネットワーク、およびスワップ使用量。

ダッシュボードには、システムの概要、クラスターの概要、 PostgreSQLの概要。オプションごとに、実行中のシステム状態に関連するさまざまなメトリックがあります。たとえば、PostgreSQLの概要メトリックには、データベースからの負荷平均、使用可能なメモリ、ネットワークの送受信に至るまでの情報があります。

クエリモニターには、データベースで実行されるクエリの実行に関連する情報が含まれています。実行中のクエリ、実行時間、送信元クライアントアドレス情報、およびセッションの状態を確認できます。さらに、Kill session機能があり、データベースで遅延が発生する原因となるセッションを終了できます。クエリモニターからの表示は次のとおりです。

クエリの実行に加えて、クエリ統計情報を表示することもできます。シーケンシャルスキャンまたはインデックススキャンによるアクセスから、テーブルI / O統計、インデックスI / O統計、データベースサイズ、上位10の最大テーブル。
[パフォーマンス]タブには、データベース変数と現在実行中の値に関連する情報が含まれます。また、発生した警告のフォローアップに関連する入力を提供するアドバイザーがあります。

データベースとテーブルの増加は、DB Growthメニューでも監視でき、これらのデータベースとテーブルの増加のメトリックを分析することで、ストレージのニーズや実行されるその他のアクションを予測できます。
pgAdminを使用したPostgreSQL管理タスク
pgAdminには、テーブル、インデックス、ユーザー、テーブルスペースの作成に至るまで、データベース管理とデータベース内のオブジェクトに関するさまざまな機能があります。 pgAdminのさまざまな機能は、データベースオブジェクトの管理を非常に簡単にするため、開発者とDBAの両方にとって非常に便利です。以下は、pgAdminのメニューツリーの外観です。

ハイライトするオブジェクトを右クリックするだけで、そこに移動できますそのオブジェクトから実行できるアクションになります。たとえば、[データベース]を強調表示すると、次のような新しいデータベースを作成できます。

データベース名情報を入力するためのダイアログボックスが表示されます。作成するデータベースの所有者、使用するエンコーディング、データベースで使用するテーブルスペース、データベースへのセキュリティアクセス。

アクセスする権利を持つユーザーと、付与される特権。
ClusterControlを使用したPostgreSQL管理タスク
ClusterControlは、次の図に示すように、ユーザー管理に付与されるユーザーと特権を作成することもできます。

ClusterControlを使用すると、高可用性PostgreSQLデータベースをデプロイできます。 PostgreSQLの管理は、ダッシュボードのメニューをクリックするのと同じくらい簡単です。以下に示すように、クラスター側でPostgreSQLを管理するための機能がいくつかあります。たとえば、ロードバランサーの追加、レプリケーションスレーブの追加、クラスターリカバリの有効化/無効化、ノードリカバリなどです。

新しいPostgreSQLクラスターを作成して、実行中のPostgreSQLクラスターから複製することもできます。クラスタ、[スレーブクラスタの作成]メニュー項目を使用します。クラスタ間レプリケーションは、ClusterControlによって提供される新機能です。
ノード側では、ホストの再起動、ノードの再起動、ノードの停止、スレーブの昇格、スレーブの停止など、実行できるデータベース管理タスクがいくつかあります。 SSHコンソールを介してリモートでホストにアクセスできます。

レプリケーションスレーブの再構築は、壊れたスレーブサーバーを自動的に修正するための優れた機能です。修理。スレーブを停止し、その内容を消去して、マスターサーバーから新しいバックアップをストリーミングします。バックアップが適用されると、レプリケーションが再開され、マスターに再び追いつくことができます。クリックするだけですべてが完了します。

PostgreSQLトポロジアーキテクチャの現在の状態を視覚化する機能もありますClusterControlで。

これは、現在のPostgreSQLクラスターに関する有用な情報を一目で提供します。ノード間の遅延、データベースの稼働時間、使用するデータベースのバージョン、同期の状態、レプリケーションの遅延など。

分散データベース環境を実行するには、通常、何らかの負荷分散とトラフィック制御が必要です。 、複数のデータベースインスタンスがあり、アプリケーションは、どれが書き込み可能マスターで、どれが読み取り専用スレーブであるかを追跡しないためです。 ClusterControlを使用すると、この目的のためにHAProxyを統合できます。 HAProxy自体は、Keepalivedを使用して高可用性を実現できるため、プライマリHAProxyロードバランサーがダウンした場合に、アプリケーションは別のインスタンスにフロートされた1つの仮想IPアドレスを使用して接続できます。
ClusterControlには、運用レポートなどの他の機能があり、サーバーの使用状況、稼働時間、セキュリティ、および容量に関する分析を週単位または月単位で提供します。 pgAdminはデータベース内のオブジェクトの操作に優れていますが、ClusterControlはシステムの操作と維持を目的としています。