25.5.29 ndb_size.pl — Оценщик требований к объёму NDBCLUSTER
Это скрипт Perl, который можно использовать для оценки объёма пространства, необходимого базе данных MySQL, если она будет преобразована для использования хранилища NDBCLUSTER. В отличие от других утилит, обсуждаемых в этом разделе, он не требует доступа к NDB Cluster (на самом деле, для этого нет причины). Однако ему необходимо получить доступ к серверу MySQL, на котором находится база данных, подлежащая тестированию.
ndb_size.pl больше не поддерживается; ожидается, что он будет удалён из будущих версий дистрибутива 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.