Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Проблема с базой данных  [new]
Andrey Sribnyak
Member

Откуда: Киев
Сообщений: 599
Добрый день, такая ситуация

поднят сервер db2 на SLED 11


db2inst2@db2-test:~> db2level
DB21085I  Instance "db2inst2" uses "64" bits and DB2 code release "SQL09072"
with level identifier "08030107".                                           
Informational tokens are "DB2 v9.7.0.2", "s100514", "IP23089", and Fix Pack 
"2".                                                                        
Product is installed at "/opt/ibm/db2".    



С такими переменными окружения:

db2inst2@db2-test:~> db2set -all
[i] DB2_SUBSELECT_LEVEL_LOCKING=ON [DB2_WORKLOAD]
[i] DB2_EXPRESSION_RULES=RAISE_ERROR_PERMIT_SKIP [DB2_WORKLOAD]
[i] DB2_WORKLOAD=1C                                            
[i] DB2_MINIMIZE_LISTPREFETCH=YES [DB2_WORKLOAD]               
[i] DB2_REDUCED_OPTIMIZATION=INDEX,PRUNE_KEYS,DISABLE_FDS,REDUCE_LOCKING [DB2_WORKLOAD]
[i] DB2_INTERESTING_KEYS=YES [DB2_WORKLOAD]                                            
[i] DB2_EXTENDED_OPTIMIZATION=ENHANCED_FFNR,NO_HVCHECK [DB2_WORKLOAD]                  
[i] DB2COMPOPT=17236231,1 [DB2_WORKLOAD]                                               
[i] DB2PROCESSORS=0,1                                                                  
[i] DB2COMM=tcpip                                                                      
[g] DB2_COMPATIBILITY_VECTOR=MYS                                                       
[g] DB2SYSTEM=db2-test                                                                 
[g] DB2INSTDEF=db2inst2                                                                

И такой конфигурацией:

db2inst2@db2-test:~> db2 get dbm cfg                                                                                                                                   
                                                                                                                                                                       
          Database Manager Configuration                                                                                                                               
                                                                                                                                                                       
     Node type = Database Server with local and remote clients                                                                                                         
                                                                                                                                                                       
 Database manager configuration release level            = 0x0d00                                                                                                      
                                                                                                                                                                       
 CPU speed (millisec/instruction)             (CPUSPEED) = 2,361721e-07                                                                                                
                                                                                                                                                                       
 Max number of concurrently active databases     (NUMDB) = 8                                                                                                           
 Federated Database System Support           (FEDERATED) = NO                                                                                                          
 Transaction processor monitor name        (TP_MON_NAME) =                                                                                                             
                                                                                                                                                                       
 Default charge-back account           (DFT_ACCOUNT_STR) =                                                                                                             

 Java Development Kit installation path       (JDK_PATH) = /db/db2inst2/sqllib/java/jdk64

 Diagnostic error capture level              (DIAGLEVEL) = 3
 Notify Level                              (NOTIFYLEVEL) = 3
 Diagnostic data directory path               (DIAGPATH) = /db/db2inst2/sqllib/db2dump
 Size of rotating db2diag & notify logs (MB)  (DIAGSIZE) = 0                          

 Default database monitor switches
   Buffer pool                         (DFT_MON_BUFPOOL) = OFF
   Lock                                   (DFT_MON_LOCK) = ON 
   Sort                                   (DFT_MON_SORT) = OFF
   Statement                              (DFT_MON_STMT) = OFF
   Table                                 (DFT_MON_TABLE) = OFF
   Timestamp                         (DFT_MON_TIMESTAMP) = ON 
   Unit of work                            (DFT_MON_UOW) = OFF
 Monitor health of instance and databases   (HEALTH_MON) = ON 

 SYSADM group name                        (SYSADM_GROUP) = DB2IADM1
 SYSCTRL group name                      (SYSCTRL_GROUP) =         
 SYSMAINT group name                    (SYSMAINT_GROUP) =         
 SYSMON group name                        (SYSMON_GROUP) =         

 Client Userid-Password Plugin          (CLNT_PW_PLUGIN) = 
 Client Kerberos Plugin                (CLNT_KRB_PLUGIN) = 
 Group Plugin                             (GROUP_PLUGIN) = 
 GSS Plugin for Local Authorization    (LOCAL_GSSPLUGIN) = 
 Server Plugin Mode                    (SRV_PLUGIN_MODE) = UNFENCED
 Server List of GSS Plugins      (SRVCON_GSSPLUGIN_LIST) =         
 Server Userid-Password Plugin        (SRVCON_PW_PLUGIN) =         
 Server Connection Authentication          (SRVCON_AUTH) = NOT_SPECIFIED
 Cluster manager                           (CLUSTER_MGR) =              

 Database manager authentication        (AUTHENTICATION) = SERVER
 Alternate authentication           (ALTERNATE_AUTH_ENC) = NOT_SPECIFIED
 Cataloging allowed without authority   (CATALOG_NOAUTH) = NO           
 Trust all clients                      (TRUST_ALLCLNTS) = YES          
 Trusted client authentication          (TRUST_CLNTAUTH) = CLIENT       
 Bypass federated authentication            (FED_NOAUTH) = NO           

 Default database path                       (DFTDBPATH) = /db/db2inst2

 Database monitor heap size (4KB)          (MON_HEAP_SZ) = AUTOMATIC(90)
 Java Virtual Machine heap size (4KB)     (JAVA_HEAP_SZ) = 2048         
 Audit buffer size (4KB)                  (AUDIT_BUF_SZ) = 0            
 Size of instance shared memory (4KB)  (INSTANCE_MEMORY) = 471860       
 Backup buffer default size (4KB)            (BACKBUFSZ) = 1024         
 Restore buffer default size (4KB)           (RESTBUFSZ) = 1024         

 Agent stack size                       (AGENT_STACK_SZ) = 1024
 Sort heap threshold (4KB)                  (SHEAPTHRES) = 0   

 Directory cache support                     (DIR_CACHE) = YES

 Application support layer heap size (4KB)   (ASLHEAPSZ) = 15
 Max requester I/O block size (bytes)         (RQRIOBLK) = 32767
 Query heap size (4KB)                   (QUERY_HEAP_SZ) = 1000 

 Workload impact by throttled utilities(UTIL_IMPACT_LIM) = 10

 Priority of agents                           (AGENTPRI) = SYSTEM
 Agent pool size                        (NUM_POOLAGENTS) = AUTOMATIC(100)
 Initial number of agents in pool       (NUM_INITAGENTS) = 0             
 Max number of coordinating agents     (MAX_COORDAGENTS) = AUTOMATIC(200)
 Max number of client connections      (MAX_CONNECTIONS) = AUTOMATIC(MAX_COORDAGENTS)

 Keep fenced process                        (KEEPFENCED) = YES
 Number of pooled fenced processes         (FENCED_POOL) = AUTOMATIC(MAX_COORDAGENTS)
 Initial number of fenced processes     (NUM_INITFENCED) = 0                         

 Index re-creation time and redo index build  (INDEXREC) = RESTART

 Transaction manager database name         (TM_DATABASE) = 1ST_CONN
 Transaction resync interval (sec)     (RESYNC_INTERVAL) = 180     

 SPM name                                     (SPM_NAME) = db2_tes1
 SPM log size                          (SPM_LOG_FILE_SZ) = 256     
 SPM resync agent limit                 (SPM_MAX_RESYNC) = 20      
 SPM log path                             (SPM_LOG_PATH) =         

 TCP/IP Service name                          (SVCENAME) = 50000
 Discovery mode                               (DISCOVER) = SEARCH
 Discover server instance                (DISCOVER_INST) = ENABLE

 SSL server keydb file                   (SSL_SVR_KEYDB) =
 SSL server stash file                   (SSL_SVR_STASH) =
 SSL server certificate label            (SSL_SVR_LABEL) =
 SSL service name                         (SSL_SVCENAME) =
 SSL cipher specs                      (SSL_CIPHERSPECS) =
 SSL versions                             (SSL_VERSIONS) =
 SSL client keydb file                  (SSL_CLNT_KEYDB) =
 SSL client stash file                  (SSL_CLNT_STASH) =

 Maximum query degree of parallelism   (MAX_QUERYDEGREE) = ANY
 Enable intra-partition parallelism     (INTRA_PARALLEL) = NO 

 No. of int. communication buffers(4KB)(FCM_NUM_BUFFERS) = AUTOMATIC(1024)
 No. of int. communication channels   (FCM_NUM_CHANNELS) = AUTOMATIC(512) 
 db2start/db2stop timeout (min)        (START_STOP_TIME) = 10             




На сервере развернута одна база данных через конфигуратор 1C:

db2inst2@db2-test:~> db2 list db directory

 System Database Directory

 Number of entries in the directory = 1

Database 1 entry:

 Database alias                       = DB2TEST
 Database name                        = DB2TEST
 Local database directory             = /db/db2inst2
 Database release level               = d.00
 Comment                              = DB2-TEST_50000_DB2TEST
 Directory entry type                 = Indirect
 Catalog database partition number    = 0
 Alternate server hostname            =
 Alternate server port number         =




Общий размер базы данных около 5 гбт


 andrey@db2-test:/db/db2inst2> sudo du -h db2inst2
root's password:
12K     db2inst2/NODE0000/SQL00002/db2event/db2detaildeadlock
16K     db2inst2/NODE0000/SQL00002/db2event
257M    db2inst2/NODE0000/SQL00002/SQLOGDIR
4,0K    db2inst2/NODE0000/SQL00002/load
5,0G    db2inst2/NODE0000/SQL00002
8,0K    db2inst2/NODE0000/DB2TEST/T0000008/C0000000.UTM
12K     db2inst2/NODE0000/DB2TEST/T0000008
33M     db2inst2/NODE0000/DB2TEST/T0000007
33M     db2inst2/NODE0000/DB2TEST
16K     db2inst2/NODE0000/sqldbdir
5,0G    db2inst2/NODE0000
5,0G    db2inst2


Самая большая таблица около 4 млн записей

Проблема такая, при выполнение каких-то простыъ действий, 1С отрабатывает достаточно шустро. Но при попытке проведения сложной проводки - виснит намертво. Причем ни посмотреть блокировки

db2 get snapshot for locks on db2test


ни даже остановить базу данных

db2stop force

не удается. База висит мертво. Спасает либо перезагрузка либо снос процесса

исходя из того, что образовался каталог /db2event/db2detaildeadlock есть подозрение, что виновником случившегося является deadlock. Но как выловить какой запрос в этом виновен, и так ли это в самом деле мне не хватает знаний.
Не подскажите необходимый план действий???
29 мар 11, 12:54    [10438453]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с базой данных  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4947
Добрый день.

Что появляется в /db/db2inst2/sqllib/db2dump/db2diag.log при зависании?
29 мар 11, 13:48    [10438969]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с базой данных  [new]
Andrey Sribnyak
Member

Откуда: Киев
Сообщений: 599
Mark Barinstein,

Много всего
29 мар 11, 15:15    [10439772]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с базой данных  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4947
Andrey Sribnyak,

Внутренняя ошибка в DB2.
Надо либо PMR в IBM открыть, либо через 1С как-то.
29 мар 11, 18:36    [10441558]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с базой данных  [new]
Andrey Sribnyak
Member

Откуда: Киев
Сообщений: 599
Марк, я правильно понимаю, что открытие PMR в IBM - это платная услуга?
29 мар 11, 20:54    [10442031]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с базой данных  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4947
Andrey Sribnyak
Марк, я правильно понимаю, что открытие PMR в IBM - это платная услуга?
У вас должны быть куплены лицензия (в лицензию входит годовая поддержка) и поддержка (если с момента покупки лицензии прошло больше года).
30 мар 11, 08:47    [10443180]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с базой данных  [new]
Andron
Member

Откуда: Cherepovets
Сообщений: 1816
Andrey Sribnyak
...
исходя из того, что образовался каталог /db2event/db2detaildeadlock есть подозрение, что виновником случившегося является deadlock. Но как выловить какой запрос в этом виновен, и так ли это в самом деле мне не хватает знаний.
Не подскажите необходимый план действий???


Я бы попробовал посмотреть факт взаимоблокировки в снапшоте базы, но раз база висит и подключатся не получается, можно попробовать Event Monitor для блокировок.
30 мар 11, 10:23    [10443546]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с базой данных  [new]
Andrey Sribnyak
Member

Откуда: Киев
Сообщений: 599
Покупать поддержку для продукта, который поднимал для тестирования того, подходит он тебе или нет несколько опрометчиво :-)

Хотел промониторить блокировки с помощью db2top
Он так же подвис :-)


но что-то при этом показал в момент зависания.

screenshot

Ладно, буду разбираться сам
30 мар 11, 11:36    [10444148]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с базой данных  [new]
Andron
Member

Откуда: Cherepovets
Сообщений: 1816
Andrey Sribnyak,

Перед запуском приложения которое возможно вызывает взаимоблокировку, создаете в базе Event monitor для блокировок и активируете его:

CREATE EVENT MONITOR LOCKEVMON
FOR LOCKING
WRITE TO UNFORMATTED EVENT TABLE (table DB2INST1.LOCKMON)

set event monitor LOCKEVMON state 1


затем запускаете приложение, данные собираются

Потом данные можно будет посмотреть в таблице DB2INST1.LOCKMON и определить был deadlock или нет.
30 мар 11, 12:37    [10444653]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с базой данных  [new]
Евгений Хабаров
Member

Откуда: Москва
Сообщений: 773
Andrey Sribnyak,

Можно попробовать обновить СУБД до FP3a.
1. Сделать полный бекап базы. Понадобится для отката.
2. Установить актуальный фикспак (FP3a). DB2 Version 9.7 Fix Pack 3a for Linux, UNIX, and Windows
3. Проапдейтить базу (См. Post Install Actions в Readme фикспака)
4. Еще раз выполнить проблемный запрос.
30 мар 11, 14:31    [10445715]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с базой данных  [new]
A.Panskikh
Member

Откуда: Москва
Сообщений: 120
для разборок с отвалами по блокировкам

db2set DB2_CAPTURE_LOCKTIMEOUT=ON

Не забыть поставить Lock timeout.

Andy
30 мар 11, 18:10    [10447853]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить