カスタム検索
このエントリーをはてなブックマークに追加
tomo.gif (1144 ツバツイツト)line.gif (927 ツバツイツト)line.gif (927 ツバツイツト)line.gif (927 ツバツイツト)To previous pageTo home pageMailing to me

データベースを二重化する方法

Modified: 10 August 2003


usogresによる二重化10 August 2003


 usogresによる二重化

usogresのダウンロード

usogresは、以下からダウンロードできます。

http://usogres.good-day.net

2003年8月10日時点で、"usogres-0.8.1.tar.gz"がダウンロードできました。


usogresの解凍、Make、インストール

$ tar zxvf usogres-0.8.1.tar.gz
       :
$ cd usogres-0.8.1
$ ./configure
       :
$ make
       :
$ su
password: ********
# make install
       :
#


usogresを設定する

usogresのポートは、"5432"、オリジナル側のポートは、"5434"、コピー側のポートは、"5436"に設定します。

#
# usogres run command file
#

# host address that usogres performed
host = "192.168.0.95"
# port address that usogres performed
port = 5432

# host address that postgres original server performed
hostorg = "192.168.0.95"
# port address that postgres original server performed
portorg = 5434

# host address that postgres backup server performed
hostcopy = "192.168.0.95"
# port address that postgres backup server performed
portcopy = 5436

# directory for log files
logdir = ~/.usogres-log

# max number of usogres process
max_process = 32


PostgreSQLのコピーを作る

PostgreSQLを停止し、data のコピー(data2)を作ります。

# cd /var/lib/pgsql
# pg_ctl stop
DEBUG: smart shutdown request
DEBUG: shutting down
waiting for postmaster to shut down......DEBUG: database system is shut down
done
postmaster successfully shut down
# cp -a data data2
#


コピー側のPostgrSQLの設定

# cd data2
# vi postgresql.conf

以下のように変更します。

  :
tcpip_socket = true
ssl = false
  :
port = 5434
  :

 SSLで接続したときの2重化はサポートされていませんので、"postgresql.conf"で、"ssl = false"にしておく必要があります。


オリジナル側のPostgrSQLの設定

# cd ../data
# vi postgresql.conf

以下のように変更します。

  :
tcpip_socket = true
ssl = false
  :
port = 5436
  :

 SSLで接続したときの2重化はサポートされていませんので、"postgresql.conf"で、"ssl = false"にしておく必要があります。


PostgreSQLを2つ起動する

"postgres"のユーザになって、オリジナル側を起動します。

$ pg_ctl start -D /var/lib/pgsql/data
postmaster successfully started
bash-2.05a$ DEBUG:  database system was shut down at 2003-08-10 02:24:57 JST
DEBUG:  checkpoint record is at 0/68D158
DEBUG:  redo record is at 0/68D158; undo record is at 0/0; shutdown TRUE
DEBUG:  next transaction id: 2657; next oid: 18341
DEBUG:  database system is ready
$

"postgres"のユーザになって、オリジナル側を起動します。

$ pg_ctl start -D /var/lib/pgsql/data2
postmaster successfully started
bash-2.05a$ DEBUG:  database system was shut down at 2003-08-10 02:24:57 JST
DEBUG:  checkpoint record is at 0/68D158
DEBUG:  redo record is at 0/68D158; undo record is at 0/0; shutdown TRUE
DEBUG:  next transaction id: 2657; next oid: 18341
DEBUG:  database system is ready
$


usogresを起動する

$ /usr/local/bin/usogres
$


プロセスを確認する

psコマンドで、2つのPostgrSQLと、usogresが起動していることを確認します。

   :
30396 pts/1    S      0:00 /usr/bin/postmaster
30397 pts/1    S      0:00 postgres: stats buffer process
30398 pts/1    S      0:00 postgres: stats collector process
   :
30434 pts/1    S      0:00 /usr/bin/postmaster
30435 pts/1    S      0:00 postgres: stats buffer process
30437 pts/1    S      0:00 postgres: stats collector process
   :
30463 pts/1    S      0:00 /usr/local/bin/usogres
   :

LISTENポートも確認します。

$ netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:smux                  *:*                     LISTEN
tcp        0      0 *:mysql                 *:*                     LISTEN
tcp        0      0 *:netbios-ssn           *:*                     LISTEN
tcp        0      0 *:10000                 *:*                     LISTEN
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 rh73-95-db.tom:postgres *:*                     LISTEN
tcp        0      0 *:5434                  *:*                     LISTEN
tcp        0      0 *:5436                  *:*                     LISTEN
udp        0      0 rh73-95-db.t:netbios-ns *:*
udp        0      0 *:netbios-ns            *:*
udp        0      0 rh73-95-db.:netbios-dgm *:*
udp        0      0 *:netbios-dgm           *:*
udp        0      0 *:10000                 *:*
udp        0      0 *:snmp                  *:*
udp        0      0 rh73-95-db:1706         *:*
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ACC ]     STREAM     LISTENING     1154   /var/lib/mysql/mysql.sock
unix  2      [ ACC ]     STREAM     LISTENING     387139 /tmp/.s.PGSQL.5434
unix  2      [ ACC ]     STREAM     LISTENING     387789 /tmp/.s.PGSQL.5436
$


動作確認する

ポートを指定せずデータベースを作成する。

$ createdb -h 192.168.0.95 testdb
CREATE DATABASE
$ 

リストを見ると、作成されているのが確認できました。

$ psql -h 192.168.0.95 -l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+-----------
 template0 | postgres | SQL_ASCII
 template1 | postgres | SQL_ASCII
 testdb    | postgres | SQL_ASCII
 useful    | postgres | SQL_ASCII
(4 rows)

$ 

オリジナル側のポート(5434)を指定して、DBを直接見ると、登録されているのが確認できます。

$ psql -h 192.168.0.95 -p 5434 -l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+-----------
 template0 | postgres | SQL_ASCII
 template1 | postgres | SQL_ASCII
 testdb    | postgres | SQL_ASCII
 useful    | postgres | SQL_ASCII
(4 rows)

$

コピー側のポート(5436)を指定して、DBを直接見ると、登録されているのが確認できます。

$ psql -h 192.168.0.95 -p 5436 -l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+-----------
 template0 | postgres | SQL_ASCII
 template1 | postgres | SQL_ASCII
 testdb    | postgres | SQL_ASCII
 useful    | postgres | SQL_ASCII
(4 rows)

$


 SSLで接続したときの2重化はサポートされていませんので、"postgresql.conf"で、"ssl = false"にしておく必要があります。


To previous pageTo home pageMailing to meJump to Top of pageline.gif (927 ツバツイツト)line.gif (927 ツバツイツト)tomo.gif (1144 ツバツイツト)
カスタム検索



このエントリーをはてなブックマークに追加