Mostrando entradas con la etiqueta oracle oci. Mostrar todas las entradas
Mostrando entradas con la etiqueta oracle oci. Mostrar todas las entradas

viernes, 3 de abril de 2020

Cómo restaurar RMAN Backups desde Oracle Cloud Object Storage

Si ocurre una falla critica en nuestro sitio principal y los servidores de nuestra base de datos no funcionan, es posible usar nuestros RMAN Backups almacenados en la nube para restaurar a un nuevo host. El siguiente ejemplo muestra cómo restaurar un RMAN backup desde un Oracle Cloud Object Storae a un nuevo host.

Requerimientos previos:
  • Nuevo host: Windows Server 2012 R2.
  • Binarios de Oracle instalados.
  • DBID de la base de datos que necesitemos restaurar.
  • Contraseña que usamos para encriptar los backups. (opcional)
  • Debemos tener configuradas nuestras keys para acceso al Oracle Cloud Object Storage. Para esto podemos verificar los primeros tres pasos en el siguiente articulo (link del articulo anterior) .
Configurando RMAN

Cuando tengamos configurada las API KEYS para poder establecer la conexión desde nuestro servidor Windows hacia nuestro Bucket en la nube. El siguiente paso será configurar las características de RMAN para que la extracción de backup pieces se realice de forma automática. La siguiente línea es un ejemple de configuración:

rman target /
rman> CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'SBT_LIBRARY=C:\app\Administrator\product\11.2.0\dbhome_1\LIB\oraopc.dll, SBT_PARMS=(OPC_PFILE=C:\app\Administrator\product\11.2.0\dbhome_1\database\opc_config\configORCL.ora)';
  • La ruta de la librería configORCL.ora dependerá de donde realizamos la instalación durante la configuración de acceso del modulo OCI.
  • La ruta del Oracle Home dependerá de donde realizamos la nueva instalación de los binarios en el nuevo host.


Restaurando la base de datos

Una vez configurado el acceso al bucket en la nube, procederemos a restaurar nuestra base de datos. Como en este caso en particular estamos usando un servidor Windows, nuestro primer paso será crear un servicio con el binario oradim.

C:\> oradim -NEW -SID orcl -STARTMODE auto -PFILE C:\app\Administrator\product\11.2.0\dbhome_1\database\initORCL.ora
  • El archivo initORCL.ora solo necesita tener el parámetro db_name definido.

A continuación, montamos la base de datos; establecemos el DBID de la base de datos; establecemos la contraseña (en caso hayamos usado encriptación) y restauramos el SPFILE.

rman target /
RMAN> STARTUP NOMOUNT;
RMAN> SET DBID=1559774388;
RMAN> RUN {
allocate channel t1 device type sbt PARMS 'SBT_LIBRARY=C:\app\Administrator\product\11.2.0\dbhome_1\LIB\oraopc.dll, SBT_PARMS=(OPC_PFILE=C:\app\Administrator\product\11.2.0\dbhome_1\database\opc_config\configORCL.ora)';
RESTORE SPFILE TO PFILE 'C:\app\Administrator\product\11.2.0\dbhome_1\dbs\initORCL.ora' FROM AUTOBACKUP;
}

Nota: Una vez restaurado el pfile, nos dirigimos a la ruta destino y modificamos el archivo de modo a concordar todos los parámetros *_dest con los nuevos destinos en el servidor en caso hayan cambiado y también modificamos el parámetro contro_files en caso el destino también haya cambiado.

Apagamos la instancia y encendemos nuevamente en modo NOMOUNT para restaurar los control files desde el backup en la nube. Una vez finalizada la restauración, montamos la base de datos:


RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP NOMOUNT;
RMAN> RUN {
allocate channel t1 device type sbt PARMS 'SBT_LIBRARY=C:\app\Administrator\product\11.2.0\dbhome_1\LIB\oraopc.dll, SBT_PARMS=(OPC_PFILE=C:\app\Administrator\product\11.2.0\dbhome_1\database\opc_config\configORCL.ora)';
RESTORE CONTROLFILE FROM AUTOBACKUP;
} 
RMAN> ALTER DATABASE MOUNT;


El siguiente paso será restaurar nuestra base de datos, para esto podemos usar la cantidad de CHANNELS que consideremos adecuada según las características de nuestro servidor.


RMAN> RUN {
allocate channel t1 device type sbt PARMS 'SBT_LIBRARY=C:\app\Administrator\product\11.2.0\dbhome_1\LIB\oraopc.dll, SBT_PARMS=(OPC_PFILE=C:\app\Administrator\product\11.2.0\dbhome_1\database\opc_config\configORCL.ora)';
allocate channel t2 device type sbt PARMS 'SBT_LIBRARY=C:\app\Administrator\product\11.2.0\dbhome_1\LIB\oraopc.dll, SBT_PARMS=(OPC_PFILE=C:\app\Administrator\product\11.2.0\dbhome_1\database\opc_config\configORCL.ora)';
allocate channel t3 device type sbt PARMS 'SBT_LIBRARY=C:\app\Administrator\product\11.2.0\dbhome_1\LIB\oraopc.dll, SBT_PARMS=(OPC_PFILE=C:\app\Administrator\product\11.2.0\dbhome_1\database\opc_config\configORCL.ora)';
RESTORE DATABASE;
}

Nota: si alguno de los archivos restaurados estará en una ubicación diferente al servidor original, recuerde utilizar la sentencia SWITCH DATAFILE ALL y los respectivos comandos RENAME para cada datafile como se muestra en el ejemplo siguiente:


SWITCH DATAFILE ALL;
SQL "ALTER DATABASE RENAME FILE ''+DATA/ASMDEMO1/ONLINELOG/group_3.263.873380343'' TO ''/u04/app/oracle/redo/redo03.log''";


Hasta ahora todo debería haber terminado sin error, en el siguiente paso exploraremos el ultimo SCN almacenado en nuestro RMAN Backup en la nube para saber el punto exacto hasta donde recobrar nuestra base de datos. Lo haremos mediante el siguiente comando:

RMAN> RESTORE DATABASE PREVIEW DEVICE TYPE SBT;

La salida del comando debe mostrar algo similar a esto:


  List of Archived Logs in backup set 7
  Thrd Seq     Low SCN    Low Time  Next SCN   Next Time
  ---- ------- ---------- --------- ---------- ---------
  1    8       972699     10-FEB-20 972727     10-FEB-20
List of Archived Log Copies for database with db_unique_name ORCL
=====================================================================

Key     Thrd Seq     S Low Time
------- ---- ------- - ---------
8       1    1       A 13-FEB-20
        Name: C:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_02_13\O1_MF_1_1_H4BV1Y4V_.ARC

9       1    2       A 13-FEB-20
        Name: C:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_02_13\O1_MF_1_2_H4C9MLFR_.ARC

10      1    3       A 13-FEB-20
        Name: C:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_04_01\O1_MF_1_3_H89H6ZXY_.ARC

11      1    4       A 01-APR-20
        Name: C:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_04_01\O1_MF_1_4_H89J0GX0_.ARC

12      1    5       A 01-APR-20
        Name: C:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_04_08\O1_MF_1_5_H8W240W6_.ARC

13      1    6       A 08-APR-20
        Name: C:\APP\ADMINISTRATOR\RECOVERY_AREA\ORCL\ARCHIVELOG\2020_04_09\O1_MF_1_6_H8YO7R8C_.ARC

validation succeeded for backup piece
Media recovery start SCN is 972705
Recovery must be done beyond SCN 972705 to clear datafile fuzziness
validation succeeded for backup piece
Finished restore at 09-APR-20


Recobramos nuestra base de datos usando el numero indicado en el comando anterior:

RMAN> RUN {
allocate channel t1 device type sbt PARMS 'SBT_LIBRARY=C:\app\Administrator\product\11.2.0\dbhome_1\LIB\oraopc.dll, SBT_PARMS=(OPC_PFILE=C:\app\Administrator\product\11.2.0\dbhome_1\database\opc_config\configORCL.ora)';
RECOVER DATABASE UNTIL SCN  972705;
}

El comando debería finalizar sin ningún error, una vez terminado procederemos a abrir nuestra base de datos usando la opción RESETLOGS:

RMAN> ALTER DATABASE OPEN RESETLOGS;

Como paso final debemos asegurarnos de que nuestra base de datos funcione como la original, creando LISTENERS y recuperando cualquier otra configuración que haya tenido el servidor anterior.

Conclusión: Los pasos para restaurar una base de datos son básicamente los mismos que en cualquier caso común, la clave del ejercicio radica en como configuremos el acceso a nuestro Oracle Cloud Storage Service.



lunes, 30 de marzo de 2020

Cómo Almacenar archivos en Oracle Cloud Object Storage

Un Object Storage es un servicio de almacenamiento en la nube para un amplio espectro de aplicaciones.

Entre sus características encontramos:
  • Seguridad de acceso mediante Oracle Cloud Infrastructure Identity and Acces Management
  • Autocuración, los datos corruptos se detectan automáticamente y se restauran a través de copias redundantes.
  • Encriptación del lado del servidor, todos los datos almacenados se cifran del lado del servidor utilizando el algoritmo de cifrado AES 256 de forma predeterminada.
Además, al ser un objeto dentro de Cloud Infrastructure, obtenemos las características heredadas:
  • Auto Scaling: podremos incrementar el espacio de almacenamiento bajo demanda y sin límites.
  • Opciones convenientes para el acceso de datos a través de internet mediante un conjunto de APIS disponibles para todas las plataformas.
  • Acceso inmediato una vez creado cargados los datos.
A continuación, veremos como crear un Object Storage.

Como primer paso, debemos iniciar sesión en Oracle Cloud y dirigirnos a Infrastructure Dashboard.


Desde el menú en la parte superior izquierda seleccionamos la opción Object Storage -> Object Storage:



Presionamos el botón Create Bucket, para poder hacer esto, antes tuvimos que haber creado un Compartment. El compartment es el contenedor de todos nuestros objetos en Oracle Cloud, por default, podemos crear un nuevo compartment con el nombre de nuestro login.




El formulario para la creación de un Buket es relativamente sencillo. A continuación los datos que se solicitan:




  • BUCKET NAME: El nombre de nuestro bucket, no podrá ser modificado una vez nombrado.
  • STORAGE TIER: Es la forma en que se almacenaran los datos. Estándar: para datos que son accedidos regularmente y no requieren ningún tipo de compresión. Archive: para datos que no van a ser accedidos regularmente y se van a comprimir, la consulta de estos datos es mas lento pues se utilizan como almacenamiento histórico.
  • OBJECT EVENTS: para utilizar los Events Services de Oracle Clooud que nos notifican de cualquier cambio sobre nuestro objetos.
  • ENCRYPTION: por default se utilizan las claves de Oracle Clooud, podemos seleccionar usar nuestras propias claves.
  • TAGS: los tags son objetos que nos ayudan a identificar nuestros objetos.

Con estos sencillos pasos habremos creado un bucket vacío que podemos comenzar a llenar con cualquier tipo de objeto desde nuestras aplicaciones:




En un siguiente articulo aprenderemos a establecer una conexión para almacenamiento de backups en nuestro bucket.

Nota: como mencione al principio no es la única utilizar de los Object Storage, pero es una muy buena de utilizarlo.

lunes, 29 de octubre de 2018

How to create an Instance in Oracle Cloud Infrastructure (OCI)

The first step is to create a SSH Key, this key will be used to connect to the instance once is created.

For this example, we will use "Puttygen":

Click in "Key".
Click in "SSH-2 RSA Key"
Click in "Generate" Button.


Move the cursor randomly until the progress bar is complete:


Once the key was generated, Click in "Save Private Key" Button to save the Private Key, putty uses the extension ppk. This key will be used to connect to the Instance:


Click in "Yes" and Save the private key:



For the Public Key, do not save it by using the button "Save Public Key". Instead of that, Select all the text in the field "Public Key for pasting into OpenSSH authorized_keys file":


Paste the text into a text file and save it, I will save it as "public.pub":


 Now that we have the Private and Public Key Saved. Let's create the Instance. We will start from the Dashboard Page:


Click in the menu upper left corner and then in "Compute->Instances":


The Instance section will be displayed, click in the botton "Create Instance":


Specify the Instance Name, the Shape and the Image Operating System. It's very important that you select a SSH Key, or that you past the text of the SSH Key. In our example, we will paste the text of the Public SSH Key we created at the beginning of this article:



At the time, the following is the list of Operating System Images available:

The following is the list of Image versions available:


Once you specify all the information is requested, click in the button "Create Instance":


The instance will be displayed in "Provisioning" Status:


After some minutes, the instance will be in "Running" Status:


The instance was created.

Connecting to the Instance:

Now let's connect to the instance, to do so we will use Putty and also our Private SSH Key.


Click in "Connection" -> "Auth" and then in the field "Private Key file for authentication" select the Private SSH Key that we created at the beginning of this article:


Now let's specify the IP of the Instance in order to get connected:


Click in "Open" and when the terminal is open specify the user "opc":


Oracle ACE Director Award - Deiby Gómez

Thanks #OracleACE Program for this awesome certificate recognizing the work I have done in the community for the last year. Looking forwa...