miércoles, 9 de septiembre de 2009

Arrancando oracle

Por alguna razón mi oracle no arranca así que cada vez que me conecto desde sql-plus me indica este mensaje:

ERROR:
ORA-01034: ORACLE not available

(Oracle no disponible)

Así que lo que hacemos es iniciar sql-plus con el usuario internal y si pide la contraseña colocamos oracle.
Desde la consola de ms-dos le damos sqlplus /nolog y posteriormente la instrucción connect internal si pidiera contraseña la proporcionamos.
 
Aparece el siguiente mensaje:
Connected to an idle instance.
Lo que quiere decir que oracle esta abajo o no disponible.

Opciones de arranque para oracle.
Oracle lo podemos arrancar pero puede no estar abierta.
Tenemos el comando STARTUP sin parametros arranca la base de datos normalmente.

STARTUP NOMOUNT arranca la base pero sin montarla normalmente usaremos esta opción para crear una nueva base de datos o crear archivos de control.

STARTUP MOUNT En este modo podemos llevar a cabo tareas de mantenimiento en oracle. La base de datos esta montada pero no abierta. Podemos renombrar data files, habilitar o deshabilitar el modo archive logging, renombrando, añadiendo o borrando redo log files o llevar a cabo una recuperación completa de la base de datos (full recovery).

STARTUP OPEN o STARTUP Este es el modo normal en que se inicia oracle, se monta y se abre la base de datos para trabajar normalmente. Oracle pone en linea o abre los data files y los ficheros redo log files para trabajar en caso contrario envia un mensaje de error y es entonces cuando hay que llevar a cabo un recover o una recuperación de nuestra base de datos.

Existe un modo especial cuando no podemos arrancar la base de datos y es forzar el arranque.
STARTUP FORCE. Usa esta opciñon si oracle no puede ser dada de baja normalmente en este caso da de baja la base y la renicia.

Un ejemplo de todo lo anterior:

E:\Documents and Settings\Administrador>sqlplus /nolog

SQL*Plus: Release 8.1.5.0.0 - Production on MiÚ Sep 9 16:28:44 2009

(c) Copyright 1999 Oracle Corporation.  All rights reserved.

SQL> connect internal /nolog
Connected to an idle instance.
SQL> Disconnected

E:\Documents and Settings\Administrador>sqlplus /nolog

SQL*Plus: Release 8.1.5.0.0 - Production on MiÚ Sep 9 16:31:08 2009

(c) Copyright 1999 Oracle Corporation.  All rights reserved.

SQL> connect
Enter user-name: internal
Enter password:
Connected to an idle instance.
SQL> STARTUP NOMOUNT
ORACLE instance started.

Total System Global Area  769337292 bytes
Fixed Size                    65484 bytes
Variable Size              70524928 bytes
Database Buffers          698673152 bytes
Redo Buffers                  73728 bytes
SQL> SHUTDOWN
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> STARTUP MOUNT
ORACLE instance started.
ERROR:
ORA-01017: invalid username/password; logon denied


ORA-01017: invalid username/password; logon denied
SQL> CONNECT INTERNAL
Enter password:
Connected.
SQL> STARTUP MOUNT
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> shutdown
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> STARTUP MOUNT
ORACLE instance started.

Total System Global Area  769337292 bytes
Fixed Size                    65484 bytes
Variable Size              70524928 bytes
Database Buffers          698673152 bytes
Redo Buffers                  73728 bytes
Database mounted.
SQL> SHUTDOWN
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.
SQL> startup open
ORACLE instance started.
ERROR:
ORA-01017: invalid username/password; logon denied


ORA-00000: normal, successful completion
SQL> connect internal
Enter password:
Connected.
SQL> startup open
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> shutdown
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> startup open
ORACLE instance started.

Total System Global Area  769337292 bytes
Fixed Size                    65484 bytes
Variable Size              70524928 bytes
Database Buffers          698673152 bytes
Redo Buffers                  73728 bytes
Database mounted.
Database opened.
SQL> startup force
ORACLE instance started.
ERROR:
ORA-01017: invalid username/password; logon denied


ORA-00000: normal, successful completion
SQL> connect internal
Enter password:
Connected.
SQL> startup force
ORACLE instance started.

Total System Global Area  769337292 bytes
Fixed Size                    65484 bytes
Variable Size              70524928 bytes
Database Buffers          698673152 bytes
Redo Buffers                  73728 bytes
SQL>

En la próxima entrada veremos como dar de baja la base de datos.


domingo, 6 de septiembre de 2009

Conectarse a oracle

Para poder accesar a oracle desde un equipo cualquier necesitamos instalar el cliente de oracle si accesamos desde el mismo equipo servidor de oracle no es necesario.

En Menu de programas tenemos Oracle- Oracle Home y tenemos la aplicacion Sql-Plus con la cual nos conectaremos a oracle se necesitan 3 parametros:
  1. usuario
  2. contraseña
  3. cadena conexión
Cuando llevamos a cabo la instalación de oracle se instala una base de ejemplo en este caso el user y pass son scott/tiger si accesamos desde el mismo servidor no es necesaria la cadena de conexión. Si accesamos desde un equipo cliente es necesario configurar esta cadena de conexión




En la carpeta donde instalamos el cliente de oracle (esto es para equipos cliente) tenemos el archivo tnsnames.ora que es un archivo que contiene información para poder accesar al servidor de oracle.
Se encuentra en la ruta:
C:\Oracle\Ora81\NETWORK\ADMIN
y se ve algo como esto:
-----

GLOBAL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = pc)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = global)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

-------
lo modificamos para que quede de esta manera:
-------
CadenaConectar =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = global)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )


--------

Tenemos un protocolo de red TCP y la ip o nombre de servidor (127.0.0.1) esta ip la cambiamos por el nombre del servidor o la ip donde se encuentre la base de datos; el puerto por defecto es 1521 y el nombre del servicio ó nombre de la base de datos es global.Lo que podemos observar es que la cadenaConectar es un nombre que nos indica como queremos que se llame la conexión a la base de Oracle (nada tiene que ver con el nombre de la base de datos). 


Esta se puede llamar contabilidadOracle,finanzasOracle,desarrollo,producción etc etc, esta cadena le es necesaria al cliente de Oracle Sql-Plus para trabajar así como a los lenguajes de programación. 


Si queremos accesar desde un lenguaje de programación en este caso Visual Basic 6.0 esta sería la pantalla de ejemplo:



Si la conexión fue exitosa en Sql-plus veremos la siguiente pantalla:

A partir de aquí ya podemos llevar a cabo consultas a la base de datos, ejemplo:
Select table_name from all_tables;
Select sysdate from dual;

Hasta aquí como conectarse a oracle.
Algunos de los problemas de conexión pueden ser que no este correctamente configurado el archivo tnsnames, que no tengamos los datos del servidor de oracle correctamente, el usuario y contraseña no sean los correctos o peor aun que la base de datos no este activa.








viernes, 4 de septiembre de 2009

Instalando oracle







Para llevar a cabo la instalación de oracle contamos con la versión 8.1.5 con la facilidad de instalación y rapidez en equipos sin tantas exigencias de hardware.



Instalando oracle en windows xp.
Iniciamos con el disco de instalación y se mostrará la pantalla siguiente:







Pulsamos el botón siguiente y se mostrará la pantalla siguiente.


Aquí podemos observar que en Origen tenemos la ruta donde se van a tomar los ficheros para la instalación de Oracle. Si tuvieramos problemas ajustamos la ruta origen para que sea ruteado correctamente el fichero products.jar. En el ejemplo el software lo tengo en una carpeta d:\oracle

El Nombre y la ruta destino será c:\oracle y pulsamos siguiente: 
En esta pantalla podemos ver los productos que deseamos instalar en este caso nos interesa instalar el gestor de base de datos así que tenemos seleccionada la primera opión, en caso de que necesitemos accesar a oracle desde un equipo que no sea el servidor donde reside oracle instalaremos el cliente
 de oracle.
Pulsamos el botón siguiente:



Esta pantalla nos muestra el tipo de instalación que deseamos típica, mínima o personalizada dejaremos la primera opción seleccionada.
Pulsamos siguiente:
Nos aparecerá una pantalla que nos preguntará donde queremos que resida la documentación de oracle tenemos dos opciones cd-rom o hard drive seleccionamos la que mas nos guste y pulsamos siguiente:

La siguiente pantalla nos muestra la identificación de nuestra base de datos o como se va a llamar es muy importante el nombre porque a la hora de accesar a oracle necesitamos saber como se llama la base de datos y cual es su identificador.


Para propositos de enseñanza el nombre será global y el identificador sid.
Pulsamos el botón siguiente:
Se nos mostrará una ventana con el resumen de las opciones seleccionadas pulsamos instalar 
y comenzará la instalación de la base de datos.


Al final de la instalación aparecerá una ventana de configuración de herramientas 
  • Configuración de la red con las opciones seleccionadas (por defecto en este caso)
  • Creación de la base de datos inicial
Al terminar de instalar las herramientas aparecerá una ventana con las cuentas de usuario y contraseñas por defecto de oracle.



Y la ventana de fin de instalación pulsamos el botón salir.

Y listo en poco menos de 20 minutos tenemos oracle instalado y funcionando.

El software de la base de datos oracle 8.1.5 lo tengo en un servidor de descarga, a las personas que envien un comentario a mi correo o escriban una entrada en el blog (del tipo constructiva, anedotica o con fines de enseñanza o por lo menos den las gracias si les sirvio esta entrada del blog) les enviare la ruta para descargar la base de datos y que puedan instalarla en su equipo.

En el sitio de oracle no se encuentra esta versión por estar descontinuada pero si pueden o tienen la posibilidad de descargar una versión mas actualizada solo comento que la versión oracle 11g mide algo asi como 1.7 gb y en cambio esta mide 270 mb (comprimida) y para los fines que necesitamos nos es mas que suficiente.

La próxima entrada modos de conexión a oracle o como accesar a la base de datos.


jueves, 3 de septiembre de 2009

ORACLE

Oracle es el gestor de  base de datos relacional mas utilizado en ambiente empresarial. Oracle tambien es conocida como la base de datos asi que nos refererimos a ella como tal.

La idea de este blog es conocer mas acerca de esta base de datos y repasar algunos temas que sean necesarios para conocer mas acerca de Oracle y llevar a cabo nuestro trabajo con mayor profesionalidad.

Algunos temas podrian ser:
  • Instalación
  • Respaldo
  • Recuperación
  • PL/SQL 
  • Etc.
Para aprender acerca de oracle utilizaré una versión 8.15 esto porque el disco de instalación es pequeño y la instalación es rápida y funciona sin ningún problema en multiples entornos de Windows, el proposito es aprender y conocer mas acerca de Oracle y lo mismo que aplica a esta versión aplica a todas las versiones. Obviamente las últimas versiones tienes características mas avanzadas las cuales no veremos de momento.

Algunas de sus características que me han gustado es su rapidez y fiabilidad en entornos de producción.
Contra lo que pareciera el respaldo y la recuperación son relativamente simples; se tiene la facilidad de hacer respaldos en "caliente" teniendo la correspondiente configuración habilitada (la cual veremos mas adelante).

Mi perfil es desarrollador de aplicaciones; debido a que he trabajado constantemente con oracle surgió la inquietud de conocer un poco mas de oracle no solo a nivel desarrollo sino configuración e instalación, respaldo, recuperación etc etc

Así que el proposito del blog es que los desarrolladores de aplicaciones o administradores de base de datos conozcan o den un repaso en el ambiente de oracle, conocer un poco mas acerca de porque o como funciona oracle nos hara mas facil la vida informaticamente hablando. 

La versión 8.1.5 la tendran en un servidor de descarga (rapidshare) en 6 pedazos de 50 mb. aprox. dando un total de 270 mb. Con este oracle es posible realizar multitud de opciones muy interesantes como por ejemplo Base de datos Stand By en la cual tenemos una segunda base "clon" de producción  y en caso de que se cayera la primera con algunos ajustes nuestro "clon" o copia entraría rapidamente a producción (los detalles los veremos mas adelante).

NOTA! AVISO! WARNING! (o como se diga)
Si no tienes comentarios interesantes acerca del tema, o con propositos constructivos tus mensajes no seran bien recibidos, si tienes preguntas del tipo: tengo que aprender oracle para mañana porque mi jefe me lo pide... y necesito que alguien me ayude.... este no es el blog correcto, tengo años con cuestiones de informática y la experiencia me dice que se requiere dedicación y paciencia para aprender algo.

Así que a la gente que le interese y tenga deseos de aprender sea bienvenida.

La idea de este blog es permanecer constantes en el mercado o ambiente laboral, afortunadamente tengo cierta facilidad para aprender y entender de estas cosas (si la facilidad se entiende que instala 50 veces un software hasta que sepas que fallo) así que un blog para estar al corriente no es mala idea.

Para los que esten un poco entendidos cuanto cuesta capacitarse por un poco de comprensión y esfuerzo en oracle vamos a capacitarnos todos a un precio asequible a nuestros bolsillos, el precio como todo en la vida es dedicación y constancia, a cambio el trabajo no nos faltará o en su defecto los que tengan trabajo este sera mas llevadero al conocer las herramientas con las que trabajamos o porque no a aspirar a algo mejor.

Comentarios y sugerencias a mi correo.
En la medida de lo posible intentare contestar a sus correos o en su defecto publicar una entrada en el blog

aprendiendo.software@gmail.com