Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
Коллеги, я сам в основном MS SQL занимаюсь, но иногда приходится и в DB2 ковыряться. Подскажите, что не так с этим примитивным запросом? В скуле я просто пишу: Код: sql 1. 2. и оно РАБОТАЕТ. С учетом "чудес" синтаксиса DB2, пытаюсь запустить то же самое в ней: Код: sql 1. 2. 3. 4. 5. не работает. Говорит: Код: plaintext Что ей надо-то? Гугл и оф.сайт что-то не помогли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 10:56 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
А заодно, как объявить переменную, присвоить ей значение и вывести ее? Код: sql 1. 2. 3. Такая конструкция также не работает. Вроде абсолютно базовые комманды, но почему-то нужно с бубном танцевать чтобы они заработали... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 11:27 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
Мде... вижу, что вопросы слишком тупые, чтобы на них отвечать. :) Ну да ладно, все равно спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 12:03 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms, Для понимания Вам необходимо подняться на уровень выше. Есть интерактивный DB2 CLP, в котором Вы можете выполнять запросы. В том числе и селекты. А есть процедурный SQL PL, который _совсем_ не Basic. И даже более того, бывает двух разных видов - Compiled и Inlined: http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0004240.html http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0004239.html И вот там отдельно "висящий" select совсем неуместен. Это не язык интерактивной работы с базой. Кроме того, если Вы внимательно почитаете документацию, Вы не увидите возможности использовать селект в том контексте, который приводите: http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0005655.html Надо - пользуйтесь отладчиком, модулем DBMS_OUTPUT ( http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.apdv.sqlpl.doc/doc/r0053551.html) + SET SERVER OUTPUT ( http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0053562.html) или обвязкой из внешнего языка (shell, PowerShell, ...). В последнем случае Вам будет полезна опция -x. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 15:34 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
Спасибо CawaSPb. Но, как мне кажется, вы слишком глубоко копнули. Меня по сути интересовал синтаксис для организации цикла в DB2. Никаких процедур, функций или, боже упаси, того, на что вы мне дали ссылки, писать я и не собирался. Моя задача была до неприличия примитивной: в том же Toad'е написать простой скрипт, который в цикле делает insert - select из одной таблички в другую. Все! В MS SQL это можно сделать, например, как я и написал в первом сообщении (ну, понятно, что там еще можно добавить счетчик в цикл, чтобы он не был бесконечным и т.д. и т.п.) А вот из-за незнания особенностей синтаксиса и отсутствия опыта работы с DB2, там мне не удалось так просто решить эту задачу. Собственно вот... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 10:31 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms, В db2 есть "простые" запросы, состоящие из одной команды, и "сложные", состоящие из нескольких команд, заключенных в BEGIN ... END (compiled compound) и BEGIN ATOMIC ... END (inlined compound). Если вы выполняете "простые" запросы в IBM Data Studio или командном процессоре DB2, то результаты SELECT печатаются автоматически. Если "сложные", то не печатаются. Для передачи выводных данных из "сложных" запросов можно использовать 2 подхода: 1. Временные таблицы Пример кода Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 2. Работа с процедурами модуля DBMS_OUTPUT (для тех клиентских программ, в которых сделана обработка буфера обмена) Программа должна делать следующее: - включать использование буфера сначала в сессии: call dbms_output.enable(null) - после вызова "сложной" команды или процедуры, где вызываются dbms_output.put* процедуры, выполнять автоматически dbms_output.get* процедуры для отображения того, что пользовательская команда могла поместить в буфер. Командный процессор DB2 умеет работать в режиме 2. Там, правда, обычно включают использование буфера командой SET SERVEROUTPUT ON. Умеет ли работать в режиме 2 TOAD, я не знаю. IBM Data Studio не умеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 11:53 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bmsСпасибо CawaSPb. Но, как мне кажется, вы слишком глубоко копнули. Меня по сути интересовал синтаксис для организации цикла в DB2. Никаких процедур, функций или, боже упаси, того, на что вы мне дали ссылки, писать я и не собирался. Моя задача была до неприличия примитивной: в том же Toad'е написать простой скрипт, который в цикле делает insert - select из одной таблички в другую. Все! В MS SQL это можно сделать, например, как я и написал в первом сообщении (ну, понятно, что там еще можно добавить счетчик в цикл, чтобы он не был бесконечным и т.д. и т.п.) А вот из-за незнания особенностей синтаксиса и отсутствия опыта работы с DB2, там мне не удалось так просто решить эту задачу. Собственно вот... Можно подумать, что люди рождаются со знанием диалекта MS SQL. Я вот так и не знаю, какую задачу вот этим "while 1=1 select top 1 from new table" вы решаете. Слова знакомые, а смысл не то, что ускользает - его просто не видно. Ни 20 лет работы с DB2, ни 15 с Oracle к этому не подготовили. Но всё равно, делать insert/select циклом должно быть и в MS SQL весьма глупым занятием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 18:08 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms, А опишите задачу тогда. Что Вам нужно? Продублировать приходящие записи? (триггер или какое-либо репликационное решение) Перелить большую таблицу частями? А то я тоже, честно говоря, теряюсь, что хочется получить. Повторюсь, основная идея изложенного - select может встречаться не во всех контекстах. И это скорее вопрос к IDE. BTW Разные выполнения "SELECT * FROM NEW_TABLE FETCH FIRST 1 ROW ONLY" на одних и тех же данных могут давать разные результаты. Семантически - это вообще "дай мне не знаю какую строчку из таблицы". В реляционную модель вписывается очень слабо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 19:00 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
Коллеги, я прошу прощения за то, что сразу не объяснил, что мне нужно. Нужно было просто создать абсолютно любую таблицу и забить ее кучей абсолютно любых данных максимально простым способом. Я реально думал, что кто-то просто скинет скриптец а-ля вот этот или напишет что-то типа "поставь begin-end и точки с запятой после строк и все заработает, как есть": Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Тот select, что я привел был просто тупым примером, типа "вот такая конструкция в SQL работает, а в ДБ2 не очень. Ребята, как ее заставить работать?". Поэтому глубокого смысла в нем и не было. Просто потом бы я, конечно же, допилил скрипт до нормального (не бредового) состояния. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2016, 10:41 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms, может такое что-то: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ну там дальше доточить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2016, 20:20 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
Что-то вообще какая-то ерунда. База SAMPLE, стандартная. Настройки транзакционального лога: Код: plaintext 1. 2. Итого 386 Гигабайт. Делаю db2stop force, затем db2start. Кроме меня никто к БД не коннектится. Запускаю: Код: sql 1. через 10 секунд получаю: ERROR [57011] [IBM][DB2/AIX64] SQL0964C The transaction log for the database is full. Какого рожна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2016, 15:08 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
Посмотрел в исходной таблице, если поделить колическтво страниц данных на количество строк, получается 0.68 странички на строку, страница 8к, значит строка менее 6к. 500 000 строк по 6к, это менее 3Гб. Как 3 гигами данных можно за 10 секуннд забить журнал размером 386 Гб??? Бд НЕ в режиме архивирования логов. По идее после коммита или роллбэка лог должен очищаться. Ну а после рестарта и подавно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2016, 15:14 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2016, 15:22 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
Вот что в диагностическом логе: ADM1823E The active log is full and is held by application handle "0-52". Terminate this application by COMMIT, ROLLBACK or FORCE APPLICATION. ZRC=0x85100009=-2062548983=SQLP_NOSPACE "Log File has reached its saturation point" DIA8309C Log file was full. Делаю и коммит и force application all и стоп-старт. Заново запускаю скрипт - менее 10 секунд - ошибка что лог переполнен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2016, 15:41 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms, на fs места достаточно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2016, 15:51 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
m&nemperor_bms, на fs места достаточно? Filesystem GB blocks Free %Used Iused %Iused Mounted on /dev/lvTST0 799.50 568.51 29% 217 1% /db2path/rb052367/NODE0000 /dev/lvTST1 799.50 797.75 1% 87 1% /db2path/rb052367/NODE0001 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2016, 15:58 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms, покажите кусок db2diag.log за тот период, в который возникает ошибка и заодно db2 get db cfg for ххх | grep -i log ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2016, 16:03 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
db2diag 2016-02-02-16.03.38.579944+180 E1112728A571 LEVEL: Warning PID : 34341008 TID : 10594 PROC : db2sysc 1 INSTANCE: rb052367 NODE : 001 DB : SAMPLE APPHDL : 0-90 APPID: *N0.rb052367.160202124940 AUTHID : RB052367 HOSTNAME: rsb-dbcdpf1 EDUID : 10594 EDUNAME: db2agntp (SAMPLE) 1 FUNCTION: DB2 UDB, data management, sqldEscalateLocks, probe:3 MESSAGE : ADM5502W The escalation of "12684" locks on table "RB052367.BIG_TABLE3" to lock intent "X" was successful. 2016-02-02-16.03.44.890594+180 E1113300A625 LEVEL: Error PID : 34341008 TID : 10594 PROC : db2sysc 1 INSTANCE: rb052367 NODE : 001 DB : SAMPLE APPHDL : 0-90 APPID: *N0.rb052367.160202124940 AUTHID : RB052367 HOSTNAME: rsb-dbcdpf1 EDUID : 10594 EDUNAME: db2agntp (SAMPLE) 1 FUNCTION: DB2 UDB, data protection services, sqlpgResSpace, probe:2860 MESSAGE : ADM1823E The active log is full and is held by application handle "0-90". Terminate this application by COMMIT, ROLLBACK or FORCE APPLICATION. 2016-02-02-16.03.44.891477+180 E1113926A590 LEVEL: Error PID : 34341008 TID : 10594 PROC : db2sysc 1 INSTANCE: rb052367 NODE : 001 DB : SAMPLE APPHDL : 0-90 APPID: *N0.rb052367.160202124940 AUTHID : RB052367 HOSTNAME: rsb-dbcdpf1 EDUID : 10594 EDUNAME: db2agntp (SAMPLE) 1 FUNCTION: DB2 UDB, data protection services, sqlpgResSpace, probe:6666 MESSAGE : ZRC=0x85100009=-2062548983=SQLP_NOSPACE "Log File has reached its saturation point" DIA8309C Log file was full. 2016-02-02-16.03.44.892003+180 I1114517A588 LEVEL: Error PID : 34341008 TID : 10594 PROC : db2sysc 1 INSTANCE: rb052367 NODE : 001 DB : SAMPLE APPHDL : 0-90 APPID: *N0.rb052367.160202124940 AUTHID : RB052367 HOSTNAME: rsb-dbcdpf1 EDUID : 10594 EDUNAME: db2agntp (SAMPLE) 1 FUNCTION: DB2 UDB, data protection services, sqlpWriteLR, probe:6680 MESSAGE : ZRC=0x85100009=-2062548983=SQLP_NOSPACE "Log File has reached its saturation point" DIA8309C Log file was full. 2016-02-02-16.04.28.604380+180 E1115106A861 LEVEL: Warning PID : 34341008 TID : 11107 PROC : db2sysc 1 INSTANCE: rb052367 NODE : 001 DB : SAMPLE APPHDL : 0-90 APPID: *N0.rb052367.160202124940 AUTHID : RB052367 HOSTNAME: rsb-dbcdpf1 EDUID : 11107 EDUNAME: db2agntp (SAMPLE) 1 FUNCTION: DB2 UDB, data management, sqldEscalateLocks, probe:2 MESSAGE : ADM5500W The database manager is performing lock escalation. The affected application is named "db2bp", and is associated with the workload name "SYSDEFAULTUSERWORKLOAD" and application ID "*N0.rb052367.160202124940" at member "1". The total number of locks currently held is "12688", and the target number of locks to hold is "6344". Reason code: "1" 2016-02-02-16.04.28.605134+180 E1115968A571 LEVEL: Warning PID : 34341008 TID : 11107 PROC : db2sysc 1 INSTANCE: rb052367 NODE : 001 DB : SAMPLE APPHDL : 0-90 APPID: *N0.rb052367.160202124940 AUTHID : RB052367 HOSTNAME: rsb-dbcdpf1 EDUID : 11107 EDUNAME: db2agntp (SAMPLE) 1 FUNCTION: DB2 UDB, data management, sqldEscalateLocks, probe:3 MESSAGE : ADM5502W The escalation of "12684" locks on table "RB052367.BIG_TABLE3" to lock intent "X" was successful. 2016-02-02-16.04.33.438981+180 E1116540A625 LEVEL: Error PID : 34341008 TID : 11107 PROC : db2sysc 1 INSTANCE: rb052367 NODE : 001 DB : SAMPLE APPHDL : 0-90 APPID: *N0.rb052367.160202124940 AUTHID : RB052367 HOSTNAME: rsb-dbcdpf1 EDUID : 11107 EDUNAME: db2agntp (SAMPLE) 1 FUNCTION: DB2 UDB, data protection services, sqlpgResSpace, probe:2860 MESSAGE : ADM1823E The active log is full and is held by application handle "0-90". Terminate this application by COMMIT, ROLLBACK or FORCE APPLICATION. 2016-02-02-16.04.33.439788+180 E1117166A590 LEVEL: Error PID : 34341008 TID : 11107 PROC : db2sysc 1 INSTANCE: rb052367 NODE : 001 DB : SAMPLE APPHDL : 0-90 APPID: *N0.rb052367.160202124940 AUTHID : RB052367 HOSTNAME: rsb-dbcdpf1 EDUID : 11107 EDUNAME: db2agntp (SAMPLE) 1 FUNCTION: DB2 UDB, data protection services, sqlpgResSpace, probe:6666 MESSAGE : ZRC=0x85100009=-2062548983=SQLP_NOSPACE "Log File has reached its saturation point" DIA8309C Log file was full. 2016-02-02-16.04.33.440241+180 I1117757A588 LEVEL: Error PID : 34341008 TID : 11107 PROC : db2sysc 1 INSTANCE: rb052367 NODE : 001 DB : SAMPLE APPHDL : 0-90 APPID: *N0.rb052367.160202124940 AUTHID : RB052367 HOSTNAME: rsb-dbcdpf1 EDUID : 11107 EDUNAME: db2agntp (SAMPLE) 1 FUNCTION: DB2 UDB, data protection services, sqlpWriteLR, probe:6680 MESSAGE : ZRC=0x85100009=-2062548983=SQLP_NOSPACE "Log File has reached its saturation point" DIA8309C Log file was full. db2 get db cfg for SAMPLE | grep -i log Log retain for recovery status = NO User exit for logging status = NO Catalog cache size (4KB) (CATALOGCACHE_SZ) = (MAXAPPLS*5) Log buffer size (4KB) (LOGBUFSZ) = 10000 Log file size (4KB) (LOGFILSIZ) = 393216 Number of primary log files (LOGPRIMARY) = 130 Number of secondary log files (LOGSECOND) = 110 Changed path to log files (NEWLOGPATH) = Path to log files = /db2path/rb052367/NODE0000/SQL00001/LOGSTREAM0000/ Overflow log path (OVERFLOWLOGPATH) = Mirror log path (MIRRORLOGPATH) = First active log file = Block log on disk full (BLK_LOG_DSK_FUL) = NO Block non logged operations (BLOCKNONLOGGED) = NO Percent max primary log space by transaction (MAX_LOG) = 0 Num. of active log files for 1 active UOW(NUM_LOG_SPAN) = 0 Percent log file reclaimed before soft chckpt (SOFTMAX) = 100 HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC HADR spool log data limit (4KB) (HADR_SPOOL_LIMIT) = 0 HADR log replay delay (seconds) (HADR_REPLAY_DELAY) = 0 First log archive method (LOGARCHMETH1) = OFF Archive compression for logarchmeth1 (LOGARCHCOMPR1) = OFF Options for logarchmeth1 (LOGARCHOPT1) = Second log archive method (LOGARCHMETH2) = OFF Archive compression for logarchmeth2 (LOGARCHCOMPR2) = OFF Options for logarchmeth2 (LOGARCHOPT2) = Failover log archive path (FAILARCHPATH) = Number of log archive retries on error (NUMARCHRETRY) = 5 Log archive retry Delay (secs) (ARCHRETRYDELAY) = 20 Log pages during index build (LOGINDEXBUILD) = OFF Log DDL Statements (LOG_DDL_STMTS) = NO Log Application Information (LOG_APPL_INFO) = NO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2016, 16:30 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms, Что выдает на rsb-dbcdpf1: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2016, 17:34 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2016, 17:45 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms, Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2016, 18:23 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Хм.. а почему для 1 и 2 партиции значения параметров для транзакционных логов остались по умолчанию? В этом проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 10:19 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms, Посмотрите: http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.admin.partition.doc/doc/c0005829.html?lang=en ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 10:58 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
knudsenemperor_bms, Посмотрите: http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.admin.partition.doc/doc/c0005829.html?lang=en Спасибо! А как все-таки подключатся к каждой партиции(ноде) в отдельности чтобы поправить DB CFG по одному? Не нашел в документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 11:23 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms, Можно использовать конструкцию <<+N< , вот напрмер: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 13:02 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
А то есть вариантов типа: Код: sql 1. 2. 3. 4. Таких нет чтоли??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 13:17 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms, Да можно проще: Код: sql 1. http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0001987.html?lang=en ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 13:39 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
Хм... замечательно. А вот для Код: sql 1. такого ключа нет. Придется лезть в SYSIBMADM.DBCFG Как-то вот все все-таки немного не по людски... не user friendly, так сказать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 14:37 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
ну или db2_all пользовать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 14:38 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
А вот выкопал совет, как подключится к ноде. Надо мол каталогизировать базы таким образом: Код: sql 1. 2. Но вот незадача, а если партиции/ноды висят на одном хосте. Как вообще получить список нод с их именами? Код: sql 1. выдает лишь партицию 0 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: sql 1. выводит Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 15:00 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms (LOGFILSIZ) = 393216 В моей умной книжке стоит, что максимальный размер LOGFILSIZ состовляет 262 Гигабайта Может конечно я и ошибаюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2016, 14:09 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
-_Михаил_-, 1. UNIX 1000 [4 - 1 048 572] до - 4Gb Windows 1000 [4 - 1 048 572] 2. The upper limit of log file size, combined with the upper limit of the number of log files (logprimary + logsecond), gives an upper limit of 1024 GB of active log space. http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.config.doc/doc/r0000239.html?cp=SSEPGG_9.7.0/2-2-6-7-63&lang=en 3. The number of primary and secondary log files must comply with the following: If logsecond has a value of -1, logprimary <= 256. If logsecond does not have a value of -1, (logprimary + logsecond) <= 256. http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.config.doc/doc/r0000240.html?cp=SSEPGG_9.7.0/2-2-6-7-67&lang=en ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2016, 14:32 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Хм.. а почему для 1 и 2 партиции значения параметров для транзакционных логов остались по умолчанию? В этом проблема? По-умолчанию при update db cfg параметры меняются на всех разделах одновременно. Но есть возможность менять только на нужном разделе, что, скорее всего, и сделали ранее. Переполнение журнала у вас, судя по db2diag.log, было на разделе 1. Поэтому да, проблема была в этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 13:53 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
knudsenemperor_bms, Можно использовать конструкцию <<+N< , вот напрмер: Код: sql 1. Такой командой мы изменим параметры на ВСЕХ разделах, а не на 1-ом, несмотря на то, что подключаемся мы в этом случае к разделу 1. Если вдруг надо менять на одном разделе, то не важно, к какому разделу мы подключаемся, надо использовать кляузу DBPARTITIONNUM в команде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 13:57 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bmsА вот выкопал совет, как подключится к ноде. Надо мол каталогизировать базы таким образом: Код: sql 1. 2. Но вот незадача, а если партиции/ноды висят на одном хосте. Как вообще получить список нод с их именами? Это неправильный совет. Вы можете подключтиться к любому разделу, если надо, но делать надо так. Для подключений из командного процессора DB2 - С помощью set client $ db2 set client connect_dbpartitionnum 3 $ db2 connect to my_db - С помощью установки системной переменной DB2NODE $ export DB2NODE=2 $ db2 terminate $ db2 connect to my_db Проверить, к какому вы подключены можно так: $ db2 values current node Для приложений ODBC/CLI/JDBC Используется свойство соединения connectNode (см. доку, как устанавливать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 14:55 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bms, Про имена нод. Их нет, db2 свои ноды никакими особенными именами не называет :) Есть запрос на информацию, сколько их, на каких серверах они работают, какие логические порты имеют. Код: sql 1. 2. То же самое примерно можно получить так с сервера: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 15:04 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bmsХм... замечательно. А вот для Код: sql 1. такого ключа нет. Придется лезть в SYSIBMADM.DBCFG Как-то вот все все-таки немного не по людски... не user friendly, так сказать... В отличие от update db cfg, get db cfg выдает парметры для раздела, с которым вы соединены в данный момент. Поэтому, если надо получить из командной строки значение парметра на определенном разделе, то для получения значения с диска (может отличаться от текущего): Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 15:55 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinПо-умолчанию при update db cfg параметры меняются на всех разделах одновременно. Но есть возможность менять только на нужном разделе, что, скорее всего, и сделали ранее. Переполнение журнала у вас, судя по db2diag.log, было на разделе 1. Поэтому да, проблема была в этом. Хм... интересная информация. Спасибо большое, Марк, за все ответы, а то я уже думал, что никто не подскажет. Поделюсь и я своими изысканиями: Я менял параметры БД из Toad. При этом он отображает параметры БД по-нодово , и там есть 2 вида отображения этих параметров: Tabbed view и side-by-side view. По умолчанию стоит Tabbed, то есть параметры каждой ноды на своей вкладке. Так вот когда меняешь параметры БД на ноде 0, при таком отображении, они меняются во всех вкладках, то есть как бы для всех нод. HO! На самом деле это не так! Стоит только переключиться в режим side-by-side, в котором параметры всех нод отображаются одной табличкой, мы увидим, что изменения вступили в силу лишь на 0 ноде. Toad даже подсвечивает название параметра, который имеет различные значения на разных нодах. Преключаемся обратно в Tabbed и опять видим, что на всех нодах значения одинаковые. Вот такой вот баг в Toad for DB2 6.1.0.134. Я его отправил разработчикам, кстати. Марк, а как по сообщениям в db2diag.log понять, что речь идет о 1ой ноде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 16:33 |
|
||
|
Не пойму, как работает WHILE
|
|||
|---|---|---|---|
|
#18+
emperor_bmsМарк, а как по сообщениям в db2diag.log понять, что речь идет о 1ой ноде? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 17:00 |
|
||
|
|

start [/forum/topic.php?all=1&fid=43&tid=1600660]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 271ms |
| total: | 438ms |

| 0 / 0 |
