powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Мучают блокировки...
25 сообщений из 124, страница 3 из 5
Мучают блокировки...
    #36010141
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДбашкабррЖуравлев ДенисДбашкабрр,
а покажите
sar -d 30

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
[root@newifx rpm]# ls | grep sysst
sysstat- 5 . 0 . 5 - 11 .rhel4.i386.rpm
[root@newifx rpm]# rpm -i sysstat- 5 . 0 . 5 - 11 .rhel4.i386.rpm
warning: sysstat- 5 . 0 . 5 - 11 .rhel4.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
[root@newifx rpm]# cd /
[root@newifx /]# sar -d  30 
Linux  2 . 6 . 9 - 42 .ELsmp (newifx)    05 / 27 / 2009 
Интересны столбцы которых нет точнее await

у меня sysstat-isag-8.0.4-31.1 sysstat-8.0.4-31.1 и там в два раза больше столбцов
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010148
Дбашкабрр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев ДенисДбашкабррЖуравлев ДенисДбашкабрр,
а покажите
sar -d 30

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
[root@newifx rpm]# ls | grep sysst
sysstat- 5 . 0 . 5 - 11 .rhel4.i386.rpm
[root@newifx rpm]# rpm -i sysstat- 5 . 0 . 5 - 11 .rhel4.i386.rpm
warning: sysstat- 5 . 0 . 5 - 11 .rhel4.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
[root@newifx rpm]# cd /
[root@newifx /]# sar -d  30 
Linux  2 . 6 . 9 - 42 .ELsmp (newifx)    05 / 27 / 2009 
Интересны столбцы которых нет точнее await

у меня sysstat-isag-8.0.4-31.1 sysstat-8.0.4-31.1 и там в два раза больше столбцов

У меня ощущение, что если я попробую поставить версию посвежее... то это потянет еще паровоз dependences.
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010172
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4 и 9-ти секундные чекпоинты намекают на проблему с диском. С другой стороны диск может быть загружен роллбеками.

покажите dbschema -d база -t accounts с первого и со второго серверов.
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010209
Дбашкабрр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денис4 и 9-ти секундные чекпоинты намекают на проблему с диском. С другой стороны диск может быть загружен роллбеками.

покажите dbschema -d база -t accounts с первого и со второго серверов.


1-й сервер:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
[root@breezzx root]# dbschema -d breezz1 -t accounts

{ TABLE "informix".accounts row size =  416  number of columns =  52  index size =  123 
              }
create table "informix".accounts
  (
    fiaccount_id serial not null ,
    ficust_id integer,
    fibatch_id integer,
    fiprovider_id integer not null ,
    fitq_plan_id integer,
    fiagent_id integer,
    fscontrol char( 20 )
        default '' not null ,
    fsoldcontrol char( 20 )
        default '' not null ,
    fswebword char( 20 ),
    fswebshadow char( 22 ),
    fswebreply char( 4 ),
    fiwebsecurity smallint
        default  1 ,
    fipay_t_id integer,
    ficrcy_id integer,
    fxbalance decimal( 16 , 2 )
        default  0 . 00  not null ,
    fabal_dttm datetime year to second,
    fxcriticalblce decimal( 16 , 2 ),
    fxmonthtraffic decimal( 16 , 2 ),
    fxdaytraffic decimal( 16 , 2 ),
    fxmonthkbytes decimal( 16 , 3 ),
    fafirstcdr datetime year to second,
    falastcdr datetime year to second,
    fxprovbalance decimal( 16 , 2 ),
    faprovbal_dttm datetime year to second,
    fiacct_type_id integer
        default  100  not null ,
    fxodraft_lim decimal( 16 , 2 )
        default  0 . 00  not null ,
    fxodraft_fee decimal( 16 , 2 )
        default  0 . 00  not null ,
    fdstart_date date,
    fdclose_date date,
    fdexp_date date,
    fiacc_life_days integer,
    fdlast_recharge date,
    fdlast_payment date,
    fiacct_stat_id integer
        default  200  not null ,
    fxmin_traf_month decimal( 16 , 2 )
        default  0 . 00  not null ,
    fxmax_traf_daily decimal( 16 , 2 )
        default  0 . 00  not null ,
    fxmax_traf_month decimal( 16 , 2 ),
    fxmax_rech_month decimal( 16 , 2 )
        default  0 . 00  not null ,
    fxdiscount decimal( 16 , 2 )
        default  0 . 00 ,
    fxcreditlimit decimal( 16 , 2 )
        default  0 . 00 ,
    fxsubscript_fee decimal( 16 , 2 ),
    fidelv_id integer,
    fiserv_class_id integer
        default  100 ,
    filang_voice integer
        default  1  not null ,
    finum_style_id integer
        default  1 ,
    ficdrsecurity smallint,
    fivmail_setup_id integer,
    fiacct_postpaid smallint
        default  0  not null ,
    fxsec_deposit decimal( 16 , 2 )
        default  0 . 00  not null ,
    fiaccmaster integer,
    fxautorecharge decimal( 16 , 2 ),
    fsaccdesc char( 50 )
  );
revoke all on "informix".accounts from "public";



create index "informix".ix_acc_accmast on "informix".accounts
    (fiaccmaster) using btree ;
create unique index "informix".ix_acc_control on "informix".accounts
    (fscontrol,fiprovider_id) using btree ;
create index "informix".ix_acc_control_up on "informix".accounts
    ("informix".upper_my(fscontrol)) using btree ;
create index "informix".ix_acc_fcdr on "informix".accounts (fafirstcdr)
    using btree ;
create index "informix".ix_acc_rech on "informix".accounts (ficust_id,
    fdlast_recharge) using btree ;
create index "informix".ix_acc_startd on "informix".accounts (fdstart_date)
    using btree ;
create index "informix".ix_account_exp on "informix".accounts
    (fdexp_date) using btree ;
create unique index "informix".ix_accounts1 on "informix".accounts
    (fiaccount_id) using btree ;
alter table "informix".accounts add constraint primary key (fiaccount_id)
    constraint "informix".ct_accounts2  ;
alter table "informix".accounts add constraint (foreign key (ficust_id)
    references "informix".customers  constraint "informix".fk_accounts1);


alter table "informix".accounts add constraint (foreign key (fibatch_id)
    references "informix".batches  constraint "informix".fk_acc_batch);


alter table "informix".accounts add constraint (foreign key (fiprovider_id)
    references "informix".providers  constraint "informix".fk_accounts3);



create trigger "informix".ih_accounts insert on "informix".accounts
    referencing new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('insert' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,' ' ,' ' ,' ' ,' ' ));

create trigger "informix".dh_accounts delete on "informix".accounts
    referencing old as pre
    for each row
        (
        delete from "informix".phone_alias  where (fiaccount_id
    = pre.fiaccount_id ) ),
        (
        execute procedure "informix".ufwriterechist('delete' ,
    'accounts' ,pre.fiaccount_id ,pre.fscontrol ,' ' ,' ' ,' ' ,' ' ));

create trigger "informix".uh_accounts update of fiacct_type_id,
    fidelv_id on "informix".accounts referencing old as pre new
    as post
    for each row
        (
        { generic }
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,' ' ,' ' ,' ' ,' ' ));

create trigger "informix".uh_acc_cust_id update of ficust_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiCust_id' ,'Номер клиента'
     ,pre.ficust_id ,post.ficust_id ));

create trigger "informix".uh_acc_batch_id update of fibatch_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiBatch_id' ,'Системный номер партии карт'
     ,pre.fibatch_id ,post.fibatch_id ));

create trigger "informix".uh_acc_prov update of fiprovider_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufupdacc_prov('update' ,post.fiaccount_id
    ,pre.fiprovider_id ,post.fiprovider_id )),
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiProvider_id' ,'Провайдер'
     ,pre.fiprovider_id ,post.fiprovider_id ));

create trigger "informix".uh_acc_tplan update of fitq_plan_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufupdacc_tplan('update' ,
    post.fiaccount_id ,pre.fitq_plan_id ,post.fitq_plan_id )),
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiTq_plan_id' ,'Тарифный план'
     ,pre.fitq_plan_id ,post.fitq_plan_id ));

create trigger "informix".uh_acc_agent_id update of fiagent_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiAgent_id' ,'Агент'
     ,pre.fiagent_id ,post.fiagent_id ));

create trigger "informix".uh_acc_control update of fscontrol
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fsControl' ,'Контрольный идентификатор счета'
     ,pre.fscontrol ,post.fscontrol ));

create trigger "informix".uh_acc_oldctrl update of fsoldcontrol
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fsOldControl' ,'Контрольный идентификатор счета (старый вариант)'
     ,pre.fsoldcontrol ,post.fsoldcontrol ));

create trigger "informix".uh_acc_wwd update of fswebword on "informix"
    .accounts referencing old as pre new as post
    for each row
        when ((((pre.fswebword != post.fswebword ) OR ((pre.fswebword
    IS NULL ) AND (post.fswebword IS NOT NULL ) ) ) OR ((pre.fswebword
    IS NOT NULL ) AND (post.fswebword IS NULL ) ) ) )
            (
            execute procedure "informix".ufwriterechist('update'
     ,'accounts' ,post.fiaccount_id ,post.fscontrol ,'fsWebWord' ,'Пароль для Web'
     ,'xxxxxxxx' ,'xxxxxxxxxx' ));

create trigger "informix".uh_acc_wrp update of fswebreply on
    "informix".accounts referencing old as pre new as post
    for each row
        when ((((pre.fswebreply != post.fswebreply ) OR ((pre.fswebreply
    IS NULL ) AND (post.fswebreply IS NOT NULL ) ) ) OR ((pre.fswebreply
    IS NOT NULL ) AND (post.fswebreply IS NULL ) ) ) )
            (
            execute procedure "informix".ufwriterechist('update'
     ,'accounts' ,post.fiaccount_id ,post.fscontrol ,'fsWebReply' ,'Отзыв для Web'
     ,'xxxxxxxx' ,'xxxxxxxxxx' ));

create trigger "informix".uh_acc_websecur update of fiwebsecurity
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiWebSecurity' ,'Web изоляция счета: 0 - нет, 1 - да.'
     ,pre.fiwebsecurity ,post.fiwebsecurity ));

create trigger "informix".uh_acc_pay_type update of fipay_t_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiPay_t_id' ,'Тип оплаты'
     ,pre.fipay_t_id ,post.fipay_t_id ));

create trigger "informix".uh_acc_crcy update of ficrcy_id on
    "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiCrcy_id' ,'Валюта'
     ,pre.ficrcy_id ,post.ficrcy_id ));

create trigger "informix".uh_acc_crit_bal update of fxcriticalblce
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxCriticalBlce' ,'Критическая величина остатка на счете'
     ,pre.fxcriticalblce ,post.fxcriticalblce ));

create trigger "informix".uh_acc_odraftlim update of fxodraft_lim
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxODraft_lim' ,'Лимит овердрафта'
     ,pre.fxodraft_lim ,post.fxodraft_lim ));

create trigger "informix".uh_acc_odraftfee update of fxodraft_fee
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxODraft_fee' ,'Пеня за овердрафт'
     ,pre.fxodraft_fee ,post.fxodraft_fee ));

create trigger "informix".uh_acc_start_dt update of fdstart_date
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fdStart_date' ,'Дата открытия счета'
     ,pre.fdstart_date ,post.fdstart_date ));

create trigger "informix".uh_acc_close_dt update of fdclose_date
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fdClose_date' ,'Дата фактического закрытия счета'
     ,pre.fdclose_date ,post.fdclose_date ));

create trigger "informix".uh_acc_exp_dt update of fdexp_date
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fdExp_date' ,'Предписанная дата закрытия счета'
     ,pre.fdexp_date ,post.fdexp_date ));

create trigger "informix".uh_acc_lifedays update of fiacc_life_days
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiAcc_life_days' ,'Максимальное время жизни счета в днях'
     ,pre.fiacc_life_days ,post.fiacc_life_days ));

create trigger "informix".uh_acc_stat update of fiacct_stat_id
    on "informix".accounts referencing old as pre new as post
    for each row
        when (((post.fibatch_id >  0  ) AND (pre.fiacct_stat_id
    =  100  ) ) )
            (
            execute procedure "informix".ufaccactivate(post.fibatch_id
    ,post.fiaccount_id , 1  )),
        when (((post.fibatch_id >  0  ) AND (post.fiacct_stat_id
    =  100  ) ) )
            (
            execute procedure "informix".ufaccactivate(post.fibatch_id
    ,post.fiaccount_id ,- 1  )),
        when (((post.fiacct_stat_id =  200  ) AND (pre.fiacct_stat_id
    =  100  ) ) )
            (
            update "informix".acct_details set "informix".acct_details.fipin_active
    =  1  ,"informix".acct_details.fdactivation = TODAY  where ((fiaccount_id
    = post.fiaccount_id ) AND (fipin_active = - 1  ) ) ),
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiAcct_stat_id' ,'Состояние (статус) счета'
     ,pre.fiacct_stat_id ,post.fiacct_stat_id ));

create trigger "informix".uh_acc_min_t_mon update of fxmin_traf_month
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxMin_traf_month' ,
    'Минимально допустимый объем трафика за месяц' ,pre.fxmin_traf_month
    ,post.fxmin_traf_month ));

create trigger "informix".uh_acc_max_t_day update of fxmax_traf_daily
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxMax_traf_daily' ,
    'Максимально допустимый объем трафика за день' ,pre.fxmax_traf_daily
    ,post.fxmax_traf_daily ));

create trigger "informix".uh_accmaxtrmonth update of fxmax_traf_month
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxMax_traf_month' ,
    'Максимально допустимый объем трафика за месяц' ,pre.fxmax_traf_month
    ,post.fxmax_traf_month ));

create trigger "informix".uh_acc_max_r_mon update of fxmax_rech_month
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxMax_rech_month' ,
    'Максимально допустимая общая сумма пополнения счета за месяц' ,pre.fxmax_rech_month
    ,post.fxmax_rech_month ));

create trigger "informix".uh_acc_discount update of fxdiscount
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxDiscount' ,'Бонусная скидка с трафика'
     ,pre.fxdiscount ,post.fxdiscount ));

create trigger "informix".uh_acc_creditlim update of fxcreditlimit
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxCreditLimit' ,'Лимит кредита'
     ,pre.fxcreditlimit ,post.fxcreditlimit ));

create trigger "informix".uh_acc_subscrfee update of fxsubscript_fee
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxSubscript_fee' ,'Абонентская плата'
     ,pre.fxsubscript_fee ,post.fxsubscript_fee ));

create trigger "informix".uh_acc_servclass update of fiserv_class_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiServ_class_id' ,'Категория услуги'
     ,pre.fiserv_class_id ,post.fiserv_class_id ));

create trigger "informix".uh_acc_langvoice update of filang_voice
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiLang_voice' ,'Язык голосового меню'
     ,pre.filang_voice ,post.filang_voice ));

create trigger "informix".uh_acc_cdr_secur update of ficdrsecurity
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiCDRSecurity' ,'Уровень безопасности при записи CDR'
     ,pre.ficdrsecurity ,post.ficdrsecurity ));

create trigger "informix".uh_acc_voicemail update of fivmail_setup_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiVMail_setup_id' ,
    'Вариант настройки голосовой почты' ,pre.fivmail_setup_id ,post.fivmail_setup_id
    ));

create trigger "informix".uh_acc_postpaid update of fiacct_postpaid
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiAcct_postpaid' ,'Режим оплаты клиентского счета'
     ,pre.fiacct_postpaid ,post.fiacct_postpaid ));

create trigger "informix".uh_acc_sec_dep update of fxsec_deposit
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxSec_deposit' ,'сумма страхового депозита'
     ,pre.fxsec_deposit ,post.fxsec_deposit ));

create trigger "informix".uh_acc_master update of fiaccmaster
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiAccMaster' ,'Master Account'
     ,pre.fiaccmaster ,post.fiaccmaster ));

create trigger "informix".uh_acc_auto_rech update of fxautorecharge
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxAutoRecharge' ,'Сумма автоматического пополнения'
     ,pre.fxautorecharge ,post.fxautorecharge ));



[root@breezzx root]#

2-й сервер:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
[root@newifx rpms]# dbschema -d breezz2 -t accounts

{ TABLE "informix".accounts row size =  416  number of columns =  52  index size =  123 
              }
create table "informix".accounts
  (
    fiaccount_id serial not null ,
    ficust_id integer,
    fibatch_id integer,
    fiprovider_id integer not null ,
    fitq_plan_id integer,
    fiagent_id integer,
    fscontrol char( 20 )
        default '' not null ,
    fsoldcontrol char( 20 )
        default '' not null ,
    fswebword char( 20 ),
    fswebshadow char( 22 ),
    fswebreply char( 4 ),
    fiwebsecurity smallint
        default  1 ,
    fipay_t_id integer,
    ficrcy_id integer,
    fxbalance decimal( 16 , 2 )
        default  0 . 00  not null ,
    fabal_dttm datetime year to second,
    fxcriticalblce decimal( 16 , 2 ),
    fxmonthtraffic decimal( 16 , 2 ),
    fxdaytraffic decimal( 16 , 2 ),
    fxmonthkbytes decimal( 16 , 3 ),
    fafirstcdr datetime year to second,
    falastcdr datetime year to second,
    fxprovbalance decimal( 16 , 2 ),
    faprovbal_dttm datetime year to second,
    fiacct_type_id integer
        default  100  not null ,
    fxodraft_lim decimal( 16 , 2 )
        default  0 . 00  not null ,
    fxodraft_fee decimal( 16 , 2 )
        default  0 . 00  not null ,
    fdstart_date date,
    fdclose_date date,
    fdexp_date date,
    fiacc_life_days integer,
    fdlast_recharge date,
    fdlast_payment date,
    fiacct_stat_id integer
        default  200  not null ,
    fxmin_traf_month decimal( 16 , 2 )
        default  0 . 00  not null ,
    fxmax_traf_daily decimal( 16 , 2 )
        default  0 . 00  not null ,
    fxmax_traf_month decimal( 16 , 2 ),
    fxmax_rech_month decimal( 16 , 2 )
        default  0 . 00  not null ,
    fxdiscount decimal( 16 , 2 )
        default  0 . 00 ,
    fxcreditlimit decimal( 16 , 2 )
        default  0 . 00 ,
    fxsubscript_fee decimal( 16 , 2 ),
    fidelv_id integer,
    fiserv_class_id integer
        default  100 ,
    filang_voice integer
        default  1  not null ,
    finum_style_id integer
        default  1 ,
    ficdrsecurity smallint,
    fivmail_setup_id integer,
    fiacct_postpaid smallint
        default  0  not null ,
    fxsec_deposit decimal( 16 , 2 )
        default  0 . 00  not null ,
    fiaccmaster integer,
    fxautorecharge decimal( 16 , 2 ),
    fsaccdesc char( 50 )
  );
revoke all on "informix".accounts from "public";



create index "informix".ix_acc_accmast on "informix".accounts
    (fiaccmaster) using btree ;
create unique index "informix".ix_acc_control on "informix".accounts
    (fscontrol,fiprovider_id) using btree ;
create index "informix".ix_acc_control_up on "informix".accounts
    ("informix".upper_my(fscontrol)) using btree ;
create index "informix".ix_acc_fcdr on "informix".accounts (fafirstcdr)
    using btree ;
create index "informix".ix_acc_rech on "informix".accounts (ficust_id,
    fdlast_recharge) using btree ;
create index "informix".ix_acc_startd on "informix".accounts (fdstart_date)
    using btree ;
create index "informix".ix_account_exp on "informix".accounts
    (fdexp_date) using btree ;
create unique index "informix".ix_accounts1 on "informix".accounts
    (fiaccount_id) using btree ;
alter table "informix".accounts add constraint primary key (fiaccount_id)
    constraint "informix".ct_accounts2  ;
alter table "informix".accounts add constraint (foreign key (ficust_id)
    references "informix".customers  constraint "informix".fk_accounts1);


alter table "informix".accounts add constraint (foreign key (fibatch_id)
    references "informix".batches  constraint "informix".fk_acc_batch);


alter table "informix".accounts add constraint (foreign key (fiprovider_id)
    references "informix".providers  constraint "informix".fk_accounts3);



create trigger "informix".ih_accounts insert on "informix".accounts
    referencing new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('insert' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,' ' ,' ' ,' ' ,' ' ));

create trigger "informix".dh_accounts delete on "informix".accounts
    referencing old as pre
    for each row
        (
        delete from "informix".phone_alias  where (fiaccount_id
    = pre.fiaccount_id ) ),
        (
        execute procedure "informix".ufwriterechist('delete' ,
    'accounts' ,pre.fiaccount_id ,pre.fscontrol ,' ' ,' ' ,' ' ,' ' ));

create trigger "informix".uh_accounts update of fiacct_type_id,
    fidelv_id on "informix".accounts referencing old as pre new
    as post
    for each row
        (
        { generic }
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,' ' ,' ' ,' ' ,' ' ));

create trigger "informix".uh_acc_cust_id update of ficust_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiCust_id' ,'Номер клиента'
     ,pre.ficust_id ,post.ficust_id ));

create trigger "informix".uh_acc_batch_id update of fibatch_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiBatch_id' ,'Системный номер партии карт'
     ,pre.fibatch_id ,post.fibatch_id ));

create trigger "informix".uh_acc_prov update of fiprovider_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufupdacc_prov('update' ,post.fiaccount_id
    ,pre.fiprovider_id ,post.fiprovider_id )),
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiProvider_id' ,'Провайдер'
     ,pre.fiprovider_id ,post.fiprovider_id ));

create trigger "informix".uh_acc_tplan update of fitq_plan_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufupdacc_tplan('update' ,
    post.fiaccount_id ,pre.fitq_plan_id ,post.fitq_plan_id )),
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiTq_plan_id' ,'Тарифный план'
     ,pre.fitq_plan_id ,post.fitq_plan_id ));

create trigger "informix".uh_acc_agent_id update of fiagent_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiAgent_id' ,'Агент'
     ,pre.fiagent_id ,post.fiagent_id ));

create trigger "informix".uh_acc_control update of fscontrol
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fsControl' ,'Контрольный идентификатор счета'
     ,pre.fscontrol ,post.fscontrol ));

create trigger "informix".uh_acc_oldctrl update of fsoldcontrol
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fsOldControl' ,'Контрольный идентификатор счета (старый вариант)'
     ,pre.fsoldcontrol ,post.fsoldcontrol ));

create trigger "informix".uh_acc_wwd update of fswebword on "informix"
    .accounts referencing old as pre new as post
    for each row
        when ((((pre.fswebword != post.fswebword ) OR ((pre.fswebword
    IS NULL ) AND (post.fswebword IS NOT NULL ) ) ) OR ((pre.fswebword
    IS NOT NULL ) AND (post.fswebword IS NULL ) ) ) )
            (
            execute procedure "informix".ufwriterechist('update'
     ,'accounts' ,post.fiaccount_id ,post.fscontrol ,'fsWebWord' ,'Пароль для Web'
     ,'xxxxxxxx' ,'xxxxxxxxxx' ));

create trigger "informix".uh_acc_wrp update of fswebreply on
    "informix".accounts referencing old as pre new as post
    for each row
        when ((((pre.fswebreply != post.fswebreply ) OR ((pre.fswebreply
    IS NULL ) AND (post.fswebreply IS NOT NULL ) ) ) OR ((pre.fswebreply
    IS NOT NULL ) AND (post.fswebreply IS NULL ) ) ) )
            (
            execute procedure "informix".ufwriterechist('update'
     ,'accounts' ,post.fiaccount_id ,post.fscontrol ,'fsWebReply' ,'Отзыв для Web'
     ,'xxxxxxxx' ,'xxxxxxxxxx' ));

create trigger "informix".uh_acc_websecur update of fiwebsecurity
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiWebSecurity' ,'Web изоляция счета: 0 - нет, 1 - да.'
     ,pre.fiwebsecurity ,post.fiwebsecurity ));

create trigger "informix".uh_acc_pay_type update of fipay_t_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiPay_t_id' ,'Тип оплаты'
     ,pre.fipay_t_id ,post.fipay_t_id ));

create trigger "informix".uh_acc_crcy update of ficrcy_id on
    "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiCrcy_id' ,'Валюта'
     ,pre.ficrcy_id ,post.ficrcy_id ));

create trigger "informix".uh_acc_crit_bal update of fxcriticalblce
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxCriticalBlce' ,'Критическая величина остатка на счете'
     ,pre.fxcriticalblce ,post.fxcriticalblce ));

create trigger "informix".uh_acc_odraftlim update of fxodraft_lim
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxODraft_lim' ,'Лимит овердрафта'
     ,pre.fxodraft_lim ,post.fxodraft_lim ));

create trigger "informix".uh_acc_odraftfee update of fxodraft_fee
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxODraft_fee' ,'Пеня за овердрафт'
     ,pre.fxodraft_fee ,post.fxodraft_fee ));

create trigger "informix".uh_acc_start_dt update of fdstart_date
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fdStart_date' ,'Дата открытия счета'
     ,pre.fdstart_date ,post.fdstart_date ));

create trigger "informix".uh_acc_close_dt update of fdclose_date
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fdClose_date' ,'Дата фактического закрытия счета'
     ,pre.fdclose_date ,post.fdclose_date ));

create trigger "informix".uh_acc_exp_dt update of fdexp_date
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fdExp_date' ,'Предписанная дата закрытия счета'
     ,pre.fdexp_date ,post.fdexp_date ));

create trigger "informix".uh_acc_lifedays update of fiacc_life_days
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiAcc_life_days' ,'Максимальное время жизни счета в днях'
     ,pre.fiacc_life_days ,post.fiacc_life_days ));

create trigger "informix".uh_acc_stat update of fiacct_stat_id
    on "informix".accounts referencing old as pre new as post
    for each row
        when (((post.fibatch_id >  0  ) AND (pre.fiacct_stat_id
    =  100  ) ) )
            (
            execute procedure "informix".ufaccactivate(post.fibatch_id
    ,post.fiaccount_id , 1  )),
        when (((post.fibatch_id >  0  ) AND (post.fiacct_stat_id
    =  100  ) ) )
            (
            execute procedure "informix".ufaccactivate(post.fibatch_id
    ,post.fiaccount_id ,- 1  )),
        when (((post.fiacct_stat_id =  200  ) AND (pre.fiacct_stat_id
    =  100  ) ) )
            (
            update "informix".acct_details set "informix".acct_details.fipin_active
    =  1  ,"informix".acct_details.fdactivation = TODAY  where ((fiaccount_id
    = post.fiaccount_id ) AND (fipin_active = - 1  ) ) ),
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiAcct_stat_id' ,'Состояние (статус) счета'
     ,pre.fiacct_stat_id ,post.fiacct_stat_id ));

create trigger "informix".uh_acc_min_t_mon update of fxmin_traf_month
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxMin_traf_month' ,
    'Минимально допустимый объем трафика за месяц' ,pre.fxmin_traf_month
    ,post.fxmin_traf_month ));

create trigger "informix".uh_acc_max_t_day update of fxmax_traf_daily
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxMax_traf_daily' ,
    'Максимально допустимый объем трафика за день' ,pre.fxmax_traf_daily
    ,post.fxmax_traf_daily ));

create trigger "informix".uh_accmaxtrmonth update of fxmax_traf_month
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxMax_traf_month' ,
    'Максимально допустимый объем трафика за месяц' ,pre.fxmax_traf_month
    ,post.fxmax_traf_month ));

create trigger "informix".uh_acc_max_r_mon update of fxmax_rech_month
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxMax_rech_month' ,
    'Максимально допустимая общая сумма пополнения счета за месяц' ,pre.fxmax_rech_month
    ,post.fxmax_rech_month ));

create trigger "informix".uh_acc_discount update of fxdiscount
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxDiscount' ,'Бонусная скидка с трафика'
     ,pre.fxdiscount ,post.fxdiscount ));

create trigger "informix".uh_acc_creditlim update of fxcreditlimit
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxCreditLimit' ,'Лимит кредита'
     ,pre.fxcreditlimit ,post.fxcreditlimit ));

create trigger "informix".uh_acc_subscrfee update of fxsubscript_fee
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxSubscript_fee' ,'Абонентская плата'
     ,pre.fxsubscript_fee ,post.fxsubscript_fee ));

create trigger "informix".uh_acc_servclass update of fiserv_class_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiServ_class_id' ,'Категория услуги'
     ,pre.fiserv_class_id ,post.fiserv_class_id ));

create trigger "informix".uh_acc_langvoice update of filang_voice
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiLang_voice' ,'Язык голосового меню'
     ,pre.filang_voice ,post.filang_voice ));

create trigger "informix".uh_acc_cdr_secur update of ficdrsecurity
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiCDRSecurity' ,'Уровень безопасности при записи CDR'
     ,pre.ficdrsecurity ,post.ficdrsecurity ));

create trigger "informix".uh_acc_voicemail update of fivmail_setup_id
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiVMail_setup_id' ,
    'Вариант настройки голосовой почты' ,pre.fivmail_setup_id ,post.fivmail_setup_id
    ));

create trigger "informix".uh_acc_postpaid update of fiacct_postpaid
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiAcct_postpaid' ,'Режим оплаты клиентского счета'
     ,pre.fiacct_postpaid ,post.fiacct_postpaid ));

create trigger "informix".uh_acc_sec_dep update of fxsec_deposit
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxSec_deposit' ,'сумма страхового депозита'
     ,pre.fxsec_deposit ,post.fxsec_deposit ));

create trigger "informix".uh_acc_master update of fiaccmaster
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fiAccMaster' ,'Master Account'
     ,pre.fiaccmaster ,post.fiaccmaster ));

create trigger "informix".uh_acc_auto_rech update of fxautorecharge
    on "informix".accounts referencing old as pre new as post
    for each row
        (
        execute procedure "informix".ufwriterechist('update' ,
    'accounts' ,post.fiaccount_id ,post.fscontrol ,'fxAutoRecharge' ,'Сумма автоматического пополнения'
     ,pre.fxautorecharge ,post.fxautorecharge ));



[root@newifx rpms]#
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010219
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДбашкабррСтатистика...




1. Нагрузка на дисковую систему разная хотя использование данных сессиями и количество коммитов приблизительно одинаковые.

2. Сравнить планы запросов на разных серверах ( соберите статистику ).



3. Меня очень настораживает большое количество дисковых операций в секунду на втором сервере.
это либо из за разных планов,
либо есть отличия в структурах данных( индексах) либо операциях с данными.

4. Дайте вывод onstat -P с 2 серверов ( достаточно только последних строчек с % распередением).
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010231
Дбашкабрр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
onstat-ДбашкабррСтатистика...




1. Нагрузка на дисковую систему разная хотя использование данных сессиями и количество коммитов приблизительно одинаковые.

2. Сравнить планы запросов на разных серверах ( соберите статистику ).



3. Меня очень настораживает большое количество дисковых операций в секунду на втором сервере.
это либо из за разных планов,
либо есть отличия в структурах данных( индексах) либо операциях с данными.

4. Дайте вывод onstat -P с 2 серверов ( достаточно только последних строчек с % распередением).

1-й:

Код: plaintext
1.
2.
3.
4.
Percentages:
Data   87 . 94 
Btree  9 . 93 
Other  2 . 14 

2-й:

Код: plaintext
1.
2.
3.
4.
Percentages:
Data   91 . 35 
Btree  8 . 57 
Other  0 . 08 
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010265
Дбашкабрр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
onstat-ДбашкабррСтатистика...


2. Сравнить планы запросов на разных серверах ( соберите статистику ).
.

Как это сделать?
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010301
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дбашкабррonstat-ДбашкабррСтатистика...


2. Сравнить планы запросов на разных серверах ( соберите статистику ).
.

Как это сделать?

А какая версия ?

Либо в сессии нужно сказать set explain on;
либо через onmode если версия сервера поддерживает
например

На сервере в домашней директории пользователя появится файл setexplain.out

Паралельно проанализируйте таблицу sysptprof на предмет какие таблицы больше всего
участвуют в дисковом вводе выводе.

В первую очередь Ищите и сравнивайте планы с запросами по таблицам, по которым
ввод вывод максимальный.
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010311
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДбашкабррЖуравлев Дениспокажите dbschema -d база -t accounts с первого и со второго серверов.
1-й сервер:
...

Структуры таблиц совпадают. При желании можно попытаться копать дальше, в тексты используемых триггерами ХП:
ufwriterechist
ufupdacc_prov
ufupdacc_tplan
ufaccactivate

, а также структуры, которые эти ХП используют...
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010347
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО
Это происходит потому, что
1. Кто то выбивает из дискового кеша какие то еще нужные данные.
2. Пользователи оперируют разными данными ( разного обьема) в выборках( топикстартер переоценил одинаковость систем),
3. Планы поехали.

Процентное соотношение индексов и данных в буферном кеше не очень похоже на то что система работает в режиме OLTP.

Как [b]полумера[/b ] увеличте размер буферного кеша на втором сервере, но не факт что поможет.
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010363
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДбашкабррСтатистика...

1-й сервер:

Код: plaintext
1.
2.
3.
4.
5.
6.
[root@breezzx root]# onstat -p
IBM Informix Dynamic Server Version  9 . 40 .UC6     -- On-Line -- Up 88 days 23:17:58 -- 636168 Kbytes

Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
 597        4087       633414214   100 . 00    9159       16761      51576      82 . 24 

2-сервер:

Код: plaintext
1.
2.
3.
4.
5.
6.
[root@newifx /]# onstat -p
IBM Informix Dynamic Server Version  9 . 40 .UC6     -- On-Line -- Up 1 days 11:57:06 -- 695232 Kbytes

Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
 69098647   71964077   554046800   87 . 53     61346      482665     488571     87 . 44 


update statistcs for procedures ?
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010375
svat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДбашкабррРешил порыть в RAID контроллере... вот результат...

Код: plaintext
1.
2.
3.
4.
          Logical Drive :  0 ( Adapter:  0  ):  Status: OPTIMAL
        ---------------------------------------------------
        SpanDepth : 01      RaidLevel:  5   RdAhead : No  Cache: DirectIo
        StripSz   :064KB   Stripes  :  3   WrPolicy: WriteThru


ИМХО, т.к. скорей всего проблема в плохой производительности дисковой подсистемы
на 2-м сервере, то:
1) меняем WrPolicy: с WriteThru на WriteBack ;
2) тестируем заново с пом. bonnie++ ;
3) сравниваем с предыдущим результатом и радуемся приросту (возможно немного
огорчаемся, что "не дотянули до показаний на 1м сервере");
4) если на контроллере есть батарейка, то так и оставляем, ежели нету - то
чешем затылок в сторону "рисковать/не рисковать" или "а не прикупить ли батарейку?"
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010386
Дбашкабрр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТанДбашкабррСтатистика...

1-й сервер:

Код: plaintext
1.
2.
3.
4.
5.
6.
[root@breezzx root]# onstat -p
IBM Informix Dynamic Server Version  9 . 40 .UC6     -- On-Line -- Up 88 days 23:17:58 -- 636168 Kbytes

Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
 597        4087       633414214   100 . 00    9159       16761      51576      82 . 24 

2-сервер:

Код: plaintext
1.
2.
3.
4.
5.
6.
[root@newifx /]# onstat -p
IBM Informix Dynamic Server Version  9 . 40 .UC6     -- On-Line -- Up 1 days 11:57:06 -- 695232 Kbytes

Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
 69098647   71964077   554046800   87 . 53     61346      482665     488571     87 . 44 


update statistcs for procedures ?

Насколько критично выполнить update statistcs for procedures в период рабочей нагрузки?
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010392
Дбашкабрр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
svat2ДбашкабррРешил порыть в RAID контроллере... вот результат...

Код: plaintext
1.
2.
3.
4.
          Logical Drive :  0 ( Adapter:  0  ):  Status: OPTIMAL
        ---------------------------------------------------
        SpanDepth : 01      RaidLevel:  5   RdAhead : No  Cache: DirectIo
        StripSz   :064KB   Stripes  :  3   WrPolicy: WriteThru


ИМХО, т.к. скорей всего проблема в плохой производительности дисковой подсистемы
на 2-м сервере, то:
1) меняем WrPolicy: с WriteThru на WriteBack ;
2) тестируем заново с пом. bonnie++ ;
3) сравниваем с предыдущим результатом и радуемся приросту (возможно немного
огорчаемся, что "не дотянули до показаний на 1м сервере");
4) если на контроллере есть батарейка, то так и оставляем, ежели нету - то
чешем затылок в сторону "рисковать/не рисковать" или "а не прикупить ли батарейку?"

1) Думал об этом :)
2) Хочу так и сделать...
4) Батарейки нету :(
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010447
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тан
update statistcs for procedures ?
А в чём может быть проблема? НУ при первом вызове конкретно взятой ХП после UPD STAT TABLE план запросов в этой ХП будет сохранён. Если не напортачили с PDQPRIORITY и нет lock time expired по sysprocplan - UPD STAT PROC вроде бы существенно не поможет :(
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010449
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дбашкабрр

Насколько критично выполнить update statistcs for procedures в период рабочей нагрузки?


как минимум некоторые сессии могут наткнутся на заблокированные записи в sysprocplan.
Как максимум сервер может упасть , была когда то такая лажа на 7.31
когда под нагрузкой update statistics for procedure ложил сервер.
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010469
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойТан
update statistcs for procedures ?
А в чём может быть проблема? НУ при первом вызове конкретно взятой ХП после UPD STAT TABLE план запросов в этой ХП будет сохранён. Если не напортачили с PDQPRIORITY и нет lock time expired по sysprocplan - UPD STAT PROC вроде бы существенно не поможет :(

ИМХО поможет, если меняли уровень блокировок на таблицах с page на row или наоборот.
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010483
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойТан
update statistcs for procedures ?
А в чём может быть проблема? НУ при первом вызове конкретно взятой ХП после UPD STAT TABLE план запросов в этой ХП будет сохранён. Если не напортачили с PDQPRIORITY и нет lock time expired по sysprocplan - UPD STAT PROC вроде бы существенно не поможет :(
если схемы одинаковые, данные одинаковые, статистика одинаковая, активность одинаковая - откуда столько дисковых чтений на втором?
что-то там разное...
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010485
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstatНа сервере в домашней директории пользователя появится файл setexplain.out

Не забывать, что в режиме обычной работы сессии не все выполняемые запросы попадут в setexplain.out. Часть запросов, которая оптимизируется не при каждом запуске ХП, можно увидеть только при

SET EXPLAIN ON;
UPDATE STATISTICS FOR PROCEDURE ...;

onstat
Паралельно проанализируйте таблицу sysptprof на предмет какие таблицы больше всего
участвуют в дисковом вводе выводе.

+1
Не забывать, что sysptprof заполняется только при условии наличия включенного TBLSPACE_STAT 1 в конфиге, чего у Дбашкабрр на первом сервере не наблюдается...
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010491
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Танчто-то там разное...
ОК. Тогда я склоняюсь к мнению, что скорее
SET EXPLAIN ON;
UPDATE STATISTICS FOR PROCEDURE
для последующего анализа, чем поможет UPDATE STATISTICS FOR PROCEDURE сам по себе :)
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010505
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-Тан
update statistcs for procedures ?
ИМХО поможет, если меняли уровень блокировок на таблицах с page на row или наоборот.
Это был бы супервариант... Да, кстати, насчёт deadlock'ов, Дбашкабрр писал что только ЧАСТЬ таблиц переведена на LOCK MODE ROW. Может не переведена собственно accounts или таблицы из паровоза, затрагиваемого триггерными ХП?
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010524
Дбашкабрр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойТанчто-то там разное...
ОК. Тогда я склоняюсь к мнению, что скорее
SET EXPLAIN ON;
UPDATE STATISTICS FOR PROCEDURE
для последующего анализа, чем поможет UPDATE STATISTICS FOR PROCEDURE сам по себе :)

Выполнил. Routine Statistics updated.
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010539
Дбашкабрр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойonstat-Тан
update statistcs for procedures ?
ИМХО поможет, если меняли уровень блокировок на таблицах с page на row или наоборот.
Это был бы супервариант... Да, кстати, насчёт deadlock'ов, Дбашкабрр писал что только ЧАСТЬ таблиц переведена на LOCK MODE ROW. Может не переведена собственно accounts или таблицы из паровоза, затрагиваемого триггерными ХП?

Вот таблицы которые "мелькают" в блокировках...

informix.Accounts EXTENT SIZE 2064 NEXT SIZE 206 LOCK MODE ROW
informix.acct_traffic EXTENT SIZE 306 NEXT SIZE 30 LOCK MODE PAGE
informix.agent_traffic EXTENT SIZE 16 NEXT SIZE 16 LOCK MODE PAGE
informix.cdr EXTENT SIZE 550366 NEXT SIZE 55036 LOCK MODE PAGE
informix.customers EXTENT SIZE 135 NEXT SIZE 16 LOCK MODE ROW
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010566
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДбашкабррАнатоЛойТанчто-то там разное...
ОК. Тогда я склоняюсь к мнению, что скорее
SET EXPLAIN ON;
UPDATE STATISTICS FOR PROCEDURE
для последующего анализа, чем поможет UPDATE STATISTICS FOR PROCEDURE сам по себе :)

Выполнил. Routine Statistics updated.
Ещё не помогло? Жалко, такая идея Тан и onstat- с последствиями после PAGE=>ROW не сработала :(.

Тогда трактуйте мою фразу "для последующего анализа" как фразу "для последующего анализа sqlexplain.out" :).

Ищем подозрительные "SEQUENTIAL SCAN" и большие "Estimated cost", а также особое внимание уделяем запросам с теми таблицами, которые имеют большие показатели в sysprtprof на втором сервер (благо, там TBLSPACE_STAT включен)...

П.С.: Хотя вариант svat2 с RAID (так сказать со стороны железа) тоже паралельно отрабатывать надо....
...
Рейтинг: 0 / 0
Мучают блокировки...
    #36010580
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДбашкабррВот таблицы которые "мелькают" в блокировках...

informix.Accounts EXTENT SIZE 2064 NEXT SIZE 206 LOCK MODE ROW
informix.acct_traffic EXTENT SIZE 306 NEXT SIZE 30 LOCK MODE PAGE
informix.agent_traffic EXTENT SIZE 16 NEXT SIZE 16 LOCK MODE PAGE
informix.cdr EXTENT SIZE 550366 NEXT SIZE 55036 LOCK MODE PAGE
informix.customers EXTENT SIZE 135 NEXT SIZE 16 LOCK MODE ROW

Какими рамішлениями руководствовались, когда выбирали для них PAGE или ROW?
Такие же ли LOCK MODE на первом сервере?
Может это последствия dbexport без -ss с последущим dbimport, и в результате ВСЕ таблицы на втором сервере перешли в LOCK MODE PAGE? Сравните запросами к systables на первом и втором сервере - в systables есть поле с признаком P/R
...
Рейтинг: 0 / 0
25 сообщений из 124, страница 3 из 5
Форумы / Informix [игнор отключен] [закрыт для гостей] / Мучают блокировки...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]