powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / База растет
17 сообщений из 17, страница 1 из 1
База растет
    #39092821
Фотография -_Михаил_-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу заранее извинения за простой вопрос. Опыта, к сожалению в администрации баз данных пока не набрал. Следующая ситуация: Растет потребление места здесь:

db2inst1@host:~/db2inst1/NODE0000/KTC3/T0000000> pwd
/home/db2inst1/db2inst1/NODE0000/KTC3/T0000000
db2inst1@host:~/db2inst1/NODE0000/KTC3/T0000000> ll
insgesamt 131204
-rw------- 1 db2inst1 db2iadm1 134217728 2. Nov 12:03 C0000000.CAT
db2inst1@host:~/db2inst1/NODE0000/KTC3/T0000000>

Как я понимаю растет сама база.
Вопрос: Можно ли тут что то сделать или единственное решение увеличить место.

Логи пишутся на другой диск
First log archive method (LOGARCHMETH1) = DISK:/space/db2_backup/db/KTC3/logarchmeth1/
Path to log files = /space/db2_backup/db/KTC3/aktivelogs/NODE0000/
...
Рейтинг: 0 / 0
База растет
    #39092875
Фотография -_Михаил_-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Основное место занимает этот файл:

db2inst1@host:~/db2inst1/NODE0000/KTC3/T0000002> du -skh ./*
3,5G ./C0000000.LRG
db2inst1@host:~/db2inst1/NODE0000/KTC3/T0000002> ll
insgesamt 3608004
-rw------- 1 db2inst1 db2iadm1 3690987520 2. Nov 13:16 C0000000.LRG
...
Рейтинг: 0 / 0
База растет
    #39093146
m&n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m&n
Гость
-_Михаил_-,

нужна лицензия на AWSE или AESE для компрессии данных.
(хотя для 3.5 Гб - дешевле будет дисков купить на n-лет вперед)
...
Рейтинг: 0 / 0
База растет
    #39146514
Фотография -_Михаил_-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой вопрос в тему:

Разработчик предоставил команду MCLEAN, которая обнуляет базу. После того все таблицы пустые. Размер же файлов на диске а имменно файла ./C0000000.LRG остается такой же.

Вопрос: как можно ужать физический размер бортовыми средствами DB2

db2inst1@host:~/db2inst1/NODE0000/KTC3/T0000002> pwd
/home/db2inst1/db2inst1/NODE0000/KTC3/T0000002
db2inst1@host:~/db2inst1/NODE0000/KTC3/T0000002> du -skh ./*
5,4G ./C0000000.LRG
db2inst1@host:~/db2inst1/NODE0000/KTC3/T0000002>
...
Рейтинг: 0 / 0
База растет
    #39146676
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-_Михаил_-,

Можно в 2 этапа делать.

1. Сначала уменьшаем HWM для неавтоматических DMS пространств.
Выполняете SQL команду, сгенерированную в поле CMD, если в первом поле - NORMAL.

Код: sql
1.
2.
3.
4.
5.
6.
SELECT P.TBSP_STATE, 'ALTER TABLESPACE '||p.TBSP_NAME||' LOWER HIGH WATER MARK' CMD
FROM SYSIBMADM.SNAPTBSP_PART P
JOIN SYSIBMADM.SNAPTBSP T ON P.TBSP_NAME=T.TBSP_NAME AND P.DBPARTITIONNUM=T.DBPARTITIONNUM
WHERE T.TBSP_TYPE='DMS' 
AND t.TBSP_USING_AUTO_STORAGE=0
;



Каждая такая команда - асинхронная, поэтому на больших пространствах может занять некоторое время, на протяжение которого в TBSP_STATE вы будете видеть что-то отличное от NORMAL.

2. Физически уменшаем размер файлов.
То же самое с NORMAL. Если там другое значение - ждем, пока процесс, запущенный предыдущей командой на конкретное пространство не завершится.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT P.TBSP_STATE, 'ALTER TABLESPACE '||p.TBSP_NAME||' REDUCE '
||
CASE t.TBSP_USING_AUTO_STORAGE
  WHEN 1 THEN 'MAX'
  ELSE '(ALL '||RTRIM(CHAR((p.tbsp_usable_pages-p.tbsp_page_top)/nullif(p.tbsp_num_containers, 0)))||')'
     ||' ON DBPARTITIONNUM ('||RTRIM(CHAR(P.DBPARTITIONNUM))||')'
END CMD
FROM SYSIBMADM.SNAPTBSP_PART P
JOIN SYSIBMADM.SNAPTBSP T ON P.TBSP_NAME=T.TBSP_NAME AND P.DBPARTITIONNUM=T.DBPARTITIONNUM
WHERE T.TBSP_TYPE='DMS' 
;



Обработка каждого пространства от состояния других не зависит.
...
Рейтинг: 0 / 0
База растет
    #39148519
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поговорить с разработчиками приложения чтобы понять что там такого делается - и решать вопрос совместно. А то может они решили в базе заодно фильмы хранить - а вас в известность не поставили.
...
Рейтинг: 0 / 0
База растет
    #39155512
Фотография -_Михаил_-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein,

Спасибо большое за ответ. Попробовал первый листинг - ругается


db2 => SELECT P.TBSP_STATE, 'ALTER TABLESPACE '||p.TBSP_NAME||' LOWER HIGH WATER MARK' CMD
FROM SYSIBMADM.SNAPTBSP_PART P
JOIN SYSIBMADM.SNAPTBSP T ON P.TBSP_NAME=T.TBSP_NAME AND P.DBPARTITIONNUM=T.DBPARTITIONNUM
WHERE T.TBSP_TYPE='DMS'
AND t.TBSP_USING_AUTO_STORAGE=0

;SQL0104N An unexpected token "END-OF-STATEMENT" was found following "HIGH
WATER MARK' CMD". Expected tokens may include: "<table_expr>".
SQLSTATE=42601
db2 => DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0104N An unexpected token "END-OF-STATEMENT" was found following
"MADM.SNAPTBSP_PART P". Expected tokens may include: "JOIN <joined_table>".
SQLSTATE=42601
db2 => DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0104N An unexpected token "JOIN" was found following "BEGIN-OF-STATEMENT".
Expected tokens may include: "<space>". SQLSTATE=42601
db2 => DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0104N An unexpected token "WHERE" was found following
"BEGIN-OF-STATEMENT". Expected tokens may include: "<variable_set>".
SQLSTATE=42601
db2 => DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0104N An unexpected token "AND" was found following "BEGIN-OF-STATEMENT".
Expected tokens may include: "<variable_set>". SQLSTATE=42601

что я не правильно делаю?

Заранее спасибо
...
Рейтинг: 0 / 0
База растет
    #39155545
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-_Михаил_-,

Если вы вошли в интерактивный режим, то в конце каждой строки, кроме последней, многострочной команды надо момещать символ \ и не использовать символ ; в конце.

Удобнее такие команды помещать в текстовый файл, и выполнять их не из интерактивного режима, а подавая имя файла на вход.

Код: plaintext
1.
2.
db2 => quit
$ db2 connect to mydb ...
$ db2 -tf f.sql -r f.log
...
Рейтинг: 0 / 0
База растет
    #39155573
Фотография -_Михаил_-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein,

спасибо Вам большое. Вроде все прошло без ошибок

db2inst1@host:/space/script> db2 -tf f1.sql -r f1.log

TBSP_STATE CMD
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------

0 record(s) selected.


db2inst1@host:/space/script> db2 -tf f2.sql -r f2.log

TBSP_STATE CMD
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
NORMAL ALTER TABLESPACE SYSCATSPACE REDUCE MAX
NORMAL ALTER TABLESPACE USERSPACE1 REDUCE MAX
NORMAL ALTER TABLESPACE KTC_SPACE REDUCE MAX
NORMAL ALTER TABLESPACE SYSTOOLSPACE REDUCE MAX

4 record(s) selected.


К сожалению, что касается физического размера базы, то он не изменился :-(
...
Рейтинг: 0 / 0
База растет
    #39155584
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-_Михаил_-,

Вам надо выполнить следующие команды:

Код: plaintext
1.
2.
3.
db2 "ALTER TABLESPACE SYSCATSPACE REDUCE MAX"
db2 "ALTER TABLESPACE USERSPACE1 REDUCE MAX"
db2 "ALTER TABLESPACE KTC_SPACE REDUCE MAX"
db2 "ALTER TABLESPACE SYSTOOLSPACE REDUCE MAX"

Вы это сделали?
...
Рейтинг: 0 / 0
База растет
    #39155598
Фотография -_Михаил_-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein,

да, спасибо сейчас сделал, но размер не изменился

db2inst1@host:/space/script> df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/dasda1 16G 4,1G 11G 27% /
udev 2,0G 168K 2,0G 1% /dev
tmpfs 2,0G 652K 2,0G 1% /dev/shm
/dev/mapper/vg0-db2data 9,9G 4,4G 5,0G 47% /home/db2inst1/db2inst1
/dev/mapper/vg0-db2 4,0G 1022M 2,8G 27% /opt/ibm/db2
/dev/mapper/vg0-space 111G 54G 51G 52% /space
/dev/mapper/vg0-maintenance 2,0G 444M 1,5G 24% /usr/local/maintenance
/dev/mapper/vg0-tomcat 2,0G 666M 1,3G 35% /usr/local/tomcat

db2inst1@host:/space/script> db2 "ALTER TABLESPACE SYSCATSPACE REDUCE MAX"
DB20000I The SQL command completed successfully.
db2inst1@host:/space/script> db2 "ALTER TABLESPACE USERSPACE1 REDUCE MAX"
DB20000I The SQL command completed successfully.
db2inst1@host:/space/script> db2 "ALTER TABLESPACE KTC_SPACE REDUCE MAX"
DB20000I The SQL command completed successfully.
db2inst1@host:/space/script> db2 "ALTER TABLESPACE SYSTOOLSPACE REDUCE MAX"
DB20000I The SQL command completed successfully.


db2inst1@host:/space/script> df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/dasda1 16G 4,1G 11G 27% /
udev 2,0G 168K 2,0G 1% /dev
tmpfs 2,0G 652K 2,0G 1% /dev/shm
/dev/mapper/vg0-db2data 9,9G 3,1G 6,3G 33% /home/db2inst1/db2inst1
/dev/mapper/vg0-db2 4,0G 1022M 2,8G 27% /opt/ibm/db2
/dev/mapper/vg0-space 111G 54G 51G 52% /space
/dev/mapper/vg0-maintenance 2,0G 444M 1,5G 24% /usr/local/maintenance
/dev/mapper/vg0-tomcat 2,0G 666M 1,3G 35% /usr/local/tomcat
...
Рейтинг: 0 / 0
База растет
    #39155604
Фотография -_Михаил_-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извините Марк, я плохо посмотрел. Спасибо вам большое !
...
Рейтинг: 0 / 0
База растет
    #39155672
Фотография -_Михаил_-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-_Михаил_-,

все получилось. Огромное спасибо Mark!
...
Рейтинг: 0 / 0
База растет
    #39161940
Фотография -_Михаил_-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте Марк,

хочу Вас спросить. После сжатия базы, как Вы написали я получил через пару денй следующую ошибку:

> Caused by: com.ibm.db2.jcc.am.SqlException: The transaction log for the
> database is full.. SQLCODE=-964, SQLSTATE=57011, DRIVER=3.58.82



Что тут можно сделать?

Спасибо зарание

Михаил
...
Рейтинг: 0 / 0
База растет
    #39161970
Фотография -_Михаил_-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел на IBM следующее:

db2 connect to mydb
db2 update db cfg using LOGFILSIZ 5000
db2 connect reset

Increase the number of primary logs, for example:

db2 connect to mydb
db2 update db cfg using LOGPRIMARY 50
db2 connect reset

Increase the number of secondary logs, for example:

db2 connect to mydb
db2 update db cfg using LOGSECOND 50
db2 connect reset

db2stop
db2start


Этого достаточно?
...
Рейтинг: 0 / 0
База растет
    #39162291
knudsen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-_Михаил_-,

Всё зависит от транзакций... может и помочь, посмотрите сообщения в топике http://www.sql.ru/forum/1197033/ne-poymu-kak-rabotaet-while - ближе к концу.
...
Рейтинг: 0 / 0
База растет
    #39163900
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-_Михаил_-Нашел на IBM следующее:

db2 connect to mydb
db2 update db cfg using LOGFILSIZ 5000
db2 update db cfg using LOGPRIMARY 50
db2 update db cfg using LOGSECOND 50


Этого достаточно?Проблема с переполнением журнала транзакций может возникнуть не только из-за того, что есть много меняющие данные транзакции одновременно, но и в таком, например, случае: даже совсем мало меняющая данные транзакция "забыла" завершиться (ничего долго не делает, и не выдает commit или rollback). Журнал, в котором ее изменения были сделаны, и все последующие в этом случае будут считаться активными, и в конце концов вы получите log full ошибку, когда кол-во активных журналов достигнет LOGPRIMARY + LOGSECOND, какими бы большими эти значения не были (мы не рассматриваем здесь LOGSECOND = -1, там могут быть свои эффекты, несмотря на "бесконечность" журнала транзакций).
Защититься от таких транзакций можно с помощью параметра num_log_span - ограничения протяженности для транзакций в журналах. См. документацию для справки.

P.S.: из этих 3-х параметров LOGSECOND - онлайновый, т.е. его можно менять без реактивации базы.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / База растет
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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