segunda-feira, 11 de novembro de 2013

ERRORLOG

Hoje estou postando apenas uma dica. Como vocês sabem o ERRORLOG do SQL Server vai crescendo a medida que as informações são inseridas e sendo assim o arquivo de log somente é reiniciado quando a instancia do SQL Server é reiniciada, então como é a ordem natural das coisas o serviço do SQL Server dificilmente é reiniciado fazendo com que o ERRORLOG cresça e cresça cada vez mais impossibilitando muitas vezes a leitura do mesmo.
O SQL Server então possui uma stored procedure que faz essa reclicagem do ERRORLOG sem necessitar reiniciar a instancia. Segue o comando abaixo.
use master
go
xp_readerrorlog
go
agora vamos executar o comando para reclicar o log.
use master
go
exec sp_cycle_errorlog
go
exec xp_readerrorlog
Conforme a imagem abaixo o ERRORLOG foi recriado.
Como podemos ver na imagem abaixo tinhamos o arquivo ERRORLOG de 14KB  que apos executarmos a stored procedure, foi criado um novo arquivo ERRORLOG e o antigo foi renomeado para ERRORLOG.1.

segunda-feira, 21 de outubro de 2013

Configurando IP estático no CentOS

A instalação default configura a rede como DHCP e para torná-lo estático, seguem os passos: 
Logado como root edite o arquivo:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
Troque o BOOTPROTO PARA static e coloque o ip e a mascara
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
Agora edite o arquivo abaixo para adicionar o gateway:
vi /etc/sysconfig/network
GATEWAY=192.168.1.1
E para finalizar é necessario configurar o dns:
vi /etc/resolv.conf
Recomendo utilizar os dns´s abaixo que são do google dns public:
nameserver 8.8.8.8
nameserver 8.8.4.4
Para finalizar de um restart
/etc/init.d/network restart

quarta-feira, 16 de outubro de 2013

Habilitando o Acesso Remoto no PostgreSQL

Por padrão o Postgres não vem configurado para aceitar conexões externas, e para habilitá-las temos que editar dois arquivos de configuração: pg_hba.conf e postgresql.conf
Estou com o pré suposto que você está no ambiente Linux, e para editar os arquivos iremos utilizar o comando “vi”, veja o comando abaixo onde iremos abrir um dos arquivos de configuração, e tenha atenção que este pode não ser o caminho exato onde seu arquivo esteja, dependo da versão do sistema operacional que você esteja utilizando, ou mesmo a distribuição (aqui estou utilizando o CentOS 6.0)
1
vi /var/lib/pgsql/data/pg_hba.conf
Pronto, agora você pode editar o arquivo, acrescente no final a seguinte linha:
1
host all all 0.0.0.0/0 md5
Nela estamos dizendo que todas (0.0.0.0/0) as conexões remotas (host)estão permitidas para todos os usuários! Cuidado! Eu sugiro que você coloque o seu IP para realizar as alterações e depois remova essa linha.
Alterando para um IP específico poderia ficar assim:
1
host all all 189.162.0.16/24 md5
Depois de adicionar a linha, saia do editor vi e salvando as alterações.
Agora vamos editar o segundo arquivo, mais fácil. Abra o arquivo postgresql.conf:
1
vi /var/lib/pgsql/data/postgresql.conf
Agora procure pela linha abaixo e remova o comentário (#), caso houver:
1
listen_addresses='localhost'
Troque por asterísco “*” para habilitar a conexão para todos ou coloque seu IP:
1
listen_addresses='189.162.0.16'
E uma última alteração, procure pela linha abaixo, e caso estiver comentada remova o comentário:
1
port = 5432
Pronto, agora seu PostgreSQL está configurado para aceitar conexões externas, dê o restart no processo dele e inicie seu trabalho!
1
service postgresql restart

sexta-feira, 11 de outubro de 2013

Instalando Postgresql 9.1 no CentOS 6 e Red Hat Enterprise 6.

Instalando Postgresql 9.1 no CentOS 6 e Red Hat Enterprise 6.

# yum install wget
# cd /tmp
# wget http://yum.pgrpms.org/9.1/redhat/rhel-6-x86_64/pgdg-redhat91-9.1-5.noarch.rpm
# rpm -Uvh pgdg-redhat91-9.1-5.noarch.rpm
# yum install postgresql91-server
* Verificando pacotes instalados:
# rpm -qa | grep postgres
postgresql91-server-9.1.8-2PGDG.rhel6.x86_64
postgresql91-9.1.8-2PGDG.rhel6.x86_64
postgresql91-libs-9.1.8-2PGDG.rhel6.x86_64
# /etc/init.d/postgresql-9.1 initdb
# chkconfig postgresql-9.1 on
initdb – Cria um serviço "postgresql-9.1" de inicialização automática no banco de dados PostgreSQL.
* Subindo o serviço:
# /etc/init.d/postgresql-9.1 start
* Verificando status do serviço:
# /etc/init.d/postgresql-9.1 status
(pid  2647) está em execução...
* Setar senha no usuário postgres
# sudo -u postgres psql
psql (9.1.8)
Digite "help" para ajuda.
 
postgres=# alter user postgres with encrypted password 'teste';
* Alterar
# vi /var/lib/pgsql/9.1/data/pg_hba.conf
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
para
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# /etc/init.d/postgresql-9.1 restart
* Testando
# psql -h localhost -U postgres -d postgres
Senha para usuário postgres: 
psql (9.1.8)
Digite "help" para ajuda.
 
postgres=#

quinta-feira, 10 de outubro de 2013

Dicas PostgreSQL

Comandos interessantes:
SELECT version();
SHOW search_path; -- nome do esquema
SELECT cast(random() * 10 as int);SELECT random(); -- gera um int de 0 a 10
SELECT current_date;
SELECT 3 + 4 resultado; ou select 3 + 4 as resultado;

Criando:
CREATE DATABASE meubanco;
CREATE TABLE equipamentos (nome varchar(80), peso integer);

Renomeando algumas coisas:
ALTER DATABASE meubanco RENAME TO nossobanco;
ALTER TABLE equipamentos RENAME TO ferramentas;
ALTER TABLE produto RENAME COLUMN cod_prod TO cod_produto;

SIMILAR TO, bem parecido com o LIKE
select 'abc' SIMILAR TO 'abc' resultado = true ou t
select 'abc' SIMILAR TO 'a' resultado = false ou f

Permitir apenas preços positivos, utiliza-se: CHECK
CREATE TABLE produtos (
cod_prod integer,
nome text,
preco numeric CHECK (preco > 0)
);

Uma restrição de verificação também pode referenciar várias colunas:
CREATE TABLE produtos (
cod_prod integer,
nome text,
preco numeric CHECK (preco > 0),
preco_com_desconto numeric CHECK (preco_com_desconto > 0),
CHECK (preco > preco_com_desconto)
);

Uso do HAVING
SELECT nome from cidades group by nome HAVING count(nome) > 1;