initdb
https://www.postgresql.jp/document/11/html/app-initdb.html
- initdb
- pg_ctl initdb
PostgreSQL のデータベースクラスタを作成する。
- テンプレートデータベース template0 を作成。
- template0 をコピーして、テンプレートデータベース template1 を作成。
- template1 をコピーして、データベース postgres を作成。
データベースクラスタは、セキュリティ上の理由から、データベースクラスタを作成したユーザ(initdbを実行したデータベース管理者ユーザ)以外は読み書きができないようになっている。
template0 はテーブルを追加できないが、template1 はできる。
デフォルトでは、template0には誰も接続できない。
デフォルトの文字セットは -E オプションまたは --encoding オプション、デフォルトのロケールは --locale オプションで指定する。
パスワードは --pwfile オプションにより、スーパーユーザのパスワードが記述されたファイルを指定する、または -W オプション、--pwprompt オプションによりスーパーユーザのパスワードを入力させて設定することができる。
データベースクラスタは、格納先のディレクトリとサーバが稼働するポート番号の組み合わせで特定される仕組み。
「-U」または「--username」オプションを指定しない場合は、コマンドを実行したOSユーザ名でスーパーユーザが作成される。
「-E」または「--encoding」オプションでエンコーディングを指定しない場合は、OSのロケールが使用される。
データベースクラスタの作成時にデフォルトでpublicスキーマを作成する。
受験対策
2.07_Silverの例題解説「S2 運用管理 - S2.1 インストール方法」
2.25_Silverの例題解説「S2 運用管理 - S2.1 インストール方法」
https://oss-db.jp/sample/silver_management_03/41_140415
2.55_Silverの例題解説「S2 運用管理 - S2.1 インストール方法(initdbコマンドの使い方)」
2.56_Silverの例題解説「S2 運用管理 - S2.1 インストール方法(テンプレートデータベース)」
2.57_Silverの例題解説「S2 運用管理 - S2.1 インストール方法(データベースクラスタの概念と構造)」
2.71_Silverの例題解説「S2 運用管理 - S2.1 インストール方法(initdbコマンドの使い方)」
2.72_Silverの例題解説「S2 運用管理 - S2.1 インストール方法(データベースクラスタの概念と構造)」
2.73_Silverの例題解説「S2 運用管理 - S2.1 インストール方法(テンプレートデータベース)」
テンプレートデータベースは、データベースカタログpg_databaseのdatistemplateがtrueになっていること。
2.91_Silverの例題解説「S2 運用管理 - S2.1 インストール方法(initdbコマンドの使い方)」
2.92_Silverの例題解説「S2 運用管理 - S2.1 インストール方法(データベースクラスタの概念と構造)」
2.93_Silverの例題解説「S2 運用管理 - S2.1 インストール方法(テンプレートデータベース)」
2.93_Silverの例題解説「S2 運用管理 - S2.1 インストール方法(テンプレートデータベース)」
テンプレートデータベースは、DROP DATABASEで削除できない。
テンプレートデータベースの所有者が誰であっても、CREATEDB権限のあるユーザはそれを複製できる。
2.112_Silverの例題解説「S2 運用管理 - S2.1 インストール方法(initdbコマンドの使い方)」
2.113_Silverの例題解説「S2 運用管理 - S2.1 インストール方法(データベースクラスタの概念と構造)」
レプリケーションなどの手法を使って、データベースクラスタ全体を複製する。
pg_ctl
https://www.postgresql.jp/document/11/html/app-pg-ctl.html
- データベースの管理者ユーザ(多くの環境ではpostgres)でのみ実行できる。
- pg_ctl
- start バックグラウンドで起動する。
- kill プロセスにシグナルを送信する。
- TERM(pg_ctl stop -m smartと同じ処理)
- INT(pg_ctl stop -m fastと同じ処理)
- QUIT(pg_ctl stop -m immediateと同じ処理)
- HUP(pg_ctl reloadと同じ処理)
pg_ctl stop
- pg_ctl stop -m {オプション}
PostgreSQLバージョン9.5以降は -m fast がデフォルトになっている。
コマンド実行直後から、新しいクライアントからの接続は禁止される。
オプション-t 待ち時間の指定。デフォルトで 60秒。
受験対策
2.11_Silverの例題解説「運用管理 - S2.2 標準付属ツールの使い方(pg_ctl)」
2.24_Silverの例題解説「S2 運用管理 - S2.2 標準付属ツールの使い方」
https://oss-db.jp/sample/silver_management_02/35_131113
https://oss-db.jp/sample/silver_management_04/74_170619
https://oss-db.jp/sample/silver_management_05/94_190312
2.105_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業(PostgreSQLの起動・停止方法)」
https://oss-db.jp/sample/silver_management_06/114_210603
2.125_Silverの例題解説「S2 運用管理 - S2.5 基本的な運用管理作業(PostgreSQLの起動・停止方法)」