Test Environment - Virtual Machine description » History » Version 3
Pablo Alingery, 04/08/2015 11:46
1 | 1 | Herve Ballans | {{>toc}} |
---|---|---|---|
2 | 1 | Herve Ballans | |
3 | 1 | Herve Ballans | h1. Test Environment |
4 | 1 | Herve Ballans | |
5 | 1 | Herve Ballans | h2. Virtual Machine description |
6 | 1 | Herve Ballans | |
7 | 1 | Herve Ballans | Test machine is a virtual machine on a ProxMox environment. |
8 | 1 | Herve Ballans | Physically stored on inf-proxmox2 |
9 | 2 | Herve Ballans | VM Name : sdo3 |
10 | 2 | Herve Ballans | VM id : 801 |
11 | 2 | Herve Ballans | memory : 32.00GB |
12 | 2 | Herve Ballans | CPU : 16 CPUs (4 X 4 cores) |
13 | 2 | Herve Ballans | Hard Disk 1 : 64 GB (OS + NetDRMS software) - stored on NFS-HA |
14 | 2 | Herve Ballans | Hard Disk 2 : 1 TB (Databases) - Stored localy |
15 | 1 | Herve Ballans | |
16 | 2 | Herve Ballans | Not in HA configuration. VM Backup each day (for OS). |
17 | 1 | Herve Ballans | |
18 | 2 | Herve Ballans | Guest OS : Debian 8.1 |
19 | 2 | Herve Ballans | Guest kernel : Linux sdo3 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux |
20 | 1 | Herve Ballans | |
21 | 1 | Herve Ballans | h2. Manual install of postgresql |
22 | 1 | Herve Ballans | |
23 | 1 | Herve Ballans | h3. Prerequisites |
24 | 1 | Herve Ballans | |
25 | 1 | Herve Ballans | <pre> |
26 | 1 | Herve Ballans | # apt-get --purge remove postgresql* |
27 | 1 | Herve Ballans | |
28 | 2 | Herve Ballans | # wget https://ftp.postgresql.org/pub/source/v9.4.4/postgresql-9.4.4.tar.gz |
29 | 1 | Herve Ballans | |
30 | 2 | Herve Ballans | # tar -xzvf postgresql-9.4.4.tar.gz |
31 | 1 | Herve Ballans | </pre> |
32 | 1 | Herve Ballans | |
33 | 1 | Herve Ballans | Before compiling, I verify that patch required by NetDRMS (voir [[ici|http://vso.stanford.edu/netdrms/pginst.html]]) was really present in source files : |
34 | 1 | Herve Ballans | |
35 | 1 | Herve Ballans | _src/backend/utils/misc/guc.c_ and _src/bin/pg_dump/pg_dump.c_ |
36 | 1 | Herve Ballans | |
37 | 1 | Herve Ballans | <pre> |
38 | 1 | Herve Ballans | # apt-get update |
39 | 1 | Herve Ballans | # apt-get upgrade |
40 | 2 | Herve Ballans | # apt-get install gcc make libreadline-dev minizip |
41 | 1 | Herve Ballans | </pre> |
42 | 1 | Herve Ballans | |
43 | 1 | Herve Ballans | h3. Installation |
44 | 1 | Herve Ballans | |
45 | 1 | Herve Ballans | <pre> |
46 | 1 | Herve Ballans | # ./configure |
47 | 1 | Herve Ballans | # make |
48 | 1 | Herve Ballans | # su |
49 | 1 | Herve Ballans | # make install |
50 | 1 | Herve Ballans | # adduser postgres |
51 | 1 | Herve Ballans | </pre> |
52 | 1 | Herve Ballans | |
53 | 1 | Herve Ballans | h3. Test database |
54 | 1 | Herve Ballans | |
55 | 1 | Herve Ballans | <pre> |
56 | 1 | Herve Ballans | # mkdir /usr/local/pgsql/data |
57 | 1 | Herve Ballans | # chown postgres /usr/local/pgsql/data |
58 | 1 | Herve Ballans | # su - postgres |
59 | 1 | Herve Ballans | # /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data |
60 | 1 | Herve Ballans | # /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 & |
61 | 1 | Herve Ballans | # /usr/local/pgsql/bin/createdb test |
62 | 1 | Herve Ballans | # /usr/local/pgsql/bin/psql test |
63 | 1 | Herve Ballans | </pre> |
64 | 1 | Herve Ballans | |
65 | 1 | Herve Ballans | h3. Shared postgresql library |
66 | 1 | Herve Ballans | |
67 | 1 | Herve Ballans | <pre> |
68 | 1 | Herve Ballans | # vi /etc/ld.so.conf/libc.conf |
69 | 1 | Herve Ballans | </pre> |
70 | 1 | Herve Ballans | add : |
71 | 1 | Herve Ballans | <pre> |
72 | 1 | Herve Ballans | /usr/local/pgsql/lib |
73 | 1 | Herve Ballans | </pre> |
74 | 1 | Herve Ballans | |
75 | 1 | Herve Ballans | h3. Boot start-up |
76 | 1 | Herve Ballans | |
77 | 1 | Herve Ballans | We create an init script in order to start postgresql on boot |
78 | 1 | Herve Ballans | |
79 | 1 | Herve Ballans | <pre> |
80 | 1 | Herve Ballans | # vi /etc/init.d/postgresql |
81 | 1 | Herve Ballans | </pre> |
82 | 1 | Herve Ballans | |
83 | 1 | Herve Ballans | Content : |
84 | 1 | Herve Ballans | |
85 | 1 | Herve Ballans | <pre> |
86 | 1 | Herve Ballans | #! /bin/sh |
87 | 1 | Herve Ballans | |
88 | 1 | Herve Ballans | # chkconfig: 2345 98 02 |
89 | 1 | Herve Ballans | # description: PostgreSQL RDBMS |
90 | 1 | Herve Ballans | |
91 | 1 | Herve Ballans | # This is an example of a start/stop script for SysV-style init, such |
92 | 1 | Herve Ballans | # as is used on Linux systems. You should edit some of the variables |
93 | 1 | Herve Ballans | # and maybe the 'echo' commands. |
94 | 1 | Herve Ballans | # |
95 | 1 | Herve Ballans | # Place this file at /etc/init.d/postgresql (or |
96 | 1 | Herve Ballans | # /etc/rc.d/init.d/postgresql) and make symlinks to |
97 | 1 | Herve Ballans | # /etc/rc.d/rc0.d/K02postgresql |
98 | 1 | Herve Ballans | # /etc/rc.d/rc1.d/K02postgresql |
99 | 1 | Herve Ballans | # /etc/rc.d/rc2.d/K02postgresql |
100 | 1 | Herve Ballans | # /etc/rc.d/rc3.d/S98postgresql |
101 | 1 | Herve Ballans | # /etc/rc.d/rc4.d/S98postgresql |
102 | 1 | Herve Ballans | # /etc/rc.d/rc5.d/S98postgresql |
103 | 1 | Herve Ballans | # Or, if you have chkconfig, simply: |
104 | 1 | Herve Ballans | # chkconfig --add postgresql |
105 | 1 | Herve Ballans | # |
106 | 1 | Herve Ballans | # Proper init scripts on Linux systems normally require setting lock |
107 | 1 | Herve Ballans | # and pid files under /var/run as well as reacting to network |
108 | 1 | Herve Ballans | # settings, so you should treat this with care. |
109 | 1 | Herve Ballans | |
110 | 1 | Herve Ballans | # Original author: Ryan Kirkpatrick <pgsql@rkirkpat.net> |
111 | 1 | Herve Ballans | |
112 | 1 | Herve Ballans | # $PostgreSQL: pgsql/contrib/start-scripts/linux,v 1.8 2006/07/13 14:44:33 petere Exp $ |
113 | 1 | Herve Ballans | |
114 | 1 | Herve Ballans | ## EDIT FROM HERE |
115 | 1 | Herve Ballans | |
116 | 1 | Herve Ballans | # Installation prefix |
117 | 1 | Herve Ballans | prefix=/usr/local/pgsql |
118 | 1 | Herve Ballans | |
119 | 1 | Herve Ballans | # Data directory |
120 | 1 | Herve Ballans | PGDATA="/usr/local/pgsql/data" |
121 | 1 | Herve Ballans | |
122 | 1 | Herve Ballans | # Who to run the postmaster as, usually "postgres". (NOT "root") |
123 | 1 | Herve Ballans | PGUSER=postgres |
124 | 1 | Herve Ballans | |
125 | 1 | Herve Ballans | # Where to keep a log file |
126 | 1 | Herve Ballans | PGLOG="$PGDATA/serverlog" |
127 | 1 | Herve Ballans | |
128 | 1 | Herve Ballans | ## STOP EDITING HERE |
129 | 1 | Herve Ballans | |
130 | 1 | Herve Ballans | # The path that is to be used for the script |
131 | 1 | Herve Ballans | PATH=/usr/local/sbin:/usr/local/bin:/usr/local/pgsql/bin:/sbin:/bin:/usr/sbin:/usr/bin |
132 | 1 | Herve Ballans | |
133 | 1 | Herve Ballans | # What to use to start up the postmaster (we do NOT use pg_ctl for this, |
134 | 1 | Herve Ballans | # as it adds no value and can cause the postmaster to misrecognize a stale |
135 | 1 | Herve Ballans | # lock file) |
136 | 1 | Herve Ballans | DAEMON="$prefix/bin/postmaster" |
137 | 1 | Herve Ballans | |
138 | 1 | Herve Ballans | # What to use to shut down the postmaster |
139 | 1 | Herve Ballans | PGCTL="$prefix/bin/pg_ctl" |
140 | 1 | Herve Ballans | |
141 | 1 | Herve Ballans | set -e |
142 | 1 | Herve Ballans | |
143 | 1 | Herve Ballans | # Only start if we can find the postmaster. |
144 | 1 | Herve Ballans | test -x $DAEMON || exit 0 |
145 | 1 | Herve Ballans | |
146 | 1 | Herve Ballans | # Parse command line parameters. |
147 | 1 | Herve Ballans | case $1 in |
148 | 1 | Herve Ballans | start) |
149 | 1 | Herve Ballans | echo -n "Starting PostgreSQL: " |
150 | 1 | Herve Ballans | su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 |
151 | 1 | Herve Ballans | echo "ok" |
152 | 1 | Herve Ballans | ;; |
153 | 1 | Herve Ballans | stop) |
154 | 1 | Herve Ballans | echo -n "Stopping PostgreSQL: " |
155 | 1 | Herve Ballans | su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast" |
156 | 1 | Herve Ballans | echo "ok" |
157 | 1 | Herve Ballans | ;; |
158 | 1 | Herve Ballans | restart) |
159 | 1 | Herve Ballans | echo -n "Restarting PostgreSQL: " |
160 | 1 | Herve Ballans | su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w" |
161 | 1 | Herve Ballans | su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 |
162 | 1 | Herve Ballans | echo "ok" |
163 | 1 | Herve Ballans | ;; |
164 | 1 | Herve Ballans | reload) |
165 | 1 | Herve Ballans | echo -n "Reload PostgreSQL: " |
166 | 1 | Herve Ballans | su - $PGUSER -c "$PGCTL reload -D '$PGDATA' -s" |
167 | 1 | Herve Ballans | echo "ok" |
168 | 1 | Herve Ballans | ;; |
169 | 1 | Herve Ballans | status) |
170 | 1 | Herve Ballans | su - $PGUSER -c "$PGCTL status -D '$PGDATA'" |
171 | 1 | Herve Ballans | ;; |
172 | 1 | Herve Ballans | *) |
173 | 1 | Herve Ballans | # Print help |
174 | 1 | Herve Ballans | echo "Usage: $0 {start|stop|restart|reload|status}" 1>&2 |
175 | 1 | Herve Ballans | exit 1 |
176 | 1 | Herve Ballans | ;; |
177 | 1 | Herve Ballans | esac |
178 | 1 | Herve Ballans | |
179 | 1 | Herve Ballans | exit 0 |
180 | 1 | Herve Ballans | </pre> |
181 | 3 | Pablo Alingery | |
182 | 3 | Pablo Alingery | |
183 | 3 | Pablo Alingery | h3. Install additional module |
184 | 3 | Pablo Alingery | |
185 | 3 | Pablo Alingery | Nous avons besoin de dblink pour les trigger entre bases de données |
186 | 3 | Pablo Alingery | |
187 | 3 | Pablo Alingery | <pre> |
188 | 3 | Pablo Alingery | apt-get install postgresql-contrib |
189 | 3 | Pablo Alingery | </pre> |