Pular para o conteúdo

DBCA Linha de Comando: Crie um banco de dados Oracle em cluster utilizando a interface de linha de comando

DBCA linha de comando

Ao longo dos anos, cada vez mais, nós DBA’s estamos administrando bases de dados em Datacenters remotos e quase sempre a interface gráfica neste molde de suporte fica prejudicada devido a diversos fatores como, lentidão, bloqueios e etc. Pensando nisso, a Oracle fornece uma interface de linha de comando para a maioria de seus utilitários gráficos como o OUI (Oracle Universal Installer), o DBCA (Database Configuration Assistant, que veremos neste artigo), NETCA (Net Easy Configuration Assistant) entre outros.

Neste artigo iremos mostrar como criar um banco de dados Oracle em cluster utilizando a versão Oracle 11gR2 (11.2.0.3) em Real Application Clusters em um cluster Linux utilizando apenas a interface de linha de comando, ou seja, sem a necessitar redirecionar o X usando uma estação de trabalho Linux, ou utilizando um emulador como o Xming. 

DBCA – Visão geral

O Database Configuration Assistant, ou simplesmente DBCA como costumamos chamar tem ajudados DBA’s a realizarem diversas tarefas de gerenciamento de suas bases de dados é uma das maneiras mais fáceis de se criar uma base de dados Oracel. O DBCA pode ser executado juntamente com a instalação dos binários de uma instalação do banco de dados Oracle ou também separadamente depois dos produtos instalados para gerenciar as instances de banco de banco de dados single ou em cluster.

O DBCA lhe permite criar um database, configurar algumas opções de um instancia existente, deletar uma instância existente ou até mesmo criar um gabarito (template) para criação de futuros bancos de dados, você pode copiar este template entre instalações em sua infraestrutura.

Na figura abaixo podemos ver o DBCA sendo invocado como parte da instalação do banco de dados. Se escolher as opções default de instalação, irá executar dessa maneira.

DBCA Linha de Comando

Na figura abaixo, podemos verificar a execução do utilitário DBCA separadamente:

http://3.bp.blogspot.com/_FgrxeU6xYKM/S5ZWf12rjsI/AAAAAAAAB4Q/h-NAF49KKP0/s1600/dbca_2010-02-03_165530.jpg

Problema

Seu gerente lhe deu a tarefa de criar um database em uma instalação remota em RAC e você não tem acesso a modo gráfico para utilizar o DBCA graficamente e você tem prazo curto para execução, digamos 30min. Com este tempo, creio que não tem tempo hábil para a configuração  e testar um script de criação do database via SQL;  “Você sabia que é possível criar um banco de dados via comando SQL? Sim, é possível, verdade que é um pouco mais complexo do que apertar botões em uma GUI, porém é muito mais eficiente quando se sabe o que deseja.”

Solução

Neste artigo irei mostrar a linha de comando utilizada para realizar essa tarefa utilizando a interface de linha de comando do Oracle 11gR2 (11.2.0.3) em RAC e irei explicar cada um dos parâmetros do comando executado.

Para quem já criou um banco de dados, gerenciou templates ou utilizou o DBCA anteriormente verá que seria o mesmo que ir respondendo as perguntas que a GUI lhe faz. Irei demostrar passando parâmetros direto na linha comando, porém para efeitos de segurança é melhor que utilize um Response File para evitar mostrar senhas no shell do Linux.

DBCA Linha de comando

Segue abaixo a linha de comando que é um pouco extensa, porém muito simples e para quem já está acostumado com a utilização da interface gráfica vai ser de fácil compreensão:

$ORACLE_HOME/bin/dbca -silent \
-createDatabase \
-templateName  'General_Purpose.dbc' \
-adminManaged \
-emConfiguration NONE \
-gdbName 'ORCL' \
-sid 'ORCL' \
-sysPassword ABC123 \
-systemPassword ABC123 \
-asmSYSPassword ABC123 \
-asmsnmpPassword ABC123 \
-storageType ASM \
-diskGroupName DATA \
-datafileJarLocation $ORACLE_HOME/assistants/dbca/templates \
-nodelist 'node01,node02' \
-characterset WE8MSWIN1252 \
-obfuscatedPasswords false \
-sampleSchema false \
-oratabLocation /etc/oratab \
-initParams db_unique_name=ORCL,processes=7000,db_name=ORCL \
-listeners LISTENER

Agora iremos descrever cada etapa do comando linha por linha para melhor entendimento

$ORACLE_HOME/bin/dbca -silent – Essa é a parte onde eu digo a utilitário para ele rodar em modo silencioso, ou seja, sem abrir a tela em java do utilitário,  se eu fosse usar um arquivo de respostas bastaria  usar da mesma forma que antes, porém  acrescido do parâmetro –ResponseFile, dessa forma $ORACLE_HOME/bin/dbca -silent

  • ResponseFile </Path/Arquivo/Respostas>
  • createDatabase  – Essa é a opção que digo o que o DBCA deve fazer, como vimos anteriormente ele pode executar algumas outras tarefas.
  • templateName  ‘General_Purpose.dbc’ — Essa é a opção que digo o para o DBCA criar um database a partir de um template, neste caso, o escolhido foi o General Purpose, poderia ter sido outro, na instalação default o Oracle fornece também o template Data_Warehouse.dbc.
  • adminManaged – Nesta opção eu disse ao DBCA para deixar o gerenciamento de recursos por conta do DBA, com o Oracle 11g foi introduzido a funcionalidade Policy Managed. A diferença é a seguinte:

Administrator-managed: Os DBA’s definem em que servidor uma instance deve rodar e vai gerenciando os recursos manualmente conforme a necessidade. Essa era a estratégia de gerenciamento de recursos em releases anteriores a Oracle 11gR2.

Policy managed: Os DBA’s Database escolhem em que server pool os recursos de banco de dados irão rodar. O Oracle Clusterware é responsável para gerir os recursos nos hosts daquele pool.

  • emConfiguration NONE – Como este banco de dados foi criado apenas para efeito de estudos, não especifiquei que ele irá criar o EM Manager Console como parte da criação do banco de dados, se precisar eu posso utilizar outro utilitário chamado EMCA (Enterprise Manager Configuration Assistant) para criar e configurar o EM Console para esta instance.
  • gdbName ‘ORCL’ – Este parâmetro é o Database Global Name
  • sid ‘ORCL’ – Este parâmetro é o SID
  • sysPassword ABC123 – Senha do usuário SYS
  • systemPassword ABC123  – Senha do usuário SYSTEM
  • asmSYSPassword ABC123  – Senha do usuário ASMSYS
  • asmsnmpPassword ABC123  – Senha do usuário ASMSNMP
  • storageType ASM  – Neste parâmetro eu informo que irei utilizar ASM como localização dos database files. O Oracle Automatic Storage Management (ASM) é o cluster file system da própria Oracle, padrão para o Oracle RAC SE que foi introduzido no Oracle 10g, porém ele é tão bom e com excelente performance que muitas instalações que utilizam RAC e até bancos de dados single instance armazenam seus database files em uma instance ASM. A Oracle vem melhorando cada vez mais este produto.
  • diskGroupName DATA — Neste parâmetro eu digo qual o DISKGROUP que eu utilizarei para este banco de dados, previamente você deve ter criado este diskgroup utilizando uma outra ferramenta muito útil introduzida no Oracle 11g chamada Oracle ASM Configuration Assistant (ASMCA).
  • datafileJarLocation $ORACLE_HOME/assistants/dbca/templates – Neste parâmetro informamos o caminho onde o Oracle irá buscar os arquivos base do template Seed_Database.ctl e o Seed_Database.ctl para fazer uma espécie de restore de base de dados.
  • nodelist ‘node01,node02’ –Neste parâmetro eu digo ao DBCA em quais nodes do meu cluster ele vai criar instances e gerenciar
  • characterset WE8MSWIN1252 – Neste parâmetro eu informo qual o Charcterset do  banco de dados a ser criado.
  • obfuscatedPasswords false – Nesta opção eu digo para o DBCA não utilizar de Wallets para gerenciamento de passwords
  • sampleSchema false – Nesta opção eu digo ao DBCA para não instalar os schemas de exemplo (HR/OE/SCOTT e outros)oratabLocation /etc/oratab – Nesta opção eu digo ao DBCA qual a localização do oratab.
  • initParams db_unique_name=ORCL,processes=7000,db_name=ORCL – Podemos modificar alguns parâmetros de inicialização no momento de criação da instance, no nosso caso, processes e db_name.
  • listeners LISTENER – Nesta opção dizemos ao DBCA usar o listener com nome de LISTENER.

DBCA Linha de comando exemplo de uso

[oracle@oel62-11g ~]$ $ORACLE_HOME/bin/dbca -silent -createDatabase -templateName  'General_Purpose.dbc' -adminManaged -emConfiguration NONE -gdbName 'ORCL' -sid 'ORCL' -sysPassword ABC123 -systemPassword ABC123 -asmSYSPassword ABC123 -asmsnmpPassword ABC123 -storageType ASM -diskGroupName DATA -datafileJarLocation $ORACLE_HOME/assistants/dbca/templates -nodelist 'node01,node02' -characterset WE8MSWIN1252 -obfuscatedPasswords false -sampleSchema false -oratabLocation /etc/oratab -initParams db_unique_name=ORCL,processes=7000,db_name=ORCL -listeners LISTENER

Copying database files
1% complete
3% complete
30% complete
Creating and starting Oracle instance
32% complete
36% complete
40% complete
44% complete
45% complete
48% complete
50% complete
Creating cluster database views
52% complete
70% complete
Completing Database Creation
73% complete
76% complete
85% complete
94% complete
100% complete

Look at the log file "/oracle/app/product/cfgtoollogs/dbca/ORCL/ORCL.log" for further details.

Conferindo recursos do cluster

[oracle@oel62-11g ~]$ crs_stat -t

Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    node01  
ora.GRDINF.dg  ora....up.type ONLINE    ONLINE    node01  
ora....ER.lsnr ora....er.type ONLINE    ONLINE    node01  
ora....N1.lsnr ora....er.type ONLINE    ONLINE    node02  
ora....N2.lsnr ora....er.type ONLINE    ONLINE    node01  
ora....N3.lsnr ora....er.type ONLINE    ONLINE    node01  
ora.asm        ora.asm.type   ONLINE    ONLINE    node01  
ora....SM1.asm application    ONLINE    ONLINE    node01  
ora....01.lsnr application    ONLINE    ONLINE    node01  
ora....i01.gsd application    OFFLINE   OFFLINE               
ora....i01.ons application    ONLINE    ONLINE    node01  
ora....i01.vip ora....t1.type ONLINE    ONLINE    node01  
ora....SM2.asm application    ONLINE    ONLINE    node02  
ora....02.lsnr application    ONLINE    ONLINE    node02  
ora....i02.gsd application    OFFLINE   OFFLINE               
ora....i02.ons application    ONLINE    ONLINE    node02  
ora....i02.vip ora....t1.type ONLINE    ONLINE    node02  
ora.cvu        ora.cvu.type   ONLINE    ONLINE    node01  
ora.glipod.db  ora....se.type ONLINE    ONLINE    node01  
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE               
ora....network ora....rk.type ONLINE    ONLINE    node01  
ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    node01  
ora.ons        ora.ons.type   ONLINE    ONLINE    node01  
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    node02  
ora.scan2.vip  ora....ip.type ONLINE    ONLINE    node01  
ora.scan3.vip  ora....ip.type ONLINE    ONLINE    node01

Conferindo recursos do database no cluster

[oracle@oel62-11g ~]$ srvctl config database –d ORCL

srvctl config database -d ORCL
Database unique name: ORCL
Database name: ORCL
Oracle home: /oracle/app/product/11203/db_1
Oracle user: oracle
Spfile: +DATA/ORCL/spfileORCL.ora
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: ORCL
Database instances: ORCL1,ORCL2
Disk Groups: DATA
Mount point paths: 
Services: 
Type: RAC
Database is administrator managed

Conferindo database files criados no DG +DATA

[oracle@oel62-11g ~]$ sqls
SQL*Plus: Release 11.2.0.3.0 Production on Fri Oct 17 18:41:32 2014
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
+DATA/orcl/datafile/users.277.861020021
+DATA/orcl/datafile/undotbs1.256.861020021
+DATA/orcl/datafile/sysaux.257.861020019
+DATA/orcl/datafile/system.264.861020019
+DATA/orcl/datafile/undotbs2.396.861020113

Referências

Rodrigo Mufalani

Rodrigo Mufalani

É um Oracle ACE member e Oracle Certified Master (OCM) com 15 anos de experiência, começou com o Oracle 8i, mas teve a oportunidade de dar suporte a Oracle 7.3.4 em diante. É especialista em banco de dados Oracle com foco principal em Engineered Systems, Performance & Tuning e RAC. Ele é fundador e presidente e também palestrante do Luxembourg Oracle User Group. É palestrante em eventos de Oracle como: OTN LAD TOUR e OTN EMEA TOUR e outros. Atualmente trabalha como Principal DB Architect na eProseed Europe. Foi o terceiro Oracle ACE a ser nomeado no Brasil. Twitter @mufalani / blog Mufalani.worpress.com

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Marcações:
plugins premium WordPress