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

Você pode exportar os dados do seu sistema de banco de dados MySQL HeatWave usando um dos seguintes utilitários de dump do Shell MySQL:
  • 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.
Você pode gravar os arquivos de dump exportados em um dos seguintes 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.

Alguns exemplos:
  • 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ção ocimds é definida como true em 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 world e armazene os arquivos de dump em um diretório de sistema de arquivos chamado export-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 city e country no esquema world e armazene os arquivos de dump em um diretório de sistema de arquivos chamado export-tables-city-country:
    shell-js> util.dumpTables("world", ["city", "country"],"export-tables-city-country")

    Este exemplo exporta todos os dados nas tabelas city e country no esquema world. Outros objetos de banco de dados no esquema world, 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 city e country no esquema world e armazene os arquivos de dump que contêm arquivos de texto csv em um diretório de sistema de arquivos chamado export-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 city e country no esquema world para 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):
    shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", {ocimds: true})
    O bucket deve estar vazio inicialmente.
  • 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):
    shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", {ocimds: true})
    O bucket não deve ter nenhum objeto com o mesmo prefixo.

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

Você pode usar o utilitário de carregamento de dump do shell MySQL para importar os dados exportados usando os utilitários de dump do shell MySQL em qualquer instância do MySQL. A instância do MySQL pode estar em execução on-premises ou em outros fornecedores de nuvem como serviços gerenciados ou não gerenciados.
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.

Alguns exemplos:
  • 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):
    shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", progressFile: "progress.json"})
    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.
  • 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):
    shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", progressFile: "progress.json"})
    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.

Para obter uma referência de todas as opções disponíveis, consulte MySQL Utilitários de Carregamento de Dump do Shell.