Размер базы данных db2
Как я могу получить размер моей базы данных DB2 UDB версии 9.1? Я попытался запустить getdbconfig из командной строки. Это дает всю конфигурацию, но не размер.
Спасибо:)
3 ответа
На сайте поддержки IBM есть TechNote:
Как рассчитать размер базы данных DB2
Если вы хотите рассчитать размер и максимальную емкость вашей базы данных, вы можете использовать процедуру
GET_DBSIZE_INFO
, Эта процедура впервые появилась в DB2 Universal Database™ (DB2 UDB) Версии 8.2.
Для выполнения этой процедуры вы должны выполнить следующие три шага:
- Подключитесь к базе данных, для которой вы хотите узнать размер и максимальную емкость.
- Выполните процедуру
GET_DBSIZE_INFO
, - Закройте соединение.
Вот синтаксис процедуры:
db2 call GET_DBSIZE_INFO (?,?,?,refresh-window)
Первые три параметра являются выходными параметрами, а окно обновления является входным параметром типа INTEGER, который определяет количество минут до обновления кэшированных значений для размера и емкости базы данных.
Обратитесь к этой ссылке на документацию для примеров вывода этой процедуры в DB2 UDB Версии 9.1.
Здесь есть скрипт, который был протестирован в 9.1 и, по словам автора:
вычислит размер базы данных DB2 LUW на сервере UNIX с помощью команд UNIX, которые дадут вам более точную оценку пространства, используемого базой данных. Этот сценарий также сохраняет эту информацию в оперативной таблице, которую вы можете использовать как часть своей панели мониторинга DBA Monitoring, чтобы помочь вам отслеживать и управлять пространством в связи с тенденциями роста.
Процедура GET_DBSIZE_INFO вычисляет размер базы данных и максимальную емкость. Вычисленные значения возвращаются в качестве выходных параметров процедуры и кэшируются в таблице SYSTOOLS.STMG_DBSIZE_INFO. Процедура кэширует эти значения, потому что вычисления являются дорогостоящими. Таблица SYSTOOLS.STMG_DBSIZE_INFO создается автоматически при первом выполнении процедуры. Если в таблице SYSTOOLS.STMG_DBSIZE_INFO есть значения, которые кэшируются, и они достаточно текущие, как определено значениями snapshot-timestamp и refresh-window, эти кэшированные значения возвращаются. Если кэшированные значения не достаточно текущие, новые кэшированные значения вычисляются, вставляются в таблицу 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.