segunda-feira, 28 de maio de 2018

Status e informações sobre o Banco de Dados Oracle


conn sys/oracle as sysdba ou sqlplus sys/oracle as sysdba

Localizar o spfile

SHOW PARAMETER spfile;

no prompt do SO

vi /opt/oracle/product/12cR1/db/dbs/spfileajmsolutions.ora

Diferenciar o tipo de escopo com o SPFILE - SPFILE fica ativo somente em memória

SHOW PARAMETER db_cache_size;

ALTER SYSTEM SET db_cache_size=32m SCOPE=memory;

SHOW PARAMETER db_cache_size;

SHUTDOWN IMMEDIATE;

STARTUP;

SHOW PARAMETER db_cache_size

Diferenciar o tipo de escopo com o SPFILE - SPFILE fica ativo a partir do próximo startup


ALTER SYSTEM SET db_cache_size=32m SCOPE=spile;

SHOW PARAMETER db_cache_size;

SHUDOWN IMMEDIATE;

STARTUP;

SHOW PARAMETER db_cache_size;

Diferenciar o tipo de escopo com o SPFILE - BOTH (fica ativo na memória e a partir do proximo startup


ALTER SYSTEM SET db_cache_size=32m SCOPE=both;

SHOW PARAMETER db_cache_size;

SHUTDOWN IMMEDIATE;

STARTUP;

SHOW PARAMETER db_cache_size;

Alguns parâmetros necessitam de um SHUTDOWN


ALTER SYSTEM SET log_archive_start=true; /*(erro)*/

ALTER SYSTEM SET log_archive_start=true SCOPE=spfile;

ALTER SYSTEM SET sag_max_size=256m SCOPE=spfile;

SHUTDOWN IMMEDIATE;

STARTUP;

SHOW PARAMETER SGA_MAX_SIZE;

SHOW PARAMETER log_archive_start;

Verificar estados do Banco / Mudar os estados do banco

SHUTDOWN IMMEDIATE;

STARTUP NOMOUNT;

SELECT instance_name, host_name
FROM v$instance;

SELECT name, open_mode
FROM v$database; /*(erro)*/

STARTUP MOUNT; /*(erro)*/

ALTER DATABASE MOUNT;

SELECT name, open_mode
FROM v$database;

SELECT owner, table_name
FROM dba_tables
WHERE owner = 'AJMSOLUTIONS'; /*(erro)*/

ALTER DATABASE OPEN;

SELECT owner, table_name
FROM dba_tables
WHERE owner = 'AJMSOLUTIONS';

ALTER DATABASE MOUNT; /*(erro)*/

SHUTDOWN IMMEDIATE;

STARTUP MOUNT;

Subir o Banco como somente leitura


ALTER DATABASE OPEN READ ONLY;

CREATE TABLE teste (id number); /*(erro)/

SHUTDOWN IMMEDIATE;

STARTUP;

CREATE TABLE teste (id number);

Subir Banco em modo restrito 

conn sys/oracle as sysdba;

SHUTDOWN IMMEDIATE;

STARTUP RESTRICT;

abrir uma sessão com ajmsolutions /*(erro)*/

sqlplus ajmsolutions/ajmsolutions

SHUTDOWN IMMEDIATE;

STARTUP;

abrir 2 sessões uma com o sys e outra com o ajmsolutions
na sessão do sys

Matar sessão dos usuários

na sessão do sys

SELECT sid, serial#, username
FROM v$session
WHERE username IS NOT NULL;

ALTER SYSTEM KILL SESSION 'sid,serial#';

ir na sessão do ajmsolutions e tentar fazer alguma coisa


Para testar os vários tipos de shutdown

Abrir duas sessões uma com o SYS e outra como AJMSOLUTIONS

na sessão do SYS

SHUTDOWN;

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

na sessão do AJMSOLUTIONS

CREATE TABLE xpto (ID NUMBER);
INSERT INTO xpto (1);

COMMIT;

Observar o que acontece na sessão do SYS.

exit

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

na sessão SYS

STARTUP;

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

Abrir a sessão do AJMSOLUTIONS

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

na sessão do SYS

SHUTDOWN TRANSACTIONAL

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

na sessão do AJMSOLUTIONS

INSERT INTO XPTO VALUES (1);
COMMIT;

---------------------------------------
na sessão do SYS

Observar o que acontece na sessão do SYS

STARTUP;

SHUTDOWN ABORT;

STARTUP FORCE;

Arquivo de alerta / rastreamento

SHOW PARAMETER background_dump_dest   /* (arquivo de alerta/arquivo de rastreamento - processo de segundo plano) */

No Sistema Operacional

#> vi /opt/oracle/diag/rdbms/ajmsolutions/AJMSOLUTIONS/trace/alert_AJMSOLUTIONS.log

#> cd /opt/oracle/diag/rdbms/ajmsolutions/AJMSOLUTIONS/trace

#> ls -a

Listar todas as views de desempenho dinâmico


SELECT name
FROM v$fixed_table
WHERE name LIKE 'V$%'
ORDER BY 1;

Listar todas as views de dicionário de dados DBA_

SELECT object_name
FROM dba_objects
WHERE object_name LIKE 'DBA_%'
ORDER BY 1;

Listar todas views de dicionários de dados ALL_

SELECT object_name
FROM dba_objects
WHERE object_name LIKE 'ALL_%'
ORDER BY 1;

Listar todas as views de dicionário de dados USER_


SELECT object_name
FROM dba_objects
WHERE object_name LIKE 'USER_%'
ORDER BY 1;







quinta-feira, 24 de maio de 2018

Gerenciamento de dados no Oracle


Localizar arquivo de parametros


SHOW PARAMETER SPFILE;

Localizar arquivo de alerta


SHOW PARAMETER BACKGROUND_DUMP_DEST

Localizar arquivos de Dados (DATAFILE)


SELECT name "Loc_Nome_Arq_Dados"
FROM v$datafile;

Localizar arquivos de REDO LOG


SELECT member "Loc_Nome_Arq_Redo_Log"
FROM v$logfile;

Localizar arquivos de controle

SELECT name "Loc_Nome_Arq_Control"
FROM v$controlfile;

Quantidades de leituras e escritas dos arquivos de dados

SELECT d.tablespace_name tablespace, d.file_name arquivo_dados, f.phyrds leituras, f.phywrts escritas
FROM v$filestat f, dba_data_files d
WHERE f.file# = d.file_id
ORDER BY f.phyrds desc;

Gerenciamento de Memória no Oracle

Gerenciamento automático da memória

show parameter memory_target;

show parameter sga_target;

show parameter shared_pool_size;

Desabilitar o gerenciamento automatico

alter system set memory_target=0;

alter system set sga_target=0;

show parameter shared_pool_size;

Tamanho da SGA

show parameter sga_max_size;

SELECT name, round((value/1024/1024),2) SGA_MB, description
FROM v$parameter
WHERE name ='sga_max_size';

Tamanho do POOL Compartilhado

show parameter shared_pool_size

SELECT name, round((value/1024/1024),2) POOL_COMPARTILHADO_MB, description
FROM v$parameter
WHERE name ='shared_pool_size';

Tamanho do BUFFER de REDO LOG


show parameter log_buffer

SELECT name, round((value/1024/1024),2) BUFFER_REDO_LOG_MB, description
FROM v$parameter
WHERE name ='log_buffer';

Tamanho da PGA


show parameter pga_aggregate_target;

SELECT name, round((value/1024/1024),0) PGA_MB, description
FROM v$parameter
WHERE name ='pga_aggregate_target';

Tamanho do bloco

show parameter db_block_size;

Alterar o tamanho do cache de BUFFER DE DADOS

show parameter db_cache_size;

alter system set db_cache_size=16m;

SELECT name, round((value/1024/1024),2) CACHE_BUFFER_DADOS_MB, description
FROM v$parameter
WHERE name ='db_cache_size';

quarta-feira, 23 de maio de 2018

Guia de Instalação do Oracle no SuSE Linux 12

Instação do Oracle 12c no SuSE 12 SP3

No Yast selecionar o pacote Oracle Server Database, como mostra a figura abaixo:



(orarun)

  • Criar usuário
    • oracle
  • Criar grupos
    • dba, oinstall
  • Instalar pacotes de pré-requisitos
    • bc
    • binutils-2.24-2.165.x86_64
    • gcc-c++-32bit-4.8-6.189.x86_64
    • gcc-c++-4.8-6.189.x86_64
    • gcc48-c++-4.8.3+r212056-6.3.x86_64
    • gcc-32bit-4.8-6.189.x86_64
    • gcc-4.8-6.189.x86_64
    • gcc-info-4.8-6.189.x86_64
    • gcc-locale-4.8-6.189.x86_64
    • gcc48-32bit-4.8.3+r212056-6.3.x86_64
    • gcc48-4.8.3+r212056-6.3.x86_64
    • gcc48-info-4.8.3+r212056-6.3.noarch
    • gcc48-locale-4.8.3+r212056-6.3.x86_64
    • glibc-2.19-17.72.x86_64
    • glibc-devel-2.19-17.72.x86_64
    • libaio-devel-0.3.109-17.15.x86_64
    • libaio1-0.3.109-17.15.x86_64
    • libaio1-32bit-0.3.109-17.15.x86_64
    • libgfortran3-4.8.3+r212056-6.3.x86_64
    • libX11-6-1.6.2-4.12.x86_64
    • libX11-6-32bit-1.6.2-4.12.x86_64
    • libXau6-1.0.8-4.58.x86_64
    • libXau6-32bit-1.0.8-4.58.x86_64
    • libXtst6-1.2.2-3.60.x86_64
    • libXtst6-32bit-1.2.1-2.4.1.x86_64
    • libcap-ng-utils-0.7.3-4.125.x86_64
    • libcap-ng0-0.7.3-4.125.x86_64
    • libcap-ng0-32bit-0.7.3-4.125.x86_64
    • libcap-progs-2.22-11.709.x86_64
    • libcap1-1.10-59.61.x86_64
    • libcap1-32bit-1.10-59.61.x86_64
    • libcap2-2.22-11.709.x86_64
    • libcap2-32bit-2.22-11.709.x86_64
    • libgcc_s1-32bit-4.8.3+r212056-6.3.x86_64
    • libgcc_s1-4.8.3+r212056-6.3.x86_64
    • libpcap1-1.5.3-2.18.x86_64
    • libstdc++6-32bit-4.8.3+r212056-6.3.x86_64
    • libstdc++6-4.8.3+r212056-6.3.x86_64
    • make-4.0-2.107.x86_64
    • mksh-50-2.13.x86_64
    • net-tools-1.60-764.185.x86_64 (for Oracle RAC and Oracle Clusterware)
    • nfs-kernel-server-1.3.0-6.9.x86_64 (for Oracle ACFS)
    • smartmontools-6.2-4.33.x86_64
    • sysstat-8.1.5-7.32.1.x86_64
    • xorg-x11-libs-7.6-45.14
  • Configurar parametros de Kernel requeridos para o SUSE Linux Enterprise Server 
  • Estar variáveis de ambientes Oracle
    • ORACLE_SID
    • ORACLE_BASE
    • ORACLE_HOME
Passos para alterar o diretório padrão /opt/oracle para /usr/oracle:
  • Criar o novo diretório: #mkdir /usr/oracle
  • Setar propriedades de usuário e grupo
    • chown oracle /usr/oracle
    • chgrp install /usr/oracle
  • Setar a variável ORACLE_BASE=/usr/oracle no /etc/sysconfig/oracle
  • Alterar a variável ORACLE_BASE no arquivo /etc/profile.d/oracle.sh
    • ORACLE_BASE=/usr/oracle