Migrando um sistema de banco de dados MySQL HeatWave para uma Instância MySQL
Você pode migrar os dados armazenados em um sistema de BD do MySQL HeatWave para uma instância do MySQL que esteja sendo executada on-premises ou em outros fornecedores de nuvem como serviços gerenciados ou não gerenciados. Você também pode exportar as tabelas de banco de dados para dados de texto a serem usados em outros bancos de dados ou aplicativos.
MySQL O shell é um cliente avançado e editor de código para MySQL. Ele fornece funcionalidade SQL mais recursos de script para JavaScript e Python e inclui várias APIs e utilitários para trabalhar com bancos de dados MySQL. MySQL O shell tem utilitários de dump e carga para exportar e importar dados armazenados em instâncias do MySQL. A versão do Shell MySQL deve ser igual ou superior à versão da instância MySQL. É recomendável instalar e usar a versão mais recente do MySQL Shell.
Exportando um sistema de banco de dados MySQL HeatWave
util.dumpInstance(outputUrl[, options]): utilitário de exportação de instância do 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.util.dumpSchemas(schemas, outputUrl[, options]): utilitário de exportação do esquema MySQL que exporta os 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 tabela MySQL que exporta tabelas selecionadas de um esquema para um bucket do serviço Object Storage ou para arquivos locais.
- Sistema de arquivos local na máquina cliente que executa o Shell MySQL
- Oracle Cloud Infrastructure Object Storage
- Bucket compatível com Amazon Web Services (AWS) S3
- Armazenamento de Blocos do Microsoft Azure
Você pode instalar o Shell MySQL em uma instância de computação do Oracle Cloud Infrastructure ou em outra máquina cliente que possa estabelecer conexão com o sistema de BD do MySQL HeatWave que contém dados que você deseja exportar. Em seguida, execute o MySQL Shell para estabelecer conexão com o sistema de banco de dados com uma conta de usuário que tenha privilégios suficientes para acessar os dados que você deseja exportar. Uma vez conectado ao sistema de BD, você pode executar os utilitários de dump para exportar os dados.
- Exporte todos os esquemas de um sistema de banco de dados MySQL HeatWave e armazene os arquivos de dump em um diretório de sistema de arquivos chamado
export-instance:shell-js> util.dumpInstance("export-instance", {ocimds: true})Quando a opçãoocimdsé definida comotrueem um dump de instância, todos os objetos de banco de dados e contas de usuário específicos do MySQL HeatWave são excluídos da exportação. Ele exporta todos os esquemas, tabelas, usuários, eventos, rotinas e triggers criados pelo usuário no sistema de BD do MySQL HeatWave que inclui:- Todos os esquemas criados pelo usuário, juntamente com todos os objetos e dados do banco de dados nos esquemas.
- Todas as contas de usuários do banco de dados criadas pelo usuário, com os privilégios concedidos.
- Exporte o esquema
worlde armazene os arquivos de dump em um diretório de sistema de arquivos chamadoexport-schemas-world:shell-js> util.dumpSchemas(["world"], "export-schemas-world")Este exemplo exporta todos os objetos e dados do banco de dados no esquema
world. As contas de usuário do banco de dados não são exportadas. - Exporte as tabelas
cityecountryno esquemaworlde armazene os arquivos de dump em um diretório de sistema de arquivos chamadoexport-tables-city-country:shell-js> util.dumpTables("world", ["city", "country"],"export-tables-city-country")Este exemplo exporta todos os dados nas tabelas
cityecountryno esquemaworld. Outros objetos de banco de dados no esquemaworld, como rotinas e eventos armazenados, não são exportados. As contas de usuário do banco de dados também não são exportadas. - Exporte as tabelas
cityecountryno esquemaworlde armazene os arquivos de dump que contêm arquivos de textocsvem um diretório de sistema de arquivos chamadoexport-csv-city-country:shell-js> util.dumpTables("world", ["city", "country"],"export-csv-city-country", {dialect: "csv", compression: "none"})Este exemplo exporta todos os dados nas tabelas
cityecountryno esquemaworldpara arquivos de texto csv descompactados. Esses arquivos de texto podem ser carregados em outros bancos de dados ou aplicativos, se necessário. - Exporte a instância MySQL e armazene os arquivos de dump em um bucket do Oracle Cloud Infrastructure especificado por uma PAR (Solicitação Pré-Autenticada):
O bucket deve estar vazio inicialmente.shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", {ocimds: true}) - Exporte a instância MySQL e armazene os arquivos de dump em um bucket do Oracle Cloud Infrastructure com um prefixo especificado por uma Solicitação Pré-Autenticada (PAR):
O bucket não deve ter nenhum objeto com o mesmo prefixo.shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", {ocimds: true})
Para obter uma referência de todas as opções disponíveis, consulte MySQL Utilitários de Dump do Shell.
Importando para uma Instância MySQL
util.loadDump(url[, options])Execute o Shell MySQL em uma máquina cliente e estabeleça conexão com a instância MySQL com uma conta de usuário que tenha os privilégios necessários para importar os dados. Uma vez conectado à instância MySQL, você pode executar o utilitário de carregamento de dump do Shell MySQL para importar os dados.
- Este exemplo importa todos os objetos e dados do banco de dados dos arquivos de dump no diretório do sistema de arquivos chamado
export-instance:shell-js> util.loadDump("export-instance") - Este exemplo importa todos os objetos e dados de banco de dados de um bucket do Oracle Cloud Infrastructure especificado por uma Solicitação Pré-Autenticada (PAR):
Ao importar de um bucket do Oracle Cloud Infrastructure usando uma PAR, é necessário um arquivo de andamento local para acompanhar o estado da importação.shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", progressFile: "progress.json"}) - Este exemplo importa todos os objetos e dados de banco de dados de um bucket do Oracle Cloud Infrastructure com um prefixo especificado por uma Solicitação Pré-Autenticada (PAR):
Ao importar de um bucket do Oracle Cloud Infrastructure usando uma PAR, é necessário um arquivo de andamento local para acompanhar o estado da importação.shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", progressFile: "progress.json"})
Para obter uma referência de todas as opções disponíveis, consulte MySQL Utilitários de Carregamento de Dump do Shell.