lunes, 11 de octubre de 2021

Como Clonar una Maquina Virtual en OCI #JoelKallmanDay

Como Clonar una Maquina Virtual en OCI (Oracle Cloud Infrastructure) #JoelKallmanDay

Este es mi aporte en el dia de nuestra Comunidad Oracle, 11 de Octubre 2021, iniciativa de Tim Hall desde 2016, este año renombrado #JoelKallmanDay en Memoria de Joel Kallman.  

Como Clonar una Maquina Virtual en OCI (Oracle Cloud Infrastructure) 

Cuando tenemos que crear un clon de una Maquina Virtual de OCI que solo tiene asignado un disco de booteo, podemos clonar el disco de booteo y generar la Maquina Virtual con ese disco clonado. El clonado de un disco de booteo demora unos pocos segundos.

1 - Comenzamos buscando en el Menu - Storage - Block Storage - Block Volumes 


 



2 - Seleccionamos el Boot Volume que queremos clonar y presionamos en esa linea donde estan los 3 puntitos 






3 - Alli aparece Create Clone y lo seleccionamos



4 - Ingresamos el Nombre del nuevo disco de booteo y presionamos CREATE CLONE



5 - Este Boot Volumen primero quedara en estado Provisioning y estará listo cuando aparece en verde Available

6 - En el Boot Volume clonado presionamos en los 3 puntitos y aparece



7 - Le asignamos un nombre a la VM (es recomendable el mismo nombre que el disco de boot)


8 - Vamos a cambiar la imagen. Seleccionamos en Image and shape - Edit -
 


9 - Alli seleccionamos Change Image


10 - En el listado de Image Source seleccionamos Boot Volumes



11 - Va a aparecer el clon que generamos, lo seleccionamos y luego presionamos Select Image


12 - Finalmente creamos la instancia presionando Create


13 - Presionamos Yes, Create Instance Anyway. Ignoramos este mensaje porque nos vamos a conectar exactamente igual que nos conectabamos a la original



14 - Va a quedar unos minutos Provisioning


15 - Cuando aparece en modo Running ya nos podemos conectar en la misma forma que nos conectamos con la original



Conclusión : Podemos crear un clon de una MV en OCI que solo tiene el disco de booteo asignado con los pasos explicados en este post.






 




























jueves, 3 de septiembre de 2020

Autonomous Database Mitos y Realidades - Q & A

El 17 de Agosto di una charla en el Oracle Groundbreakers Tour LATAM que se llamó ¨Autonomous Database: Mitos y Realidades¨. Lamentablemente no dio el tiempo de responder preguntas porque por problemas técnicos tenían que cortar la transmisión, así que decidí contestarlas aquí.
Al final del articulo les dejo el link donde podrán ver la sesión grabada.

- AutoTuning es solo en la nube ? o si instalamos OnPremice también lo tenemos ?
El AutoTuning incluye varias funcionalidades y las tenemos disponibles también onpremise.
Desde la version 11g Oracle configura por default una tarea que se ejecuta en la ventana nocturna llamada: Automatic SQL Tuning Advisor. Este asesor analiza las sentencias de mayor consumo de recursos y genera recomendaciones entre ellas los SQL Profiles que se puede definir que los implemente automaticamente.
En Oracle Database 19c aparece otra nueva funcionalidad que es el AutoIndexing disponible para Exadata en la que monitorea, detecta la necesidad de indices, los crea y elimina automaticamente. Podemos tener esta funcionalidad onpremise si tenemos Exadata y le instalamos Oracle Database 19c.
Ademas AutoTuning incluye la configuración de la base de datos, para lo cual tenemos las funcionalidades de AMM (Automatic Memory Managment) y ASMM (Automatic Shared Memory Managment) que configuran los buffers de memoria automaticamente, también disponibles OnPremise desde Oracle Database 10g ASMM y 11g AMM.

- Quien administraría audit vault?  un area del cliente supongo, no?
Lo que viene implementado en Autonomous Database es Database Vault, no Audit Vault. Lo administra Oracle y es para asegurar que sus DBA no tienen acceso a los datos de los clientes.

Es posible utilizar Oracle APEX en una Autonomous DB?
Si, APEX viene configurado y se puede comenzar a utilizar a través de un browser ni bien tenemos lista la Autonomous Database.

- En nuestra organización usamos las bases standby como bases de reporting, para cargas de datawarehouse incluso nuestras aplicaciones las usan para ese fin. En la nube, se pueden usar también con ese propósito ?
En la nube de Oracle si, aunque por el momento no con Autonomous Database, ya que Autonomous Data Guard no permite acceder a las bases de datos Standby para ejecutar tareas allí.
Hay otras opciones de arquitectura en la nube de Oracle para implementarlo.

Si llegaste a este articulo y todavía no viste la presentación, o quieres revivirla, la podrás ver en el canal de youtbe de LAOUC. Te recomiendo que te suscribas para que te notifique automaticamente a medida que van subiendo las sesiones grabadas durante el evento. Este es el link:  https://www.youtube.com/channel/UCNIWWONMX1QCgktvpcTrvJg


lunes, 3 de agosto de 2020

Como Cambiar el Nombre de una Base de Datos con DBNEWID

Tengo un cliente que tiene todavia bases Oracle 11.2.0.4, si todavia! por mas que me gustaria migrarselas a 19c, en este caso debido a que es la ultima version  certificada por el proveedor del aplicativo no podemos actualizarla, como seguro les pasa todavia a Uds en muchas instalaciones. 

Surgió que necesitan clonar la VM de Desarrollo para tener un ambiente de QA. Esta VM de Desarrollo tiene bases de datos 11.2.0.4 y una vez clonada la VM le voy a cambiar el nombre de a las bases de datos para su nuevo ambiente de  QA. 

Para ello voy a usar el utilitario DBNEWID, que aunque no es una herramienta nueva, no es muy usado porque lo tradicional cuando se cambia el nombre de una base de datos es hacerlo recreando el control file. Como ya lo he usado muchas veces y funciona muy bien me dio ganas de compartirlo con Uds.

El DBNEWID 
1 - Cambia el nombre de la base de datos
2 - Cambia el DBID
3 - Genera en el $ORACLE_BASE/diag todos los directorios necesarios para la nueva base, incluido el alert

Les voy a mostrar los pasos a seguir con DBNEWID para cambiar el nombre de la base de datos luego de clonar una Maquina Virtual.
En este ejemplo la base origen se llama DESA y la destino QA1


En el ambiente clonado 
1 - Montar la Base de Datos 
(En mi caso la base estaba baja, sino previamente bajarla)
 SQL> shutdown immediate

SQL> startup mount

2- Ejecutar el DBNEWID

$ nid TARGET=sys/password@desa DBNAME=qa1

Target es la Base origen, especificamos la password de sys 

Previamente tenemos que agregar en el tnsnames.ora la entrada para esa base. 

DBNAME se especifica el nombre destino.


$ nid TARGET=sys/password@desa DBNAME=qa1

DBNEWID: Release 11.2.0.4.0 - Production on Mon Aug 3 07:02:14 2020

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to database DESA (DBID=742283927)

Connected to server version 11.2.0

Control Files in database:

    /u02/oradata/control01.ctl

    /u05/oradata/control02.ctl

Change database ID and database name DESA to QA1? (Y/[N]) => Y     -SELECCIONAR "Y"  PARA CONTINUAR

Proceeding with operation

Changing database ID from 742283927 to 1597134007

Changing database name from DESA to QA1

    Control File /u02/oradata/control01.ctl - modified

    Control File /u05/oradata/control02.ctl - modified

    Datafile /u02/oradata/system01.db - dbid changed, wrote new name

    Datafile /u02/oradata/sysaux01.db - dbid changed, wrote new name

    Datafile /u02/oradata/undotbs01.db - dbid changed, wrote new name

    Datafile /u02/oradata/users01.db - dbid changed, wrote new name

    Datafile /u02/oradata/temp01.db - dbid changed, wrote new name

    Control File /u02/oradata/control01.ctl - dbid changed, wrote new name

    Control File /u05/oradata/control02.ctl - dbid changed, wrote new name

    Instance shut down


Database name changed to QA1.

Modify parameter file and generate a new password file before restarting.

Database ID for database QA1 changed to 1597134007.

All previous backups and archived redo logs for this database are unusable.

Database is not aware of previous backups and archived logs in Recovery Area.

Database has been shutdown, open database with RESETLOGS option.

Succesfully changed database name and ID.

DBNEWID - Completed succesfully.


3 - Montar la Base que va a dar error, es esperado
SQL> startup mount
ORACLE instance started.

Total System Global Area 4275781632 bytes
Fixed Size                  2260088 bytes
Variable Size            1040188296 bytes
Database Buffers         3221225472 bytes
Redo Buffers               12107776 bytes
ORA-01103: database name 'QA1' in control file is not 'DESA'

4 - Cambiar el db_name

SQL> alter system set db_name=qa1 scope=spfile;

5 - Bajar la Base de Datos

SQL> shutdown immediate

ORA-01507: database not mounted

ORACLE instance shut down. 

6 - Generar un nuevo password file

$cd $ORACLE_HOME/dbs

$orapwd file=orapwdqa1 password=password entries=10

7- Renombrar el spfile ya que el DBNEWID cambio los parametros del spfile pero no cambio el nombre del spfile en el sistema operativo

$mv spfiledesa.ora spfileqa1.ora

8 - Cambiar el ORACLE_SID

$ export ORACLE_SID=qa1

9- Si estas clonando todo el ambiente como en este caso, cambia tambien el ORACLE_SID en el .profile, .bash_profile o el que uses

10 - Cambiar en el /etc/oratab para que quede nuestra nueva base

$vi /etc/oratab

qa1:/u01/app/oracle/product/11.2.0/dbhome_1:Y

11 - Levantar el listener o reiniciarlo

$ lsnrctl start

12 - Montar la base de datos

SQL> startup mount

13 - Resetear los REDOLOGS

SQL> alter database open resetlogs;


Verificaciones
1  - Verifico nombre de la base de datos
 SQL> select name from v$database;

 NAME

---------

QA1


 2 - Verifico nombre de la instancia

SQL> select instance_name from v$instance;

 INSTANCE_NAME

----------------

qa1

Recomendación : Realizar inmediatamente un nuevo backup. No se puede restaurar de los backup de la base origen esta nueva base.

Conclusión : DBNEWID  permite cambiar el nombre de una  base de datos facilmente





 



jueves, 10 de octubre de 2019

OGB Appreciation Day - Como Crear una Cuenta Always Free #ThanksOGB

Hoy celebramos el OGB Appreciation Day y este es mi aporte como agradecimiento a formar parte de la Comunidad.  Van a encontrar muchos blogs con este hashtag: #ThanksOGB 
Celebrar este dia como agradecimiento a toda la Comunidad Oracle es un idea de Tim Hall, y desde hace un par de años que lo venimos haciendo. 

Larry Ellison anuncio en el hashtagOOW19, Cloud Free Tier, donde se obtiene una cuenta Cloud Gratuita que incluye : 1- ALWAYS FREE - Es ilimitada para Desarrolladores, Estudiantes y Para las Empresas probar Prototipos 2 -30 Days Free Trial- Gratis con U$S300 en créditos para probar otros Servicios

1 - Always Free incluye :
Servicios que se pueden usar por tiempo ilimitado :

  • Dos Oracle Autonomous Databases con Oracle Application Express (APEX) y Oracle SQL Developer Web
  • Dos Oracle Cloud Infrastructure Compute VMs; Block, Object, y Archive Storage; Load Balancer y data egress; Monitoring and Notifications
2 -30 Days Free Trial incluye:
US$300 en creditos gratuitos.
  • Acceso a una gran cantidad de servicios de Oracle Cloud por 30 dias, incluyendo Bases de Datos, Analytics, Compute, y Container Engine for Kubernetes
  • Hasta ocho instancias a traves de todos los servicios disponibles
  • Hasta 5 TB de Storage
Les voy a mostrar como obtenerla
1 - Ir a https://www.oracle.com/cloud/free/  y presionar Start for Free




2 - Ingresar mail y país y luego presionar NEXT




3 - Ingresar el Cloud Account Name, es el nombre de la Cuenta Cloud. Esto es porque despues se pueden generar más usuarios que accedan a la misma Cuenta. Los usuarios son los que se registran con los mails. Con el mail ingresado en la pantalla anterior es el que va a generar al primer usuario. 
Luego para ingresar vamos a usar este Account Name (que es este generado) y el User Name (que es el mail).
En Home Region, se esta seleccionando en que DataCenter de Oracle nos van a generar la cuenta y por ende los servicios. Siempre es recomendable seleccionar el más cercano  a su País. En mi caso que estoy en Argentina elijo el DataCenter de Brasil.

4 - Ingresar el Numero de Celular y nos envia un mensaje con un Codigo de Verificación,
5 - Ingresar la Password y Confirmarla, debe cumplir una serie de requisitos que estan detallados en la misma pantalla. Luego presionar al final de la pantalla NEXT: PAYMENT INFORMATION



6 - Tenemos que ingresar la tarjeta de crédito, va a hacer un pequeño cargo que lo vuelve atrás instantáneamente, pero no va a cobrarnos ningún servicio es solo para verificar que es alguien real que esta pidiendo la cuenta y no es un bot por ejemplo. Solamente si decidimos explicitamente luego suscribirnos a algún servicio va a generar un cargo.  Clickear que esta COMPLETO al final y presionar SIGN UP


7 -  La siguiente pantalla nos avisa que estan creando la cuenta y cuando este lista recibimos un mail.
Desde ahi se puede acceder a documentación sobre varios servicios de Oracle Cloud. 

8 - Vamos a recibir un mail de este tipo cuando esta lista nuestra cuenta

Lista para Usar! 














lunes, 17 de diciembre de 2018

Como Redimensionar un Volumen ADVM File System ACFS

Cuando necesitamos agrandar un File System ACFS, tenemos que fijarnos si tenemos espacio en el volumen. Cuando tenemos un volumen creado con ADVM (ASM Dinamyc Volume Manager) podemos cambiarle el tamaño (resize) por linea de comandos o con herramientas gráficas.
A continuación voy a mostrar como realizar esta tarea por linea de comandos. Estos ejemplos estan realizados en el siguiente ambiente :
Servidor ODA
Version :Oracle Clusterware 12.1.0.2

Si en el Volumen de ADVM esta montado un File System ACFS no se necesita desmontar para redimensionarlo. Sin embargo, no se puede usar el comando volresize del ASMCMD porque da error, hay que ejecutar el comando acfsutil size que redimensiona ONLINE el Volumen y el File System.

Ejemplos:

1 -Antes de ejecutar el redimensionamiento tenemos que tener informacion del volumen. Para ello nos logueamos con usuario grid (dueño de la instalacion del producto Grid Infrastructure) y ejecutamos asmcmd en una terminal que llamaremos Terminal 1
$asmcmd
ASMCMD> volinfo -G DATA -a

Diskgroup Name: DATA
         Volume Name: DATOSPROD
         Volume Device: /dev/asm/datosprod-121
         State: ENABLED
         Size (MB): 102400
         Resize Unit (MB): 64
         Redundancy: MIRROR
         Stripe Columns: 8
         Stripe Width (K): 1024
         Usage: ACFS
         Mountpath: /u01/ACFS

2 - Abrimos otra terminal, Terminal 2. Consultamos desde Sistema Operativo el tamaño del File System, conectados también con usuario grid
[grid@host01 ~]$ df -h /u01/ACFS
Filesystem            Size  Used Avail Use% Mounted on
/dev/asm/datosprod-121

                      100G  1.8G   99G   2% /u01/ACFS

3- Volvemos a Terminal 1, da Error al tratar de redimensionar un Volumen ADVM con ACFS con el comando volresize
ASMCMD> volresize -G DATA -s 409600M DATOSPROD
ORA-15032: not all alterations performed


ORA-15476: ACFS volumes must be resized with the 'acfsutil size' operating system command. (DBD ERROR: OCIStmtExecute)

Los parámetros especificados en el ejemplo son:
-G DATA  : diskgroup
-s 409600M  : tamaño especificando M (Megas, pero puede ser K,M,G,P)
DATOSPROD : Nombre del Volumen

Si el Volumen esta montado en un File System No-ACFS no daria error este comando pero hay que desmontarlo antes de redimensionarlo. 

4 - Ejemplo exitoso de como redimensionar un Volumen ADVM con ACFS, en Terminal 2:
$ acfsutil size +300G -d /dev/asm/datosprod-121 /u01/ACFS
acfsutil size: new file system size: 429496729600 (409600MB)

Los parámetros especificados en el ejemplo son
+300G : cantidad de Gigas a agregar  (puede ser +/- y en K,M,G,P)
-d /dev/asm/datosprod-121   : Device del Volumen
/u01/ACFS  : Punto de montura

5 - Verificamos tamaño actual del volumen en Terminal 1

ASMCMD>volinfo -G DATA -a

Diskgroup Name: DATA
         Volume Name: DATOSPROD
         Volume Device: /dev/asm/datosprod-121
         State: ENABLED
         Size (MB): 409600
         Resize Unit (MB): 64
         Redundancy: MIRROR
         Stripe Columns: 8
         Stripe Width (K): 1024
         Usage: ACFS
         Mountpath: /u01/ACFS

6 - Verificamos tamaño actual del File System en Terminal 2
[grid@host01 ~]$ df -h /u01/ACFS
Filesystem            Size  Used Avail Use% Mounted on
/dev/asm/datosprod-121



                      400G  1.8G   99G   2% /u01/ACFS

Conclusión  : Para cambiar el tamaño de un volumen ADVM  hay que ejecutar el comando acfsutil. El acfsutil aumenta el tamaño del volumen y del filesystem ACFS automaticamente

jueves, 11 de octubre de 2018

ODC Appreciation Day 2018 - SQL Tuning Advisor

ODC es Oracle Developer Community (ex OTN) es la comunidad donde compartimos conocimientos. Hoy es un  dia especial porque  impulsados por Tim Hall generamos un post de algún producto de Oracle que usamos y de esta forma continuamos compartiendo nuestro conocimiento, asi que van a encontrar muchos post con este hashtag  #ThanksODC

Elegi SQL Tuning Advisor porque lo considero la primera herramienta básica que puede ayudar a mejorar la performance de un SQL y sin necesidad de un DBA experto en tuning.

Requiere licencia de Oracle Enterprise Edition y los paquetes de Diagnostic Pack y Tuning Pack. 

Se ingresan una o más sentencias SQL y genera recomendaciones con la justificación y beneficio esperado.

Se puede ejecutar manualmente desde interfaces gráficas : Enterprise Manager Database Console, Enterprise Manager Grid Control, Enterprise Manager Cloud Control, Enterprise Manager Database Express o SQL Developer.
También se puede ejecutar desde plsql con el package  DBMS_SQLTUNE.
Si tenemos una base de datos creada con dbca desde la version 11g se ejecuta mediante una tarea autómatica en ventana noctura diariamente por default. 
Posibles entradas para SQL Tuning Advisor son :
ADDM – SQL’s identificados con mala performance
AWR – SQL’s almacenados en el repositorio
Cursor Cache – Ultimos SQL ejecutados
STS – SQL’s agrupados con su contexto de ejecución

La salida de una tarea de SQL Tuning Advisor es un Reporte con Recomendaciones, que pueden ser Recolectar Estadisticas, Crear Indices, Implementar SQL Profile, Re-estructurar el SQL, Implementar SQL Plan Baseline

Se puede ejecutar por ejemplo seleccionando el SQL con gran uso de recursos desde la solapa de Performance con el boton TUNE SQL


Para interiorizarse más del uso del SQL Tuning Advisor los invito a ver mi webinar gratuito en https://www.orapub.com/webinars 

GRATIS Cómo usar SQL Tuning Advisor


viernes, 14 de octubre de 2016

Mi Primer Oracle Open World

Este año tuve la oportunidad de asistir al Oracle Open World 2016 San Francisco https://www.oracle.com/openworld/index.html
Era mi primera vez en San Francisco, mi primera vez en el OOW y la primera vez que iba a dar una presentación en ingles!.
La experiencia fue super enriquecedora y quede maravillada. Me encantó!. 
El evento se organiza en el Moscone Center http://www.moscone.com/site/do/index un centro de eventos que esta compuesto por 3 edificios que se dedican totalmente a Oracle y se realizan durante todos los dias permanentemente sesiones en paralelo, alrededor de 2000 sesiones en total. Asisten miles de personas de todo el mundo.
Mi presentación fue el Domingo 19/9 a las 9:15, el tema fue "Improving SQL Performance with SQL Profiles without Changing SQL Code". Tuve una gran cantidad de asistentes, alrededor de 140 personas!!. Entre ellos gente a la que admiro mucho como Carlos SierraMauro PaganoArup Nanda y Kamran Agayev.  
Al finalizar OTN Latinoamerica me hizo una entrevista y ya la publicó editada con paneos de mi presentación https://www.youtube.com/watch?v=8wfuw60-x_o&app=desktop
Mi presentación la pueden bajar los que se registraron en el OOW16 desde https://oracle.rainfocus.com/scripts/catalog/oow16.jsp?search=UGF5266&search.event=oracleopenworld y en breve la voy a agregar publica en este blog.
Ese dia a la noche me invitaron a la cena Oracle ACE Dinner por ser Oracle ACE Associate. Es super interesante tener la oportunidad de conocer y dialogar con otros ACE de todo el mundo. 
Al horario de la cena, estaba la apertura con Larry Ellison que me lo perdi, por suerte se pueden ver los videos On Demand de Open World Keynotes, JavaOne Keynotes, Executive Solutions Sessions y General Sessions https://www.oracle.com/openworld/on-demand/index.html
Con el pase full se tiene de lunes a jueves el almuerzo incluido. El martes a la noche Oracle organizó una cena para los asistentes de Latinoamerica donde tuve oportunidad de conocer gente y de encontrarme con conocidos. El miércoles a la noche Oracle organizó un recital que lo llama Oracle Appreciation Event, este año fue en el AT&T Park Gwen Stefani y Sting. Estuvo buenisimo!!
Asisti a muchas sesiones y varias meetings entre otras de Accenture, Bloggers, etc. Tuve oportunidad de hablar y tener contacto con profesionales de todo el mundo y con Product Managers de Oracle, ademas de asistir al Oracle Application User Expirience, un Tour programado para conocer el lab en Oracle HQ (Nave Nodriza) y las tendencias. 
Además de participar en estas actividades aproveche a conocer San Francisco que es una ciudad espectacular!
Aprovecho este blog para agradecer a todos mis compañeros de AROUG y en especial a Gustavo Gonzalez que gracias a su apoyo pude llegar a ser speaker en este evento.
Si tenes alguna vez la oportunidad de asistir a un Open World, no lo dudes, es una experiencia inolvidable!

Moscone Center
Mi presentación


Mi presentación
Con Arup Nanda


En el Hall de Exposiciones
Oracle ACE Dinner

Con Alex Zabala, Mauro Pagano, Carlos Sierra y Mike Dietrich

Tour Oracle User Experience