Archivar paraBase de Datos

Enlazar apex con base de datos Oracle

Bueno pues ahora me ha tocado trabajar con apex (application express) no confundir con Oracle XE, apex es una herramienta de Oracle que se integra con la base de datos para poder crear informes, estadísticas….y demás cosas que todavía no he podido explorar jeje ya que llevo día y medio trabajando con ella, pero bueno de momento para poder trabajar con cualquier base de datos que tengamos en la red o en nuestro equipo, tendremos que realizar una conexión para ello seguiremos los siguientes pasos.

  • En el home (la ventana principal) le damos a SQL Workshop
  • Desplegamos la pestaña de Object Browser –> create –> Database Link
  • Comenzamos a introducir datos, para facilitarlo miramos el tnsnames.ora de la bbdd a la que le vayamos a realizar el enlace
  • Aquí pondré parámetros de ejemplo

Database Link Name –> Ramon.world

Connect To Schema –> ramon

Password –> la pass del usuario ramon

Remote Hostname or IP –> ip del equipo que tiene la base de datos que va a ser enlazada

Remote Host Port –> a no se que lo tengáis cambiado en el tnsnames.ora del servidro de bbdd es 1521

SID or Service Name –> elegimos el sid que tenga la base de datos en el tnsnames.ora

Pues si somos admindistradores en la herramienta de apex pulsamos siguiente y a continuación le damos a create, se nos creará el link de la base de datos, para consultar cualquier tabla, sería de la siguiente manera:

select * from tabla@nombre_enlace en mi caso sería select * from tabla@Ramon.world

Rman en Oracle

Anteriormente explique como activar el modo archivelog para poder realizar las copias de nuestra base de datos en caliente mediante RMAN, pues ahora iremos paso por paso para explicar como realizar estas copias.

Para comenza con RMAN abriremos una consola de ms-dos en nuestro equipo: Inicio –> Ejecutar y escribimos cmd y aceptamos.

Para comenzar escribiremos

  • rman

A continuación debemos de conectarnos a la base de datos a la cual queremos realizar nuestra copia de seguirdad

  • connect target nombre_usuario/contraseña@nombre_base_datos;

Este comando nos devolverá lo siguiente

  • conectado a la base de datos destino: XE (DBID=2475292301)

Pues realizados estos pasos, pulsamos intro para dejar una línea en blanco y comenzar a introducir comandos para realizar nuestra copia de seguridad en caliente

Comenzamos

run {

Introduciremos la siguiente línea y pulsaremos INTRO:

allocate channel C1 device type DISK format ‘c:/temp/csbd_%d_%u_%t.bak’;

donde

  • “C:/temp” será la carpeta de destino de la copia (debe existir previamente).
  • %d: le indicamos con este parámetro que nos incluya el nombre de la base de datos.
  • %u: le indicamos que incluya el identificador de la base de datos.
  • %t: le indicamos que incluya la fecha y hora de creación del fichero.

Introduciremos la siguiente línea y volvemos a darle al INTRO:

backup database include current controlfile plus archivelog delete all input;

Introduciremos la siguiente línea y pulsaremos INTRO, tras realizar este ultimo INTRO nuestra copia de seguiridad se iniciará:

}

El script en nuestra pantalla de comandos quedará así:

run {
2> allocate channel C1 device type DISK format ‘c:/temp/csbd_%d_%u_%t.bak’;
3> backup database include current controlfile plus archivelog delete all input;

4> }

Al comenzar, Oracle nos devolverá el resultado de haber introducido este comando

Al finalizar nos aseguramos que la copia a sido correcta viendo si en la carpeta de destino a la que le hemos dicho que vayan nuestro ficheros aparecen estos allí.

Activar/Desactivar Archivelog de Oracle

El tener activado el Archivelog es el primer paso para poder realizar una copia en caliente de nuestra Base de Datos mediante Rman, a continuación explicaremos como activar/desactivar esta opción para tener otra opción más de realizar copias de seguridad de nuestra Base de Datos, aquí una pequeña explicación del modo archivelog.

El modo archivelog de una base de datos Oracle protege contra la pérdida de datos cuando se produce un fallo en el medio físico.

  1. Se puede realizar una copia de seguridad mientras la base de datos está levantada.
  2. Con este modo de base de datos se puede restaurar una copia de seguridad de los archivos dañados utilizando estos archivos para actualizar los archivos mientras nuestra base de datos está levantada.
  3. Se puede recuperar la base de datos en un número de cambio del sistema específico.
  4. Se puede restaurar la base de datos en un punto específico en el tiempo.
  5. Teniendo en cuenta estas características básicas del modo archivelog de base de datos ORACLE, vamos a exponer en este documento cómo se activa y cómo se desactiva.

Alguna de las consecuencias que tiene desactivarlo son las siguientes:

  1. Las copias de seguridad ya no se pueden hacer on-line (habría que aplicar otro tipo de copias de seguridad).
  2. No se podrá recuperar la base de datos en un tiempo concreto.

Lo primero que tenemos que saber si nuestra base de dato tiene activo o no el Archivelog, para verlo:

- Entramos en la consola de sqlplus e introducimos el siguiente comando  archive log list, lo que nos dirá si tenemos o no activado el archivelog y si el archivado automático está funcionando

ACTIVACIÓN DEL ARCHIVELOG

- Para activar el modo archivelog, el init.ora debe de estar arrancado con los siguientes parámetros.

log_archive_start = true
log_archive_dest_1 = “location=/database/archivelog/bbdd REOPEN=5″
log_archive_format = arch_%t_%s.arc

- Si la base de datos está funcionando y esos parámetros están en el init.ora, nos conectamos a la base de datos y la paramos con un

shutdown immediate

- A continuación montamos la base de datos:

startup mount

- Cuando montamos la base de datos ejecutamos el siguiente comando:

alter database archivelog

- Despues abrimos nuestra base de datos y activamos el archivado automático

alter database open

alter system archive log start

DESACTIVACIÓN DEL MODO ARCHIVELOG

Para desactivar el modo archivelog, realizamos los siguientes pasos:

- Nos conectamos a la base de datos y la paramos, despues de pararla la montamos

shutdown immediate

startup mount

- Desactivamos el modo archivelog

alter database noarchivelog

- Abrimos la base de datos

alter database open

- Desactivamos el archivado automático

alter system archive log stop

Export e Import en Oracle

A continuación describiremos la forma de realizar un Export/Import en nuestro Oracle, probado en la versión 9i y a funcionado sin problemas ninguna, ante todo tendremos que saber que es esto de Export/Import

¿Que es un export/import en Oracle?

Export/Import es una utilidad de Oracle para realizar backups lógicos de Oracle ( y luego poderlos restaurar ). Esto significa que copian el contenido de la BD pero sin almacenar la posición física de los datos. Para realizar estas operaciones la base de datos tiene que estar abierta.

Para crear el fichero de backup se utiliza la utilidad export y para importar el contenido o recuperar la base de datos se realiza import.

Se realiza en los siguientes casos:

  1. Para realizar backups de bases de datos
  2. Para corregir “Row Migration & Row Chaining”
  3. Detectar alguna corrupción en la base de datos, puesto que al hacer el export se lee toda la bd.
  4. Para “migrar” una base de datos a otro servidor

EXPORT

Comenzemos a ver como se realizaria un export para nuestra base de datos.

- Podemos realizar una copia completa de la base de datos mediante la siguiente orden

$exp file=/oracle9/export_orasite.dmp full=yes log=/oracle9/log/export_orasite.log buffer=1000000

file=/oracle9/export_orasite.dmp > Nombre y ubicación del archivo del export ( el usuario oracle tiene que tener permisos para escribir ahi. La extensión de este archivo es dmp.

full=yes –> Con esto indicamos que el export es completo, todos los esquemas de la base de datos y sus datos permisos, privilegios ..

log=/oracle9/log/export_orasite.log –> fichero para tener el log del export, el usuario oracle también tiene que tener permisos en ese directorio para escribir.

buffer=1000000 –> reservamos buffer para la operación.

- Copiando las tablas especificas de un usuario

$exp scott/tiger file=orasitescott.dmp tables=(emp,dept) buffer=1000000

Realizando el export de las tablas que tiene el usuario scott

- Copiando tablas de un usuario con una condición especifica

$exp scott/tiger file=c:\orasitempleados.dmp tables=emp query=\”where deptno=10\”

Con query espeficificamos una condición para realizar el export de esa tabla

IMPORT

- Importar todo el archivo exportado

$imp system/manager file=c:\orasitefull.dmp full=yes ignore=yes log=c:\orasite\log\import_log.log buffer=1000000

Importamos con el usuario system que tiene permisos para importar el archivo orasitefull.dmp dejando un log de dicha importación en import_log.log reservando un buffer de 100000

- Importar una tabla de un usuario concreto

$imp scott/tiger file=orasitempleados.dmp fromuser=scott touser=scott tables=dept

Importamos del archivo orasitempleados.dmp sólo del usuario scott de ese archivo al esquema del usuario scott la tabla departamento

Existe la opcion de realizar import y export interactivo, esto es que en la consola introducimos el comando imp (para import) o exp (para export) y nos irá pidiendo parámetros para la acción a realizar, usuarios, tablas, permisos……

Instalacion Oracle 10g XE en Linux

Bueno pues vamos a ir paso por paso para instalar Oracle 10g XE en nuestro sistema Linux.

Primero antes de todo nos ponemos como root, mediante su o si utilizamos Ubuntu que es mi caso mediante sudo -s

Editamos nuestro fichero de repositorios mediante

# nano /etc/apt/sources.list

Y le añadimos la siguiente línea

deb http://oss.oracle.com/debian unstable main non-free

Ahora nos tenemos que descargar las llaves del repositorio mediante

wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -

A continuación realizamos un #aptitude update, para actualizar nuestros repositorios y sincronizarlos, luego instalamos nuestra version de oracle.

sudo apt-get update | sudo apt-get install oracle-xe-universal

Se tendra que descargar 262 Mb, una vez descargados nos disponemos a terminar de configurar nuestro Oracle mediante el siguiente comando

sudo /etc/init.d/oracle-xe configure

Aqui le damos a la configuracion que nos pregunta por defecto o sea puertos y demas cosas intro…., salvo a la hora de ponerle contraseña al sys y al system.

Una vez terminado nos reiniciara el servicio y a podemos disponer de nuestro Oracle en Linux