Backups Oracle

Soy programador en Delphi y en esta ocasión estoy desarrollando una aplicación con bases de datos Oracle 8i y mi pregunta es: ¿Cómo hago para realizar copias de seguridad? ¿Sabes dónde conseguir información al respecto?.

3 respuestas

Respuesta
1
¿Copias de seguridad de una base de datos Oracle?
Oracle lleva dos programitas para realizar e importar copias de seguridad: exp e imp
Para más información encontrarás toda la documentación en http://otn.oracle.com
El registro es gratuito.
¿En la versión 8i están estos comandos?. ¿Se puede hacer desde el Sql Plus? ¿Se puede hacer desde una consulta directamente para poder realizarla desde delphi?. Gracias de nuevo
Perdona, no me he explicado bien... no son comandos de SQL. Son dos programas ejecutables (exp.exe, imp.exe) que debes tener en el directorio ORACLE_HOME\bin (entiéndase ORACLE_HOME por el directorio donde tienes instalado el cliente de Oracle)
Ajam, fantástico. Perdona que te moleste de nuevo pero necesito una aclaración extra que demuestra si aún no ha quedado claro mi total ignorancia sobre el tema: ¿Qué tipo de copias de seguridad saca?. ¿Las copias las realiza en archivos independientes o por contra las integra en la estructura de oracle? ¿Cómo compiaria estos backups en una unidad de cd, por ejemplo?. ¿Funcionaría importar (con imp) desde este cd?. Gracias de nuevo y perdona si te he echo perder demasiado tiempo.
Estas utilidades crean archivos externos a la base de datos, con el nombre y en el directorio que tú decidas.
Introducir estos ficheros sobre un cd sería como introducir un archivo cualquiera.
La importación funcionaría perfectamente desde un cd.
Respuesta
1
Para nada es molestia, bueno, preparate:
Ara este caso lo mejor es un export de todo el esquema, en caso de caída lo único que debes hacer es un import.
El export/import es una herramienta cliente de Oracle, es decir, que con cualquier cliente que tengas instalado viene (la propia base de datos instala un cliente).
Hay dos formas de hacer el export (ambas por linea de comando), una es especificando los parámetros en la misma linea de comandos y la otra creando un fichero de parámetros (esta para mi es la mejor, así siempre tienes los parámetros y lo puedes reutilizar).
Parámetros para el export hay a montones, te voy a comentar los que tu nesecitarías para guardar el esquema completo y si quieres ahondar tu, ya te paso los links que te comente.
Edita un fichero de texto (EXP. PAR, PEJ.) Y esribe los parámetros:
File=path\ficheroexp.dmp
log=path\ficheroexp.log
owner=nombre_esquema
consistent=y
Explicación: File: dice la ruta y el fichero que va a contener todo.
log: la ruta y fichero de log del export
Owner: esquema
Consistent: que el export sea consistent.
Una vez hecho esto ejecutas desde la linea de comandos:
exp user/password@sid parfile=exp.par( si no esta en la misma ruta se la pones delante)
El usuario y password debe tener permisos de export, los administradores por defecto de Oracle te valen (system o sys, mejor system).
Con esto ya tienes el backup, en caso que necesites recuperar tienes que realizar el import, el proceso es básicamente el mismo, creas un fichero con los parámetros y lo ejecutas igual. Ten en cuenta que esto no es incremental, es decir, si tienes una tabla con 5 registros y haces un import sin borrar la misma tabla, tendrás al final 10 registros (se pueden hacer también exports de tablas individuales), entonces, en caso que quieras recuperar todo, borras el esquema anterior, creas un usuario con las mismas características (de permisos, cuota sobre tablespaces... etc) y haces un import sobre ese nuevo usuario de la forma:
Edita un fichero imp.par:
File=path\ficheroexp.dmp
log=path\ficheroimp.log
fromuser=esquema_viejo
touser=esquema_nuevo
ignore=y
Date cuenta de varias cosas, el file es el mismo del export( evidentemente), fromuser es el esquema origen, touser es el nuevo, pueden o no ser el mismo, si el nombre del esquema no es crucial puedes importarlo con otro nombre antes de borrar el viejo (que se supone que por alguna causa esta inservible, como haber perdido unas tablas o algo así).
Ignore=y significa que si encuentra algún fallo siga adelante y no se pare con el mismo, esto te obliga a mirar el log una vez terminado para verificar que todo se ha hecho bien, pero es nesecario para que por fallos tontos (por ejemplo que no se cree una vista) se para el import. Revísalo al final y confirma que si hay errores son ignorables o controlados (p. Ej. Cuando haces un import de una base de datos completa el tablespaces system ya esta creado, pero el import intenta recrearlo, si no le pones el ignore, el import se pararía, a pesar que el error es controlado)
Si tienes dudas comenta.
La idea es hacer un backups de sólo un esquema en concreto ( la base de datos en cuestión que utilizo ). Me han comentado sobre exp o imp, pero no sé si es la opción más correcta. Gracias por dedicarme unos minutos, espero que no sea demasiado molestia para ti.
Je je, no veas. He utilizado esto que me dices pero no desde un archivo sino directamente desde la línea de comandos pasándole parámetros ya que debo ejecutar esto desde delphi. Muchas gracias por compartir tus conocimientos y sobre todo por tu amabilidad ;-) .
Las copias de seguridad en Oracle son todo un mundo, te paso unos links donde puedes encontrar información de sobra sobre todo, pero por ahora dime que es lo que quieres, te digo como hacerlo y luego amplias conocimiento.
Bueno, en principio que es lo que quieres hacer, ¿un backup de toda la base de datos o sólo de un esquema?.
Por si no conoces la diferencia, un esquema es, por así decirlo, lo que en Access se llamaría base de datos, es decir, el conjunto de tablas, indices, procedimientos y funciones almacenadas... etc que componen la aplicación (si no me explico, te lo puede detallar más).
Respuesta
1
Puedes encontrá toda la documentación de Oracle en Internet.
http://otn.oracle.com/documentation/oracle8i.html
Puedes usar comandos de export o hacer copias en frio de los datafiles (con la BD abajo)
La sentencia del export, desde la ventana de comandos es:
exp system/manager@base file=full.dmp full=y log=full.log compress=y
Para importar los datos utilizas el comando imp.
En la version 8i creo que el comando exp80 ...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas