Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
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:
-
O MongoDB é rápido para começar, mas não possui recursos importantes para implantações corporativas.
-
O suporte limitado a transações gera desafios de consistência de dados.
-
Consultas analíticas difíceis e ineficientes (e nenhuma consulta paralela).
-
Recursos de segurança imaturos.
-
A funcionalidade ANSI SQL (American National Standards Institute Structured Query Language).
Vantagem de usar o Tipo de Dados JSON na Oracle:
-
Na versão 21c da Oracle, o JSON é armazenado em formato nativo, para que os usuários possam consultar documentos JSON usando SQL padrão que permite criar aplicativos com a flexibilidade de um modelo de design sem esquema com todo o poder do Oracle Database, como replicação, particionamento e indexação com todas as funcionalidades das quais o Oracle Database é capaz.
-
O JSON pode ser manipulado por meio de consulta SQL.
-
Armazenado como OSON (uma representação binária nativa otimizada de JSON).
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
- Configure o MongoDB e o Oracle Autonomous JSON Database usando a implantação do OCI GoldenGate Big Data.
Pré-requisitos
-
Provisione os seguintes recursos:
-
Ambiente do OCI como (compartimento, rede virtual na nuvem (VCN), sub-rede e assim por diante).
-
Oracle Autonomous JSON Database.
-
VM do OCI Compute para conjunto de réplicas MongoDB.
-
Implantação do OCI GoldenGate Big Data.
-
Tarefa 1: Instalar os Serviços MongoDB Binário e Iniciar MongoDB
-
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.
-
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
-
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
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
. -
Crie um arquivo de configuração usando o comando a seguir.
cat /etc/mongod.conf
-
Desative os serviços
selinux
e inicie os serviçosmongod
usando os comandos a seguir.setenforce 0 getenforce systemctl start mongod systemctl status mongod
-
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
-
Conecte-se ao primeiro nó e conecte-se ao banco de dados admin.
-
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
rs.initiate() db.createUser({ ... user: "admin", ... pwd: "password", ... roles: [ ... { role: "root", db: "admin" } ... ] ... })
db.auth("admin","password") rs.conf()
-
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")
rs.add("10.0.1.51:27017")
-
Verifique a configuração e o status do conjunto de réplicas usando os comandos a seguir.
db.auth("admin","password") rs.conf()
rs.status()
rs.printReplicationInfo()
Tarefa 3: Carregar Dados no Conjunto de Réplicas MongoDB
-
Restaure o dump no conjunto de réplicas MongoDB usando o comando
mongorestore
.mongorestore --username admin --password password dump/
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. -
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
Tarefa 4: Configurar o Oracle Autonomous JSON Database no OCI
-
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.
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.
-
Clique em Editar configuração da ferramenta, ative a API MongoDB e copie o URL.
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
-
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
cat sqlnet.Ora
-
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
tar -xvf mongodb-database-toosl-rhel70-x86_64-100.5.2.tgz
wget https://downloads.mongodb.com/compass/mongosh-1.3.1-linux-x64.tgz
tar -xvf mongosh-1.3.1-linux-x64.tgz
-
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
-
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
Tarefa 6: Fazer Upload do Dump para o Bucket do OCI Object Storage e Importar para o ATP
-
Faça dump de uma coleção usando o comando
mongoexport
.mongoexport --host=mrep1 --port 27017 --username=admin --authicationDatabase=admin --collection=data --db=sample_weatherdata --out=wheather_data.Json
-
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. -
Clique em Exibir Detalhes do Objeto para obter detalhes do ponto final do objeto.
-
Execute o comando
curl
para ler os dados desse objeto e o comandomongoimport
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
-
Verifique se a coleta foi importada para o banco de dados ATP.
-
Verifique novamente se o número de documentos é o mesmo da origem.
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.
-
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
-
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
-
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.
-
Crie segredo antecipadamente na Console do OCI para log-in e gerenciamento do usuário administrador.
Tarefa 8: Criar Conexão para o MongoDB e o Oracle Autonomous JSON Database
-
Vá para a Console do OCI, navegue até Oracle Database, GoldenGate, Conexões e clique em Criar conexão.
-
Digite as informações a seguir, conforme mostrado na imagem, para criar uma conexão de banco de dados de origem.
-
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.
Tarefa 9: Designar e Testar Conexão com a Implantação GoldenGate do OCI
-
Vá para a Console do OCI, navegue até Oracle Database, GoldenGate, Conexões e clique na conexão criada na Tarefa 8.
-
Clique em Implantações designadas e Designar implantação.
-
Selecione a implantação e clique em Designar implantação.
-
Clique nos três pontos e em Testar conexão para garantir que ela seja bem-sucedida.
Tarefa 10: Criar Processos de Extração e Replicat
-
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.
-
Informe o Nome do Usuário e a Senha que foram criados durante a implantação.
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.
-
Configure o processo de extração.
Selecione Alias de Conexão que foi criado para o banco de dados MongoDB de origem.
Em Arquivo de Parâmetro,
sample_airbnb
é um banco de dados em MongoDB e*
representa todas as coleções desse banco de dados. -
Configure o processo de replicação.
-
Selecione Replicat Clássico como Tipo de Replicat.
-
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.
O processo de replicação replicará todas as transações do banco de dados
sample_airbnb
nos esquemas MongoDB parasample_airbnb
no Oracle Autonomous JSON Database.
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.
-
-
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
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.
-
Extrair status do processo:
-
Status do processo de replicação:
Tarefa 12: Testar Sincronização de Dados
-
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()
-
Banco de dados de destino:
show dbs use Sample_airbnb show collections db.emp.countDocuments()
-
-
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"})
-
Banco de dados de destino:
db.emp.find({"name":"joe"}) db.emp.find({"name":"John"})
-
-
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"})
-
Banco de dados de destino:
show DBs show collections db.emp.find({"name":"John"})
-
Tarefa 13: Conectar ao Atlas MongoDB
A conexão com o Atlas MongoDB é diferente da conexão com um banco de dados MongoDB local.
-
A string de conexão padrão Atlas MongoDB a seguir não é suportada.
mongodb+srv://<db_username>:<db_password>@cluster0.xxxxx.mongodb.net/
-
Para uma conexão bem-sucedida, precisamos usar a string de conexão a seguir.
mongodb://cluster0-shard-00-00.xxxx.mongodb.net:27017,cluster0-shard-00-01.xxxx.mongodb.net:27017,cluster0-shard-00-02.xxxx.mongodb.net:27017/?ssl=true&replicaSet=xxxx&authSource=admin&retryWrites=true&w=majority&appName=Cluster0
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.
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:
-
Erro 1:
ERROR OGG-01091 Unable to open file "/u02/Deployment/var/lib/data/a1000000000" (error 2, No such file or directory).
-
Erro 2:
ERROR OGG-15051 Java or JNI exception: java.lang.NoClassDefFoundError: oracle/goldengate/datasource/UserExitMain. oracle.goldengate.util.GGException: Error detected handling transaction commit event. Exception in thread "main" oracle.goldengate.util.GGException: Error detected handling transaction commit event. at oracle.goldengate.datasource.UserExitDataSource.commitTransaction(UserExitDataSource.java:261 at oracle.goldengate.datasource.UserExitDataSource.commitTx(UserExitDataSource.java:2180) Caused by: java.net.SocketTimeoutException: Connect timed out
-
Erro 3: No caso de replicação integrada, você pode encontrar o seguinte erro:
OGG-01091 Oracle GoldenGate Delivery, RSNOW.prm: Unable to open file "/u02/Deployment/etc/conf/ogg/<replicat name>001.properties" (error 2, No such file ordirectory). In that case, you need to set below parameter in property file of Replicate parameter. TARGETDB LIBFILE libggjava.so SET property=/u02/Deployment/etc/conf/ogg/<replicatname>.properties
-
Erro 4: A conexão no Atlas MongoDB usando a string de conexão padrão não é suportada usando a implantação do OCI GoldenGate Big Data. Você receberá um erro conforme mostrado na imagem a seguir.
Links Relacionados
Confirmações
- Autor - Ashish Srivastava (Arquiteto de Nuvem Principal, Oracle North America Cloud Services - NACIE)
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.
Migrate a MongoDB Database Running on MongoDB Atlas or On-Premises to Oracle Autonomous JSON Database
G26113-01
February 2025
Copyright ©2025, Oracle and/or its affiliates.