Site em Manutenção
Conteúdo voltado para banco de dados Oracle e SQL Server

Administração Archive

Geralmente após algum desligamento programado ou um incidente no servidor, rede elétrica, etc, é preciso voltar o RAC em seu pleno funcionamento e alguns comandos são úteis para verificar se o serviço está UP:

– Verificar o status do banco de dados através do comando srvctl:

# srvctl status database -d inst0

Resultado:

A instância inst01 não está em execução no nó dbserver01
A instância inst02 está em execução no nó dbserver02
A instância inst03 não está em execução no nó dbserver03

No nosso caso os serviços inst01 e inst03 nãoi estão rodando os 2 nós do RAC, somente em 1. É preciso executar o comando: srvctl start database -d inst0 novamente para que o serviço suba. Se ocorrer algum erro, basta ir no alert log do oracle home ou do grid para verificar as inconsistências

 

– Realizar a checkagem completa no cluster. Acesse a pasta bin do GRID: cd $GRID_HOME/bin e logo depois execute o comando abaixo:

# cd $GRID_HOME/bin

# ./crsctl check cluster -all

Resultado:

[dbserver01:inst01:/u01/app/12.1.0/grid/bin]$ ./crsctl check cluster -all
**************************************************************
dbserver01:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
dbserver02:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
dbserver03:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************

 

 – Listar os nodeapps para validação dos recursos de rede:

# srvctl status nodeapps

[dbserver01:vs012:/u01/app/12.1.0/grid/bin]$ srvctl status nodeapps
O VIP dbserver01-vip está ativado
O VIP dbserver01-vip está em execução no nó: dbserver01
O VIP dbserver02-vip está ativado
O VIP dbserver02-vip está em execução no nó: dbserver02
A rede está ativada
A rede está em execução no nó: dbserver01
A rede está em execução no nó: dbserver02
O ONS está ativado
O daemon ONS está em execução no nó: dbserver01
O daemon ONS está em execução no nó: dbserver02
PRKO-2166 : GSD não existe no nó(s) : dbserver01,dbserver02

 

– Para uma verificação mais detalhada, podemos usar o: crsctl stat res -t que lista os dados de cada recurso do cluster:

Acesse a pasta bin do GRID: # cd $GRID_HOME/bin

Execute o comando: # ./crsctl stat res -t

check_cluster_blog

Com base nas informações, podemos ver que os recursos ora.ACFS_BACKUP.BKP_ORACLE.advm, ora.ACFS_BACKUP.VOL_ACFS.advm e ora.ACFS_BACKUP.dg estão OFFLINE, sendo necessário intervenção para colocá-los online, conforme faremos no item 6.

– Para verificar o status de cada um dos itens OFFLINE, basta executar o comando abaixo:

# crsctl status resource ora.ACFS_BACKUP.BKP_ORACLE.advm

Resultado:

NAME=ora.ACFS_BACKUP.BKP_ORACLE.advm
TYPE=ora.volume.type
TARGET=ONLINE , ONLINE
STATE=OFFLINE, OFFLINE

– Para startar um recurso que está offline, basta executar o comando crsctl start resource [nome do recurso]:

# ./crsctl start resource ora.ACFS_BACKUP.BKP_ORACLE.advm

O resultado do comando é semelhante á esse abaixo, porém pode existir vários erros de acordo com o recurso e devem ser resolvidos de acordo com os erros na tela:

CRS-2672: Attempting to start ‘ora.ACFS_BACKUP.dg’ on ‘dbserver01’
CRS-2672: Attempting to start ‘ora.ACFS_BACKUP.dg’ on ‘dbserver02’

Esse é um checklist básico de verificação dos serviços. Outra variáveis podem ser verificadas tais como alert.log do oracle e do grid, logs do storage, rede e análise do /var/log/messages a nível de S.O.

Quando realizamos a instalação do Oracle Database, são instalados os binários e os referidos bancos de dados (dbca). Ror default os bancos não startam nem fazem o shutdown de maneira autônoma, é preciso entrar no SQLPLUS, rodar o comando shutdown quando necessita desligar o servidor ou o comando startup após o religamento ou reboot do servidor para que o banco seja startado e suas tabelas ficarem acessíveis.

O primeiro passo para automatizar esse processo, é acessando o arquivo /etc/oratab no servidor Linux e chegar algumas informações:

[root@localhost /]# vi /etc/oratab

verificar-oratab-linux

Para cada vez que você roda o DBCA e cria um banco de dados, uma nova linha é adicionada nesse arquivo com o nome do banco. No nosso caso o banco em questão é o cdb1. Note que há uma letra N no final da linha, que indica se o banco será startado quando o utilitário dbstart invocá-lo ou se será desligado quando o comando dbshut for utilizado.

Faça a edição dessa linha para Y e saia do editor do VI, deixando o arquivo desse jeito:

verificar-oratab-linux2

Depois de feito isso, basta configurar um serviço na pasta /etc/init.d com o nome dbora com os comandos abaixo:

#vi /etc/init.d/dbora

Copie e cole o comando abaixo, alterado o ORACLE_HOME para o que está setado no bash_profile do usuário oracle:

#!/bin/sh
# chkconfig: 345 99 10
ORACLE_HOME=(coloque aqui o caminho do seu ORACLE_HOME)
#
ORACLE=oracle
PATH=${PATH}:$ORACLE_HOME/bin
export ORACLE_HOME PATH
#
case $1 in
‘start’)
runuser -l $ORACLE -c “$ORACLE_HOME/bin/dbstart $ORACLE_HOME &”
touch /var/lock/subsys/dbora
;;
‘stop’)
runuser -l $ORACLE -c “$ORACLE_HOME/bin/dbshut $ORACLE_HOME”
rm -f /var/lock/subsys/dbora
;;
*)
echo “usage: $0 {start|stop}”
exit
;;
esac
#
exit

No meu ambiente ficou exatamente dessa maneira:

arquivo-etc-initd-dbora

Veja que no ORACLE_HOME eu coloquei o caminho da instalação do ORACLE em meu servidor, isso pode mudar de instalação pra instalação. Para verificar qual seu ORACLE_HOME, basta logar co mo usuário oracle no terminar e digitar o comando env e listar as variáveis.

Após criar o arquivo acima, basta setar as permissões corretas e definir o dbora como um serviço, conforme scripts abaixo:

#chmod 750 /etc/init.d/dbora
#chkconfig –add dbora

verificando-servico-e-permissoes

Verificando pelo chkconfig, podemos chegar a conclusão que o dbora foi incluído como serviço e com as opções: 3, 4 e 5 setadas como ON. isso aconteceu pelo fato de a 2ª linha do arquivo dbora conter essas informações: # chkconfig: 345 99 10 !

Para testar o funcionamento do script basta fazer um reboot no seu servidor de testes e atestar o correto desligamento e startup do banco através dos logs do Oracle.

 

Baixe e instale o Oracle Linux 7 diretamente do site da Oracle, após concluir a instalação rode o YUM UPDATE para atualizar todos os pacotes do Sistema operacional.

– Garanta que no arquivo /etc/hosts tem o nome completo da máquina, conforme exemplo abaixo:

[root@localhost ~]# vi /etc/hosts

192.168.0.1        localhost.localdomain         localhost
10.0.12.15       localhost.localdomain  localhost

– Ajustar o SELINUX, editar o arquivo config e alterar a linha SELINUX de enforced para permissive. Logo depois digitar o comando setenforce Permissive:

[root@localhost ~]# vi /etc/selinux/config
[root@localhost ~]# SELINUX = permissive
[root@localhost ~]# setenforce Permissive

Para verificar se as configurações foram aplicadas, digite o comando [root@localhost ~]# sestatus no shell e verificar a saída:

oracle-linux-selinux

 

– Crie os usuários e grupos abaixo:

groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin

Crie um usuário chamado oracle e o adicione nos grupos oinstall, dba e oper, conforme script abaixo:
[root@localhost ~]# useradd -u 54321 -g oinstall -G dba,oper oracle

Altere a senha do usuário oracle:

[root@localhost ~]# passwd oracle

Para visualizar os grupos criados, basta digitar: # cat /etc/group

oracle-linux-grupos-criados

 

– Desabilitar o Firewall, em algumas distribuições é preciso rodar o comando somente para o desabilitar o IPTABLES, em outras, tais como Oracle Linux 7 é preciso parar e desabilitar o serviço FIREWALLD:

[root@localhost ~]# service iptables stop
[root@localhost ~]# chkconfig iptables off
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld

– Instale os pré-requisitos da oracle para o banco de dados. Esse pacote cria usuários, ajusta arquivos de configuração e instala os pacotes necessários.

[root@localhost ~]# yum install oracle-rdbms-server-12cR1-preinstall -y
Após rodar o comando acima, execute as instalações abaixo que são um complemento do preinstall:
# From Public Yum or ULN
 yum install binutils -y
  yum install compat-libcap1 -y
  yum install compat-libstdc++-33 -y
  yum install compat-libstdc++-33.i686 -y
  yum install gcc -y
  yum install gcc-c++ -y
  yum install glibc -y
  yum install glibc.i686 -y
  yum install glibc-devel -y
  yum install glibc-devel.i686 -y
  yum install ksh -y
  yum install libgcc -y
  yum install libgcc.i686 -y
  yum install libstdc++ -y
  yum install xhost -y
  yum install unzip -y
  yum install xclock -y
  yum install libstdc++.i686 -y
  yum install libstdc++-devel -y
  yum install libstdc++-devel.i686 -y
  yum install libaio -y
  yum install libaio.i686 -y
  yum install libaio-devel -y
  yum install libaio-devel.i686 -y
  yum install libXext -y
  yum install libXext.i686 -y
  yum install libXtst -y
  yum install libXtst.i686 -y
  yum install libX11 -y
  yum install libX11.i686 -y
  yum install libXau -y
  yum install libXau.i686 -y
  yum install libxcb -y
  yum install libxcb.i686 -y
  yum install libXi -y
  yum install libXi.i686 -y
  yum install make -y
  yum install sysstat -y
  yum install unixODBC -y
  yum install unixODBC-devel -y

– Permitir a execução de programas de modo interativo. Edite o arquivo sshd_config para permitir a emulação de softwares via terminal e deixe as configurações abaixo habilitadas:

[root@localhost ~]# vi /etc/ssh/sshd_config
AllowAgentForwarding yes
AllowTcpForwarding yes
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
PermitTTY yes
PrintMotd yes

Saia do linux e conecte novamente para que as configurações acima façam efeito e digite o comando abaixo com o usuário root, veja que aparecerá uma mensagem informativa logo após o comando ser executado:

[root@localhost ~]# xhost +
access control disabled, clients can connect from any host

E os comandos abaixo com o usuário oracle:

[oracle@localhost ~]# export DISPLAY

[oracle@localhost ~]# DISPLAY=:0.0

Para mais informações visitar o link: http://www.cyberciti.biz/faq/x11-connection-rejected-because-of-wrong-authentication/

–  Alterar o arquivo /etc/security/limits.d/[??]-nproc.conf, sendo que o sinal de interrogação deve ser trocado pelos números que estiverem em seu arquivo:

[root@localhost ~]# vi /etc/security/limits.d/20-nproc.conf

Comentar a linha abaixo:
#*          soft    nproc    1024

E adicionar essa linha no arquivo:
* - nproc 16384

 

 – Adicionar as seguintes linhas no arquivo /etc/security/limits.conf:

[root@localhost ~]# vi /etc/security/limits.conf

oracle        soft         nofile      1024
oracle        hard       nofile      65536
oracle        soft         nproc      16384
oracle        hard       nproc      16384
oracle        soft         stack       10240
oracle       hard        stack       32768

 

– Criar o diretório de instalação do Oracle e dar as devidas permissões:

[root@localhost ~]# mkdir -p /u01/app/oracle/product/12.1.0.2/db_1
[root@localhost ~]# chown -R oracle:oinstall /u01
[root@localhost ~]# chmod -R 775 /u01

10º – Adicionar o conteúdo abaixo no bash_profile do usuário Oracle (/home/oracle/.bash_profile):

[root@localhost ~]# vi /home/oracle/.bash_profile

# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP

export ORACLE_HOSTNAME=nomedasuamaquina.nomedoseudominio
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0.2/db_1
export ORACLE_SID=cdb1

export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

11º – Copiar a instalação do oracle (parte 1 e 2) e descompactar:

[root@localhost ~]# unzip linuxamd64_12102_database_1of2.zip
[root@localhost ~]# unzip linuxamd64_12102_database_2of2.zip

 

12º – Acessar a pasta database (# cd /database ) e listar os arquivos com o ls -l

 

Por aqui terminamos a configuração do S.O. Oracle Linux para suportar a instalação do SGBD Oracle. No próximo artigo daremos início á instalação do banco de dados através do comando ./runInstaler de dentro da pasta database.

Hoje irei mostrar como realizar uma instalação do banco de dados MongoDB, um dos melhores produtos da atualidade no quesito NOSQL. O cenário atual consiste em uma máquina virutal com CentOS 7, 1GB de RAM e 4 processadores.

 

1º – Adicionar o Repositório do MongoDB no seu sistema operacional:

vim /etc/yum.repos.d/mongodb-org-3.2.repo

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

2º – Instalar o mongodb

yum install mongodb-org

Aparecerá a seguinte tela:

MongoDB - Instalação Pacote

 

Feito isso basta digitar: y e aguardar a instalação:

MongoDB-Instalação Pacote - Final

Na imagem acima vimos que o MondoDB foi instalado com sucesso, restando agora apenas algumas configurações para que o mesmo esteja apto a ser utilizado.

3º – Desabilitar o SELinux com o vim:

vim /etc/selinux/config

MongoDB - desabilitgar SELinux

Feito isso basta reiniciar o servidor para as configurações do SELinux fazer efeito e checar se as pastas de dados e log foram criadas com as devidas permissões ao usuário mongod.

Os caminhos são, respectivamente: /var/lib/mongo e /var/log/mongodb, conforme imagens abaixo:

Diretório de dados:

MongoDB- Diretórios

Diretório de logs:

MongoDB- Diretórios_Log

Estes diretórios são definidos pelo instalador do MongoDB e podem ser visualizados/alterados através do arquivo mongod.conf, bem como as configurações de rede e processos. Essa configuração é localizada no diretório: /etc/mongod.conf:

vim /etc/mongod.conf

MongoDB - arquivo de configuração

 

Após a checagem da estrutura de pastas e permissões, vamos inicializar o banco de dados:

 

1º – Startar o serviço do mongoDB:

service mongod start

MongoDB - startar serviço

A imagem acima mostra que o serviço foi startado com sucesso. Outra maneira de checar é rodando  o comando: service mongod status:

MongoDB - checar serviço

Ou então analisando a saída de log no arquivo mongod.log:

tail -f /var/log/mongodb/mongod.log

MongoDB - checar serviço - Log

Nesse caso o serviço subiu normalmente e está só aguardando novas conexões na porta 27017.

 

2º – habilitar o serviço do Mongo para inicializar automaticamente quando o servidor fizer algum reboot. Por padrão ele vem desabilitado, conforme imagem abaixo:

chkconfig –list

MongoDB - checar serviço - inicializacao

 

Para habilitá-lo basta digitar o comando: chkconfig mongod on e checar novamente:

MongoDB - checar serviço - inicializacao - chkconfig

E para finalizar, apresento uma ferramenta para gerenciamento da instância que chama Robomongo, podendo ser baixada diretamente no site e pode ajudar muito no gerenciamento da instância:

MongoDB - teste Mongo

Por hoje é só, nos próximos artigos vamos explorar os recursos do banco de dados e alguns truques para gerenciamento do banco.

 

Após fazer a instalação do SQL Server em seu ambiente é importante verificar alguns pontos para que nenhuma surpresa desagradável venha a acontecer. Alguns itens básicos de verificação que podem ajudar são:

 

  • Verificar o alinhamento das partições entregues ao S.O. Essa opção deve ser verificada antes de instalar o SQL Server, caso contrário, tem o trabalho administrativo para mover as bases de dados para outra unidade, formatar o disco com o alinhamento correto e voltar os bancos para a partição original.

 

  • Desabilitar o usuário SA e criar um grupo no Windows como sysadmin e incluir lá os DBA’s responsáveis pela instância.Entretanto considere a possibilidade de habilitar somente o Windows Authentication Mode no momento da instalação, e só depois habilitar o Mixed Mode, assim não será preciso digitar a senha do SA e o mesmo será criado desabilitado.

Read more…