Eu tenho que confessar que não tenho ideia sobre essa coisa de banco de dados conectável. Tenho experiência em PostgresSQL, MySQL, SQL Server, mas a Oracle me derrotou.
Eu tenho o Oracle 18c rodando em uma imagem do Docker. Eu quero criar um banco de dados conectável chamado bookshop
. Seguindo algumas instruções, executei o seguinte:
CREATE PLUGGABLE DATABASE bookshop ADMIN USER pdb_adm IDENTIFIED BY Oradoc_db1
file_name_convert=('/opt/oracle/oradata/XE/pdbseed','/opt/oracle/oradata/XE/BOOKSHOP');
Em seguida nas instruções, eu corro:
ALTER PLUGGABLE DATABASE xepdb2 OPEN READ WRITE;
exceto que eu não posso. Eu recebo a mensagem:
ORA-01031: privilégios insuficientes.
Eu então tento:
DROP PLUGGABLE DATABASE bookshop;
e recebo a mesma mensagem.
Quando eu tento:
SELECT vp.name, vp.open_mode
FROM v$pdbs vp;
eu recebo
NOME | OPEN_MODE |
---|---|
PDB$SEED | SOMENTE LEITURA |
XEPDB1 | LER ESCREVER |
XEPDB2 | LER ESCREVER |
LIVRARIA | MONTADO |
E, finalmente, quando tento descobrir quem eu sou:
SELECT user FROM dual;
eu consigo SYSTEM
.
Neste ponto, não tenho ideia de como obter controle sobre esse banco de dados conectável. Preciso mudar para outro usuário? Como?
Primeiro, tente conectar-se ao banco de dados do contêiner como SYS em vez de SYSTEM. SYSTEM é uma conta DBA modelo, mas SYS (ou qualquer usuário com privilégios SYSDBA, o que efetivamente os torna SYS) é mais poderoso e deve ser usado para alguns comandos específicos.
Em seguida, seu banco de dados xepdb2 já está aberto no modo "READ WRITE", então você não precisa abri-lo novamente.
Por último, abra seu banco de dados BOOKSHOP com:
Conceitualmente, pense em bancos de dados conectáveis da mesma forma que você pensaria em uma máquina virtual em relação a um servidor bare metal. É uma construção lógica que permite consolidar e compartilhar determinados recursos no servidor de banco de dados. O banco de dados de contêiner (CDB) é um pouco como seu hipervisor: você geralmente não mexe com ele, exceto para criar bancos de dados conectáveis (PDBs) ou executar determinadas atividades no nível do sistema, como backup e recuperação. Todos os seus esquemas e construções de aplicativos vão para os PDBs.