Exportando uma Instância do MySQL
Exporte uma instância MySQL para um bucket do Object Storage usando utilitários de dump do Shell MySQL. Em seguida, você pode usar o recurso de importação de dados para importar dados do bucket do Object Storage para um sistema de banco de dados presente na mesma região.
Use um dos seguintes utilitários de despejo:
util.dumpInstance(outputUrl[, options])
: Utilitário de exportação de instância MySQL que exporta todos os esquemas compatíveis para um bucket do serviço Object Storage ou para arquivos locais. Por padrão, esse utilitário exporta usuários, eventos, rotinas e triggers. Consulte Utilitários de Dump.util.dumpSchemas(schemas, outputUrl[, options])
: Utilitário de exportação de esquema MySQL que exporta esquemas selecionados para um bucket do serviço Object Storage ou para arquivos locais.util.dumpTables(schema, tables, outputUrl[, options])
: Utilitário de exportação de tabelas MySQL que exporta tabelas selecionadas de um esquema para um bucket do Object Storage ou para arquivos locais.
Durante a exportação de dados, execute verificações de compatibilidade nos esquemas. Se houver algum problema, o utilitário de dump abortará a exportação e produzirá uma lista detalhada de problemas e sugerirá etapas para corrigi-los. Além disso, se houver uma interrupção de conexão durante a exportação de dados, você terá que executar novamente o utilitário de dump. Não é possível pausar e retomar a exportação de dados.
Usando o MySQL Shell
Use o utilitário dumpInstance
do MySQL Shell para exportar uma instância MySQL para um bucket do serviço Object Storage.
- MySQL Shell 8.0.27 ou mais recente. As exportações criadas pelo MySQL Shell 8.0.27 ou superior não podem ser importadas por versões anteriores do MySQL Shell. Recomenda-se a versão mais recente do MySQL Shell.
- Acesso ao serviço Object Storage e a um bucket existente.
- Um arquivo de configuração válido. Se tiver instalado e configurado a CLI no local padrão, você terá um arquivo de configuração válido. Se você não tiver instalado e configurado a CLI, deverá instalá-la ou criar um arquivo de configuração manualmente. Consulte Arquivo de Configuração da CLI e do SDK.
Verificações de Compatibilidade
O HeatWave Service tem várias restrições relacionadas à segurança que não estão presentes em uma instância MySQL. Use a opção ocimds
do utilitário de dump para executar verificações de compatibilidade nos dados submetidos a dump e, se houver algum problema, o utilitário abortará o dump e produzirá uma lista detalhada de problemas e sugerirá etapas para corrigi-los.
O comando a seguir mostra como executar verificações de compatibilidade usando a opção ocimds
no modo dryrun
. Alguns problemas encontrados pela opção ocimds
podem exigir que você edite manualmente o esquema para que ele possa ser carregado no Serviço HeatWave.
util.dumpInstance("", {mode: "dryrun", ocimds: true})
Depois de identificar os problemas de compatibilidade e as opções de compatibilidade, você pode especificar as opções no comando que exporta os dados.
util.dumpInstance("<BucketPrefix>", {osBucketName: "<MDSBucket>", ocimds: true,
compatibility: ["force_innodb", "strip_definers", "strip_restricted_grants",
"skip_invalid_accounts", "strip_tablespaces", "ignore_missing_pks"] } )
Você pode usar as seguintes opções de compatibilidade separadas por vírgulas para modificar automaticamente os dados exportados, o que resolve alguns destes problemas de compatibilidade:
force_innodb
: O HeatWave Service suporta apenas o mecanismo de armazenamento InnoDB. Essa opção modifica a cláusulaENGINE
de instruçõesCREATE TABLE
que usam mecanismos de armazenamento incompatíveis e os substitui por InnoDB.strip_definers
: Remove a cláusula"DEFINER=account"
de views, rotinas, eventos e acionadores. O Serviço HeatWave requer privilégios especiais para criar esses objetos com um definidor diferente do usuário que está carregando o esquema. Ao remover a cláusulaDEFINER
, esses objetos serão criados com esse definidor padrão. As Views e Rotinas têm suas cláusulasSQL SECURITY
alterada deDEFINER
paraINVOKER
. Isso garante que as permissões de acesso da conta que as consulta ou chama sejam aplicadas, em vez do usuário que as criou. Se o modelo de segurança do banco de dados exigir que as views e rotinas tenham mais privilégios que o chamador, modifique manualmente o esquema antes de carregá-lo. Consulte DEFINER e Segurança SQL.strip_restricted_grants
: Determinados privilégios são restringidos no Serviço HeatWave. Privilégios comoRELOAD
,FILE
,SUPER
,BINLOG_ADMIN
eSET_USER_ID
. Não é possível criar usuários que concedam esses privilégios. Essa opção remove esses privilégios de instruçõesGRANT
submetidas a dump.skip_invalid_accounts
: Você não pode exportar um usuário que não tenha uma senha definida. Essa opção ignora esses usuários.strip_tablespaces
: O HeatWave Service tem algumas restrições nos tablespaces. Essa opção remove a opçãoTABLESPACE
das instruçõesCREATE TABLE
, para que todas as tabelas sejam criadas em seus tablespaces padrão.- Flags de chave primária:
create_invisible_pks
: Chaves primárias são exigidas por sistemas de banco de dados de alta disponibilidade. Se você pretende exportar dados para uso em um sistema de banco de dados de alta disponibilidade, adicione chaves primárias se elas não estiverem definidas nas tabelas. Esse flag de compatibilidade adiciona chaves primárias invisíveis a cada tabela que as exige. Consulte Requisitos.ignore_missing_pks
: Se você não pretende importar para um sistema de banco de dados de alta disponibilidade, esse flag de compatibilidade ignorará as chaves primárias ausentes em seu dump.
Além disso, as opções DATA DIRECTORY
, INDEX DIRECTORY
e ENCRYPTION
nas instruções CREATE TABLE
são sempre comentadas nos scripts DDL se a opção ocimds
estiver ativada.
Se você pretende exportar uma versão mais antiga de MySQL, como 5.7.9, e se estiver usando uma versão do Shell MySQL mais antiga que 8.0.30, recomenda-se executar o Utilitário de Verificação de Upgrade do Shell MySQL para gerar um relatório de todos os possíveis problemas com a migração. Consulte Utilitário de Verificação de Upgrade.
Tópicos Relacionados