Spec-Zone.ru › MySQL Shell 9.2

12.5 Инструмент для выгрузки экземпляра, выгрузки схемы и выгрузки таблицы

Инструмент MySQL Shell для выгрузки экземпляра util.dumpInstance() и выгрузки схемы util.dumpSchemas() поддерживают экспорт всех схем или выбранной схемы из локального экземпляра MySQL в хранилище Oracle Cloud Infrastructure Object Storage или набор локальных файлов. Инструмент выгрузки таблицы util.dumpTables() поддерживает те же операции для выбора таблиц или представлений из схемы. Экспортированные элементы затем могут быть импортированы в систему баз данных HeatWave Service или экземпляр MySQL Server с помощью инструмента util.loadDump() (см. Раздел 12.6, «Инструмент загрузки выгрузки»). Для наилучшей функциональности всегда используйте последнюю доступную версию инструментов выгрузки и загрузки выгрузки MySQL Shell.

  • Об инструментах

  • Требования и ограничения

  • Запуск инструментов

  • Параметры управления выгрузкой

  • Параметры вывода выгрузки

  • Параметры фильтрации

  • Параметры для HeatWave Service и Oracle Cloud Infrastructure

  • Параметры для служб, совместимых с S3

  • Параметры для Microsoft Azure Blob Storage

  • Выгрузка в хранилище Object Storage с PAR

  • Сообщения об ошибках инструмента

Об инструментах

Инструменты MySQL Shell для выгрузки экземпляра, выгрузки схемы и выгрузки таблицы предоставляют потоковую передачу Oracle Cloud Infrastructure Object Storage, проверки совместимости и модификации для HeatWave Service, параллельную выгрузку с несколькими потоками и сжатие файлов, чего не обеспечивает mysqldump. Во время выгрузки отображается информация о ходе выполнения. Вы можете выполнить пробную выгрузку с выбранными параметрами, чтобы просмотреть информацию о том, какие действия будут выполнены, какие элементы будут выгружены, и (для инструмента выгрузки экземпляра и инструмента выгрузки схемы) какие проблемы совместимости с HeatWave Service необходимо устранить, когда вы запускаете инструмент в реальном режиме с этими параметрами.

При выборе места назначения файлов выгрузки обратите внимание, что для импорта в систему баз данных HeatWave Service экземпляр MySQL Shell, в котором вы запускаете инструмент загрузки выгрузки, должен быть установлен на экземпляре Oracle Cloud Infrastructure Compute, имеющем доступ к системе баз данных HeatWave Service. Если вы выгружаете экземпляр, схему или таблицы в хранилище Object Storage, вы можете получить доступ к хранилищу Object Storage из экземпляра Compute. Если вы создаёте файлы выгрузки на вашем локальном компьютере, вам необходимо перенести их на экземпляр Oracle Cloud Infrastructure Compute, используя утилиту копирования, соответствующую вашей операционной системе экземпляра Compute.

Выгрузки, созданные инструментом MySQL Shell для выгрузки экземпляра, выгрузки схемы и выгрузки таблицы, содержат файлы DDL, определяющие структуру схемы, и файлы данных, разделённые табуляцией .tsv, содержащие данные. Вы также можете выбрать, создавать только файлы DDL или только файлы данных, если хотите выполнить экспорт схемы как отдельную задачу от заполнения её экспортированными данными. Вы можете выбрать, блокировать ли экземпляр для резервного копирования во время выгрузки для обеспечения согласованности данных. По умолчанию инструменты выгрузки разбивают данные таблицы на несколько файлов данных и сжимают эти файлы.

Вы можете использовать параметры инструментов, чтобы включать или исключать указанные схемы и таблицы, пользователей и их роли и разрешения, события, процедуры и триггеры. Если вы укажете противоречивые параметры включения и исключения или укажете объект, который не включён в выгрузку, будет выведено сообщение об ошибке, и выгрузка остановится, чтобы вы могли исправить параметры. Если вам нужно выгрузить большинство схем в экземпляре MySQL, как альтернативная стратегия, вы можете использовать инструмент выгрузки экземпляра вместо инструмента выгрузки схемы и указать параметр excludeSchemas, чтобы перечислить схемы, которые не должны быть выгружены. Аналогично, если вам нужно выгрузить большинство таблиц в схеме, вы можете использовать инструмент выгрузки схемы с параметром excludeTables вместо инструмента выгрузки таблицы.

Данные для mysql.apply_status, mysql.general_log, mysql.schema и mysql.slow_log tables всегда исключаются из выгрузки, созданной инструментом выгрузки схемы MySQL Shell, хотя их инструкции DDL включаются. Схемы information_schema, mysql, ndbinfo, performance_schema и sys всегда исключаются из выгрузки экземпляра.

По умолчанию часовой пояс стандартизирован на UTC во всех данных метки времени в выводе выгрузки, что облегчает перемещение данных между серверами с различными часовыми поясами и обработку данных, имеющих несколько часовых поясов. Вы можете использовать параметр tzUtc: false, чтобы сохранить исходные метки времени, если это предпочтительнее.

Инструмент загрузки выгрузки MySQL Shell util.loadDump() поддерживает загрузку экспортированных экземпляров и схем из хранилища Object Storage с помощью предварительно аутентифицированного запроса (PAR). Сведения о загрузке выгрузок с использованием PAR см. в Разделе 12.6, «Инструмент загрузки выгрузки».

Инструменты выгрузки экземпляра, схемы и таблицы MySQL Shell учитывают разбиение (см. , в Руководстве MySQL). Когда выгружаемая таблица разбита, каждый фрагмент обрабатывается как независимая таблица; если таблица имеет подфрагменты, каждый подфрагмент обрабатывается как независимая таблица. Это также означает, что при включенном разбиении каждый фрагмент или подфрагмент разбиеной или подразбитой таблицы разбивается независимо. Базовые имена файлов выгрузки для разбиеной таблицы используют формат schema@table@partition, где schema и table соответственно имена родительской схемы и таблицы, а partition — закодированное по URL имя фрагмента или подфрагмента.

Для управления добавлением функций, которые не поддерживаются предыдущими версиями инструментов MySQL Shell, util.dumpInstance(), util.dumpSchemas(), util.dumpTables() и util.loadDump() записывают список функций, использованных при создании выгрузки, в файл метаданных выгрузки; для каждой такой функции добавляется элемент в список. При чтении файла метаданных инструментом загрузки выгрузки и обнаружении в списке неподдерживаемой функции, выводится сообщение об ошибке; сообщение об ошибке содержит версию MySQL Shell, которая поддерживает эту функцию.

Требования и ограничения

  • Утилиты дампинга экземпляра, схемы и таблицы поддерживают только релизы MySQL Server, доступные в общем доступе (GA).

  • Для целевого экземпляра MySQL, в который будет загружен дамп, требуется MySQL 5.7 или более поздняя версия.

  • Для исходного экземпляра MySQL, дамп из MySQL 5.7 или более поздней версии полностью поддерживается во всех выпусках MySQL Shell, где доступны утилиты.

  • Имена объектов в экземпляре или схеме должны быть в кодировке latin1 или utf8.

  • Гарантия целостности данных обеспечивается только для таблиц, использующих движок хранения .

  • Минимальный набор привилегий, необходимых для учетной записи пользователя, используемой для запуска утилиты, на всех вовлечённых схемах, состоит из следующих: , , , , и .

    • Если опция consistent установлена в значение true (по умолчанию), привилегия на всех таблицах дампа может заменить привилегию , если последняя недоступна.

    • Если у учетной записи пользователя нет привилегии и LOCK INSTANCE FOR BACKUP не может быть выполнено, утилиты выполняют дополнительную проверку целостности во время дампинга. Если эта проверка завершается неудачно, дамп экземпляра останавливается, но дамп схемы или таблицы продолжается и возвращает сообщение об ошибке, уведомляя пользователя о том, что проверка целостности завершилась неудачно.

    • Если опция consistent установлена в значение false, привилегии и не требуются.

    • Если дамп производится из экземпляра MySQL 5.6 и включает учетные записи пользователей (что возможно только с утилитой дампинга экземпляра), также требуется привилегия .

  • Учетной записи пользователя, используемой для запуска утилиты, необходима привилегия , чтобы утилита могла включить имя и позицию файла бинарного журнала в метаданные дампа. Если у пользователя нет этой привилегии, дамп продолжается, но информация о бинарном журнале не включается. Информация о бинарном журнале может быть использована после загрузки данных дампа на сервер репликации для настройки репликации с сервером-источником, не использующим GTID, с помощью опции ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS оператора .

  • Метод загрузки, используемый для передачи файлов в хранилище объектов Oracle Cloud Infrastructure, имеет ограничение на размер файла в 1,2 ТБ.

  • Утилиты преобразуют столбцы с типами данных, которые не являются безопасными для хранения в текстовой форме (например, BLOB) в Base64. Поэтому размер этих столбцов не должен превышать примерно 0,74 значения системной переменной (в байтах), настроенной на целевом экземпляре MySQL.

  • Для утилиты дампинга таблиц экспортированные представления и триггеры не должны использовать квалифицированные имена для ссылки на другие представления или таблицы.

  • Утилита дампинга таблиц не производит дамп процедур, поэтому любые процедуры, на которые ссылаются экспортированные объекты (например, представление, использующее функцию), должны уже существовать при загрузке дампа.

  • Для импорта в базу данных HeatWave Service DB System, установите опцию ocimds в значение true, чтобы обеспечить совместимость с HeatWave Service.

    Важно

    При миграции в HeatWave Service рекомендуется всегда использовать последнюю доступную версию MySQL Shell.

  • Для совместимости с HeatWave Service все таблицы должны использовать движок хранения . Опция ocimds проверяет наличие любых исключений, обнаруженных в дампе, а опция compatibility изменяет файлы дампа для замены других движков хранения на .

  • Для утилиты дампинга экземпляра и утилиты дампинга схемы, для совместимости с HeatWave Service, все таблицы в экземпляре или схеме должны находиться в каталоге данных MySQL и использовать стандартное шифрование схемы. Опция ocimds изменяет файлы дампа для применения этих требований.

  • HeatWave Service использует partial_revokes=ON, что означает, что разрешения на уровне базы данных для схем, содержащих подстановочные знаки, такие как _ или %, считаются ошибками.

    Вы также можете использовать совместимые опции, ignore_wildcard_grants и strip_invalid_grants

    Более подробную информацию см. в разделе Параметры для HeatWave Service и Oracle Cloud Infrastructure.

  • Применяется ряд других ограничений и требований, связанных с безопасностью, для таких элементов, как табличные пространства и привилегии, для обеспечения совместимости с HeatWave Service. Опция ocimds проверяет любые исключения, найденные во время дампинга, а опция compatibility автоматически изменяет файлы дампа для решения некоторых проблем совместимости. Вам может потребоваться (или вы можете предпочесть) внести некоторые изменения вручную. Более подробная информация приведена в описании опции compatibility.

  • Для высокой доступности HeatWave Service, использующей Group Replication, на каждой таблице требуются первичные ключи. Опция ocimds проверяет и сообщает об ошибке для всех таблиц в дампе, у которых отсутствуют первичные ключи. Опция compatibility может быть установлена для игнорирования отсутствующих первичных ключей, если они не нужны, или для уведомления утилиты загрузки дампов MySQL Shell о добавлении первичных ключей в невидимые столбцы, где их нет. Подробности см. в описании опции compatibility. Если возможно, вместо управления этим в утилите, рассмотрите возможность создания первичных ключей в таблицах на исходном сервере перед их повторным дампингом.

  • Если любая из утилит дампинга запущена на MySQL 5.7 с опцией "ocimds": true, то util.checkForServerUpgrade выполняется автоматически, если эти проверки не отключены опцией skipUpgradeChecks. Предварительные проверки запускаются в зависимости от типа объектов, включенных в дамп.

Запуск утилит

Утилиты дампа экземпляра, дампа схемы и дампа таблицы используют глобальную сессию MySQL Shell для получения данных подключения к целевому серверу MySQL, с которого выполняется экспорт. Необходимо открыть глобальную сессию (которая может иметь подключение X Protocol или классическое подключение MySQL) перед запуском одной из утилит. Утилиты открывают свои собственные сессии для каждого потока, копируя такие параметры, как сжатие подключения и параметры SSL из глобальной сессии, и не используют глобальную сессию далее.

В API MySQL Shell утилиты дампа экземпляра, дампа схемы и дампа таблицы являются функциями глобального объекта util и имеют следующие сигнатуры:

util.dumpInstance(outputUrl[, options])
util.dumpSchemas(schemas, outputUrl[, options])
util.dumpTables(schema, tables, outputUrl[, options])

options — это словарь параметров, который можно опустить, если он пустой. Доступные параметры для утилиты дампа экземпляра, дампа схемы и дампа таблицы перечислены в оставшихся разделах этой темы.

Для утилиты дампа схемы schemas указывает список одной или нескольких схем, которые нужно сдублировать из экземпляра MySQL.

Для утилиты дампа таблицы schema указывает схему, содержащую элементы для дублирования, а tables — массив строк, указывающий таблицы или представления для дублирования. Дамп таблицы включает информацию, необходимую для настройки указанной схемы в целевом экземпляре MySQL, хотя его можно загрузить в альтернативную целевую схему, используя параметр schema утилиты загрузки дампов.

Утилиту дампа таблицы можно использовать для выбора отдельных таблиц из схемы, например, для переноса таблиц между схемами. В этом примере в режиме JavaScript MySQL Shell таблицы employees и salaries из схемы hr экспортируются в локальный каталог emp, который утилита создаёт в текущем рабочем каталоге:

shell-js> util.dumpTables("hr", [ "employees", "salaries" ], "emp")

Чтобы сдублировать все представления и таблицы из указанной схемы, используйте параметр all и установите параметр tables в пустой массив, как в этом примере:

shell-js> util.dumpTables("hr", [], "emp", { "all": true })

Если вы дублируете в локальную файловую систему, outputUrl — это строка, указывающая путь к локальному каталогу, в котором будут размещаться файлы дампа. Вы можете указать абсолютный путь или путь, относительный к текущему рабочему каталогу. Вы можете префикснуть путь к локальному каталогу схемой file://. В этом примере подключённый экземпляр MySQL дублируется в локальный каталог с некоторыми изменениями в файлах дампа для совместимости с HeatWave Service. Сначала пользователь выполняет пробный запуск, чтобы проверить схемы и увидеть проблемы совместимости, а затем запускает дамп с соответствующими параметрами совместимости, чтобы устранить эти проблемы:

shell-js> util.dumpInstance("C:/Users/hanna/worlddump", {dryRun: true, ocimds: true})
Checking for compatibility with HeatWave Service 8.0.33
...
Compatibility issues with HeatWave Service 8.0.33 were found. Please use the
'compatibility' option to apply compatibility adaptations to the dumped DDL.
Util.dumpInstance: Compatibility issues were found (RuntimeError)
shell-js> util.dumpInstance("C:/Users/hanna/worlddump", {
        > ocimds: true, compatibility: ["strip_definers", "strip_restricted_grants"]})

Целевой каталог должен быть пустым перед выполнением экспорта. Если каталог ещё не существует в родительском каталоге, утилита его создаёт. Для экспорта в локальный каталог каталоги, созданные во время дампа, создаются с правами доступа rwxr-x---, а файлы — с правами доступа rw-r----- (в операционных системах, где это поддерживается). Владельцем файлов и каталогов является учётная запись пользователя, выполняющая MySQL Shell.

Если вы дублируете в ведро Oracle Cloud Infrastructure Object Storage, outputUrl — это путь, который будет использоваться для префикса файлов дампа в ведре, чтобы смоделировать структуру каталогов. Используйте параметр osBucketName для указания имени ведра Object Storage и параметр osNamespace для определения пространства имён ведра. В этом примере пользователь дублирует схему world из подключенного экземпляра MySQL в ведро Object Storage с теми же изменениями для совместимости, что и в предыдущем примере:

shell-js> util.dumpSchemas(["world"], "worlddump", {
        > "osBucketName": "hanna-bucket", "osNamespace": "idx28w1ckztq",
        > "ocimds": "true", "compatibility": ["strip_definers", "strip_restricted_grants"]})

В ведре Object Storage все файлы дампа отображаются с префиксом worlddump, например:

worlddump/@.done.json
worlddump/@.json
worlddump/@.post.sql
worlddump/@.sql
worlddump/world.json
worlddump/world.sql
worlddump/world@city.json
worlddump/world@city.sql
worlddump/world@city@@0.tsv.zst
worlddump/world@city@@0.tsv.zst.idx
...

Пространство имён ведра Object Storage отображается на вкладке «Информация о ведре» страницы сведений о ведре в консоли Oracle Cloud Infrastructure или может быть получено с помощью командной строки Oracle Cloud Infrastructure. Подключение к ведру Object Storage устанавливается с использованием профиля по умолчанию в файле конфигурации CLI Oracle Cloud Infrastructure по умолчанию или альтернативных данных, которые вы указываете с помощью параметров ociConfigFile и ociProfile. Инструкции по настройке файла конфигурации CLI см. на странице Файл конфигурации SDK и CLI.

Параметры управления дампом

dryRun: [ true | false ]

Отображает информацию о том, что будет дублировано с указанным набором параметров, и о результатах проверок совместимости HeatWave Service (если указан параметр ocimds), но не выполняет сам дамп. Установка этого параметра позволяет перечислить все проблемы совместимости перед запуском дампа. По умолчанию — false.

showProgress: [ true | false ]

Отображает (true) или скрывает (false) информацию о прогрессе дампа. По умолчанию — true, если stdout является терминалом (tty), например, когда MySQL Shell находится в интерактивном режиме, и false в противном случае. Информация о прогрессе включает в себя приблизительное общее количество строк для дублирования, количество уже дублированных строк, процент завершения и производительность в строках и байтах в секунду.

threads: int

Количество параллельных потоков для дублирования фрагментов данных из экземпляра MySQL. Каждый поток имеет собственное подключение к экземпляру MySQL. По умолчанию — 4.

maxRate: "string"

Максимальное количество байтов в секунду на поток для пропускной способности чтения данных во время дампа. Можно использовать суффиксы единиц k для килобайт, M для мегабайт и G для гигабайт (например, установка 100M ограничивает пропускную способность до 100 мегабайт в секунду на поток). Установка 0 (что является значением по умолчанию) или установка параметра в пустую строку означает, что ограничение не установлено.

defaultCharacterSet: "string"

Набор символов, который будет использоваться во время сеансов подключения, открываемых MySQL Shell к серверу для дампа. По умолчанию — utf8mb4. Значения сессии системных переменных , , и устанавливаются для каждого подключения.

consistent: [ true | false ]

Включить (true) или отключить (false) согласованные дампы данных, блокируя экземпляр для резервного копирования во время дампа. По умолчанию — true.

При установке true утилита устанавливает глобальную блокировку чтения с помощью оператора FLUSH TABLES WITH READ LOCK (если идентификатор пользователя, используемый для выполнения утилиты, имеет привилегию ), или серию блокировок таблиц с помощью операторов LOCK TABLES (если идентификатор пользователя не имеет привилегии , но имеет ). Транзакция для каждого потока запускается с помощью операторов SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ и START TRANSACTION WITH CONSISTENT SNAPSHOT. Когда все потоки запустят свои транзакции, экземпляр блокируется для резервного копирования (как описано в ) и глобальная блокировка чтения снимается.

Если у учётной записи пользователя нет привилегии и LOCK INSTANCE FOR BACKUP не может быть выполнена, утилиты выполняют дополнительную проверку согласованности во время дампа. Если эта проверка завершится неудачей, дамп экземпляра останавливается, но дамп схемы или таблицы продолжается и возвращает сообщение об ошибке, чтобы предупредить пользователя о неудачной проверке согласованности.

skipConsistencyChecks: [ true | false ]

Включить (true) или отключить (false) дополнительную проверку согласованности, выполняемую при consistent: true. По умолчанию — false.

Этот параметр игнорируется, если consistent: false.

skipUpgradeChecks: [true | false]

Значение по умолчанию — false. Включить для отключения проверок обновления, которые обычно выполняются по умолчанию, когда ocimds: true. Проверки совместимости, связанные с обновлениями версии MySQL, не будут выполняться. Используйте этот параметр только при отдельном выполнении Проверяющего обновлений.

Параметры вывода дамп-файла

tzUtc: [ true | false ]

Включить в начало дампа инструкцию для установки часового пояса в UTC. Все данные типа timestamp в выводе дампа преобразуются в этот часовой пояс. По умолчанию установлено значение true, поэтому данные типа timestamp преобразуются по умолчанию. Установка часового пояса в UTC облегчает перемещение данных между серверами с различными часовыми поясами или при обработке набора данных с несколькими часовыми поясами. Установите этот параметр в значение false, чтобы сохранить исходные временные метки, если это требуется.

compression: "string;level=n"

Тип сжатия и уровень сжатия, используемые при создании дамп-файлов. Доступны следующие варианты сжатия:

  • none: Сжатие не применяется.

  • gzip: Используется библиотека сжатия gzip. Уровень сжатия может быть установлен от 0 до 9. По умолчанию уровень сжатия равен 1. Например:

                      "compression": "gzip;level=4"
                    
  • zstd: По умолчанию. Используется библиотека сжатия zstd. Уровень сжатия может быть установлен от 1 до 22. По умолчанию уровень сжатия равен 1. Например:

                      "compression": "zstd;level=15"
                    
checksum: [ true | false ]

При включении генерируется файл метаданных, @.checksums.json, вместе с дампом. Этот файл содержит данные контрольной суммы дампа, что позволяет проверить данные при загрузке дампа. Смотрите Параметры управления загрузкой.

Следующие условия применяются, если checksum: true:

  • Если ddlOnly:false и chunking:true, контрольная сумма генерируется для каждой таблицы и фрагмента раздела, которые дублируются.

  • Если ddlOnly:false и chunking:false, контрольная сумма генерируется для каждой таблицы и раздела таблицы.

  • Если ddlOnly:true, контрольная сумма генерируется для каждой таблицы и раздела таблицы.

chunking: [ true | false ]

Включить (true) или выключить (false) фрагментацию данных таблицы, что разбивает данные каждой таблицы на несколько файлов. По умолчанию установлено значение true, поэтому фрагментация включена по умолчанию. Используйте bytesPerChunk для указания размера фрагмента. Если вы установите параметр фрагментации в значение false, фрагментация не выполняется, и утилита создает один файл данных для каждой таблицы.

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

bytesPerChunk: "string"

Устанавливает приблизительное количество байтов, которые будут записаны в каждый файл данных при включенной фрагментации. Можно использовать суффиксы единиц измерения k для килобайт, M для мегабайт и G для гигабайт. Значение по умолчанию составляет 64 МБ. Указание этого параметра подразумевает установку chunking в true. Утилита стремится разбить данные для каждой таблицы на файлы, каждый из которых содержит это количество данных перед применением сжатия. Размер фрагмента является средним и рассчитывается на основе статистики таблицы и оценок плана объяснений.

dialect: [default|csv|csv-unix|tsv]

Укажите набор параметров обработки полей и строк для формата файла экспортируемых данных. Вы можете использовать выбранный диалект в качестве основы для дальнейшей настройки, указав один или несколько параметров linesTerminatedBy, fieldsTerminatedBy, fieldsEnclosedBy, fieldsOptionallyEnclosed и fieldsEscapedBy для изменения настроек.

Диалект по умолчанию создает файл данных, соответствующий тому, что было бы создано с помощью инструкции с параметрами по умолчанию для этой инструкции. .txt - подходящее расширение файла для этих выходных файлов. Доступны другие диалекты для экспорта файлов CSV для систем DOS или UNIX (.csv) и файлов TSV (.tsv).

Настройки, применяемые для каждого диалекта, следующие:

Таблица 12.3 Настройки диалектов для утилиты экспорта таблиц

Таблица 12.3 Настройки диалектов для утилиты экспорта таблиц

dialect

linesTerminatedBy

fieldsTerminatedBy

fieldsEnclosedBy

fieldsOptionallyEnclosed

fieldsEscapedBy

default

[LF]

[TAB]

[empty]

false

\

csv

[CR][LF]

,

''

true

\

csv-unix

[LF]

,

''

false

\

tsv

[CR][LF]

[TAB]

''

true

\


Примечание
  1. Значения возврата каретки и перевода строки для диалектов независимы от операционной системы.

  2. Если вы используете параметры linesTerminatedBy, fieldsTerminatedBy, fieldsEnclosedBy, fieldsOptionallyEnclosed и fieldsEscapedBy, в зависимости от соглашений об экранировании вашего интерпретатора команд, символ обратной косой черты (\) может потребоваться удвоить, если вы используете его в значениях параметров.

  3. Как и сервер MySQL с инструкцией , MySQL Shell не проверяет параметры обработки полей и строк, которые вы указываете. Неправильные значения этих параметров могут привести к частичному или неправильному экспорту данных. Всегда проверяйте свои настройки перед запуском экспорта и проверяйте результаты после этого.

linesTerminatedBy: "characters"

Один или несколько символов (или пустая строка), с помощью которых утилита завершает каждую строку в экспортируемом файле данных. По умолчанию используется значение для указанного диалекта или символ перевода строки (\n), если параметр диалекта опущен. Этот параметр эквивалентен параметру LINES TERMINATED BY для инструкции . Обратите внимание, что утилита не предоставляет эквивалент параметра LINES STARTING BY для инструкции , который установлен в пустую строку.

fieldsTerminatedBy: "characters"

Один или несколько символов (или пустая строка), с помощью которых утилита завершает каждое поле в экспортируемом файле данных. По умолчанию используется значение для указанного диалекта или символ табуляции (\t), если параметр диалекта опущен. Этот параметр эквивалентен параметру FIELDS TERMINATED BY для инструкции .

fieldsEnclosedBy: "character"

Один символ (или пустая строка), которым утилита обрамляет каждое поле в экспортируемом файле данных. По умолчанию используется значение для указанного диалекта или пустая строка, если параметр диалекта опущен. Этот параметр эквивалентен параметру FIELDS ENCLOSED BY для инструкции .

fieldsOptionallyEnclosed: [ true | false ]

Должен ли символ, заданный для fieldsEnclosedBy, обрамлять все поля в экспортируемом файле данных (false) или обрамлять поле только в том случае, если оно имеет строковый тип данных, например CHAR, BINARY, TEXT или ENUM (true). По умолчанию используется значение для указанного диалекта или false, если параметр диалекта опущен. Этот параметр делает параметр fieldsEnclosedBy эквивалентным параметру FIELDS OPTIONALLY ENCLOSED BY для инструкции .

fieldsEscapedBy: "character"

Символ, который используется для начала последовательностей экранирования в экспортируемом файле данных. По умолчанию используется значение для указанного диалекта или обратная косая черта (\), если параметр диалекта опущен. Этот параметр эквивалентен параметру FIELDS ESCAPED BY для инструкции . Если вы установите этот параметр в пустую строку, никакие символы не экранируются, что не рекомендуется, потому что специальные символы, используемые в , должны быть экранированы.

Параметры для фильтрации

where:

Пара ключ-значение, содержащая допустимый идентификатор таблицы в формате schemaName.tableName и допустимое выражение условия SQL для фильтрации экспортируемых данных.

Примечание

SQL-код валидируется только при выполнении. Если вы экспортируете много таблиц, любые проблемы с синтаксисом SQL будут видны только на поздних этапах процесса. Поэтому рекомендуется протестировать условие SQL перед использованием в длительном процессе экспорта.

В следующем примере, where экспортируются только те строки таблицы sakila.actor и sakila.actor_info, где значение actor_id больше 150, в локальную папку под названием out:

 util.dumpTables("sakila", ["actor","actor_info"], "out", {"where" :
   {"sakila.actor": "actor_id > 150", "sakila.actor_info": "actor_id > 150"}})
            
partitions: {schemaName.tableName: ["string","string",..]}

Список допустимых имен разделов, ограничивающий экспорт указанными разделами.

Например, чтобы экспортировать только разделы с именами p1 и p2 из таблицы schema.table: partitions: {schema.table:["p1", "p2"]}.

Следующий пример экспортирует разделы p1 и p2 из таблицы table1 и раздел p2 из таблицы table2:

util.dumpTables("schema", ["table","table2"], "out", {"partitions" :
  { "schema.table1":  ["p1", "p2"],"schema.table2":  ["p2"]}})
            
ddlOnly: [ true | false ]

Установка этого параметра в значение true включает только файлы DDL для экспортируемых элементов в дампе и не экспортирует данные. По умолчанию значение false.

dataOnly: [ true | false ]

Установка этого параметра в значение true включает только файлы данных для экспортируемых элементов в дампе и не включает файлы DDL. По умолчанию значение false.

users: [ true | false ]

(Только для утилиты дампа экземпляра) Включить (true) или исключить (false) пользователей и их роли и разрешения в дампе. По умолчанию значение true, поэтому пользователи включаются по умолчанию. Утилита дампа схемы и утилита дампа таблицы не включают пользователей, роли и разрешения в дампе.

Вы можете использовать параметр excludeUsers или includeUsers, чтобы указать отдельные учетные записи пользователей для исключения или включения в файлы дампа. Эти параметры также можно использовать с утилитой загрузки дампов MySQL Shell util.loadDump() для исключения или включения отдельных учетных записей пользователей на этапе импорта в зависимости от требований целевого экземпляра MySQL.

Примечание

При дампе пользователей из экземпляра MySQL 5.6 пользователь, выполняющий копирование, должен иметь привилегию SUPER.

excludeUsers: array of strings

(Только для утилиты дампа экземпляра) Исключить указанные учетные записи пользователей из файлов дампа. Вы можете использовать их для исключения учетных записей пользователей, которые не принимаются для импорта в HeatWave Service DB System, или которые уже существуют или не нужны в целевом экземпляре MySQL. Укажите каждую строку учетной записи пользователя в формате "'user_name'@'host_name'" для учетной записи, определенной именем пользователя и именем хоста, или "'user_name'" для учетной записи, определенной только именем пользователя. Если вы не укажете имя хоста, все учетные записи с этим именем пользователя будут исключены.

includeUsers: array of strings

(Только для утилиты дампа экземпляра) Включить только указанные учетные записи пользователей в файлы дампа. Укажите каждую строку учетной записи пользователя, как и для параметра excludeUsers. Этот параметр является альтернативой к excludeUsers, если требуется включить только несколько учетных записей пользователей в дампе. Вы также можете указать оба параметра для включения некоторых учетных записей и исключения других.

excludeSchemas: array of strings

(Только для утилиты дампа экземпляра) Исключить указанные схемы из дампа. Обратите внимание, что схемы information_schema, mysql, ndbinfo, performance_schema и sys всегда исключаются из дампа экземпляра.

includeSchemas: array of strings

(Только для утилиты дампа экземпляра) Включить только указанные схемы в дамп. Вы не можете включить схемы information_schema, mysql, ndbinfo, performance_schema или sys, указав их в этом параметре. Если вы хотите создать дамп одной или нескольких из этих схем, вы можете сделать это с помощью утилиты дампа схемы util.dumpSchemas().

excludeTables: array of strings

(Только для утилиты дампа экземпляра и утилиты дампа схемы) Исключить указанные таблицы из дампа. Имена таблиц должны быть квалифицированы допустимым именем схемы и заключены в обратные кавычки, если это необходимо. Таблицы, указанные параметром excludeTables, не имеют файлов DDL или файлов данных в дампе. Обратите внимание, что данные для mysql.apply_status, mysql.schema, mysql.general_log и mysql.slow_log tables всегда исключаются из дампа схемы, хотя их инструкции DDL включаются, и вы не можете включить эти данные, указав имя таблицы в другом параметре или утилите.

Примечание

Имена схем и таблиц, содержащие многобайтовые символы, должны быть заключены в обратные кавычки.

includeTables: array of strings

(Только для утилиты дампа экземпляра и утилиты дампа схемы) Включить только указанные таблицы в дамп. Имена таблиц должны быть квалифицированы допустимым именем схемы и заключены в обратные кавычки, если это необходимо.

Примечание

Имена схем и таблиц, содержащие многобайтовые символы, должны быть заключены в обратные кавычки.

events: [ true | false ]

(Только для утилиты дампа экземпляра и утилиты дампа схемы) Включить (true) или исключить (false) события для каждой схемы в дампе. По умолчанию значение true.

excludeEvents: array of strings

(Только для утилиты дампа экземпляра и утилиты дампа схемы) Исключить указанные события из дампа. Имена событий должны быть квалифицированы допустимым именем схемы и заключены в обратные кавычки, если необходимо.

includeEvents: array of strings

(Только для утилиты дампа экземпляра и утилиты дампа схемы) Включить только указанные события в дамп. Имена событий должны быть квалифицированы допустимым именем схемы и заключены в обратные кавычки, если необходимо.

routines: [ true | false ]

(Только для утилиты дампа экземпляра и утилиты дампа схемы) Включить (true) или исключить (false) функции и хранимые процедуры для каждой схемы в дампе. По умолчанию значение true. Обратите внимание, что пользовательские функции не включаются, даже когда routines установлено в значение true.

excludeRoutines: array of strings

(Только для утилиты дампа экземпляра и утилиты дампа схемы) Исключить указанные функции и хранимые процедуры из дампа. Имена процедур должны быть квалифицированы допустимым именем схемы и заключены в обратные кавычки, если необходимо.

includeRoutines: array of strings

(Только для утилиты дампа экземпляра и утилиты дампа схемы) Включить только указанные функции и хранимые процедуры в дамп. Имена процедур должны быть квалифицированы допустимым именем схемы и заключены в обратные кавычки, если необходимо.

all: [ true | false ]

(Только для утилиты дампа таблицы) Установка этого параметра в значение true включает все представления и таблицы из указанной схемы в дамп. По умолчанию значение false. При использовании этого параметра установите параметр tables в пустой массив, например:

shell-js> util.dumpTables("hr", [], "emp", { "all": true })
triggers: [ true | false ]

(Для всех утилит дампа) Включить (true) или исключить (false) триггеры для каждой таблицы в дампе. По умолчанию значение true.

excludeTriggers: array of strings

(Для всех утилит дампа) Исключить указанные триггеры из дампа. Имена триггеров должны быть квалифицированы допустимым именем схемы и именем таблицы (schema.table.trigger) и заключены в обратные кавычки, если необходимо. Вы можете исключить все триггеры для определенной таблицы, указав имя схемы и имя таблицы в этом параметре (schema.table).

includeTriggers: array of strings

(Для всех утилит дампа) Включить только указанные триггеры в дамп. Имена триггеров должны быть квалифицированы допустимым именем схемы и именем таблицы (schema.table.trigger) и заключены в обратные кавычки, если необходимо. Вы можете включить все триггеры для определенной таблицы, указав имя схемы и имя таблицы в этом параметре (schema.table).

Параметры для службы HeatWave и Oracle Cloud Infrastructure

osBucketName: "string"

Имя ведра хранилища объектов Oracle Cloud Infrastructure, в которое будет записан дамп. По умолчанию используется профиль [DEFAULT] в файле конфигурации Oracle Cloud Infrastructure CLI, расположенном по адресу ~/.oci/config, для подключения к ведру. Вы можете использовать альтернативный профиль для подключения с помощью параметров ociConfigFile и ociProfile. Инструкции по настройке файла конфигурации CLI см. в разделе Файл конфигурации SDK и CLI.

osNamespace: "string"

Пространство имён Oracle Cloud Infrastructure, в котором расположено хранилище объектов, имя которого указано в параметре osBucketName. Пространство имён для ведра хранилища объектов отображается на вкладке «Информация о ведре» на странице сведений о ведре в консоли Oracle Cloud Infrastructure или может быть получено с помощью командной строки Oracle Cloud Infrastructure.

ociConfigFile: "string"

Файл конфигурации Oracle Cloud Infrastructure CLI, содержащий профиль для подключения вместо профиля в стандартном расположении ~/.oci/config.

ociProfile: "string"

Имя профиля профиля Oracle Cloud Infrastructure, используемого для подключения, вместо профиля [DEFAULT] в файле конфигурации Oracle Cloud Infrastructure CLI, используемом для подключения.

ociAuth: "string"

Метод аутентификации, используемый при подключении к Oracle Cloud Infrastructure. Для использования этого параметра требуется настройка osBucketName со значением.

Доступны следующие варианты:

  • api_key: Подключения OCI используют файл конфигурации OCI. См. Раздел 4.7.1, «Хранилище объектов Oracle Cloud Infrastructure».

    Если osBucketName определено с допустимым значением, но ociAuth не определено, api_key используется по умолчанию.

  • instance_principal: Подключения OCI используют аутентификацию по принципалам экземпляра. См. Аутентификация по принципалам экземпляра.

    Этот параметр не может быть использован, если определены ociConfigFile или ociProfile.

  • resource_principal: Подключения OCI используют аутентификацию по принципалам ресурсов. См. Аутентификация по принципалам ресурсов.

    Этот параметр не может быть использован, если определены ociConfigFile или ociProfile.

  • security_token: Подключения OCI используют временный, сгенерированный токен сессии. См. Аутентификация на основе токена сессии.

ocimds: [ true | false ]

Установка этого параметра в значение true включает проверки и изменения для обеспечения совместимости со службой HeatWave. По умолчанию используется значение false.

Важно

При миграции на службу HeatWave рекомендуется всегда использовать последнюю доступную версию MySQL Shell.

При установке этого параметра в значение true, параметры DATA DIRECTORY, INDEX DIRECTORY и ENCRYPTION в операторах комментируются в файлах DDL, чтобы гарантировать, что все таблицы находятся в каталоге данных MySQL и используют шифрование схемы по умолчанию. Проверки проводятся для всех типов движков хранилища в операторах, кроме , для предоставления неуместных привилегий пользователям или ролям и для других проблем совместимости. При обнаружении несовместимого SQL-оператора возникает исключение, и дамп прекращается. Используйте параметр dryRun для отображения всех проблем с элементами в дампе перед началом процесса дампинга. Используйте параметр compatibility для автоматической исправления проблем в выходных данных дампа.

По умолчанию этот параметр установлен в значение false и активируется только при явном указании значения true.

Примечание

Если какие-либо утилиты дампинга запускаются на MySQL 5.7 с включенным параметром "ocimds": true, util.checkForServerUpgrade запускается автоматически. Проверки до обновления выполняются в зависимости от типа объектов, включённых в дамп.

targetVersion: n.n.n

Определение версии целевого экземпляра MySQL в формате n.n.n. Например, 8.1.0. Если значение не задано, используется версия MySQL Shell.

Проверки совместимости корректируются в зависимости от значения targetVersion.

compatibility: array of strings

Примените указанные требования совместимости с сервисом HeatWave для всех таблиц в выводимом дампе, изменяя файлы дампа по мере необходимости.

Следующие изменения могут быть указаны в виде массива строк:

force_innodb

Изменить заявления для использования движка хранения для всех таблиц, которые его еще не используют.

skip_invalid_accounts

Удалить учетные записи пользователей, созданные с помощью внешних плагинов аутентификации, которые не поддерживаются в HeatWave Service. Этот параметр также удаляет учетные записи пользователей, у которых не заданы пароли, за исключением случаев, когда учетная запись без пароля идентифицируется как роль, в этом случае она выгружается с помощью заявления.

strip_definers
Примечание

Этот параметр не требуется, если экземпляр HeatWave Service назначения имеет версию 8.2.0 или выше.

, устаревшая в MySQL 8.2.0 и удалённая в 8.4.0, заменена на и . Это изменение влияет на то, как MySQL Shell обрабатывает дампы для использования в HeatWave Service (ocimds: true), потому что у административного пользователя есть привилегия и он может выполнять операторы с DEFINER клаузой. В предыдущих версиях это было невозможно.

Удалить DEFINER клаузу из представлений, процедур, событий и триггеров, чтобы эти объекты были созданы с помощью значения по умолчанию (пользователем, вызывающим схему), и изменить SQL SECURITY клаузу для представлений и процедур, чтобы указать INVOKER вместо DEFINER. HeatWave Service требует специальных привилегий для создания этих объектов с определенным пользователем, отличным от пользователя, загружающего схему. Если ваша модель безопасности требует, чтобы представления и процедуры имели больше привилегий, чем учетная запись, запрашивающая или вызывающая их, вы должны вручную изменить схему перед ее загрузкой.

strip_restricted_grants

Удалить определённые привилегии, которые ограничены HeatWave Service, из заявлений, чтобы пользователи и их роли не могли получить эти привилегии (что приведёт к ошибке создания пользователя). Этот параметр также удаляет заявления для системных схем (mysql и sys), если учетная запись администратора на экземпляре Oracle Cloud Infrastructure Compute не имеет соответствующих привилегий, чтобы не удалять их.

strip_tablespaces

Удалить TABLESPACE клаузу из заявлений, чтобы все таблицы создавались в их стандартных пространствах имен. HeatWave Service имеет некоторые ограничения на пространства имен.

ignore_missing_pks

Заставить утилиту дампа экземпляра, схемы или таблицы игнорировать любые отсутствующие первичные ключи во время выполнения дампа, чтобы параметр ocimds всё ещё мог использоваться, не останавливая дамп из-за этой проверки. Дампы, созданные с этим изменением, не могут быть загружены в экземпляр HeatWave Service с высокой доступностью, так как первичные ключи необходимы для HeatWave Service высокой доступности, использующего Group Replication. Чтобы добавить отсутствующие первичные ключи, используйте модификацию create_invisible_pks, или рассмотрите создание первичных ключей в таблицах на исходном сервере.

ignore_wildcard_grants

При включении игнорирует ошибки из разрешений на схемы с подстановкой, которые интерпретируются по-другому в системах, где переменная системы partial_revokes включена.

strip_invalid_grants

При включении удаляет операторы разрешений, которые завершатся ошибкой при загрузке пользователей. Например, разрешения, относящиеся к конкретной процедуре, которая не существует.

unescape_wildcard_grants

При включении удаляет управляющие символы в разрешениях на схемы, заменяя экранированные \_ и \% подстановки в именах схем на _ и % символы подстановки. Когда переменная включена, символ \ обрабатывается как буквальный, что может привести к неожиданным результатам. Настоятельно рекомендуется проверить каждое подобное разрешение перед включением этого параметра.

create_invisible_pks

Добавляет флаг в метаданные дампа, чтобы уведомить утилиту загрузки дампа MySQL Shell о добавлении первичных ключей в невидимые столбцы для каждой таблицы, не содержащей первичный ключ. Это изменение позволяет загрузить дамп, в котором некоторые таблицы отсутствуют первичные ключи, в экземпляр HeatWave Service с высокой доступностью. Первичные ключи необходимы для HeatWave Service высокой доступности, использующего Group Replication.

Данные дампа не изменяются этим изменением, так как таблицы не содержат невидимые столбцы, пока они не обработаны утилитой загрузки дампа. Невидимые столбцы (названные "my_row_id") не влияют на приложения, использующие загруженные таблицы.

Добавление первичных ключей таким образом пока не позволяет выполнить репликацию входящих данных изменённых таблиц в экземпляр высокой доступности, так как эта функция в настоящее время требует наличия первичных ключей как на исходном сервере, так и на реплицирующем сервере. Если возможно, вместо использования этого изменения, рассмотрите создание первичных ключей в таблицах на исходном сервере перед их повторной выгрузкой. Это можно сделать без последствий для приложений, используя невидимые столбцы для хранения первичных ключей. Это лучший подход для производительности и удобства использования и помогает базе данных, выгруженной из дампов, работать беспроблемно с HeatWave Service.

Примечание

Утилита загрузки дампа MySQL Shell может быть использована только для загрузки дампов, созданных с опцией create_invisible_pks на целевом экземпляре MySQL версии 8.0.24 или более поздней из-за ограничения на скрытые столбцы в MySQL 8.0.23.

force_non_standard_fks

В MySQL 8.4.0 был добавлен параметр , запрещающий создание нестандартных внешних ключей при его включении. То есть, ключей, ссылающихся на не уникальные ключи или части составных ключей. Системы HeatWave Service DB имеют эту переменную включенную по умолчанию, что приводит к невозможности загрузки дампов с такими таблицами. Этот параметр отключает проверки нестандартных внешних ключей и настраивает загрузчик дампа на установку значения переменной сессии в значение OFF. Создание внешних ключей с нестандартными ключами может привести к ошибке репликации.

force_non_standard_fks

В MySQL 8.4.0, was added, prohibiting creation of non-standard foreign keys when enabled. That is, keys that reference non-unique keys or partial fields of composite keys. HeatWave Service DB Systems have this variable enabled by default, which causes dumps with such tables to fail to load. This option disables checks for non-standard foreign keys, and configures the dump loader to set the session value of variable to OFF. Creation of foreign keys with non-standard keys may cause replication to fail.

Параметры для совместимых с S3 сервисов

MySQL Shell поддерживает выгрузку данных MySQL в совместимые с S3 хранилища, такие как Amazon Web Services (AWS) S3.

Примечание

MySQL Shell поддерживает конфигурацию AWS S3 в параметрах командной строки, переменных окружения и конфигурационных файлах. Параметры командной строки переопределяют переменные окружения, конфигурационные файлы и параметры по умолчанию.

Сведения о требованиях к конфигурации см. в разделе 4.7 «Конфигурация облачного сервиса».

s3BucketName: "string"

Имя хранилища S3, в которое будет записан дамп. По умолчанию используется профиль default файла config и credentials, расположенного в ~/.aws/, для установления соединения с хранилищем S3. Вы можете заменить альтернативную конфигурацию и учетные данные для подключения с помощью параметров s3ConfigFile и s3CredentialsFile. Инструкции по установке и настройке AWS CLI см. в Руководстве по началу работы с AWS CLI.

s3CredentialsFile:"string"

Файл учетных данных, содержащий учетные данные пользователя для подключения вместо файла в стандартном расположении ~/.aws/credentials. Обычно файл учетных данных содержит aws_access_key_id и aws_secret_access_key для подключения.

s3ConfigFile: "string"

Конфигурационный файл, содержащий профиль для подключения вместо файла в стандартном расположении, например, ~/.aws/config. Обычно конфигурационный файл содержит регион и тип вывода для подключения.

s3Profile: "string"

Имя профиля s3 CLI-профиля для подключения, вместо профиля default.

s3Region: "string"

Имя региона для подключения.

s3EndpointOverride: "string"

URL конечной точки для использования вместо стандартного.

При подключении к API совместимости Oracle Cloud Infrastructure S3 конечная точка имеет следующий формат: https://namespace.compat.objectstorage.region.oraclecloud.com. Замените namespace на имя пространства Object Storage и region на идентификатор вашего региона. Например, идентификатор региона для региона США Восточный (Эшберн) — us-ashburn-1.

Для пространства имен axaxnpcrorw5 в регионе США Восточный (Эшберн):

https://axaxnpcrorw5.compat.objectstorage.us-ashburn-1.oraclecloud.com.

Следующий пример показывает выгрузку экземпляра MySQL в папку test в хранилище S3 Bucket001 с некоторыми параметрами совместимости:

        util.dumpInstance("test",{s3bucketName: "Bucket001", threads: 4,
        compatibility: ["strip_restricted_grants", "strip_definers", "ignore_missing_pks"]})
      

Следующий пример демонстрирует выгрузку экземпляра MySQL в префикс test в хранилище Object Storage Bucket001, используя конфигурационный профиль oci, s3EndpointOverride для указания подключения к конечной точке OCI требуемой аренды и региона, а также некоторые параметры совместимости:

        util.dumpInstance("test",{s3BucketName: "Bucket001",
        s3EndpointOverride: "https://axaxnpcrorw5.compat.objectstorage.us-ashburn-1.oraclecloud.com",
        s3Profile: "oci", threads: 4,
        compatibility: ["strip_restricted_grants", "strip_definers", "ignore_missing_pks"]})
      

Параметры для хранилища Microsoft Azure Blob

MySQL Shell поддерживает экспорт данных в хранилище Microsoft Azure Blob Storage.

Примечание

MySQL Shell поддерживает конфигурацию Microsoft Azure Blob Storage в командных строках, переменных окружения и конфигурационных файлах. Параметры командной строки переопределяют переменные окружения и конфигурационные файлы.

Сведения о требованиях к конфигурации и порядке приоритета типов конфигурации см. в разделе 4.7 «Настройка облачных служб».

azureContainerName: "string"

Обязательный. Имя контейнера Azure, в который будет производиться экспорт. Контейнер должен существовать.

azureConfigFile: "string"

Необязательный. Конфигурационный файл, содержащий параметры подключения к хранилищу, вместо файла по умолчанию, например, ~/.azure/config. Если он не задан, используется файл конфигурации по умолчанию.

azureContainerName должен быть задан и не должен быть пустым.

azureStorageAccount: "string"

Необязательный. Имя учетной записи Azure Storage, используемой для операции.

azureStorageSasToken: "string"

Необязательный. Токен Azure Shared Access Signature (SAS), используемый для аутентификации операции вместо ключа.

В следующем примере конфигурация использует строку конфигурации для параметров подключения, что означает, что команда экспорта требует только azureContainerName.

Пример файла config:

        [cloud]
         name = AzureCloud

        [storage]
         connection_string=alphanumericConnectionString
      

Пример команды dumpInstance, которая экспортирует содержимое экземпляра в папку под названием prefix1 в контейнер с именем mysqlshellazure:

        util.dumpInstance("prefix1", {azureContainerName: "mysqlshellazure", threads: 4})
      

Экспорт в хранилище объектов с PAR

outputURL также может быть ведром или префиксом предварительно авторизованного запроса (PAR). Это позволяет напрямую экспортировать данные в ведро хранилища объектов OCI.

Для PAR должны быть включены следующие разрешения:

  • Разрешить чтение и запись объектов

  • Включить перечисление объектов

Если PAR определен как outputURL, следующие параметры не поддерживаются и приведут к ошибке при использовании:

  • osBucketName

  • s3BucketName

  • azureContainerName

Примечание

Только ведра и префиксы PAR поддерживаются в качестве outputURL. Использование объекта PAR невозможно.

Если PAR не поддерживается или не имеет необходимых разрешений, возвращается ошибка OCI.

Если целевое ведро не пустое, операция завершается ошибкой. Если существуют объекты с заданным префиксом, операция завершается ошибкой.

Примечание

При определении префиксного PAR сгенерированный URL PAR не содержит определенный префикс. Вам необходимо добавить его в URL вручную.

Примеры с ведром PAR

Следующий пример экспортирует экземпляр в заданный ведро PAR:

      util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/")
    

Следующий пример экспортирует схему sakila в заданный ведро PAR:

      util.dumpSchemas(["sakila"], "https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/")
    

Следующий пример экспортирует таблицу sakila.actor в заданный ведро PAR:

      util.dumpTables("sakila", ["actor"], "https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/")
    

Примеры с префиксом PAR

При определении префиксного PAR сгенерированный URL PAR не содержит определенный префикс. Вам необходимо добавить его в URL вручную.

Следующий пример экспортирует экземпляр в префикс MyPrefix в заданном ведре PAR:

      util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/")
    

Следующий пример экспортирует схему sakila в префикс MyPrefix в заданном ведре PAR:

      util.dumpSchemas(["sakila"], "https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/")
    

Следующий пример экспортирует таблицу sakila.actor в префикс MyPrefix в заданном ведре PAR:

      util.dumpTables("sakila", ["actor"], "https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/")
    
END_OF_DOCUMENT_MARKER

Сообщения об ошибках утилиты дампов

Номера ошибок в диапазоне 52000-52999 относятся к утилите дампов экземпляров MySQL Shell util.dumpInstance(), утилите дампов схем util.dumpSchemas() и утилите дампов таблиц util.dumpTables(). Могут быть возвращены следующие ошибки:

  • Номер ошибки: 52000; Символ: SHERR_DUMP_LOCK_TABLES_MISSING_PRIVILEGES

    Сообщение: У пользователя %s отсутствуют следующие привилегии для %s: %s.

  • Номер ошибки: 52001; Символ: SHERR_DUMP_GLOBAL_READ_LOCK_FAILED

    Сообщение: Не удалось получить глобальную блокировку чтения

  • Номер ошибки: 52002; Символ: SHERR_DUMP_LOCK_TABLES_FAILED

    Сообщение: Не удалось заблокировать таблицы: %s.

  • Номер ошибки: 52003; Символ: SHERR_DUMP_CONSISTENCY_CHECK_FAILED

    Сообщение: Проверка согласованности завершилась неудачей.

  • Номер ошибки: 52004; Символ: SHERR_DUMP_COMPATIBILITY_ISSUES_FOUND

    Сообщение: Обнаружены проблемы совместимости

  • Номер ошибки: 52005; Символ: SHERR_DUMP_COMPATIBILITY_OPTIONS_FAILED

    Сообщение: Не удалось применить некоторые опции совместимости

  • Номер ошибки: 52006; Символ: SHERR_DUMP_WORKER_THREAD_FATAL_ERROR

    Сообщение: Критическая ошибка во время дампинга

  • Номер ошибки: 52007; Символ: SHERR_DUMP_MISSING_GLOBAL_PRIVILEGES

    Сообщение: У пользователя %s отсутствуют следующие глобальные привилегии: %s.

  • Номер ошибки: 52008; Символ: SHERR_DUMP_MISSING_SCHEMA_PRIVILEGES

    Сообщение: У пользователя %s отсутствуют следующие привилегии для схемы %s: %s.

  • Номер ошибки: 52009; Символ: SHERR_DUMP_MISSING_TABLE_PRIVILEGES

    Сообщение: У пользователя %s отсутствуют следующие привилегии для таблицы %s: %s.

  • Номер ошибки: 52010; Символ: SHERR_DUMP_NO_SCHEMAS_SELECTED

    Сообщение: Фильтры для схем приводят к пустому набору.

  • Номер ошибки: 52011; Символ: SHERR_DUMP_MANIFEST_PAR_CREATION_FAILED

    Сообщение: Не удалось создать PAR для объекта '%s': %s

  • Номер ошибки: 52012; Символ: SHERR_DUMP_DW_WRITE_FAILED

    Сообщение: Не удалось записать %s в файл %s

  • Номер ошибки: 52013; Символ: SHERR_DUMP_IC_FAILED_TO_FETCH_VERSION

    Сообщение: Не удалось получить версию сервера.

  • Номер ошибки: 52014; Символ: SHERR_DUMP_SD_CHARSET_NOT_FOUND

    Сообщение: Не удалось найти кодировку символов: %s

  • Номер ошибки: 52015; Символ: SHERR_DUMP_SD_WRITE_FAILED

    Сообщение: Возникла ошибка errno %d при записи

  • Номер ошибки: 52016; Символ: SHERR_DUMP_SD_QUERY_FAILED

    Сообщение: Не удалось выполнить '%s': %s

  • Номер ошибки: 52017; Символ: SHERR_DUMP_SD_COLLATION_DATABASE_ERROR

    Сообщение: Ошибка при обработке select @@collation_database; результаты

  • Номер ошибки: 52018; Символ: SHERR_DUMP_SD_CHARACTER_SET_RESULTS_ERROR

    Сообщение: Не удалось установить character_set_results на: %s

  • Номер ошибки: 52019; Символ: SHERR_DUMP_SD_CANNOT_CREATE_DELIMITER

    Сообщение: Невозможно создать разделитель для события: %s

  • Номер ошибки: 52020; Символ: SHERR_DUMP_SD_INSUFFICIENT_PRIVILEGE

    Сообщение: %s не имеет достаточных привилегий для %s!

  • Номер ошибки: 52021; Символ: SHERR_DUMP_SD_MISSING_TABLE

    Сообщение: %s отсутствует в information_schema

  • Номер ошибки: 52022; Символ: SHERR_DUMP_SD_SHOW_CREATE_TABLE_FAILED

    Сообщение: Не удалось выполнить: show create table %s с ошибкой: %s

  • Номер ошибки: 52023; Символ: SHERR_DUMP_SD_SHOW_CREATE_TABLE_EMPTY

    Сообщение: Пустое создание таблицы для таблицы: %s

  • Номер ошибки: 52024; Символ: SHERR_DUMP_SD_SHOW_FIELDS_FAILED

    Сообщение: SHOW FIELDS FROM завершилось неудачей для представления: %s

  • Номер ошибки: 52025; Символ: SHERR_DUMP_SD_SHOW_KEYS_FAILED

    Сообщение: Не удалось получить ключи для таблицы %s: %s

  • Номер ошибки: 52026; Символ: SHERR_DUMP_SD_SHOW_CREATE_VIEW_FAILED

    Сообщение: Не удалось выполнить: SHOW CREATE TABLE %s

  • Номер ошибки: 52027; Символ: SHERR_DUMP_SD_SHOW_CREATE_VIEW_EMPTY

    Сообщение: Нет информации о представлении: %s

  • Номер ошибки: 52028; Символ: SHERR_DUMP_SD_SCHEMA_DDL_ERROR

    Сообщение: Ошибка при дампинге DDL для схемы '%s': %s

  • Номер ошибки: 52029; Символ: SHERR_DUMP_SD_TABLE_DDL_ERROR

    Сообщение: Ошибка при дампинге DDL для таблицы '%s'.'%s': %s

  • Номер ошибки: 52030; Символ: SHERR_DUMP_SD_VIEW_TEMPORARY_DDL_ERROR

    Сообщение: Ошибка при дампинге временного DDL для представления '%s'.'%s': %s

  • Номер ошибки: 52031; Символ: SHERR_DUMP_SD_VIEW_DDL_ERROR

    Сообщение: Ошибка при дампинге DDL для представления '%s'.'%s': %s

  • Номер ошибки: 52032; Символ: SHERR_DUMP_SD_TRIGGER_COUNT_ERROR

    Сообщение: Не удалось проверить количество триггеров для таблицы: '%s'.'%s'

  • Номер ошибки: 52033; Символ: SHERR_DUMP_SD_TRIGGER_DDL_ERROR

    Сообщение: Ошибка при дампинге триггеров для таблицы '%s'.'%s': %s

  • Номер ошибки: 52034; Символ: SHERR_DUMP_SD_EVENT_DDL_ERROR

    Сообщение: Ошибка при дампинге событий для схемы '%s': %s

  • Номер ошибки: 52035; Символ: SHERR_DUMP_SD_ROUTINE_DDL_ERROR

    Сообщение: Ошибка при дампинге процедур для схемы '%s': %s

  • Номер ошибки: 52036; Символ: SHERR_DUMP_ACCOUNT_WITH_APOSTROPHE

    Сообщение: Аккаунт %s содержит символ «'», который не поддерживается

  • Номер ошибки: 52037; Символ: SHERR_DUMP_USERS_MARIA_DB_NOT_SUPPORTED

    Сообщение: В MariaDB в настоящее время не поддерживается дампинг учетных записей пользователей. Установите опцию 'users' в false, чтобы продолжить.

  • Номер ошибки: 52038; Символ: SHERR_DUMP_INVALID_GRANT_STATEMENT

    Сообщение: Дамп содержит некорректное утверждение grant. Используйте опцию совместимости 'strip_invalid_grants' для исправления.

  • Номер ошибки: 52039; Символ: SHERR_DUMP_IC_INVALID_VIEWS

    Сообщение: Дамп содержит одну или несколько некорректных представлений. Исправьте их вручную или используйте опцию 'excludeTables', чтобы исключить их.

Номера ошибок в диапазоне 54000-54999 предназначены для ошибок соединения и сети, возникших в утилите загрузки дампов MySQL Shell util.loadDump() или в утилите дампов экземпляров MySQL Shell util.dumpInstance(), утилите дампов схем util.dumpSchemas() и утилите дампов таблиц util.dumpTables(). В большинстве случаев номер ошибки соответствует HTTP-ошибке – например, ошибка 54404 возникает, когда целевой URL не найден (HTTP 404 Not Found). Могут быть возвращены следующие ошибки:

  • Номер ошибки: 54000; Символ: SHERR_DL_COMMON_CONNECTION_ERROR

    Сообщение: %sОшибка соединения: %s.

  • Номер ошибки: 54100 до 54511; Символ: SHERR_NETWORK_[HTTP error name]

    Сообщение: Сообщение, зависящее от контекста

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-shell-9.2-en/mysql-shell-utilities-dump-instance-schema.html

Spec-Zone.ru

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