Execute a linha de comando abaixo para criar as chaves criptografadas:
ssh-keygen –b 1024 –t rsa
Logo após isso, será solicitado o local e as senhas para a chave, pressione [Enter] em todas as mensagens, sem alterar nada, pois dessa forma, a senha ficará em branco.
Agora, após a chave ter sido criada, é necessário copiá-la para o servidor de destino, para isso, utilize a linhas a seguir:
cd /root/.ssh/
scp id_rsa.pub usuario@hostremoto:/root/.ssh/authorized_keys
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.
sexta-feira, 26 de agosto de 2016
sexta-feira, 19 de agosto de 2016
SQL Server
Microsoft SQL Server
Verifica fragmentação nos Indexes
SELECT object_id AS ObjectID,
index_id AS IndexID,
avg_fragmentation_in_percent AS PercentFragment,
fragment_count AS TotalFrags,
avg_fragment_size_in_pages AS PagesPerFrag,
page_count AS NumPages
FROM sys.dm_db_index_physical_stats(DB_ID('Meu_Banco'),
NULL, NULL, NULL , 'DETAILED')
WHERE avg_fragmentation_in_percent > 0
ORDER BY ObjectID, IndexID
Compila os Indexes do Banco indicado
use NomedaBase
GO
DECLARE @TableName VARCHAR(255)
DECLARE @sql NVARCHAR(500)
DECLARE @fillfactor INT
SET @fillfactor = 80
DECLARE TableCursor CURSOR FOR
SELECT OBJECT_SCHEMA_NAME([object_id])+'.'+name AS TableName
FROM sys.tables
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = 'ALTER INDEX ALL ON ' + @TableName +' REBUILD WITH (FILLFACTOR = ' + CONVERT(VARCHAR(3),@fillfactor) + ')'
EXEC (@sql)
FETCH NEXT FROM TableCursor INTO @TableName
END
CLOSE TableCursor
DEALLOCATE TableCursor
GO
quarta-feira, 22 de junho de 2016
Script DiskFree para Linux
#!/bin/bash
THRESHOLD="20"
EMAIL="user@empresa.com.br"
df -P | awk '{print $6"\t"$5}' |grep "%" | while read LINE; do
PERC=`echo $LINE |awk '{print $2}' |cut -d"%" -f1`
if [ $PERC -gt $THRESHOLD ]; then
echo "ALERT $LINE UTILIZADO em `hostname`" | /bin/mail -s "Disk Space Alert: ${LINE} used on `hostname`" $EMAIL
fi
done
#
THRESHOLD="20"
EMAIL="user@empresa.com.br"
df -P | awk '{print $6"\t"$5}' |grep "%" | while read LINE; do
PERC=`echo $LINE |awk '{print $2}' |cut -d"%" -f1`
if [ $PERC -gt $THRESHOLD ]; then
echo "ALERT $LINE UTILIZADO em `hostname`" | /bin/mail -s "Disk Space Alert: ${LINE} used on `hostname`" $EMAIL
fi
done
#
domingo, 19 de junho de 2016
mySQL - Backups e Restore
Realizar
o backup com o banco parado “fechado”
Observação: O diretório: /var/lib/mysql é o local onde
o mySQL armazena a base de dados.
# /etc/init.d/mysql stop
# tar -zcvf mysql.tar.gz /var/lib/mysql/
# /etc/init.d/mysql start
Realizar
o backup com o mySQL em execução “aberto”
Para isso, é necessário utilizer o executável
mysqldump.
Para salvar todas as base de dados existentes,
execute:
# mysqldump -u root -p --add-drop-table -x -e -A >
backup.sql
Onde:
-u root – Especifica qual o usuário que irá conectar
no mySQL para executar o backup;
-p – Irá solicitor a senha do usuário especificado na
opção –u;
--add-drop-table – Utilizado quando for restaurar esse
backup, caso já exista a base no destino, a mesma será sobre escrita;
-x – trava as bases de dados no momento em que cada
uma é copiada, evitando qualquer problema de inconsistência;
-e – Utilizada para otimizar o processo de backup,
permitindo ao mysqldump combinar argumentos INSERT dentro das tabelas, tornando
o backup e restauração mais rápidos;
-a – Informa que é para fazer um backup completo de
todas as bases de dados existentes;
- > – Redireciona para um arquivo de texto que
conterá o backup.
Realizar
o restore da base de dados mySQL
Observação: Para restaurar um backup deve-se utilizar o utilitário mysql
mysql -u root -p12345 --database=nome_da_base < backup.sql
Se a base já existir no destino, será retornada a
mensagem de erro abaixo:
ERROR 1050 at line 19: Table 'xpto' already exists
Caso isso ocorra, será necessário deletar a base de
dados existente no destino, com o procedimento abaixo:
# mysql -u root -p
Enter password:
mysql> DROP DATABASE xpto;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE DATABASE xpto;
mysql> exit
Bye
Ocomon - Script para Backup
#!/bin/bash
#PARAMETROS
data=`date +%Y%m%d`
mutt='/usr/bin/mutt'
find='/usr/bin/find'
rm='/bin/rm'
null="/dev/null"
ls='/bin/ls'
mysqldump='/usr/bin/mysqldump'
cd /home/backup/ocomon
#Gera o arquivo de backup
$mysqldump -u ocomon --password=senha --opt ocomon >
bkp_dump_ocomon_$data.sql
#Lista o diretório após o arquivo ser gerado
$ls -lh > lista_dir.txt
#Informa o Usuário sobre o Backup
$mutt usuario@empresa.com.br -s "Backup Ocomon -
$data" -a lista_dir.txt < $null
#Deleta o backup com data maior que 48 horas
$find -type f -mtime 2 -iname "bkp_dump*" -exec
$rm -f {} \;
$find -type f -mtime 3 -iname "bkp_dump*" -exec
$rm -f {} \;
$find -type f -mtime 4 -iname "bkp_dump*" -exec
$rm -f {} \;
$find -type f -mtime 5 -iname "bkp_dump*" -exec
$rm -f {} \;
$find -type f -mtime 6 -iname "bkp_dump*" -exec
$rm -f {} \;
$find -type f -mtime 7 -iname "bkp_dump*" -exec
$rm -f {} \;
$find -type f -mtime 8 -iname "bkp_dump*" -exec
$rm -f {} \;
$find -type f -mtime 9 -iname "bkp_dump*" -exec
$rm -f {} \;
$find -type f -mtime 10 -iname "bkp_dump*"
-exec $rm -f {} \;
$find -type f -mtime 11 -iname "bkp_dump*"
-exec $rm -f {} \;
$find -type f -mtime 12 -iname "bkp_dump*"
-exec $rm -f {} \;
Ocomon - Configurando Layout para qualquer navegador
Na pasta do ocomon, dentro de includes/css/estilos.css.php,
localize o código:
print “body
{
font-family: tahoma;
color:black;
font-size:11px;
background-color:”.$row['tm_color_body'].”;
} “;/*#cde5ff background-color:#d9d8da; 5E515B font-size:
11px; */
Logo após esta linha, adicione:
print “
#centro {
min-width: 140px;
width: 140px;
}”;
Ocomon - Migrando Base de Dados Ocomon
Existe a necessidade de migrar as informações da antiga
instalação do ocomon existente em um antigo ocomon para o novo equipamento com
essa nova instalação do ocomon.
Para isso, acesse o servidor antigo e gere o dump com o
comando abaixo:
mysqldump -u root -p --opt ocomon > dump.sql
Executando a importação, para isso, acesse o novo
servidor e execute o comando abaixo:
mysql -u root -p senha database_name < dump.sql
Nesse momento, ao acessar a página do ocomon, deve ser
observado que todas as informações já estão prontas para a utilização, podendo
desligar o antigo ocomon no servidor antigo.
quarta-feira, 8 de junho de 2016
ADRCI - Oracle
Mostra o local home do adrci
adrci> show homes
Altera o Home Path para o ADRCI
adrci> set homepath PATH
Mostra o Alert Log
Mostra as ultimas 10 linhas
SHOW ALERT -TAIL
Mostra as ultimas 50 linhas
SHOW ALERT -TAIL 50
Mostra o alert e suas novas atualização
SHOW ALERT -TAIL –F
SHOW ALERT -P “MESSAGE_TEXT LIKE ‘%ORA-600%'”
Mostra arquivos trace
Lista os traces
adrci>SHOW TRACEFILE
Mostra os traces que contenha mmon
adrci>SHOW TRACEFILE %mmon%
Mostra todos os traces do ultimo que foi modificado
adrci>SHOW TRACEFILE -RT
Mostra os incidentes
adrci>SHOW INCIDENT
adrci>SHOW INCIDENT -MODE BRIEF
adrci>SHOW INCIDENT -MODE DETAIL
adrci>SHOW INCIDENT -MODE DETAIL -P “INCIDENT_ID=1591”
http://www.oracle.com/technetwork/pt/articles/database-performance/automatic-diagnostic-repository-2417674-ptb.html
terça-feira, 31 de maio de 2016
Ativar Trace Log no TSM
trace disable *
trace enable pvr addmsg
trace begin <path_to_file>/server.out
<< Recrie o procedimento que está retornando erro ou ocorrendo algum problema>>
trace flush
trace end
trace disable *
Agora no arquivo server.out terá em detalhes tudo o que ocorreu nesse período que aconteceu o erro.
sexta-feira, 27 de maio de 2016
TAR - Compactação e Descompactação
TAR
Gerar arquivo .tar:
tar -zcf nome_diretorio_ou_arquivo.tar diretorio_ou_arquivo_a_ser_compactado
Descompactar arquivo .tar:
tar -zxvf arquivo.tar
terça-feira, 24 de maio de 2016
mySQL - Comandos Úteis
mySQL
Conectar no mySQL
mysql -u root -p
Mostra o charset que esta sendo utilizado pelo mySQL
Esse comando é útil para saber qual o tipo de charset esta configurado no mySQL, normalmente necessário para analisar problemas de acentuação.
SHOW VARIABLES LIKE 'character%';
Para alterar os valor é necessário utilizar a instrução set, conforme exemplo abaixo:
set character_set_server = utf8;
Conceder permissão no mySQL
GRANT [tipo de permissão] ON [nome da base de dados].[nome da tabela] TO ‘[nome do usuário]’@'localhost’;
flush privileges
quarta-feira, 4 de maio de 2016
Regra com Iptables para mascarar IP Interno
Hoje precisei realizar o mascaramento do IP Interno do meu roteador para que a comunicação conseguisse chegar em um switch/roteador, ligado na mesma rede, para atender um equipamento específico.
No roteador em questão possuo algumas placas virtuais na Eth0, pois tenho somente uma interface física Eth0.
iptables -I FORWARD -i eth0 -o eth0 -j ACCEPT
No roteador em questão possuo algumas placas virtuais na Eth0, pois tenho somente uma interface física Eth0.
iptables -I FORWARD -i eth0 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -d IP_DESTINO -s FAIXA_ORIGEM/24 -p tcp -j SNAT --to IP_DESSE_IPTABLES
Desativar Drive TAPE no TSM
Para desativar
update drive nome_library nome_driver online=no
update path nome_server nome_driver srct=server destt=drive libr=nome_library online=no
Para ativar é o inverso e o parâmetro online=yes
update drive nome_library nome_driver online=no
update path nome_server nome_driver srct=server destt=drive libr=nome_library online=no
Para ativar é o inverso e o parâmetro online=yes
segunda-feira, 4 de abril de 2016
VMWare vCenter não inicializa o banco de dados
Não estava conseguindo me conectar no VMWare vSphere Client e identifiquei que o motivo era o vCenter não estava iniciado.
Devido a isso, me conectei diretamente no Host que hospeda o vCenter para subir o serviço, mas ao tentar subir o serviço, depois de muito tempo tentando, era retornada a mensagem abaixo nos logs do Windows.
The description for Event ID 1000 from source VMware VirtualCenter Server cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
CREATE DATABASE or ALTER DATABASE failed because the resulting cumulative database size would exceed your licensed limit of 10240 MB per database.
Could not allocate space for object 'dbo.VPX_HIST_STAT1_220'.'IX_VPX_HIST_STAT1_220_TIME_ID' in database 'VIM_VCDB' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
Ou seja, o vCenter estava informando que não consegui subir, pois o banco de dados Sql Server Express havia atingido o limite do database e não era possível expandir esse database.
Na documentação da própria VM Ware: (Limpando dados antigos do banco de dados usado pelo VMware vCenter Server (2037293)) é explicado que o banco de dados do vCenter, por padrão, guarda as estatísticas de desempenho dos últimos 365 dias dentro do próprio banco e com isso, pode ocorrer do banco lotar, caso seja utilizado o SQL Express.
Executei os procedimentos descritos no KB acima e após reiniciar o servidor, o vCenter voltou a subir normalmente.
Segue o resumo do procedimento:
Para limpar os dados na tabela VPX_EVENT:
Observação: Se você estiver usando o SQL Server 2008, clique com o botão direito do mouse na tabela dbo.VPX_PARAMETER e clique em Edit Top 200 Rows.
Modifique event.maxAge para 30 e modifique o valor event.maxAgeEnabled para true.
Modifique task.maxAge para 30 e modifique o valor task.maxAgeEnabled para true.
Observação: para diminuir o tempo gasto na limpeza de dados, realize as etapas anteriores em vários intervalos. Para tal, certifique-se de manter o valor padrão de event.maxAge e de task.maxAge, e execute a etapa 6 para realizar a limpeza. Em seguida, reduza os valores event.maxAge e task.maxAge em 60 e execute a limpeza. Repita as etapas até que o valor atinja 30 para o processo final de limpeza.
Execute o procedimento armazenado integrado:
Isso limpa os dados das tabelas vpx_event, vpx_event_arg e vpx_task na data especificada em maxAge.
Quando essa etapa tiver sido concluída com êxito, feche o SQL Management Studio e inicie o serviço do VMware Virtual Center Server.
Para garantir que o Statistics Level padrão esteja definido como 1:
Para alterar o valor, selecione o Interval Duration, clique em Edit e selecione Level 1 no menu suspenso.
Devido a isso, me conectei diretamente no Host que hospeda o vCenter para subir o serviço, mas ao tentar subir o serviço, depois de muito tempo tentando, era retornada a mensagem abaixo nos logs do Windows.
The description for Event ID 1000 from source VMware VirtualCenter Server cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
CREATE DATABASE or ALTER DATABASE failed because the resulting cumulative database size would exceed your licensed limit of 10240 MB per database.
Could not allocate space for object 'dbo.VPX_HIST_STAT1_220'.'IX_VPX_HIST_STAT1_220_TIME_ID' in database 'VIM_VCDB' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
Ou seja, o vCenter estava informando que não consegui subir, pois o banco de dados Sql Server Express havia atingido o limite do database e não era possível expandir esse database.
Na documentação da própria VM Ware: (Limpando dados antigos do banco de dados usado pelo VMware vCenter Server (2037293)) é explicado que o banco de dados do vCenter, por padrão, guarda as estatísticas de desempenho dos últimos 365 dias dentro do próprio banco e com isso, pode ocorrer do banco lotar, caso seja utilizado o SQL Express.
Executei os procedimentos descritos no KB acima e após reiniciar o servidor, o vCenter voltou a subir normalmente.
Segue o resumo do procedimento:
Para limpar os dados na tabela VPX_EVENT:
- Conecte-se a Servername\SQL Database e faça login com as credenciais adequadas.
- Clique em databases para expandir e selecione VIM_VCDB > Tables.
- Clique com o botão direito do mouse na tabela dbo.VPX_PARAMETER e selecione Open.
Observação: Se você estiver usando o SQL Server 2008, clique com o botão direito do mouse na tabela dbo.VPX_PARAMETER e clique em Edit Top 200 Rows.
Modifique event.maxAge para 30 e modifique o valor event.maxAgeEnabled para true.
Modifique task.maxAge para 30 e modifique o valor task.maxAgeEnabled para true.
Observação: para diminuir o tempo gasto na limpeza de dados, realize as etapas anteriores em vários intervalos. Para tal, certifique-se de manter o valor padrão de event.maxAge e de task.maxAge, e execute a etapa 6 para realizar a limpeza. Em seguida, reduza os valores event.maxAge e task.maxAge em 60 e execute a limpeza. Repita as etapas até que o valor atinja 30 para o processo final de limpeza.
Execute o procedimento armazenado integrado:
- Vá até VIM_VCDB > Programmability > Stored Procedures.
- Clique com o botão direito do mouse em dbo.cleanup_events_tasks_proc e selecione Execute Stored Procedure.
Isso limpa os dados das tabelas vpx_event, vpx_event_arg e vpx_task na data especificada em maxAge.
Quando essa etapa tiver sido concluída com êxito, feche o SQL Management Studio e inicie o serviço do VMware Virtual Center Server.
Para garantir que o Statistics Level padrão esteja definido como 1:
- Usando o vSphere Client, conecte-se ao vCenter Server como administrador.
- Vá até Administration > vCenter Server Settings > Statistics.
- Em Statistics Intervals, verifique se a coluna Statistics Level está definida como 1.
Para alterar o valor, selecione o Interval Duration, clique em Edit e selecione Level 1 no menu suspenso.
sexta-feira, 1 de abril de 2016
Ocomon - Extrair relatórios de Indicadores de T.I. direto do mySQL
Segue abaixo o SQL que deve ser executado no banco de dados
mySQL com o schema: ocomon, essa consulta irá trazer os indicadores que devem
ser salvos na planilha mensal para que seja gerado os gráficos.
use ocomon;
SELECT o.Numero,
p.problema AS Tipo,
cat.probt1_desc as Categoria,
o.contato AS Contato,
o.descricao AS Descrição,
m.solucao AS Solução,
s.sistema AS Área,
l.local AS Localização,
t.status AS Situação,
data_abertura AS Abertura,
data_fechamento AS Fechamento,
login AS Analista
FROM
ocorrencias AS o
INNER JOIN sistemas AS s ON o.sistema = s.sis_id
INNER JOIN usuarios AS u ON o.operador = u.user_id
INNER JOIN problemas AS p ON o.problema = p.prob_id
INNER JOIN prob_tipo_1 AS cat ON cat.probt1_cod =
p.prob_tipo_1
INNER JOIN localizacao AS l ON o.local = l.loc_id
INNER JOIN status AS t ON o.status = t.stat_id
LEFT JOIN prob_tipo_3 AS c ON c.probt3_cod =
p.prob_tipo_3
LEFT JOIN solucoes AS m on o.numero = m.numero
WHERE t.stat_id IN (1,2,3,4,7,12,15,16,19,21,22,28,29,25,26,27,30,31)
AND data_fechamento BETWEEN '2016-01-01 00:00:00' AND
'2016-01-31 23:59:59'
AND (s.sistema = 'TI_Sistemas' OR s.sistema =
'TI_Suporte')
GROUP BY
p.problema,
c.probt3_desc,
s.sistema,
l.local,
numero,
t.status,
data_abertura,
data_fechamento,
login,
DATE_FORMAT(data_abertura, '%Y-%m'),
o.descricao,
m.solucao
ORDER BY 1
Copiar o SQL acima para um notepad e depois executá-lo no
mySQL.
Observação:
Observação:
- Com os dados retornados será possível criar uma planilha no Excel para gerar gráficos. Adeque os campos s.sistema acima, conforme os grupo de atendimento em sua empresa, aqui eu separei o Ocomon em dois grupos distintos para atendimento, que são: "TI_Sistemas" que são os programadores que atendem e o grupo "TI_Suporte" que são os analistas de suporte que atendem.
- O valor datas no Where deve ser alterado para o período que você deseja extrair o seu relatório.
- Montei uma planilha em Excel e criei algumas Abas, em uma delas, eu insiro o retorno do Select acima e nas demais Abas, eu criei gráficos e apontamentos diretamente no Excel, pois achei mais fácil e já que não tenho conhecimento suficiente em PHP para alterar no próprio Ocomon.
quarta-feira, 30 de março de 2016
Desativar SELinux no CentOS 7 64 bits
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
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
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)