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.
Об инструментах
Инструменты 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@partitionschema и 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 Настройки диалектов для утилиты экспорта таблиц dialectlinesTerminatedByfieldsTerminatedByfieldsEnclosedByfieldsOptionallyEnclosedfieldsEscapedBydefault[LF]
[TAB]
[empty]
false\
csv[CR][LF]
,
''
true\
csv-unix[LF]
,
''
false\
tsv[CR][LF]
[TAB]
''
true\
ПримечаниеЗначения возврата каретки и перевода строки для диалектов независимы от операционной системы.
Если вы используете параметры
linesTerminatedBy,fieldsTerminatedBy,fieldsEnclosedBy,fieldsOptionallyEnclosedиfieldsEscapedBy, в зависимости от соглашений об экранировании вашего интерпретатора команд, символ обратной косой черты (\) может потребоваться удвоить, если вы используете его в значениях параметров.Как и сервер 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: -
Пара ключ-значение, содержащая допустимый идентификатор таблицы в формате
и допустимое выражение условия SQL для фильтрации экспортируемых данных.schemaName.tableNameПримечание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 Shellutil.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.comnamespaceна имя пространства 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, следующие параметры не поддерживаются и приведут к ошибке при использовании:
osBucketNames3BucketNameazureContainerName
Только ведра и префиксы 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/")
Сообщения об ошибках утилиты дампов
Номера ошибок в диапазоне 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.