Acesse o arquivo: vi /etc/sysconfig/selinux e altere a linha abaixo:
de:
SELINUX=enforcing
para:
SELINUX=disabled
Execute o comando abaixo para o parâmetro acima seja carregado.
setenforce 0
Verifique se funcionou executando o comando abaixo. Deve retornar o valor "Disabled"
getenforce
Blog com procedimentos, comandos e resolução de problemas para Oracle, Linux e TSM obtidos no meu dia a dia de trabalho como administrador Linux e DBA Oracle.
quarta-feira, 30 de março de 2016
Instalar Client Oracle CentOS 7 64 bits
Realizar a instalação dos pacotes abaixo com o comando rpm -ivh
# rpm -ivh oracle-instantclient-basic-10.2.0.4-1.i386.rpm
# rpm -ivh oracle-instantclient-devel-10.2.0.4-1.i386.rpm
# rpm -ivh oracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm
Após a instalação os arquivos ficarão armazenados nos diretórios:
- Código Fonte em: /usr/include/oracle
- Binários e bibliotecas em: /usr/lib/oracle
Após a instalação, verifiquei que ainda não era possível executar, por exemplo, o SQLPlus, provavelmente por não ter criado a variável ORACLE_HOME e ORACLE_BASE no PATH do meu usuário no Linux. Identifiquei que o Linux conseguiu localizar o binário no /usr/bin/sqlplus, mas retornando a mensagem abaixo:
-bash: /usr/bin/sqlplus: /lib/ld-linux.so.2: bad ELF interpreter: Arquivo ou diretório não encontrado
Inseri as variáveis abaixo no .bash_profile:
# VARIAVEIS ORACLE CENTOS 7
export ORACLE_BASE="/usr/lib/oracle/10.2.0.4"
export ORACLE_HOME="/usr/lib/oracle/10.2.0.4/client"
export LD_LIBRARY_PATH="/usr/lib/oracle/10.2.0.4/client/lib"
export NLS_LANG=ENGLISH.WE8ISO8859P1
export NLS_DATE_FORMAT='DD/MM/RRRR'
export TNS_ADMIN="/etc/tnsnames.ora"
PATH=$PATH:$HOME/bin:$ORACLE_BASE:$ORACLE_HOME:$LD_LIBRARY_PATH:$TNS_ADMIN
Mesmo após ter inserido as variáveis acima, a mensagem de erro continuava.
Identifiquei que essa mensagem ocorria, devido ao fato que os rpms do client Oracle instalado eram de 32 bits e o CentOS 7 era de 64 bits. A instalação minima do CentOS não instala a glibc de 32 bits, somente a de 64 bits, com isso, os programas de 32 bits podem apresentar a mensagem acima. Devido a isso, realizei a instalação da glic 32 bits, conforme as linhas abaixo:
yum install glibc.i686
yum install glibc-devel.i686
yum install glibc-static.i686
Após a instalação, consegui executar o sqlplus normalmente:
SQL*Plus: Release 10.2.0.4.0 - Production on Wed Mar 30 10:03:32 2016
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Enter user-name:
Falta copiar o arquivo tnsnames.ora para o /etc
Após isso, consegui me conectar no Oracle nas TNS listados no arquivo tnsnames.ora
# rpm -ivh oracle-instantclient-basic-10.2.0.4-1.i386.rpm
# rpm -ivh oracle-instantclient-devel-10.2.0.4-1.i386.rpm
# rpm -ivh oracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm
Após a instalação os arquivos ficarão armazenados nos diretórios:
- Código Fonte em: /usr/include/oracle
- Binários e bibliotecas em: /usr/lib/oracle
Após a instalação, verifiquei que ainda não era possível executar, por exemplo, o SQLPlus, provavelmente por não ter criado a variável ORACLE_HOME e ORACLE_BASE no PATH do meu usuário no Linux. Identifiquei que o Linux conseguiu localizar o binário no /usr/bin/sqlplus, mas retornando a mensagem abaixo:
-bash: /usr/bin/sqlplus: /lib/ld-linux.so.2: bad ELF interpreter: Arquivo ou diretório não encontrado
Inseri as variáveis abaixo no .bash_profile:
# VARIAVEIS ORACLE CENTOS 7
export ORACLE_BASE="/usr/lib/oracle/10.2.0.4"
export ORACLE_HOME="/usr/lib/oracle/10.2.0.4/client"
export LD_LIBRARY_PATH="/usr/lib/oracle/10.2.0.4/client/lib"
export NLS_LANG=ENGLISH.WE8ISO8859P1
export NLS_DATE_FORMAT='DD/MM/RRRR'
export TNS_ADMIN="/etc/tnsnames.ora"
PATH=$PATH:$HOME/bin:$ORACLE_BASE:$ORACLE_HOME:$LD_LIBRARY_PATH:$TNS_ADMIN
Mesmo após ter inserido as variáveis acima, a mensagem de erro continuava.
Identifiquei que essa mensagem ocorria, devido ao fato que os rpms do client Oracle instalado eram de 32 bits e o CentOS 7 era de 64 bits. A instalação minima do CentOS não instala a glibc de 32 bits, somente a de 64 bits, com isso, os programas de 32 bits podem apresentar a mensagem acima. Devido a isso, realizei a instalação da glic 32 bits, conforme as linhas abaixo:
yum install glibc.i686
yum install glibc-devel.i686
yum install glibc-static.i686
Após a instalação, consegui executar o sqlplus normalmente:
SQL*Plus: Release 10.2.0.4.0 - Production on Wed Mar 30 10:03:32 2016
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Enter user-name:
Falta copiar o arquivo tnsnames.ora para o /etc
Após isso, consegui me conectar no Oracle nas TNS listados no arquivo tnsnames.ora
domingo, 27 de março de 2016
Oracle - Procedimentos, Comandos e Selects Úteis
Post Oracle - Procedimentos, Comandos e Selects Úteis Resenha feita por Breny Ricardo Martins Coelho em 28/03/2016. Muito útil no dia a dia Conteúdo deste post foi validado! Classificação: 5
ASM:
- Verificar espaço disponível dentro do ASM
Data Base:
- Identificando a versão do banco de dados Oracle Server
Funções:
- Deletando uma função
Tablespaces:
- Dropar uma Tablespace
- Informa as Tablespaces existentes
- Verifica o Tamanho das Tablespaces
- Informa o espaço ocupado nas Tablespaces system e sysaux
- Colocar Tablespace em modo off line
- Verifica quais objetos estão crescendo
- Verifica o espaço livre nas Tablespaces
- Verifica se a Tablespace está gerenciada localmente
- Gerenciando Tablespace TEMP
ASM
Verificar espaço disponível dentro do ASM
Logar com o usuário: grid para executar o comando abaixo:
asmcmd lsdg
Data Base
Identificando a versão do banco de dados Oracle Server
COL PRODUCT FORMAT A35
COL VERSION FORMAT A15
COL STATUS FORMAT A15
SELECT * FROM PRODUCT_COMPONENT_VERSION;
Funções
Deletando uma função
Execute o comando abaixo para deletar uma função específica.
DROP FUNCTION OWNER_FUNCTION.FUNCTION_NAME;
Tablespaces
Dropar uma Tablespace
DROP TABLESPACE TABLESPACE_NAME INCLUDING CONTENTS AND DATAFILES;
Informa as Tablespaces existentes
SELECT TABLESPACE_NAME FROM DBA_TABLESPACES;
Verifica o Tamanho das Tablespaces
SET LINESIZE 100
COLUMN TABLESPACE FORMAT A15
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;
Informa o espaço ocupado nas Tablespaces system e sysaux
Observação
- As colunas USED_SPACE e TABLESPACE_SIZE são mostrados em blocos de dados, devido a isso, é necessário multiplicar o valor informado nas duas colunas pelo valor padrão do tamanho do bloco Oracle, que é normalmente 8192.
- O interessante a ser notar nos resultados da view DBA_TABLESPACE_USAGE_METRICS é que ela não leva em conta somente a soma do tamanho atual dos arquivos de dados que compõem uma tablespace, mas o tamanho máximo que eles poderão atingir de acordo com a configurações de cada um, ou seja, dependerá também do valor de MAXSIZE caso a opção AUTOEXTEND do arquivo de dados esteja habilitada.
SELECT *
FROM dba_tablespace_usage_metrics
WHERE tablespace_name in ('SYSTEM', 'SYSAUX')
ORDER BY 1;
Colocar Tablespace em modo off line
ALTER TABLESPACE TABLESPACE_NAME OFFLINE;
Verifica quais objetos estão crescendo
Observação
A instrução abaixo deve ser executada a cada hora para se ter a idéia do que está crescendo.
SELECT SEGMENT_NAME, EXTENTS, BYTES, MAX_EXTENTS, NEXT_EXTENT, SEGMENT_TYPE FROM DBA_SEGMENTS WHERE OWNER = 'SYS' ORDER BY BYTES DESC;
Verifica o espaço livre nas Tablespaces
SELECT TABLESPACE_NAME, SUM(BYTES) FREE_SPACE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME;
Verifica se a Tablespace está gerenciada localmente
SELECT TABLESPACE_NAME, EXTENT_MANAGEMENT FROM DBA_TABLESPACES WHERE TABLESPACE_NAME = 'SYSTEM';
Gerenciando Tablespace TEMP
Adicionando um tempfiles
ALTER TABLESPACE TABLEPSACE_TEMP_NAME ADD TEMPFILE 'ENDEREÇO_DATA_FILE' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE 512M;
Deletando um tempfile
ALTER DATABASE TEMPFILE 'ENDEREÇO_DATA_FILE' OFFLINE;
ALTER DATABASE TEMPFILE 'ENDEREÇO_DATA_FILE' DROP;
SELECT FILE_NAME, TABLESPACE_NAME FROM DBA_TEMP_FILES
O datafile que você excluiu, não pode ser mais listado
Acesse o diretório no sistema operacional onde o datafile está armazenado e a princípio mova-o para outro diretório;
Se possível, realize um shutdown, seguido de um startup na instância com o objetivo de verificar se o Oracle retornará algum erro, caso não retorne, delete o arquivo movido.
Acesse o diretório no sistema operacional onde o datafile está armazenado e a princípio mova-o para outro diretório;
Se possível, realize um shutdown, seguido de um startup na instância com o objetivo de verificar se o Oracle retornará algum erro, caso não retorne, delete o arquivo movido.
Assinar:
Postagens (Atom)