Recuperando as queries com mais processamento das últimas 12 horas

Com o select abaixo será retornado as queries com maior processamento nas últimas 12 horas.

SELECT TOP 10 qs.execution_count,
qs.total_worker_time total_worker_time ,
qs.min_worker_time/1000/60 min_worker_time,
qs.max_worker_time/1000/60 max_worker_time,
qs.last_worker_time/1000/60 last_worker_time,
TEXT,
SUBSTRING(qt.TEXT, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(qt.TEXT)
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2)+1),
last_execution_time

FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
WHERE qs.last_execution_time >= DATEADD(hour, -12, getdate())
–ORDER BY qs.total_logical_reads DESC — logical reads
— ORDER BY qs.total_logical_writes DESC — logical writes
ORDER BY qs.total_worker_time DESC — CPU time

Recuperando as queries que estão sendo executadas no SQL Server

O select abaixo vai recuperar as queries que estão sendo executadas no momento.

SELECT text,r.start_time [Start Time],session_ID [SPID],
DB_NAME(database_id) [Database],
SUBSTRING(t.text,(r.statement_start_offset/2)+1,
CASE WHEN statement_end_offset=-1 OR statement_end_offset=0
THEN (DATALENGTH(t.Text)-r.statement_start_offset/2)+1
ELSE (r.statement_end_offset-r.statement_start_offset)/2+1
END) [Executing SQL],
Status,command,wait_type,wait_time,wait_resource,
last_wait_type
FROM sys.dm_exec_requests r
OUTER APPLY sys.dm_exec_sql_text(sql_handle) t
WHERE session_id != @@SPID -- don't show this query
AND session_id > 50 -- don't show system queries
ORDER BY r.start_time

Migrando schema Oracle RDS para um outro Oracle RDS

Este post tem como objetivo auxiliar vocês na migração de um schema oracle de um rds de origem para um outro de destino.

Você recebe a seguinte demanda do seu  gerente fofo  “Preciso atualizar ambiente de homologação com os dados de desenvolvimento.” Fácil né? Fácil, porcaria nenhuma!! Ele só não falou que o banco de dados é o RDS ORACLE, ai ferou né? E ai caboclo sabe fazer?

O titio aqui vai te ajudar!!!!

Passos que devem ser seguidos:

  • Criar uma instância ec2
  • Instalar o Oracle Xe
  • Configurar Swap
  • Gerar o dump no RDS de Origem
  • Criar o Link do servidor local com o RDS Oracle de origem
  • Fazer Download do Dump para o EC2
  • Criar o Link do servidor local com o RDS Oracle de destino
  • Fazer o upload do Dump para o servidor de destino
  • Realizar a importação dos dados no RDS Oracle de destino;

1 – Criar uma instância EC2 AWS

Vou levar em consideração que você já sabe criar uma instância no AWS EC2

2 – Instalar o ORACLE XE

yum install libaio bc flex
Baixar o rpm do oracle-xe-11.x.rpm.zip link aqui
unzip -q oracle-xe-11.2.0-1.0.x86_64.rpm.zip
 cd Disk1
rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
Ao finalizar a instalação execute o comando abaixo
 /etc/init.d/oracle-xe configure
Vai ocorrer um erro solicitando a criação de uma partição swap

3 – Configurar Swap

Para criação de uma partição swap é só seguir os passos abaixo
sudo dd if=/dev/zero of=/swapfile bs=1024 count=2048k
sudo mkswap /swapfile
sudo swapon /swapfile
chown root:root /swapfile
chmod 0600 /swapfile

Executar novamente  para configurar o oracle
/etc/init.d/oracle-xe configure
4 – Gerar o dump no RDS de Origem

Configurar o tnsnames.ora e adicionar
ORIGEM=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rds-oracle-origem)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)

O comando abaixo você irá criar o dump no RDS ORACLE de origem

./expdp USER_DB_ORIGEM/123456@ORIGEM directory=data_pump_dir schemas=USER_DB_ORIGEMdumpfile=user_db_origem1.dmp

5 – Criar o Link do servidor local com o RDS Oracle de origem

Você deve se conectar no oracle local do ec2 e vamos criar um database link com o RDS Oracle origem e realizar o download do dump para o oracle local

Configurar a variavel ORACLE_HOME

ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export ORACLE_SID=xe
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_HOME

Conectar no banco local utilizando a linha abaixo
sqlplus system/STR_SENHA@XE

ao conectar execute o seguinte  comando
create database link to_origem connect to user_db_origem identified by 123456 using '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rds-oracle-origem)(PORT=1521))(CONNECT_DATA=(SID=ORCL)))';

6 – Fazer Download do Dump para o EC2

Agora vamos realizar o download do dump para o oracle local, se conecte no banco oracle local e execute o comando abaixo

BEGIN
DBMS_FILE_TRANSFER.GET_FILE(
source_directory_object => 'DATA_PUMP_DIR',
source_database => 'to_origem ',
source_file_name => 'user_db_origem.dmp',
destination_directory_object => 'DATA_PUMP_DIR',
destination_file_name => 'user_db_origem.dmp'
);
END;
/

7 – Criar o Link do servidor local com o RDS Oracle de destino

ainda conectado no oracle local do ec2 , vamos criar o link com o RDS Oracle destino para realizar o upload do dump para o RDS Oracle de destino
create database link to_destino connect to user_db_destino identified by 123456 using '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rds-oracle-destino)(PORT=1521))(CONNECT_DATA=(SID=ORCL)))';

8 – Fazer o upload do Dump para o servidor de destino

BEGIN
DBMS_FILE_TRANSFER.PUT_FILE(
source_directory_object => 'DATA_PUMP_DIR',
source_file_name => 'user_db_origem.dmp',
destination_directory_object => 'DATA_PUMP_DIR',
destination_file_name => 'user_db_origem.dmp',
destination_database => 'to_destino'
);
END;
/

9 – Realizar a importação dos dados no RDS Oracle de destino;

Adicionar o tns do RDS Oracle de origem no tnsnames.ora

DESTINO=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rds-oracle-destino)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)

Ultimo passo realizar a importação do schema

./impdp USER_DB_DESTINO/123456@DESTINO DUMPFILE=user_db_origem.dmp DIRECTORY=DATA_PUMP_DIR  schemas=USER_DB_ORIGEM remap_schema=USER_DB_ORIGEM:USER_DB_DESTINO remap_tablespace=USER_DB_ORIGEM:USER_DB_DESTINO table_exists_action=replace

Redirect images error 404 Apache

Com o script abaixo eu redireciono todas as requisições que contenham .jpg, jpeg, gif, png e ico para uma imagem de 1 pixel, assim as requisições não serão passada para o server web (Tomcat/Jboss).

Caso a requisição http://localhost/img/photo.png de erro 404, o apache irá retorna a imagem pixel.png.

Lembrando que está imagem pixel deve ficar dentro do diretório configurado no DocumentRoot do virtualhost no Apache.
RewriteEngine On

RewriteCond %{REQUEST_URI} \.(jpg|jpeg|gif|png|ico)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*$ /pixel.png [L]

Dica do papai!!!

Evite sempre acessos desnecessários nos seus servidores web Java

como adicionar um volume novo no EC2 AWS linux

Adicionando um volume em uma instancia Linux na Amazon:

1 – Acessar o console amazon no item volume e crie um volume (observe qual a zona da maquina de destino, pois o volume deve está na mesma zona da respectiva maquina).

 

2 – crie uma pasta na instancia destino onde será o ponto de montagem do respectivo volume

mkdir /volume1

3 – lista os volumes que existe na respectiva maquina ;

cat /proc/partitions    ou lsblk

mostrará algo como

202 1 20971520 xvda1
202 16 52428800 xvdb
202 80 209715200 xvdf

4 – formate o seu volume para um tipo especifico que no meu caso é ext4

mkfs -t ext4 /dev/xvdf    ou    mke2fs  /dev/xvdf

5 – edite o arquivo  vim /etc/fstab adicionando o conteúdo abaixo

/dev/xvdf          /volume1     ext4    defaults        0   0

6- monte o respectivo volume

mount /dev/xvdf         /volume1

 

 

 

 

 

Utilizando scp com ec2 aws amazon

Segue uma dica de como realizar scp no ec2-user

preciso copia  um arquivo da maquina A para maquina B

 

utilize o comando:

scp -i xxxxxx.pem /tmp/arquivo.txt  ec2-user@ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com:/home/ec2-user/

xxxxxx.pem–> sua chave

/tmp/arquivo.txt –> arquivo que encontra-se na maquina A

ec2-user@ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com–> usuario e host da maquina B

/home/ec2-user/ –> diretório onde será salvo o arquivo

 

antes de tudo dar a seguinte permissão no arquivo .pem

 

chmod 600 xxxx.pem

5 maiores ameaças para uma empresa nascente

Um amigo enviou um email com está informação abaixo, gostei muito dessas 5 ameaças que são bem verdadeiras.

Segue para ser compartilhado!!! 🙂

5. Falta de coragem. Em qualquer área de negócio, você precisa confiar na sua empresa desde o começo. Se você não acredita no que está fazendo, não espere que outra pessoa o faça.
4. Falta de planejamento. É simplesmente impossível ter um negócio de sucesso sem um plano. Você deve também planejar pelo menos 2 ou 3 passos na frente. Isso o ajudará a guiar o seu negócio na direção correta.
3. Falta de foco. Escolher um nicho e focar nele é extremamente importante. Enquanto é tentador tentar algo em outros nichos, essa ameaça pode ser desastrosa.
2. Falta de orçamento. Dinheiro não nasce em árvores. Você precisa gastar sabiamente – especialmente nos primeiros anos. Corte gastos onde for possível e trate cada dólar como um bem importante.
1. Falta de esforço. Ter uma empresa de sucesso exige trabalho árduo e definitivamente não é para os que tem coração fraco. Se você trabalha mais do que os concorrentes, sua chance de sucesso aumenta consideravelmente.

Uma realidade do Mundo corporativo

Todos os dias, a formiga chegava cedinho ao escritório e pegava duro no trabalho. Era produtiva e feliz.
O gerente marimbondo estranhou a formiga trabalhar sem supervisão.
Se ela era produtiva sem supervisão, seria ainda mais se fosse supervisionada.
E colocou uma barata, que preparava belíssimos relatórios e tinha muita experiência, como supervisora.
A primeira preocupação da barata foi a de padronizar o horário de entrada e saída da formiga.
Logo, a barata precisou de uma secretária para ajudar a preparar os relatórios e contratou também uma aranha para organizar os arquivos e controlar as ligações telefônicas.
O marimbondo ficou encantado com os relatórios da barata e pediu também gráficos com indicadores e análise das tendências que eram mostradas em reuniões.
A barata, então, contratou uma mosca, e comprou um computador com impressora colorida.
Logo, a formiga produtiva e feliz, começou a se lamentar de toda aquela movimentação de papéis e reuniões!
O marimbondo concluiu que era o momento de criar a função de gestor para a área onde a formiga produtiva e feliz, trabalhava.
O cargo foi dado a uma cigarra, que mandou colocar carpete no seu escritório e comprar uma cadeira especial.
A nova gestora cigarra logo precisou de um computador e de uma assistente (sua assistente na empresa anterior) para ajudá-la a preparar um plano estratégico de melhorias e um controle do orçamento para a área onde trabalhava a formiga, que já não cantarolava mais e cada dia se tornava mais chateada.
A cigarra, então, convenceu o gerente marimbondo, que era preciso fazer um estudo de clima.
Mas, o marimbondo, ao rever as cifras, se deu conta de que a unidade na qual a formiga trabalhava já não rendia como antes e contratou a coruja, uma prestigiada consultora, muito famosa, para que fizesse um diagnóstico da situação.
A coruja permaneceu três meses nos escritórios e emitiu um volumoso relatório, com vários volumes que concluía : “há muita gente nesta empresa”.
E adivinha quem o marimbondo mandou demitir?
A formiga, claro, porque ela andava muito desmotivada e aborrecida.

Moral da história:

Tenho certeza que você está pensando: “já vi esse filme em algum lugar!”

LinkedIn passa a ter versão em português

A rede social, que atingiu quase 1 milhão de usuários do País, afirma que o principal estímulo para lançar a nova versão foi a acolhida espontânea dos executivos locais.

Na última terça-feira, 13/4, a rede social para profissionais LinkedIn lançou sua versão no idioma português.  O vice-presidente de operações internacionais da empresa, Arvind Rajan, informou que, por enquanto, o site não terá equipes e sede locais.

A ideia da empresa é primeiro sentir a reação do mercado nacional com a versão na língua portuguesa para então pensar em montar um escritório ou desenvolver estratégias mais agressivas na área comercial. O capítulo brasileiro será comandado pelo próprio Rajan, responsável por todas as operações da empresa fora dos EUA e Europa.

“Tínhamos até agora o serviço em quatro línguas: inglês, espanhol, francês e alemão. Com o quinto o idioma, o português, queremos facilitar ainda mais a conexão entre os profissionais. O usuário brasileiro pedia essa versão”, afirma Rajan.

A ampliação do serviço para mais idiomas faz parte da estratégia de expansão internacional do site, que opera nos EUA (onde foi criado), Inglaterra, Austrália, Índia e Holanda.

No caso brasileiro, segundo Rajan, o que encorajou a empresa a fazer a versão para o idioma local foi a acolhida espontânea à rede. “Nunca fizemos um plano para cá, mas os usuários brasileiros começaram a ingressar no site. O crescimento que obtivemos até agora aqui foi orgânico”, diz.

http://computerworld.uol.com.br/carreira/2010/04/14/linkedin-passa-a-ter-versao-em-portugues/