PostgreSQLのマスタ判断
PostgreSQLのストリーミングレプリケーションで、どちらのサーバがマスタとして動作しているのか、判断する方法です。
リカバリ中かを判定する関数を実行し、確認します。スレーブでは、マスタのWALを受け取り、リカバリを行うため、常にリカバリ中となります。
1.マスタとして動作していた場合 ※
$ psql -h localhost -c "SELECT pg_is_in_recovery();" pg_is_in_recovery ------------------- f (1 行)
2.スレーブとして動作していた場合
$ psql -h localhost -c "SELECT pg_is_in_recovery();" pg_is_in_recovery ------------------- t (1 行)
※ ただし、スタンドアローンで動作している場合も、fとなるので注意が必要。
マスタとして動作しているのか、スタンドアローンで動作しているかは、
以下のコマンドで確認する。
スタンドアローンの場合、データが表示されない。
$ psql -h localhost -c "SELECT * FROM pg_stat_replication"
PostgreSQLでインデックスが使用されないSQL
以下にURLにインデックスが使用されないSQLが発見されたとのブログがあったので、忘れないようにメモ。
http://www.databasesoup.com/2014/05/new-finding-unused-indexes-query.html
-
可能な限り、PostgreSQLのクエリの見直しを行っている。
http://www.databasesoup.com/2014/04/new-new-index-bloat-query.html
上記の他にも、インデックスが使用されないクエリがある。以下のURLが参考になるでしょう。
https://gist.github.com/jberkus/6b1bcaf7724dfc2a54f3
とのこと
-
課題メモ
勉強したいこと
1. PostGISの概要および検証
2. PostgreSQLのスナップショットの調査
3. PostgreSQL 9.3の新規の検証
4. PostgreSQLマルチマスタ構成の調査および検証
5. postgres_fdwのメリットデメリット
InfiniBand概要(勉強中)
データベースのディスクI/Oを改善するとの話題の中で、
「InfiniBand」という単語を耳にしたが、全く知らないの調べてみる。
1. InfiniBand(いんふぃにっとばんど)概要
2000年に業界団体であるInfiniBand Trade Associationによって策定された規格。
スーパーコンピューティングなどの分野で使われているサーバ間データ通信技術の1つ。
イーサネットによるLAN間接続よりも高速であるため、最近注目を集めている。
(10Gbpsイーサネットと比較すると、高速であり、価格も安い?
10Gb/s、20Gb/s、40Gb/s、56Gb/s等が存在する。)
補足:
オラクルの「Oracle Exadata Database Machine」等にはInfiniBandスイッチが内蔵されている。
2. InfiniBand接続を構成する要素
構成する要素は以下のとおり。
a. サーバ側に実装するカードであるHCA(Host Channel Adapter)
b. スイッチングを行うInfiniBandスイッチ
c. スイッチとHCAを接続するInfiniBandケーブル
3. InfiniBandのプロトコル
a. IPoIB(IP over InfiniBand): TCP/IPを使いながらInfiniBandの高速性が生かせる
# 通常のTCP/IPシステムと同じようにシステムを構築可能
b. SRP(SCSI RDMA Protocol): 同じくメモリ空間を直接異なるシステム間で共有するRDMA(Remote Direct Memory Access)機構を使いストレージ向けに提供されるプロトコル
c. iSER(iSCSI Extentions for RDMA):
d. NFS-RDMA(NFS over RDMA):
参考URL
http://www.atmarkit.co.jp/fnetwork/tokusyuu/51ib01/02.html
http://www.mellanox.co.jp/infiniband/
http://itpro.nikkeibp.co.jp/article/Active/20130423/472843/?ST=act-infra&P=2
PostgreSQL9.3インストール
PostgreSQLインストールメモ(バージョン 9.3)
最新バージョンの9.3をインストールする。
環境 バージョン
CentOS 6.4
PostgreSQL 9.3.0
1.環境準備
1.1.make
# gmake --version
GNU Make 3.81
1.2.gcc
インストールされていることを確認
# gcc -v
gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)
1.3. Readline
Readlineライブラリをインストール
# yum install readline
# yum install readline-devel
2.PostgreSQLインストール
2.1.postgresユーザ作成
# useradd postgres
2.2.ソースの入手と解凍
# cd /usr/local/src/
# wget http://ftp.postgresql.org/pub/source/v9.3.0/postgresql-9.3.0.tar.gz
# mkdir postgresql-9.3.0
# chown -R postgres:postgres postgresql-9.3.0*
# su - postgres
$ cd /usr/local/src
$ tar xvzf postgresql-9.3.0.tar.gz
2.3.コンパイル
$ cd postgresql-9.3.0/
$ ./configure
$ gmake world ※
(省略)
PostgreSQL, contrib, and documentation successfully made. Ready to install.
※ドキュメント(HTMLやman)や追加モジュール(contrib)を含め、構築可能なもの全てを構築したい場合、上記の様に実施
2.4.リグレーションテスト
$ gmake check
(省略)
=======================
All 136 tests passed.
=======================
(省略)
2.5.インストール
$ su
# gmake install-world
(省略)
PostgreSQL, contrib, and documentation installation complete.
2.6.インストールディレクトリの所有者変更
# cd /usr/local/
# chown -R postgres:postgres pgsql/
2.7.postgresユーザの環境変数設定
# su - postgres
$ vi .bash_profile
(下記を設定)
# PostgreSQL PATH
export POSTGRES_HOME=/usr/local/pgsql
export PGDATA=/home/postgres/data
export PATH=$PATH:$POSTGRES_HOME/bin
export PGLIB=/usr/local/pgsql/lib
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export
2.7.postgresユーザの環境変数設定読み込み
$ source .bash_profile
2.8.データベースクラスタの作成
$ initdb -E UTF8 --no-locale
2.9.PostgreSQL起動
$ pg_ctl start
server starting
1$ LOG: database system was shut down at 2013-09-10 01:15:40 JST
LOG: database system is ready to accept connections
LOG: autovacuum launcher started
これでPostgreSQL9.3の新機能を試すことができる。
とりあえず、9.3 新機能 pg_isreadyコマンドを確認
$ pg_isready
/tmp:5432 - accepting connections
以上
shoes(+ruby)の環境構築
rubyのUIツールキットshoesをインストールした。
環境
OS:CentOS 6.4
ruby:ruby 1.9.3
1.gitのインストール
# yum intall git
2.shoesのインストール
# yum install -y giflib-devel cairo-devel libpixman-devel pango-devel libjpeg-devel gtk2-devel libcurl-devel ruby-devel portaudio-devel gcc libxml2 libxml2-devel libxslt libxslt-devel sqlite-devel sqlite bundle install # cd /usr/local/src/ # cd /usr/local/src/shoes/ # gem install bundler # bundle install # rake
rakeコマンドが成功していらば、以下のディレクトリ配下にdistディレクトリが作成される。
3.shoueの動作確認
# sh /usr/local/src/shoes/dist/shoes
参考URL
https://github.com/shoes/shoes/wiki/Building-Shoes-on-Linux
shoesは以下の本に紹介されていた。
- 作者: Sau Sheong Chang,瀬戸山雅人,河内崇,高野雅典,橋本吉治
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/04/26
- メディア: 大型本
- この商品を含むブログ (4件) を見る