下記の続き

--- ここから課題20180303に書いたpostgresqlの課題リスト ---

・transaction log

・pg-dump

・PostgreSQLのファイル上のキャッシュ/バッファ

・PostgreSQLのメモリ上のキャッシュ/バッファ

・PostgreSQLの各メモリヒープの種類、内容、確認方法、変更方法

・PostgreSQLの各メモリヒープの種類、内容、確認方法、変更方法

・PostgreSQLの自動バキュームデーモンとは?

・PostgreSQLの構成、仕組み、動作原理

・PostgreSQLのリソース確認方法

・PostgreSQLのパフォーマンス確認方法

・PostgreSQLのログの種類と内容

・PostgreSQLのパフォーマンスチューニング

・PostgreSQLのオンラインバックアップ

・PostgreSQLのローカルHAクラスタ化

・PostgreSQLのDRレプリケーション

・PostgreSQLのスケールアウト(負荷分散クラスタ化)

--- ここまで ---

---ここから ミドルウェアの状態確認と性能評価およびチューニング に書いた疑問---

■RDBMSやJVMは起動したら、OSからまとまった量のヒープ領域をmallocしてキープする。

これらのミドルウェアは、多めのヒープ領域を確保して、その中から必要な分を切り出してサブコンポーネントやプログラムにアサインする。

なので、OSからは、これらのミドルウェアが実際どれだけメモリを使用していて、枯渇までどのくらい余裕があるのか把握できない。

なので、RDBMSやサーブレットコンテナのヒープ使用率などは、これらプロダクト側で用意されたツールを使って状態確認や監視をしないといけない。

上記はpostgresqlの場合も当てはまるか調べる

■PostgreSQLのトランザクションログは時刻逆行で壊れないらしい?

■PostgreSQLのオンラインバックアップはテーブルロックではなく、トランザクションログからSQLを再実行する方式なのでテーブル間の不整合は起こらないらしい?

■ディスク上のオブジェクト

・システム寄りのオブジェクト

- バッファやキャッシュ

- テンポラリファイル

- トランザクションログ

- その他管理データを含むファイル類

・データ寄りのオブジェクト

- テーブル

- インデックス

■メモリ上のオブジェクト

・バッファ、キャッシュ

・スタック

・その他のヒープ

■CPU負荷が高くなる処理

■ディスクIOが高くなる処理

■リソース枯渇を引き起こす箇所

■データロストになりかねない箇所

・オンラインバックアップ

・HAクラスタのフェールオーバ/フェールバック

・表領域の破損

・バッファの枯渇

・トランザクションログの破損

・レプリケーションの失敗

・異常終了

■ダウンタイムを引き起こしかねない箇所

・ヒープの枯渇

・OS領域のメモリ枯渇からswapout

・処理の遅延

・異常終了

・ハング

■セキュリティインシデントになりそうな箇所

【方針】

データ構造と投げるSQLを設計してシングル構成DB2とWASでWebアプリと集計ジョブを作る

・PostgreSQL silver資格本全部やってみよう

・PostgreSQL gold資格本買ってやってみよう

・資格受けてみよう

・PostgreSQLだけじゃなくSQL、データ構造に関する共通の基礎を抑えよう

・他のRDBMSとの相違を理解しつつ、RDBMSに共通の一般的な知見を帰納しよう

・RDBを含めたDBに対する機能要件、非機能要件を調べてDBやデータ構造設計に対して知見を持とう

 - いくつかの典型的なありがちの業務システムのRDB

 - CMSのRDB

 - 掲示板のRDB

 - 勘定系のRDB

  ミッションクリティカル。日中はオンライントランザクション処理、夜間はバッチ処理

 - デジタルアーカイブのような画像や動画データを格納するデータベースの要件

 - memcachedのような特定用途で超高速DB

 - 大規模なDB

 - クラウドで利用される、スケーラビリティ、高速性、冗長性を備えたストレージ

 - 検索エンジンに使われるインデックスの特徴

 - OSのあちこちで使われていたBerkeley DBとは?

 - 監視マネージャのRDBが備えるべき特徴

 - ジョブマネージャのRDBが備えるべき特徴

 - そもそもテキストファイル一枚のDBの限界。あるいはそれで充分なケース

 - データウェアハウス

 - ビッグデータを格納するDB

・RDB以外のDBについても考えてDBに共通の一般的な知見を帰納しよう

 - NoSQL

  グラフ型DBとは?

 KVSとは? 

  Radis

  mongoDBとは?

 - ファイルシステム

 OS標準のファイルシステムの機能だけでどこまで、信頼性、高速性、整合性などを持たせる

 ことができるか?

 - 分散ストレージ

 Hadoop

 GlusterFS

 Spark

   hadoopより後発でイケてるらしい

 - ディレクトリ

  LDAP

 - solrのインデックス

 - その他

--- ここまで ---

 

 

postgreSQL その7 設定ファイル

postgreSQL その6 標準ツール その2

postgreSQL その5 標準ツール その1

postgreSQL その4

postgreSQL その3

postgreSQL その2

postgreSQL その1

 

 

■pg_dumpコマンド再考

・copyコマンドでバイナリファイルの入力と出力
・pg_dumpとpg_dumpallの違い
・pg_dumpやpg_dumpallを使うとなんで静止点を作らなくてもデータベースのバックアップを取得できるのか?
・いろいろなDDL、DML、DCLのpg_dump出力ファイルの表現

・pg_dumpで出力されるdumpファイル内のcopyコマンドのオプションで「stdin」を指定している場合、copyコマンドの行の続く行に、stdinで入力されるデータストリームを書き込めるのか?

※データストリームはバイナリの場合は見たところ見たところ16進数データのようだ。

ASCIIテキストデータやマルチバイトコードテキストデータの場合はどうなるんだろう?


■postgresqlのトランザクションログ
DB2と比べてどんな仕様の違い、確認やチューニング用のツールとしてどんなものがあってどんなことをかくにんできるのかDB2と比較してみる。

※DB2には確認やチューニング項目が非常に多く、ツールも充実していた。 別のRDBMSと比較することで、PostgreSQLのドキュメントだけでは読み取れないPostgreSQLがどんなRDBMSなのかを把握する。


■extensionとは


■スキーマ再考


■そもそもデータベースの設計
・postgresql資格本の第一章
※論理設計とかER図とか


■そもそもsql


■そもそもデータベースの物理設計


■データベースのパフォーマンス計測とロギングとチューニング

■そもそもDBのレプリケーションとバックアップ

 

■postgresqlのHAクラスタ化

■postgresqlの負荷分散クラスタ化