{"id":1020,"date":"2022-09-30T01:07:16","date_gmt":"2022-09-30T01:07:16","guid":{"rendered":"https:\/\/adrianotanaka.com.br\/?p=1020"},"modified":"2022-10-05T22:32:25","modified_gmt":"2022-10-05T22:32:25","slug":"oci-goldengate-primeiros-passos","status":"publish","type":"post","link":"https:\/\/adrianotanaka.com.br\/index.php\/2022\/09\/30\/oci-goldengate-primeiros-passos\/","title":{"rendered":"OCI GoldenGate &#8211; primeiros passos"},"content":{"rendered":"\n<p>O OCI GoldenGate \u00e9 a vers\u00e3o cloud do j\u00e1 conhecido GoldenGate, ele funciona na arquitetura de microservi\u00e7os e uma de suas principais vantagens \u00e9 cobrar pela quantidade de OCPU alocada para o deployment e n\u00e3o pela origem e destino, o servi\u00e7o pode ser encontrado no menu de servi\u00e7os -&gt; Oracle Database -&gt; Goldengate, ele \u00e9 divido em 3 menus b\u00e1sicos: Deployments, Deployment Backups e Registered Databases.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Deployments<\/h2>\n\n\n\n<p>Aqui \u00e9 o menu onde o servi\u00e7o \u00e9 criado:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"920\" height=\"670\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-14.png\" alt=\"\" class=\"wp-image-1023\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-14.png 920w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-14-300x218.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-14-768x559.png 768w\" sizes=\"auto, (max-width: 920px) 100vw, 920px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Os pontos importantes s\u00e3o:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Quantidade minima\/base de OCPU, cada OCPU entrega 16GB de RAM e 250GB de storage<\/li><li>Auto Scaling, caso voc\u00ea marque essa op\u00e7\u00e3o o servi\u00e7o vai alocar at\u00e9 tr\u00eas vezes a quantidade inicial de CPU de acordo com a utiliza\u00e7\u00e3o.<\/li><li>Subnet, aqui \u00e9 importante selecionar uma rede que tenha acesso tanto ao banco de origem quanto ao de destino.<\/li><li>Indo em Advanced, voc\u00ea tem a op\u00e7\u00e3o de criar um endpoint p\u00fablico e tamb\u00e9m criar um fqdn pr\u00f3prio<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"674\" height=\"313\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-15.png\" alt=\"\" class=\"wp-image-1024\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-15.png 674w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-15-300x139.png 300w\" sizes=\"auto, (max-width: 674px) 100vw, 674px\" \/><\/figure>\n\n\n\n<p>Na segunda tela, voc\u00ea pode especificar o nome do servi\u00e7o, qual o nome do usu\u00e1rio administrador e tamb\u00e9m a sua senha<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"831\" height=\"554\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-16.png\" alt=\"\" class=\"wp-image-1027\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-16.png 831w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-16-300x200.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-16-768x512.png 768w\" sizes=\"auto, (max-width: 831px) 100vw, 831px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Ap\u00f3s o servi\u00e7o criado, voc\u00ea tem acesso aos detalhes dele:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"392\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-17-1024x392.png\" alt=\"\" class=\"wp-image-1028\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-17-1024x392.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-17-300x115.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-17-768x294.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-17-1536x588.png 1536w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-17.png 1788w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>No meu caso, esse \u00e9 um deployment mais antigo e j\u00e1 podemos ver uma das vantagens do servi\u00e7o que \u00e9 a quest\u00e3o de upgrade de vers\u00e3o, como podem ver, assim que uma nova vers\u00e3o \u00e9 lan\u00e7ada ele mostra um banner com a op\u00e7\u00e3o de em apenas um clique realizar o upgrade.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"586\" height=\"126\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-19.png\" alt=\"\" class=\"wp-image-1031\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-19.png 586w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-19-300x65.png 300w\" sizes=\"auto, (max-width: 586px) 100vw, 586px\" \/><\/figure>\n\n\n\n<p>Nos bot\u00f5es temos acesso ao Edit, nele voc\u00ea pode alterar o nome do servi\u00e7o e tamb\u00e9m ativar ou desativar o acesso p\u00fablico(voc\u00ea tamb\u00e9m precisa fazer as libera\u00e7\u00f5es direto na subnet ou no NSG do servi\u00e7o).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"551\" height=\"675\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-18.png\" alt=\"\" class=\"wp-image-1030\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-18.png 551w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-18-245x300.png 245w\" sizes=\"auto, (max-width: 551px) 100vw, 551px\" \/><\/figure>\n\n\n\n<p>No bot\u00e3o Scale voc\u00ea pode alterar a quantidade minima de OCPU e tamb\u00e9m ativar\/desativar o Auto Scaling<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"930\" height=\"449\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-20.png\" alt=\"\" class=\"wp-image-1032\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-20.png 930w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-20-300x145.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-20-768x371.png 768w\" sizes=\"auto, (max-width: 930px) 100vw, 930px\" \/><\/figure>\n\n\n\n<p>Uma dica importante aqui \u00e9 que qualquer altera\u00e7\u00e3o na quantidade minima vai fazer o servi\u00e7o reiniciar!<\/p>\n\n\n\n<p>Na parte de m\u00e9tricas temos alguns dados importantes para voc\u00ea saber se o sizing est\u00e1 correto e tamb\u00e9m acompanhar a sa\u00fade e performance do deployment, a dica aqui \u00e9 criar alertas para que acompanhe de forma automatizada.<\/p>\n\n\n\n<p>No menu Deployment backups voc\u00ea pode restaurar um backup ou criar um deployment novo a partir do backup.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Registrando um banco de dados<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"584\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-21-1024x584.png\" alt=\"\" class=\"wp-image-1035\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-21-1024x584.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-21-300x171.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-21-768x438.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-21.png 1112w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Agora que j\u00e1 vimos algumas op\u00e7\u00f5es do deploy, vamos passar pelo processo de registro dos bancos, aqui devem ser registrados tanto origem quanto destino, importante que o usu\u00e1rio que vai extrair\/escrever os dados no banco j\u00e1 esteja criado.<\/p>\n\n\n\n<p>Se o seu banco for um Autonomous, DBCS ou ExaCS voc\u00ea pode usar o pr\u00f3prio wizard para selecionar o banco e ele j\u00e1 carrega o IP, dns, etc, bastando voc\u00ea colocar o usu\u00e1rio e senha do banco, lembrando que para a parte de redes o deployment precisa ter acesso na rede do banco de dados.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"391\" height=\"794\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/ocigg-register-db.gif\" alt=\"\" class=\"wp-image-1037\"\/><\/figure>\n\n\n\n<p>Agora se o seu banco estiver fora do OCI ou voc\u00ea queira customizar alguma informa\u00e7\u00e3o voc\u00ea pode usar a op\u00e7\u00e3o Enter Database Information.<\/p>\n\n\n\n<p>Indo de forma manual voc\u00ea pode escolher se conectar diretamente no banco de dados ou atrav\u00e9s de um scan<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"363\" height=\"135\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-22.png\" alt=\"\" class=\"wp-image-1038\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-22.png 363w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-22-300x112.png 300w\" sizes=\"auto, (max-width: 363px) 100vw, 363px\" \/><\/figure>\n\n\n\n<p>No campo Database Node FQDN voc\u00ea pode colocar qualquer FQDN valido, n\u00e3o sendo necess\u00e1rio que ele seja uma entrada de DNS p\u00fablica, esse FQDN vai ser inserido dentro do servi\u00e7o e uma amarra\u00e7\u00e3o vai ser feita com o IP que voc\u00ea vai entrar em Network Connectivity via private endpoint  , ent\u00e3o voc\u00ea pode usar por exemplo meudbcs.local, dbtnk.dbcs, etc.<\/p>\n\n\n\n<p>No campo Database Connection String voc\u00ea precisa usar o mesmo FQDN e preencher com sua string de conex\u00e3o, aqui voc\u00ea pode usar EZ connect ou a string completa.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"380\" height=\"288\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-23.png\" alt=\"\" class=\"wp-image-1039\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-23.png 380w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-23-300x227.png 300w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Um ponto importante \u00e9 marcar a op\u00e7\u00e3o Network Connectivity via private endpoint e selecionar uma subnet que possua acesso ao banco desejado e colocar o Database Node IP que \u00e9 o IP do banco de dados, dessa forma a amarra\u00e7\u00e3o entre o Database node FQDN e esse IP vai ser realizada.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"388\" height=\"652\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-24.png\" alt=\"\" class=\"wp-image-1040\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-24.png 388w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-24-179x300.png 179w\" sizes=\"auto, (max-width: 388px) 100vw, 388px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Fazendo nossa primeira replica\u00e7\u00e3o<\/h2>\n\n\n\n<p>Essa vai ser a nossa arquitetura<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"974\" height=\"572\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-25.png\" alt=\"\" class=\"wp-image-1043\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-25.png 974w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-25-300x176.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-25-768x451.png 768w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><\/figure>\n\n\n\n<p>No meu OCI Goldengate eu j\u00e1 tenho os dois bancos registrados:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"415\" height=\"116\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-26.png\" alt=\"\" class=\"wp-image-1044\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-26.png 415w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-26-300x84.png 300w\" sizes=\"auto, (max-width: 415px) 100vw, 415px\" \/><\/figure>\n\n\n\n<p>E tamb\u00e9m j\u00e1 preparei os dois bancos com a seguinte configura\u00e7\u00e3o:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;\nALTER DATABASE FORCE LOGGING;\nalter system set ENABLE_GOLDENGATE_REPLICATION=true scope=both sid='*';\nAlter system set streams_pool_size=3g scope=both sid='*';<\/pre>\n\n\n\n<p>E criei o usu\u00e1rio de replica\u00e7\u00e3o dessa forma, lembrando que esse \u00e9 um ambiente de teste e em um ambiente produtivo voc\u00ea deve ser mais restritivo.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">create user C##GGADMIN identified by \"SenhA#123_123#\" ;<br>exec dbms_goldengate_auth.grant_admin_privilege('C##GGADMIN','*',container=&gt;'ALL',grant_select_privileges=&gt;true)<br>grant DBA to C##GGADMIN container=all;<\/pre>\n\n\n\n<p>No console do Goldengate -&gt; Menu de hamburger -&gt; Configuration eu consigo ver as credenciais<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"773\" height=\"355\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/ocigg-credenciais.gif\" alt=\"\" class=\"wp-image-1045\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Aproveite para adicionar o Trandata, o trandata \u00e9 necess\u00e1rio para que mais informa\u00e7\u00f5es sejam capturadas e escritas pelo Goldengate, ele pode ser adicionado por schema ou por tabela a ser replicada, nesse caso vou colocar por schema<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1268\" height=\"715\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/ocigg-ckpt-table-1.gif\" alt=\"\" class=\"wp-image-1053\"\/><\/figure>\n\n\n\n<p>Note que ao fazer isso, ele j\u00e1 reconhece que possuo uma tabela no schema a ser replicado.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Criando o Extract<\/h2>\n\n\n\n<p>O Extract \u00e9 o processo respons\u00e1vel pela extra\u00e7\u00e3o dos dados e sua cria\u00e7\u00e3o (geralmente) \u00e9 bem simples:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1268\" height=\"832\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/ocigg-create-ext.gif\" alt=\"\" class=\"wp-image-1054\"\/><\/figure>\n\n\n\n<p>Al\u00e9m de selecionar as credenciais registradas na console do OCI, outra parte importante aqui \u00e9 marcar a op\u00e7\u00e3o Critical to Deployment health no menu Managed options, dessa forma al\u00e9m de o processo ser iniciado\/reiniciado em caso de problemas, ele ainda gera um alerta no servi\u00e7o do OCI que voc\u00ea pode criar um alarm para envio de notifica\u00e7\u00f5es.<\/p>\n\n\n\n<p>Deixei de prop\u00f3sito alguns par\u00e2metros errados e ele notificou na console:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"293\" height=\"92\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-28.png\" alt=\"\" class=\"wp-image-1055\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"296\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-29.png\" alt=\"\" class=\"wp-image-1056\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-29.png 461w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-29-300x193.png 300w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n\n\n\n<p>Esse \u00e9 o meu &#8220;arquivo&#8221; de par\u00e2metros corrigido:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">EXTRACT ext_s\nTRANLOGOPTIONS SOURCE_OS_TIMEZONE  GMT-3\nddl include mapped\nUSERIDALIAS dbsource DOMAIN OracleGoldenGate\nEXTTRAIL so\ntable DBAMD_PDB1.source_tanaka.source;<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Criando o replicat<\/h2>\n\n\n\n<p>Com o nosso processo no ar, j\u00e1 podemos criar o nosso replicat, ele vai ser o respons\u00e1vel pela escrita<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1265\" height=\"815\" data-id=\"1059\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/ocigg-create-rep-1.gif\" alt=\"\" class=\"wp-image-1059\"\/><\/figure>\n<\/figure>\n\n\n\n<p>Ele segue a mesma ideia do Extract, voc\u00ea seleciona a credencial do banco de destino, seleciona o trail que voc\u00ea mandou o Extract escrever(no meu caso ele se chama so) e voc\u00ea parametriza da forma que deseja que a escrita ocorra, aqui disse que tudo que for escrito vai ser mapeado para o schema DEST, da mesma forma caso ele tenha algum problema, o status do servi\u00e7o na console \u00e9 alterado e voc\u00ea pode interceptar essa mudan\u00e7a:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"962\" height=\"109\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-30.png\" alt=\"\" class=\"wp-image-1060\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-30.png 962w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-30-300x34.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-30-768x87.png 768w\" sizes=\"auto, (max-width: 962px) 100vw, 962px\" \/><\/figure>\n\n\n\n<p>Ap\u00f3s tudo corrigido, teremos tanto o extract quanto o replicat rodando<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"138\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-31-1024x138.png\" alt=\"\" class=\"wp-image-1062\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-31-1024x138.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-31-300x40.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-31-768x104.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-31-1536x207.png 1536w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/image-31.png 1639w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>E um exemplo de sincroniza\u00e7\u00e3o ocorrendo<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"936\" height=\"926\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/ocigg-compare.gif\" alt=\"\" class=\"wp-image-1063\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Tamb\u00e9m podemos acessar a guia de estat\u00edsticas (tanto do extract quanto do replicat) onde tamb\u00e9m temos os detalhes do que est\u00e1 acontecendo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1217\" height=\"578\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/ocigg-stats.gif\" alt=\"\" class=\"wp-image-1065\"\/><\/figure>\n\n\n\n<p>Ou pelo adminclient usando o cloud shell<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1134\" height=\"640\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2022\/09\/ocigg-adminclient.gif\" alt=\"\" class=\"wp-image-1066\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>O OCI GoldenGate \u00e9 a vers\u00e3o cloud do j\u00e1 conhecido GoldenGate, ele funciona na arquitetura de microservi\u00e7os e uma de suas principais vantagens \u00e9 cobrar pela quantidade de OCPU alocada para o deployment e n\u00e3o pela origem e destino, o servi\u00e7o pode ser encontrado no menu de servi\u00e7os -&gt; Oracle Database -&gt; Goldengate, ele \u00e9 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1043,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"material-hide-sections":[],"footnotes":""},"categories":[1],"tags":[47,46,10],"class_list":["post-1020","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-cdc","tag-goldengate","tag-oci"],"_links":{"self":[{"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/posts\/1020","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=1020"}],"version-history":[{"count":21,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/posts\/1020\/revisions"}],"predecessor-version":[{"id":1070,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/posts\/1020\/revisions\/1070"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/media\/1043"}],"wp:attachment":[{"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=1020"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=1020"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=1020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}