Spec-Zone.ru › MySQL 8.4

7.6.5 Плагин ddl_rewriter

  • 7.6.5.1 Установка или удаление ddl_rewriter
  • 7.6.5.2 Параметры плагина ddl_rewriter

MySQL 8.4 включает плагин ddl_rewriter, который изменяет CREATE TABLE инструкции, полученные сервером перед их разбором и выполнением. Плагин удаляет ENCRYPTION, DATA DIRECTORY и INDEX DIRECTORY предложения, что может быть полезно при восстановлении таблиц из дампов SQL, созданных из баз данных, которые зашифрованы или таблицы которых хранятся вне каталога данных. Например, плагин может позволить восстановить такие дампы в незашифрованном экземпляре или в среде, где пути вне каталога данных недоступны.

Перед использованием плагина ddl_rewriter, установите его в соответствии с инструкциями, приведенными в разделе 7.6.5.1 «Установка или удаление ddl_rewriter».

Плагин ddl_rewriter проверяет SQL-инструкции, полученные сервером перед разбором, изменяя их в соответствии со следующими условиями:

  • Плагин ddl_rewriter рассматривает только CREATE TABLE инструкции, и только если они являются автономными инструкциями, которые находятся в начале строки ввода или в начале текста подготовленной инструкции. Плагин ddl_rewriter не рассматривает CREATE TABLE инструкции внутри определений хранимых программ. Инструкции могут занимать несколько строк.

  • В инструкциях, рассматриваемых для изменения, экземпляры следующих предложений изменяются и каждый экземпляр заменяется одним пробелом:

    • ENCRYPTION

    • DATA DIRECTORY (на уровнях таблицы и раздела)

    • INDEX DIRECTORY (на уровнях таблицы и раздела)

  • Изменение не зависит от регистра букв.

Если плагин ddl_rewriter изменяет инструкцию, он генерирует предупреждение:

mysql> CREATE TABLE t (i INT) DATA DIRECTORY '/var/mysql/data';
Query OK, 0 rows affected, 1 warning (0.03 sec)

mysql> SHOW WARNINGS\G
*************************** 1. row ***************************
  Level: Note
   Code: 1105
Message: Query 'CREATE TABLE t (i INT) DATA DIRECTORY '/var/mysql/data''
         rewritten to 'CREATE TABLE t (i INT) ' by a query rewrite plugin
1 row in set (0.00 sec)

Если включены общий журнал запросов или бинарный журнал, сервер записывает в него инструкции в виде, полученном после любого изменения плагином ddl_rewriter.

При установке плагин ddl_rewriter экспонирует инструмент Performance Schema memory/rewriter/ddl_rewriter для отслеживания использования памяти плагином. См. раздел 29.12.20.10 «Таблицы сводки памяти»

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/ddl-rewriter.html

Spec-Zone.ru

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