jueves, 22 de febrero de 2018

Actualizar Servidor Dell R720 virtualizado, de la version 5.5 ESXi a la version 6.5 ESXi desde el Update Manager


Primero descargar los drivers necesarios en la pagina de dell:

1.       Ir a Dell.com/support/drivers.
2.       En la seccion de Controladores & Descargas, escibe el Service Tag de tu servidor, Service Tag or Express Service Code y clic en Enviar.
o   NOTA: Si no tienes Service Tag, selecciona Detecta Mi Producto para permitir que es sistema  automaticamente detecte tu Service Tag, o en Soporte General , navega hasta encontrar tu producto.
3.       Click en Controladores & Descarga .
Los controladores son aplicables a la solución que se despliegue.
4.       Click  en Cambiar OS, y entonces selecciona la version que deseas instalar del VMware ESXi.
5.       En categoría elige Enterprise Solutions, y entonces click Descargar Archivo.
        (pasos provenientes de dell.com).































  • Ahora guardar el archivo ISO que contiene la version ESXi que se desea instalar.
  • Ingresar al Vcenter.
  • Seleccionar el servidor al cual migraremos a la version 6.5 y dar clic en Update Manager.
  • Ir a la vista de administrador



  • Ir a administrar



  • Ir a Imagenes ESXi, Importar Imagern ESXi, Examinar, Seleccionar la imagen y abrir.



  • Una vez cargada la imagen, ir a Lineas bases de Hosts, Nueva línea base.




  • Ingresar Nombre, descripción y habilitar le tipo de línea base “Actualizacion de hosts”, Siguiente.



  • Seleccionar la imagen que anteriormente se cargó, Siguiente.



  •  Finalizar.


  • Regresar hasta el inicio y dar clic en Update Manager, Asociar línea base.



  •  Seleccionar la línea base creada anteriormente con la imagen del ESXi 6.5, aceptar.



  • Seleccionar la línea base y dar clic en Comprobar actualizaciones.



  • Marcar la casilla de Actualizaciones y Aceptar.



  • Se muestra el porcentaje de avance.




  • Nos genera un error, al existie algunos VIB que no son compatibles.



Error:

La actualización contiene el siguiente conjunto de VIB en conflicto:

LSI_bootbank_scsi-mpt3sas_04.00.00.00.1vmw-1OEM.500.0.0.472560
LSI_bootbank_scsi-mpt3sas_04.00.00.00.1vmw-1OEM.500.0.0.472560

Elimine los VIB en conflicto o utilice Image Builder para crear una imagen ISO de actualización personalizada que contenga versiones más nuevas de los VIB en conflicto e intente actualizar nuevamente.

Solución:

--> Buscar el VIB

esxcli software vib list | grep mpt3sas

Output:
scsi-mpt3sas                   04.00.00.00.1vmw-1OEM.500.0.0.472560   LSI       VMwareCertified   2015-07-20


--> Busca que drivers utilizan cuales interfaces en el host
esxcli network nic list

Output:

Name    PCI Device     Driver  Link  Speed  Duplex  MAC Address         MTU  Description
------  -------------  ------  ----  -----  ------  -----------------  ----  -------------------------------------------------------
vmnic0  0000:001:00.0  tg3     Up     1000  Full    c8:1f:66:d9:6f:8c  1500  Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet
vmnic1  0000:001:00.1  tg3     Up     1000  Full    c8:1f:66:d9:6f:8d  1500  Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet
vmnic2  0000:002:00.0  tg3     Up     1000  Full    c8:1f:66:d9:6f:8e  1500  Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet
vmnic3  0000:002:00.1  tg3     Down      0  Half    c8:1f:66:d9:6f:8f  1500  Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet

Nota: No se observa que alguna interfas utilice mpt3sas

--> Remueve el driver de scsi del VIB

esxcli software vib remove -n scsi-mpt3sas

Command and output:

# esxcli software vib remove -n scsi-mpt3sas

Removal Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed:
   VIBs Removed: LSI_bootbank_scsi-mpt3sas_04.00.00.00.1vmw-1OEM.500.0.0.472560
   VIBs Skipped:

Por ultimo reiniciar el equipo.

Nota: (En mi caso, al reiniciar el servidor de forma remota este no levantó, por lo tanto, se reinició de nuevo de forma manual en sitio, este levantó de forma normal y fue posible continuar con la instalación tras seleccionar “comprobar actualizaciones” y verificar que la leyenda de incompatible se eliminó y en su lugar apareció la leyenda de “No conforme”, que es lo que esperábamos obtener, ahora seleccionamos  “corregir” nuevamente y continuamos con la instalación).


  • Seleccionamos la línea base que creamos a partir del ESXi 6.5 que anteriormente describimos:


  •  Seleccionamos el servidor de destino, es decir donde actualizaremos a la versión 6.5.


  • Aceptamos los términos y condiciones.



  •  En opciones avanzadas, dejamos todo como está, según sea el caso se pueden habilitar estas opciones.


  •  Dejamos las opciones de corrección de hosts tal y como están, según sea el caso se pueden habilitar estas opciones.


  • Finalizamos.



  • Podemos observar el porcentaje de avance.






  • NOTA: En mi caso al 44% el servidor se reinició, pero de nuevo no levantó de forma normal, así que lo intentamos reiniciar 2 veces sin éxito, levantamos la tapa del servidor y sopleteamos todo, de nuevo reiniciamos y no levantó, reiniciamos nuevamente y este levantó acabando la instalación.




  • Observamos que el porcentaje de avance continuó sin detalles.



  • Una vez terminado el proceso y después de refrescar la página, cambia la leyenda a conforme.






Dudas y Comentarios Aqui.






lunes, 18 de julio de 2016

Como insertar imagenes JPG a una tabla en Oracle

INSERTAR IMAGENES JPG EN ORACLE


Dentro de las actividades de un DBA se encuentra la generación de distintos objetos, entre ellos las tablas, y en ocasiones tendremos que trabajar con imágenes. Para tratar con este tipo de datos es recomendable utilizar BLOB, que básicamente permite almacenar contenido multimedia dentro de una base de datos.

Una forma de insertar imagenes JPG en una tabla de Oracle es mediante un desarrollo en .NET, ademas de procedimientos generados en Oracle, este segundo es el que veremos a continuación:

INSERTAR IMAGENES JPG EN ORACLE

PASO 1) CREAR UN DIRECTORIO VIRTUAL EN ORACLE CON EL USUARIO SYS, DAR PRIVILEGIOS A SYSTEM SOBRE EL DIRECTORIO

CREATE DIRECTORY IMAGENES_LOGIC AS '/opt/oracle/IMAGENES';

GRANT READ, WRITE, EXECUTE ON DIRECTORY IMAGENES_LOGIC TO SYSTEM;


PASO 2) SUBIR LAS IMAGENES JPG A ESE DIRECTORIO VIRTUAL EN ORACLE MEDIANTE CUALQUIER HERRAMIENTA QUE PERMITA CONEXION FTP (WINSCP, MOBAXTERM, ETC)


PASO 3) GENERAR UNA LISTA (LLAMADA cadena.txt) CON LA CADENA DEL NOMBRE DE LAS IMAGENES Y CON EL ID DE LA IMAGEN, EN ESTE CASO LA LISTA CONTIENE LO SIGUIENTE;

25468, '25468_IMAGEN.jpg'
25461, '25461_IMAGEN.jpg'
25462, '25462_IMAGEN.jpg'
25464, '25464_IMAGEN.jpg'
.... ..... .....
... .... .....

DONDE:

'3061815_CLF01_PRE.jpg' --> ES EL NOMBRE DE LA IMAGEN
3061815 --> ES EL ID DE LA IMAGEN



PASO 4) GENERAR UN TABLESPACE PARA EL NUEVO USUARIO USUARIO_IMAGEN_DATA;


CREATE TABLESPACE USUARIO_IMAGEN_DATA
DATAFILE '/bd/oradata03/mibase/USUARIO_IMAGEN_DATA_01.dbf' SIZE 500M,
         '/bd/oradata04/mibase/USUARIO_IMAGEN_DATA_02.dbf' SIZE 500M;



PASO 5) CREAR UN USUARIO  USUARIO_IMAGEN;

CREATE USER USUARIO_IMAGEN
  IDENTIFIED BY  "USUARIO_IMAGEN"
  DEFAULT TABLESPACE USUARIO_IMAGEN_DATA
  TEMPORARY TABLESPACE TEMP
  PROFILE DEFAULT
  ACCOUNT UNLOCK;

  GRANT UNLIMITED TABLESPACE TO USUARIO_IMAGEN;


PASO 6) CREAR LA TABLA USUARIO_IMAGEN.TABLA_IMAGENESS

CREATE TABLE USUARIO_IMAGEN.TABLA_IMAGENESS
(
 ID_IMAGEN NUMBER,
 NOMBRE_IMAGEN VARCHAR2(50),
 IMAGEN BLOB
)
TABLESPACE USUARIO_IMAGEN_DATA;


PASO 7) CREAR UN PROCEDIMIENTO QUE INSERTE LAS IMAGENES

CREATE OR REPLACE PROCEDURE INSERTA_IMAGEN_DE_DIRECTORIO (p_id NUMBER, p_image_name IN VARCHAR2)
IS
   src_file   BFILE;
   dst_file   BLOB;
   lgh_file   BINARY_INTEGER;
BEGIN
   src_file := BFILENAME ('IMAGENES_LOGIC', p_image_name);

   -- insert a NULL record to lock
   INSERT INTO USUARIO_IMAGEN.TABLA_IMAGENESS
               (ID_IMAGEN, NOMBRE_IMAGEN, IMAGEN
               )
        VALUES (p_id, p_image_name, EMPTY_BLOB ()
               )
     RETURNING IMAGEN
          INTO dst_file;

   -- lock record
   SELECT     IMAGEN
         INTO dst_file
         FROM USUARIO_IMAGEN.TABLA_IMAGENESS
        WHERE ID_IMAGEN = p_id AND NOMBRE_IMAGEN = p_image_name
   FOR UPDATE;

   -- open the file
   DBMS_LOB.fileopen (src_file, DBMS_LOB.file_readonly);
   -- determine length
   lgh_file := DBMS_LOB.getlength (src_file);
   -- read the file
   DBMS_LOB.loadfromfile (dst_file, src_file, lgh_file);

   -- update the blob field
   UPDATE USUARIO_IMAGEN.TABLA_IMAGENESS
      SET IMAGEN = dst_file
    WHERE ID_IMAGEN = p_id AND NOMBRE_IMAGEN = p_image_name;

   -- close file
   DBMS_LOB.fileclose (src_file);
END INSERTA_IMAGEN_DE_DIRECTORIO;
 /

PASO 8) CREAR UN SCRIPT (LLAMADO insertate.ksh) QUE INSERTE LAS IMAGENES DESDE EL PROCEDIMIENTO CON UN WHILE

#!/usr/bin/ksh


# |--------------------------------------------|
# |-- Configuracion de variables de Ambiente --|
# |--------------------------------------------|

while read VARIABLE
do
export $VARIABLE
done < /opt/oracle/varibles_ambiente.var
export PATH=$PATH:$ORACLE_HOME/bin:.


# |------------------------------------|
# |-- Generacion de sentencia while  --|
# |------------------------------------|

while read CADENA
do
sqlplus -s ${USUARIO_ORACLE}/${USER_PASS}@$ORACLE_SID<<EOF
EXECUTE sys.INSERTA_IMAGEN_DE_DIRECTORIO($CADENA);
commit;
EOF
done </opt/oracle/cadena.txt


PASO 9) EJECUTAR EL SCRIPT insertate.ksh EN MODO DEBUG

ksh -xv insertate.ksh


Dudas/Comentarios aqui:



miércoles, 23 de marzo de 2016

Conectar Oracle a SQL-Server

Conectar Oracle a SQL-Server

Esta nota aplica en Solaris Sparc 10, Oralce 11 y 10g.

En algunas ocasiones es necesario obtener datos de terceros desde Oracle, llámese Sybase, SQL-Server, etc. Oracle permite conectarse con otras bases de datos siempre y cuando sea de terceros hacia Oracle, pero restringe la comunicación cuando se trata de Oracle hacia terceros, sin embargo existe una herramienta llamada Oracle Database Gateway que nos permite realizar este tipo de conexiones. Para la instalación de la herramienta necesitamos lo siguiente:

Descargar el kit de Oracle Database Gateway:

Solaris 10 (update 6 or later) 

Como configurar DG4MSQL (Oracle Database Gateway for MS SQL Server) 64bit Unix OS (Linux, Solaris, AIX,HP-UX) post install ( Doc ID 562509.1 ) 

Patch 13390677: 11.2.0.4.0 PATCH SET FOR ORACLE DATABASE SERVER 

- logearse en My Oracle Support 
- Ir a la sección Patches & Updates
- Buscar el  patch number 13390677 y tu plataforma
- Presiona el boton '+' para ver la lista de plataformas 
- click en el patch number 
- Para descargar el kit debes elegir cualquiera de los siguientes casos que apliquen: 

p13390677_112040_platform_5of7.zip - Todos los SO excepto WIndows 32-bit 
p13390677_112040_platform_4of6.zip - Windows 32-bit 

Este kit puede ser instalado en un servidor Oralce, en un Home distinto.

Pasos para instalar Oracle Database Gateway 11g (compatible con 10g).


1.- Crear un directorio nuevo (ORACLE_HOME)

pwd
/opt/oracle/product
mkdir 11_gw

2.- Copiar la carpeta del patch p13390677_112040_platform_5of7.zip en la ruta /opt/oracle/product/11_gw

3.- Descomprimir la carpeta p13390677_112040_platform_5of7.zip

unzip p13390677_112040_SOLARIS64_5of7.zip

4.- Una vez que termine el unzip, se creará la carpeta gateways, ir a la carpeta 

cd geteways

5.- Exportar el DISPLAY

export DISPLAY=100.60.89:0.0

6.- Ejecutar el runInstaller

runInstaller




OUI--Next


OUI--Seleccionar el Directorio creado anteriormente





OUI--Cambiar el Name a OraGt10g_home1


OUI--Revision de prerequisitos





OUI--Seleccionar Gateway for Microsoft SQL Server


OUI--Proporcionar las credenciales de SQL Server










OUI--Ejecutar el root.sh







OUI--Configurar el LISTENER_DG4MSQL

















OUI--Finish




Una vez configurado el Gateway:

1.- Ir a la ruta network del nuevo home

cd /opt/oracle/product/11_gw/network/admin

2.- Configurar/Crear/Modificar el listener.ora

# listener.ora Network Configuration File: /opt/oracle/product/11_gw/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER_dg4msql =
 (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=100.60.9.120)(PORT=1522))
 )

SID_LIST_LISTENER_dg4msql=
  (SID_LIST=
      (SID_DESC=
         (SID_NAME=dg4msql)
         (ORACLE_HOME=/opt/oracle/product/11_gw)
         (PROGRAM=/opt/oracle/product/11_gw/bin/dg4msql)
      )
  )

#CONNECT_TIMEOUT_LISTENER = 0


3.- Configurar/Configurar/Modificar el tnsnames.ora

# This is a sample tnsnames.ora that contains the NET8 parameters that are
# needed to connect to an HS Agent

dg4msql  =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=100.60.9.120)(PORT=1522))
    (CONNECT_DATA=(SID=dg4msql))
    (HS=OK)
  )

4.- Ir a la ruta del protocolo dg4msql

cd /opt/oracle/product/11_gw/dg4msql/admin

5.- Configurar/Configurar/Modificar el listener.ora

# This is a sample listener.ora that contains the NET8 parameters that are
# needed to connect to an HS Agent

LISTENER_dg4msql =
 (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=100.60.9.120)(PORT=1522))
 )

SID_LIST_LISTENER_dg4msql=
  (SID_LIST=
      (SID_DESC=
         (SID_NAME=dg4msql)
         (ORACLE_HOME=/opt/oracle/product/11_gw)
         (PROGRAM=/opt/oracle/product/11_gw/bin/dg4msql)
      )
  )

#CONNECT_TIMEOUT_LISTENER = 0

6.- Configurar/Configurar/Modificar el tnsnames.ora

# This is a sample tnsnames.ora that contains the NET8 parameters that are
# needed to connect to an HS Agent

dg4msql  =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=100.60.9.120)(PORT=1522))
    (CONNECT_DATA=(SID=dg4msql))
    (HS=OK)
  )

7.- Ir a la ruta del home existente en $ORACLE_HOME/network/admin

En este caso particular contaba con un home existente de la version 10g

cd $ORACLE_HOME/network/admin

8.- Configurar/Configurar/Modificar el listener.ora

LISTENER_dg4msql =
 (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=100.60.9.120)(PORT=1522))
 )

SID_LIST_LISTENER_dg4msql=
  (SID_LIST=
      (SID_DESC=
         (SID_NAME=dg4msql)
         (ORACLE_HOME=/opt/oracle/product/11_gw)
         (PROGRAM=/opt/oracle/product/11_gw/bin/dg4msql)
      )
  )

#CONNECT_TIMEOUT_LISTENER = 0


9.- Configurar/Configurar/Modificar el tnsnames.ora

dg4msql  =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=100.60.9.120)(PORT=1522))
    (CONNECT_DATA=(SID=dg4msql))
    (HS=OK)
  )


10.- Volver a cargar el LISTENER_DG4MSQL

lsnrctl reload LISTENER_DG4MSQL


11.- Crear un public database link

CREATE public DATABASE LINK connsql CONNECT TO sa IDENTIFIED BY mypass1 USING 'dg4msql';


12.- Probar la conexión al dblink desde Oracle

select * from dbo.bdSistema@connsql;


Dudas/Comentarios aqui: