Observer, More Than One

Recently I made a post about a little issue that I got with Oracle Data Guard. In that scenario, because of outage in the standby datacenter, healthy primary database shutdown with error “ORA-16830: primary isolated…”. Just to remember that the database was running with Maximum Availability, Fail-Start Failover enabled and (the most important detail) the Observer was running in the standby datacenter too.

The point from my previous post tried to show that does not exists one doc that provides full details about “pros” and “cons” where put your observer. Whatever the place, on the primary datacenter or in standby, it has little details to check. Even the best (ideal) scenario, with a third datacenter, can be tough to sustain.

Here I will try to show one option that can help you and improve the reliability of your MAA/DG environment. At least, you will have more options to decide how to protect your database. Bellow, I show some details about how to configure and use multiple observers, but if you want to jump and see a little concern you can directly to the end of the post.


ZDLRA, since 2014

In Oracle Open World 2014 the Zero Data Loss Recovery Appliance (ZDLRA) was released and it changed MAA in many ways, but two principals: protection and backup. I watched the ZDLRA presentation and saw that matched with the needs that I had that time.

After OOW in 2014 I started the project (all phases, from conception, requirements until deployments and usage) that become (in 2015) the first ZDLRA installation in Brazil, and one of the first of the world too that use replicated ZDLRA to protect both sites (primary and standby) and many levels of databases (PRO, TST, DEV). The Oracle MAA at its finest was amazing: ZDLRA + Exadata + DG; everything integrated to protect both sites.

Because of the high design level of the project it was chosen to be one of the main presentation in Oracle Open World 2015 about ZDLRA, you can find the link of the presentation that I made together with ZDLRA dev team here. As told before, in this project was integrated two ZDLRA, two Exadata and DG to reach ZERO Recover Point Objective (RPO) and Recovery Time Objective (RTO) and beside that, reduce backup time. You can see the presentation to check the scope and other details.


DML over Standby for Active Data Guard in 19c

With the new 19c version the Data Guard received some attention and now we can do DML over the standby and it will be redirect to primary database. It is not hard to implement, but unfortunately there is no much information about that in the docs about that.

As training exercise I tested this new feature and want to share some information about that. First, the environment that I used (and the requirements too):

  • Primary and Standby databases running 19c.
  • Data Guard in Maximum Availability .
  • Active Data Guard enabled.

Remember that the idea of DML over the standby it is to use in some cases where your reporting application need to update some tables and few records (like audit logins) while processing the data in the standby. The volume of DML is (and will be) low. At this point there is no effort to allow, or create, a multiple active-active datacenters/sites for your database. If you start to execute a lot of DML in the standby side you can impact the primary database and you adding the fact that you can maximize the problems for locks and concurrency.


Exadata X8, Second look

Every year Oracle arrives and release new version of Exadata with a plenty of new things. We have the natural evolution from hardware (more memory, more cpu…) and sometimes news features from software side. The point for this post today it is not about the HW and SW things, but something is hidden in the small lines of the new X8.


Observer, Where?

Some months ago I got one error with Oracle Data Guard and now I had time to review it again and write this article. Just to be clear since the begin, the discussion here it is not about the error itself, but about the circumstances that generated it.

The environment described here follow, at least, the most common best practices for DG by Oracle. Have 1 dedicated server for each one: Primary Database, Physical Standby Database and Observer. The primary and standby resides in different datacenters in different cities, dedicated network for interconnect between sites, protection mode was Maximum Availability and runs with Fast-Start Failover enabled (with 30 seconds for threshold). The version here is 12.2, but will be the same for 19c. So, nothing so bad in the environment, basic DG configuration trying to follow the best practices.


Reaching Exadata 18c

Here I cover in raw, undocumented and uncommented mode the process to update and upgrade your Exadata using the last version of everything. AND since Oracle 18c was released to use with Oracle Exadata (from SQL Maria), this post include the Oracle 18c upgrade for Grid Infrastructure and Oracle database binaries installation.

Since one friend was decommissioning one old Exadata X2 (running after the end of life), I used to do some tests and here you will find the commands, outputs, images that I use to (in order):

  • Apply the patch for Oracle Grid Infrastructure 12.1.
  • Update the Infiniband switches to last version 2.2.7-1.
  • Apply the patch for Exadata Storage Server using the last version,
  • Apply the patch for Exadata Database Servers using the last version,
  • Upgrade the Oracle Grid Infrastructure 12.1 to Grid Infrastructure 12.2, applying PSU at same time.
  • Upgrade the Oracle Grid Infrastructure 12.2 to Oracle Grid Infrastructure 18c.
  • Install Oracle database binaries for Oracle Database 18c and Create a test Oracle Rac Instance.

Continue lendo…

To infinity and beyond

First, I need to sorry about the long delay since my last update. The last one was in 03/August/2015, so, more than 2 years without news. But I can’t complain about that, was a really busy time here:

  • Oracle Zero Data Loss Recovery Appliance (ZDLRA) deployment: two of them in the end of 2015 and begin of 2016 and working together with two Oracle Exadata to build DR site and reaching RPO and RTO zero. First ZDLRA of Brazil, second in American Latina and one of the first of world to achieve this kind of level.
  • Oracle Open World: linked with the first topic. Because of the size of the project and high complexity of the project I was speaker (together with ZDRLA dev team) in Oracle Open World SFO 2015. Link for presentation here.
  • DR site: specify/implement/deploy/etc DR site during 2015 and 2016, EXA+EXA+DG+ZDLRA+RPO+RTO. So, busy work that unfortunately is not plug and play.
  • Exadata: New deployments to achieve more throughput/performance

For life:

  • Big Move: at the end of 2017 I moved from Brazil to work with a new challenge as DBA in Europe, Luxembourg at eProseed (
  • Family: Family increased, basically 1+1=3 (and this count is correct, don’t worry).

I promise to update more constantly here. Stay tuned!

Aplicando Patch no Exadata

O appliance Oracle Exadata é uma das tecnologias mais modernas para banco de dados Oracle, a união de Hardware e Software. Mas este software precisa ser atualizado de tempos em tempos você precisa aplicar o patch.

O time de Engineered Systems da Oracle disponibiliza os updates para serem aplicadas em toda a pilha: do Exadata Software aos binários do banco de dados. É tarefa do DMA acompanhar isso e deixar seu ambiente atualizado, muitas vezes (aqui no Brasil) estes updates são aplicados pelo time de ACS da Oracle, mas nada impede que você mesmo faça isso.

Este é o foco destes artigos, vou mostrar como proceder com um update completo do Oracle Exadata: Exadata Software, Infiniband, Linux, Update do Grid 11GR2 para 12C e Aplicação de BP nos binários do banco. Eu já descrevi sobre isso no meu blog a uns 3 anos atrás (aqui e aqui), mas muita coisa mudou desde aquela época.


De qualquer forma, antes de começar qualquer update (Oracle Exadata ou não) temos que planejar, verificar qual a versão que estamos e qual queremos aplicar.

Para o Oracle Exadata temos uma nota que contempla tudo isso e que é o início de qualquer update: Exadata Database Machine and Exadata Storage Server Supported Versions (Doc ID 888828.1). Nesta nota estão todas as informações importantes como documentação, as versões existentes, versões recomendadas e matriz de compatibilidade entre Exadata Software e binários do banco.

Então, o primeiro passo é o planejamento, ler e compreender esta nota, principalmente com as versões disponíveis e quais serão aplicadas. Outro ponto fundamental do planejamento é conhecer o seu ambiente, no meu caso a imagem que tenho aqui é a

No tópico Exadata Storage Server 12c da nota identificamos que a última versão e que será aplicada aqui é a (image version e composta pelos seguintes patches e docs:

  • Patch 20748218 – Storage server e InfiniBand
  • Patch 21151982 – Database server (para quem não utiliza OVM)
  • Readme – Note 2014306.1

Na mesma nota temos as versões do Grid Infrastructure e dos bancos de dados que são compatíveis com as imagens do Exadata. Como o meu planejamento inclui atualizar tudo para a última versão estes também serão atualizados.

Através da nota os seguintes updates serão realizados (e demonstrados aqui nestes artigos):

  • Update da imagem para a do Exadata (storage e bancos)
  • Upgrade da versão BP 6 do Grid para a versão BP 9
  • Update da versão BP6 do banco de dados para a versão BP 16

Pensando no appliance Oracle Exadata e na relação entre seus componentes o primeiro ponto a ser atualizado é a própria imagem do Exadata Storage Server (Linux, Exadata Software). Depois temos switchs Infiniband. Na sequência temos o update dos Database Servers e seus componentes (Grid e os binários do banco de dados).

Antes de iniciar o update precisamos montar o plano de atualização, qual a ordem de instalação dos patches. Isso só pode ser feito lendo todos os Readmes dos patches que vamos aplicar. Lendo o Readme do Patch 20748218 e Patch 21151982 descobrimos que existem dois métodos possíveis para atualizar o Database Server.

O primeiro é através da imagem ISO que acompanha o Patch 21151982 e o segundo é através da criação do repositório Exadata local. Este último método é o que utilizarei aqui, ele tem algumas vantagens que descreverei em detalhes depois mas é importante entender como funciona. Basicamente você cria um repositório local com os rpm’s que serão aplicados (os mesmo presentes na ISO). Infelizmente esta criação pode demorar um pouco e por isso será o primeiro procedimento a ser realizado.

Através da leitura de todas as notas do MOS envolvidas e de todos os Readmes dos patches aplicados o seguinte plano foi criado:

  1. Criação do repositório Exadata para Database Server
  2. Update do Storage Server e Switch Infiniband
  3. Update do Database Server
  4. Upgrade do GRID para 12C e Instalação dos binários 12C
  5. Update dos binários para o BP16

Abaixo a descrição detalhas de cada uma destas etapas acima listadas.

A última atualização deste artigo foi em 03/08/2015.

Patch Storage Server e Infiniband

O procedimento descrito aqui contempla a atualização da imagem para a imagem do Oracle Exadata. Aqui estão descritos os procedimentos para o update do Storage Server e Switch Inifiband.

Primeiro Passo Principal

O primeiro passo de qualquer update para Oracle Exadata é ler o Readme da versão e ler o tópico “Know Issues” que lista todos os possíveis erros que você pode encontrar. Isso não quer dizer que outros erros não podem acontecer, mas você tem um local com a solução dos erros conhecidos. Então leia a Nota 2014306.1.

Continue lendo…

Repositório para o patch do Exadata

Criar o repositório do yum para atualizar o Oracle Exadata não é um requisito do procedimento, já faz algum tempo que os patches do Oracle Exadata contêm uma imagem ISO com todos os arquivos necessários. Criar ou não o repositório depende dos seus requisitos e do que você pretende fazer.

Utilizei o repositório local para que eu possa ter mais flexibilidade no futuro. Assim, poderei usar o mesmo repositório em outros updates e outras atualizações de OEL que não são do Exadata. Se você não vai utilizar o repositório a única opção é o arquivo ISO e você não precisa dos passo descritos aqui neste artigo.

Se você ler o Readme do patch 21151982 (“Database server bare metal / domU ULN exadata_dbserver_12. OL6 channel ISO image”) verá que os passos para criação do repositório não estão descritos mas sim uma referência ao manual do Oracle Exadata, especificamente ao tópico “Preparing and Populating the yum Repository with the Oracle Exadata Channel Content”. É com base nestes que vou criar o meu repositório.

Continue lendo…