Criando um Database utilizando DBCA em Silent Mode

A ferramenta gráfica DBCA (Database Configuration Assistant) normalmente é utilizada para criar, modificar ou mesmo excluir um banco de dados. Mas podem haver momentos em que o uso da interface gráfica não seja possível, seja inviável ou até mesmo que você não queira utilizar da ferramenta gráfica (para uma criação rápida de um banco utilizando um template, por exemplo).

Para esses momentos, o DBCA (e praticamente todos as ferramentas que envolvam a administração de bancos de dados Oracle) te permite utilização sem o acionamento da UI (User Interface), através do modo silencioso (silent mode).

Neste artigo vamos explorar a criação de um banco de dados standalone cujos datafiles são armazenados no disco local.



Em um artigo futuro, vamos exploraremos a criação de um banco de dados RAC utilizando o DBCA.

Para a criação de um banco de dados através do DBCA em modo silencioso (silent mode) é utilizado o argumento "-silent" como um parâmetro durante a execução do DBCA. Outros parâmetros incluem o global database name, nome da instância, localização dos datafiles, qual template a ser utilizado para a criação do bd e etc.

Muitos dos parâmetros são opcionais e podem ser ignorados, porém, caso não informe algum dos parâmetros obrigatórios o DBCA irá perguntar qual valor utilizar durante sua execução.

Também podemos utilizar um arquivo de resposta (Reponse File), que conterá todos os argumentos a serem utilizados durante a execução do DBCA, o que facilita quando há a necessidade de criar muitos bancos parecidos, onde são alterados apenas alguns dos aspectos individuais de cada novo database.



dbca -createDatabase -responseFile /localizacao/do/arquivo.rsp

Criando um novo Banco de Dados utilizando DBCA em Silent Mode

Abaixo há uma explicação de cada um dos argumentos utilizados em nosso exercício:

-silent 
Instrui o DBCA a rodar em modo silencioso (Silent Mode)

-createDatabase
Informa ao DBCA que estamos criando um novo banco de dados.

-templateName
Informa ao DBCA qual template a ser utilizado na criação do novo banco de dados. O Template General_Purpose é um template default, já existente na biblioteca do DBCA.

A vantagem da utilização de templates é que você não precisa especificar as muitas outras opções para a criação do banco, como a localização dos datafiles e controlfiles por exemplo.

O DBCA irá pegar esses valores do template e, caso você informe algum parâmetro diferente dos que existem no template, fará com que o DBCA utilize o valor do argumento passado por você, ignorando o que está no template.

-gdbname
O Global Database Name de nosso novo banco de dados.

-sid
O nome da instância que será criada e iniciada durante o processo.

-responseFile
Informamos ao DBCA que não vamos utilizar um response file

-characterSet
Estamos utilizando o characterSet AL32UTF8.

-totalMemory
O Total de memória que será alocada (em MB) para este novo banco de dados.

-emConfiguration
Informamos ao DBCA que não queremos que o serviço do Enterprise Manager seja iniciado.

*Verifique ao final deste artigo uma lista com todos os argumentos que podem ser utilizados na criação do banco.


[oracle@localhost dbhome_1]$ export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
[oracle@localhost dbhome_1]$ export ORACLE_BASE=/u01/app/oracle[oracle@localhost dbhome_1]$ 
[oracle@localhost dbhome_1]$ dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname STUDYDB -sid STUDYDB -responseFile NO_VALUE -characterSet AL32UTF8 -totalMemory 500 -emConfiguration NONE
Enter SYS user password: 
 
Enter SYSTEM user password: 
 
Copying database files
1% complete
3% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/STUDYDB/STUDYDB.log" for further details.

Lista de parâmetros utilizados na criação de um novo banco de dados com DBCA:


[oracle@localhost ~]$ dbca -help

dbca  [-silent | -progressOnly] {<command> <options> }  | { [<command> [options] ] -responseFile  <response file > } [-continueOnNonFatalErrors <true | false>]

 <command> : -createDatabase | -configureDatabase | -createTemplateFromDB | -createCloneTemplate | -generateScripts | -deleteDatabase | -createPluggableDatabase | -unplugDatabase | -deletePluggableDatabase | -configurePluggableDatabase



[oracle@localhost ~]$ dbca -createDatabase -help
Create a database by specifying the following parameters:
 -createDatabase
  -templateName <name of an existing template in default location or the complete template path>
  [-cloneTemplate]
  -gdbName <global database name>
  [-ignorePreReqs] <ignore prerequisite checks for current operation>
  [-sid <database system identifier>]
  [-createAsContainerDatabase <true|false>]
   [-numberOfPDBs <Number of Pluggable databases to be created, default is 0>]
   [-pdbName <New Pluggable Database Name>]
   [-pdbAdminPassword <PDB Administrator user Password, required only when creating new PDB>]
  [-sysPassword <SYS user password>]
  [-systemPassword <SYSTEM user password>]
  [-emConfiguration <DBEXPRESS|CENTRAL|BOTH|NONE>]
   -dbsnmpPassword     <DBSNMP user password>
   [-omsHost     <EM management server host name>
   -omsPort     <EM management server port number>
   -emUser     <EM Admin username to add or modify targets>
   -emPassword     <EM Admin user password>
   -emExpressPort     <EM Database Express port number>]]
  [-dvConfiguration <true | false Specify "true" to configure and enable Database Vault 
   -dvUserName     <Specify Database Vault Owner user name>
   -dvUserPassword     <Specify Database Vault Owner password>
   -dvAccountManagerName     <Specify separate Database Vault Account Manager >
   -dvAccountManagerPassword     <Specify Database Vault Account Manager password>]
  [-olsConfiguration <true | false Specify "true" to configure and enable Oracle Label Security >
  [-datafileDestination <destination directory for all database files.> | 
 -datafileNames <a text file containing database objects such as controlfiles, tablespaces, redo log files and spfile to their corresponding raw device file names mappings in name=value format.>]
  [-redoLogFileSize <size of each redo log file in megabytes>]
  [-recoveryAreaDestination <destination directory for all recovery files. Specify "NONE" for disabling Fast Recovery Area.>]
  [-datafileJarLocation  <location of the data file jar, used only for clone database creation>]
  [-storageType < FS | ASM > 
   [-asmsnmpPassword     <ASMSNMP password for ASM monitoring>]
    -diskGroupName   <database area disk group name>
    -recoveryGroupName       <recovery area disk group name>
  [-characterSet <character set for the database>]
  [-nationalCharacterSet  <national character set for the database>]
  [-registerWithDirService <true | false> 
   -dirServiceUserName    <user name for directory service>
   -dirServicePassword    <password for directory service >
   -walletPassword    <password for database wallet >]
  [-listeners  <list of listeners to configure the database with>]
  [-variablesFile   <file name for the variable-value pair for variables in the template>]]
  [-variables  <comma separated list of name=value pairs>]
  [-initParams <comma separated list of name=value pairs>]
  [-sampleSchema  <true | false> ]
  [-memoryPercentage <percentage of physical memory for Oracle>]
  [-automaticMemoryManagement <true | false> ]
  [-totalMemory <memory allocated for Oracle in MB>]
  [-databaseType <MULTIPURPOSE|DATA_WAREHOUSING|OLTP>]]

Share this:

SOBRE O AUTOR

Com uma década de experiẽncia em produtos Oracle como DBA e também Developer, pretendo, com esse blog, trocar experiências com você, leitor.