データベースクラスタの継続利用(9.3.0→9.3.2)
No
1

概要

対象

ユーザ

PostgreSQLの起動

PostgreSQLサーバ（既存PostgreSQL）

postgresコマンド$ pg_ctl start
server starting.

確認 （確認コマンド等）$ pg_ctl status
pg_ctl: server is running (PID: 23121)/usr/local/pgsql/bin/postgres$ psqlpsql (9.3.0)
Type "help" for help.

-

postgres=# select version();version2

PostgreSQLのバージョン確認

PostgreSQLサーバ（既存PostgreSQL）

postgres3

JdbcRunnerのインストール

任意のサーバ

任意

4

検証用データベースの作成

PostgreSQLサーバ（既存PostgreSQL）-----------------------------------------------------------------------------------------PostgreSQL 9.3.0 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3),
64-bit(1 row)

JdbcRunnerのインストールは、「別紙_01_付帯ツールのインストール_手順」を参照して下さい。

-$ createdb tpcc

$ psql -l

List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges-----------+----------+----------+---------+-------+----------------------postgres | postgres | UTF8 | C|C |template0 | postgres | UTF8 | C| C | =c/postgres+||||| postgres=CTc/postgres
template1 | postgres | UTF8 | C| C | =c/postgres+||||| postgres=CTc/postgres
tpcc| postgres | UTF8 | C|C |$ psql -d tpcc

postgres$ export CLASSPATH=$CLASSPATH: JdbcRunnerを展開したディレクトリ/jdbcrunner-1.2.jar5

検証用データの投入

任意のサーバ$ java JR JdbcRunnerを展開したディレクトリ/scripts/tpcc_load.js -jdbcDriver org.postgresql.Driver -jdbcUrl
jdbc:postgresql://PostgreSQLサーバのIPアドレス:5432/tpcc -jdbcPass postgres -jdbcUser postgres -logDir 任意のログ出力ディレクトリ

tpcc=# \dList of relations
Schema | Name | Type | Owner--------+------------+-------+---------public | customer | table | postgres
public | district | table | postgres
public | history | table | postgres
public | item| table | postgres
public | new_orders | table | postgres
public | order_line | table | postgres
public | orders | table | postgres
public | stock| table | postgres
public | warehouse | table | postgres(9 rows)

検証用データの入力確認のため、以下のSQL文を実行

count-------480000(1 row)

任意$ psql -d tpcc=# select count(*) from customer;=# select count(*) from district;=# select count(*) from history;=# select count(*) from item;=# select count(*) from new_orders;=# select count(*) from order_line;=# select count(*) from orders;=# select count(*) from stock;=# select count(*) from warehouse;6

検証用データの件数確認

PostgreSQLサーバ（既存PostgreSQL）

count------160(1 row)count-------490069(1 row)count-------100000(1 row)

postgrescount-------143969(1 row)count--------4902352(1 row)count-------489967(1 row)count--------1600000(1 row)

7

8

PostgreSQLの停止

PostgreSQLサーバ（既存PostgreSQL）

既存PostgreSQLのアンインス PostgreSQLサーバ
トール（既存PostgreSQL）

postgres$ pg_ctl stop
waiting for server to shut down.... done
server stopped$ pg_ctl status
pg_ctl: no server running# cd /usr/local/src/postgresql-9.3.0# make uninstall# su – postgres$ which psql
/usr/bin/which: no psql in (/usr/local/pgsql/bin:/usr/lib64/qt3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/zookeeper-3.4.5/bin:/usr/local/storm/bin:/home/postgres/bin)

PostgreSQLのインストールは、「別紙_00_PostgreSQLインストール_手順」を参照して下さい。

-root※ただし、データベースクラスタの作成(initdb)は行わないこと。
9PostgreSQL 9.3.2のインストー PostgreSQLサーバ
ル（新規PostgreSQL）10 PostgreSQL起動

PostgreSQLサーバ（新規PostgreSQL）-

postgres$ pg_ctl start
server starting$ pg_ctl status
pg_ctl: server is running (PID: 1395)/usr/local/pgsql/bin/postgres-$ psql
psql (9.3.2)
Type "help" for help.
11

新規PostgreSQLのバージョン PostgreSQLサーバ
確認（新規PostgreSQL）

postgres=# select version();postgres

12 VACUUMの実施

PostgreSQLサーバ（新規PostgreSQL）

postgres13 ANALYZEの実施

PostgreSQLサーバ（新規PostgreSQL）

postgresversion-----------------------------------------------------------------------------------------PostgreSQL 9.3.2 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3),
64-bit(1 row)$ psql tpcc=# \timing
Timing is on.
=# VACUUM VERBOSE;
INFO: vacuuming "pg_catalog.pg_statistic"
INFO: index "pg_statistic_relid_att_inh_index" now contains 422 row versions in 4 pages
DETAIL: 0 index row versions were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO: "pg_statistic": found 0 removable, 422 nonremovable row versions in 18 out of 18 pages（中略）
VACUUM
Time: 45253.710 ms$ psql tpcc=# \timing
Timing is on.
=# ANALYZE VERBOSE;
INFO: analyzing "pg_catalog.pg_type"
INFO: "pg_type": scanned 8 of 8 pages, containing 352 live rows and 0 dead rows; 352 rows in sample, 352
estimated total rows
INFO: analyzing "public.history"
INFO: "history": scanned 5180 of 5180 pages, containing 480000 live rows and 0 dead rows; 30000 rows insample, 480000 estimated total rows
INFO: analyzing "public.item"（中略）
ANALYZE
Time: 2605.188 ms
リストア確認のため、以下のSQL文を実行$ psql -d tpcc=# select count(*) from customer;=# select count(*) from district;=# select count(*) from history;=# select count(*) from item;=# select count(*) from new_orders;=# select count(*) from order_line;=# select count(*) from orders;=# select count(*) from stock;=# select count(*) from warehouse;count-------480000(1 row)count------160(1 row)count-------980138(1 row)count-------100000(1 row)

14 検証用データの件数確認

PostgreSQLサーバ（新規PostgreSQL）

count-------143969(1 row)

postgrescount--------4902352(1 row)count-------489967(1 row)count--------1600000(1 row)count------16(1 row)

ページ 1

備考データベースクラスタの継続利用(9.3.0→9.3.2)$ export CLASSPATH=$CLASSPATH: JdbcRunnerを展開したディレクトリ/jdbcrunner-1.2.jar

15 JdbcRunnerの実行

PostgreSQLサーバ（新規PostgreSQL）

任意# java JR /usr/local/src/jdbcrunner-1.2/scripts/tpcc.js -jdbcDriver org.postgresql.Driver-jdbcUrl jdbc:postgresql://localhost:5432/tpcc -jdbcPass postgres -jdbcUser postgres$ java JR JdbcRunnerを展開したディレクトリ/scripts/tpcc.js -jdbcDriver org.postgresql.Driver -jdbcUrl -logDir /tmp
jdbc:postgresql://PostgreSQLサーバのIPアドレス:5432/tpcc -jdbcPass postgres -jdbcUser postgres -logDir 13:48:29 [INFO ] > JdbcRunner 1.2
任意のログ出力ディレクトリ
13:48:29 [INFO ] [Config]
Program start time : 20140220-134828
Script filename: /usr/local/src/jdbcrunner-1.2/scripts/tpcc.js
JDBC driver: org.postgresql.Driver
JDBC URL: jdbc:postgresql://localhost:5432/tpcc
JDBC user: postgres
Warmup time
: 0 sec
Measurement time : 60 sec
Number of tx types : 5
Number of agents : 16
Connection pool size : 16
Statement cache size : 40
Auto commit: falseSleep time: 0,0,0,0,0 msec
Throttle: - tps (total)
Debug mode: false
Trace mode: false
Log directory: /tmp
Parameter 0:0
Parameter 1:0
Parameter 2:0
Parameter 3:0
Parameter 4:0
Parameter 5:0
Parameter 6:0
Parameter 7:0
Parameter 8:0
Parameter 9:0
13:48:30 [INFO ] Tiny TPC-C 1.125,60,62,62 tx
13:48:52 [INFO ] [Progress] 21 sec, 68,61,9,6,4 tps, 677,686,69,68,66 tx（中略）
13:49:32 [INFO ] [Response time (99%tile)] 1122,1045,285,1168,609 msec
13:49:32 [INFO ] [Response time (maximum)] 1476,1548,303,1245,1088 msec
13:49:32 [INFO ] < JdbcRunner SUCCESS

ページ 2

デフォルトの900秒では長いため、60秒で処理が終わるように設定を以下のように変更する。
# vi JdbcRunnerを展開したディレクトリ/scripts/tpcc.js
var warmupTime = 0;
var measurementTime = 60;