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マニュアル付録の用語集にも載ってないようです。
まとめ
今回は、標準付属ツールについて一応学習しました。
スーパーユーザなど、よくわからないまま置いてあるものもありますが、とりあえず試験を受ける分には大丈夫でしょう。今はあまりこだわらずに先に進みます。
Photo by Bisakha Datta on Unsplash
コメント