Ambiente Utilizado
Abaixo estão as principais caracteristicas do ambiente que será atualizado:
Servidores | ol6-ora121-rac1 | ol6-ora121-rac2 |
Database Name | CDBSP | CDBSP |
Instance Name | CDBSP1 | CDBSP2 |
GI Version | 12.1.0.2 | 12.1.0.2 |
Source Version | 11.2.0.4 | 11.2.0.4 |
Dest Version | 12.1.0.2 | 12.1.0.2 |
ASM Comp | 12.1.0.0.0 | 12.1.0.0.0 |
ASM DG Comp | 10.1.0.0.0 | 10.1.0.0.0 |
DB Comp | 11.2.0.0 | 1.2.0.0 |
SO | Red Hat 6.8 | Red Hat 6.8 |
Razões para se criar um CDB
Ferramentas Para se criar um novo CDB
OUI - O OUI pode criar uma base de dados durante a instalação de um novo binário, o que no final das contas o OUI acaba utilizando o DBCA para criar o banco de dados.
DBCA - É a ferramenta mais indicada para criar uma nova base de dados, ela irá atualizar qualquer outro arquivo do sistema operacional de forma automatica, se chamada fora do OUI aumenta muito o leque de opções o que flexibiliza muito a criação da base de dados.
SQL*Plus - É a ferramenta que possibilita total controle da criação da base de dados, além de todos os recursos do DBCA, também é possivel instalar o minimo de componentes necessários para uma base de dados, porém requer mais esforço que o DBCA.
Considerações Antes de se criar um CDB
- CHARACTER_SET - O Character Set deve ser escolhido com muito cuidado pois o Character-set dos PDBs devem ser "Sub-Set" do CDB, ou seja compátiveis, portanto, a recomendação da Oracle é que seja utilizado unicode como Character set do CDB.
- Componentes - Os componentes que podem ser utilizados em cada PDB também devem ser herdados do CDB, portanto na duvida considerar a lista de componentes mais abrangente possivel.
Sizing - No que diz respeito a parametrização e capacidade, pois os recursos são compartilhados entre todos os PDBs do CDB.
- Service Name - O Service Name utilizado para cada PDB deve ser unico dentro do Listener que é utilizado para ser registrado.
Criando um CDB através do DBCA
O DBCA é o metodo preferencial para se criar uma base de dados, houve algumas alterações e melhorias entre o DBCA do 11g para o 12c, mas a diferença entre a criação de um banco Non-CDB e um banco de dados CDB esta na opção de selectionar o banco de dados como CDB ou Non-CDB durante a sua criação, claro que dependendo da resposta de leva a uma ou outra etapada.
Segue:
Segue:
Criando um CDB com SQL*Plus
A criação do CDB é muito mais prático e fácil através do DBCA, porém ele também pode ser criado através do SQLPlus, uma das razões para se criar o CDB pelo SQLPlus é que podemos ter um controle maior dos componentes que serão instalados, podemos instalar somente aqueles componentes os quais realmente serão utilizados. Pensando um pouco, não achei essa abordagem muito legal pois o objetivo do CDB é a consolidação e os PDBs somente terão os componentes que o CDB também possuir, portanto, até para os PDBs futuros, na minha visão seria legal ter todos os componentes instalados, já que não podemos prever o que pode acontecer no mundo coorporativo.
Há dois metodos possiveis para se criar um CDB
- Gerar os scripts através do DBCA, podendo edita-los para assim executa-los manualmente.
- Criar os scripts de forma manual e popular o dicionário de dados.
Não considerando o metodo do DBCA devemos então passar por todas as etapas manualmente, são elas:
Ao ser criado o arquivo de parametrização inicial para o CDB, obrigatóriamente deve ser habilitado o parametro ENABLE_PLUGGABLE_DATABASE para True, caso contrario a instrução de create database irá finalizar com erros.
COMPATIBLE ='12.0.0'
DB_NAME='CDBRJ'
DB_UNIQUE_NAME='CDBRJ'
DB_DOMAIN=''
CONTROL_FILES='+DATA','+FRA'
DB_CREATE_FILE_DEST='+DATA'
DB_CREATE_ONLINE_LOG_DEST_1='+DATA'
DB_CREATE_ONLINE_LOG_DEST_2='+FRA'
DIAGNOSTIC_DEST=/u01/app/oracle
AUDIT_FILE_DEST="/u01/app/oracle/admin/cdbrj/adump"
ENABLE_PLUGGABLE_DATABASE=TRUE
DB_BLOCK_SIZE=8192
OPEN_CURSORS=300
PROCESSES=300
SGA_TARGET=1G
UNDO_MANAGEMENT=AUTO
UNDO_TABLESPACE=UNDOTBS01
PGA_AGGREGATE_TARGET=400M
Há dois metodos possiveis para se criar um CDB
- Gerar os scripts através do DBCA, podendo edita-los para assim executa-los manualmente.
- Criar os scripts de forma manual e popular o dicionário de dados.
Não considerando o metodo do DBCA devemos então passar por todas as etapas manualmente, são elas:
- Criar um pfile com as parametrizações necessárias.
- Ajustar o sistema operacional
- Criar o base dados com a instuação create database
- Popular o dicionário de dados e instalar os componentes necessários
Criando o PFile inicial
Ao ser criado o arquivo de parametrização inicial para o CDB, obrigatóriamente deve ser habilitado o parametro ENABLE_PLUGGABLE_DATABASE para True, caso contrario a instrução de create database irá finalizar com erros.
COMPATIBLE ='12.0.0'
DB_NAME='CDBRJ'
DB_UNIQUE_NAME='CDBRJ'
DB_DOMAIN=''
CONTROL_FILES='+DATA','+FRA'
DB_CREATE_FILE_DEST='+DATA'
DB_CREATE_ONLINE_LOG_DEST_1='+DATA'
DB_CREATE_ONLINE_LOG_DEST_2='+FRA'
DIAGNOSTIC_DEST=/u01/app/oracle
AUDIT_FILE_DEST="/u01/app/oracle/admin/cdbrj/adump"
ENABLE_PLUGGABLE_DATABASE=TRUE
DB_BLOCK_SIZE=8192
OPEN_CURSORS=300
PROCESSES=300
SGA_TARGET=1G
UNDO_MANAGEMENT=AUTO
UNDO_TABLESPACE=UNDOTBS01
PGA_AGGREGATE_TARGET=400M
Ajustar o sistema operacional
Deve ser ajustado qualquer parametrização de Sistema Operacional, variavel de ambientes, arquivos e diretórios antes de iniciar a instancia, como o DIAG_DEST e AUDIT_FILE_DEST, caso contrário irá ocorrer erros para iniciar a base de dados.
Criando a base de dados
Antes de iniciar a base de dados deve ser iniciada a instancia em modo de nomount:
SQL> startup nomount
ORACLE instance started.
Total System Global Area 1073741824 bytes
Fixed Size 2932632 bytes
Variable Size 281018472 bytes
Database Buffers 784334848 bytes
Redo Buffers 5455872 bytes
SQL>
Para ser criado o CDB a instrução a similiar a Non-CDB, o que muda é que devemos especificar que se trata de um pluggable database com a instrução, ENABLE PLUGGABLE DATABASE, além disso devemos controlar onde serão gerados os arquivos, para isso pode utilizar:
Parametros de instancia
db_create_file_dest - Se configurado não há a necessidade de controlar o caminho da criação dos arquivos durante o comando create database, utiliza-se OMF.
db_create_online_log_dest_n - Se configurado não é necessário controlar o caminho dos logs durante o create database, utiliza-se OMF.
pdb_file_name_convert - Novo parametro para 12c, especifica duas padrões, origem e destino, e converte o nome do caminho dos arquivos do SEED.
Instrução Create Database
SEED FILE_NAME_CONVERT - Controla a conversão dos nomes dos arquivos de origem para o destino
SEED SYSTEM DATAFILE - Controla os atributos da tablespace System
SEED SYSAUX DATAFILE - Controla os atributos da tablespace Sysaux
SEED USER_DATA TABLESPACE - Controla os atributos da default tablespace para usuário
Caso esses parametros sejam configurados no momento da criação da instancia eles seram replicados todas as vezes que um PDB for criado a partir do PDB$SEED.
Como estamos utilizando DB_CREATE_FILE_DEST e DB_CREATE_ONLINE_LOG_DEST_n, não é necessário tratar a conversão dos paths do arquivos do banco, será utilizado OMF.
CREATE DATABASE cdbrj
USER SYS IDENTIFIED BY ORACLE
USER SYSTEM IDENTIFIED BY ORACLE
LOGFILE GROUP 1
('+DATA','+FRA') SIZE 100M,
GROUP 2
('+DATA','+FRA') SIZE 100M
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 1024
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE TEMP
UNDO TABLESPACE UNDOTBS01
ENABLE PLUGGABLE DATABASE;
Popular o dicionário de dados
Para um ambiente Non-CDB para se popular o dicionário de dados bastava executar uma unica vez os scripts como catproc.sql, catalog.sql, pupbld.sql, etc, porém para ambientes CDBs esses scripts devem ser executados em todos os PDBs, portanto a recomendação da Oracle é utilizar o catcdb.sql que popula todo o dicionário de dados, o unico problema do catcdb.sql é que ele instala componentes talvez indesejados, para contornar pode utilizar o utilitário catcon.pl e executar cada script individualmente em todos os containers necessários.
Segue portanto a sequencia necessária para se criar popular o dicionário de dados:
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -u sys -d $ORACLE_HOME/rdbms/admin -b catalog_output -e -l /home/oracle catalog.sql
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -u sys -d $ORACLE_HOME/rdbms/admin -b catproc_output -e -l /home/oracle catproc.sql
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -u system -d $ORACLE_HOME/sqlplus/admin -b pupbld_output -e -l /home/oracle pupbld.sql
@?/rdbms/admin/utlrp.sql
Para referencia completa de como utilizar o catcon.pl
Referencia
Melhor nota que achei a respeito de criação de CDB ToadWorld.com - Criando CDB
Nenhum comentário:
Postar um comentário