Назад | Перейти на главную страницу

Размер базы данных db2

Как я могу узнать размер моей базы данных UDB DB2 версии 9.1? Я попытался запустить getdbconfig из командной строки. Он дает всю конфигурацию, но не размер.

Спасибо :)

На сайте поддержки IBM есть TechNote:

Как рассчитать размер базы данных DB2

Если вы хотите рассчитать размер и максимальную емкость вашей базы данных, вы можете использовать процедуру GET_DBSIZE_INFO. Эта процедура впервые появилась в DB2 Universal Database ™ (DB2 UDB) версии 8.2.

Чтобы выполнить эту процедуру, вы должны выполнить следующие три шага:

  1. Подключитесь к базе данных, размер и максимальную емкость которой вы хотите узнать.
  2. Выполнить процедуру GET_DBSIZE_INFO.
  3. Закройте соединение.

Вот синтаксис процедуры:

 db2 call GET_DBSIZE_INFO (?,?,?,refresh-window)

Первые три параметра являются выходными параметрами, а окно обновления - входным параметром типа INTEGER, который указывает количество минут до обновления кэшированных значений размера и емкости базы данных.

Ссылаться на эта ссылка на документацию примеры вывода этой процедуры в DB2 UDB Версии 9.1.

Есть сценарий здесь который был протестирован в 9.1 и, по словам автора:

вычислит размер базы данных DB2 LUW на сервере UNIX с помощью команд UNIX, которые дадут вам более точную оценку пространства, используемого базой данных. Этот сценарий также сохраняет эту информацию в оперативной таблице, которую вы можете использовать как часть панели мониторинга DBA, чтобы помочь вам отслеживать и управлять пространством в соответствии с тенденциями роста.

В GET_DBSIZE_INFO процедура вычисляет размер базы данных и максимальную емкость. Вычисленные значения возвращаются как выходные параметры процедуры и кэшируются в SYSTOOLS.STMG_DBSIZE_INFO стол. Процедура кэширует эти значения, потому что вычисления являются дорогостоящими. Таблица SYSTOOLS.STMG_DBSIZE_INFO создается автоматически при первом выполнении процедуры. Если есть значения, кэшированные в таблице SYSTOOLS.STMG_DBSIZE_INFO, и они достаточно актуальны, как определено значениями метки времени моментального снимка и значений окна обновления, эти кэшированные значения возвращаются. Если кэшированные значения недостаточно актуальны, новые кэшированные значения вычисляются, вставляются в таблицу SYSTOOLS.STMG_DBSIZE_INFO и возвращаются, а значение временной метки моментального снимка обновляется.

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

CALL GET_DBSIZE_INFO(?, ?, ?, 0)

Value of output parameters
--------------------------
Parameter Name  : SNAPSHOTTIMESTAMP
Parameter Value : 2004-02-29-18.33.34.561000

Parameter Name  : DATABASESIZE
Parameter Value : 22302720

Parameter Name  : DATABASECAPACITY
Parameter Value : 4684859392

Return Status = 0 

Вы можете напрямую запросить systools.stmg_dbsize_info, чтобы получить результаты.

db2 "выберите db_size, db_capacity из systools.stmg_dbsize_info"

db2 "выберите db_size / 1073741824 как SIZE_GB, db_capacity / 1073741824 как CAPACITY_GB из systools.stmg_dbsize_info"

db2 "select db_size, db_capacity from systools.stmg_dbsize_info"

DB_SIZE              DB_CAPACITY
-------------------- --------------------
       1089248165888        1342416097280

  1 record(s) selected.

db2 "select db_size/1073741824 as SIZE_GB, db_capacity/1073741824 as CAPACITY_GB from systools.stmg_dbsize_info"

SIZE_GB              CAPACITY_GB
-------------------- --------------------
                1014                 1250

  1 record(s) selected.