Announcing the SQL Server Theme Song Winners

Só passando mesmo pra deixar o link dessa playlist que achei muito legal

 

Announcing the SQL Server Theme Song Winners

 

Meus dois centavos !!

Kenia Milene

Excluir Target no Em12c

Caso seja necessário excluir um target no Enterprise Manager 12C, pode ser feito através do dashboard.
Para isso clique no menu Targets e em seguida All Targets.

x

Selecione o Target a ser excluido

x2

Clique no menu do lado esquedo / Target Setup / Remove Target

x

Caso aconteça de dar erro e não for possível excluir o Target, pode ser feito via console.

Antes é necessário fazer o Login

[oracle@EMServer ~]$ $OMS_HOME/bin/emcli login -username=sysman -password=xxxxx
Login successful

Depois listar os targets

[oracle@EMServer ~]$ $OMS_HOME/bin/emcli get_targets
 ID Status          Target Type Target Name
 1  Agent Unreachab host         hostname
 4  Agent Unreachab oracle_emd   hostname:3872

É possivel filtras a listagem dos Targets por tipo:

[oracle@EMServer ~]$ $OMS_HOME/bin/emcli get_targets -targets="databa%:%oracle%"
[oracle@EMServer ~]$ $OMS_HOME/bin/emcli get_targets -targets="oracle_emd"
[oracle@EMServer ~]$ $OMS_HOME/bin/emcli get_targets -targets="host%"

Faça a exclusão do Target

[oracle@EMServer ~]$ $OMS_HOME/bin/emcli delete_target -name="hostname" -type="host" -delete_monitored_targets
Target "hostname:host" deleted successfully
[oracle@EMServer ~]$ $OMS_HOME/bin/emcli delete_target -name="hostname:3872" -type="oracle_emd" -delete_monitored_targets -async
Target "hostname:3872:oracle_emd" deleted successfully

Faça a sincronização

[oracle@EMServer ~]$ $OMS_HOME/bin/emcli sync
Synchronized successfully

Meus dois centavos !!

Kenia Milene

Está aberta a chamada para os interessados em palestrar no DBA BRASIL 1.0 !!!

Pessoal agora é Oficial:

Se você tem interesse em palestrar em um evento falando sobre Banco de Dados, então está será a sua chance!

Chamada para trabalhos: Se você tiver interesse em apresentar uma palestra neste evento, preencha oformulário de chamada para trabalhos, que estará disponível até o final do dia 18/3/16. Os organizadores farão uma seleção e entrarão em contato com os escolhidos.

Está aberta a chamada para os interessados em palestrar no DBA BRASIL 1.0 !!!

Além da chamada, você encontra informações do evento no site.

Acesse http://dbabrasil1.0.dbabr.com.br

Acesse, inscreva suas palestras e divulgue!!

Meus dois centavos !!

Kenia Milene
Seguir @keniamilene

Oracle Enterprise Manager Cloud Control 12c – conceitos e arquitetura

Para quem ainda tem dúvidas sobre a arquitetura do EM12C, se migra ou não migra ou se ele é bom o suficiente.

Li um artigo do Victor Armbrust (@varmbrust) na imasters que pode esclarecer muitas de suas dúvidas !!!

Oracle Enterprise Manager – conceitos e arquitetura

Meus dois centavos !!

Kenia Milene

Seguir @keniamilene

Instalação de Client Oracle 11g Com o Componente ODP Para FrameWork 4.0

Saudações Terráqueos !!!!!

Eis que você esta tranquila, sorridente, saltitante  feliz da vida trabalhando, quando chega aquele pedido escabroso:

Preciso que seja feita a instalação do Oracle Client 11g. Até ai tudo bem …. Eis que a alma privilegiada solta: “Mas eu migrei pra Framework 4.0, sendo assim preciso que seja instalado o ODP para 4.0”. Começa ai o inferno !!!!!

Baixei o client do site da Oracle, baixei o ODP, fiz a instalação padrão e NADA !!!!!  O cliente diz que a aplicação não conecta no banco. Depois de muito apanhar, entendi que ao instalar o ODP, ele cria uma nova estrutura de diretórios.

Isso quer dizer que vc tem que replicar o TNSNAMES.ORA, SQLNET.ORA e LDAP.ORA para o …/Network/Admin do client, Vejam abaixo os passos de como fazer todo esse processo sem precisar arrancar os cabelos rs….

Instalação do Client

1 – Dentro da pasta de instalação do Client Oracle executar o SETUP e escolha a opção “Personalizado“

1

2 – Deixe apenas o idioma em ingles

2

3 – Ao especificar um caminho para o Oracle base mantenha da seguinte forma:
D:\oracle\base

Automaticamente vai alterar o caminho da instalação, caso contrario, altere para o caminho abaixo. Muita atenção no ultimo diretório (client_1)
D:\oracle\base\product\11.2.0\client_1

3

4 – Nesse questionamento, marque “SIM” e prossiga:

4

5 – Marque as opções que aparece abaixo:

5

Perceba que será instalado o Oracle Data Provider para .Net, porém essa versão atende até a versão 3.5 do Framework. Não se esqueça de selecionar.

Analisar o Resumo clique em “Finalizar”, o mesmo vai iniciar a instalação:

6

6 – Após a instalação abrirá uma janela de “Assistente de Configuração Oracle Net” Pode cancelar o mesmo e fechar a instalação do Client:

Instalação do Componente

7 – Dentro da pasta de instalação do Client ODAC executar o SETUP

7

8 – Selecione Data Access Components para  Oracle Client

8

9 – Ao especificar um caminho para o Oracle base mantenha da seguinte forma:
D:\oracle\base

Automaticamente vai alterar o caminho da instalação, caso contrario, altere para o caminho abaixo. Muita atenção no ultimo diretório (client_2), pois acima já foi instalado o cliente_1. Sendo assim podemos entender que será criado uma nova arvore de diretórios de cliente para o novo componente.
D:\oracle\base\product\11.2.0\client_2

9

10 – Na tela de componentes, não altere, clique em “próximo

10

11 – Apenas clique em “próximo” que a instalação dará inicio

11

12 – Analisar o Resumo clique em “Instalar”, o mesmo vai iniciar a instalação:

12

12a

13 – Ao termino da instalação clique em “SAIR”

13

Cópia dos Arquivos de Conexão com o Banco de Dados

14 – Copie os arquivos LDAP.ORA, SQLNET.ORA e se necessário TNSNAMES.ORA no caminho abaixo, sendo que deve-se copiar para as 2 arvores de diretórios: cliente_1 e cliente_2:

Exemplo:

D:\oracle\product\11.2.0\client_1\network\admin
D:\oracle\product\11.2.0\client_2\network\admin

14

Configuração das Variavéis de Ambiente

15 – Clique com o botão direto no Meu Computador, opção “Propriedades” e clique em “Configurações Avançadas de Sistema”:

15

16 – Clique no último botão da Aba Avançado “Variáveis de Ambiente”   e no retângulo abaixo, “Variáveis de sistema”, selecione a linha “Path” e clique em “Editar”:

16

Atenção esse ponto é importante:

Após a instalação do cliente provavelmente a última variável Path será a da instalação do componente:   D:\oracle\base\product\11.2.0\client_2

Recorte o caminho da instalação do componente inteiro do “D:” ao “bin;” e copie no final de toda a linha do campo “Valor da variável” (adicione um ; antes) e pressione “OK” e OK” novamente para sair da opção de variável de ambiente:

16a

17 – Após o termino da instalação e configuração do Client e Componente, deve-se efetuar um teste de conexão com o SQLPLUS:

17

User-name: <USERNAME>@<instance>

Password: xxxxxx

18

Configuração do Componente

18 – Algumas aplicações tem em seu Home a DLL do Oracle Data Access, porém versão 2. É necessário fazer a troca pelo componente versão 4.
Crie um diretório e mova a versão antiga para o mesmo

19

19 – Copie a nova versão que esta no caminho abaixo, para o diretório da aplicação. Verifique com a equipe web o caminho. Por ex:

19a

20 – Certifique-se de que a versão copiada é mesmo a versão 4, clicando no componente com o botão direito e opção “Propriedades”:

20

Recicle na Aplicação

21 – Para finalizar o processo é necessário fazer um recicle na aplicação para que ela possa ler o novo componente. Para isso use o IIS para fazer um Recicle na aplicação:

21

Espero que tenha ajudado…

Meus 2 centavos !!!

Kenia Milene

Mysql 5 e Seu Bug de Replicação – Error_code: 1535

Se por um acaso em sua replicação você se deparar com o erro 1535:

mysql> SHOW SLAVE STATUS\G
Last_Errno: 1535
Last_Error:Table definition on master and slave does not match: Column ### type mismatch - received type 0, table_name has type 246, Error_code: 1535

Acredite, você acaba de se deparar com um BUG de atualização de versão do MySql. Isso acontece porque o campo DECIMAL na versão 4 tem seu formato interno= 0, e a partir da versão 5 seu formato interno mudou para 246,  ao atualizar o MySql de 4 para 5 esse formato não é migrado.

No meu caso eu tenho um servidor MASTER que era 4 e foi atualizado para 5, e o SLAVE  foi instalado já com a versão 5. quando a replicação é ativada, os formatos do campo DECIMAL conflitam e nesse momento acontece o erro.

Para resolver esse problema, é necessário que o formato interno dos campos DECIMAL no MASTER seja igual a 246. Nesse caso, basta usar o ALTER TABLE no campo DECIMAL da tabela no servidor MASTER, os formatos ficaram iguais nas 2 pontas e esse erro não mais acontece.

Porém a tabela já tem dados e a replicação esta ativa, enquanto o problema não é resolvida a replicação fica parada. Por isso é necessário parar a replicação, resolver o problema do formato e depois reativar a replicação:

SLAVE

mysql> stop slave;
mysql> reset slave;

MASTER

mysql> ALTER TABLE table_name MODIFY COLUMN column DECIMAL;

Agora, para reativar a replicação, precisamos do numero do binário e da posição:

mysql> show master status;
+-------------------------------+----------+--------------+------------------+
| File                          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------------------+----------+--------------+------------------+
| SERVER1-mysql-bin.005435      |  38502167 |              |                 |
+-------------------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

SLAVE

mysql> CHANGE MASTER TO
         MASTER_HOST='SERVER1',
         MASTER_USER='repl',
         MASTER_PASSWORD='XXXXXXX',
         MASTER_PORT=3306,
         MASTER_LOG_FILE='mysql-bin.005435',
         MASTER_LOG_POS=38502167
;
mysql> start slave;
mysql> SHOW SLAVE STATUS\G

E é isso galera espero que possa ajudar como me ajudou !!!!

Referencia: mysql.com

Kenia Milene

Como fazer uma conexão de PHP com MYSQL

String de conexão dp PHP para Mysql.

Simples rápido fácil e funcional !!!


<?
$host =
"localhost"; //IP do Servidor de Banco. Caso seja o mesmo onde esta desenvolvendo é localhost
$user = "usuario"; //Usuario de conexao no banco ( Crie um no banco caso não tenha)
$pass = "senha"; //Senha $banco = "banco"; //Nome do banco de dados
$conexao = mysql_connect($host, $user, $pass) or die (mysql_error()); mysql_select_db($banco);
?>

 

MSSQL – TEMPDB – O que fazer quando receber um alarme por falta de espaço

   Inicio esse post com uma parte do artigo do MSDN explicando o que é uma TEMPDB.

   O banco de dados do sistema tempdb é um recurso global disponível a todos os usuários conectados a uma instância de SQL Server e é usado para manter o seguinte:
  • Os objetos de usuário temporários criados explicitamente como: tabelas temporárias globais ou locais, procedimentos armazenados temporários, variáveis de tabela ou cursores.
  • Objetos internos criados por Mecanismo de Banco de Dados do SQL Server, por exemplo, tabelas de trabalho para armazenar resultados intermediários para spool ou classificação.
  • Versões de linha geradas por transações de modificação de dados em um banco de dados que usa a leitura de confirmados usando transações de isolação de controle de versão de linha ou isolação de instantâneo.
  • As versões de linhas geradas por meio de transações de modificação de dados para recursos como: operações de índice on-line, vários conjuntos de resultados ativos (MARS) e gatilhos AFTER.
   As operações em tempdb são registradas minimamente. Isso permite que transações sejam revertidas. tempdb é recriado cada vez que SQL Server é iniciado, de modo que o sistema sempre começa com uma cópia limpa do banco de dados. As tabelas temporárias e procedimentos armazenados são descartados automaticamente ou desconectados e nenhuma conexão fica ativa quando o sistema é desligado. Portanto, nunca há nada em tempdb a ser gravado de uma sessão de SQL Server para outra. As operações de backup e restauração não são permitidas em tempdb.

  Muitas vezes em determinados momentos, você DBA pode se deparar com o um alarme que o database TEMPDB, que é um recurso de armazenamento global temporário esta próximo de atingir 100% de ocupação.
Isso é um problema, mas que pode ser resolvido com algumas ações:

Passo 1 – Identificar a query ofensora

     A melhor forma de identificar é executando uma query de monitoramento que retorne as informações que você precisa para a analise. Para isso execute no console:

select top 10
t1.session_id,
t1.request_id,
t3.hostname,
t3.loginame,
t3.program_name,
db_name (t3.dbid) as dbname,
t1.task_alloc  * (8.0/1024.0) as Alocado_MB, --qtd de paginas
t1.task_dealloc  * (8.0/1024.0)as Desalocado_MB, --qtd de paginas

    (SELECT SUBSTRING(text, t2.statement_start_offset/2 + 1,
          (CASE WHEN statement_end_offset = -1
              THEN LEN(CONVERT(nvarchar(max),text)) * 2
                   ELSE statement_end_offset
              END - t2.statement_start_offset)/2)
     FROM sys.dm_exec_sql_text(t2.sql_handle)) AS query_text,
(SELECT query_plan from sys.dm_exec_query_plan(t2.plan_handle)) as query_plan

from      (Select session_id, request_id,
sum(internal_objects_alloc_page_count +   user_objects_alloc_page_count) as task_alloc,
sum (internal_objects_dealloc_page_count + user_objects_dealloc_page_count) as task_dealloc
       from sys.dm_db_task_space_usage
       group by session_id, request_id) as t1,
       sys.dm_exec_requests as t2,
       sys.sysprocesses as t3
where
t3.loginame <> '' and
t1.session_id = t2.session_id and
(t1.request_id = t2.request_id) and
t1.session_id = t3.spid and
      t1.session_id > 50
order by t1.task_alloc DESC

   O importante nesse caso é analisar o que essa query esta fazendo e o quanto está alocando no momento do pico.
Aguarde alguns segundos e execute novamente, e nesse caso, analise o próximo campo que será o quanto esta liberando de espaço. O que isso quer dizer:
Na verdade se a query esta usando muito espaço, mas ao executar novamente verifica-se que o valor livre esta crescendo, quer dizer que essa query já fez o que precisava e gradativamente esta devolvendo esse espaço a TEMPDB. Nesse caso somente aguarde que a TEMPDB será liberada em breve e o alarme vai parar. O ultimo campo não exibido aqui é o plano de execução.
Caso a query continue crescendo e consumindo um espaço exorbitante da TEMPDB a ação correta a tomar é a seguinte:

Passo 2 – Analizar as configurações da TEMPDB

   A TEMPDB está setada com um valor X pré-supondo que é o necessário para o armazenamento necessário das transações.
Para verificar essas informações clique com o botão direito no database TEMPDB > Properties, como mostra a figura abaixo.

   Clique em files, como mostra a figura abaixo:

   O arquivo lógico que precisamos analisar chama-se TEMPLOG, verifique para qual caminho fisico que ele esta apontando, que nesse caso é o *E:* (Não exibido aqui, mas fica ao lado da imagem abaixo) e clique  no botão ao lado das informações de tamanho como mostra a figura a seguir

Nesse momento será exibidos os parâmetros de crescimento do templog, como mostra a figura aseguir.
Caso haja um crescimento de informações, ela irá crescer gradativamente, desde que o parâmetro AutoGrowth esteja setado.
No parâmetro File Growth está definido como será esse crescimento, nesse caso a cada 1GB.
E  por fim analisar o parâmetro Maximum File Size, que define o valor máximo total que esse database pode crescer fisicamente no disco, nesse caso 20GB.

Antes de alterar qualquer parâmetro é importante saber o quanto espaço temos livre no disco em que o database esta armazenado, como vimos anteriormente.
Caso o disco tenha espaço aumente o valor máximo, gradativamente a cada 10GB, até que seja sanado o problema. Depois, quando tudo terminar volte o valor, pois essa é apenas uma medida paliativa.

Também é possivel fazer esse procedimento via código:

USE [master]
GO
ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'templog', MAXSIZE = 30720000KB , FILEGROWTH = 102400KB )
GO

Passo 3 – Estudando a query ofensiva e sugerindo tunning para melhoria.

Aumentar tamanho de disco, na verdade é uma medida de emergência.
O que deve ser feito com calma é um estudo da query ofensiva e resolver definitivamente o problema. Para isso é necessário analizar o plano de execução dessa query para entender onde esta o auto consumo do banco.
Para isso clique no link que o aparece no resultado da execução da query de monitoramento ( query mostrada no inicio desse documento ).
Será exibido uma pagina em xml com o plano de execução, como mostra a figura a seguir:

    Esse é o plano de execução da query ofensiva. O SQL Server automaticamente detecta onde esta o problema e sugere uma ação de “tunning” para melhorar a query. Essa sugestão é mostrada no cabeçalho da página como mostra o topo da imagem.
Ao executar a query de monitoramento sabemos qual host, login e programa esta executando a tal query. Entre em contato com o departamento responsável por essa query notificando o auto consumo.

Passo 4 – Matando o SQL Ofensor !!!

Quando nada resolver … é só matar essa query.
Para isso é necessário primeiro descobri o SPID dessa query com o comando a seguir.

SELECT @@SPID AS 'ID', SYSTEM_USER AS 'Login Name', USER AS 'User Name'

Agora é só matar o processo com o comando:

kill SPID

Passo 5 – Algumas referência.


Artigo Completo MSDN Sobre TEMPDB

http://www.red-gate.com/specials/Grant.htm

Juarez Silva, DBA Senior  que contribuiu com o desenvolvimento do script de monitoração.

Espero ter ajudado um pouco …

Abraços

Kenia Milene

Uma Rapidinha com AIX

Alguem conhece o Mução ??? aquele das pegadinha nordestinas ????
Pois então …. te apresento o AIX …

Pegadinha do AIX … hehehehehehe

(AIX) Alo …
(DBA) Sim ….
(AIX) Seu script não esta funcionando …
(DBA) Como assim ????
(AIX) Não esta !!!! esta retornando um erro …
(AIX) … Seu incompetente … o problema é no seu banco !!!!
(DBA) RRRRRR quem vc pensa que é ?????
(DBA) Deixa eu ver o erro …
(AIX) 3074FEB7 0515214310 T H fscsi0 ADAPTER ERROR
(DBA) Que estranho ….
(DBA) Isso é erro de disco … não de banco …
(AIX) Se vira nego … seu script que retornou !
(DBA) Ta bem mané .. vou te provar que o problema é de Hardware e não do banco …
(DBA) E só pra calar sua boca … o script é de gerenciamento de disco … mas vamos lá
(AIX) Ta … to aguardando !!!
(DBA)

# errpt -aj 3074FEB7 > disk_error.txt
vi disk_error.txt
/3074FEB7

LABEL: FSCSI_ERR4
IDENTIFIER: 3074FEB7

Date/Time: Fri May 14 10:05:32
Sequence Number: 84628
Machine Id: XXXXXXXXXXXX
Node Id: SERVER
Class: H
Type: TEMP
Resource Name: fscsi0
Resource Class: driver
Resource Type: efscsi
Location: U0.1-P2-I3/Q1

Description
ADAPTER ERROR

Probable Causes
ADAPTER HARDWARE OR CABLE
ADAPTER MICROCODE
FIBRE CHANNEL SWITCH OR FC-AL HUB

Failure Causes
ADAPTER
CABLES AND CONNECTIONS
DEVICE

Recommended Actions
PERFORM PROBLEM DETERMINATION PROCEDURES
CHECK CABLES AND THEIR CONNECTIONS
VERIFY DEVICE CONFIGURATION</
p>

(DBA) Alo … AIX ????
(AIX) Sim …
(DBA) Não disse ???
(DBA) O problema é no disco mané …
(DBA) VocÊ tem um problema físico …
(DBA) Pode ser o disco, os cabos, HBA, etc ….
(DBA) Sendo assim … liga pro seu adm. de rede !!
(AIX) HUMMM …..
(AIX) Ta ….
(DBA) Da proxima vez tenta ser mais esperto ta bem ???
(DBA) tu tu tu tu tu tu tu tu tu tu tu tu tu tu tu (Desligou o telefone)

É isso ai minha gente ….
Mais uma vez provando que nem sempre o problema é do banco …
Fiz uma brincadeira pra descontrair … mas a coisa é séria …

Fica a dica …
Ate +
Kenia Milene