Spec-Zone.ru › MySQL 5.7

21.5.28 ndb_size.pl — Оценка требований к ресурсам NDBCLUSTER

Это скрипт на Perl, который можно использовать для оценки объёма дискового пространства, необходимого для базы данных MySQL, если её перевести на использование движка хранения NDBCLUSTER. В отличие от других утилит, обсуждаемых в этой части, он не требует доступа к NDB Cluster (на самом деле, для этого нет причины). Однако ему требуется доступ к серверу MySQL, на котором находится база данных, подлежащая тестированию.

Требования

  • Запущенный сервер 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, представлены в следующей таблице. Дополнительные описания следуют за таблицей.

Таблица 21.44 Параметры командной строки, используемые с программой ndb_size.pl

Таблица 21.44 Параметры командной строки, используемые с программой ndb_size.pl
Формат Описание Добавленные, устаревшие или удалённые параметры

--database=string

База данных или базы данных для проверки; список, разделенный запятыми; по умолчанию ALL (используются все базы данных, найденные на сервере)

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--hostname=string

Укажите хост и необязательный порт в формате host[:port]

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--socket=path

Укажите сокет для подключения

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--user=string

Укажите имя пользователя MySQL

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--password=password

Укажите пароль пользователя MySQL

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--format=string

Установите формат вывода (текст или HTML)

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--excludetables=list

Пропустить таблицы в списке, разделённом запятыми

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--excludedbs=list

Пропустить базы данных в списке, разделённом запятыми

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--savequeries=path

Сохраняет все запросы к базе данных в указанный файл

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--loadqueries=path

Загружает все запросы из указанного файла; не подключается к базе данных

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--real_table_name=string

Определяет таблицу для расчёта размера уникальных индексов

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)


Использование

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-5.7-en/mysql-cluster-programs-ndb-size-pl.html

Spec-Zone.ru

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