Subido por Gustavo martinez misal

Informe de Laboratorio Bases de datos Avanzadas

Anuncio
1
LABORATÓRIO DE BASES DE
DISTRIBUÍDAS
DATOS
Nelson Fabián Maníos Ascencio (EDBD), Gustavo Adolfo Martinez Misal (MIAD)
UNIVERSIDAD JORGE TADEO LOZANO – BASES DE DATOS AVANZADAS
[email protected],[email protected]
1. Documentar el contenido del archivo TNSNAMES En
el siguiente archivo tnsnames.ora identifique y documente
los textos en rojo:
ORCL: Nombre de la conexión a base de datos) =
(DESCRIPTION: Conjunto de datos de la cadena de
conexión) =
(ADDRESS_LIST =
(ADDRESS: Conjunto de Dirección IP, protocolo y puerto a
usar) = (PROTOCOL =
TCP) (HOST: Dirección ip del servidor de base de datos)
= 172.xxx.xxx.xxx) (PORT: Puerto a usar por la instancia
de base de datos) =
1521))
2. Fragmentación Para el desarrollo del laboratorio
usaremos el esquema de base de datos trabajado
durante el curso con las relaciones EMP, ASG, PAY y
PROJ. A. El esquema de fragmentación es:
● ASG se fragmenta a partir de los fragmentos de PROJ
ASG1= (ASG
PROJ1)
ASG2= (ASG
PROJ2)
B. la fragmentación realizada en el literal a. de este punto,
usando operadores de álgebra relacional reconstruya relaciones
PROJ y ASG
● Teniendo en cuenta Tabla 1. Distribución de los
fragmentos se reconstruye las relaciones PROJ y ASG.
ASG = (ASG1 U ASG2)
)
(CONNECT_DATA: Conjunto de datos del tipo de servidor
y nombre de la instancia) =
(SID: Nombre de instancia) = XXXX)
(SERVER: Tipo de servidor = DEDICATED:
Especificar que las solicitudes del cliente sean
atendidas)
PROJ = ( PROJ1 U PROJ2)
3. Ingresó a la base de datos de cada servidor.
En este punto se ingresó con ayuda del usuario a
cada servidor y así
con el
archivo de
configuración y el servicio que en primera
instancia se verifica que el estado de la conexión a
1
2
●
la base de datos sea correcta para poder así acceder
y introducir datos logrando su respectiva consulta.
A.
Se establece la conexión con el usuario
NYORK12, Se crea el usuario con su debida
contraseña establecida anteriormente en el aula
de clase; por lo tanto el estado de conexión
aparece correctamente en la base de datos
dando el visto bueno para poder continuar con
la data.
4. Creación de objetos en los usuarios NYORKxx y
PARISxx
Con la ayuda del archivo extraíble se toma en cuenta
la
carpeta
CreaOBJParis_final.sql
y
CrearOBJNY_final.SQL las cuales contiene una
sentencia de selección a las tablas donde ofrece
características a cada tipo de dato que se incluirá en las
respectivas tablas que se crearán y se llevarán a cabo en
el ejercicio.
A.
●
Se establece la conexión con el usuario
PARIS12, Se crea el usuario con su debida
contraseña establecida anteriormente en el aula
de clase; por lo tanto el estado de conexión
aparece correctamente en la base de datos
dando el visto bueno para poder continuar con
la data.
●
B.
B.
Se usa la sentencia de CrearOBJNY_final.SQL con el
respectivo usuario NYORK12 la cual se introduce de
forma correcta para crear la tabla pay. B.
3
2.
object_uri: Objeto o archivo URI. El formato
del URI depende del servicio de almacenamiento de
objetos en la nube que esté utilizando
3.
directory_name: El nombre del directorio en la
base de datos.
Procedimientos con el USUARIO NYORK12
●
●
DBMS_CLOUD.CREATE_CREDENTIAL
Se usa la sentencia de CreaOBJParis_final.sql con el
respectivo usuario PARIS12 el cual se introduce de
forma correcta para crear la tabla pay.
5. Configuración del ambiente distribuido
Describir la sintaxis de las siguientes sentencias:
DBMS_CLOUD.CREATE_CREDENTIAL:
DBMS_CLOUD: Es un paquete de ORACLE para
almacenar objetos en bases de datos alojadas en la nube
Es necesario con el usuario y la respectiva contraseña para
continuar con el proceso de creación de credencial.
●
DBMS_CLOUD.GET_OBJECT
CREATE_CREDENTIAL:
1.
credential_name: nombre de la credencial que
se almacenará, en este caso
‘DB_CRED_PARIS12’
2.
username: argumentos username y password
juntos especifican sus credenciales de servicio en la
nube en este ejemplo se utiliza ‘PARIS12’.
3.
password: credenciales de servicio en la nube.
DBMS_CLOUD.GET_OBJECT :
GET_OBJECT
1.
credential_name: nombre de la credencial que
se almacenará, en este caso
‘DB_CRED_PARIS12’
Este procedimiento se usa las credenciales de PARIS00
teniendo en cuenta el objeto y el directorio ofrecido.
●
select owner, credential_name, username,
enabled from dba_credentials;
4
Se utiliza la sentencias de tipo cloud para realizar la
conexión entre las dos instancias de la bases de datos desde
el usuario NYORK12 y PARIS12.
6. Creación de Database Link
Se utiliza la sentencias de tipo cloud para realizar la
conexión entre las dos instancias de la bases de datos desde
el usuario NYORK12 y PARIS12.
A. Describa la sintaxis de la sentencia CREATE
DATABASE LINK identifique similitudes y diferencias
con
la
sentencia
DBMS_CLOUD_ADMIN
CREATE_DATABASE_LINK
Procedimientos con el USUARIO PARIS12
●
DBMS_CLOUD.CREATE_CREDENTIAL
Es necesario con el usuario y la respectiva contraseña para
continuar con el proceso de creación de credencial.
●
DBMS_CLOUD.GET_OBJECT
Describa la sintaxis de la sentencia CREATE DATABASE
LINK
La sentencia CREATE DATABASE LINK es una
declaración para crear un enlace de base de datos. Un
enlace de base de datos es un objeto de esquema en una
base de datos que le permite acceder a objetos en otra
base de datos. La otra base de datos no necesita ser un
sistema de base de datos Oracle. Sin embargo, para
acceder a sistemas que no son de Oracle, debe usar los
Servicios heterogéneos de Oracle.
Después de haber creado un enlace a la base de datos,
se puede usar para referirse a tablas y vistas en la otra
base de datos. Se pueden consultar en una tabla o vista
en la otra base de datos con la SELECT declaración.
También puede acceder a tablas remotas y vistas
utilizando cualquiera INSERT, UPDATE, DELETE, o
LOCK TABLE comunicado.
● Sintaxis (Resumida de CREATE DATABASE LINK)
Este procedimiento se usan las credenciales de NYORK00
teniendo en cuenta el objeto y el directorio ofrecido.
●
select owner, credential_name, username,
enabled from dba_credentials;
CREATE [ SHARED ] [ PUBLIC ] DATABASE LINK dblink
[ CONNECT TO
{ CURRENT_USER
| user IDENTIFIED BY password [ dblink_authentication ]
}
5
| dblink_authentication
]
[ CONNECT TO
{ CURRENT_USER
| user IDENTIFIED BY password [ dblink_authentication ]
}
| dblink_authentication
]...
[ USING connect_string ] ;
Describa la sintaxis de la sentencia
DBMS_CLOUD_ADMIN.
CREATE_DATABASE_LINK
Se
usa
la
sentencia
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LI
NK para crear enlaces de bases de datos desde una base
de datos autónoma a otra base de datos, no obstante
permite acceder a los objetos de otra base de datos.
También puede utilizarse para referirse a tablas y vistas
de otra base de datos, siempre y cuando se haya creado
el database.
Algo muy importante es que para garantizar la seguridad,
el puerto de enlace de la base de datos está restringido al
rango 1521-1525.Es decir se especifica el puerto de la
base de datos de
destino cuando crea
un
enlace de
base de
datos con
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK
db_link_name
=> 'SALESLINK',
hostname =>
'adb.eu-frankfurt-1.or
aclecloud.com',
port => '1522',
service_name =>
'example_medium.adwc.example.oraclecloud.com',
ssl_server_cert_dn =>
'CN=adwc.example.oraclecloud.com,OU=Oracle BMCS
FRANKFURT,O=Oracle Corporation,L=Redwood
City,ST=California,C=US',
credential_name =>
'DB_LINK_CRED',
directory_name =>
'DATA_PUMP_DIR');
END;
/
Similitudes:
●
las dos sentencias sql tiene como
principal objetivo crear un enlace de conexión
entre diferentes bases de datos, las cuales no
necesariamente deben de ser de
ORACLE.
●
otra similitud es que por compatibilidad
las dos sentencias usan protocolos de conexión
de tipo tcp.
Diferencias:
●
● Sintaxis (Sencillo de CREATE DATABASE LINK) en
Oracle:
BEGIN
El
procedimiento
CREATE_DATABASE_LINK
puede
ser
incluido como parte de un subprograma dentro
de la cláusula DBMS_CLOUD_ADMIN.
6
B.
Se Verifica que el DBLINK funciona revisando
la estructura y contenido de las tablas ASG2 y PROJ2
que se encuentran en NYORK12, y se llevan a cabo las
respectivas sentencias de forma correcta.
●
Resultado de consulta consultado en la tabla
ASG2
Resultado de consulta consultado en la tabla PROJ2
C.
Se Verifica que el DBLINK funciona revisando
la estructura y contenido de las tablas ASG2 y PROJ2
que se encuentran en PARIS12, y se llevan a cabo las
respectivas sentencias de forma correcta.
●
Resultado de consulta consultado en la tabla ASG1
7
● Se Verifica que el DBLINK funciona
revisando la estructura y contenido de las tablas
ASG2 y PROJ2 que se encuentran en
PARIS12, y se llevan a cabo las respectivas las
sentencias de forma correcta.
●
Resultado de consulta consultado en la tabla PROJ1
7. Actualización asincrónica de copias
A. En Google revise y describa la sintaxis y el uso de las
sentencias CREATE
MATERIALIZED VIEW y CREATE MATERIALIZED
VIEW LOG, ¿cuál son las diferencias? Documente las
opciones.
●
CREATE MATERIALIZED VIEW
Una vista materializada, o instantánea como se conocía
anteriormente, es un segmento de tabla cuyo contenido se
8
actualiza periódicamente en función de una consulta, ya
sea en una tabla local o remota.
que es una tabla asociada con la tabla maestra de una vista
materializada.
Un registro de vista materializada se encuentra en la
base de datos maestra en el mismo esquema que la tabla
maestra. Una tabla maestra solo puede tener un registro
de vista materializado definido en ella. Oracle Database
puede usar este registro de vista materializada para
realizar actualizaciones rápidas para todas las vistas
materializadas de actualización rápida basadas en la
tabla maestra.
(https://oracle-base.com/articles/misc/materialized-views)
El anterior gráfico explica que
el uso de vistas
materializadas en tablas remotas es la forma más sencilla de
lograr la replicación de datos entre sitios.
Sintaxis
https://oracle-base.com/articles/misc/materialized-views
https://docs.oracle.com/cd/B28359_01/network.111/b28317/listener.htm#NETRF00
8)
Diferencias principales
●
CREATE MATERIALIZED VIEW LOG
El propósito es usando CREATE MATERIALIZED VIEW
LOG instrucción para crear un registro de vista materializada,
●
Los privilegios necesarios para crear un
registro de vista materializada se relacionan
directamente con los privilegios, siempre y cuando
9
●
posea la tabla maestra, mientras que para crear el
registro no es necesario.
●
Funcionan
operaciones.
bajo
distintos
esquemas
●
Realizar cambios en la tabla Proj2 de
PARISxx, aplicar los cambios (Commit). Verificar
los resultados.
y
La vista materializada contiene los resultados
de una consulta, mientras la vista materializada de log
crea el registro asociado a la vista materializada.
Se realiza por el usuario PARIS12 la siguiente sentencia:
B. En NYORKxx, a partir de los fragmentos de PROJ
(Proy1, Proy2) reconstruya la relación original PROJ,
para ello haga lo siguiente:
● En el sitio PARISxx revise el script
vmprojlog.sql. Documéntelo. ¿Qué hace el
script? Correr el script.
●
En NYORKxx revise el script vmproj.sql.
Ejecútelo en el usuario NYORKxx. Haga pruebas.
Documente el script.
Qué hace el script?
En el anterior script lo que se realiza es una vista
materializada con llave primaria seleccionando las
tablas e insertando nuevos campos de tablas, el único
fin es que se espera que en el usuario de Nyork12 se
haya creado e insertado dicha vista materializada en
tiempo real además de que se espera que sea
consistente, así otorgando y verificando por parte del
otro usuario que efectivamente se haya actualizado
remotamente.
/
10
D.
En NYORKxx, a partir de los fragmentos de ASG
(Asg1, Asg2) reconstruya la relación ASG
Qué hace el script?
•
El script del usuario NYORK 12
realiza la creación de una vista materializada
nombrada PROJ2, está vista se crea desde una
tabla compartida desde el enlace generado
anteriormente desde el dblink con la cuenta del
usuario PARIS12, de igual manera se le asigna
el procedimiento refresh fast, dado que desde el
usuario parís se realiza un dml de insert de esta
manera se puede actualizar los datos para la
vista creada.
•
en la parte inferior del script se crea
nuevamente otra vista, esta vez llamada PROJ,
la cual resulta de realizar un join de tipo unión
entre la vista materializada creada en el paso
anterior la cual se nombró PROJ2, este
fragmento se localizada en la instancia del
usuario PARIS12; la otra parte del fragmento
fue creado por el usuario NYORK12 tiene
como nombre PROJ1, en realidad este
procedimiento restaura en una vista la tabla con
los datos formales; para finalizar se realiza un
commit para confirmar las vistas creadas en la
base de datos.
•
Se contempla creación completa
respecto a la vista materializada.
11
8. Actualización asincrónica de copias controlada
•
Se realiza el mismo procedimiento para
los fragmentos ASG1 Y ASG2
así se
reconstruye la relación original ASG mediante la
ejecución de una vista materializada.
●
Se crea un procedimiento utilizando el API
DBMS_JOB el cual actualiza las vistas realizadas en
el punto 7 PROJ y ASG.
9. Actualización sincrónica de réplicas
A. Revise los triggers tr0payparis y tr0payNY.
Se intenta sincronizar los triggers con PAY que se
encuentra en New York con la réplica en París.
12
●
Se realiza la sentencia correcta
sincronizando los triggers con la tabla pay con el
respectivo usuario NYORK12.
●
se crea el trigger para la tabla emp desde
el usuario PARIS12 para así dar una solución y
sincronizar los Insert y Update.
B. A partir de los triggers anteriores proponga una
●
Se realiza la sentencia correcta
sincronizando los triggers con PARIS12.
solución para sincronizar los INSERT y UPDATE de la
tabla EMP.
13
●
se crea el trigger para la tabla emp desde
el usuario PARIS12 para así dar una solución y
sincronizar los Insert y Update.
11.
Escriba sus conclusiones y recomendaciones.
●
Muy buen enfoque en cuanto a la
fragmentación de datos entre la tablas de la
bases de datos se aplica un buen ejercicio
además de que se comprende cómo se lleva a
cabo dicho procedimiento.
●
Una conclusión quizás vital es que el
tema de la sincronización en cuanto a las bases
de datos posee bastante uso hoy día por las
distintas organizaciones ya que se opta cada
vez más tener información de distintas
localizaciones de fuentes de datos.
●
Respecto a las sintaxis de las vistas
materializadas
es
que
suelen
variar
dependiendo la base de datos y por lo tanto son
muy apreciadas por los dba actuales para tener
en cuenta en sus procesos cuando a
optimización se trata.
●
●
se crea el trigger para la tabla emp desde
el usuario NYORK12 para así dar una solución
y sincronizar los Insert y Update.
En la dinámica organizacional actual
donde existe una gran generación de datos, se
buscan soluciones para dar una óptima
recopilación de esta, es por esto que este tipo
de estrategias tecnológica cumple de una
manera
dinámica
y
eficiente
el
aprovechamiento de la información.
14
12.
Cibergrafia
•
https://docs.oracle.com/cd/B28359_01/n
etwork.111/b28317/listener.htm#NETRF00 8
•
https://docs.oracle.com/en/cloud/paas/a
utonomous-data-warehousecloud/user/database-l
inks.html
•
https://oracle-base.com/articles/misc/ma
terialized-views
•
https://docs.oracle.com/en/cloud/paas/a
utonomous-data-warehousecloud/user/database-l
inks.html#GUID-28F06977-300F-4599-AD972
DEF67EF5FEA
Descargar