miércoles, 25 de febrero de 2015

Enterprise Manager : Como cambiar el tiempo de timeout de la sesion

Es muy común que estemos trabajando con Enterprise Manager y nos cambiamos de pantalla a la terminal a hacer verificaciones y cuando queremos volver a Enterprise Manager nos obliga a volvernos a loguear, esto aunque es una medida de seguridad puede resultar bastante molesto y hacernos perder tiempo sobre todo en situaciones criticas.
En OEM 11gR2 para poder cambiar el valor del idle time out tenemos que editar el archivo
$ORACLE_HOME/<your_hostname>_<SID>/sysman/config/emoms.properties
y agregar al final 
oracle.sysman.eml.maxInactiveTime=minutos

por ejemplo aumentarlo a dos horas 
oracle.sysman.eml.maxInactiveTime=120

grabamos al salir el archivo y reiniciamos el servicio
emctl stop dbconsole
emctl start dbconsole





SQLPLUS : Como configurar el editor

Cuando queremos editar en sqlplus debemos ejecutar el comando ED o EDIT y  nos abren el editor default del sistema operativo.

SQL>ed

Si queremos configurar que edite con el vi en unix-linux podemos configurar en nuestra sesion de sqlplus 

SQL> define_editor =vi

Si queremos dejar el editor configurado para que lo tome por default debemos agregar en el archivo $ORACLE_HOME/sqlplus/admin/glogin.sql  
define_editor ='vi'

Cuando ejecutamos el editor nos edita la ultima sentencia ejecutada

Ejemplo:
SQL>define_editor =vi
SQL>select status from v$instance;
SQL>ed

abre el vi con la sentencia 
select status from v$instance;

ejecutamos los comandos de vi y salimos por ejemplo con :x  graba y sale
y volvemos a la interface de SQLPLUS

SQL>


lunes, 22 de diciembre de 2014

Como Configurar Heterogeneous Services

El objetivo es poder consultar desde una base de datos Oracle 10gR2 en HP-UX  a una tabla que esta en  SQL SERVER 2008 en Windows.
En el SQL SERVER ya se creo un usuario para conexión usrsql. Este usuario tiene que tener permisos de lectura a las tablas que se necesitan acceder en forma remota desde Oracle. En este ejemplo la tabla clientes.
Datos de este Ejemplo :
Servidor Windows : srvwin1
Servidor HP-UX : srvhpux
Usuario SQLSERVER: usrsql
Tabla: clientes

ODBC Data Source Name : TEST
Usuario Oracle :usrapp

1 - Ingresar al Servidor Windows con “Conexión a Escritorio Remoto”
2 - Configurar DATA SOURCE ODBC
     2.1 -Crear un DATA SOURCE NAME, en este ejemplo se crea con el nombre TEST

2      2.2 - En la solapa SYSTEM DSN se configura el usuario de conexión,  que puede autenticar con el login de Windows o con un usuario definido en la base, en este ejemplo se usa “sa”  
  
2.3 - Probar la conexión ODBC al servidor SQL SERVER

- 3- En el servidor hp-ux srvhpux conectarse a la base Oracle y verificar que el parámetro GLOBLA_NAMES este en FALSE

  $> sqlplus / as sysdba


SQL> select name, display_value from v$parameter where name='global_names';

NAME                                         DISPLAY_VALUE
------------------------------------------------------------------------
global_names                                  FALSE

Si esta en TRUE hay que modificar a FALSE.

-          4- En el Servidor Windows : Instalar Oracle Database Server con la opción Software Only en el servidor Windows

-       5 -En el Servidor Windows : Copiar el archivo $ORACLE_HOME/hs/admin/initdg4odbc.ora con el nombre  initDataSourceName.ora en este ejemplo initTEST.ora y modificar los parámetros
"HS_FDS_TRACE_LEVEL = ".Cambiarlo a  OFF
"HS_FDS_CONNECT_INFO = ". Cambiar por el Data Source Name
Ejemplo:
initTEST.ora
# This is a sample agent init file that contains the HS parameters that are
# needed for the Database Gateway for ODBC

#
# HS init parameters
#
HS_FDS_CONNECT_INFO = TEST
HS_FDS_TRACE_LEVEL = OFF

#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>


6 - En el servidor Windows en $ORACLE_HOME\network\admin :
Copiar $ORACLE_HOME\network\admin\samples\listener.ora en $ORACLE_HOME\network\admin y configurar de la siguiente forma:
listener.ora
# This is a sample listener.ora that contains the NET8 parameters that are
# needed to connect to an HS Agent

LISTENER =
 (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
 )

SID_LIST_LISTENER=
  (SID_LIST=
      (SID_DESC=
         (SID_NAME=TEST)
         (ORACLE_HOME=C:\oracle\product\11.2.0\dbhome_1)
         (PROGRAM=dg4odbc)
      )
  )

#CONNECT_TIMEOUT_LISTENER = 0

7 - Ejecutar desde una ventana de comandos : cmd
lsnrctl start si no estaba activo y si estaba activo lsnrctl reload


8 - En el servidor HP-UX  agregar en $ORACLE_HOME/network/admin/tnsnames.ora

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

TEST  =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=srvwin1)(PORT=1521))
    (CONNECT_DATA=(SID=TEST))
    (HS=OK)
  )

9 - Probar que quedo bien configurado desde Servidor HP-UX 
$>tnsping TEST

TNS Ping Utility for HPUX: Version 10.2.0.5.0 - Production on 09-OCT-2013 12:27:31

Copyright (c) 1997,  2010, Oracle.  All rights reserved.

Used parameter files:
/u01/app/oracle/product/10.2/Db_1/network/admin/sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=srvwin1)(PORT=1521)) (CONNECT_DATA=(SID=TEST)) (HS=OK))
OK (20 msec)



10 - Crear en el la base de datos Oracle el database link wincnx  privado del usuario usrapp
sqlplus / as sysdba
SQL> connect usrapp/usrapp
SQL> create database link wincnx
  2  connect to usrsql identified by xxxxx
  3  using ‘TEST’;

11- Probar conexion
select * from clientes@wincnx;














lunes, 20 de octubre de 2014

Como deshabilitar Case Sensitive

A partir de la versión de base de datos Oracle 11 viene habilitado por default la verificación case sensitive en la password de los usuarios. O sea si la password es "PRUEBA" no se conecta con "prueba" en minúscula. Hay que respetar las mayúsculas y minúsculas y escribirlo tal cual se genero.
Para deshabilitar el case sensitve existe un parámetro de la instancia SEC_CASE_SENSITIVE_LOGON viene por default seteado en TRUE y se puede cambiar a FALSE. Es un parámetro dinámico, se puede cambiar en cualquier momento, no es necesario reiniciar la base de datos para que tome el cambio.


  • Ejemplo 1. Como deshabilitar CASE SENSITIVE

Nos logueamos como sysdba
$sqlplus / as sysdba

Verificamos el valor del parámetro 
SQL> show parameters sec_case
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon             boolean     TRUE


Lo deshabilitamos
SQL> alter system set sec_case_sensitive_logon=FALSE;
System altered.

  • Ejemplo 2.  Como funciona con el parámetro en TRUE y en FALSE
Nos logueamos como sysdba
$sqlplus / as sysdba

Verificamos el valor del parámetro:
SQL> show parameters sec_case
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon             boolean     TRUE

Creamos un usuario de prueba con permiso de create session :
SQL> create user prueba identified by Abeja;
User created.
SQL> grant create session to prueba;
Grant succeeded.

Probamos ingresar con minuscula
SQL>  conn prueba/abeja
ERROR:
ORA-01017: invalid username/password; logon denied

Probamos ingresar respetando mayusculas y minusculas
SQL> conn prueba/Abeja
Connected.


Como esta por default activo el CASE SENSITIVE solo nos podemos conectar cuando escribimos la password respetando mayúsculas y minúsculas.

Probamos deshabilitando CASE SENSITIVE

Nos logueamos como sysdba
$sqlplus / as sysdba

Lo deshabilitamos
SQL> alter system set sec_case_sensitive_logon=FALSE;
System altered.

SQL>  conn prueba/abeja
Connected.

Como deshabilitamos el CASE SENSITIVE nos podemos conectar con la password escrita  en mayúsculas o minúsculas que es indistinto.


lunes, 5 de mayo de 2014

Como habilitar ARCHIVELOG Mode

Verificar que la base de datos no tiene habilitado el modo ARCHIVELOG

SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /u01/app/oracle/product/11.2.0/Db_1/dbs/arch
Oldest online log sequence     416
Current log sequence           418


Tambien se puede verificar con el siguiente query
SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG


Antes de habilitarlo tenemos dos opciones para dejar los archivelogs :
1 - Usar  FRA (Fast Recovery Area) 
2 - Usar un path especifico 

Opción 1 -
Usando FRA. Es una alternativa a partir de Oracle 10g
1 - Verificar si esta configurada en los parametros db_recovery_file_dest y db_recovery_file_dest_size sino configurarla.
SQL> show parameters recovery
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------
db_recovery_file_dest                string      
db_recovery_file_dest_size           big integer 0
recovery_parallelism                 integer     0


Configurar el FRA. Darle un tamaño y el path.
SQL> alter system set db_recovery_file_dest_size=10G;
System altered.

SQL> alter system set db_recovery_file_dest='/FRA';
System altered.

Para habilitar Archivelog Mode hay que bajar la base, montarla, modificar y abrir la base.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 8985837568 bytes
Fixed Size                  2177168 bytes
Variable Size            6140462960 bytes
Database Buffers         2818572288 bytes
Redo Buffers               24625152 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.

SQL> alter database open;
Database altered.

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     416
Next log sequence to archive   418
Current log sequence           418


Opción 2 - 
Asignar una ubicación, en este ejemplo /archives
SQL> alter system set log_archive_dest_1='LOCATION=/archives';
System altered.

Ver default formato de archives
SQL> show parameters log_archive_format

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------
log_archive_format                   string      %t_%s_%r.dbf

Cambiar el formato en el spfile, no se puede cambiar dinamicamente. Va a tomarlo la próxima vez que reiniciemos la instancia.
SQL> alter system set log_archive_format='ORCL_%t_%s_%r.arc' scope=spfile;
System altered.


Para habilitar Archivelog Mode hay que bajar la base, montarla, modificar el modo de ARCHIVELOG y luego abrir la base.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 8985837568 bytes
Fixed Size                  2177168 bytes
Variable Size            6140462960 bytes
Database Buffers         2818572288 bytes
Redo Buffers               24625152 bytes
Database mounted.
SQL> alter database archivelog;

Database altered.

SQL> alter database open;
Database altered.

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /archives
Oldest online log sequence     416
Next log sequence to archive   418
Current log sequence           418