Procedimiento para generar una BD Standby a partir de un backup full de la BD Primaria.
0- Iniciamos una instancia en modo mount con solo un parametro en el init.
Db_name=sydxxx
SQL> startup mount pfile='/home/oracle/init_18_12_2017.ora';
1- Debemos generar un backup full en nuestra BD primaria.
Creamos el archivo: backupfull.rman con el siguiente Script (adatamos los canales y rutas a nuestra necesidad)
run {
backup as compressed backupset database format '/respaldos/BACKUP_LEVEL_0%U' TAG 'PARA_STANBY' INCLUDE CURRENT CONTROLFILE;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
backup as compressed backupset archivelog all FORMAT '/respaldos/BACKUP_ARCHIVES_%U' tag 'ARCHIVES_PARA_STANBY';
}
2- Una vez finalizado el backup lo copiamos a un directorio donde nuestro server Standby pueda leer las piezas y generamos el siguiente el archivo con el siguiente contenido: duplicate.rman
run {
allocate auxiliary channel stby type disk;
allocate auxiliary channel stby2 type disk;
allocate auxiliary channel stby3 type disk;
allocate auxiliary channel stby4 type disk;
allocate auxiliary channel stby54 type disk;
allocate auxiliary channel stby4a type disk;
allocate auxiliary channel stby4b type disk;
allocate auxiliary channel stbyc4 type disk;
allocate auxiliary channel stby4d type disk;
allocate auxiliary channel stby4e type disk;
allocate auxiliary channel stby4f type disk;
duplicate target database for standby dorecover backup location='/respaldos/BACKUP_FOR_DUPLICATE/'
NOFILENAMECHECK
spfile
parameter_value_convert 'sydarg','sydxxx'
set db_unique_name='sydxxx'
set db_create_file_dest='+DG_DATARG_01'
set db_recovery_file_dest='+DG_FRARG_01'
set db_file_name_convert='+DG_DATARG_01/sydarg','+DG_DATARG_01/sydxxx'
set log_file_name_convert='+DG_FRARG_01/sydarg','+DG_FRARG_01/sydxxx'
set control_files='+DG_FRARG_01','+DG_DATARG_01'
set log_archive_max_processes='5'
set FAL_SERVER='sydarg' COMMENT 'Es la primaria'
set FAL_CLIENT='sydxxx' COMMENT 'Es la standby'
set log_archive_config='dg_config=(sydarg,sydxxx)'
set log_archive_dest_2='service=sydarg ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=sydxxx'
set log_archive_dest_1='LOCATION=+DG_FRARG_01'
set STANDBY_FILE_MANAGEMENT='auto';
}
---- editar rutas y nombres
3- Nos conectamos a Rman con la siguiente instruccion y ejecutamos el archivo
# rman connect auxiliary / @duplicate.rman
martes, 19 de diciembre de 2017
viernes, 15 de diciembre de 2017
Refresh Standby con Backup Incremental - Actualizar Standby con un backup incremental {13 faciles pasos}
1- Detener el proceso de Media Recovery
3- Con el Scn realizaremos un backup en la BD primaria.
RUN {
ALLOCATE CHANNEL D1 TYPE DISK;
ALLOCATE CHANNEL D2 TYPE DISK;
BACKUP INCREMENTAL FROM SCN 13546619995984 DATABASE FORMAT '/backup/rman/BAckup_incre_%U' tag 'FORSTANDBY';
}
4- Una vez finalizado el backup, copiamos todas las piezas a un directorio que pueda leer la DB Standby y catalogamos las piezas desde RMAN en la standby
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
2- Select al SCN donde donde se encuentra la Standsby
SELECT to_char(CURRENT_SCN) FROM V$DATABASE;

3- Con el Scn realizaremos un backup en la BD primaria.
RUN {
ALLOCATE CHANNEL D1 TYPE DISK;
ALLOCATE CHANNEL D2 TYPE DISK;
BACKUP INCREMENTAL FROM SCN 13546619995984 DATABASE FORMAT '/backup/rman/BAckup_incre_%U' tag 'FORSTANDBY';
}
4- Una vez finalizado el backup, copiamos todas las piezas a un directorio que pueda leer la DB Standby y catalogamos las piezas desde RMAN en la standby
RMAN> CATALOG START WITH '/backup/ForStandby';
4- Luego hacer recover de la Standby
RMAN> RECOVER DATABASE NOREDO;
5- Realizar un backup del controlfile en la primaria
RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT '/backup/controlStandbyCTRL.bck';
6- Copiar el backup del controlfile a un directorio disponible para la Standby
7- En la primaria realizar un backup de los nombres de los datafiles
SQL>
spool datafile_names_step8.txt
set lines 200
col name format a60
select file#, name from v$datafile order by file# ;
spool off
8- Conectarse a la Standby y restaurar el controlfile
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP NOMOUNT;
RMAN> RESTORE STANDBY CONTROLFILE FROM '/tmp/controlStandbyCTRL.bck';
9- Shut de Standsby
SQL> SHUTDOWN;
SQL> STARTUP MOUNT;
10- Para que la estructura de datafiles en la standby sea reconocida por el controlfile
debemos catalogar los archivos
RMAN> CATALOG START WITH '+DATA/instance/datafile/';
11- Hacer que esos Datafiles sean los actuales
RMAN> SWITCH DATABASE TO COPY;
12- Debemos limpiar todos los redo logs
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3
13- Reiniciar el proceso de media recovery
SQL> RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
viernes, 6 de octubre de 2017
ORA-07445 dispatcher
dispatcher 'D000' encountered error getting listening address
Fri Oct 6 09:23:20 2017
Errors in file /oracle/product/admin/xxxxx/bdump/xxxxxxxx_ora_8944.trc:
ORA-07445: exception encountered: core dump [kslgetl()+352] [SIGSEGV] [Invalid permissions for mapped object] [0x0000001D8] [] []
ORA-00108: failed to set up dispatcher to accept connection asynchronously
Fri Oct 6 09:23:23 2017
found dead dispatcher 'D000', pid = (36, 215)
Fri Oct 6 09:23:23 2017
Si revisamos el .trc
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/product/10.2
System name: HP-UX
Node name: xxxx
Release: B.11.31
Version: U
Machine: ia64
Instance name: xxxxx
Redo thread mounted by this instance: 1
Oracle process number: 0
Unix process pid: 8944, image: xracle@xx
Ioctl ASYNC_CONFIG error, errno = 1
Warning: keltnfy call to ldmInit failed with error 46
*** 2017-10-06 07:23:05.941
network error encountered getting listening address:
NS Primary Error: TNS-12533: TNS:illegal ADDRESS parameters
NS Secondary Error: TNS-12560: TNS:protocol adapter error
NT Generic Error: TNS-00503: Illegal ADDRESS parameters
OPIRIP: Uncaught error 108. Error stack:
ORA-00108: failed to set up dispatcher to accept connection asynchronously
Exception signal: 11 (SIGSEGV), code: 2 (Invalid permissions for mapped object), addr: 0x1d8, PC: [0x4000000002e30480, kslget
------------------------------------------------------------------------------------------------------------------------
Solucion:
Revisar el archivo /etc/hosts
y confirmar que el ip y hostname de nuestra maquina se encuentra definido y si esta correcto
Revisar el archivo /etc/hosts
y confirmar que el ip y hostname de nuestra maquina se encuentra definido y si esta correcto
viernes, 17 de marzo de 2017
ORA-27140, ORA-27300, ORA-27301, ORA-27302, ORA-27303
Si al tratar de logearte en la consola Sqlplus obtienes un error similar a este:
------------------------------------------------------------------------------------------------------
ERROR:
ORA-27140: attach to post/wait facility failed
ORA-27300: OS system dependent operation:invalid_egid failed with status: 1
ORA-27301: OS failure message: Operation not permitted
ORA-27302: failure occurred at: skgpwinit6
ORA-27303: additional information: startup egid = 500 (oracle), current egid =
501 (oinstall)
-------------------------------------------------------------------------------------------------------
Es conveniente que revises los permisos del archivo oracle ubicado en $ORACLE_HOME/bin
-------------
# ls -la /u01/app/oracle/product/11.2.0/db/bin/oracle
-rwsr-s--x. 1 oracle oracle 239626683 mar 15 14:45 oracle
-------------
Verifica que el grupo sea el correcto. Es posible que durante una operacion de swichover los permisos del archivo hayan cambiando y eso no te permite logearte.
Como root cambia el grupo y problema resuelto
# chown oracle:oinstall oracle
Realizar un switchover en DataGuard
Realizar un cambio de Rol en ambiente DataGuard o switchover
En el siguiente video les mostrare como debe comportarse las BD al realizar un switchover. Visualizando los alert_log de cada BD podemos observar los cambios en cada instancia.
Al finalizar el proceso de cambio de rol la nueva Bd Standby no subio de forma automatica, pero no se preocupen. No es nada grave, solo conectarse y subirla manual.
Etiquetas:
Dataguard,
DGMGRL,
Oracle,
switchover
miércoles, 15 de marzo de 2017
Guia Rapida para Crear y configurar Discos para ASM
Esta es una guia sencilla para crear y configurar discos para usarlos en ASM.
Debemos instalar el paquete para manejar ASM
# yum install oracleasm-support oracleasmlib oracleasm-`uname -r`
como Root Nos ubicamos en el directorio:
/etc/init.d/
y ejecutamos
# ./oracleasm configure
Asumimos que el servidor ya tiene los discos instalados y sin formato ni particion. Para este ejemplo tenemos creados 6 discos de 2GB c/u
# fdisk -l | grep 2147
Disk /dev/sda: 21.5 GB, 21474836480 bytes
Disk /dev/sdc: 2147 MB, 2147483648 bytes
Disk /dev/sdd: 2147 MB, 2147483648 bytes
Disk /dev/sde: 2147 MB, 2147483648 bytes
Disk /dev/sdf: 2147 MB, 2147483648 bytes
Disk /dev/sdg: 2147 MB, 2147483648 bytes
Disk /dev/sdh: 2147 MB, 2147483648 bytes
Ahora vamos aproceder a particionar todos los discos
# fdisk /dev/sdc
# fdisk /dev/sdd
# fdisk /dev/sde
# fdisk /dev/sdf
# fdisk /dev/sdg
# fdisk /dev/sdh
Ahora verificamos que se haya creado correctamente la particion en cada disco
# fdisk -l | grep /dev/sd
Disk /dev/sda: 21.5 GB, 21474836480 bytes
/dev/sda1 * 1 2611 20970496 83 Linux
Disk /dev/sdb: 31.1 GB, 31138512896 bytes
/dev/sdb1 1 638 5120000 82 Linux swap / Solaris
/dev/sdb2 638 3786 25287680 83 Linux
Disk /dev/sdc: 2147 MB, 2147483648 bytes
/dev/sdc1 1 261 2096451 83 Linux
Disk /dev/sdd: 2147 MB, 2147483648 bytes
/dev/sdd1 1 261 2096451 83 Linux
Disk /dev/sde: 2147 MB, 2147483648 bytes
/dev/sde1 1 261 2096451 83 Linux
Disk /dev/sdg: 2147 MB, 2147483648 bytes
/dev/sdg1 1 261 2096451 83 Linux
Disk /dev/sdh: 2147 MB, 2147483648 bytes
/dev/sdh1 1 261 2096451 83 Linux
Disk /dev/sdf: 2147 MB, 2147483648 bytes
/dev/sdf1 1 261 2096451 83 Linux
Ahora vamos a crear un disco visible para ASM con cada una de esas particiones
# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
# oracleasm createdisk DATA01 /dev/sdc1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk DATA02 /dev/sdd1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk DATA03 /dev/sde1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk DATA04 /dev/sdf1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk FRA01 /dev/sdg1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk FRA02 /dev/sdh1
Writing disk header: done
Instantiating disk: done
Ahora verificamos nuestros discos
# oracleasm listdisks
DATA01
DATA02
DATA03
DATA04
FRA01
FRA02
Listo ! ya estan visibles para la instalacion de software
Debemos instalar el paquete para manejar ASM
# yum install oracleasm-support oracleasmlib oracleasm-`uname -r`
como Root Nos ubicamos en el directorio:
/etc/init.d/
y ejecutamos
# ./oracleasm configure
Asumimos que el servidor ya tiene los discos instalados y sin formato ni particion. Para este ejemplo tenemos creados 6 discos de 2GB c/u
# fdisk -l | grep 2147
Disk /dev/sda: 21.5 GB, 21474836480 bytes
Disk /dev/sdc: 2147 MB, 2147483648 bytes
Disk /dev/sdd: 2147 MB, 2147483648 bytes
Disk /dev/sde: 2147 MB, 2147483648 bytes
Disk /dev/sdf: 2147 MB, 2147483648 bytes
Disk /dev/sdg: 2147 MB, 2147483648 bytes
Disk /dev/sdh: 2147 MB, 2147483648 bytes
Ahora vamos aproceder a particionar todos los discos
# fdisk /dev/sdc
# fdisk /dev/sdd
# fdisk /dev/sde
# fdisk /dev/sdf
# fdisk /dev/sdg
# fdisk /dev/sdh
Ahora verificamos que se haya creado correctamente la particion en cada disco
# fdisk -l | grep /dev/sd
Disk /dev/sda: 21.5 GB, 21474836480 bytes
/dev/sda1 * 1 2611 20970496 83 Linux
Disk /dev/sdb: 31.1 GB, 31138512896 bytes
/dev/sdb1 1 638 5120000 82 Linux swap / Solaris
/dev/sdb2 638 3786 25287680 83 Linux
Disk /dev/sdc: 2147 MB, 2147483648 bytes
/dev/sdc1 1 261 2096451 83 Linux
Disk /dev/sdd: 2147 MB, 2147483648 bytes
/dev/sdd1 1 261 2096451 83 Linux
Disk /dev/sde: 2147 MB, 2147483648 bytes
/dev/sde1 1 261 2096451 83 Linux
Disk /dev/sdg: 2147 MB, 2147483648 bytes
/dev/sdg1 1 261 2096451 83 Linux
Disk /dev/sdh: 2147 MB, 2147483648 bytes
/dev/sdh1 1 261 2096451 83 Linux
Disk /dev/sdf: 2147 MB, 2147483648 bytes
/dev/sdf1 1 261 2096451 83 Linux
# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
# oracleasm createdisk DATA01 /dev/sdc1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk DATA02 /dev/sdd1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk DATA03 /dev/sde1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk DATA04 /dev/sdf1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk FRA01 /dev/sdg1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk FRA02 /dev/sdh1
Writing disk header: done
Instantiating disk: done
Ahora verificamos nuestros discos
# oracleasm listdisks
DATA01
DATA02
DATA03
DATA04
FRA01
FRA02
Listo ! ya estan visibles para la instalacion de software
Suscribirse a:
Entradas (Atom)