Instalação e Configuração Oracle
Instalação do banco de dados Oracle, configuração da base de dados, ferramenta de banco, backup, etc...
- Analisando o tamanho e espaço da tablespace
- Backup e Restauração da base de dados
- Limpar cache do Oracle (V$SQL)
- Parâmetros de sessão
- Realizando Backup no Oracle com EXP
- SQL's que mais consomem o banco de dados
Analisando o tamanho e espaço da tablespace
Algumas ferramentas de banco de dados não conseguem mostrar o consumo do tablespace do oracle, o que de certa forma é bem critico, pois quando o tablespace estoura o tamanho o funcionamento das aplicações fica comprometido.
Conectar no banco com um usuário que tenha os privilégios, ou como SYSDBA e executar o comando abaixo:
SELECT T.TABLESPACE,
T.TOTALSPACE AS " TOTALSPACE(MB)",
ROUND ( (T.TOTALSPACE - FS.FREESPACE), 2) AS "USED SPACE(MB)",
FS.FREESPACE AS "FREESPACE(MB)",
ROUND ( ( (T.TOTALSPACE - FS.FREESPACE) / T.TOTALSPACE) * 100, 2)
AS "% USED",
ROUND ( (FS.FREESPACE / T.TOTALSPACE) * 100, 2) AS "% FREE"
FROM ( SELECT ROUND (SUM (D.BYTES) / (1024 * 1024)) AS TOTALSPACE,
D.TABLESPACE_NAME TABLESPACE
FROM DBA_DATA_FILES D
GROUP BY D.TABLESPACE_NAME) T,
( SELECT ROUND (SUM (F.BYTES) / (1024 * 1024)) AS FREESPACE,
F.TABLESPACE_NAME TABLESPACE
FROM DBA_FREE_SPACE F
GROUP BY F.TABLESPACE_NAME) FS
WHERE T.TABLESPACE = FS.TABLESPACE
ORDER BY T.TABLESPACE;
Caso identifique alguma tablespace com o "Used Space(MB)" próximo a 32gb, pelos padrões, você poderá alertar a equipe responsável pela manutenção da base de dados.
Backup e Restauração da base de dados
Para soluções de backups automatizados fornecidos pela Ema Software, solicite ao nosso comercial orçamento do Ema Cloud Backup
Oracle 11G R2 Enterprise ou Standard
Data Pump
O Data Pump é um dos recursos de backup disponibilizados no Oracle.
Para realizar o backup utilizando o recurso EXPDP, do Data Pump, devem ser executados os seguintes procedimentos iniciais:
- Acessar o Prompt de Comando do Windows: Menu Iniciar -> Executar -> cmd.exe [Enter]
- Logar na linha de comando do Oracle utilizando a seguinte sintaxe: sqlplus sys as sysdba [Enter]
- Informe a senha do Oracle [Enter]
- Uma vez conectado na linha de comando do Oracle, é necessário criar o diretório onde será armazenado o arquivo de backup, utilizando a os seguintes comandos abaixo:
CREATE OR REPLACE DIRECTORY NOME AS 'CAMINHO_DO_DIRETÓRIO';
GRANT READ, WRITE ON DIRECTORY NOME TO USUÁRIO;
EXECUTE DBMS_METADATA_UTIL.LOAD_STYLESHEETS;
- Em DIRECTORY a palavra NOME deve ser substituída por um nome de sua preferência, para identificação do diretório onde os backups serão exportados.
- Em CAMINHO_DO_DIRETÓRIO deve-se informar o diretório em que os backups serão salvos.
- Já em USUÁRIO deve-se informar o nome do usuário utilizado pelo sistema no Oracle, que por padrão é o usuário EMA.
Eis um exemplo:
CREATE OR REPLACE DIRECTORY DATAPUMP AS 'C:\EMA SOFTWARE\FERRAMENTAS\';
GRANT READ, WRITE ON DIRECTORY DATAPUMP TO EMA;
EXECUTE DBMS_METADATA_UTIL.LOAD_STYLESHEETS;
EXPDP - Exportação de Base de Dados
O EXPDP realiza a exportação dos dados (backup) de usuários específicos no Oracle.
Após a realização dos procedimentos de configuração do Data Pump, é possível utilizar o EXPDP para realizar o backup do sistema. Esta é a sintaxe que deve ser executada no Prompt de Comando do Windows para iniciar o processo:
EXPDP USUARIO/SENHA SCHEMAS=USUARIO DIRECTORY=NOME_DIRETORIO DUMPFILE=NOME_BACKUP.DMP LOGFILE=NOME_LOG.LOG
As palavras em destaque devem ser substituídas pelas informações corretas.
- Em USUÁRIO/SENHA deve-se informar um usuário e senha do Oracle com permissões administrativas. Como usuário EMA possui permissões administrativas, ele pode ser utilizado. O usuário SYSTEM, um dos administradores padrões do Oracle, também pode ser utilizado.
- Na opção SCHEMAS o usuário do Oracle que possui os dados do sistema deve ser informado. Por padrão utiliza-se o usuário EMA.
- Em NOME_DIRETORIO informa-se o nome do diretório criado na pré configuração, da qual seguindo o exemplo citado anteriormente, foi defino como datapump.
Por fim, definimos o nome do arquivo de backup e do seu log. Segue um exemplo da sintaxe completa:
EXPDP EMA/123 SCHEMAS=EMA DIRECTORY=DATAPUMP DUMPFILE=BKP-EMA.DMP LOGFILE=EXPORT.LOG
Com esta sintaxe, estamos gerando o backup do usuário EMA, onde o arquivo de backup recebeu o nome de BKP-EMA.DMP, no diretório DATAPUMP, criado nas configurações iniciais, do qual irá salvar a exportação do backup em C:\EMA SOFTWARE\FERRAMENTAS\.
Para facilitar a execução do backup, disponibilizamos abaixo a sintaxe para criação de um script que irá realizar a exportação da base de dados, após as configurações iniciais terem sido realizadas conforme o exemplo. O script deve ser criado a partir do Bloco de Notas do Windows.
Após acessar o bloco de notas, é preciso informar os seguintes comandos para exportação, e posteriormente salvar o arquivo com a extensão .bat:
del "C:\Ema Software\Ferramentas\bkp-ema.dmp"
del "C:\Ema Software\Ferramentas\export.log"
expdp ema/senha directory=datapump dumpfile=bkp-ema.dmp schemas=EMA logfile=export.log
O script irá manter apenas a última cópia da base de dados. Ele também poderá ser utilizado pelo profissional responsável por sua infraestrutura de TI para criação de rotinas de backup automatizadas.
***OBSERVAÇÃO: A senha do banco de dados deve ser obtida através do setor responsável, geralmente o T.I. da sua empresa. É preciso editar o script de backup para informar a senha da base de dados, bem como para realizar as configurações iniciais. O EXPDP não está disponível para uso na versão Oracle 11G R2 XE. O script deve ser executado diretamente no servidor da base de dados.
IMPDP - Importação da Base de Dados
Permite importar usuários específicos (Schemas), tablespaces ou tabelas. Neste caso, o propósito é importar o usuário inteiro.
IMPDP USUARIO/SENHA DIRECTORY=NOME_DIRETORIO DUMPFILE=NOME_BACKUP.DMP REMAP_SCHEMA=SCHEMA_ORIGEM:SCHEMA_DESTINO EMAP_TABLESPACE=TABLESPACE_ORIGEM:TABLESPACE_DESTINO
Exemplo:
IMPDP EMA/123 DIRECTORY=DATAPUMP DUMPFILE=BACKUP.DMP REMAP_SCHEMA=EMA:CARLESSO REMAP_TABLESPACE=USERS:USERS2
Limpar cache do Oracle (V$SQL)
O comando visa apoiar os programadores com os testes de desempenho. A descarga do cache do buffer de dados é uma ótima ferramenta de teste e evita que você precise devolver (parar e reiniciar) sua instância de banco de dados entre as execuções de teste.
NÃO recomendamos que você limpe o cache do buffer de dados em um sistema de produção!
alter system flush buffer_cache;
alter system flush shared_pool;
OPCIONAL:
EXECUTE dbms_result_cache.flush;
Nota: A liberação do cache do buffer de dados impõe uma sobrecarga séria de desempenho, especialmente nos bancos de dados RAC. O uso do cache do buffer de liberação foi destinado apenas ao sistema de teste.
Parâmetros de sessão
Quando os serviços da Ema são configurados em um ambiente com banco de dados Oracle, todas as execuções de scripts são executadas com alguns parâmetros de sessões definidos.
Para que seus testes no SQL Developer ou outro gerenciador de banco sejam equivalentes à execução do DOX, você deve rodar os scripts abaixo na sessão do banco logada (todas as vezes que for iniciado uma sessão no SGBD terá que ser executado).
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,';
ALTER SESSION SET NLS_DATE_FORMAT = 'RRRR-MM-DD HH24:MI:SS';
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'RRRR-MM-DD HH24:MI:SS';
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = 'RRRR-MM-DD HH24:MI:SS';
ALTER SESSION SET NLS_SORT=BINARY_AI;
ALTER SESSION SET NLS_COMP=LINGUISTIC;
Após ter executado estes scripts na sessão logada no SGBD, todos os comandos serão executados com os mesmos parâmetros que o DOX executa.
*** Importante verificar se os comandos acima são comitados.
Realizando Backup no Oracle com EXP
Um dos modos de realizar a exportação de dados (backup) de uma base do Oracle, é utilizando o EXP, conforme exemplo abaixo.
Para iniciar, abra o prompt de comando, no Iniciar do Windows, e utilize a seguinte sintaxe:
exp usuario/senha@orcl file=c:\temp\teste.dmp full=y
- “usuario”: Nome do usuário do banco Oracle.
- “senha”: Senha do usuário do banco.
- “orcl”: Nome da instância do banco (sempre digitar @ entre a senha e a instância).
- “file”: Insira o caminho que deseja colocar o arquivo exportado, barra (\) e o nome que deseja para o arquivo e a extensão .dmp no final
SQL's que mais consomem o banco de dados
O SQL disponibilizado abaixo trará os SQL's que mais consomem o banco, desse modo fica mais simples de verificar se tem algum SQL processando sem necessidade, ou que possa ser arrumado. Copie esse SQL na sua ferramenta de banco Oracle e execute-o.
SELECT "SQL_TEXT",
"PARSING_SCHEMA_NAME",
"SQL_ID",
"ELAPSED_TIME_MIN",
"PERC_ELAPSED_TIME_MIN",
"EXECUTIONS",
"FIRST_LOAD_TIME",
"LAST_ACTIVE_TIME"
FROM ( SELECT SQL_TEXT,
PARSING_SCHEMA_NAME,
SQL_ID,
CAST (ELAPSED_TIME / 1000000 / 60 AS NUMERIC (18, 2))
AS ELAPSED_TIME_MIN,
CAST (
(RATIO_TO_REPORT (ELAPSED_TIME) OVER ()) * 100 AS NUMERIC (18, 2))
PERC_ELAPSED_TIME_MIN,
EXECUTIONS,
FIRST_LOAD_TIME,
TO_CHAR (LAST_ACTIVE_TIME, 'DD/MM/YYYY HH24:MI:SS')
AS LAST_ACTIVE_TIME
FROM V$SQL
WHERE PARSING_SCHEMA_NAME IN ('EMA')
ORDER BY CAST (ELAPSED_TIME / 1000000 / 60 AS NUMERIC (18, 2)) DESC)
WHERE ROWNUM <= 100;