Observação:

Migre um Banco de Dados MongoDB em Execução no Atlas MongoDB ou no Local para o Oracle Autonomous JSON Database

Introdução

MongoDB é um dos bancos de dados de código aberto populares usados para criar e armazenar dados em documentos flexíveis semelhantes a JSON, o que significa que os campos podem variar de documento para documento e a estrutura de dados pode ser alterada com o tempo.

A Oracle, que é um dos principais bancos de dados relacionais e de vários modelos conhecidos como Banco de Dados Convergente, tem boa capacidade de lidar com JSON. A Oracle introduziu suporte para JSON de v12c, armazenou dados JSON como varchar2 ou Objeto Grande (LOB) (Objeto Caractere Grande (CLOB)/Objeto Binário Grande (BLOB)).

Desafios do MongoDB:

Vantagem de usar o Tipo de Dados JSON na Oracle:

Observação: Certifique-se de que a conectividade esteja estabelecida entre a implantação do Oracle Cloud Infrastructure (OCI) GoldenGate Big Data, os bancos de dados de origem e de destino.

Objetivos

Pré-requisitos

Tarefa 1: Instalar os Serviços MongoDB Binário e Iniciar MongoDB

  1. Crie três instâncias do OCI Compute para configuração de replicação e anexe o volume em blocos ao diretório de dados.

    image

  2. Atualize o repositório yum para fazer download do binário MongoDB usando o comando a seguir.

    vi /etc/yum.repos.d/mongodb-enterprise-8.0.repo
    [mongodb-enterprise-8.0]
    name=MongoDB Enterprise Repository
    baseurl=https://repo.mongodb.com/yum/redhat/8/mongodb-enterprise/8.0/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://pgp.mongodb.com/server-8.0.asc
    sudo yum install -y mongodb-enterprise
    

    image

  3. Crie o diretório de dados e conceda a permissão necessária usando o comando a seguir.

    cd /data
    ls
    chmod 755 mongo
    cd
    chmod 755 -R /data/mongo
    chown mongod:mongod -R /data/mongo
    chmod 400 /etc/mongod.Keyfile
    chown mongod:mongod -R /etc/mongod.Keyfile
    

    image

    image

    Observação: O arquivo de chaves é necessário para autenticação segura. Para fins de teste, o arquivo de chaves pode ser gerado usando o comando open-ssl.

  4. Crie um arquivo de configuração usando o comando a seguir.

    cat /etc/mongod.conf
    

    image

  5. Desative os serviços selinux e inicie os serviços mongod usando os comandos a seguir.

    setenforce 0
    getenforce
    systemctl start mongod
    systemctl status mongod
    

    image

  6. Execute as mesmas operações nos dois nós restantes que atuarão como nó secundário.

Tarefa 2: Criar Conjunto de Réplicas MongoDB

  1. Conecte-se ao primeiro nó e conecte-se ao banco de dados admin.

  2. Execute os comandos a seguir para iniciar a replicação e criar o primeiro usuário administrador. Esse usuário de replicação será usado para configuração e gerenciamento de replicação.

    mongosh
    use admin
    

    image

    rs.initiate()
    db.createUser({
    ...  user: "admin",
    ...  pwd: "password",
    ...  roles: [
    ...         { role: "root", db: "admin" }
    ...   ]
    ...  })
    

    image

    db.auth("admin","password")
    rs.conf()
    

    image

  3. Adicione os dois nós restantes usando os comandos a seguir. Eles serão adicionados como nós secundários.

    rs.add("10.0.1.163;27017")
    

    image

    rs.add("10.0.1.51:27017")
    

    image

  4. Verifique a configuração e o status do conjunto de réplicas usando os comandos a seguir.

    db.auth("admin","password")
    rs.conf()
    

    image

    rs.status()
    

    image

    image

    image

    image

    rs.printReplicationInfo()
    

    image

Tarefa 3: Carregar Dados no Conjunto de Réplicas MongoDB

  1. Restaure o dump no conjunto de réplicas MongoDB usando o comando mongorestore.

    mongorestore --username admin --password password dump/
    

    image

    image

    image

    Observação: O dump acima foi obtido de outro conjunto de réplicas MongoDB usando o comando mongodump para todos os bancos de dados em execução nesse conjunto de réplicas.

  2. Execute o comando a seguir para verificar se todos os bancos de dados e suas respectivas coleções foram restaurados no conjunto de réplicas MongoDB.

    mongosh
    use admin
    db.auth("admin","password")
    show dbs
    

    image

Tarefa 4: Configurar o Oracle Autonomous JSON Database no OCI

  1. Faça log-in na Console do OCI, navegue até Oracle Database, Autonomous Database e digite as informações a seguir, conforme mostrado nas imagens para criar um banco de dados autônomo.

    image

    image

    image

    Observação: Para compatibilidade com MongoDB, o acesso à rede precisa ser definido como acesso seguro apenas de IPs e VCNs permitidos ou apenas acesso de ponto final privado.

  2. Clique em Editar configuração da ferramenta, ative a API MongoDB e copie o URL.

    image

    image

    image

    Observação: Você precisa alterar o nome de usuário e a senha na string de conexão acima.

Tarefa 5: Criar Database Client Machine para Acessar o Oracle Autonomous JSON Database e Instalar as Ferramentas MongoDB Necessárias

  1. Faça download do arquivo da wallet e configure a conectividade para o Oracle Autonomous JSON Database usando os comandos a seguir.

    cat tnsnames.Oracle
    

    image

    cat sqlnet.Ora
    

    image

    image

  2. Faça download das ferramentas MongoDB para conectividade usando os comandos a seguir.

    wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel70-x86_64-100.5.2.tgz
    

    image

    tar -xvf mongodb-database-toosl-rhel70-x86_64-100.5.2.tgz
    

    image

    wget https://downloads.mongodb.com/compass/mongosh-1.3.1-linux-x64.tgz
    

    image

    tar -xvf mongosh-1.3.1-linux-x64.tgz
    

    image

  3. Defina Caminho e URI (ponto final do Oracle Autonomous Transaction Processing (ATP) como variável de ambiente usando os comandos a seguir.

    cd
    export PATH=/home/oracle/mongosh-1.3.1-linux-x64/bin/:$PATH
    export PATH=$PATH:/home/oracle/mongodb-database-tools-rhel70-x86_64-100.5.2/bin
    echo $path
    

    image

    image

    image

  4. Verifique se você pode estabelecer conexão com o Oracle Autonomous JSON Database usando o comando a seguir.

    export URI='mongodb://admin:xxxx@xxxxxx-ADBJ.adb.us-ashburn-1.oraclecloudapps.com:27017/admin?authMechanism=PLAIN&authSource=$external&ssl=true&retryWrites=false&loadBalanced=true'
    mongosh $URI
    

    image

Tarefa 6: Fazer Upload do Dump para o Bucket do OCI Object Storage e Importar para o ATP

  1. Faça dump de uma coleção usando o comando mongoexport.

    image

    mongoexport --host=mrep1 --port 27017 --username=admin --authicationDatabase=admin --collection=data --db=sample_weatherdata --out=wheather_data.Json
    

    image

  2. Clique em Fazer Upload para fazer upload do dump de uma única coleção de banco de dados que foi feita usando o comando mongoexport no conjunto de réplicas MongoDB.

    image

  3. Clique em Exibir Detalhes do Objeto para obter detalhes do ponto final do objeto.

    image

    image

  4. Execute o comando curl para ler os dados desse objeto e o comando mongoimport para ATP usando o ponto final.

    curl -X GET https://objectstorage.us-ashburn-1.oraclecloud.com/p/ujXv8Pmhxt9EyLlA9ogm_X524pDRGEymJwbDVyUExAACra1VpAql32U0XaRnaxLt/n/orasenatdoracledigital01/b/jsonbucket/o/wheather_data.json | mongoimport --collection data --uri $URI
    

    image

  5. Verifique se a coleta foi importada para o banco de dados ATP.

    image

  6. Verifique novamente se o número de documentos é o mesmo da origem.

    image

    O teste teve êxito. Agora, é bom mover todos os dados em execução em vários bancos de dados na réplica da origem MongoDB definida para o Oracle Autonomous JSON Database de destino e implantar serviços GoldenGate do OCI para migração quase sem tempo de inatividade.

  7. Para movimentação de dados, você pode usar o comando mongodump para copiar dados do banco de dados de origem para destino como uma carga única.

    export URI="mongodb://mrep1:27017 --username admin --authenticationDatabase admin"
    mongodump --uri=$URI
    

    image

    image

  8. Copie esse dump para o sistema de destino do qual você pode executar o comando mongorestore (já explicado na Tarefa 3 para carregar no Oracle Autonomous JSON Database de destino).

    Observação: Certifique-se de criar o mesmo nome de esquema no Oracle Autonomous JSON Database para as coleções de bancos de dados que você deseja migrar.

    create user sample_airbnb identified by <password>;
    grant connect, resource to sample_airbnb;
    grant unlimited tablespace to sample_airbnb;
    BEGIN
    ORDS_ADMIN.ENABLE_SCHEMA(p_schema => 'SAMPLE_AIRBNB');
    commit;
    END;
    /
    

Tarefa 7: Implantar o OCI GoldenGate

  1. Vá para a Console do OCI, navegue até Oracle Database, GoldenGate, Implantações e clique em Criar implantação.

    Para MongoDB para o Oracle Autonomous JSON Database, precisamos selecionar Tecnologia como Big Data e Tipo de Implantação como Replicação de Dados.

    image

    image

  2. Crie segredo antecipadamente na Console do OCI para log-in e gerenciamento do usuário administrador.

    image

    image

    image

Tarefa 8: Criar Conexão para o MongoDB e o Oracle Autonomous JSON Database

  1. Vá para a Console do OCI, navegue até Oracle Database, GoldenGate, Conexões e clique em Criar conexão.

    image

  2. Digite as informações a seguir, conforme mostrado na imagem, para criar uma conexão de banco de dados de origem.

    image

  3. Repita a etapa 1 e insira as informações a seguir, conforme mostrado na imagem, para criar a conexão do banco de dados de destino.

    image

Tarefa 9: Designar e Testar Conexão com a Implantação GoldenGate do OCI

  1. Vá para a Console do OCI, navegue até Oracle Database, GoldenGate, Conexões e clique na conexão criada na Tarefa 8.

  2. Clique em Implantações designadas e Designar implantação.

    image

  3. Selecione a implantação e clique em Designar implantação.

    image

  4. Clique nos três pontos e em Testar conexão para garantir que ela seja bem-sucedida.

    image

    image

Tarefa 10: Criar Processos de Extração e Replicat

  1. Vá para a Console do OCI, navegue até Oracle Database, GoldenGate, Implantações e clique na implantação criada na Tarefa 7.

    Clique em Iniciar Console e isso abrirá a console de configuração GoldenGate do OCI.

    image

  2. Informe o Nome do Usuário e a Senha que foram criados durante a implantação.

    image

    Depois de fazer log-in na página da console, você poderá ver todas as opções necessárias para a configuração Extrair e Replicar. Você pode criar serviços de extração e replicação, conforme mostrado nas etapas posteriores.

  3. Configure o processo de extração.

    Selecione Alias de Conexão que foi criado para o banco de dados MongoDB de origem.

    image

    image

    Em Arquivo de Parâmetro, sample_airbnb é um banco de dados em MongoDB e * representa todas as coleções desse banco de dados.

    image

  4. Configure o processo de replicação.

    1. Selecione Replicat Clássico como Tipo de Replicat.

      image

    2. Digite as seguintes informações necessárias.

      Você precisa selecionar o mesmo nome de arquivo de trilha, que foi nomeado na criação do processo de extração. Selecione Destino como Oracle Autonomous JSON Database e digite Alias de Conexão que foi criado na Tarefa 8.

      image

      O processo de replicação replicará todas as transações do banco de dados sample_airbnb nos esquemas MongoDB para sample_airbnb no Oracle Autonomous JSON Database.

      image

    Observação: Você precisa alterar o nome do banco de dados de origem e de destino e o nome do esquema, respectivamente, na configuração.

  5. Depois de concluir a configuração do processo de extração e replicação, inicie o processo de acordo.

    Observação: O Oracle Autonomous JSON Database deve ser configurado com um ponto final privado. Se o certificado não for usado, você poderá alterar a autenticação sem o TLS mútuo (mTLS).

    Caso a certificação correta não esteja disponível, você poderá obter o seguinte erro no arquivo de log de replicação:

    Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    

    image

Tarefa 11: Iniciar Processos de Extração e Replicação e Validar

Clique em Serviço Administrativo para verificar o status dos processos e seus respectivos relatórios e arquivos de log para qualquer problema.

image

Tarefa 12: Testar Sincronização de Dados

  1. Na origem e no destino, verifique a contagem de documentos nos detalhes da coleta antes de inserir alguns dados usando os comandos a seguir.

    • Banco de dados de origem:

      show dbs
      use sample_airbnb
      show collections
      db.emp.countDocuments()
      

      image

    • Banco de dados de destino:

      show dbs
      use Sample_airbnb
      show collections
      db.emp.countDocuments()
      

      image

  2. Verifique os dados no banco de dados de origem e destino usando os comandos a seguir.

    • Banco de dados de origem:

      db.emp.find({"name":"joe"})
      db.emp.find({"name":"John"})
      

      image

    • Banco de dados de destino:

      db.emp.find({"name":"joe"})
      db.emp.find({"name":"John"})
      

      image

  3. Insira dados na origem e verifique se eles foram replicados no destino usando os comandos a seguir.

    • Banco de dados de origem:

      dm.emp.insertOne(
      { "name":"John","job":"Data Analyst","Salary":7000})
      db.emp.countDocuments()
      db.emp.find({"name":"John"})
      

      image

    • Banco de dados de destino:

      show DBs
      show collections
      db.emp.find({"name":"John"})
      

      image

      image

      image

Tarefa 13: Conectar ao Atlas MongoDB

A conexão com o Atlas MongoDB é diferente da conexão com um banco de dados MongoDB local.

Observação: Certifique-se de criar um gateway NAT e anexá-lo à sub-rede privada que está sendo usada pela implantação GoldenGate do OCI, bem como se a conexão precisar ser estabelecida em uma rede pública.

image

Erros Comuns Devido a Problemas de Conectividade

O problema de conectividade com o Oracle Autonomous JSON Database de destino pode levar a erros diversos ao iniciar o processo de replicação:

Confirmações

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.