jueves, 28 de noviembre de 2019

Cómo ordenar elementos aleatoriamente con jQuery para Slick.js

Cómo ordenar elementos aleatoriamente con jQuery para Slick.js


Hola.

Estoy usando la librería Slick.js para mostrar una galería de fotos que se van moviendo de derecha a izquierda dentro de la página principal.

El método o constructor Slick se coloca con javascript al momento de la carga de la página sobre un div especifico a través de la class del div.

Slick.js no tiene algún método para mostrar la galería en orden aleatorio por lo que se debe resolver de otra manera. En mi caso voy a resolver con jQuery porque no tengo modo de hacerlo de otra manera.

Solución.


Lo recomendable es ordenar aleatoriamente los elementos de la galería antes de llamar al método Slick porque este agrega nuevos elementos div para hacer los efectos visuales.

Lo que hago es definir una función llamada randomize para ordenar aleatoriamente los child elements del div especificado, después llamo a esta función y finalmente llamo al método Slick.

Aquí abajo les dejo el código:


$.fn.randomize = function (selector) {
var $elems = selector ? $(this).find(selector) : $(this).children(),
$parents = $elems.parent();
$parents.each(function () {
$(this).children(selector).sort(function () {
return Math.round(Math.random()) - 0.5;
}).detach().appendTo(this); });
return this;
};

$(".clientes-logo").randomize();    

$(".clientes-logo").slick({infinite: true, autoplay: true, autoplaySpeed: 4000 });


Como ven la función randomize que ordena aleatoriamente es muy útil para ordenar elementos dentro de un div por lo que la pueden usar para algún otro propósito.

Espero les sirva.


miércoles, 27 de noviembre de 2019

Cómo acceder elemento random de una lista en c#

Cómo acceder elemento random de una lista en c#


Hola.

Acceder un elemento random de una lista en c# es un problema muy común en programación. En este caso se trata de mostrar ciertos elementos de publicidad en una vista en donde el orden no importa pero requiere de cierta movilidad.

Así que estoy usando una lista de c# para guardar elementos de tipo entero.

Lo que quiero hacer es obtener un indice aleatorio de la lista para acceder al elemento de ese indice. Con esto obtendré un elemento aleatorio cada vez que se ejecute el código.

Esto se resuelve de la siguiente manera.

Solución.


En este caso miLista es una lista de numero enteros.

1.- Crear una nueva instancia de random
2.- Obtener un numero aleatorio teniendo como máximo el numero de elementos de la lista
3.- Obtener el elemento con la posición aleatoria.

Así queda el código ejemplo:

static Random random = new Random(); 
int indiceRandom = random.Next(miLista.Count);
int elementoRandom = miLista[indiceRandom];


Espero les sirva

martes, 26 de noviembre de 2019

ASP - Permission denied - Scripting.FileSystemObject

ASP - Permission denied


Hola.

Este es un error no descriptivo de IIS de permisos de escritura al usar el objeto Scripting.FileSystemObject

Primero aquí lo recomendable es habilitar errores descriptivos de IIS para saber la linea exacta del error. Para esto hagan lo siguiente desde IIS:

El error que tengo es usando el objeto Scripting.FileSystemObject, para ser exactos el error ocurre al momento de borrar una imagen fisicamente.

Les pongo aquí el código que está ocasionando el error y la línea que falla es la que realiza el DeleteFile.

Set fs=Server.CreateObject("Scripting.FileSystemObject")
finalfile = "E:\mi\ruta\miarchivo.htm"
fs.DeleteFile(finalfile)


Solución


La solución es dar permisos al usuario de IIS (IUSR) sobre el archivo o la carpeta en cuestión.
Para saber cuál es el usuario que está usando IIS para el sitio web, sigan estos pasos:

1.- Abrir IIS
2.- Seleccionar el sitio web
3.- Seleccionar Authentication
4.- Seleccionar Anonymous Authentication y click en Edit


Edit Anonymous Authentication Credentials


Con el nombre del usuario identificado deben ir a la carpeta o archivo físico y agregar el usuario con permisos de edición.

1.- Seleccionar la carpeta o archivo con click derecho
2.- Seleccionar el tab Security
3.- Click en Edit
4.- Click en Add y buscar el usuario IUSR
5.- En permisos para IUSR seleccionar Modify
6.- Click en OK

Les dejo aquí la imagen de cómo se ve el usuario con permisos sobre una carpeta o archivo.

Security Permissions for IUSR


Después de esto ya pueden volver a intentar, el permiso de escritura del usuario IUSR debe quedar arreglado.

Espero les sirva.

Cómo ver errores descriptivos de IIS en el navegador

Cómo ver errores descriptivos de IIS en el navegador


Hola.

Tengo el error genérico de un sitio web en IIS que dice:

An error occurred on the server when processing the URL. Please contact the system administrator.

Como ven el error no dice nada mas y por lo tanto no es útil para poder debuguear y solucionar el problema.

Lo que necesito es habilitar la descripción de errores en el browser para tener mas información y así saber por dónde atacar el error.


Solución.


Para hacerlo sigan estos pasos en IIS.

1.- Abrir IIS
2.- Seleccionar del lado izquierdo el sitio web
3.- Seleccionar la opción IIS > ASP
4.- Dentro de Debugging Properties cambiar Send Errors to Browser a True
5.- Click en Apply

IIS Send Errors to Browser

Después de esto, refresquen el navegador y ya deben poder ver más información sobre el error.

Espero les sirva.

lunes, 25 de noviembre de 2019

Cómo agregar nuevo elemento a un array en c#

Cómo agregar nuevo elemento a un array en c#


Hola.

Estuve buscando la manera de cómo agregar un elemento a un arreglo de c# de manera rápida.

Bueno, resulta que no hay manera rápida de agregar un elemento a un arreglo en c#. Por definición un arreglo es de una medida fija y por lo tanto no puede ser extendido. Esto aplica para arreglos de cualquier tipo: int, string, char, etc.

En mi caso estoy usando un arreglo de enteros y quiero agregar uno al final dinámicamente por lo que no sé cual es la medida el arreglo.

Solución.


La solución aquí es usar una lista en lugar de un array. La lista puede ser extendida dinámicamente facilmente con el método add y no tienen que definir un length fijo.

Utilizar la lista facilita no solo el agregar elementos sino también otras tareas sobre la lista.

Les dejo aquí abajo un ejemplo de cómo agregar un elemento a una lista de enteros.

List<int> enteros = new List<int>(); 
enteros.add(1);


Espero les sirva.


jueves, 21 de noviembre de 2019

ORA-01157: cannot identify/lock data file 201 - see DBWR trace file

ORA-01157: cannot identify/lock data file 201 - see DBWR trace file


Hola.

Se obtiene este error cuando no se encuentra el temp data file de la base de datos de Oracle.

Me sucede porque he realizado una restauración de base de datos y el TEMP datafile no es un archivo que forme parte de los archivos de backup.

En mi caso cuando la restauración se realiza, el nombre del temp datafile es actualizado y no coincide con el de la base de datos destino. En el caso de que el nombre y la ruta del temp datafile fuera el mismo, incluso así, lo mejor es recrear el TABLESPACE temporal o el datafile temporal.

El datafile temporal no se exporta ni se restaura por lo que lo mas recomendable después de una operación de restauración es crear uno nuevo. Siempre tomando en cuenta que una base de datos de Oracle necesita al menos un datafile temporal.

En mi caso para la solución lo que hago es eliminar el TABLESPACE temporal, volverlo a crear y asignarlo a la base de datos.

Solución.


Primero lo recomendable es ver el nombre y la ubicación del datafile temporal. Para esto ejecuten el siguiente query sobre la vista v$tempfile. Verifiquen que la ruta y el nombre existan.

SQL>SELECT FILE#,STATUS,NAME FROM V$TEMPFILE;

Como mencioné se puede borrar únicamente el datafile temporal o el TABLESPACE temporal completo.

Aquí les dejo las instrucciones para crear un nuevo TABLESPACE (TEMP01) con un nuevo datafile (TEMP0101.dbf), asignar a la base de datos y borrar el TABLESPACE anterior (TEMP).

Esto se puede hacer con la base de datos prendida ya que es tablespace temporal.

SQL> CREATE TEMPORARY TABLESPACE TEMP01 TEMPFILE 'C:\app\administrator\oradata\DATABASE\TEMP0101.dbf' SIZE 200M AUTOEXTEND ON; 
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP01; 
SQL> DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;


Espero les sirva.

miércoles, 20 de noviembre de 2019

ORA-20001: SYSMAN already exists

ORA-20001: SYSMAN already exists


Hola.

Como saben el usuario SYSMAN es la cuenta de Oracle usada para configurar y administrar el Enterprise Manager. Este usuario es creado para ese propósito por lo que si están viendo este error se debe a que el repositorio de Enterprise Manager ya ha sido creado con anterioridad.

El error se me presenta cuando estoy tratando de reconfigurar el Enterprise Manager de Oracle después de haber realizado una restauración de base de datos Oracle con RMAN.

Como en la base de datos origen el Enterprise Manager ya estaba configurado, el usuario SYSMAN y todos sus objetos ya estaban creados, el script truena cuando se intenta volver a crear el usuario SYSMAN.

Solución.


Ante este error busqué las siguientes instrucciones para borrar el usuario SYSMAN, roles y objetos. Estos objetos se vuelven a crear cuando se reconfigura el repositorio Enterprise Manager de Oracle.


SQL> SHUTDOWN IMMEDIATE; 
SQL> STARTUP RESTRICT; 
SQL> EXEC sysman.emd_maintenance.remove_em_dbms_jobs; 
SQL> EXEC sysman.setEMUserContext('',5); 
SQL> REVOKE dba FROM sysman; 
SQL> DROP USER mgmt_view CASCADE; 
SQL> DROP ROLE mgmt_user; 
SQL> DROP USER sysman CASCADE; 
SQL> ALTER SYSTEM DISABLE RESTRICTED SESSION;



Espero les sirva.





The script from file was loaded even though its MIME type (“text/html”) is not a valid JavaScript MIME type

The script from file was loaded even though its MIME type (“text/html”) is not a valid JavaScript MIME type


Hola.


Este post está relacionado un post anterior que escribí acerca de activar la opción Enable Parent Paths de IIS. Este error me sale justo después de activar esa opción pues ahora el archivo sí es reconocido y ejecutado.

El archivo que da problemas es un archivo asp clásico pero que su contenido es javascript por lo que el servidor web IIS tiene problemas para interpretarlo. La inclusion del archivo es así:

<script language="JavaScript" src="../asp/default_javascript.asp" type="text/javascript"></script>

Como ven es un asp que sirve javascript. Tal vez no les haga mucho sentido pero así pueden darle un poco de dinamismo al código javascript.

Solución.


Para corregir este error deben colocar las siguientes dos lineas en el archivo asp al inicio del archivo. Es muy importante que sean las dos primeras lineas del archivo para que el servidor IIS conozca el ContentType del archivo al momento de cargar.

<%   
Response.Clear()  
Response.ContentType = "text/javascript" 
%>


Espero les sirva.

martes, 19 de noviembre de 2019

GET file net::ERR_ABORTED 500 (Internal Server Error)

Error de IIS al llamar archivo - GET file net::ERR_ABORTED 500 (Internal Server Error)


Hola.

En esta ocasión escribo sobre un error de IIS común que surge cuando estamos configurando algún sitio por primera vez.

La descripción del error se ve así:

default.aspx:22 GET http://misitio.com/asp/default_javascript.asp net::ERR_ABORTED 500 (Internal Server Error)

En mi caso tengo un archivo asp que sí se encuentra físicamente en la ruta pero IIS no lo encuentra.

En este caso particular, se trata de un archivo de asp clásico que está siendo llamado a través de una ruta relativa. Es decir, ruta relativa al archivo que lo llama. En el código se ve así:

<script language="JavaScript" src="../asp/default_javascript.asp" type="text/javascript"></script>

Como ven la ruta es relativa se establece a partir del archivo que lo llama usando el punto punto.

El archivo contiene código javascript por eso ven el type como javascript pero esto no tiene que ver con el error.

Solución.


Deben activar la opción Parent Paths en IIS.

Esta opción de Enable Parent Paths permite que las rutas relativas en IIS sean interpretadas correctamente. Para esto sigan estos pasos:

1.- Abrir IIS
2.- Seleccionar al sitio web del lado izquierdo
3.- Seleccionar la opción IIS > ASP
4.- Cambiar a true en Enable Parent Paths como en la imagen
5.- Apply


IIS Enable Parent Paths

Espero les sirva.

martes, 12 de noviembre de 2019

Error: cannot add duplicate collection entry of type mimeMap with unique key attribute fileExtension set to

Error: cannot add duplicate collection entry of type ‘mimeMap’ with unique key attribute ‘fileExtension’ set to ‘.woff’


Hola.


Me encontré con este error al tratar de levantar una aplicación o sitio web en IIS 8 que corre sin problemas en IIS 6.

Básicamente recuerdo que esos MIME Types los agregué manualmente hace tiempo al web.config raíz del sitio. Y veo que ahora da problema en IIS 8.

Revisando un poco la nueva configuración de IIS 8 en Windows Server 2012 veo que esos MIME Types ya vienen por default en la configuración del sitio default por lo que está causando conflicto con las líneas que tengo en el web.config.

Los MIME Types que me están dando problemas son estas:

<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
<mimeMap fileExtension=".woff2" mimeType="font/woff2" />
<mimeMap fileExtension=".woff" mimeType="font/woff" />

Solución.


La solución en este caso es remover estas líneas que están entrando en conflicto con las ya definidas por IIS. Como ven no podemos tener duplicados.

Simplemente borren o comenten primero y prueben nuevamente.

Espero les sirva.




lunes, 11 de noviembre de 2019

Cómo ver estatus de usuarios de Oracle

Cómo ver estatus de usuarios de Oracle


Hola.

Es probable que hayan necesitado conocer el estado de un usuario de Oracle. Por diversas razones importante saber esto para identificar las acciones a tomar.

En mi caso no puedo conectarme con un usuario por que el usuario se encuentra bloqueado y necesito tener más información acerca del bloqueo.

Con este query pueden conocer el estatus de los usuarios de oracle usando la vista dba_users

SQL>SELECT username, account_status, created, lock_date, expiry_date FROM dba_users;

Una vez identificado el problema lo que hago es desbloquear al usuario. Les dejo link aquí para desbloquear un usuario de oracle.


Espero les sirva






Checar el espacio del Flash Recovery Area de Oracle

Cómo checar el espacio del Flash Recovery Area de Oracle


Hola.

En esta ocasión les dejo una manera fácil de checar cuanto espacio tienen asignado al directorio de Flash Recovery Area en Oracle.

Es muy importante administrar correctamente el espacio de Flash Recovery Area en Oracle porque si este espacio se ve sobrepasado ocasiona que la base de datos no se pueda acceder o prender.

Este folder se encuentra en la ruta:

D:\app\<ORACLE_BASE>\flash_recovery_area

El FRA o Flash Recovery Area de Oracle es la ubicación predeterminada para almacenar los archivos de Backup, Archivelogs, Flashback logs, etc.

Con el siguiente parámetro de base de datos pueden saber cual es el espacio reservado para el flash recovery area y mantenerlo por debajo de ese valor.


SQL> show parameter DB_RECOVERY_FILE_DEST_SIZE;

NAME                                     TYPE      VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size     big integer 50G

SQL>

En este caso tengo 50GB como límite para la ubicación del FRA.


Espero les sirva.



jueves, 7 de noviembre de 2019

Checar estado de base de datos Oracle

Cómo checar estado de base de datos Oracle


Hola.

Escribo este post para dejarles una manera rápida de saber el estado de una base de datos Oracle. Este query les sirve para cuando quieren saber si la base de datos Oracle está activa, montada, desmontada, etc.

Particularmente útil cuando quieren ejecutar alguna acción que depende directamente del estado en el que se encuentra la base de datos Oracle.

El siguiente query utiliza la vista V$INSTANCE para conocer el status actual de la base de datos de Oracle.


SQL> SELECT INSTANCE_NAME, STATUS, DATABASE_STATUS FROM V$INSTANCE;

INSTANCE_NAME    STATUS       DATABASE_STATUS
---------------- ------------ -----------------
ipebdm           OPEN         ACTIVE

SQL>



Espero les sirva.

miércoles, 6 de noviembre de 2019

RMAN-06189: current DBID does not match target mounted database

RMAN-06189: current DBID does not match target mounted database


Hola

Ocurre este error cuando ejecuto el comando CATALOG START WITH desde RMAN.

RMAN> CATALOG START WITH 'E:\backup\';

Starting implicit crosscheck backup at 13-OCT-19
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of catalog command at 10/13/2019 16:39:14
RMAN-12010: automatic channel allocation initialization failed
RMAN-06189: current DBID 4269500080 does not match target mounted database (4242985402)

El error se debe a que no definí la variable DBID antes de hacer el catalog start with.

Como estoy haciendo una tarea de restauración de base de datos, anteriormente he ejecutado RESTORE CONTROL FILE y montado la base de datos con ALTER DATABASE MOUNT. Por lo que ya no puedo ejecutar set DBID.

Este error obtengo al ejecutar SET DBID inmediatamente.

RMAN> SET DBID 4242985402;

executing command: SET DBID
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of set command at 10/13/2019 16:51:43
RMAN-06188: cannot use command when connected to a mounted target database

Les dejo link aquí para saber cómo obtener el DBID de Oracle.

Solución.


Así que tengo que apagar la base de datos y ejecutar los pasos anteriores.
En resumen: Apagar, ejecutar SET DBID, startup nomount, restore controlfile, montar y catalog start with nuevamente.

Les dejo aquí abajo los comandos RMAN y su output.

RMAN> SHUTDOWN IMMEDIATE;

ORACLE error from target database:
ORA-00210: cannot open the specified control file

Oracle instance shut down

RMAN> SET DBID 4042975402;

RMAN> SHUTDOWN IMMEDIATE;

ORACLE error from target database:
ORA-00210: cannot open the specified control file

Oracle instance shut down

RMAN> SET DBID 4242985402;

executing command: SET DBID

RMAN> STARTUP NOMOUNT;

connected to target database (not started)
Oracle instance started

Total System Global Area    1670221824 bytes

Fixed Size                     2176328 bytes
Variable Size               1342180024 bytes
Database Buffers             318767104 bytes
Redo Buffers                   7098368 bytes

RMAN> RESTORE CONTROLFILE FROM 'E:\backup\O1_MF_S_1021562333_GT6Y4Y4W_.BKP';

Starting restore at 13-OCT-19
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=126 device type=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
output file name=D:\APP\<ORACLE_BASE>\ORADATA\DATABASE\CONTROL01.CTL
output file name=D:\APP\<ORACLE_BASE>\FLASH_RECOVERY_AREA\DATABASE\CONTROL02.CTL
Finished restore at 13-OCT-19

RMAN> ALTER DATABASE MOUNT;

database mounted
released channel: ORA_DISK_1

RMAN> CATALOG START WITH 'E:\backup\';
.
.
Do you really want to catalog the above files (enter YES or NO)? Y
cataloging files...
cataloging done

List of Cataloged Files
=======================
File Name: E:\BACKUP\O1_MF_NNNDF_TAG20191013T151636_GT6Y0OVS_.BKP
File Name: E:\BACKUP\O1_MF_S_1021562333_GT6Y4Y4W_.BKP


Con esto, el comando CATALOG START WITH ya lista los archivos de backup disponibles a catalogar.


Espero les sirva.







viernes, 1 de noviembre de 2019

Restaurar backup de RMAN en otro servidor windows con las mismas rutas

Restaurar backup de RMAN en otro servidor windows con las mismas rutas


Hola.

En este post voy a explicar cómo restaurar un backup RMAN de Oracle 11g en otro servidor windows. Hace tiempo escribí otro artículo similar sobre la restauración de una base de datos Oracle en otro servidor pero este artículo es utilizando Recovery Manager exclusivamente y con ambas bases de datos usando las mismas rutas.

En este caso la base de datos origen y la base de datos destino se encuentran en la misma ubicación y tienen el mismo nombre:

D:\app\<ORACLE_BASE>\

Archivos necesarios.


Primero debemos obtener los archivos necesarios de la base de datos origen para la restauración en el nuevo servidor.

1.- Backup de la base de datos origen
2.- Password file
3.- Pfile de la base de datos origen

Para obtener estos archivos, sigan los siguientes pasos:

1.- Backup de la base de datos origen con RMAN

RMAN> BACKUP DATABASE;
.
piece handle=D:\app\<ORACLE_BASE>\flash_recovery_area\DATABASE\BACKUPSET\2019_10_06\O1_MF_
NNNDF_TAG20191006T150022_GSNGG8C7_.BKP tag=TAG20191006T150022 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:02:16
Finished backup at 06-OCT-19
Starting Control File and SPFILE Autobackup at 06-OCT-19
piece handle=D:\app\<ORACLE_BASE>\flash_recovery_area\DATABASE\AUTOBACKUP\2019_10_06\O1_MF
_S_1020956559_GSNGLJXS_.BKP comment=NONE
Finished Control File and SPFILE Autobackup at 06-OCT-19
RMAN>

De los archivos generados, necesitamos copiar los archivos generados en las carpetas AUTOBACKUP y BACKUPSET del Flash recovery area.
-El backup del control file se encuentra en la carpeta AUTOBACKUP
-El backup de los datos se encuentra en la carpeta BACKUPSET

2.- El password file se encuentra en D:\app\<ORACLE_BASE>\product\11.2.0\dbhome_1\database

3.- Create PFILE from SPFILE en la base de datos origen y copiarlo al nuevo servidor

RMAN> SQL "CREATE PFILE FROM SPFILE";

El archivo se crea en D:\app\<ORACLE_BASE>\product\11.2.0\dbhome_1\database

A diferencia de la restauración en un servidor con diferentes rutas, aquí no cambiamos rutas del PFILE ya que las rutas en el nuevo servidor son las mismas.

4.- Crear una base de datos en la máquina destino con el mismo nombre de la base de datos que estamos restaurando. Click aquí para crear la base de datos.

Todos los archivos generados hasta aquí los he guardado en la siguiente ubicación pero puede ser la que ustedes elijan: E:\backup\

Comandos para la restauración con RMAN


De aquí en adelante comienza la restauración de la base de datos en el nuevo servidor.

1.- Reemplazar el password file en el nuevo servidor en la misma ubicación.

D:\app\<ORACLE_BASE>\product\11.2.0\dbhome_1\database

2.- Abrir un command prompt como administrador y ejecutar los siguientes comandos. Es muy importante que sea como administrador y el orden de las instrucciones.

-Asignar la variable ORACLE_SID con el nombre de la base de datos y entrar a RMAN

SET ORACLE_SID=<db_name>
RMAN TARGET /

-Apagar la base de datos y asignar el DBID de la base de datos origen. Click aqui para obtener el DBID.

RMAN>SHUTDOWN IMMEDIATE;
RMAN>SET DBID 4042975402;

-Iniciar en nomount con el PFILE generado anteriormente. En este caso el PFILE no ha sido modificado porque las rutas son las mismas.

RMAN>STARTUP NOMOUNT PFILE=E:\backup\INITdatabase.ORA;

-Crear SPFILE from PFILE y forzamos nuevamente a nomount. Con esto estamos reescribiendo los parámetros de inicio de la base de datos origen a la destino.

RMAN>SQL "CREATE SPFILE FROM PFILE=''E:\backup\INITdatabase.ORA''";
RMAN>STARTUP FORCE NOMOUNT;

-Restaurar el control file del backup. Esto reescribe los archivos de control en el nuevo servidor.

RMAN> RESTORE CONTROLFILE FROM 'E:\backup\O1_MF_S_1020956559_GSNGLJXS_.BKP';

-Montar la base de datos

RMAN> ALTER DATABASE MOUNT;

-Borrar fisicamente los tres redo log files del server destino porque me pasa que el recover falla al desconocerlos. Estos se crean nuevamente el abrir la base de datos así que no hay problema.

D:\app\<ORACLE_BASE>\ORADATA\DATABASE\REDO01.LOG
D:\app\<ORACLE_BASE>\ORADATA\DATABASE\REDO02.LOG
D:\app\<ORACLE_BASE>\ORADATA\DATABASE\REDO03.LOG

-Catalog start with desde RMAN. Con esto indicamos la ubicación de nuestros dos archivos de backup. Click en YES cuando pida confirmar catalogar los archivos. La siguiente línea puede fallar si no ejecutaron el SET DBID.

RMAN> CATALOG START WITH 'E:\backup\';

-Restaurar y recuperar. Pasos principales de restauración y recuperación. El primero toma un poco de tiempo al sobreescribir los archivos de datos en el folder ORADATA.

RMAN> RESTORE DATABASE;

-El recover va a mostrar un error al finalizar si tienen su base de datos en modo archive log. Esto es normal ya que no estamos aplicando secuencia de archivelogs.

RMAN> RECOVER DATABASE;

unable to find archived log
archived log thread=1 sequence=22504
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 10/06/2019 17:29:11
RMAN-06054: media recovery requesting unknown archived log for thread 1 with seq
uence 22504 and starting SCN of 792253069

-Finalmente abrimos la base de datos con la opción resetlogs. Este paso va a regenerar los REDO logs que borramos anteriormente. Ojo porque al abrir con resetlogs ya no se pueden aplicar los archivelogs después.

RMAN>ALTER DATABASE OPEN RESETLOGS;

database opened

-Es importante recrear el tablespace temporal ya que este no es restaurado por RMAN y pertenece a la base de datos destino. Les dejo aquí el link de cómo recrear el tablespace temporal.

Les dejo link de un nuevo post sobre restauración de una base de datos en una ubicación diferente.
*Aguas con las comillas y apóstrofes si están copiando los comandos.

Espero les sirva.