Oracle - actualizar tablas en diferente schema

 
Vista:

actualizar tablas en diferente schema

Publicado por kanochiz (2 intervenciones) el 11/08/2004 23:40:06
Hola
Tengo dos instanacias de oracle, en ambas un tabla de igual estructura, necesito que cada que cambie una de ellas se actualice la otra y visceversa, no he encontrado nada al respecto
he leido acerca de dblink pero creo que no se encaja a la necesidad o no se como usarlo, ya que me parece que el dblink, me crearia la tabla nuevamente y necesito que solo la actualice la que corresponda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:actualizar tablas en diferente schema

Publicado por Rodrigo Carrasco (26 intervenciones) el 12/08/2004 21:11:32
El dblink es la solución.
Para conectar dos bases de datos en instancias diferentes, ese objeto te crea la conexión y te permite "ver" las tablas de uno y otro lado. No es cierto que te crea las tablas, un dblink es sólo una conexión.
Si quieres hacer la actualización dinámica, es decir, que se modifique una tabla cuando la otra fue alterada, te conviene usar un trigger.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar tablas en diferente schema

Publicado por kanochiz (1 intervención) el 12/08/2004 22:26:28
Hola rodrigo, gracias por tu ayuda
No voy a poder instalar la base de datos aparte por cuestiones de licensia. yo se que es posible crear otra instancia en la base de datos (oracle 9i), tu puedes informarme como se crea otra instancia y si la creo, la comunicación entre esas dos instancias como la puedo manejar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar tablas en diferente schema

Publicado por Rodrigo Carrasco (26 intervenciones) el 12/08/2004 23:29:46
Para crear otra instancia debes tener privilegios de dba, entrar a la línea de comandos de sqlplus o desde alguna interfaz gráfica. En el segundo caso es simple porque sigues lo que te diga el wizard correspondiente y listo. En el primer caso, deberías averiguar la utilidad del comando "create database" y todas sus variedades, es difícil aconsejarte por este medio, yo te recomiendo buscar en la ayuda este comando y seguir el hilo de ese tema.
Ejemplo:
CREATE DATABASE: Example 1
This example creates a database with the following Oracle-managed files:

A SYSTEM tablespace datafile in directory /u01/oradata/sample that is 100 MB and autoextensible up to an unlimited size
Two online log groups with two members of 100 MB each, one each in /u02/oradata/sample and /u03/oradata/sample
If automatic undo management mode is enabled, then an undo tablespace datafile in directory /u01/oradata/sample2 that is 10 MB and autoextensible up to an unlimited size. An undo tablespace named SYS_UNDOTBS is created.
If no CONTROL_FILES initialization parameter is specified, then two control files, one each in /u02/oradata/sample and /u03/oradata/sample. The control file in /u02/oradata/sample is the primary control file.
The following parameter settings are included in the initialization parameter file:

DB_CREATE_FILE_DEST = '/u01/oradata/sample'
DB_CREATE_ONLINE_LOG_DEST_1 = '/u02/oradata/sample'
DB_CREATE_ONLINE_LOG_DEST_2 = '/u03/oradata/sample'

The following statement is issued at the SQL prompt:
SQL> CREATE DATABASE sample;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar tablas en diferente schema

Publicado por carolina (2 intervenciones) el 17/08/2004 16:13:25
Hola rodrigo,
tengo ya las dos instancias en oracle, y el dblink me funciona entre ellas, pero necesito tambier hacer uno que se conecte a otra base de datos en otra maquina. En mi cliente hice la cofiguración del net config y si me conecto por sqlplus a esa otra maquina, se conecta sin problemas, pero cuando intento utilizar el dblink para consultar tablas de cualquiera de las otras dos instacias, me sale error de tns, servicio de nombre no resuelto, y por la consola cuando le hago test a este dblink, me dice que la conexión no esta activa,
Me parece que debo hacer algo en los archivo de configuración pero no se que es.
Me puedes ayudar porfa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar tablas en diferente schema

Publicado por Rodrigo Carrasco (26 intervenciones) el 17/08/2004 16:45:14
Ups, esto es muy raro. Si te conectas con sqlplus entonces no hay error de tns. ¿Estás segura de haber creado el dblink con el mismo string de conexión que en sqlplus?. Tu archivo tnsnames.ora debiera tener el nombre del string de conexión que debes utilizar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar tablas en diferente schema

Publicado por Jorge-DBA (123 intervenciones) el 24/08/2004 18:30:44
Hola Carolina.

Tu error es muy comun en Oracle, no te preocupes, es algo muy simple.
Solo tienes que verificar tus TNSNAMES.ora (Transparent Network Substrate) y que tus servicios esten dados de alta junto con sus alias, te recomiendo que los crees en base al nombre de tu Global_name de tu base de datos Remota.

Ejemplo:

Tienes 2 base de datos, en diferentes hosts

Nombre del Host:
Server1
Instancia:
BASE_A
-------
Por otro lado tenemos otro Host

Nombre del Host:
Server2
Instancia:
BASE_B

En BASE_A, voy a crear un link que este disponible remotamente para BASE_B
(tienes que tener privilegios de sistema de Create public synonym o create synonym)

SQL> connect system/manager@BASE_A

SQL> create public database link BASE_B
connect to scott identified by tiger using \'BASE_B\';

(OJO!!!! en using BASE_B tiene que estar dado de alta el servicio en tu TNSNAMES.ORA del Host llamado Server1, además de que el Global_name del Host llamado Server2, se debe llamar BASE_B con esto no te dará el problema que comentas)

link
BASE_A ---------------> BASE_B

Listo, Realiza tu TEST y te va a funcionar.!!!

Suerte Jorge-DBA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar