OSS-DB Silver 暗記 B-2
Contents
運用管理(52%):::標準付属ツールの使い方【重要度:5】dokoQL不可
pg_ctl
- 概要:pg_ctl はDBC を起動・停止させるコマンド
機能
- 名前:由来 program_control → pg_ctl ← 推測!
- 特徴:PostgreSQL が稼働しているホスト上のみで実行
- リモートで実行できない
- 機能:DBC の
- 起動start・停止stop・再起動restart
- 設定ファイル再読込reload
- 起動確認status
- 作成init[db]・・・initdb を呼び出す(同義)
- 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に接続するコマンド
- 名前:由来は、PostgreSQL → PSQL → psql ← 推測!
- 機能: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)が付いている
※たとえ話は、適宜、読み替えてください
例: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 : ログイン権限
- 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: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]$ ▯
参考
- IT資格といえばLPI-Japan | LinuC/OSS-DB/HTML5/ACCEL/OPCEL
- PostgreSQL 11.5文書
- OSS教科書 OSS-DB Silver Ver2.0対応
- 徹底攻略OSS-DB Silver問題集[Ver.2.0]対応
- dokoQL 学習用オンラインSQL実行環境
- スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)