quinta-feira, 8 de maio de 2014

Diferenças entre Banco de dados SQL vs NoSQL explicado com poucos exemplos


A maioria de vocês já estão familiarizados com banco de dados SQL, e ter um bom conhecimento de ambos MySQL, Oracle ou outras bases de dados SQL. Nos últimos anos, a base de dados NoSQL está sendo amplamente adotada para resolver vários problemas de negócios.
É útil para entender a diferença entre SQL e banco de dados NoSQL, e alguns dos dados NoSQL disponíveis que você pode brincar.

SQL vs NoSQL: Diferenças de Alto Nível

  • Bancos de dados SQL são chamados primeiramente como bancos de dados relacionais (RDBMS); enquanto banco de dados NoSQL são chamados principalmente como banco de dados não-relacional ou distribuído.
  • Bancos de dados SQL são bancos de dados de tabela com base enquanto bancos de dados NoSQL são documento base, pares de valores-chave, bases de dados de gráficos ou lojas de toda a coluna. Isso significa que os bancos de dados SQL representar dados em forma de tabelas, que consiste em n número de linhas de dados enquanto que bancos de dados NoSQL são a coleção de par chave-valor, documentos, bases de dados de gráficos ou lojas de grande coluna que não têm definições de esquema padrão que precisa para aderida.
  • Bancos de dados SQL têm predefinidos esquema enquanto bancos de dados NoSQL tem esquema dinâmico para dados não estruturados.
  • Bancos de dados SQL são verticalmente escalável enquanto os bancos de dados NoSQL são horizontalmente escalável. Bancos de dados SQL são escalados pelo aumento do cavalo-força do hardware. Bancos de dados NoSQL são escalados pelo aumento dos servidores de bancos de dados no conjunto de recursos para reduzir a carga.
  • Bancos de dados SQL usa o SQL (Structured Query Language) para definir e manipular os dados, o que é muito poderoso. No banco de dados NoSQL, as consultas estão focados na coleção de documentos. Às vezes também é chamado como UnQL (Unstructured Query Language). A sintaxe utilizando UnQL varia de banco de dados de base de dados.
  • Exemplos de banco de dados SQL: MySQL, Oracle, SQLite, PostgreSQL e MS-SQL.Exemplos de bancos de dados NoSQL: MongoDB, BigTable, Redis, RavenDB, Cassandra, HBase, Neo4j e CouchDB
  • Para consultas complexas: bancos de dados SQL são boa opção para o ambiente de consulta intensivo complexo enquanto bancos de dados NoSQL não são boa opção para consultas complexas. Em um alto nível, NoSQL não têm interfaces padrão para executar consultas complexas, e as próprias consultas em NoSQL não são tão poderosos como linguagem de consulta SQL.
  • Para o tipo de dados a serem armazenados: bancos de dados SQL não são mais adequado para o armazenamento de dados hierárquico. Mas, banco de dados NoSQL se encaixa melhor para o armazenamento de dados hierárquico, uma vez que segue o valor-chave par forma de armazenar dados semelhantes aos dados JSON. Banco de dados NoSQL são altamente preferido por grande conjunto de dados (ou seja, para big data).HBase é um exemplo para este propósito.
  • Para escalabilidade: Na maioria das situações típicas, bancos de dados SQL são verticalmente escalável. Você pode gerenciar a carga cada vez maior, aumentando o CPU, RAM, SSD, etc, em um único servidor. Por outro lado, bancos de dados NoSQL são horizontalmente escalável. Você pode simplesmente adicionar mais alguns servidores facilmente em sua infra-estrutura de banco de dados NoSQL para lidar com o grande tráfego.
  • Para aplicação baseada alta transacional: bancos de dados SQL são mais adequado para aplicações do tipo pesado transacional, pois é mais estável e promete a atomicidade, bem como a integridade dos dados. Embora você possa usar NoSQL para transações propósito, ele ainda não é comparável e sable suficiente em alta carga e para aplicações transacionais complexas.
  • Para suporte: Excelente suporte estão disponíveis para todos os banco de dados SQL de seus fornecedores. Há também grande quantidade de consultas independentes que podem ajudá-lo com banco de dados SQL para uma implantação muito grande escala. Por algum banco de dados NoSQL você ainda tem que contar com o apoio da comunidade, e apenas limitados peritos externos estão disponíveis para você configurar e implementar suas implantações NoSQL em grande escala.
  • Para propriedades: bancos de dados SQL enfatiza propriedades ACID (atomicidade, consistência, isolamento e durabilidade), enquanto o banco de dados NoSQL segue o teorema Brewers CAP (Consistência, Disponibilidade e tolerância Partition)
  • Para os tipos de DB: Em um alto nível, podemos classificar bancos de dados SQL ou como open-source ou close-provenientes de fornecedores comerciais. Bancos de dados NoSQL podem ser classificados com base em forma de armazenar dados como bancos de dados de gráficos, bancos de dados de loja de valores-chave, armazenar bancos de dados de documentos, banco de dados e bancos de dados loja coluna XML.

Exemplos de banco de dados SQL

1. MySQL Community Edition

Banco de dados MySQL é banco de dados open-source muito popular. Ele geralmente está sendo empilhado com apache e PHP, embora possa também ser empilhado com nginx e JavaScripting lado do servidor usando Node js. A seguir estão alguns dos benefícios do MySQL e pontos fortes:
  • Replicação: Ao replicar banco de dados MySQL em vários nós a carga de trabalho pode ser reduzido fortemente o aumento da escalabilidade e disponibilidade de aplicativos de negócios
  • Sharding: sharding OS MySQL útil quando há grande não de operações de gravação em um site de alto tráfego. Por sharding servidores MySQL, a aplicação é dividida em vários servidores dividem o banco de dados em pequenos pedaços. Como servidores de baixo custo pode ser implantado para este fim, este é rentável.
  • Memcached como uma API NoSQL para MySQL: Memcached pode ser usada para aumentar o desempenho das operações de recuperação de dados, dando uma vantagem de NoSQL api para o servidor MySQL.
  • Maturidade: Esta base de dados tem sido em torno de um longo tempo e de entrada e testes tremenda comunidade tem ido para este banco de dados, tornando muito estável.
  • Vasta gama de plataformas e linguagens: MySQL está disponível para todas as principais plataformas como Linux, Windows, Mac, BSD e Solaris. Ele também tem conectores para línguas como o Node.js, Ruby, C #, C + +, C, Java, Perl, PHP e Python.
  • Relação custo-eficácia: é código aberto e livre.

2. MS-SQL Server Express Edition

É um poderoso e usuário do banco de dados amigável que tem boa estabilidade, confiabilidade e escalabilidade com o apoio da Microsoft. A seguir estão alguns dos benefícios MS-SQL e pontos fortes:
  • Integrada Ambiente de desenvolvimento: Visual Studio da Microsoft, Sql Server Management Studio e ferramentas para desenvolvedores Visual fornecem uma maneira muito útil para o desenvolvimento e aumentar a produtividade desenvolvedores.
  • Recuperação de Desastres: Tem bom mecanismo de recuperação de desastres, incluindo banco de dados de espelhamento, o failover clustering e particionamento RAID.
  • Nuvem de back-up: A Microsoft também fornece armazenamento em nuvem quando você executa uma nuvem de backup do seu banco de dados

3. O Oracle Express Edition

É uma edição limitada de servidor Oracle Enterprise Edition com certas limitações. Esta base de dados é gratuito para o desenvolvimento e implantação. A seguir estão alguns dos benefícios e vantagens do Oracle:
  • Fácil de Upgrade: Pode ser facilmente atualizado para a versão mais recente, ou para uma edição Enterprise.
  • Suporte à plataforma ampla: Ele suporta uma ampla gama de plataformas, incluindo Linux e Windows
  • Escalabilidade: Embora a escalabilidade desta base de dados não é rentável como servidor MySQL, mas a solução é muito confiável, seguro, fácil de gerir e produtiva.

Exemplos de banco de dados NoSQL

1. MongoDB

MongoDB é um dos documentos mais popular banco de dados NoSQL com base que armazena dados em JSON, como documentos. É do banco de dados não-relacional com esquema dinâmico. Ele foi desenvolvido pelos fundadores da DoubleClick, escrito em C + + e está sendo usado por algumas grandes empresas, como The New York Times, Craigslist, MTV Networks. A seguir estão alguns dos benefícios MongoDB e pontos fortes:
  • Velocidade: Para consultas simples, dá bom desempenho, como todos os dados relacionados estão em documento único que elimina as operações de participar.
  • Escalabilidade: É escalável horizontalmente ou seja, você pode reduzir a carga de trabalho, aumentando o número de servidores em seu pool de recursos, em vez de depender de um recurso autônomo.
  • Gerenciável: É fácil de usar para desenvolvedores e administradores. Isso também dá a capacidade de estilhaço de banco de dados
  • Esquema dinâmico: Sua dá-lhe a flexibilidade para evoluir o seu esquema de dados sem modificar os dados existentes

2. CouchDB

CouchDB é também uma base de dados NoSQL documento base. Ele armazena dados em forma de documentos JSON. A seguir estão alguns dos benefícios do CouchDB e pontos fortes:
  • Esquema-less: Como membro da família NoSQL, ele também tem esquema dinâmico que torna mais flexível, tendo uma forma de documentos JSON para armazenar dados.
  • Consulta HTTP: Você pode acessar seus documentos do banco de dados usando o seu navegador web.
  • Resolução de Conflitos: Tem detecção de conflitos automático que é útil, enquanto em um banco de dados distribuído.
  • Replicação Fácil: Implementação de replicação é bastante para a frente

3. Redis

Redis é um outro banco de dados Open Source NoSQL, que é usado principalmente por causa de sua alta velocidade. Ele é escrito em linguagem C ANSI. A seguir estão alguns dos benefícios Redis e pontos fortes:
  • As estruturas de dados: Redis fornece estruturas de dados eficientes para uma extensão que às vezes é chamado de servidor de estrutura de dados. As chaves armazenadas no banco de dados pode ser hashes, listas, cordas, ordenados ou conjuntos não ordenados.
  • Redis como cache: Você pode usar o Redis como um cache através da implementação de chaves com tempo limitado de vida para melhorar o desempenho.
  • Muito rápido: É considerar como um dos servidores NoSQL mais rápido, uma vez que trabalha com o conjunto de dados na memória.

Como permitir conexão remota com banco de dados PostgreSQL usando psql



Quando você instala o PostgreSQL, por conexão padrão para o banco de dados usando o TCP / IP não é permitido.
Quando você tentar se conectar de um cliente para um banco de dados PostgreSQL remoto usando o comando psql, você pode obter "psql: não pôde se conectar ao servidor: Conexão recusada" mensagem de erro.
No exemplo a seguir, a partir de uma máquina cliente, que está tentando se conectar a um banco de dados PostgreSQL que está sendo executado no servidor 192.168.102.1. Como você pode ver a partir da saída, ele diz claramente que o banco de dados PostgreSQL remoto não está aceitando conexão.
# Psql-U postgres-h 192.168.102.1
psql: não pôde se conectar ao servidor: Conexão recusada
        É o servidor em execução no host "192.168.102.1" e aceitando
        Conexões TCP / IP na porta 5432?
Para ativar a conexão TCP / IP para o banco de dados PostgreSQL, você precisa seguir os dois passos abaixo.

1. Modificar pg_hba.conf para adicionar Registro Autenticação do cliente

No servidor de banco de dados PostgreSQL, por padrão, você verá os seguintes registros no final do arquivo / var / lib / pgsql / data / pg_hba.conf. Como indicado abaixo, aceita somente conexões do localhost.
# IPv4 conexões locais:
acolher todos todos 127.0.0.1/32 confiança
# IPv6 conexões locais:
acolher todos todos :: 1/128 ident
Adicione a seguinte linha ao servidor pg_hba.conf. Isto irá permitir a conexão de "192.168.101.20" endereço IP (Este é o cliente, no nosso exemplo). Se você quer para permitir a conexão de vários computadores clientes em uma rede específica, especifique o endereço de rede aqui no formato CIDR-endereço.
# vi  /var/lib/pgsql/data/pg_hba.conf
acolher todos todos 192.168.101.20/24 confiança


A seguir, são vários formatos de registro de autenticação do cliente suportado no arquivo pg_hba.conf. Nós estamos usando o formato n º 2 da lista.
  • usuário de banco de dados local, autenticação de método [opção_de_autenticação]
  • usuário de banco de dados de host CIDR endereço autenticação de método [opção_de_autenticação]
  • usuário de banco de dados hostssl CIDR endereço autenticação de método [opção_de_autenticação]
  • usuário de banco de dados hostnossl CIDR endereço autenticação de método [opção_de_autenticação]
Em vez de formato "CIDR-address", você também pode especificar o endereço IP ea máscara de rede em campos separados usando o formato do registro seguinte.
  • sediar usuário de banco de dados IP-endereço IP-máscara autenticação de método [opção_de_autenticação]
  • usuário de banco de dados hostssl endereço IP IP-máscara autenticação de método [opção_de_autenticação]
  • usuário de banco de dados hostnossl endereço IP IP-máscara autenticação de método [opção_de_autenticação]

2. Alterar o endereço Ouça em postgresql.conf

No servidor de banco de dados PostgreSQL, por padrão, o endereço de escuta será localhost no arquivo postgresql.conf, como mostrado abaixo.
# grep listen /var/lib/pgsql/data/postgresql.conf
listen_addresses = 'localhost'
Modifique esta linha e dar *. Se você tiver várias interfaces no servidor, você também pode especificar uma interface específica para ser ouvido.
# grep listen /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'

3. Teste a Conexão Remota

Agora, faça o login para o 192.168.101.20 máquina cliente, e realizar a conexão remota psql para o servidor de banco de dados PostgreSQL (192.168.102.1), como mostrado abaixo.Desta vez, ele deve funcionar.
# Psql-U postgres-h 192.168.102.1
Bem-vindo ao psql 8.1.11 (servidor de 8.4.18), o terminal interativo do PostgreSQL.
postgres = #
Além disso, se você não quer especificar o nome da máquina no parâmetro da linha de comando de cada vez, você pode configurar o banco de dados PostgreSQL endereço IP remoto no ambiente PGHOST nome da variável, como mostrado abaixo.
# Exportação PGHOST = 192.168.102.1
# psql -U postgres
Bem-vindo ao psql 8.1.11 (servidor de 8.4.18), o terminal interativo do PostgreSQL.
postgres = #

Como ativar o JBoss AS 7 para aceitar conexões remotas




Por padrão, quando você instalar e configurar o JBoss AS 7, a porta de gerenciamento 8080 só pode ser acessado com o lançamento de um navegador a partir do sistema, onde você instalou o Jboss, e vai http://localhost:8080 ou http:// 127.0.0.1:8080



Quando você se conecta ao JBoss AS 7 a partir de uma máquina remota, usando o endereço IP, não vai funcionar. isto é http:// {ip-address}: 8080 não vai funcionar.

Para resolver este problema, siga qualquer um dos métodos mencionados neste artigo para permitir conexões remotas com o JBoss AS 7 servidor.
Nestes exemplo, vamos supor que o endereço IP onde o servidor JBoss está sendo executado é 192.168.101.1

Método 1: Modificar o arquivo standalone.xml

Modifique o JBOSS_HOME autônomo configuração arquivo $ / / / standalone.xml e mudar o 127.0.0.1 para o endereço IP que você gosta.

Antes:
  <interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
        </ Interface>
        <interface name="public">
            <inet-address value="${jboss.bind.address:127.0.0.1}"/>
        </ Interface>
Depois:
  <interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:192.168.101.1}"/>
        </ Interface>
        <interface name="public">
            <inet-address value="${jboss.bind.address:192.168.101.1}"/>
        </ Interface>
Ou, você pode simplesmente permitir que qualquer IPv4 usando <any-ipv4-address/> como mostrado a seguir para especificar o endereço IP.

<interfaces>
    <interface name="management">
       <any-ipv4-address/>
    </ Interface>
    <interface name="public">
       <any-ipv4-address/>
    </ Interface>

Reinicie o JBoss AS após a mudança acima.

Método 2: Usar standlone.sh opção-B

Enquanto olhava o JBoss AS 7, você pode usar a opção b-como mostrado abaixo.
$ JBOSS_HOME / bin / standalone.sh-b 192.168.101.1
Qualquer um dos seguintes formato vai funcionar:
$ JBOSS_HOME / bin / standalone.sh-b 192.168.101.1

$ JBOSS_HOME / bin / standalone.sh-b = 192.168.101.1

$ JBOSS_HOME / bin / standalone.sh-b127.0.0.1 = 192.168.101.1

Método 3: Alterar-lo a partir da interface do usuário

No console do servidor, inicie o GUI Jboss de http://127.0.0.1:8080, e clique em "Perfil" -> Configuração Geral -> Interfaces.
A partir daqui, você pode alterar o endereço IP da gestão e interfaces públicas. Reinicie os AS JBoss após essa mudança.
JBoss Interfaces



domingo, 4 de maio de 2014

Tem problema com o driver Wireless Realktek para Ubuntu 12.x a 14.x?


Tem problema  de velocidade ou quedas constantes com o driver da placa Wireless Realtek para Ubuntu 14.04 ou inferior? Use a dica abaixo para saná-lo.

Existe uma versão modificada do driver Wireless oficial Realtek que corrige alguns problemas com as placas wireless Realtek no LInux. A versão modifica está disponível no Github: https://github.com/FreedomBen/rtl8188ce-linux-driver.

Passo 1:

Escolha um diretório de sua preferência e utilize o comando abaixo para efetuar o donwload
da versão modificada do driver Wireless.

cd /usr/local/src

git clone https://github.com/FreedomBen/rtl8188ce-linux-driver.git

Passo 2: Execute o script install.sh pressione <enter>


cd rtl8188ce-linux-driver
sudo ./install.sh

-e
[*] So you want to live on the wild side and try a different driver for your RealTek wireless card eh?  Awesome!  I'll help you do it.
-e
[*] We are going to build and install the driver from source code, compiled specifically for your machine.

-e [*] If you want to do the build/install manually, there are instructions in the "README.md" file.
-e
[*] Please report any bugs/problems at https://github.com/FreedomBen/rtl8188ce-linux-driver

[*] Press <Enter> when ready to begin, or <Ctrl+C> to quit


Passo 3: Pressione <enter> novamente para iniciar a instalação.

[*] Let's install any dependencies you will need in order to build the driver.
Reading package lists... Done
Building dependency tree     
Reading state information... Done
build-essential is already the newest version.
gcc is already the newest version.
linux-headers-3.13.0-24-generic is already the newest version.
linux-headers-generic is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done

Passo 4: Após visualizar a mensagem abaixo, reinicalize o computador.

-e [*] OK, ready for a reboot. (only necessary if your wifi is not working)
-e [*] You can check if you're running the new driver by running the script "am_i_using_this_driver.sh"

Passo 5: Insira a seguinte linha em seu arquivo /etc/rc.local para garantir a velocidade máxima de conexão 54 Megabytes.


iwconfig wlan0 rate 54M

terça-feira, 8 de abril de 2014

Dicas de referências Linux rápidas e rasteiras


Guia de instalação e referências  Chapéu Vermelho (Redhat)

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/
http://www.centos.org/docs/5/html/5.2/Installation_Guide/
http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-dhcp-configuring-client.html
http://www.vivaolinux.com.br/artigo/BIND-9-DNS-Master-e-Slave-CentOS-64-Minimal


Tutorial Apache2

https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-centos-6

http://www.howtoforge.com/apache_php_mysql_on_centos_6.5_lamp

SSH
http://www.cyberciti.biz/faq/centos-ssh/
https://www.digitalocean.com/community/articles/how-to-set-up-ssh-keys--2

Tutorial Squid

http://www.vivaolinux.com.br/etc/squid.conf-alencar
http://www.inf.unioeste.br/~guilherme/cursos/projens/proxy.pdf
http://magazine.redhat.com/2007/04/11/squid-in-5-minutes/

SAMBA

http://www.howtoforge.com/centos-6.4-samba-standalone-server-with-tdbsam-http://wiki.centos.org/HowTos/SetUpSamba


Perguntas e respostas

http://virtual01.lncc.br/~licht/linux/

Linux Guruz

http://www.linuxguruz.com/linuxfaq.php

NFS

https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s3-nfs-server-config-exportfs-nfsv4.html

Regex

http://aurelio.net/regex/guia/
http://aurelio.net/regex/casar-ip.html

SED e AWK

http://aurelio.net/sed/
http://awk.info/?doc/tip/sedInAwk.html

MYSQL
http://dev.antoinesolutions.com/mysql
http://www.vivaolinux.com.br/script/Script-de-backup-MySQL-melhorado


BIND
http://tidahora.com.br/index.html/doku.php?id=instalando_servidor_dns_no_centos_6_com_bind9

IPTABLES

http://www.netfilter.org/documentation/HOWTO/pt/packet-filtering-HOWTO.html

BASH SCRIPT ADVANCED

http://www.tldp.org/LDP/abs/html/index.html

Zabbix

https://www.zabbix.com/wiki/howto/install/centos/centosinstall



quinta-feira, 12 de setembro de 2013

Grandes podores, trazem muitas perguntas!


Como executar comandos quando um certo usuário acessar o sistema?

Basicamente crie um script chamado /etc/profile.d/login.sh e adicione as linhas abaixo:
#!/bin/bash
#
   login.sh
# EXEMPLO
USER_NAME=`whoami`
case
   "$USER_NAME" in
       "root")
   command;;
     "avieira")
   command;;
     "bossal")
   command;;
            *)
   command;;
esac
   
# O "*" asterístico atribui a uma ação default do sistema.
# SYNTAXE:
#ATRIBUI O LOGIN DO USUARIO QUE ACABOU DE ENTRAR NO SISTEMA.
VARIVEL='QUEMESTALOGADO'
      
     case "$VARIAVEL" in
     value1)
  command ;;
     value2)
   command
            
   command
            
   command ;;
     value3)
   command
            
   command ;;
     value4)
   command ;;
          *)
   command
            
   command ;;
esac