OSS-DBプログラム

OSS-DB Silver 暗記 B-1

運用管理(52%):::インストール方法【重要度:2】dokoQL不可

 

DBC(Database Cluster)

 

  • DBC の実態は1つのディレクトリ(例. /home/postgres/data)
$echo  $PGDATA
/home/postgres/data

 

  暗記  

  • 1つのPostgreSQLサーバは、1つのデータベースクラスタ(DBC)だけを使う
    • PostgreSQLサーバ ⇔ DBC: 1 対 1

 

ディレクトリ構成

DBC directory structure
Fig.1 DBC directory structure

PostgreSQL 11.5文書:68.1. データベースファイルのレイアウト

 

  暗記  

  • ベース(base)はワル(pg_wal)だな

 

 

 

DB(Database)

 

  • DBCに、複数のDBを作成できる(例. postgres, examdb)
    • DBC ⇔ DB: 1 対 多
  • テンプレートデータベース
    • template0:内容変更不可
    • template1:内容変更可:デフォルト
  • postgres はtemplate1 をコピーして作成される
postgres=# select oid, datname from pg_database;
oid    |  datname
-------+-----------
 13285 | postgres       -- 最初から用意されている
     1 | template1      -- 最初から用意されている
 13284 | template0      -- 最初から用意されている
 16447 | examdb         -- 後から作成した
(4 rows)

 

  • DB の実態は1つのディレクトリ(例. $PGDATA/base/16447)
$ pwd
/home/postgres/data/base
$ ls -la
drwx------. 6 postgres postgres   50 8月  7  2020 .
drwx------.20 postgres postgres 4096 3月 15 12:12 ..
drwx------. 2 postgres postgres 8196 8月  8  2020 1
drwx------. 2 postgres postgres 8196 5月  5  2020 13284
drwx------. 2 postgres postgres 8196 3月 15 12:12 13285  -- postgres
drwx------. 2 postgres postgres 8196 2月  2 10:10 16447  -- examdb

 

 暗記 

  • template の意味は、型板、鋳型、ひな形、など
  • 0 と 1 だと、0 の方が根源的
    • template0:より根源的:内容を変更できない
    • template1:新規作成DB のひな形:内容変更可

 

 

 

initdb

  • 概要:initdb は、DBC を作成するコマンド

 

 暗記 

  • initdb は DBC を作成するコマンド
    • initdb は root 以外の OSユーザ(例. postgres)で実行する
      • initdb を実行した OSユーザは、管理ユーザと呼ばれる
  • PGDATA未使用時は、-D オプションは必須
    • 指定したディレクトリは「」必須
  • エンコーディング:○(UTF8, EUC), ×(SJIS)

 

  • 機能:指定したディレクトリにDBCを作成(例. /home/postgres/data)
  • 書式initdb [ options ] [ directory ]
    • options
      • –no-locale(–locale=C と同義):ロケールを無効にする(推奨)
      • -D, –pgdata=directory:DBCのディレクトリを指定。未指定:PGDATA使用
      • -E, –encoding=encoding:エンコーディングを指定。未指定:OSのロケールから決まる
      • -U, –username=username:DB のスーパーユーザを指定。未指定:管理ユーザ
    • directory
      • 例. /home/postgres/data

 

$initdb --no-locale -D /home/postgres/data

 

 

initdb PostgreSQL
Fig.1 initdb

 

  • オプション
    • −D: Directory:−D /home/postgres/data
    • −E: Encoding: −−encoding=UTF8
    • −U: Username:

 

 

  • エンコーディング

DB encoding PostgreSQL

    • 〇:UTF8, EUC
    • ×:SJIS

 

 

参考

 

コメントを残す

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