#oracle #sqlplus #tnsnames #multi-master-replication
#Oracle #sqlplus #tnsnames #репликация с несколькими мастерами
Вопрос:
Я пытаюсь настроить multi master
два сервера (orclsrc и orcltgt) на Oracle 11G
(да, я знаю, что он старый, но это то, что мы имеем здесь), следуя этому руководству.
Когда я пытаюсь сделать:
EXEC DBMS_REPCAT.ADD_MASTER_DATABASE (GNAME=> 'REP2', MASTER=>'ORCLTGT',USE_EXISTING_OBJECTS => TRUE,COPY_ROWS=> FALSE, PROPAGATION_MODE=> 'ASYNCHRONOUS');
Я получил эту ошибку:
ERROR at line 1:
ORA-04052: error occurred when looking up remote object REPADMIN.SYS@ORCLTGT
ORA-00604: error occurred at recursive SQL level 2
ORA-12154: TNS:could not resolve the connect identifier specified
ORA-06512: at "SYS.DBMS_REPCAT_UTL", line 4280
ORA-06512: at "SYS.DBMS_REPCAT_MAS", line 2158
ORA-06512: at "SYS.DBMS_REPCAT", line 146
ORA-06512: at line 1
AFAIK, у меня правильная конфигурация TNS, потому что tnsping работает нормально в обоих направлениях.
Таким образом, проблема заключается в том, что при выполнении предыдущего действия входа в систему команда добавляет или объединяет «.sys» с моим именем пользователя ( repadmin.sys
вместо repadmin
).
Как я могу избежать такого поведения?
PS: есть ли другой лучший вариант для multimaster
?
Комментарии:
1. Похоже, ошибка связана с
@ORCLTGT
частью, а не с.sys
частью. TNS ping работает с вашего клиентского компьютера или с серверов БД? Псевдоним TNS должен быть в томtnsnames.ora
, который Oracle использует внутренне с сервера — так он там? Возможно, вам понадобятся оба псевдонима, определенные на обоих серверах.2. @AlexPoole мои рабочие
tnsping
находятся вorclsrc
иorcltgt
и tnsping друг друга, поэтому они находятся на самих серверных машинах. Из вашего комментария, возможно, имеет значение, что говорят обаUsed parameter files: /some/path/sqlnet.ora
tnsping, так что, может быть, у меня отсутствуетtnsnames.ora
файл?3. Это не сработало бы без
tnsnames.ora
. Но есть ли у вас TNS_ADMIN, установленный в вашем сеансе, на/some/path
, которого нет в ORACLE_HOME? Я полагаю, что база данных может не использовать тот же файл, что и вы.4. @AlexPoole (i), да, /some/path находится под
ORACLE_HOME
, на самом деле это так$ORACLE_HOME/network/admin
. (ii) TNS_ADMIN не установлен для обоихsrc
otgt
(возможно, это моя проблема). (iii) Я понял, что у меня естьtnsnames.ora
файл в той же папке, чтоsqlnet.ora
и .