Transferencia de bases de datos entre sistemas gestores
1. 1. Transferencia de datos 3. Transferencia en SQL y
Oracle
2. Estrategias a la hora de
transferir 4. Herramientas gráficas
5. Transferencia en
Microsoft Access 2010
• Alexandru Milea
• Isabel María Fernández Reche
• Ramón Jesús Suárez Pérez
2. La tarea transferir bases de datos engloba:
Transferencias completas de base de datos.
Transferencias parciales (tablas, datos…).
Actualizaciones de registros.
Transferencias remotas.
Se diferencia de la importación o exportación en que no
necesita copiar el esquema de la base de datos.
Conjunto de metadatos que describen la
estructura de una base de datos, en un
lenguaje formal soportado por un
Sistema Gestor de Base de datos.
Se define en el diccionario de datos.
• Alexandru Milea
• Isabel María
Fernández Reche
• Ramón Jesús
Suárez Pérez
3. Las bases de datos pueden transferirse
de dos formas:
Modo sin conexión
o La base de datos está apagada.
o Transporte de datos en diferentes archivos.
o Hasta que el proceso no finaliza no se tiene acceso
a los datos.
Modo en línea
o La base de datos permanece activa.
o Transferencia en tiempo real (algo más lenta).
o Los usuarios pueden tener acceso a los datos que
se han transferido. • Alexandru Milea
• Isabel María
Fernández Reche
• Ramón Jesús
Suárez Pérez
4. Conjunto de ideas y técnicas que debemos de tener en
cuenta a la hora de llevar a cabo una determinada tarea.
Para llevar a cabo una transferencia de base de datos hay
que tener en cuenta:
Idea de la transferencia que se desea realizar.
Modo en la cual la realizaremos.
Las limitaciones del sistema gestor.
Versión del sistema gestor.
Problemas que se nos pueden presentar.
5. Copia directa de data files*
Transmite una base de datos de forma sin conexión.
Con algunos sistemas gestores este método puede ser
peligroso para la integridad de los datos.
Este método puede utilizarse con cualquier sistema
gestor de base de datos, aunque es recomendable no
utilizarlos con sistemas gestores complejos con un alto
nivel de seguridad.
Data file*: Ficheros de datos
donde se almacena la
información de las bases de
datos de forma física.
6. Copia directa de data files
La sentencia SQL para conocer el lugar de
almacenamiento de los “data files” en Oracle o MySQL es:
SELECT FILE_NAME FROM DBA_DATA_FILES;
A tener en cuenta:
Utilizar en mismo sistema gestor de base de datos.
Versión del producto.
7. Import / Export (DataPump)
No está destinado a fines de transmisión de bases de
datos, aunque puede usarse como tal.
Este tipo de estrategia, normalmente está destinado a
copias de seguridad.
Su funcionamiento es hacer un export del usuario de la
aplicación y se importa en la otra base de datos junto
con sus datos.
9. Import / Export (DataPump)
Permite hacer export de versiones anteriores a la nueva base de
datos.
Necesita disponer de al menos el mismo espacio en disco que la
base de datos para poder realizar la exportación.
Transferencia de bases de datos grandes lenta.
(No apto para bases de datos de más de 20GB)
10. RMAN Duplicate (Recovery Manager)
Utilidad de Oracle para realizar backups/restore.
Una opción que es muy interesante es el “duplicate” y como su
nombre lo dice duplica una base de datos, aunque este duplicado
puede volcarse a otro servidor.
Esta utilidad hace un backup de la base de datos, una vez
guardado, el resto del trabajo se hace en el servidor con el
software de Oracle instalado.
11. Copia a nivel de SAN
Mecanismo ideal para transferencia de bases de datos de gran
tamaño (GB a TB+).
Copia realizada a nivel de hardware/discos.
Equipos conectados directamente en un SAN mediante un switch.
Procedimiento realizado mediante el Sistema Operativo.
Servidores de almacenamiento que
permiten el acceso a discos directamente
Fases de la transmisión: desde la red, mediante una conexión vía
switc
o Se indican los tablespaces.
o Base de datos en modo Backup.
o Se realiza la copia a nivel de hardware.
o Se desactiva el modo backup de la fuente.
o Se realiza un recover para que la base de datos sea funcional.
12. SQL*Plus (Interprete de comandos SQL)
SQL*Plus es un intérprete SQL de línea de comandos básico con algunas
opciones de edición y formateo de resultados que nos proporciona
ORACLE para interactuar con la base de datos.
13. Copia de datos y estructura de una tabla con
(CREATE TABLE)
En Oracle, podemos utilizar una sentencia que copiará la estructura y
los datos que contiene una tabla determinada:
CREATE TABLE nombre_tabla_nueva AS (SELECT * FROM
nombre_tabla_original);
El único inconveniente es que la sentencia no creará las claves, índices y
triggers.
Disparador. Es un procedimiento que se
ejecuta cuando se cumple una
determinada condición establecida al
realizar una operación.
14. Copia de registros desde otra tabla
(INSERT - INTO - SELECT)
Esta sentencia nos ofrece la posibilidad de copiar determinados registros
de una tabla de una base de datos determinada, en una nueva tabla
completamente independiente sin la necesidad de hacer una copia
completa de esta.
INSERT INTO tabla_destino (campo1destino,campo2destino)
SELECT campo1origen, campo2origen FROM tabla_origen;
Especificando los diferentes campos, podemos discriminar ciertos
datos que no consideremos necesarios en la nueva tabla.
15. Copia de registros desde otra tabla
(INSERT - INTO - SELECT)
Ejemplo:
Tenemos dos tablas con la siguiente estructura:
Tabla: destino
Campos: id_usuario, nombre_usuario, apellido_usuario.
Tabla: origen
Campos: id_cliente, nombre_cliente, apellido_cliente, id_pais.
Al no especificar los
INSERT INTO tabla_destino campos de destino, los
SELECT id_cliente, nombre_cliente, apellido_cliente datos copiados del
FROM origen [ WHERE id_pais=34]; origen serán
insertados en orden.
Con WHERE podemos especificar
restricciones. En este caso únicamente
queremos añadir aquellos clientes que
sean del país 34.
16. Copia de tablas y registros entre base de datos
(COPY FROM)
Este método es muy rápido y eficiente a la hora de copiar tablas o
columnas que contenga tipos de datos: BLOB, CLOB o Long.
o Copiar tabla desde una base de datos.
COPY-
FROM
permite o Copiar información desde una tabla a otra en la
misma base.
Con WHERE podeos especificar
restricciones. En este caso únicamente
queremos añadir aquellos clientes que
sean del país 34.
17. Copia de tablas entre base de datos
(COPY FROM)
Copiar tabla desde la base • INSERT - Inserta los datos provenientes de la
query*. Si no existe la tabla indicada, este
DB1 a DB2: comando producirá un error.
• •APPEND - Inserta datos si la tabla ya existe. Si
la tabla no existe entonces la crea y luego
procede a insertar las filas.
SQL> COPY FROM usuario/pass@DB1 TO usuario/pass@DB2
ACCION tabla_destino USING SELECT * FROM tabla_origen;
• CREATE - Crea la tabla. (Si existe una con el
mismo nombre, este comando seria dado como
erróneo).
Query*: Cadena de
comandos estándares de • REPLACE - Reemplaza la tabla existente y la
consulta basados en SQL . vuelve a crear con el mismo nombre. Si no
existe, la crea e inserta los datos.
18. Copia de tablas entre base de datos
(COPY FROM)
Copiar tabla en la misma • INSERT - Inserta los datos provenientes de la
query*. Si no existe la tabla indicada, este
base de datos (DB1) : comando producirá un error.
• •APPEND - Inserta datos si la tabla ya existe. Si
la tabla no existe entonces la crea y luego
procede a insertar las filas.
SQL> COPY FROM usuario/pass@DB1 TO usuario/pass@DB1
ACCION tabla_destino USING SELECT * FROM tabla_origen;
• CREATE - Crea la tabla. (Si existe una con el
mismo nombre, este comando seria dado como
erróneo).
Query*: Cadena de
comandos estándares de • REPLACE - Reemplaza la tabla existente y la
consulta basados en SQL . vuelve a crear con el mismo nombre. Si no
existe, la crea e inserta los datos.
19. Transferencia usando
TABLESPACE
Un tablespace es el archivo físico donde se almacenarán las tablas y
datos de un usuario en un sistema gestor de base de datos.
• Un data file únicamente puede pertenecer a un determinado
tablespace y este solo podrá pertenecer a una base de datos.
La principal diferencia entre transportar un tablespace y transportar los
datafiles es que con el tablespace no exportamos todos los datos,
únicamente transferimos los datos que contiene el datafile, metadatos
correspondientes y el diccionario de datos.
Un diccionario de datos es un
conjunto de metadatos que contiene
las características lógicas y
puntuales de los datos que se van a
utilizar en el sistema que se
programa.
20. Transferencia usando
TABLESPACE
Un tablespace se define de la siguiente manera:
Un tablespace se
CREATE TABLESPACE nombre_tablespace puede modificar
DATAFILE mediante la
sentencia:
'rutafichero_datafile.ext' SIZE XX{K|M},
ALTER
{DEFAULT STORAGE( INITIAL XX{K|M} NEXT XX{K|M} TABLESPACE.
)} {ONLINE|OFFLINE}{PERMANENT | TEMPORARY};
En el podemos definir el tamaño máximo reservado para almacenar
el data file, características de almacenamiento, si es temporal o
permanente…
21. Pasos para transferir un
TABLESPACE
1º Comprobación de que todos los datafiles estén contenidos en el
tablespace.
2º Activación del modo solo lectura para generar el archivo de
metadatos.
3º Exportación del tablespace.
EXP usuario_sysdba@db as sysdba
TRANSPORT_TABLESPACE=y
TABLESPACES=(TBS_DATOS, TBS_INDICES);
22. Pasos para transferir un
TABLESPACE
4º Restauración de modo lectura y escritura en el servidor de origen.
5º Importación del tablespace.
IMP usuario_sysdba@db as sysdba
TRANSPORT_TABLESPACE=y
TABLESPACES=(TBS_DATOS, TBS_INDICES);
6º Creación de usuarios en el servidor de destino y habilitar lectura y
escritura.
23. Transferencia mediante
DBLINK
Un Database Link permite acceder a las tablas de una base de
datos remota, como si se tratase de tablas dentro de la misma
base de datos.
Sintaxis para la creación de un DBLINK
CREATE DATABASE LINK nombre_del_dblink La especificación de
los parámetros de la
CONNECT TO usuario base de datos remota
configuración de
IDENTIFIED BY contraseña acceso (IP del host,
USING '(DESCRIPTION = (ADDRESS =direccion_host usuario, contraseñás,
(PROTOCOL = TCP) (HOST = nombre_host) (PORT = protocolos, puertos...
) son indispensables
puerto)) (CONNECT_DATA = (SID = al igual que la ruta
nombre_sid)))'FILE=/ruta/archivo.dmp donde se
FILE=/ruta/archivo.log almacenarán los
datafiles y logs de las
tablas transferidas.
24. Transferencia mediante
DBLINK
Una vez estén conectadas ambas base de datos mediante el
dblink podemos gestionar las tablas de la base remota como si de
tablas locales se tratasen utilizando sentencias tales como:
CREATE TABLE nombre_tabla_nueva
AS SELECT * FROM usuario@identificador_dblink;
DBLINK también puede ser utilizado como mecanismo de
exportación e importación ya que permite conexiones entre
diferentes SGBD como MySQL y Oracle.
25. Existen multitud de herramientas gráficas para bases de datos que
permiten una fácil manipulación y gestión de los contenidos
almacenados en dichas bases de datos.
Su sencilla interfaz gráfica que proporciona un enorme control sobre
nuestras bases de datos sin la necesidad de utilizar intérpretes de
línea de comandos.
Suelen ser multifuncionales, permitiendo al usuario desde visualizar
sus tablas de modo gráfico, realizar copias de seguridad e incluso
transferir bases de datos.
26. Algunas de estas aplicaciones soportan más de un SGBD, siempre y
cuando todos utilicen lenguajes de interpretación similares como
SQL.
Navicat soporta MySQL, SQLite,
SQLServer, Oracle y PostgreSQL.
27. Oracle Enterprise Manager
(OEMGR)
Oracle Enterprise Manager, es una herramienta que permite monitorizar
bases de datos Oracle mediante dos tipos de conexiones:
El modo Standalone
funciona como una
aplicación estándar
cliente/servidor
o Standalone (o modo autónomo)
o OMS (Oracle Management Server).
la conexión a un OMS utiliza un
La conexión a un OMS
. utiliza un repositorio
repositorio intermedio con
información global sobre las bases
intermedio con información
de datos registradas.
global sobre las bases de
datos registradas.
28. Enterprise Manager 10g y 11g
Replicar una base de datos existente con
Provisioning and Patch Automation Pack
Un dba realiza replicaciónes de bases de datos constantemente para
la creación de ambientes de desarrollo, pruebas, QA o para un
insumo en la configuración de una base de datos de standby.
Utilizando el OEM, Oracle Enterprise Manager, se pueden hacer las
tareas de manera automatizada, evitando así la generación de scripts.
29. Enterprise Manager 10g y 11g
Replicar una base de datos existente con
Provisioning and Patch Automation Pack
Requisitos:
En el servidor destino:
o debe existir un Home de base de datos Oracle.
o debe estar configurado un agente de grid control.
En los servidores de origen y destino:
o deben contar con espacio suficiente para poder almacenar el
backup de RMAN.
30. Enterprise Manager 10g y 11g
Replicar una base de datos existente con
Provisioning and Patch Automation Pack
Requisitos:
El usuario Oracle:
o debe tener permiso de escritura en los directorios donde se
almacenará el backup en ambos servidores.
o debe contar con el id y password, de un usuario que tenga
privilegios de sysdba para la base de datos de origen.
33. Enterprise Manager 10g y 11g
En caso de elegir la opción de copiar
mediante zonas intermedias, más
adelante se debería especificar la ruta de
la zona que utilizaremos.
40. SQL Developer
Oracle SQL Developer es una aplicación gratuita de Oracle, cuyo
objetivo fundamental de es proporcionar una interfaz más
amigable para la consulta y programación de la base de datos
Oracle. .
La funcionalidades de las que dispone SQL Developer solo son
parte de las disponibles a través de comandos en SQL*Plus, pero
se corresponden con las tareas más habituales.
En las últimas versiones de Oracle SQL Developer se han
incorporado mejoras para poder conectar con base de datos no
Oracle como SQL Server, MySQL o Access.
45. • Microsoft Office Access es un sistema de gestión de
bases de datos relacionales para los sistemas
operativos Microsoft Windows
• Access presenta algunas características que lo
convierten en uno de los gestores de bases de datos
más versátiles:
o Exportar contenido a otras aplicaciones.
o Importación o vinculación de una tabla de
datos contenida en otra base de datos de
Access.
46. Técnicas de almacenamiento de datos externos:
Importación
Crea una copia de la información en una tabla
nueva de la base de datos, la tabla creada en Access no
depende en absoluto del archivo original y no existe nexo
de unión entre ambas.
Vinculación
Los datos establecen una conexión, de modo que se
puedan ver y modificar tanto en la base de datos
original como en Microsoft Access.
47. ¿Cuándo importar y cuándo vincular?
Se importarán los datos cuando éstos sólo se vayan a
utilizar desde Microsoft Access.
Si los datos que desea utilizar los actualiza otro
programa diferente de Microsoft Access, es mejor
vincularlos.
Cuando los datos permanecen
vinculados, es posible
modificarlos tanto a través de su
aplicación original como desde
Access.
Access trabaja mas rápidamente con datos importados.
48. Importar o vincular datos en Microsoft Access 2010
Access permite
la importación
de gran
variedad de
archivos como
Word, Excel,
Access,
HTML…como
desde Access.
49. Importar o vincular datos en Microsoft Access 2010
Seleccionamos
la ruta del
archivo de
datos a
importar o
vincular.
50. Importar o vincular datos en Microsoft Access 2010
Cuando
vinculamos datos,
únicamente nos
dejará seleccionar
tablas.
51. Copiar, pegar y mover datos
Cuando copiamos, Access crea un duplicado de los
datos que tengamos seleccionados en el portapapeles,
manteniendo estos datos, permitiéndole pegarlos en
tablas distintas e incluso bases de datos distintas.
52. Copiar, pegar y mover datos
Cuando peguemos
los datos, siempre
pedirá
confirmación.
Access pegará los datos en el mismo orden en el que
están en la tabla original.
Siempre que se produzca un error al pegar, Access
creara una tabla llamada "Errores de pegado" y colocará
en ella los datos que no haya podido pegar en la tabla
de destino. Así que es conveniente no perderla nunca de
vista y comprobar los problemas que la causaron.
53. Conexión remota con bases de datos Access
Access no presenta ningún módulo de acceso remoto a
bases de datos. Cuando peguemos
los datos, siempre
pedirá
Se accede a una base de datos remota de Access
confirmación.
utilizando SQL Server o Microsoft Visual Studio NET
para acceder a ella a través del Proveedor OLE DB de
Microsoft Jet 4.0.
Existen programas externos como Oracle SQL
Developer permite el acceso a bases de datos tipo
Access a través de la red, permitiendo así una gestión
completa de la base de datos.