sexta-feira, 6 de setembro de 2013

[LINUX] Dividindo arquivo TAR em arquivos menores

Compacte o arquivo normalmente usando tar
$ tar -czvf arquivo.tar.gz arquivo

Depois, use o comando split para dividir o arquivo:
$ split -b 300m "arquivo.tar.gz" "arquivo.tar.gz.part-"

O parâmetro -b define o tamanho que cada parte do arquivo terá.

Para descompactar, primeiro junte os arquivos:
$ cat arquivo.tar.gz.part-* > arquivo.tar.gz

E descompacte normalmente:
$ tar -xvf arquivo.tar.gz

segunda-feira, 19 de agosto de 2013

[ORACLE] Troubleshooting Listener

1. Habilitando trace file:

Caso seja um listener do Oracle Database 11g, adicione este parâmetro no arquivo listener.ora antes de adicionar outros parâmetros de trace:

DIAG_ADR_ENABLED_listenername = OFF

Se o listener congela rapidamente, adicione este parâmetro no arquivo listener.ora e reinicie o listener.

TRACE_LEVEL_listenername = 16

Este parãmetro seta a configuração do nível do arquivo trace que será gerado. Podemos usar outros níveis de acordo com a lista abaixo:

0 or OFF - No trace output
4 or USER - User trace information
10 or ADMIN - Administration trace information
16 or SUPPORT - WorldWide Customer Support trace information

Se o listener congela depois de muito tempo (mais que um dia), adicione os parâmetros abaixo e reinicie o listener:

TRACE_LEVEL_listenername = 16
TRACE_FILELEN_listenername = 512000
TRACE_FILENO_listenername = 2

O parâmetro TRACE_FILELEN_listenername seta o tamanho do arquivo de trace e o parâmetro TRACE_FILENO_listenername seta a quantidade de arquivos de trace

2. Verifique o arquivo listener.log.

3.  Uso de memória do listener, podemos verificar o crescimento do consumo de memória do listener:

Utilize o comando abaixo:
$ cat /proc/<listener_pid>/status

4. Verifique o uso de CPU no momento em que o listener congelou.

Utilize o comando abaixo:
$ top



sexta-feira, 16 de agosto de 2013

[ORACLE] Linkar Netbackup com o Oracle

Executar o seguinte executável com usuário oracle do SO:
/usr/openv/netbackup/bin/oracle_link

Verificar se o arquivo bp.conf está configurado corretamente:
cat /usr/openv/netbackup/bp.conf

Exemplo:
SERVER = netbackup.zeus.corp
CLIENT_NAME = oracle.zeus.corp
REVERSE_NAME_LOOKUP = PROHIBITED
MEDIA_SERVER = nb-media-1.zeus.corp
MEDIA_SERVER = nb-media-2.zeus.corp

IMPORTANTE:
- Setar NB_ORA_POLICY com a policy utilizada no Netbackup no script de backup;
- Não é necessário setar NB_ORA_SERV no script de backup se o servidor do Netbackup estiver setado no bp.conf;
- Em caso de restore: setar NB_ORA_CLIENT com o nome do servidor que fez o backup.

quarta-feira, 12 de junho de 2013

[ORACLE] SQL Loader


1. Crie a tabela no banco de dados.
ATENÇÃO: Preste atenção nos tamanhos e tipos dos campos para evitar erros na importação.

2. Crie o arquivo de controle conforme exemplo:
$ vi loader.ctl

load data
 infile '/home/oracle/arquivo.csv'
into table USUARIO.REMESSAS
 fields terminated by "|" optionally enclosed by '"'
 ( TIPO, DDD, TELEFONE, CONTRATO, DATA_SERVICO, REMESSA, VALOR, COD_SERVICO, CREDITO, RETORNO, SEQUENCIA, MOTIVO, DT_SITUACAO, DT_VENCIMENTO, REF_FATURA, SFA, DT_REF, NSA )

IMPORTANTE:
Caso você for inserir dados numa tabela que não esteja vazia, usar a opção 'append', na linha abaixo de  'infile'.

3. Use comando abaixo para chamar o SQL Loader:
sqlldr user/password@SID control=loader.ctl

NOTA1: Usando a opção ROWS=X é possível dar commit a cada 'X' linhas. Diminuindo a quantidade de commits, a importação fica mais rápida.
NOTA2: Usando a opção DIRECT=TRUE os dados são carregados direto para os datafiles, o que também deixa a importação mais rápida.

4. As linhas que não forem importadas serão logadas em um arquivo com extensão .bad, também será gerado um log da importação com a extensão .log.

domingo, 24 de março de 2013

[ORACLE] Oracle Managed Files (OMF)

O uso do OMF tira a necessidade do DBA manipular arquivos que compõem o banco de dados diretamente no sistema operacional. Você especifica as operações em termos de objetos de banco de dados ao invés de nomes de arquivos. Internamente o Oracle Database usa interfaces do sistema de arquivos padrão para criar e apagar arquivos conforme necessário para as estruturas de banco de dados a seguir:

-Tablespaces;
-Arquivos de redolog on-line;
-Arquivos de controle.

Através dos parâmetros de inicialização abaixo, você pode especificar o diretório a ser usado para um tipo específico de arquivo.

DB_CREATE_FILE_DEST
Define o diretório padrão no filesystem onde o Oracle Database cria arquivos de dados ou arquivos temporários quando não há especificação de arquivo na operação de criação. Também é o diretório padrão para a criação de arquivos de redolog e arquivos de controle se o parâmetro DB_CREATE_ONLINE_LOG_DEST_n não for especificado.

DB_CREATE_ONLINE_LOG_DEST_n
Define o diretório padrão no filesystem onde o Oracle Database cria arquivos de redolog e arquivos de controle quando não há especificação de arquivo na operação de criação. Você pode usar este parâmetro múltiplas vezes, onde 'n' especifica uma cópia multiplexada do arquivo de redolog ou arquivo de controle. Você pode especificar até cinco cópias multiplexadas.

Exemplo de criação de arquivo de dados utilizando OMF:

SQL> alter tablespace USERS add datafile size 10m;

Tablespace alterado.

Nomeação dos arquivos:

File TypeFormatExample

Datafile

o1_mf_%t_%u_.dbf

/u01/oradata/payroll/o1_mf_tbs1_2ixfh90q_.dbf

Tempfile

o1_mf_%t_%u_.tmp

/u01/oradata/payroll/o1_mf_temp1_6dygh80r_.tmp

Redo log file

o1_mf_%g_%u_.log

/u01/oradata/payroll/o1_mf_1_wo94n2xi_.log

Control file

o1_mf_%u_.ctl

/u01/oradata/payroll/o1_mf_cmr7t30p_.ctl

Onde:
  • %t é o nome da tablespace;
  • %u é uma sequência de oito caracteres que garante que não haja duplicidade;
  • %g é o número do grupo do arquivo de redolog.
 Este recurso não afeta a criação ou nomeação de arquivos administrativos, tais como arquivos de rastreamento, auditoria, arquivos de alerta.

Fonte:
http://docs.oracle.com/cd/B10501_01/server.920/a96521/omf.htm

sábado, 26 de janeiro de 2013

[MYSQL] Alterar senhas de usuários

Usando a ferramenta mysqladmin é possível alterar as senhas dos usuários facilmente.

Exemplo:
$ mysqladmin -uusuario -psenhaantiga password novasenha

Caso queira atribuir uma senha para um usuário root que não tenha, utilize o comando abaixo:

$ mysqladmin -u root password novasenha

Também é possível alterar as senhas dos usuários fazendo um update na tabela mysql.user, conforme exemplo abaixo:


Acesse o banco de dados MySQL com o usuário root:
$ mysql -uroot -p

Use o database mysql:
mysql> use mysql;

Altere a senha do usuário desejado:
mysql> update user set password=PASSWORD("NOVASENHA") where User='usuario';

Valide a alteração:
mysql> flush privileges;

E fim:
mysql> exit

Usando SET PASSWORD:
$ mysql -uusuario -p
mysql> SET PASSWORD FOR 'usuario'@'localhost' = PASSWORD('Senha123');



domingo, 13 de janeiro de 2013

[MYSQL] Verificando tabelas corrompidas

É altamente recomendável verificar a integridade das tabelas de seu database MySQL periodicamente, pois  é mais fácil corrigir um problema de corrupção de dados no seu início

Utilizando o comando abaixo você verá quais tabelas precisam sem recuperadas.
O status esperado das tabelas é Ok (Não precisam ser reparadas).

# mysqlcheck -A -e -uroot -psenha_database

Também podemos checar uma tabela individualmente com o comando abaixo:

mysql> check table nome_tabela EXTENDED;

Caso exista alguma tabela que precise ser reparada, você pode usar o comando abaixo:


# mysql -uroot -psenha_database
mysql> use database;
mysql> repair table nome_tabela;

Caso não dê certo, volte o backup mais recente.