Pregunta

¿Alguien tiene experiencia con enlaces de bases de datos entre 10g y 11g?

¿Es esta una configuración/operación compatible?¿Es posible?¿Hay algún problema?¿Advertencias?

¿Fue útil?

Solución

He estado usando DB Enlaces de 11g a 10g. No hay grandes problemas.

Sólo advertencia es que 11g puede utilizar contraseñas mayúsculas y minúsculas, y es posible que desee cambiar eso de si está intentando conectarse a una base de datos 10g 11g a un uno.

Otros consejos

Ya no se puede acceder a una vista con dblink en la lista de selección desde otro esquema a través de un sinónimo (solía funcionar en Oracle 10)

La vista

create or replace foo_view as
select foo.id@link id --yes, I know this is stupid... legacy code
from foo@link

En otro usuario de base de datos

create synonym foo_synonym for otherdb.foo_view

seleccione foo_sinónimo:"No se encontró la descripción de conexión ORA-02019 para la base de datos remota"

La solución es eliminar los enlaces de base de datos de la cláusula select de la vista subyacente (que realmente no debería estar allí en primer lugar):

create or replace foo_view as
select foo.id id
from foo@lin foo

A veces hay problemas, cuando un enlace de 11G a 10.2.0.4.

Oracle Support Doc ID 730423.1:. Seleccionar con la función local y las tablas remotas mediante un dblink se cuelga debido a Enq DX

ORA-01719 también puede ser lanzado si tiene una combinación externa consulta en 11g que también utiliza IN o OR y las mesas están referenciados a través de un db_link a 10 g.

11g a 11g funciona como lo hace 10g a 10g -. Solo surge si db_link de 11g a 10g

En concreto, estoy viendo actualmente este problema usando 11.2.0.1 a 10.2.0.3; 11.2.0.2 y 10.2.0.4 a. Además de variar O / S libera: Windows y Solaris

.

Ejecutar este en las bases de datos 10g y 11g de destino:

create table u1 (c1 number);
create table u2 (c1 number, c2 number);
insert into u1 values (1);
insert into u1 values (2);
insert into u2 values (1,1);
insert into u2 values (1,2);
commit;

Crea db_links (DB10, DB11) en su base de datos 11g vinculan tanto a la 10g y 11g bases de datos vinculados.

Ejecutar estas consultas en la base de datos que une 11g:

/* this will fail 11g to 10g*/
SELECT *
FROM u1@DB10 a,
(SELECT *
FROM u2@DB10
WHERE c1 IN (1, 2, 3)) b
WHERE a.c1 = b.c1(+);

/* this will work 11g to 11g*/
SELECT *
FROM u1@DB11 a,
(SELECT *
FROM u2@DB11
WHERE c1 IN (1, 2, 3)) b
WHERE a.c1 = b.c1(+);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top