Project

General

Profile

Wiki » History » Version 9

Pablo Alingery, 29/12/2017 11:12

1 9 Pablo Alingery
h1. NetDrms2.4 => Netdrms 9.1.1  
2 1 Pablo Alingery
3 1 Pablo Alingery
h2. Posgres 9.4.13 
4 1 Pablo Alingery
5 9 Pablo Alingery
6 1 Pablo Alingery
h3. Install additional modules
7 1 Pablo Alingery
8 1 Pablo Alingery
We need dblink for triggers between db 
9 1 Pablo Alingery
10 1 Pablo Alingery
<pre>
11 1 Pablo Alingery
root@sdo1:~# cd /usr/share/postgresql/9.4/extension
12 1 Pablo Alingery
root@sdo1:/usr/share/postgresql/9.4/extension# ls -al  dblink--1.1.sql
13 1 Pablo Alingery
-rw-r--r-- 1 root root 5831 Aug 10 14:53 dblink--1.1.sql
14 1 Pablo Alingery
</pre>
15 1 Pablo Alingery
16 1 Pablo Alingery
h4. ias_sdo
17 1 Pablo Alingery
18 1 Pablo Alingery
<pre>
19 1 Pablo Alingery
root@sdo1:/usr/share/postgresql/9.4/extension# psql ias_sdo -p5432 -U postgres < dblink--1.1.sql
20 1 Pablo Alingery
Use "CREATE EXTENSION dblink" to load this file.
21 1 Pablo Alingery
root@sdo1:/usr/share/postgresql/9.4/extension# 
22 1 Pablo Alingery
root@sdo1:/usr/share/postgresql/9.4/extension# 
23 1 Pablo Alingery
root@sdo1:/usr/share/postgresql/9.4/extension# 
24 1 Pablo Alingery
root@sdo1:/usr/share/postgresql/9.4/extension# psql ias_sdo -U postgres 
25 1 Pablo Alingery
psql (9.4.13)
26 1 Pablo Alingery
Type "help" for help.
27 4 Pablo Alingery
28 4 Pablo Alingery
29 1 Pablo Alingery
ias_sdo=# CREATE EXTENSION dblink ;
30 1 Pablo Alingery
ERROR:  extension "dblink" already exists
31 1 Pablo Alingery
ias_sdo=# \q
32 1 Pablo Alingery
</pre>
33 1 Pablo Alingery
34 1 Pablo Alingery
Seems ok !
35 1 Pablo Alingery
36 1 Pablo Alingery
h4. ias_sdo_sums 
37 1 Pablo Alingery
38 1 Pablo Alingery
<pre>
39 1 Pablo Alingery
root@sdo1:/usr/share/postgresql/9.4/extension# psql ias_sdo_sums -p5434 -U postgres < dblink--1.1.sql 
40 1 Pablo Alingery
Use "CREATE EXTENSION dblink" to load this file.
41 1 Pablo Alingery
root@sdo1:/usr/share/postgresql/9.4/extension# psql ias_sdo_sums -p5434 -U postgres 
42 1 Pablo Alingery
psql (9.4.13)
43 1 Pablo Alingery
Type "help" for help.
44 1 Pablo Alingery
45 1 Pablo Alingery
ias_sdo_sums=#  CREATE EXTENSION dblink ;
46 1 Pablo Alingery
ERROR:  extension "dblink" already exists
47 1 Pablo Alingery
ias_sdo_sums=# \q
48 1 Pablo Alingery
</pre>
49 1 Pablo Alingery
50 1 Pablo Alingery
Seems ok too !
51 1 Pablo Alingery
52 1 Pablo Alingery
h4. ias_sdo_monitor 
53 1 Pablo Alingery
54 1 Pablo Alingery
<pre>
55 1 Pablo Alingery
root@sdo1:/usr/share/postgresql/9.4/extension# psql ias_sdo_monitor -p5436 -U postgres < dblink--1.1.sql 
56 1 Pablo Alingery
Use "CREATE EXTENSION dblink" to load this file.
57 1 Pablo Alingery
root@sdo1:/usr/share/postgresql/9.4/extension# psql ias_sdo_monitor -p5436 -U postgres
58 1 Pablo Alingery
psql (9.4.13)
59 1 Pablo Alingery
Type "help" for help.
60 1 Pablo Alingery
61 1 Pablo Alingery
ias_sdo_monitor=# CREATE EXTENSION dblink ;
62 1 Pablo Alingery
ERROR:  extension "dblink" already exists
63 1 Pablo Alingery
</pre>
64 1 Pablo Alingery
65 1 Pablo Alingery
Ok too!
66 2 Pablo Alingery
67 2 Pablo Alingery
68 5 Pablo Alingery
h3. Ingest last dumps from sdo1
69 1 Pablo Alingery
70 5 Pablo Alingery
<pre>
71 5 Pablo Alingery
postgres@sdo1:~/dumps$ gunzip < ias_sdo_sums_2017-09-28.gz | psql ias_sdo_sums  -p5434 -U postgres
72 5 Pablo Alingery
73 5 Pablo Alingery
postgres@sdo1:~/dumps$ gunzip < ias_sdo_2017-09-28.gz | psql ias_sdo -p5432 -U postgres
74 5 Pablo Alingery
75 5 Pablo Alingery
postgres@sdo1:~/dumps$ gunzip < ias_sdo_monitor_2017-09-28.gz | psql ias_sdo_monitor -p5436 -U postgres
76 5 Pablo Alingery
</pre>
77 5 Pablo Alingery
78 5 Pablo Alingery
h3. Creation of missing tables & functions
79 5 Pablo Alingery
80 2 Pablo Alingery
TABLE drms.ingested_sunums
81 2 Pablo Alingery
82 2 Pablo Alingery
--When a client ingests a Slony log, each SUNUM of each data series record is copied
83 2 Pablo Alingery
-- into this table. The client can use this table of SUNUMs to prefetch SUs from the
84 2 Pablo Alingery
-- providing site. This SQL is ingested as the pg_user database user, the same
85 2 Pablo Alingery
-- user that will be ingesting Slony logs and prefetching SUs, so permissions on
86 2 Pablo Alingery
-- this table will be correct without having to execute a GRANT statement.
87 2 Pablo Alingery
-- 
88 2 Pablo Alingery
-- The namespace drms is required, and is created by NetDRMS.sql during the
89 2 Pablo Alingery
-- NetDRMS installation process.
90 2 Pablo Alingery
-- 
91 2 Pablo Alingery
92 2 Pablo Alingery
<pre>
93 2 Pablo Alingery
DROP TABLE IF EXISTS drms.ingested_sunums;
94 2 Pablo Alingery
CREATE TABLE drms.ingested_sunums (sunum bigint PRIMARY KEY, starttime timestamp with time zone NOT NULL);
95 2 Pablo Alingery
CREATE INDEX ingested_sunums_starttime ON drms.ingested_sunums(starttime);
96 2 Pablo Alingery
</pre>
97 2 Pablo Alingery
98 2 Pablo Alingery
99 2 Pablo Alingery
100 2 Pablo Alingery
FUNCTION drms.capturesunum
101 2 Pablo Alingery
-- 
102 2 Pablo Alingery
-- For each table under replication, a trigger is created that calls this function, which
103 2 Pablo Alingery
-- then copies SUNUMs into the underlying table, drms.ingested_sunums.
104 2 Pablo Alingery
-- 
105 2 Pablo Alingery
-- drms.ingested_sunums may not exist (older NetDRMSs did not receive the SQL to create
106 2 Pablo Alingery
-- this table). If this table does not exist, then this function is a no-op.
107 2 Pablo Alingery
-- 
108 2 Pablo Alingery
109 2 Pablo Alingery
<pre>
110 2 Pablo Alingery
CREATE OR REPLACE FUNCTION drms.capturesunum() RETURNS TRIGGER AS
111 2 Pablo Alingery
$capturesunumtrig$
112 2 Pablo Alingery
BEGIN
113 2 Pablo Alingery
    IF EXISTS (SELECT n.nspname, c.relname FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = 'drms' AND c.relname = 'ingested_sunums') THEN
114 2 Pablo Alingery
      IF (TG_OP='INSERT' AND new.sunum > 0) THEN
115 2 Pablo Alingery
        IF EXISTS (SELECT 1 FROM drms.ingested_sunums WHERE sunum = new.sunum) THEN
116 2 Pablo Alingery
          RETURN NULL;
117 2 Pablo Alingery
        END IF;
118 2 Pablo Alingery
        INSERT INTO drms.ingested_sunums (sunum, starttime) VALUES (new.sunum, clock_timestamp());
119 2 Pablo Alingery
      END IF;
120 2 Pablo Alingery
    END IF;
121 2 Pablo Alingery
122 2 Pablo Alingery
  RETURN NEW;
123 2 Pablo Alingery
END
124 2 Pablo Alingery
$capturesunumtrig$ LANGUAGE plpgsql;
125 2 Pablo Alingery
</pre>
126 3 Pablo Alingery
127 3 Pablo Alingery
128 3 Pablo Alingery
129 3 Pablo Alingery
Add a trigger on every hmi table like this to use the function:
130 3 Pablo Alingery
131 3 Pablo Alingery
CREATE TRIGGER capturesunumtrig AFTER INSERT ON hmi.bharp_720s FOR EACH ROW EXECUTE PROCEDURE drms.capturesunum();
132 3 Pablo Alingery
133 3 Pablo Alingery
134 3 Pablo Alingery
> -- TABLE drms.ingested_sunums
135 3 Pablo Alingery
> -- 
136 3 Pablo Alingery
> -- When a client ingests a Slony log, each SUNUM of each data series record is copied
137 3 Pablo Alingery
> -- into this table. The client can use this table of SUNUMs to prefetch SUs from the
138 3 Pablo Alingery
> -- providing site. This SQL is ingested as the pg_user database user, the same
139 3 Pablo Alingery
> -- user that will be ingesting Slony logs and prefetching SUs, so permissions on
140 3 Pablo Alingery
> -- this table will be correct without having to execute a GRANT statement.
141 3 Pablo Alingery
> -- 
142 3 Pablo Alingery
> -- The namespace drms is required, and is created by NetDRMS.sql during the
143 3 Pablo Alingery
> -- NetDRMS installation process.
144 3 Pablo Alingery
> -- 
145 3 Pablo Alingery
146 3 Pablo Alingery
<pre>
147 3 Pablo Alingery
> DROP TABLE IF EXISTS drms.ingested_sunums;
148 3 Pablo Alingery
> CREATE TABLE drms.ingested_sunums (sunum bigint PRIMARY KEY, starttime timestamp with time zone NOT NULL);
149 3 Pablo Alingery
> CREATE INDEX ingested_sunums_starttime ON drms.ingested_sunums(starttime);
150 3 Pablo Alingery
</pre>
151 3 Pablo Alingery
152 3 Pablo Alingery
> -- FUNCTION drms.capturesunum
153 3 Pablo Alingery
> -- 
154 3 Pablo Alingery
> -- For each table under replication, a trigger is created that calls this function, which
155 3 Pablo Alingery
> -- then copies SUNUMs into the underlying table, drms.ingested_sunums.
156 3 Pablo Alingery
> -- 
157 3 Pablo Alingery
> -- drms.ingested_sunums may not exist (older NetDRMSs did not receive the SQL to create
158 3 Pablo Alingery
> -- this table). If this table does not exist, then this function is a no-op.
159 3 Pablo Alingery
> -- 
160 3 Pablo Alingery
161 3 Pablo Alingery
<pre>
162 3 Pablo Alingery
> CREATE OR REPLACE FUNCTION drms.capturesunum() RETURNS TRIGGER AS
163 3 Pablo Alingery
> $capturesunumtrig$
164 3 Pablo Alingery
> BEGIN
165 3 Pablo Alingery
>     IF EXISTS (SELECT n.nspname, c.relname FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = 'drms' AND c.relname = 'ingested_sunums') THEN
166 3 Pablo Alingery
>       IF (TG_OP='INSERT' AND new.sunum > 0) THEN
167 3 Pablo Alingery
>         IF EXISTS (SELECT 1 FROM drms.ingested_sunums WHERE sunum = new.sunum) THEN
168 3 Pablo Alingery
>           RETURN NULL;
169 3 Pablo Alingery
>         END IF;
170 3 Pablo Alingery
>         INSERT INTO drms.ingested_sunums (sunum, starttime) VALUES (new.sunum, clock_timestamp());
171 3 Pablo Alingery
>       END IF;
172 3 Pablo Alingery
>     END IF;
173 3 Pablo Alingery
>
174 3 Pablo Alingery
>   RETURN NEW;
175 3 Pablo Alingery
> END
176 3 Pablo Alingery
> $capturesunumtrig$ LANGUAGE plpgsql;
177 4 Pablo Alingery
</pre>
178 4 Pablo Alingery
179 4 Pablo Alingery
180 4 Pablo Alingery
 Add a trigger on every hmi table like this to use the function:
181 4 Pablo Alingery
182 4 Pablo Alingery
<pre>
183 4 Pablo Alingery
CREATE TRIGGER capturesunumtrig AFTER INSERT ON hmi.bharp_720s FOR EACH ROW EXECUTE PROCEDURE drms.capturesunum();
184 1 Pablo Alingery
</pre>
185 5 Pablo Alingery
186 6 Pablo Alingery
NOT for aia.lev1 series because we are taking 1/5 data we don't want everything
187 6 Pablo Alingery
188 6 Pablo Alingery
189 6 Pablo Alingery
h3. Create shadow & speed up the usage of aia.lev1 table 
190 6 Pablo Alingery
191 6 Pablo Alingery
h4. postgresql-plperl
192 6 Pablo Alingery
193 6 Pablo Alingery
In order to run createshadow we need postgresql-plperl
194 6 Pablo Alingery
195 6 Pablo Alingery
<pre>
196 6 Pablo Alingery
apt-get install postgresql-plperl 
197 6 Pablo Alingery
</pre>
198 6 Pablo Alingery
199 6 Pablo Alingery
h4. Install language plperl
200 6 Pablo Alingery
201 6 Pablo Alingery
Install plperl within postgres
202 6 Pablo Alingery
203 6 Pablo Alingery
<pre>
204 6 Pablo Alingery
createlang -p5432 -U postgres plperlu ias_sdo
205 6 Pablo Alingery
</pre>
206 6 Pablo Alingery
207 6 Pablo Alingery
h4. Create function updateshadow()
208 6 Pablo Alingery
209 6 Pablo Alingery
Create function updateshadow()
210 6 Pablo Alingery
211 6 Pablo Alingery
<pre>
212 6 Pablo Alingery
psql ias_sdo -p5432 -f /usr/local/netdrms_current/base/drms/libs/pg/updateshadow.sql
213 6 Pablo Alingery
</pre>
214 6 Pablo Alingery
215 6 Pablo Alingery
216 6 Pablo Alingery
So now we are able to launch createshadow()
217 6 Pablo Alingery
218 6 Pablo Alingery
<pre>
219 6 Pablo Alingery
createshadow series=aia.lev1
220 6 Pablo Alingery
</pre>
221 7 Pablo Alingery
222 7 Pablo Alingery
223 7 Pablo Alingery
h3. Get data from JSOC 
224 7 Pablo Alingery
225 7 Pablo Alingery
h4. Create readonly user 
226 7 Pablo Alingery
227 7 Pablo Alingery
<pre>
228 7 Pablo Alingery
production@sdo1:/usr/local/netdrms_current$ psql ias_sdo_sums -p5434 -U postgres 
229 7 Pablo Alingery
psql (9.4.13)
230 7 Pablo Alingery
Type "help" for help.
231 7 Pablo Alingery
232 7 Pablo Alingery
ias_sdo_sums=# CREATE USER readonlyuser;
233 7 Pablo Alingery
CREATE ROLE
234 7 Pablo Alingery
ias_sdo_sums=# GRANT CONNECT ON DATABASE ias_sdo_sums To readonlyuser ; 
235 7 Pablo Alingery
GRANT
236 1 Pablo Alingery
237 1 Pablo Alingery
</pre>
238 1 Pablo Alingery
239 1 Pablo Alingery
240 1 Pablo Alingery
241 9 Pablo Alingery
h2. Installation Netdrms_9.1.1
242 9 Pablo Alingery
243 9 Pablo Alingery
h3. Create netdrms directory 
244 9 Pablo Alingery
245 9 Pablo Alingery
Create the directory to untar netdrms_9.1.1  from  http://jsoc.stanford.edu/~arta/for-pablo/netdrms-9.1.1.tar.gz
246 9 Pablo Alingery
247 1 Pablo Alingery
<pre>
248 9 Pablo Alingery
mkdir /usr/local/netdrms_9.1.1
249 1 Pablo Alingery
</pre>
250 9 Pablo Alingery
251 9 Pablo Alingery
Change owner for production:ias 
252 9 Pablo Alingery
253 9 Pablo Alingery
<pre>
254 9 Pablo Alingery
chown -R production:ias netdrms_9.1.1 
255 9 Pablo Alingery
</pre>
256 9 Pablo Alingery
257 9 Pablo Alingery
258 9 Pablo Alingery
h3. Configuration file 
259 9 Pablo Alingery
260 9 Pablo Alingery
<pre>
261 9 Pablo Alingery
cp config.local.template config.local
262 9 Pablo Alingery
</pre>
263 9 Pablo Alingery
264 9 Pablo Alingery
Warning : Config has done for remote sum, indeed jmd is not used anymore
265 9 Pablo Alingery
266 9 Pablo Alingery
h3. Modification file 'configure' 
267 9 Pablo Alingery
268 9 Pablo Alingery
In file /usr/local/netdrms_current/configure
269 9 Pablo Alingery
270 9 Pablo Alingery
Replace all " $? !=0 " by " $status !=0 " in file configure then tape
271 9 Pablo Alingery
272 9 Pablo Alingery
see https://git.ias.u-psud.fr/palinger/netdrms_9.1.1/commit/0fb3fa60d2b6124500739087c8edeaba91559449
273 9 Pablo Alingery
274 9 Pablo Alingery
275 9 Pablo Alingery
h3. Modiffication file jsoc_machine.csh  
276 9 Pablo Alingery
277 9 Pablo Alingery
In file /usr/local/netdrms_current/build/jsoc_machine.csh (Same issue in NetDrms 8.11 , NetDrms 9.0)
278 9 Pablo Alingery
279 9 Pablo Alingery
ligne 28 :
280 9 Pablo Alingery
281 9 Pablo Alingery
<pre>
282 9 Pablo Alingery
case "x86_64":
283 9 Pablo Alingery
      echo linux_x86_64
284 9 Pablo Alingery
      breaksw
285 9 Pablo Alingery
</pre>
286 9 Pablo Alingery
287 9 Pablo Alingery
see https://git.ias.u-psud.fr/palinger/netdrms_9.1.1/commit/e75212b1bc8ab493ae15ef3f8b50ebfbad065bc8
288 9 Pablo Alingery
289 9 Pablo Alingery
h3. File make_basic.mk 
290 9 Pablo Alingery
291 9 Pablo Alingery
In file make_basic.mk line 223
292 9 Pablo Alingery
293 9 Pablo Alingery
look for "GCC_LF_ALL ="
294 9 Pablo Alingery
add "-lcrypto"
295 9 Pablo Alingery
296 9 Pablo Alingery
297 9 Pablo Alingery
298 9 Pablo Alingery
h3. Execution configure
299 9 Pablo Alingery
300 9 Pablo Alingery
<pre>
301 9 Pablo Alingery
./configure
302 9 Pablo Alingery
</pre>
303 9 Pablo Alingery
304 9 Pablo Alingery
h2. Build 
305 9 Pablo Alingery
306 9 Pablo Alingery
As we are going to use new remote sums (written in python) 
307 9 Pablo Alingery
we only need to do the following
308 9 Pablo Alingery
309 9 Pablo Alingery
<pre>
310 9 Pablo Alingery
make show_info 
311 9 Pablo Alingery
make show_series 
312 9 Pablo Alingery
</pre>
313 9 Pablo Alingery
314 9 Pablo Alingery
Checking the modif on Db from NetDrms 2.4 we have figured out that some index where added
315 9 Pablo Alingery
The other modif are for sum_rm use ...
316 9 Pablo Alingery
Not needed at IAS  
317 9 Pablo Alingery
318 9 Pablo Alingery
On sdo and sdo3 modification in the DB ( index addition)
319 9 Pablo Alingery
320 9 Pablo Alingery
<pre>
321 9 Pablo Alingery
production@sdo:~$ psql ias_sdo_sums -p5434 
322 9 Pablo Alingery
ias_sdo_sums=# CREATE INDEX sum_partn_alloc_wd_idx ON public.sum_partn_alloc(wd) ;
323 9 Pablo Alingery
</pre>
324 9 Pablo Alingery
325 9 Pablo Alingery
h2. Start NetDrms 
326 9 Pablo Alingery
327 9 Pablo Alingery
h3. Launch sums.py 
328 9 Pablo Alingery
329 9 Pablo Alingery
<pre>
330 9 Pablo Alingery
sums.py --loglevel=debug &
331 9 Pablo Alingery
</pre>
332 9 Pablo Alingery
333 9 Pablo Alingery
334 9 Pablo Alingery
h3. Launch rsumsd-.py 
335 9 Pablo Alingery
336 9 Pablo Alingery
<pre>
337 9 Pablo Alingery
rsumsd.py --loglevel=debug &
338 9 Pablo Alingery
</pre>
339 9 Pablo Alingery
340 9 Pablo Alingery
341 9 Pablo Alingery
h3. Launch rsums-clientd.py 
342 9 Pablo Alingery
343 9 Pablo Alingery
<pre>
344 9 Pablo Alingery
rsums-clientd.py --loglevel=debug &
345 9 Pablo Alingery
</pre>
346 9 Pablo Alingery
347 9 Pablo Alingery
h2. Stop NetDrms 
348 9 Pablo Alingery
349 9 Pablo Alingery
h3. list processes and their pid
350 9 Pablo Alingery
351 9 Pablo Alingery
<pre>
352 9 Pablo Alingery
ps aux | grep python
353 9 Pablo Alingery
</pre>
354 9 Pablo Alingery
355 9 Pablo Alingery
h3. Stop rsums-clientd.py 
356 9 Pablo Alingery
357 9 Pablo Alingery
<pre>
358 9 Pablo Alingery
kill -2 #rsums-clientd.py_pid
359 9 Pablo Alingery
</pre>
360 9 Pablo Alingery
361 9 Pablo Alingery
h3. Stop rsumsd-.py 
362 9 Pablo Alingery
363 9 Pablo Alingery
<pre>
364 9 Pablo Alingery
kill -2 #rsumsd.py _pid 
365 9 Pablo Alingery
</pre>
366 9 Pablo Alingery
367 9 Pablo Alingery
h3. Stop sums.py 
368 9 Pablo Alingery
369 9 Pablo Alingery
<pre>
370 9 Pablo Alingery
kill -2 #sums.py_pid 
371 9 Pablo Alingery
</pre>
372 9 Pablo Alingery
373 9 Pablo Alingery
374 9 Pablo Alingery
375 8 Pablo Alingery
376 8 Pablo Alingery
377 8 Pablo Alingery
378 8 Pablo Alingery
h1. NetDrms 9.1.1 FAQ 
379 8 Pablo Alingery
380 8 Pablo Alingery
h2. rsumsd.py keep crashing 
381 8 Pablo Alingery
382 8 Pablo Alingery
Error message :
383 8 Pablo Alingery
If you 've got sthg like in rslog_20171204.txt (for exemple) 
384 8 Pablo Alingery
<pre>
385 8 Pablo Alingery
2017-12-04 14:35:56 - DEBUG - rsumsd.py:423 - Exiting TerminationHandler.
386 8 Pablo Alingery
2017-12-04 14:35:56 - ERROR - rsumsd.py:441 - (get) No SU-table record exists for SU 995061214.
387 8 Pablo Alingery
2017-12-04 14:35:56 - INFO - rsumsd.py:429 - Exiting with return status 15.
388 8 Pablo Alingery
</pre>
389 8 Pablo Alingery
390 8 Pablo Alingery
Workaround  : 
391 8 Pablo Alingery
392 8 Pablo Alingery
1) Delete from ingested_sunums table 
393 8 Pablo Alingery
ias_sdo=# select * from drms.ingested_sunums where sunum=995061214;                                                                                  
394 8 Pablo Alingery
 sunum   |           starttime           
395 8 Pablo Alingery
-----------+-------------------------------
396 8 Pablo Alingery
 995061214 | 2017-11-30 18:02:18.085994+01
397 8 Pablo Alingery
(1 row)
398 8 Pablo Alingery
399 8 Pablo Alingery
ias_sdo=# delete from drms.ingested_sunums where sunum=995061214;
400 8 Pablo Alingery
DELETE 1
401 8 Pablo Alingery
402 8 Pablo Alingery
2)Delete from rs.requests 
403 8 Pablo Alingery
404 8 Pablo Alingery
<pre>
405 8 Pablo Alingery
ias_sdo=# select * from drms.rs_requests where sunums like '%995061214%' ;
406 8 Pablo Alingery
ias_sdo=# delete from drms.rs_requests where sunums like '%995061214%' ;
407 8 Pablo Alingery
DELETE 132
408 8 Pablo Alingery
</pre>
409 8 Pablo Alingery
410 8 Pablo Alingery
3) Restart daemons sumsd.py , rsumsd.py, rsums-clientd.py  as production 
411 8 Pablo Alingery
412 8 Pablo Alingery
<pre>
413 8 Pablo Alingery
sumsd.py &
414 8 Pablo Alingery
rsums.py &
415 8 Pablo Alingery
rsums-clientd.py &
416 8 Pablo Alingery
417 8 Pablo Alingery
</pre>