sexta-feira, 15 de maio de 2015

Script - SSH sem senha

Olá jovens!!!

Tudo bem? Espero que sim...

Olha ai um script bacana para ajudar. Ele faz a troca de chaves entre servidores. 

Fica em "/grid/sshsetup".

O Portilho escreveu sobre esse script no blog da Nerv [Clique aqui para ver].

O post dele é a base desse post, eu só comentei algumas opções e a saída do script. E também para eu não precisar procurar depois quando eu precisar, resolvi publicar aqui. 

Segue as opções para execução:
./sshUserSetup.sh
                                -user  
                                [ -hosts     "space separated hostlist>" |
                               -hostfile "absolute path of cluster configuration file" ]
[ -advanced ]
[ -verify]
[ -exverify ]
[ -logfile
[-confirm]
[-shared]
[-help]
[-usePassphrase]
[-noPromptPassphrase]

Onde:
-noPromptPassphrase: Valor default. Aqui você diz que não quer usar uma passphrase
-exverify:                   Realiza uma verificação completa após a troca, checando o host
                                      remoto e a conexão local.
-advanced:                 Isso define a conectividade SSH entre os hosts remotos. Significa
                                     que o SSH pode ser usa do para executar comandos em um host
                                     remoto a partir do host atual, por exemplo.
-logfile:                     Gera um arquivo de log
-confirm:                   O normal seria remover permissões de gravação nos hosts remotos
                                     para o diretório home do usuário e o diretório ~/.ssh para "grupo" e
                                     "outros". O usuário poderia ser explicitamente informados sobre isso.
                                     Caso não queira ser avisado, usa-se o -confirm.

Todas essas informações mais detalhadas você consegue aqui:
   
      [grid@ora11g01 sshsetup]$ ./sshUserSetup.sh -help

Então o comando ficaria assim:

[grid@ora11g01 sshsetup]$ ./sshUserSetup.sh -user grid -hosts "ora11g01 ora11g02" \
                                                        -advanced -exverify -confirm -noPromptPassphrase \
                                                        -logfile "/tmp/teste.txt"

Peguei umas partes mais importantes da saída do script, para ilustrar.

== Verificações dos servidores, se estão respondendo a ping, etc
The output of this script is also logged into /tmp/teste.txt
Hosts are ora11g01 ora11g02
user is grid
Platform:- Linux
Checking if the remote hosts are reachable
PING ora11g01 (192.168.1.190) 56(84) bytes of data.
64 bytes from ora11g01 (192.168.1.190): icmp_seq=1 ttl=64 time=0.028 ms
64 bytes from ora11g01 (192.168.1.190): icmp_seq=2 ttl=64 time=0.028 ms
64 bytes from ora11g01 (192.168.1.190): icmp_seq=3 ttl=64 time=0.030 ms
64 bytes from ora11g01 (192.168.1.190): icmp_seq=4 ttl=64 time=0.029 ms
64 bytes from ora11g01 (192.168.1.190): icmp_seq=5 ttl=64 time=0.028 ms

--- ora11g01 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3999ms
rtt min/avg/max/mdev = 0.028/0.028/0.030/0.005 ms
PING ora11g02 (192.168.1.191) 56(84) bytes of data.
64 bytes from ora11g02 (192.168.1.191): icmp_seq=1 ttl=64 time=0.349 ms
64 bytes from ora11g02 (192.168.1.191): icmp_seq=2 ttl=64 time=0.190 ms
64 bytes from ora11g02 (192.168.1.191): icmp_seq=3 ttl=64 time=0.300 ms
64 bytes from ora11g02 (192.168.1.191): icmp_seq=4 ttl=64 time=0.265 ms
64 bytes from ora11g02 (192.168.1.191): icmp_seq=5 ttl=64 time=0.239 ms

--- ora11g02 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 0.190/0.268/0.349/0.056 ms
Remote host reachability check succeeded.
The following hosts are reachable: ora11g01 ora11g02.
The following hosts are not reachable: .
All hosts are reachable. Proceeding further...
firsthost ora11g01
numhosts 2

== Aqui ele pede a senha do usuário 
-- Nó 1
The user may be prompted for a password here since the script would be running SSH on host ora11g01.
Warning: Permanently added 'ora11g01,192.168.1.190' (RSA) to the list of known hosts.
grid@ora11g01's password:

The user may be prompted for a password or passphrase here since the script would be using SCP for host ora11g01.
grid@ora11g01's password: 


== Por fim, as validações
--ora11g01:--
Running /usr/bin/ssh -x -l grid ora11g01 date to verify SSH connectivity has been setup from local host to ora11g01.
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR.
Fri May 15 10:36:23 BRT 2015
-------------------------------------------------------------------- --ora11g02:--
Running /usr/bin/ssh -x -l grid ora11g02 date to verify SSH connectivity has been setup from local host to ora11g02.
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR.
Fri May 15 10:36:23 BRT 2015
-------------------------------------------------------------------- --------------------------------------------------------------------
Verifying SSH connectivity has been setup from ora11g01 to ora11g01
-------------------------------------------------------------------- IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL.
Fri May 15 10:36:23 BRT 2015
-------------------------------------------------------------------- --------------------------------------------------------------------
Verifying SSH connectivity has been setup from ora11g01 to ora11g02
--------------------------------------------------------------------IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL.
Fri May 15 10:36:23 BRT 2015
-------------------------------------------------------------------- -Verification from ora11g01 complete-
--------------------------------------------------------------------Verifying SSH connectivity has been setup from ora11g02 to ora11g01
-------------------------------------------------------------------- IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL.
Fri May 15 10:36:24 BRT 2015
--------------------------------------------------------------------
--------------------------------------------------------------------
Verifying SSH connectivity has been setup from ora11g02 to ora11g02
--------------------------------------------------------------------
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL.
Fri May 15 10:36:24 BRT 2015
-------------------------------------------------------------------- -Verification from ora11g02 complete-
SSH verification complete.


É isso, simples assim.

Abraço

Mario

terça-feira, 20 de maio de 2014

Movimentando Voting Disk e OCR - RAC 10g

Olá jovens.

Hoje vou passar uma dica simples, mas bem útil para movimentar os voting disks e ocr's do seu RAC. 

Sem muita enrolação hoje, vamos ao que interessa.

Primeira parte - Preparação dos novos discos montados via OCFS

1.) Login as root
su -
  
2) Caso necessário, fazer o FDISK nos discos apresentados
ls -lrht /dev/mapper/VV_ORACLE_CRS*

fdisk /dev/mapper/VV_ORACLE_CRS0
n,p,1,enter,enter,w

Se necessário, no nó 2:
partprobe /dev/mapper/VV_ORACLE_CRS0

[+ASM1.zema-ora10g-n1 ~]$ ls -lrht /dev/mapper/VV_ORACLE_CRS?*
brw-rw---- 1 root disk 253, 24 May  8 18:02 /dev/mapper/VV_ORACLE_CRS0
brw-rw---- 1 root disk 253, 25 May  8 18:03 /dev/mapper/VV_ORACLE_CRS1
brw-rw---- 1 root disk 253, 26 May  8 18:03 /dev/mapper/VV_ORACLE_CRS2
brw-rw---- 1 root disk 253, 27 May  8 18:03 /dev/mapper/VV_ORACLE_CRS3
brw-rw---- 1 root disk 253, 28 May  8 18:03 /dev/mapper/VV_ORACLE_CRS4
brw-rw---- 1 root disk 253, 38 May  8 18:04 /dev/mapper/VV_ORACLE_CRS0p1
brw-rw---- 1 root disk 253, 39 May  8 18:04 /dev/mapper/VV_ORACLE_CRS1p1
brw-rw---- 1 root disk 253, 40 May  8 18:04 /dev/mapper/VV_ORACLE_CRS2p1
brw-rw---- 1 root disk 253, 41 May  8 18:04 /dev/mapper/VV_ORACLE_CRS3p1
brw-rw---- 1 root disk 253, 42 May  8 18:04 /dev/mapper/VV_ORACLE_CRS4p1

3) Verificar no /etc/rc.local se estes discos já fazem parte das regras de direitos (nos dois nós)

4) Criar os novos diretórios onde serão montados os discos (nos dois nós)
mkdir /ocfs2_ocr11 /ocfs2_ocr22 /ocfs2_vdsk11 /ocfs2_vdsk22 /ocfs2_vdsk33
  
chown oracle:oinstall /ocfs2_ocr11 /ocfs2_ocr22 /ocfs2_vdsk11 /ocfs2_vdsk22 /ocfs2_vdsk33
  
5) Realizar o mkfs.ocfs2 para formatar os novos discos e montar
mkfs.ocfs2 -b 4k -C 32K -N 4 -L /ocfs2_ocr11  /dev/mapper/VV_ORACLE_CRS0p1
mkfs.ocfs2 -b 4k -C 32K -N 4 -L /ocfs2_ocr22  /dev/mapper/VV_ORACLE_CRS1p1
mkfs.ocfs2 -b 4k -C 32K -N 4 -L /ocfs2_vdsk11 /dev/mapper/VV_ORACLE_CRS2p1
mkfs.ocfs2 -b 4k -C 32K -N 4 -L /ocfs2_vdsk22 /dev/mapper/VV_ORACLE_CRS3p1
mkfs.ocfs2 -b 4k -C 32K -N 4 -L /ocfs2_vdsk33 /dev/mapper/VV_ORACLE_CRS4p1
  
mount -t ocfs2 -o datavolume,nointr /dev/mapper/VV_ORACLE_CRS0p1 /ocfs2_ocr11
mount -t ocfs2 -o datavolume,nointr /dev/mapper/VV_ORACLE_CRS1p1 /ocfs2_ocr22
mount -t ocfs2 -o datavolume,nointr /dev/mapper/VV_ORACLE_CRS2p1 /ocfs2_vdsk11
mount -t ocfs2 -o datavolume,nointr /dev/mapper/VV_ORACLE_CRS3p1 /ocfs2_vdsk22
mount -t ocfs2 -o datavolume,nointr /dev/mapper/VV_ORACLE_CRS4p1 /ocfs2_vdsk33
  
6) Acrescentar as montagens no /etc/fstab (nos dois nós)
/dev/mapper/VV_ORACLE_CRS0p1 /ocfs2_ocr11       ocfs2  datavolume,nointr 0 0
/dev/mapper/VV_ORACLE_CRS1p1 /ocfs2_ocr22       ocfs2  datavolume,nointr 0 0
/dev/mapper/VV_ORACLE_CRS2p1 /ocfs2_vdsk11      ocfs2  datavolume,nointr 0 0
/dev/mapper/VV_ORACLE_CRS3p1 /ocfs2_vdsk22      ocfs2  datavolume,nointr 0 0
/dev/mapper/VV_ORACLE_CRS4p1 /ocfs2_vdsk33      ocfs2  datavolume,nointr 0 0

7) Pronto, é só verificar os discos.
df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VV_ORACLE_CRS0p1 1020M   86M  934M   9% /ocfs2_ocr11
/dev/mapper/VV_ORACLE_CRS1p1 1020M   86M  934M   9% /ocfs2_ocr22
/dev/mapper/VV_ORACLE_CRS2p1 1020M   86M  934M   9% /ocfs2_vdsk11
/dev/mapper/VV_ORACLE_CRS3p1 1020M   86M  934M   9% /ocfs2_vdsk22
/dev/mapper/VV_ORACLE_CRS4p1 1020M   86M  934M   9% /ocfs2_vdsk33


Segunda parte - Movimentação

1) Login as root
su -

2) Verificações
  
cd $GRID_HOME/bin            (/oracle/app/oracle/product/10.2.0/crs/bin/)
-- OCR's
./ocrcheck

Status of Oracle Cluster Registry is as follows :
     Version                  :          2
     Total space (kbytes)     :     262120
     Used space (kbytes)      :       9504
     Available space (kbytes) :     252616
     ID                       : 1593614163
     Device/File Name         : /ocfs2_ocr1/ocr01.ocr
                                Device/File integrity check succeeded
     Device/File Name         : /ocfs2_ocr2/ocr02.ocr
                                Device/File integrity check succeeded

     Cluster registry integrity check succeeded


-- VD
./crsctl query css votedisk
    0.     0    /ocfs2_vdsk1/vdisk01.crs
    1.     0    /ocfs2_vdsk2/vdisk02.crs
    2.     0    /ocfs2_vdsk3/vdisk03.crs

-- Backup's
./ocrconfig -showbackup

israc01  2014/05/16 20:19:08 /oracle/app/oracle/oracle/product/10.2.0/crs/cdata/crs
israc01  2014/05/16 16:19:08 /oracle/app/oracle/oracle/product/10.2.0/crs/cdata/crs
israc01  2014/05/16 12:19:08 /oracle/app/oracle/oracle/product/10.2.0/crs/cdata/crs
israc01  2014/05/15 00:19:07 /oracle/app/oracle/oracle/product/10.2.0/crs/cdata/crs
israc01  2014/05/16 00:19:08 /oracle/app/oracle/oracle/product/10.2.0/crs/cdata/crs

  
-- Executa o backup manual
./ocrconfig -export /oracle/app/oracle/product/10.2.0/crs/cdata/crs/ocr_20140518_1300 -s online

dd if=/ocfs2_vdsk1/vdisk01.ocr of=/oracle/app/oracle/product/10.2.0/crs/cdata/crs/vdisk01.crs.bak bs=4k
2500+0 records in
2500+0 records out
10240000 bytes (10 MB) copied, 0.079659 seconds, 129 MB/s

dd if=/ocfs2_vdsk2/vdisk02.ocr of=/oracle/app/oracle/product/10.2.0/crs/cdata/crs/vdisk02.crs.bak bs=4k
2500+0 records in
2500+0 records out
10240000 bytes (10 MB) copied, 0.088987 seconds, 115 MB/s

dd if=/ocfs2_vdsk3/vdisk03.ocr of=/oracle/app/oracle/product/10.2.0/crs/cdata/crs/vdisk03.crs.bak bs=4k
2500+0 records in
2500+0 records out
10240000 bytes (10 MB) copied, 0.103655 seconds, 98.8 MB/s

[root@zema-ora10g-n1 bin]# ls -lrht /oracle/app/oracle/product/10.2.0/crs/cdata/crs
total 96M
-rw-r--r-- 1 root root 9.5M May 11 06:44 week.ocr
-rw-r--r-- 1 root root 9.5M May 17 06:44 day.ocr
-rw-r--r-- 1 root root 9.5M May 18 02:44 backup02.ocr
-rw-r--r-- 1 root root 9.5M May 18 06:44 week_.ocr
-rw-r--r-- 1 root root 9.5M May 18 06:44 day_.ocr
-rw-r--r-- 1 root root 9.5M May 18 06:44 backup01.ocr
-rw-r--r-- 1 root root 9.5M May 18 10:44 backup00.ocr
-rw-r--r-- 1 root root 223K May 18 13:04 ocr_20140518_1300
-rw-r--r-- 1 root root 9.8M May 18 13:06 vdisk01.crs.bak
-rw-r--r-- 1 root root 9.8M May 18 13:06 vdisk02.crs.bak
-rw-r--r-- 1 root root 9.8M May 18 13:06 vdisk03.crs.bak

[prdmv1.israc01 ~]$ ~/crstat.sh
HA Resource                                   Target     State
-----------                                   ------     -----
ora.zema-ora10g-n1.ASM1.asm                   ONLINE     ONLINE on zema-ora10g-n1
ora.zema-ora10g-n1.LISTENER_ZEMA-ORA10G-N1.lsnr ONLINE     ONLINE on zema-ora10g-n1
ora.zema-ora10g-n1.gsd                        ONLINE     ONLINE on zema-ora10g-n1
ora.zema-ora10g-n1.ons                        ONLINE     ONLINE on zema-ora10g-n1
ora.zema-ora10g-n1.vip                        ONLINE     ONLINE on zema-ora10g-n1
ora.zema-ora10g-n2.ASM2.asm                   ONLINE     ONLINE on zema-ora10g-n2
ora.zema-ora10g-n2.LISTENER_ZEMA-ORA10G-N2.lsnr ONLINE     ONLINE on zema-ora10g-n2
ora.zema-ora10g-n2.gsd                        ONLINE     ONLINE on zema-ora10g-n2
ora.zema-ora10g-n2.ons                        ONLINE     ONLINE on zema-ora10g-n2
ora.zema-ora10g-n2.vip                        ONLINE     ONLINE on zema-ora10g-n2
ora.bdprd.bdprd1.inst                         ONLINE     ONLINE on zema-ora10g-n1
ora.bdprd.bdprd2.inst                         ONLINE     ONLINE on zema-ora10g-n2
ora.bdprd.db                                  ONLINE     ONLINE on zema-ora10g-n1
ora.bdsml.bdsml1.inst                         ONLINE     ONLINE on zema-ora10g-n1
ora.bdsml.bdsml2.inst                         ONLINE     ONLINE on zema-ora10g-n2
ora.bdsml.db                                  ONLINE     ONLINE on zema-ora10g-n1
ora.bdtrn.bdtrn1.inst                         ONLINE     ONLINE on zema-ora10g-n1
ora.bdtrn.bdtrn2.inst                         ONLINE     ONLINE on zema-ora10g-n2
ora.bdtrn.db                                  ONLINE     ONLINE on zema-ora10g-n2
  
Importante: Verificar se não existe SPFILE ou qualquer outro arquivo nas áreas que não serão mais utilizadas. Se houver, alterar.
   
3) Parar todos os serviços do RAC (nos dois nós)
  
-- Nó 2
/etc/init.d/init.crs stop
    Shutting down Oracle Cluster Ready Services (CRS):
    May 18 13:09:03.653 | INF | daemon shutting down
    Stopping resources. This could take several minutes.
    Successfully stopped CRS resources.
    Stopping CSSD.
    Shutting down CSS daemon.
    Shutdown request successfully issued.
    Shutdown has begun. The daemons should exit soon.

-- Nó 1
/etc/init.d/init.crs stop
    Shutting down Oracle Cluster Ready Services (CRS):
    May 18 13:10:04.123 | INF | daemon shutting down
    Stopping resources. This could take several minutes.
    Successfully stopped CRS resources.
    Stopping CSSD.
    Shutting down CSS daemon.
    Shutdown request successfully issued.
    Shutdown has begun. The daemons should exit soon.

--Verificação
./crsctl check crs
    Failure 1 contacting CSS daemon
    Cannot communicate with CRS
    Cannot communicate with EVM

4) Cria os novos VD's para as novas localizações
  
./crsctl add css votedisk /ocfs2_vdsk11/vdisk011.crs -force
    Now formatting voting disk: /ocfs2_vdsk11/vdisk011.crs
    successful addition of votedisk /ocfs2_vdsk11/vdisk011.crs .

./crsctl add css votedisk /ocfs2_vdsk22/vdisk022.crs -force
    Now formatting voting disk: /ocfs2_vdsk22/vdisk022.crs
    successful addition of votedisk /ocfs2_vdsk22/vdisk022.crs .

./crsctl add css votedisk /ocfs2_vdsk33/vdisk033.crs -force
    Now formatting voting disk: /ocfs2_vdsk33/vdisk033.crs
    successful addition of votedisk /ocfs2_vdsk33/vdisk033.crs .
  
Importante: Não esquecer de verificar as permissões dos arquivos criados:
    chown oracle:oinstall /ocfs2_vdsk11/vdisk011.crs
    chown oracle:oinstall /ocfs2_vdsk22/vdisk022.crs
    chown oracle:oinstall /ocfs2_vdsk33/vdisk033.crs
  
  
ls -lrht /ocfs2_vdsk11
total 9.8M
drwxr-xr-x 2 root   root     3.9K May 17 20:47 lost+found
-rw-r--r-- 1 oracle oinstall 9.8M May 18 13:29 vdisk011.crs

ls -lrht /ocfs2_vdsk22
total 9.8M
drwxr-xr-x 2 root   root     3.9K May 17 20:47 lost+found
-rw-r--r-- 1 oracle oinstall 9.8M May 18 13:29 vdisk022.crs

ls -lrht /ocfs2_vdsk33
total 9.8M
drwxr-xr-x 2 root   root     3.9K May 17 20:47 lost+found
-rw-r--r-- 1 oracle oinstall 9.8M May 18 13:31 vdisk033.crs
  
5)     Verifica se a alteração foi realizada
./crsctl query css votedisk

0.     0    /ocfs2_vdsk1/vdisk01.crs
1.     0    /ocfs2_vdsk2/vdisk02.crs
2.     0    /ocfs2_vdsk3/vdisk03.crs
3.     0    /ocfs2_vdsk11/vdisk011.crs            -- Novo
4.     0    /ocfs2_vdsk22/vdisk022.crs            -- Novo
5.     0    /ocfs2_vdsk33/vdisk033.crs            -- Novo

6) Exclui os VD's antigos e verifica novamente

./crsctl delete css votedisk /ocfs2_vdsk1/vdisk01.ocr -force
    successful deletion of votedisk /ocfs2_vdsk1/vdisk01.ocr.

./crsctl delete css votedisk /ocfs2_vdsk2/vdisk02.ocr -force
    successful deletion of votedisk /ocfs2_vdsk2/vdisk02.ocr.

./crsctl delete css votedisk /ocfs2_vdsk3/vdisk03.ocr -force
    successful deletion of votedisk /ocfs3_vdsk1/vdisk03.ocr.

      
./crsctl query css votedisk
    0.     0    /ocfs2_vdsk11/vdisk011.crs
    1.     0    /ocfs2_vdsk22/vdisk022.crs
    2.     0    /ocfs2_vdsk33/vdisk033.crs

7) Agora vamos movimentar os OCR's. Para isso, iniciar o CRS nos dois nós
./crsctl start crs
  
-- Checar se subiu
./crsctl check crs
    CSS appears healthy
    CRS appears healthy
    EVM appears healthy

8) Criar os novos OCR's:

touch /ocfs2_ocr11/ocrs011.crs
touch /ocfs2_ocr22/ocrs022.crs
  
Importante: Não esquecer de deixar os direitos iguais aos antigos

./ocrconfig -replace ocr /ocfs2_ocr11/ocrs011.crs
./ocrconfig -replace ocrmirror /ocfs2_ocr22/ocrs022.crs

-- Verificar a alteração de local
cat /etc/oracle/ocr.loc

9) Verificações
./ocrcheck
  
Status of Oracle Cluster Registry is as follows :
     Version                  :          2
     Total space (kbytes)     :     262120
     Used space (kbytes)      :       3840
     Available space (kbytes) :     258280
     ID                       :  665915271
     Device/File Name         : /ocfs2_ocr11/ocrs011.crs
                                Device/File integrity check succeeded
     Device/File Name         : /ocfs2_ocr22/ocrs022.crs
                                Device/File integrity check succeeded

     Cluster registry integrity check succeeded

10) Verificar todos os serviços, fstab e fazer um restart no CRS apenas para conferência (nos dois nós)
./crsctl stop crs
./crsctl start crs
    
-- Fontes
OCR / Vote disk Maintenance Operations: (ADD/REMOVE/REPLACE/MOVE) (Doc ID 428681.1)
Failed to Start CRS stack After Adding a New Voting Disk [ID 460874.1]


É filho, se chegou até aqui e não me xingou é porquê deu tudo certo né?

Mario
Abraço

terça-feira, 6 de maio de 2014

Alterar IP's Public e Virtual no Oracle RAC

Jovens, bom dia.

Esses dias o meu chefe Japa San pediu para eu ir até um cliente que precisaria realizar a alteração dos IP's publico e virtuais de um RAC 10G.

Abaixo segue o que foi feito - com sucesso, diga-se :D

Algumas verificações ali eram desnecessárias, mas para deixar tudo muito bem documentado no relatório do trabalho, achei legal deixar.

No final, segue os notes usados como base para o trabalho.

1. Verificar os backup's do OCR.
    Verifica o OCR
        ocrcheck
        Status of Oracle Cluster Registry is as follows :
        Version                  :          2
        Total space (kbytes)     :     262120
        Used space (kbytes)      :       4660
        Available space (kbytes) :     257460
        ID                       : 1398221949
        Device/File Name         : /ocfs2_ocr1/ocrs01.crs
        Device/File integrity check succeeded
        Device/File Name         : /ocfs2_ocr2/ocrs02.crs
        Device/File integrity check succeeded
        Cluster registry integrity check succeeded
   
    Verifica as VD
        crsctl query css votedisk
             0.     0    /ocfs2_vdsk1/vdisk01.crs
             1.     0    /ocfs2_vdsk2/vdisk02.crs
             2.     0    /ocfs2_vdsk3/vdisk03.crs
       
    Verifica o backup automático
        ocrconfig -showbackup
            srvora01     2014/04/10 13:39:38     /oracle/app/oracle/product/10.2.0/crs_1/cdata/oracrs
            srvora01     2014/04/10 09:39:38     /oracle/app/oracle/product/10.2.0/crs_1/cdata/oracrs
            srvora01     2014/04/10 05:39:38     /oracle/app/oracle/product/10.2.0/crs_1/cdata/oracrs
            srvora01     2014/04/09 09:39:37     /oracle/app/oracle/product/10.2.0/crs_1/cdata/oracrs
            srvora01     2014/03/31 01:39:25     /oracle/app/oracle/product/10.2.0/crs_1/cdata/oracrs

            ls -lrht /oracle/app/oracle/product/10.2.0/crs_1/cdata/oracrs
            -rw-r--r-- 1 root root 4.7M Mar 31 01:39 week.ocr
            -rw-r--r-- 1 root root 4.7M Apr  7 01:39 week_.ocr
            -rw-r--r-- 1 root root 4.7M Apr  9 09:39 day.ocr
            -rw-r--r-- 1 root root 4.7M Apr 10 09:39 day_.ocr
            -rw-r--r-- 1 root root 4.7M Apr 10 13:39 backup02.ocr
            -rw-r--r-- 1 root root 4.7M Apr 10 17:39 backup01.ocr
            -rw-r--r-- 1 root root 4.7M Apr 10 21:39 backup00.ocr
            -rw-r--r-- 1 root root 107K Apr 11 01:21 ocr201404110120

    Executa o backup manual
      ocrconfig -export /oracle/app/oracle/product/10.2.0/crs_1/cdata/oracrs/ocr201404110120 -s online
          ou
          ocrconfig -manualbackup
       
       
2. Verifica as informações das placas, IP's, VIP, etc
    cd $CRS_HOME/bin
   
    oifcfg iflist
        eth0   11.0.0.0
        bond0  172.16.0.0

    oifcfg getif
        eth0 11.0.0.0 global cluster_interconnect
        bond0 172.16.0.0 global public

    -- Verifica o VIP   
    srvctl config nodeapps -n srvora01 -a
        VIP exists.: /srvora01-vip/172.16.0.205/255.255.255.0/bond0

    srvctl config nodeapps -n srvora02 -a
        VIP exists.: /srvora02-vip/172.16.0.204/255.255.255.0/bond0

    -- ./crsstat
    HA Resource                                   Target     State
    -----------                                   ------     -----
    ora.ttt.db                                    ONLINE     ONLINE on srvora01
    ora.ttt.ttt01.inst                            ONLINE     ONLINE on srvora01
    ora.ttt.ttt02.inst                            ONLINE     ONLINE on srvora02
    ora.xxx.db                                    ONLINE     ONLINE on srvora01
    ora.xxx.xxx01.inst                            ONLINE     ONLINE on srvora01
    ora.xxx.xxx02.inst                            ONLINE     ONLINE on srvora02
    ora.srvora01.ASM1.asm                         ONLINE     ONLINE on srvora01
    ora.srvora01.LISTENER_SRVORA01.lsnr           ONLINE     ONLINE on srvora01
    ora.srvora01.gsd                              ONLINE     ONLINE on srvora01
    ora.srvora01.ons                              ONLINE     ONLINE on srvora01
    ora.srvora01.vip                              ONLINE     ONLINE on srvora01
    ora.srvora02.ASM2.asm                         ONLINE     ONLINE on srvora02
    ora.srvora02.LISTENER_SRVORA02.lsnr           ONLINE     ONLINE on srvora02
    ora.srvora02.gsd                              ONLINE     ONLINE on srvora02
    ora.srvora02.ons                              ONLINE     ONLINE on srvora02
    ora.srvora02.vip                              ONLINE     ONLINE on srvora02
   
3. Para todos os serviços do RAC (como root)
     srvctl stop database -d ttt
     srvctl stop database -d xxx
     srvctl stop vip -n srvora01
     srvctl stop vip -n srvora02

    OU (se preferir :D muito mais simples)
   
    /etc/init.d/init.crs stop
   
4. Altera a interface (em apenas um dos nodes já que vai utilizar a opção -global) - Como ORACLE

    $ oifcfg setif -global /:public
    $ oifcfg setif -global /:cluster_interconnect

    Exemplo:
   
    -- Aqui mantive os IP's e alterei somente a interface
    $ oifcfg setif -global bond0:1/172.16.0.0:public
    $ oifcfg setif -global bond0:4/11.0.0.0:cluster_interconnect
       
           
    Para o VIP, além disso, também é necessário alterar no OCR através do srvctl, como ROOT - somente para 11g
   
        -- Aqui mantive os IP's e alterei somente a interface
        srvctl modify nodeapps -n srvora01 -o /oracle/app/oracle/product/11.2.0/crs -A 11.0.0.2/255.255.255.0/bond0:4
        srvctl modify nodeapps -n srvora02 -o /oracle/app/oracle/product/11.2.0/crs -A 11.0.0.1/255.255.255.0/bond0:4
       
        OU
       
        srvctl modify nodeapps -n srvora01 -o /oracle/app/oracle/product/11.2.0/crs -A srvora01-vip/255.255.255.0/bond0:4
        srvctl modify nodeapps -n srvora02 -o /oracle/app/oracle/product/11.2.0/crs -A srvora02-vip/255.255.255.0/bond0:4
       
            -n - Node name.
            -o - Oracle Home for the cluster software (CRS-Home).
            -A - The node level VIP address (/netmask[/if1[|if2|...]]).
   
5. Verifica (deveria ficar assim)
    oifcfg iflist
        bond1  11.0.0.0
        bond0  172.16.0.0

    oifcfg getif
        bond1 11.0.0.0 global cluster_interconnect
        bond0 172.16.0.0 global public
               
6. Modifica o hosts (se necessário, se for mudança de IP)   

7. Sobe o rac
    /etc/init.d/init.crs start
   
8. Remove the old interface if required:
    $ oifcfg delif -global [/]
    eg:
    oifcfg delif -global bond0/172.16.0.0
    oifcfg delif -global eth0/11.0.0.0

   
Jovens, é isso.

Lembre-se. Esse processo é só para Publico/Virtual.

E antes que eu esqueça, os notes de base:
1. "How to Change Interconnect/Public Interface IP or Subnet in Oracle Clusterware", Doc ID: 283684.1
2. "Modifying the VIP or VIP Hostname of a 10g or 11g Oracle Clusterware Node", DOC ID: 276434.1

 
Abraço
Mario


   

domingo, 4 de maio de 2014

Movimentar datafiles em um standby

Ahhhh Jovem, você aqui de novo?

Que bom, que bom. Sinal que as postagens estão ajudando..

Caso você precise alterar o local de algum datafile de um StandBy, basta seguir os passos abaixo:

1- Baixar o banco standby.
    shutdown immediate;

2- Fazer a copia dos datafiles da origem para destino.
    cp -rv

3- Montar o banco standby.
    startup mount;

4- Alterar gerenciamento de arquivos do standby para MANUAL.
    show parameter standby;
    alter system set standby_file_management=MANUAL scope=both;

5- Realizar o rename dos datafiles copiados.
    alter database rename file '' to '';

6- Voltar gerenciamento de arquivos do standby valor antigo.
    alter system set standby_file_management=AUTO scope=both;

7- Montar novamente a base em modo standby.
    shutdown immdiate;
    startup nomount;
    alter database mount standby database;
   
Ai está jovem. Fácil e rápido.

Dica do meu amigo Rafael Ferreira.

Abraço
Mario

Apresentar o HISTORY com data e hora



Olá jovens.

Segue ai uma dica bem rapidinha e fácil, mas que pode te ajudar nas investigações que você possa precisar fazer para descobrir quem foi aquele abençoado que deletou todos os seus arquivos de trace, por exemplo.

Ou descobrir quem achou que aqueles tais "archives" só estavam ocupando espaço em disco e quepodiam ser excluídos.

Geralmente o comando "history" nos apresenta apenas o comando executado, como o exemplo abaixo:

[+ASM1.mario01 ~]$ history |grep siscontrol
  425  siscontrol
  508  siscontrol status
  519  siscontrol status
  522  siscontrol status
  531  siscontrol status
  537  siscontrol status
  885  siscontrol status
  955  siscontrol status
  968  siscontrol status
  996  siscontrol status
 1005  history |grep siscontrol

Agora, acrescentando a linha abaixo ao .bash_profile do usuário, veja que legal a saída:

vim ~/.bash_profile

Acrescentar:
       ## Para mostrar o history com data e hora
       export HISTTIMEFORMAT="%d/%m/%y %T "

Recarregue o bash_profile:
       source ~/.bash_profile

Execute novamente:
      
[+ASM1.mario01 ~]$ history |grep siscontrol
  425  04/05/14 15:58:18 siscontrol
  508  04/05/14 15:58:18 siscontrol status
  519  04/05/14 15:58:18 siscontrol status
  522  04/05/14 15:58:18 siscontrol status
  531  04/05/14 15:58:18 siscontrol status
  537  04/05/14 15:58:18 siscontrol status
  885  04/05/14 15:58:18 siscontrol status
  955  04/05/14 15:58:18 siscontrol status
  968  04/05/14 15:58:18 siscontrol status
  996  04/05/14 15:58:18 siscontrol status
 1005  04/05/14 15:59:52 history |grep siscontrol
 1008  04/05/14 16:00:46 history |grep siscontrol

Pode parecer bobo, mas saber a data e hora do que foi executado pode ajudar demais.

Dica rápida e fácil que foi passada pelo meu amigo Breno Rodrigues.

Abraço
Mario

Postagem em destaque

[Oracle] GoldenGate for Distributed Applications and Analytics (GG for DAA) & Iceberg replication

Hello everyone.   How are you doing?   I was talking to Alex Lima, Oracle GoldenGate Product Manager, today and he suggested I take a look a...