Spec-Zone.ru › MySQL 8.4

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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-cluster-programs-ndb-size-pl.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API