OSS-DBプログラム

OSS-DB Silver 暗記 B-2

運用管理(52%):::標準付属ツールの使い方【重要度:5】dokoQL不可

 

pg_ctl

 

  • 概要:pg_ctl はDBC を起動・停止させるコマンド

 

機能

  • 名前:由来 program_control → pg_ctl  ← 推測!
  • 特徴:PostgreSQL が稼働しているホスト上のみで実行
    • リモートで実行できない
  • 機能:DBC の
    •  起動start・停止stop・再起動restart
    •  設定ファイル再読込reload
    •  起動確認status
    •  作成init[db]・・・initdb を呼び出す(同義)
pg_ctl PostgreSQL
Fig.1 pg_ctl
  • Fig.1 の説明
    • pg_ctl でDBC を起動start・停止stop
    • DBC 起動中に設定ファイルを読み込むreload
    • DBC の状態(起動/停止)を確認status
    • DBC を新規作成init

 

  暗記  

  • pg_ctl でDBC を起動start・停止stop させる
  • pg_ctl はリモートで実行できない
  • pg_ctl にはその他の機能もある
    • reload, status, init

 

書式

  • pg_ctl  { start | stop | restart } 【 options
  • pg_ctl  { reload | status | init } 【 options
  • options
    • -D, –pgdata=DBC: Directory
    • -t 最大待ち時間
    • -m {s[mart],f[ast],i[mmediate]}:shutdown mode

 

:status と start / stop

$ pg_ctl status
pg_ctl: no server running
$ pg_ctl start -D /home/postgres/data -w  -- DBC start
server started
$ pg_ctl status
pg_ctl: server is running
$pg_ctl stop -D /home/postgres/data       -- DBC stop
server stopped
$ ▯

 

 

psql

 

  • 概要:psql はDBに接続するコマンド

 

  • 名前:由来は、PostgreSQLPSQLpsql ← 推測!
  • 機能:DB接続など
  • 書式:psql 【 オプション】【DB名】

 

一瞬DB接続し、すぐにpsqlを終了

  • オプション
    • -l、–list                     : DB一覧表示
    • -c、–command         : コマンド実行
    • -f、–file=ファイル名: バッチファイル実行

 

:DB一覧表示

[postgres]$ psql -l
-----------+----------+-----------+---------+-------+-------------------
   Name    |  Owner   | Encoding  | Collate | Ctype | Access privileges
-----------+----------+-----------+---------+-------+-------------------
 examdb    | postgres | SQL_ASCII | C       | C     |
 postgres  | postgres | SQL_ASCII | C       | C     |
 template0 | postgres | SQL_ASCII | C       | C     |
 template1 | postgres | SQL_ASCII | C       | C     |
-----------+----------+-----------+---------+-------+-------------------

[postgres]$ ▯

 

DB接続

  • オプション
    • ホスト名 :-h、-host
    • ポート番号:-p、-port
    • ユーザ名 :-U、-username

 

:一般ユーザ(user1)でDB(examdb) に接続

$ [postgres]psql -U user1 examdb
examdb=> ▯

 

メタコマンド

  • \q(\quit)                         : psql終了
  • \l(\list)                            : DB一覧表示
  • \password 【ユーザ名】    : パスワード変更
  • \d                                        : テーブル・ビュー・シーケンス一覧表示
  • \copy                                  : PostgreSQL と psql 間でのテーブルデータコピー
  • \d@:@∈{ u,n,t,i,v,s,S,f,p } : 各種情報の一覧表示
    • u:user                :DBユーザ
    • n:schema           :スキーマ
    • t:table                :テーブル
    • i:index                :インデックス
    • v:view                 :ビュー
    • s:sequence         :シーケンス
    • S:system catalog:システムカタログ
    • f:function            :関数
    • p:privileges         :権限(\z の別名)

 

  暗記  

  • 火星上(schema)に(user)が立っている
    • 火星(異空間)→ 名前空間(n:name space)→ スキーマ
  • 人の前にテーブル(table)があり、使用制限(privileges)がある
    • テーブル → ビュー(view)・シーケンス(sequence)
  • テーブル上に関数(function)のカタログ(catalog)があり、索引(index)が付いている
meta command postgreSQL
Fig.2 meta command

※たとえ話は、適宜、読み替えてください

 

:display user(\du)

examdb=> \du;
----------+------------------------------------------------------------+----------- 
Role name |              List of roles Attributes                      | Member of
----------+------------------------------------------------------------+-----------
postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
user1     | Create role, Create DB                                     | {}
user2     |                                                            | {}
----------+------------------------------------------------------------+----------- 

examdb=> ▯

 

DBユーザ

 

  • 概要:DBユーザは、スーパーユーザ一般ユーザに大別できる

 

DBユーザ権限

  • superuser : スーパーユーザ権限
  • createrole : ユーザ作成権限
  • createdb   : DB作成権限
  • login         : ログイン権限

 

DB superuser PostgreSQL
Fig.3 DB superuser
  • Fig.2 の説明
    • スーパーユーザはすべての権限を持つ

 

  暗記  

  • 権限には、スーパーユーザ権限がある
  • 権限には、作成権限(ユーザ・DB)とログイン権限がある

 

createuser

  • 機能:DBユーザ作成
  • 書式:createuser 【 オプション 】【 ユーザ名 】
  • オプション:ユーザに関する各種情報を設定
    • password   : -P, –pwprompt
    • superuser   : -s, –superuser         :  -S, –no-superuser(default)
    • createrole  : -r, –createrole          :  -R, –no-createrole(default)
    • createdb    : -d, –createdb           :  -D, –no-createdb(default)
    • login          : -l, –login(default):  -L, –no-login

※default:例えば、-s と -S の両方を記述していないときは、-S を記述したとみなす

 

  暗記  

  • パスワードを付ける: -P(password の頭文字)
  • 各種権限を付ける
    • 小文字: -s, -r, -d, -l
  •  各種権限を付けない
    • 大文字:-S, -R, -D, -L
  • デフォルト
    • パスワード付けない
    • -S, -R, -D, -l

 

[postgres]$ createuser -P -l user3
Enter password for new role:123456  -- 123456は、実際には見えない
Enter it again:123456               -- 123456は、実際には見えない
[postgres]$ ▯
[postgres]$ createuser -s suser1
[postgres]$ ▯
[postgres]$ psql -c "\du"
-----------+------------------------------------------------------------+-----------
 Role name |             List of roles Attributes                       | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 suser1    | Superuser, Create role, Create DB                          | {}
 user1     | Create role, Create DB                                     | {}
 user2     |                                                            | {}
 user3     |                                                            | {}
-----------+------------------------------------------------------------+-----------

[postgres]$ ▯

 

dropuser

  • 機能:DBユーザ削除
  • 書式:dropuser 【 -i 】【 ユーザ名 】
    • interactive:-i, –interactive

 

[postgres]$ dropuser -i user3
Role "user3" will be permanently removed.
Are you sure? (y/n) y
[postgres]$ ▯
[postgres]$ dropuser suser1
[postgres]$ ▯

 

createdb

  • 機能:DB 作成
  • 書式:createdb 【 オプション 】【 データベース名 】
  • オプション:ユーザに関する各種情報を設定
    • encoding :-E, –encoding=エンコーディング
    • locale       :-L, –locale=ロケール
    • owner      :-O, –owner=ユーザ名
    • template  :-T, –template=DB名

 

[postgres]$ creatdb -U user1 -E EUC_JP -T template0 db1
[postgres]$ psql -U user1 db1

db1=> \l
-----------+----------+-----------+---------+-------+-------------------
   Name    |  Owner   | Encoding  | Collate | Ctype | Access privileges
-----------+----------+-----------+---------+-------+-------------------
 db1       | user1    | EUC_JP    | C       | C     |
 examdb    | postgres | SQL_ASCII | C       | C     |
 postgres  | postgres | SQL_ASCII | C       | C     |
 template0 | postgres | SQL_ASCII | C       | C     |
 template1 | postgres | SQL_ASCII | C       | C     |
-----------+----------+-----------+---------+-------+-------------------

db1=> ▯

 

createdb PostgreSQL
Fig.4 createdb

 

  暗記  

  • createdb:Encoding, Locale, Template, Owner

 

dropdb

  • 機能:DB 削除
  • 書式:dropuser 【 -i 】【 データベース名 】
    • interactive:-i, –interactive

 

[postgres]$ dropdb -i db1
Database "db1" will be permanently removed.
Are you sure? (y/n) y
[postgres]$ ▯

 

参考

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です