English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

ORACLE 12Introdução aos conhecimentos básicos de manutenção do PDB no C

Primeiro vamos falar sobre o uso básico:
Primeiro, siga11G antes de fazer
conn / as sysdba;
create user test identified by test;

ORA-65096: Nome de usuário ou nome de papel comum inválido.

Pelo que sei da documentação oficial, 'tentar criar um usuário comum, é necessário usar C## ou c## no início', neste momento, pode-se ter uma dúvida, o que é usuário comum? Mas vamos ver se funciona antes de mais nada
create C##user test identified by test;
Sucesso na criação

SQL>show con_name;

CON_NAME
------------------------------
CDB$ROOT

select con_id, dbid, NAME, OPEN_MODE from v$pdbs;


CON_ID DBID NAME OPEN_MODE

---------- ---------- ------------------------------ ----------

2 4066409480 PDB$SEED READ ONLY

3 2270995695 PDBORCL MOUNTED

SQL>alter session set container=PDBORCL;
Neste momento, você pode criar o usuário usando create user test identified by test;

CDB e PDB são ORACLE 12C é uma nova característica brilhante, devido à sua introdução, muitas mudanças foram feitas na gestão convencional do banco de dados Oracle, aqui estão listados alguns dos métodos básicos de gestão cdb e pdb
Gráfico de Relação cdb e pdb

ORACLE 12Versão C

SQL> select * from v$version;
BANNER                                        CON_ID
-------------------------------------------------------------------------------- ----------
Banco de Dados Oracle 12c Edição Empresa Release 12.1.0.1.0 - 64bit Produção 0
PL/Lançamento SQL 12.1.0.1.0 - Produção                          0
CORE  12.1.0.1.0 Produção 0
TNS para Linux: Versão 12.1.0.1.0 - Produção                      0
Versão NLSRTL 12.1.0.1.0 - Produção                          0

Iniciar/Fechar pdb

SQL> startup
Instância ORACLE iniciada.
Área Global Total do Sistema 597098496 bytes
Tamanho Fixo         2291072 bytes
Tamanho Variável       272632448 bytes
Banco de Dados Buffers     314572800 bytes
Redo Buffers        7602176 bytes
Banco de Dados montado.
Banco de Dados aberto.
SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs;
  CON_ID    DBID NOME              MODO ABERTO
---------- ---------- ------------------------------ ----------
     2 4048821679 PDB$SEED            LEITURA APENAS
     3 3313918585 PDB1              MONTADO
     4 3872456618 PDB2              MONTADO
SQL> alter PLUGGABLE database pdb1 open;
Banco de Dados Plugável alterado.
SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs;
  CON_ID    DBID NOME              MODO ABERTO
---------- ---------- ------------------------------ ----------
     2 4048821679 PDB$SEED            LEITURA APENAS
     3 3313918585 PDB1              LEITURA E ESCRITA
     4 3872456618 PDB2              MONTADO
SQL> alter PLUGGABLE database pdb1 close;
Banco de Dados Plugável alterado.
SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs;
  CON_ID    DBID NOME              MODO ABERTO
---------- ---------- ------------------------------ ----------
     2 4048821679 PDB$SEED            LEITURA APENAS
     3 3313918585 PDB1              MONTADO
     4 3872456618 PDB2              MONTADO
SQL> alter PLUGGABLE database all open;
Banco de Dados Plugável alterado.
SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs;
  CON_ID    DBID NOME              MODO ABERTO
---------- ---------- ------------------------------ ----------
     2 4048821679 PDB$SEED            LEITURA APENAS
     3 3313918585 PDB1              LEITURA E ESCRITA
     4 3872456618 PDB2              LEITURA E ESCRITA
SQL> alter PLUGGABLE database all close;
Banco de Dados Plugável alterado.
SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs;
  CON_ID    DBID NOME              MODO ABERTO
---------- ---------- ------------------------------ ----------
     2 4048821679 PDB$SEED            LEITURA APENAS
     3 3313918585 PDB1              MONTADO
     4 3872456618 PDB2              MONTADO
SQL> alter session set container=pdb1;
Session altered.
SQL> startup
Banco de Dados Plugável aberto.
SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs;
  CON_ID    DBID NOME              MODO ABERTO
---------- ---------- ------------------------------ ----------
     3 3313918585 PDB1              LEITURA E ESCRITA

A gestão do pdb pode ser feita tanto no cdb quanto no pdb. Se for no cdb, é necessário o keyword PLUGGABLE, se for no pdb, é diretamente como um banco de dados comum

Login pdb

[oracle@xifenfei ~]$ lsnrctl status
LSNRCTL para Linux: Versão 12.1.0.1.0 - Produção em 12-PODE-2013 08:07:02
Direitos de Autor (c) 1991, 2013, Oracle. Todos os direitos reservados.
Conectando a (DESCRICAO=(ENDEREÇO=(PROTOCOLO=TCP)(HOST=xifenfei)(PORT=1521)))
ESTADO do LISTENER
------------------------
Alias           LISTENER
Versão          TNSLSNR para Linux: Versão 12.1.0.1.0 - Produção
Data de Início        11-PODE-2013 18:30:54
Tempo de Uptime          0 dias 13 hr. 36 min. 8 sec
Nível de Trace        desligado
Segurança         LIGADO: Autenticação do SO Local
SNMP           DESATIVADO
Ficheiro de Parâmetros do Ouvinte  /u01/app/grid/produto/12.1/rede/admin/listener.ora
Arquivo de Log do Listener     /u01/app/grid/diag/tnslsnr/xifenfei/listener/alert/log.xml
Resumo dos Pontos de Escuta...
 (DESCRICAO=(ENDERECO=(PROTOCOLO=ipc)(CHAVE=EXTPROC1521)))
 (DESCRICAO=(ENDERECO=(PROTOCOLO=tcp)(HOST=xifenfei)(PORT=1521)))
 (DESCRICAO=(ENDERECO=(PROTOCOLO=tcps)(HOST=xifenfei)(PORT=5500))
(Segurança=(diretorio_do_wallet=)/u01/oracle/12.1/db_1/admin/cdb/xdb_wallet))(Apresentacao=HTTP)(Sessao=RAW))
Resumo de Serviços...
Serviço "+ASM" tem 1 instância(s).
 Instância "+ASM", status PRONTO, tem 1 handler(s) para este serviço...
Serviço "cdb" tem 1 instância(s).
 Instância "cdb", status PRONTO, tem 1 handler(s) para este serviço...
Serviço "cdbXDB" tem 1 instância(s).
 Instância "cdb", status PRONTO, tem 1 handler(s) para este serviço...
Serviço "pdb1" tem 1 instância(s).
 Instância "cdb", status PRONTO, tem 1 handler(s) para este serviço...
Serviço "pdb2" tem 1 instância(s).
 Instância "cdb", status PRONTO, tem 1 handler(s) para este serviço...
O comando foi concluído com sucesso
[oracle@xifenfei ~]$ tnsping pdb1
Utilitário TNS Ping para Linux: Versão 12.1.0.1.0 - Produção em 12-PODE-2013 08:07:09
Direitos de Autor (c) 1997, 2013, Oracle. Todos os direitos reservados.
Usado arquivos de parâmetros:
Usado o adaptador TNSNAMES para resolver o alias
A tentativa de contato (DESCRICAO = (ENDERECO = (PROTOCOLO = TCP)(HOST = xifenfei)
(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdb1)))
OK (20 msec)
[oracle@xifenfei ~]$ sqlplus sys/xifenfei@pdb1 como sysdba
SQL*Plus: Lançamento 12.1.0.1.0 Produção em sex 05 12 08:08:02 2013
Direitos de Autor (c) 1982, 2013, Oracle. Todos os direitos reservados.
Conectado a:
Banco de Dados Oracle 12c Edição Empresa Release 12.1.0.1.0 - 64Produção de bits
Com a Partitioning, Gestão Automática de Armazenamento, OLAP, Análise Avançada
e opções de Teste de Aplicação Real
SQL> show con_name;
CON_NAME
------------------------------
PDB1
[oracle@xifenfei ~]$ sqlplus / como sysdba
SQL*Plus: Lançamento 12.1.0.1.0 Produção em sex 05 12 08:09:14 2013
Direitos de Autor (c) 1982, 2013, Oracle. Todos os direitos reservados.
Conectado a:
Banco de Dados Oracle 12c Edição Empresa Release 12.1.0.1.0 - 64Produção de bits
Com a Partitioning, Gestão Automática de Armazenamento, OLAP, Análise Avançada
e opções de Teste de Aplicação Real
SQL> alter session set container=pdb1;
Session altered.
SQL> show con_name;
CON_NAME
------------------------------
PDB1

o pdb pode ser acessado através de alter session container ou diretamente através do modo tns

criar usuário

SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT
SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs;
  CON_ID    DBID NOME              MODO ABERTO
---------- ---------- ------------------------------ ----------
     2 4048821679 PDB$SEED            LEITURA APENAS
     3 3313918585 PDB1              LEITURA E ESCRITA
     4 3872456618 PDB2              MONTADO
SQL> create user xff identified by xifenfei;
create user xff identified by xifenfei
      *
ERRO na linha 1:
ORA-65096: nome de usuário ou papel comum inválido
SQL> !oerr ora 65096
65096, 00000, "nome de usuário ou papel comum inválido"
// *Causa: Foi feita uma tentativa de criar um usuário ou papel comum com o nome
//     não era válida para usuários ou papéis comuns. Além disso
//     as regras usuais para nomes de usuários e papéis, usuários e papéis comuns 
//     names must start with C## or c## and consist only of ASCII 
//     characters.
// *Action: Specify a valid common user or role name.
//
SQL> create user c##xff identified by xifenfei;
User created.
SQL> SELECT USERNAME,CON_ID,USER_ID FROM CDB_USERS WHERE USERNAME='C##XFF';
USERNAME    CON_ID  USER_ID
---------- ---------- ----------
C##XFF       1    103
C##XFF       3    104
SQL> alter session set container=pdb1;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
PDB1
SQL> create user xff identified by xifenfei;
User created.
SQL> create user c##abc identified by xifenfei;
create user c##abc identified by xifenfei
      *
ERRO na linha 1:
ORA-65094: invalid local user or role name

The default container for creating users is container=all, in cdb only global users (starting with c##) can be created, which will create the user in cdb and all pdb (but the global users in pdb need to be authorized separately to access pdb). Only local users can be created in pdb

User authorization

SQL> grant connect to c##xff;
Grant succeeded.
SQL> select GRANTEE,con_id from cdb_ROLE_PRIVS where GRANTED_ROLE='CONNECT' AND GRANTEE='C##XFF';
CONCEDENTE              CON_ID
------------------------------ ----------
C##XFF                 1
SQL> grant resource to c##xff container=all;
Grant succeeded.
SQL> select GRANTEE,con_id from cdb_ROLE_PRIVS where GRANTED_ROLE='RESOURCE' AND GRANTEE='C##XFF';
CONCEDENTE              CON_ID
------------------------------ ----------
C##XFF                 1
C##XFF                 3

Por padrão, a autorização do usuário é apenas para o container atual, no cdb também pode ser especificado container=all, para todos os pdb abertos e existentes para o usuário

Alterar parâmetros

SQL> alter system set open_cursors=;500 container=all;
Sistema alterado.
SQL> conn sys/xifenfei@pdb1 como sysdba
Conectado.
SQL> show parameter open_cursors;
NOME                 TIPO    VALOR
------------------------------------ ----------- ------------------------------
open_cursors             inteiro   500
SQL> alter system set open_cursors=;100;
 alter system set open_cursors=;100
*
ERRO na linha 1:
ORA-01219: banco de dados ou banco de dados plugável não aberto: consultas permitidas no banco de dados fixo
apenas tabelas ou vistas
SQL> alter database open;
Banco de dados alterado.
SQL> alter system set open_cursors=;100;
Sistema alterado.
SQL> show parameter open_cursors;
NOME                 TIPO    VALOR
------------------------------------ ----------- ------------------------------
open_cursors             inteiro   100
SQL> conn / como sysdba
Conectado.
SQL> show parameter open_cursors;
NOME                 TIPO    VALOR
------------------------------------ ----------- ------------------------------
open_cursors             inteiro   500

Aqui você pode ver as alterações feitas no cdb, que serão herdadas pelo pdb; se houver alterações no pdb, elas overwrite os parâmetros herdados do cdb.

Declaração: o conteúdo deste artigo é extraído da Internet, pertence ao respectivo proprietário, fornecido pelos usuários da Internet de forma voluntária e auto-publicada, este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidades legais relacionadas. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie um e-mail para: notice#w3Aqui você pode ver as alterações feitas no cdb, que serão herdadas pelo pdb; se houver alterações no pdb, elas overwrite os parâmetros herdados do cdb.

Você também pode gostar