25.5.29 ndb_size.pl — Оценщик потребностей в ресурсах NDBCLUSTER
Это скрипт на Perl, который можно использовать для оценки необходимого объёма дискового пространства для базы данных MySQL, если она будет преобразована для использования хранилища NDBCLUSTER. В отличие от других утилит, обсуждаемых в этой секции, ему не требуется доступ к кластеру NDB (на самом деле, для этого нет необходимости). Однако ему нужен доступ к серверу MySQL, на котором находится тестируемая база данных.
ndb_size.pl устарел и больше не поддерживается в NDB 8.4.3 и более поздних версиях. Ожидается, что он будет удалён из будущих версий дистрибутива NDB Cluster, и соответствующим образом следует изменить все зависимые приложения.
Требования
Запущенный сервер MySQL. Серверу не нужно поддерживать NDB Cluster.
Рабочая установка Perl.
Модуль
DBI, который можно получить из CPAN, если он не входит в состав вашей установки Perl. (Многие дистрибутивы Linux и других операционных систем предоставляют свои пакеты для этой библиотеки.)Аккаунт пользователя MySQL с необходимыми привилегиями. Если вы не хотите использовать существующий аккаунт, то создание нового с помощью
GRANT USAGE ON—гдеdb_name.*db_name— имя проверяемой базы данных—будет достаточным для этой цели.
ndb_size.pl также можно найти в исходных текстах MySQL в storage/ndb/tools.
Опции, которые можно использовать с ndb_size.pl, показаны в следующей таблице. Дополнительные описания приведены после таблицы.
Использование
perl ndb_size.pl [--database={db_name|ALL}] [--hostname=host[:port]] [--socket=socket] \
[--user=user] [--password=password] \
[--help|-h] [--format={html|text}] \
[--loadqueries=file_name] [--savequeries=file_name]
По умолчанию эта утилита пытается проанализировать все базы данных на сервере. Вы можете указать отдельную базу данных, используя опцию --database; стандартное поведение можно сделать явным, используя ALL для имени базы данных. Вы также можете исключить одну или несколько баз данных, используя опцию --excludedbs с перечисленными через запятую именами баз данных, которые необходимо пропустить. Аналогично, вы можете пропустить определённые таблицы, перечислив их имена через запятую после опции --excludetables. Имя хоста может быть указано с помощью --hostname; значение по умолчанию — localhost. Вы можете указать порт дополнительно к хосту, используя формат host:port для значения --hostname. Номер порта по умолчанию — 3306. При необходимости вы также можете указать сокет; значение по умолчанию — /var/lib/mysql.sock. Имя пользователя MySQL и пароль могут быть указаны соответствующими опциями. Также можно контролировать формат вывода, используя опцию --format; она может принимать значения html или text, по умолчанию — text. Пример текстового вывода показан здесь:
$> ndb_size.pl --database=test --socket=/tmp/mysql.sock
ndb_size.pl report for database: 'test' (1 tables)
--------------------------------------------------
Connected to: DBI:mysql:host=localhost;mysql_socket=/tmp/mysql.sock
Including information for versions: 4.1, 5.0, 5.1
test.t1
-------
DataMemory for Columns (* means varsized DataMemory):
Column Name Type Varsized Key 4.1 5.0 5.1
HIDDEN_NDB_PKEY bigint PRI 8 8 8
c2 varchar(50) Y 52 52 4*
c1 int(11) 4 4 4
-- -- --
Fixed Size Columns DM/Row 64 64 12
Varsize Columns DM/Row 0 0 4
DataMemory for Indexes:
Index Name Type 4.1 5.0 5.1
PRIMARY BTREE 16 16 16
-- -- --
Total Index DM/Row 16 16 16
IndexMemory for Indexes:
Index Name 4.1 5.0 5.1
PRIMARY 33 16 16
-- -- --
Indexes IM/Row 33 16 16
Summary (for THIS table):
4.1 5.0 5.1
Fixed Overhead DM/Row 12 12 16
NULL Bytes/Row 4 4 4
DataMemory/Row 96 96 48
(Includes overhead, bitmap and indexes)
Varsize Overhead DM/Row 0 0 8
Varsize NULL Bytes/Row 0 0 4
Avg Varside DM/Row 0 0 16
No. Rows 0 0 0
Rows/32kb DM Page 340 340 680
Fixedsize DataMemory (KB) 0 0 0
Rows/32kb Varsize DM Page 0 0 2040
Varsize DataMemory (KB) 0 0 0
Rows/8kb IM Page 248 512 512
IndexMemory (KB) 0 0 0
Parameter Minimum Requirements
------------------------------
* indicates greater than default
Parameter Default 4.1 5.0 5.1
DataMemory (KB) 81920 0 0 0
NoOfOrderedIndexes 128 1 1 1
NoOfTables 128 1 1 1
IndexMemory (KB) 18432 0 0 0
NoOfUniqueHashIndexes 64 0 0 0
NoOfAttributes 1000 3 3 3
NoOfTriggers 768 5 5 5
Для отладки, массив Perl, содержащий запросы, выполняемые этим скриптом, можно прочитать из файла, указанного с помощью --savequeries; файл с такими массивами для чтения во время выполнения скрипта можно указать с помощью --loadqueries. Ни одна из этих опций не имеет значения по умолчанию.
Для получения вывода в формате HTML используйте опцию --format и перенаправьте вывод в файл, как показано здесь:
$> ndb_size.pl --database=test --socket=/tmp/mysql.sock --format=html > ndb_size.html
(Без перенаправления вывод отправляется в stdout.)
Вывод этого скрипта включает следующую информацию:
Минимальные значения для параметров конфигурации
DataMemory,IndexMemory,MaxNoOfTables,MaxNoOfAttributes,MaxNoOfOrderedIndexesиMaxNoOfTriggers, необходимых для размещения проанализированных таблиц.Требования к памяти для всех таблиц, атрибутов, упорядоченных индексов и уникальных индексов хэшей, определённых в базе данных.
IndexMemoryиDataMemory, необходимые на таблицах и на каждой строке таблицы.
© 2025 Oracle
Licensed under the GPLv2 License.