ORA-32018: parameter cannot be modified in memory on another instance

Quando administramos um banco de dados Oracle com RAC (Real Application Clusters), há a necessidade de sempre ter atenção quando se vai efetuar a alteração de um parâmetro. Há parâmetros que só são alterados após uma reinicialização do banco de dados e há aqueles que podem ser alterados dinamicamente  (parâmetro Modifiable= ALTER SYSTEM na documentação da Corporação Oracle)  na instância inicializada. No entanto, para estes parâmetros dinâmicos há aqueles parâmetros que não há a possiblidade de se alterar no nó principal do cluster e nos demais ao mesmo tempo e, com…

ORA-01950: no privileges on tablespace ‘BKTTBS’

  Durante a criação de uma tabela, foi reportado o seguinte erro: “ORA-01950: no privileges on tablespace ‘BKTTBS’”. Este erro acontece devido ao fato de o usuário que estar criando a tabela não ter espaço de  quota suficiente de criação na tablespace onde a tabela irá residir. Para solucionar este problema, você pode conceder espaço ilimitado de criação para o usuário na tablespace, como no exemplo abaixo: ou também você pode definir o espaço de quota para o usuário na tablespace, como por exemplo 10M:

ORA-10635: Invalid segment or tablespace type

Durante a execução de uma tentativa de desfragmentação de dados de uma tabela que continha um BLOB (um tipo de LOB), obtive o seguinte erro “ORA-10635: Invalid segment or tablespace type”. Durante a análise para verificar o erro, peguei o DDL da tabela verifiquei que possuía SECUREFILE. Sendo assim, não sendo possível o uso de SHRINK SPACE, somente efetuando um shrink no securefile LOB usando Online Redefinition (DBMS_REDEFINITION) [Doc ID 1394613.1]. É importante mencionar que o erro “ORA-10635: Invalid segment or tablespace type” também é comum quando a tabela possui…

ORA-65140: invalid common profile name

Durante a criação de um profile para posteriormente associar um usuário criado ao mesmo, recebi o seguinte erro “ORA-65140: invalid common profile name”. Isto acontece quando se tenta criar um profile sem o prefixo c## no CDB em um banco de dados Oracle 12c. Para resolver este problema, basta simplesmente adicionar o prefixo antes do nome do profile e reexecutar o comando. Com isso, seguem os exemplos: Tentativa de criar o usuário sem o prefixo c## no CDB:   Criação com sucesso do profile com o prefixo c##: Associando um…

Configurando o percentual de espaço de armazenamento para o SMB (SQL MANAGEMENT BASE) no Oracle 11g

O SQL Management Base (SMB) faz parte do dicionário de dados e , por isso, seu armazemento é efetuado na tablespace SYSAUX.  No SMB é armazenado o histórico de planos de execução SQL e , dentro deste se encontra o SQL Plan Baseline. Só aqui já é possível imaginar a importância do SMB nas suas análises diárias de tuning. No entanto, se o armazenamento for insuficente, é possível aumentar? Bom, pensando rapidamente a ideia inicial seria aumentar a SYSAUX … seguindo a lógica de que o SMB fica dentro da…

Qual o percentual da flash recovery area que está em uso no banco de dados Oracle?

É comum verificar o percentual de uso da flash recovery area (FRA) quando a mesma se encontra configurada na base de dados. Para verificar o percentual de uso da mesma, pode-se usar a V$FLASH_RECOVERY_AREA_USAGE. Com isso, segue um exemplo neste post: Verificando se a flash recovery area se encontra configurada: Note que está configurado a flash recovery area para utilizar o disk group DG_FRA e com o valor máximo de uso para 800G. Outro ponto interessante, que o valor máximo é diferente do valor total do disk group, que pode…

Conectando em um PDB a partir de um CDB – Oracle versão 12C

A partir do banco de dados Oracle versão 12C algumas coisas mudaram em relação à sua versão anterior, 11G. Uma delas é a introdução de PDB e CDB que faz com que a administração da base de dados se torne um pouco diferente. Imagine uma caixa grande com outras caixas menores dentro dela, imaginou? Pois bem, a caixa maior entenda como o CDB e as caixas menores como o PDB, explicando de uma maneira bem sucinta. Neste post, estarei explicando como se conectar em um PDB a partir de um…

Verificando valor de parâmetro no spfile antes de efetuar o STOP/START do banco de dados

Alterei o valor de um parâmetro no server parameter (SPFILE), mas será que este valor realmente refletiu no arquivo que trará o valor real no próximo processo de STOP/START do banco de dados? A resposta para esta pergunta pode ser obtida através da view V$SPPARAMETER. Sendo assim, segue abaixo um exemplo usando o parâmetro db_files: Alteração do parâmetro: Visualização do parâmetro na instância atual:   Visualização do parâmetro no SPFILE antes mesmo do STOP/START da base de dados:  

ORA-01586: database must be mounted EXCLUSIVE and not open for this operation ao tentar apagar o banco de dados

Se você obteve o erro “ORA-01586: database must be mounted EXCLUSIVE and not open for this operation” após uma tentativa de apagar seu banco “drop database;”, este post pode te ajudar. Provavelmente este banco que você está tentando apagar é um Oracle RAC, acertei? Se sim, continue lendo…   Coloquei o banco no estado mounted e habilitei o modo restrito. No entanto, após tentar apagar o banco,  eis que resulta em um “ORA-01586: database must be mounted EXCLUSIVE and not open for this operation” , como se pode ver abaixo:…

Renomear usuários no banco de dados Oracle

  Um certo dia em uma das consultorias que prestei, me fizeram a seguinte pergunta: “É possível renomear um usuário no Oracle? “.  Como sou bastante curioso, já tinha lido a respeito disso antes e sabia que poderia ser possível. No entanto, não efetuei esta operação no cliente por não ser recomendado pela corporação Oracle, porque além de causar a perda do suporte, causa inúmeros outros problemas na base de dados. Todavia, se é possível, como fazê-lo?  Primeiramente, vamos repetir o aviso: ATENÇÃO: Esta atividade é possível, porém não é…