100日でPostgreSQLをマスター(10日目)~標準付属ツール~

PostgreSQL
※アフィリエイト広告を利用しています

 

Yukiです。

今日は標準付属ツールについて勉強しました。

 

広告

標準付属ツール

OSコマンドとして実行するPostgreSQL製品に標準で付属しているツール群です。

pg_ctl

PostgreSQLを起動・停止するコマンドです。

~ctlというと、systemdのsystemctlやOracle RACのsrvctl, crsctlに似てますね。

 

起動するには、

pg_ctl start

停止するには、

pg_ctl stop

です。

起動・停止は、データベースクラスタ全体が対象で、Oracleのマルチテナントが個別にPDBを起動・停止できるのとは違いますね。

 

停止時は、モードを指定できます。

接続が切断されるのを待って終了する。

(OracleのSHUTDOWN NORMAL)

pg_ctl stop -m smart

 

接続を切断、処理中のトランザクションはロールバックして、すぐに終了する

(OracleのSHUTDOWN IMMEDIATE)

pg_ctl stop -m fast

 

強制的に即時終了する

(OracleのSHUTDOWN ABORT)

pg_ctl stop -m immediate

 

immediateの意味が違うのがややこしいですね。

 

一度停止した後、起動をかける

pg_ctl restart

 

設定ファイルを読み直す

pg_ctl reload

これらのコマンドはOracleにはありませんね。

 

また、接続確認するコマンドも覚えておいたほうがよさそうです。

pg_ctl status

障害が起きた時によく使いそう。

create~

ユーザを作成する。

createuser

DBを作成する。

craetedb

例えば、user1ユーザで、sampledbデータベースを作る場合は、下記のようになります。

createdb -U user1 sampledb

 

オプションはしっかり覚えていこうと思います。

エンコーディングやロケールをデータベースクラスタの設定と別にする場合、template0を元に作成する必要があります。

createdb -U user1 -E EUC_JP -l C -T template0 sampledb2

 

ちなみに、実践的な知識として、エンタープライズ用途で使う場合は、ロケールをどうするか検討する必要があるようです。

ロケールにCかPOSIX以外を指定すると、文字列比較の性能が劣化する可能性があるとのこと。

特にinitdb時にロケールの指定を省略すると、環境変数LANGを元にロケールが選択されるので要注意です。

PostgreSQL自習書 P8)

psql

PostgreSQLサーバに接続するためのコマンドラインユーティリティ。

OracleのSQL*Plusみたいなのです。

メタコマンドがたくさんありますね。

データベースの一覧を表示する

\l

テーブル、ビュー、シーケンスの一覧を表示する

\d

テーブルの一覧を表示する

\dt

これは覚えるのが結構大変そうです。

よく使うのは覚えるんですかね。

みなさん、どうやって覚えているのでしょう。

スーパーユーザ

結局、スーパーユーザが良くわかりませんでした。

なんか権限の強いユーザというイメージですが、定義としてどうなんでしょう。

下記の特徴があるようですが、明確な定義がわかりませんでした。

  • スーパーユーザはデータベースを作成できる
  • スーパーユーザはユーザを作成できる
  • スーパーユーザだけがスーパーユーザを作成できる
  • スーパーユーザだけが変更できるパラメータがある(SETコマンド参照

別途、データベースの作成権限やユーザの作成権限があれば、それぞれ作成できますし。

PostgreSQL14マニュアル付録の用語集にも載ってないようです。

まとめ

今回は、標準付属ツールについて一応学習しました。

スーパーユーザなど、よくわからないまま置いてあるものもありますが、とりあえず試験を受ける分には大丈夫でしょう。今はあまりこだわらずに先に進みます。

 

<9日目 | 目次 | 11日目>

<<1日目から読む

Photo by Bisakha Datta on Unsplash

 

 

コメント

タイトルとURLをコピーしました