segunda-feira, 14 de dezembro de 2015

Shell Linux em uma máquina Windows, simples, fácil e versátil.

As vezes, temos necessidade de rodar alguns comandos ou aplicativos linux em uma máquina windows e ai as coisas começam a complicar.

Um software muito conhecido, bom e grátis é o Cygwin, onde você instala os software que deseja sob demanda.

Porém, um colega de trabalho descobriu o babun . Ele é gratis, utiliza o Cygwin e tem uma interface muito user friendly.

Porque não testar?

Fica a dica

Linux simples e fácil - Para iniciantes também :)

Hoje no trabalho me apresentaram uma versão do linux que eu não conhecia, digo ouvi falar. Não sou nenhuma refêrencia nesta área :)

O nome da versão é Manjaro, muito simples de usar e user friendly.

http://sourceforge.net/projects/manjarolinux/?source=typ_redirect

Não precisa nem perguntar se é gratuito, pois é com certeza.

Para testar, installei tambem um software de virtualização muito conhecido e grátis, o Virtual Box  .

Após a instalação, fiz alguns testes e funcionam muito bem.

Pronto,m agora vc pode continuar com a sua versão windows e quando quiser brincar um pouquinho em um novo ambiente/conceito, seja bem vindo ao Manjaro ;)


segunda-feira, 7 de dezembro de 2015

MongoDb - Replication - Passo a passo

Resumo de como criar uma replicação utilizando Mongodb em uma máquina MAC

Conceitos gerais:

  • asynchronous com Slave
  • Master (Primary) - slave (Secondary)
  • RF=Replication Factor
  • Majority é eleito por consenso
  • Escrita é sempre no primario
  • Statement-base vs binary (similar crash on recovery journal)
  • normalmente o oplog é 5% do tamanho do disco
  • o diretório journal é onde guarda os dados
  • "Write is truly when committed upon application @ a majority of the set" and "we can get knowledge of this"
  • uma coleção no Slave pode haver ordem diferente do primary

Replication:
  • Automatic Failover
  • Automatic node recovery


// Creating Recovery Set (RS)
levar em consideração portas, dbpath et nome do RS

// Criar diretórios para guardar os arquivos do RS
Ex. para criar 3 diretórios sobre o diretório corrente para guardar os RS
mkdir 1 2 3

mongod --port 27001 --replSet abc --dbpath /user/NomeUser/dba/1
--logpath /user/NomeUser/dba/log.1 --logappend -- oplogSize 50
-- smallfiles --fork

Este comando deve ser repetido para cada RS, trocando com certeza o nome do diretório e o nome do arquivo de log

// como inicializar o RS

  1. criar uma variáve com os dados de configuração
  2. Inicializar o RS
    1. Mongo --port 27001
    2. config
//exemplo de arquivo de configuração de RS
cfg = {
_id : "abc",
members : [
{ _id:0, host: 10gen.local:27001"},

{ _id:1, host: 10gen.local:27002"},
{ _id:2, host: 10gen.local:27003"}
]

}


// ajuda do help no RS
rs.help()

rs.initiate (cfg)

// status do RS
rs.status()

// para saber o config
rs.config()

// master? 
db.isMaster()

// dica
db.system.replset.find().pretty()

//Secondary Reads (para autorizar os slaves a poderem acessar os dados)
rs.slaveOk()

//Restart replicaset
Mongod igual a todos os parametros

//read preferencias -= rs.slaveOk()
//geograpy, seprate workload separete load, availability

// Opções de configuração de leitura
  1. Primary (default)
  2. Primary prefered
  3. Secondary
  4. Secondary prefered
  5. Newest (mais próximo)
// reconfiguração de opções
rs.reconfig()

// arbiter não tem dados, só vota ( arbiterOnly: true) e é configurado no config do RS

// priority = 1  default, 0=never  - parametro também inserido no arquivo de configuração

// parametros hidden: true (nenhum cliente pode enxerga-lo, somente o primary

// slaveDelay: <seconds> ( 8 * 3600) équivale a 8 horas
// hidden true é automático quando esta configurado como slaveDelay
// arquivo hidden não aparece no hosts

//votes: <n> .Não é recomendável utilizar esta opção. ele pode ser 0 (zero)

// dica para atualizar o arquivo de configuração já existente
cfg.members[2]= lkjsdfjklsdfjkldsfljkdfjkl (parametros)

// oplog guarda as atualizações a serem feitas (normalmente qdo tem slaveDelay)

// na maiorira das vezes, ou quando algo é importante o w deve ser majority ({ w : "majority"}) .
// w=1 para coisas não muito críticas (not super critical)

// dica: é uma boa ter o arbiter um DC diferente como Amazon

Set deve ter < =12 members and < = 7 votes

// para verificar quantos rs estão funcionando (mongod)

  1. ps -A | grep mongod




Fonte: Estas informações foram retiradas do curso online do website MongoDb University para DBA (M102)