Database Configuration Assistant (DBCA)
O que é o DBCA?
O Database Configuration Assistant (DBCA) é uma ferramenta gráfica da Oracle que facilita a criação, configuração, e exclusão de bancos de dados. É a forma mais comum e recomendada de criar um banco de dados Oracle.
Funcionalidades do DBCA:
- Criar Banco de Dados: Usando templates ou configuração customizada
- Configurar Opções: Modificar parâmetros de bancos existentes
- Excluir Banco: Remover completamente um banco e seus arquivos
- Gerenciar Templates: Criar templates personalizados para padronização
- Gerenciar Pluggable Databases (PDBs): Em bancos multitenant (12c+)
Iniciando o DBCA
# Modo gráfico
dbca
# Modo silencioso (sem interface gráfica)
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName ORCL \
-sid ORCL \
-sysPassword SysPass123 \
-systemPassword SystemPass123
Passos da Criação com DBCA (Modo Gráfico)
Operação
Selecione "Create a database"
Modo de Criação
Advanced Configuration (mais controle) ou Typical Configuration (rápido)
Template
General Purpose, Data Warehouse, ou Custom Database
Identificação
Global Database Name e SID (ex: PROD.empresa.com e PROD)
Localização de Armazenamento
File System ou ASM (Automatic Storage Management)
Configuração de Recovery
Fast Recovery Area, Archive Mode
Componentes
Oracle Sample Schemas, Oracle JVM, Oracle Text, Oracle Spatial
Parâmetros de Memória
SGA, PGA, Memory Management (AMM ou ASMM)
Character Set
AL32UTF8 (padrão, Unicode), WE8ISO8859P1 (Latin-1)
Senhas
Senha única para todos ou senhas individuais (SYS, SYSTEM, DBSNMP)
Templates do DBCA
Tipos de Templates
O DBCA oferece templates pré-configurados que aceleram a criação de bancos de dados com características específicas. Há dois tipos: templates com estrutura e templates sem estrutura.
Templates com Estrutura
Contêm datafiles pré-criados. A criação é muito rápida pois apenas copia os arquivos.
- Seed Database Template
- Criação em minutos
- Menos flexibilidade
Templates sem Estrutura
Apenas definições de configuração. DBCA executa CREATE DATABASE completo.
- General Purpose, Data Warehouse
- Criação mais demorada
- Máxima flexibilidade
General Purpose or Transaction Processing
Template mais comum. Otimizado para ambientes OLTP (Online Transaction Processing) com muitas transações pequenas e rápidas. Equilibra memória e desempenho.
Data Warehouse
Otimizado para análise de dados (OLAP). Foca em consultas complexas sobre grandes volumes de dados. Maior buffer cache, sort areas maiores.
Custom Database
Template em branco. Você define todos os parâmetros manualmente. Útil para requisitos muito específicos.
Criando um Template Personalizado
Você pode criar seus próprios templates para padronizar criação de bancos em sua organização.
# Criar template a partir de banco existente
dbca -silent -createTemplateFromDB \
-sourceDB ORCL \
-templateName MeuTemplate \
-sysDBAUserName sys \
-sysDBAPassword SysPass123
# Criar template a partir de template existente (modificado)
dbca -silent -createTemplate \
-templateName NovoTemplate \
-sourceTemplate General_Purpose.dbc
# Templates ficam armazenados em:
ls -lh $ORACLE_HOME/assistants/dbca/templates/
DBCA em Modo Silencioso
Criação Automatizada
O modo silencioso permite criar bancos de dados via linha de comando, ideal para scripts e automação.
# Exemplo completo de criação silenciosa
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName PROD \
-sid PROD \
-sysPassword OracleSys123 \
-systemPassword OracleSys123 \
-datafileDestination /u02/oradata \
-recoveryAreaDestination /u03/fra \
-storageType FS \
-characterSet AL32UTF8 \
-nationalCharacterSet AL16UTF16 \
-totalMemory 4096 \
-databaseType MULTIPURPOSE \
-emConfiguration NONE
# Criar com mais opções
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName DEV.empresa.local \
-sid DEV \
-createAsContainerDatabase true \
-numberOfPDBs 2 \
-pdbName PDB \
-pdbAdminPassword PdbPass123 \
-sysPassword SysPass123 \
-systemPassword SysPass123 \
-datafileDestination /u02/oradata \
-redoLogFileSize 100 \
-recoveryAreaDestination /u03/fra \
-recoveryAreaSize 10240 \
-storageType FS \
-memoryMgmtType AUTO_SGA \
-totalMemory 2048 \
-databaseType OLTP \
-automaticMemoryManagement false \
-characterSet AL32UTF8 \
-nationalCharacterSet AL16UTF16 \
-listeners LISTENER \
-sampleSchema true \
-emConfiguration NONE
Excluir Banco com DBCA
# Excluir banco de dados (modo silencioso)
dbca -silent -deleteDatabase \
-sourceDB TESTDB \
-sid TESTDB \
-sysDBAUserName sys \
-sysDBAPassword SysPass123
# Modo gráfico
dbca
# Selecione "Delete a database" e escolha o banco
CREATE DATABASE Manual
Criação Manual do Banco de Dados
Para máximo controle, você pode criar um banco de dados manualmente usando o comando CREATE DATABASE. É mais complexo, mas permite entender exatamente o que o DBCA faz nos bastidores.
⚠️ Quando Criar Manualmente?
- Requisitos muito específicos não suportados pelo DBCA
- Ambientes automatizados com scripts personalizados
- Aprendizado profundo da arquitetura Oracle
- Troubleshooting de problemas do DBCA
Etapas da Criação Manual:
1. Criar Diretórios
mkdir -p /u02/oradata/MANUALDB
mkdir -p /u03/fra/MANUALDB
mkdir -p /u01/app/oracle/admin/MANUALDB/adump
2. Criar Arquivo de Parâmetros (initMANUALDB.ora)
cat > $ORACLE_HOME/dbs/initMANUALDB.ora <
3. Definir Variável de Ambiente e Iniciar Instância
export ORACLE_SID=MANUALDB
sqlplus / as sysdba <
4. Executar CREATE DATABASE
CREATE DATABASE MANUALDB
USER SYS IDENTIFIED BY SysPass123
USER SYSTEM IDENTIFIED BY SystemPass123
LOGFILE GROUP 1 ('/u02/oradata/MANUALDB/redo01a.log',
'/u02/oradata/MANUALDB/redo01b.log') SIZE 100M,
GROUP 2 ('/u02/oradata/MANUALDB/redo02a.log',
'/u02/oradata/MANUALDB/redo02b.log') SIZE 100M,
GROUP 3 ('/u02/oradata/MANUALDB/redo03a.log',
'/u02/oradata/MANUALDB/redo03b.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u02/oradata/MANUALDB/system01.dbf' SIZE 500M REUSE AUTOEXTEND ON
SYSAUX DATAFILE '/u02/oradata/MANUALDB/sysaux01.dbf' SIZE 500M REUSE AUTOEXTEND ON
DEFAULT TABLESPACE users
DATAFILE '/u02/oradata/MANUALDB/users01.dbf' SIZE 100M REUSE AUTOEXTEND ON
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/u02/oradata/MANUALDB/temp01.dbf' SIZE 100M REUSE AUTOEXTEND ON
UNDO TABLESPACE undotbs1
DATAFILE '/u02/oradata/MANUALDB/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON;
5. Executar Scripts Pós-Criação
-- Criar dicionário de dados
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
-- Criar views do dicionário para usuário SYSTEM
CONNECT SYSTEM/SystemPass123
@?/sqlplus/admin/pupbld.sql
-- Habilitar modo ARCHIVELOG (opcional, mas recomendado)
CONNECT / AS SYSDBA
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
-- Criar SPFILE a partir do PFILE
CREATE SPFILE FROM PFILE='$ORACLE_HOME/dbs/initMANUALDB.ora';
-- Verificar criação
SELECT name, open_mode, log_mode FROM v$database;
SELECT tablespace_name, status FROM dba_tablespaces;
Script Completo de Criação Manual
Script consolidado para criar um banco manualmente:
#!/bin/bash
# create_manual_db.sh
export ORACLE_SID=MANUALDB
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
# Criar diretórios
mkdir -p /u02/oradata/MANUALDB
mkdir -p /u03/fra/MANUALDB
mkdir -p /u01/app/oracle/admin/MANUALDB/adump
# Criar PFILE
cat > $ORACLE_HOME/dbs/initMANUALDB.ora <<'EOF'
db_name=MANUALDB
db_block_size=8192
memory_target=2G
processes=300
open_cursors=300
undo_tablespace=UNDOTBS1
control_files=(/u02/oradata/MANUALDB/control01.ctl,/u02/oradata/MANUALDB/control02.ctl)
db_recovery_file_dest=/u03/fra
db_recovery_file_dest_size=10G
compatible=19.0.0
audit_file_dest=/u01/app/oracle/admin/MANUALDB/adump
EOF
# Criar banco
sqlplus / as sysdba <<'EOSQL'
STARTUP NOMOUNT;
CREATE DATABASE MANUALDB
USER SYS IDENTIFIED BY SysPass123
USER SYSTEM IDENTIFIED BY SystemPass123
LOGFILE GROUP 1 ('/u02/oradata/MANUALDB/redo01.log') SIZE 100M,
GROUP 2 ('/u02/oradata/MANUALDB/redo02.log') SIZE 100M,
GROUP 3 ('/u02/oradata/MANUALDB/redo03.log') SIZE 100M
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/u02/oradata/MANUALDB/system01.dbf' SIZE 500M AUTOEXTEND ON
SYSAUX DATAFILE '/u02/oradata/MANUALDB/sysaux01.dbf' SIZE 500M AUTOEXTEND ON
DEFAULT TABLESPACE users DATAFILE '/u02/oradata/MANUALDB/users01.dbf' SIZE 100M AUTOEXTEND ON
DEFAULT TEMPORARY TABLESPACE temp TEMPFILE '/u02/oradata/MANUALDB/temp01.dbf' SIZE 100M
UNDO TABLESPACE undotbs1 DATAFILE '/u02/oradata/MANUALDB/undotbs01.dbf' SIZE 200M AUTOEXTEND ON;
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
CONNECT SYSTEM/SystemPass123
@?/sqlplus/admin/pupbld.sql
CONNECT / AS SYSDBA
CREATE SPFILE FROM PFILE;
SHUTDOWN IMMEDIATE;
STARTUP;
SELECT name, open_mode FROM v$database;
EOSQL
echo "Database MANUALDB created successfully!"
Resultado Esperado
O que você deve dominar após este tópico:
Criar banco com DBCA
Usar interface gráfica e modo silencioso
Escolher templates apropriados
General Purpose, Data Warehouse, Custom
Configurar parâmetros essenciais
Memória, character set, storage, recovery
Criar banco manualmente
Usar CREATE DATABASE para máximo controle
Executar scripts pós-criação
catalog.sql, catproc.sql, pupbld.sql
Gerenciar templates
Criar templates personalizados para padronização