Categoría: 11g Base de datos

Crear instancia de DataGuard

Nota: la instalacion de Oracle RDBMS se instala en la BD primaria y Standby, en este caso en la standby solo tiene la instalacion.

Primaria:

IP Address: 192.168.2.61
DB_NAME=test
DB_UNIQUE_NAME=test

Standby:

IP Address: 192.168.2.62
DB_NAME=test
DB_UNIQUE_NAME=test_stby

Parametros requeridos:

DB_NAME                                             – Tiene que ser la misma en primaria y standby
DB_UNIQUE_NAME                             – Tiene que ser diferente en la primaria y todas las standby
LOG_ARCHIVE_CONFIG             –  Este parametro incluye el db_unique name que forma parte de la configuracion del DataGuard
LOG_ARCHIVE_DEST_n                     – Define donde se guardaran los archive logs locales y remotos
LOG_ARCHIVE_DEST_STATE_n        – Define el estado del guardado de archive logs, )enable o disable)
REMOTE_LOGIN_PASSWORDFILE    – Siempre tiene que estar en modo EXCLUSIVE
FAL_SERVER                                        – Se usa para resolver como se aplican los archivelogs (solo se requiere en el standby)
DB_FILE_NAME_CONVERT                 – Se requiere cuando la estructura de directorios estan tiene otro datafile (osea los dbf se almacenan en diferentes unidades entre el primario y standby)
LOG_FILE_NAME_CONVERT               – Requiere cuando la estrictura del directorio va a tener otro redolog
STANDBY_FILE_MANAGEMENT          – Para que cree archivos nuevos en el standby

 

Los siguientes pasos en la base de datos primaria:

Nota: Asegurarse que la base de datos este prendida en modo ARCHIVELOG

Revisa tu instancia con los siguientes comandos

SQL> select log_mode from v$database;
              O
SQL> archive log list

Si no esta corriendo, activas los archivelogs con el siguiente secuencia de comandos.

SQL> SHU IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;

Ahora tu instancia esta en modo archivelog

Nota: asegurate que tu BD esta en modo forcelogging.

SQL> SELECT FORCE_LOGGING FROM V$DATABASE;

Si no lo esta, ejecuta el siguiente comando

SQL> ALTER DATABASE FORCE LOGGING;

Ahora verifica el parametro DB_NAME y DB_UNIQUE_NAME de la instancia primaria

SQL> show parameter db_name
SQL> show parameter db_unique_name

Ahora cambia elDB_UNIQUE_NAME Para que forme parte del dataguard. (El servicio de standby aun no se ha creado)

SQL> alter system set log_archive_config=’DG_CONFIG=(test,test_stby)’; 

(test es el service name de la primaria y test_stby es el nombre de la BD standby)

Luego sigue crear el servicio usando netmgr

SQL> host
$netmgr –> service add for std (+) –> net service name std –> hostname standby machine ip –> service name std –> save

Ahora inicia el listener

$lsnrctl start

Define donde se guardaran los archivelogs

SQL> alter system set log_archive_dest_2=’service=std Valid_for=(online_logfiles, primary_role) db_unique_name=std’;

SQL>alter system set log_archive_dest_state_2=enable;

Tienes que configurar el remote password como «exclusive»

SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;
SQL> show parameter remote_login

Se define el «fail server» y si se quiere reconvertir la ruta, por si las rutas entre servidores son diferentes

SQL> ALTER SYSTEM SET FAL_SERVER=test;

SQL> ALTER SYSTEM SET DB_FILE_NAME_CONVERT=’test_stby’,’test’ scope=spfile;

SQL> ALTER SYSTEM SET LOG_FILES_NAME_CONVERT=’test_stby’,’test’ scope=spfile;

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

Ahora sigue replicar la instancia entre servidores (hacer la clonacion), para hacerlo en caliente, se hace con RMAN como sigue

$rman target=/

RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

Ahora se crean los controlfile de standby y el nuevo pfile

SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS ‘/u01/stdcontrol.ctl’;

SQL> CREATE PFILE=’/u01/inittest_stby.ora’ from spfile;

Ahora editas el nuevo spfile

$vi /u01/inittest_stby.ora

 Nota:- El pfile debe de verse algo asi.

std.__db_cache_size=318767104
std.__java_pool_size=4194304
std.__large_pool_size=4194304
std.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
std.__pga_aggregate_target=335544320
std.__sga_target=503316480
std.__shared_io_pool_size=0
std.__shared_pool_size=159383552
std.__streams_pool_size=4194304
*.audit_file_dest='/u01/app/oracle/admin/std/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/test_stby/control01.ctl','/u01/app/oracle/fast_recovery_area/test_stby/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_file_name_convert='test','test_stby'
*.db_name='test'
*.db_unique_name='test_stby'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4322230272
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)'
*.fal_server='TEST'
*.log_archive_config='DG_CONFIG=(test,test_stby)'
*.log_archive_dest_2='SERVICE=test VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=test'
*.log_archive_dest_state_2='ENABLE'
*.log_file_name_convert='test','test_stby'
*.memory_target=836763648
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'

Se graba este archivo y luego creamos los directorios en la maquina de Standby

$mkdir -p /u01/app/oracle/admin/test_stby/adump

$mkdir -p /u01/app/oracle/oradata/test_stby

$mkdir -p /u01/app/oracle/fast_recovery_area/test_stby

Despues de crear los directorios en el servidor de standby y copiar los backupsets, atchivelogs, pfile, controlfile generado con el standby y el archivoe de password hacia el servidor standby.

#scp /u01/stdcontrol.ctl oracle@192.168.1.20:/u01/app/oracle/oradata/test_stby/control01.ctl
#scp /u01/stdcontrol.ctl oracle@192.168.1.20:/u01/app/oracle/fast_recovery_area/test_stby/control02.ctl

Transfiere archivelogs y backups
#scp –r /u01/app/oracle/fast_recovery_area/test oracle@192.168.2.62:/u01/app/oracle/fast_recovery_area/

Copy Parameter file

#scp /u01/inittest_stby.ora oracle@192.168.2.62:/u01/inittest_stby.ora

Transfiere el archivo de password de oracle

#scp /u01/app/oracle/product/11.2.0.4/db_1/dbs/orapwdtest oracle@192.168.1.62:/u01/app/oracle/product/11.2.0.4/db_1/dbs/orapwtest_stby

En el servidor de Standby

$export ORACLE_HOME=/u01/app/oracle/product/11.2.0.1/db_1

Crear el servicio de tnsnames

$netmgr
 =>service naming
           + add new
              Net service name (test)
                      Host name (oradb1)
                             Service name (test)
Prueba la conexion y luego termina
Otro servicio para la standby
        + add new
           Net service name (test_stby)
                 Host name (oradb2)
                         Service name (test_stby)
                                     finish

clic en file => save network configuration

inicia listener

$lsnrctl start

Actualiza /etc/oratab en el standby

$vi /etc/oratab  (add below line in end of file) 

Std:/u01/app/oracle/product/11.2.0.4/db_1:N

restauras backup en el standby

$export ORACLE_SID=test_stby
$sqlplus / as sysdba
Sql> create spfile from pfile=’/u01/inittest_stby.ora’;

Ahora sales del sqlplus y restauras usando rman

Sql> exit

$rman target=/
RMAN>startup mount
RMAN> restore database;
RMAN> exit

Nota: Despues de terminar la restauracion, ocupamos crear los redolog del standby en el servidor de standby

$sqlplus / as sysdba
SQL> alter database add standby logfile (‘/u01/app/oracle/oradata/test_stby/standby_redo01.log’) size 50m;
SQL> alter database add standby logfile (‘/u01/app/oracle/oradata/test_stby/standby_redo02.log’) size 50m;
SQL> alter database add standby logfile (‘/u01/app/oracle/oradata/test_stby/standby_redo03.log’) size 50m;
SQL> alter database add standby logfile (‘/u01/app/oracle/oradata/test_Stby/standby_redo04.log’) size 50m;

Note: ocupamos agregar cuadro archivos de redo log, por que solo tenemos 3 redo logs

Ahora revisa los miembros del grupo de los redologs y puedes confirmarlo con los siguientes querys

SQL> select member from v$logfile  where type=’STANDBY’;

SQL> select member from v$logfile;

 

Nota:- Ahora creamos los mismos redologs en el servidor primario, esto es importante para configurar el cambio de roles, cuando quieras switchear la primaria a Standby, por eso ocupa estos redologs.

Entonces en el servidor primario se agregan los redologs

SQL> alter database add standby logfile (‘/u01/app/oracle/oradata/test/standby_redo01.log’) size 50m;
SQL> alter database add standby logfile (‘/u01/app/oracle/oradata/test/standby_redo02.log’) size 50m;
SQL> alter database add standby logfile (‘/u01/app/oracle/oradata/test/standby_redo03.log’) size 50m;
SQL> alter database add standby logfile (‘/u01/app/oracle/oradata/test/standby_redo04.log’) size 50m;

revisamos

SQL> select member from v$logfile  where type=’STANDBY’;

Ahora inicias la aplicacion de redo logs en la instancia Standby

Recomendado, que antes de aplicar los redologs, abrir el alert en otra ventana

En el servidor standby

SQL> alter database recover managed standby database disconnect from session;

Ejecuta el comando de abajo para revisar la secuencia de redo logs

En el servidor primario

SQL> select sequence#,first_time,next_time from v$archived_log order by sequence#;

Para cuestiones de pruebas, switchea de redo log, para ver si lo esta generando en el secundario

SQL> alter system switch logfile;

Then check what your current sequence number on PRIMARY machine is

SQL> select sequence#,first_time,next_time from v$archived_log order by sequence#;

Luego nos vamos al standby para revisar que este enviando los redologs

en el STANDBY:-

SQL> select sequence#,first_time,next_time,applied from v$archived_log order by sequence#;

Ahora nos vamos al primario para hacer otro switch para ver si los manda al standby.

SQL> alter system switch logfile;

Ahora revisa el nivel de proteccion de ambos servidores

SQL> desc v$database
SQL> select name,open_mode,database_role,db_unique_name,protection_mode from v$database;

YA QUEDO….

 

 

Pasos para configurar el modo de solo lectura en el STANDBY

En la Standby

Ahora convertiremos el standby en modo de solo lectura

En este caso, la BD se podra leer solamente

SQL>Shu immediate
SQL>startup mount;
SQL>alter database open read only;

Despues de correr esos comandos, la instancia sera accesible como solo lectura

Revisamos:

SQL> select name,open_mode,database_role,db_unique_name,protection_mode from v$database;
SQL> select * from scott.emp;   (now you able to read your database)

Ahora nos logueamos en la PRIMARIA y corremos el switch

SQL>alter system switch logfile;

Ahora revisamos si en la standby se aplico o no

SQL> select sequence#,first_time,next_time,applied from v$archived_log order by sequence#;

Nota:-Puedes ver los redo logs nuevos, pero no se han aplicado

Por lo tanto, cuando la instancia esta en modo de solo lectura y es accesible, pero no se aplican los nuevos redologs

Si quieres que vuelva a ser standby normal, es con los siguientes comandos

SQL> shu immediate

SQL> startup mount

SQL> alter database recover managed standby database disconnect from session;

descargar oracle 11.2.0.4 liga de metalink

Esto es algo que siempre he tenido contratiempos al descargar la ultima version de Oracle 11gR2, que en la pagina del EDelivery solo me aparece para descargar el 12c, siendo que muchos clientes tienen la 11g y a veces la 10g instalada.

 

Para ver si le ayudo a alguien, aqui esta la liga del metalink para descargar la version de Oracle 11.2.0.4

https://support.oracle.com/epmos/faces/PatchDetail?_afrLoop=157565182353552&patchId=13390677&_afrWindowMode=0&_adf.ctrl-state=q25buuwki_322

 

 

Como empezar con Oracle ASM

balancear datos no es tan fácil como suena
balancear datos no es tan fácil como suena

Cuando tienes o decides instalar ASM en tu instancia de base de datos y estas acostumbrado a manejarlo con Datafiles, a muchos nos parece un gran cambio y otros tantos no lo aceptan tan facil ya que implica cambiar el paradigma con el que estamos acostumbrados a trabajar, los primeros pasos para como empezar con Oracle ASM, son los siguientes:

Oracle ASM
Oracle toma el control completo de los discos duros, a los cuales no podras accesar de forma natural como siempre, para poder accederlos ocupas entrar por medio del comando ‘ asmcmd ‘ dentro de este comando puedes utilizar lo basico como ‘ ls, lsdg, cp, cd, pwd, etc ‘ y veras los discos duros conectados como si se trataran de carpetas de Linux.
ahora, a un disco duro fisico se le conoce como DISK, y tu creas los datafiles sobre estos discos duros, alli iran creciendo y dividiendose de forma automatica, cuando el disco duro se llena, te marcara que los tablespaces ya no pueden crecer (como pasa con los tablespace mismos), siguiendo la misma logica que los tablespaces, cuando los discos duros se llenan puedes adjuntar otro disco duro para que continue creciendo como si fuera un mismo espacio, al conjunto de estos discos se le conoce como ‘ DISKGROUP ‘
Siguiendo la lógica de los datafiles, puedes agregarle unidades a los diskgroups, moverlos, eliminarlos, etc.
Ahora lo importante, la parte mas «tricky», cuando tienes una base de datos con ASM, a tus tablespaces los creas como siempre, pero a la hora de ponerle la ruta donde se va a grabar, pones ‘+ASM1/usuarios’ y eso creara un tablespace de usuarios en el nodo1 del ASM (esto aplica en BD de RAC)
cuando trabajas con ASM y quieres modificar las propiedades del ASM (como agregar/eliminar discos, acceder al asmcmd, ejecutar el ambiente gráfico de asmca y todo eso) no puedes acceder de la forma tradicional, tendrás que re-exportar las variables de ORACLE_HOME y ORACLE_SID, solamente cuando quieras moverle al ASM
para saber cual es el ORACLE_HOME del asm, tienes que escribir:
cat /etc/oratab | grep ASM 
eso te despliega:
+ASM1:/oracle/grid1:N          # line added by Agent
Con eso sabemos que tu ORACLE_HOME de tu instancia de ASM es /oracle/grid1
luego vuelves a definir las variables que anteriormente mencione:
[oracle@testserver]$ export ORACLE_HOME=/oracle/grid1f
[oracle@testserver]$ export ORACLE_SID=+ASM1
listo, con esto puedes ejecutar:
asmcmd
y dentro de alli puedes ver «dentro» de tus unidades de ASM, como si fueran carpetas de Linux y ademas puedes ejecutar » sqlplus / as sysasm «
Si no defines las variables y tratas de entrar como syasm te aparecerá el error » ORA-01031: insufficient privileges » al intentar ingresar.
Fácil… ¿no?

El Oracle Enterprise Manager no inicia al terminar la instalación en Oracle Linux 6.5

El Oracle Enterprise Manager no inicia al terminar la instalación
El Oracle Enterprise Manager no inicia al terminar la instalación

Hace poco al instalar Oracle 11g en Oracle Linux 6.5 me tope con que al finalizar la instalación, no inicia el Enterprise Manager por errores del catalogo del enterprise manager dentro de la BD, a base de muchas pruebas y errores, ya di con el orden correcto para borrar el catalogo y volverlo a crear.

 

El Oracle Enterprise Manager no inicia al terminar la instalación

explicación: el Enterprise Manager es una consola web que te permite administrar completamente la instancia de base de datos e incluso administrar el ambiente RAC, el Enterprise Manager se inicia mediante su propio servidor web, el servicio se llama «emagent» y para prender y apagar el servicio se utiliza «emctl».

 

Para que el «emagent» pueda inicializar, necesita conectarse a la base de datos que se va a vigilar, para hacer esto ocupa su propio usuario (SYSMAN por default) y una serie de esquemas y tablas, a estas se les llama «repositorios», al instalar el Oracle 11g en Oracle Linux 6.5 el Enterprise Manager no inicia, esto viene en la nota de metalink 470246.1 y el bug 6111734.

 

Para solucionarlo, primero se elimina manualmente el usuario del repositorio y otras tablas, en este orden (con un usuario con permisos de sysdba):

Read more

asignar símbolos y puntuación en los passwords de Oracle

passwords de Oracle
passwords de Oracle

Nunca puedes hacer un password lo suficientemente fuerte, pero por lo menos lo puedes intentar, teniendo por lo menos una letra mayúscula, una minúscula, un numero un símbolo o un punto, que sea mayor de ocho caracteres, con eso probablemente sea suficientemente seguro.

existe una diferencia básica al momento de definir la contraseña con orapwd y entre sqlplus

si estas cambiando la contraseña desde el sqlplus, necesitas usar la comillas doble al rededor del password

para poder cambiar los passwords de Oracle puedes hacerlo de la siguiente manera

para orapwd:

$ORACLE_HOME/dbs $ orapwd file=orapwtest password=”My1s!pass” entries=40 force=y
-bash: !pass”: event not found

$ORACLE_HOME/dbs $ orapwd file=orapwtest password=’My1s!pass’ entries=40 force=y

Changed successfully.

para sqlplus:

SQL> alter user sys identified by ‘My1s!pass’;
alter user sys identified by ‘My1s!pass
*
ERROR at line 1:
ORA-00988: missing or invalid password(s)

SQL> alter user sys identified by “My1s!pass”;

User altered.

Listo

Diferencia entre una corrupción lógica contra una corrupción física en Oracle

corrupción lógica contra una corrupción física en Oracle

Cuando hablamos de corrupción lógica, existen muchas fallas que se pueden definir como los siguientes tipos:

Modificación accidental o incorrecta de los datos de la aplicación, causada por un usuario o la misma aplicación.

En este escenario, por la falla o el error de un usuario o un aplicativo puede resultar en un bug, esto normalmente ocurre por cambios de información dentro del a base de datos como valores erróneos, un ejemplo podría ser cuando un DBA realiza un update pero se olvida de formular correctamente el query y en ves de solo modificar un solo row, accidentalmente modifica (y le da commit) a cientos de campos.

 

La corrupción de bloques vienen en dos tipos diferentes:

Corrupción física (media corrupt blocks): son bloques que obviamente tienen un daño en el disco duro físico. Cuando Oracle detecta una inconsistencia entre el CSN (Commit Secuence Number) en el encabezado (header) del bloque y el pie del bloque (footer) o en la estructura del bloque no esta presente o esta dañado, si esto ocurre Oracle muestra un error «ORA-01578: ORACLE data block corrupted» el intento de lectura fallara y lo escribe en el alert_log y en el trace_file, las corrupciones físicas son el resultado de problemas de infraestructura y esto puede presentarse por una gran variedad de razones. Las mas comunes son corrupciones del cache de los arreglos del storage, firmware del arreglo, bugs del filesystem, fallas de batería de la controladora de discos, fallas eléctricas, entre cientos de motivos mas, las corrupciones pueden ser reparadas usando el Oracle Recovery Manager, con un comando llamado blockrecover.

 

Las corrupciones de bloque lógicas: son bloques que tanto el header como el footer del CSN se encuentran en buen estado, pero tienen otra tipo de inconsistencia interna, por ejemplo cuando la estructura del header se encuentra asociado con un campo en el bloque, pero es diferente al numero del bloque, otro ejemplo es si el tamaño del bloque difiere de lo que dice en el header, al ocurrir esto puede lanzar el error ORA-00600, que es el error mas temido de los DBA’s esta excepción se escribirá en el alert y en el trace file. al igual que la corrupción física esto puede deberse a una enorme cantidad de causas diferentes, solo que tiende a ser una falla en el software de Oracle como un bug o corrupción de cache.

Tener un Disaster Recovery Plan de Oracle cloud services

oracle cloud services
oracle cloud services

Buscando una manera de tener un sistema de DRP (Disaster Recovery Plan) he evaluado diferentes métodos diferentes como tener una infraestructura igual a la productiva en otra ubicación física y estar sincronizando cada cierto tiempo en caso que se lleguen a perder datos de la base de datos.

amazon oracle cloud services

Solo que al evaluar el RPO (Recovery Point Objective) y el RTO (Recovery Time Objective) no es tan buena opción, sin tomar en cuenta el gasto de la infraestructura

 

Dato interesante: según la revista Gardner el 90% de las empresas que pierden bases de datos sin un DRP se van a la bancarrota.

Read more

activar el Automatic Memory Management (AMM) – automatic memory manager oracle

automatic memory manager oracle
automatic memory manager oracle

Activar el Automatic Memory Management (AMM)

En algunos casos, cuando no estas seguro de cuanta memoria asignar a tu base de datos Oracle lo mas recomendable es activar los parámetros de » automatic memory manager oracle »

¿Por que activar esta opción? ¿no es mejor asignarle toda la memoria que pueda?

La respuesta sencilla y rapida es ¡NO! no siempre mas es mejor, debido a cuestiones internas de Oracle la memoria asignada tiene que estar bien afinada (tunning) ya que si tiene mas de la que ocupa, puede disminuir el performance de la aplicación.

Hacer esto es tan sencillo como cambiar el parámetro de base de datos SGA_TARGET = 0

haciendo esto le estamos diciendo al engine de Oracle que administre la memoria total a lo mas óptimo

SQL> show parameter target

NAME                                               TYPE        VALUE
———————————— ———–       ——-
archive_lag_target                                     integer     0
db_flashback_retention_target                  integer     1440
fast_start_io_target                                   integer     0
fast_start_mttr_target                                integer     0
memory_max_target                                 big integer 26048M
memory_target                                         big integer 0
parallel_servers_target                              integer     2048
pga_aggregate_target                               big integer 6502M
sga_target                                                big integer 19520M

SQL> ALTER SYSTEM SET MEMORY_MAX_TARGET = 16384M scope=spfile ;

Read more

Regresar una tabla en el tiempo en Oracle con Flashback

volvereneltiempoRegresar una tabla en el tiempo en Oracle con Flashback.

Teniendo un tiempo sin actualizar porque he tenido mucho trabajo, dejare un aporte que espero que pueda serle de utilidad por lo menos a uno aqui hablare de como Regresar una tabla en el tiempo en Oracle con Flashback.

 

La función de UNDO de Oracle es algo que cualquier DBA debería de saber, de todas maneras lo explicare aquí por si alguien tiene alguna duda. En caso que dañemos o queramos recuperar una tabla modificada o eliminada siempre podemos recurrir a la función de «Flashback Table» con esto podemos desde hacer selects a una tabla de a como se encontraba en algún punto en el pasado como recuperarla en la misma tabla u otra, por si quisiéramos comparar datos.

 

Para activar el UNDO en nuestra base de datos, existen 2 variables que tienen que estar en el SPFILE o PFILE, que son UNDO_MANAGEMENT que es el que define si está activo el UNDO y la variable UNDO_RETENTION, que marca en segundos cuanto tiempo podemos recuperar nuestras tablas, a mayor cantidad de UNDO_RETENTION mayor tiene que ser el tablespace de UNDO.

 

Alter system set UNDO_MANAGEMENT=AUTO;
Alter system set UNDO_RETENTION=86400;

// 86,400 segundos equivalen a 1,440 minutos o 24 horas en base a esto puedes calcular la retención.

 

Si tenemos la base de datos con una instancia dinámica (SPFILE) podemos modificar los anteriores valores de la siguiente manera:

Para hacer un SELECT a una tabla de cómo se encontraba un día antes de estos momentos, se hace de la siguiente manera («usuario» es el nombre de usuario dueño de la tabla):

select * from usuario.tabla1 AS OF TIMESTAMP SYSDATE – 1;

Así de sencillo.

 

Si tenemos el undo para varios días y quiero hacer el select para una fecha y hora en específico, se hace de la siguiente manera:

select * FROM usuario.tabla1 AS OF TIMESTAMP TO_TIMESTAMP(‘2013-12-04 22:00:00’, ‘YYYY-MM-DD HH24:MI:SS’);
// Con el anterior query hacemos que nos regrese la tabla a como estaba el «4 de diciembre del 2013»

 

Si quisiéramos crear una tabla que sea igual a otra tabla pero en una fecha anterior, se hace casi igual:
create table usuario.tabla_antes as select * FROM usuario.tabla1 AS OF TIMESTAMP TO_TIMESTAMP(‘2013-12-04 22:00:00’, ‘YYYY-MM-DD HH24:MI:SS’);

 

Si queremos crear una vista dinámica que nos muestre como estaba una tabla hace una hora (de forma dinámica) es así:
CREATE VIEW usuario.haceunahora AS SELECT * FROM usuario.tabla AS OF TIMESTAMP (SYSTIMESTAMP – INTERVAL ’60’ MINUTE);

 

Esto es de una gran utilidad para los DBA que están empezando.

 

Si al hacer estas tablas muestra el error
ORA-01555 Snapshot Too Old
Esto significa que la tabla no se encuentra dentro de la retención del UNDO, esto puede ser por el tiempo configurado o por falta de espacio en el UNDO

 

capacitación Oracle en Monterrey

capacitacion oracle monterrey
capacitacion oracle monterrey

 

capacitación Oracle en Monterrey.

 

Oracle es el sistema de bases de datos más complejo y sofisticado, dominar este complejo set de aplicaciones y requiere un alto nivel de conocimiento.

 

¿Quieres desarrollarte profesionalmente como DBA?

 

  • Desarrollo tu talento y expertise
  • Aumenta exponencialmente tus oportunidades de trabajo
  • Necesario en prácticamente todas las empresas importantes

 

Capacítate con nosotros e inicia tu carrera como DBA en bases de datos Oracle 11g
Ofrecemos muchas cosas que en ninguna otra institución ofrecen:

 

  • Instructores certificados
  • Guías para la certificación y simulador de examen
  • Cubrimos todos los temas de la certificación y un poco mas
  • Resolución de problemas en bases de datos y prácticas del día a día
  • Soporte y consulta personal sobre temas vistos en la certificación
  • Invitaciones y descuento en cursos especializados de bases de datos
  • Cursos altamente personalizados, máximos con 6 alumnos por curso
  • Excelente ubicación muy céntrica y salón climatizado
  • Descuento a alumnos de universidades
  • Descuento a grupos por empresa

 

Cursos a impartir:
Curso Oracle Linux Administrator con enfoque a Bases de Datos
Curso Oracle Administrator
Curso introducción a PL/SQL
Curso Oracle Tunning
Curso E-Business Suite (Instalación e implementación)

 

mail: admin@dba.mx
telefono: (044) 81 1602 8764

Configurar replicacion en MySQL

Instalacion de la replicacion de MySQL en ambiente maestro-esclavo para alta disponibilidad

Crear instancia de DataGuard

Nota: la instalacion de Oracle RDBMS se instala en la BD primaria y Standby, en este caso en la standby solo tiene la instalacion. …

Desarrollo de aplicación de reconocimiento de rostros y emociones

Este es uno de los desarrollos hechos por nuestro equipo, tiene como funcionalidad ser un demo de la capacidad de nuestra …