Использование Oracle Streams для репликации (часть 2)
27.03.2009 от aryndin99Продолжение. Начало смотрите в предыдущих поста: часть 1.
Итак, если концептуально все понятно, то давайте посмотрим, что нужно сделать для того, чтобы настроить репликацию.
Ниже приводятся основные шаги:
- Установить последние патчи.
- Настроить базы данных (ARCHIVELOG, STREAMS_POOL, GLOBAL_NAMES и т.д.)
- Настроить Oracle Net так, чтобы базы могли связываться между собой.
- Создать табличное пространство и администратора Streams.
- Создать database links
1. Установить последние патчи.
Тут все просто. Идем по ссылке. и скачиваем нужные патчи. От себя скажу, что лучше всего брать R2 (это не относится к 11-ой версии).
2. Настройка базы данных
2.1 COMPATIBLE (минимум 9.2.0): для использование Streams, Compatible должен быть минимум 9.2.0.
2.2 GLOBAL_NAMES (TRUE): параметр должен быть установлен в TRUE на всех базах. После включения Streams этот параметр изменяться нельзя. GLOBAL_NAME используется для идентификации базы, в которой произошли изменения. Все сообщения в репликации будут содержать эти имена.
2.3 JOB_QUEUE_PROCESSES (минимум 2): этот параметр указывает количество процессов, которые может задействовать DBMS_JOB.
2.4 AQ_TM_PROCESSES (лучше не прописывать в файле параметров вообще): количество процессов для мониторинга очередей.
Сбросить в значение по-умолчанию можно командой alter system reset AQ_TM_PROCESSES scope=spfile;
2.5 LOGMNR_MAX_PERSISTENT_SESSIONS(минимум 1, должен быть равен или больше количества процессов сбора; для 11g не требуется): количество постоянных сессий, используемых LOGMINER.
2.6 LOG_PARALLELISM(должен быть 1 на всех базах, осуществляющих сбор изменений): устарел, начиная с версии 10.1.
2.7 PARALLEL_MAX_SERVERS(минимум 2): каждый процесс сбора и применений изменений может использовать несколько параллельных серверных процессов. Процесс применения по-умолчанию требует 2 параллельных серверных процесса.
2.8 SHARED_POOL_SIZE (минимум 100 Мб): каждый процесс сбора требует 10 Мб в shared pool, но Streams ограниченые использования 10% shared pool.
2.8.1 JAVA_POOL_SIZE (минимум 50 Мб, лучше 100): по опыту необходимо также выделить минимум 50 мб под JAVA VM.
2.9 OPEN_LINKS (минимум 4): задает максимальное количество одновременно открытых в одной сессии соединений с удаленной базой.
2.10 Базы данных должны быть в (ARCHIVELOG).
В моем случае понадобилось установить параметр GLOBAL_NAMES и перевести базу в ARCHIVELOG:
alter system set GLOBAL_NAMES=true scope=both;
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
3. Настроить Oracle Net так, чтобы базы могли связываться между собой.
В моем случае это базы src.local и dest.local. Для них у меня в tnsnames.ora (на стороне базы данных) прописаны следующие строки:
src.local =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = src_server)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = src.local)
)
)
dest.local =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dest_server)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dest.local)
)
)
Для проверки можно попробовать подключиться к разным базам:
sqlplus system/oracle@src.local
sqlplus system/oracle@dest.local
4. Создать табличное пространство и администратора Streams.
Для управления Oracle Streams необходимо либо создать нового пользователя с соответствующими привилегиями, либо выдать привилегии существующему пользователя. В качестве администратора Streams не следует использовать SYS или SYSTEM, а в качестве табличного пространства у этого пользователя не должно быть установлено табличное пространство SYSTEM.
Следующие шаги нужно выполнить на всех базах, на которых будет использоваться Oracle Streams.
а. Подключитесь к базе данных как административный пользователь.
База данных SRC: connect sys/oracle@src.local as sysdba
База данных DEST: connect sys/oracle@dest.local as sysdba
б. Создайте или используйте существующее табличное пространство:
База данных SRC:
CREATE TABLESPACE streams_tbs DATAFILE '/u01/app/oracle/oradata/src/streams_tbs.dbf'
SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
База данных DEST:
CREATE TABLESPACE streams_tbs DATAFILE '/u01/app/oracle/oradata/dest/streams_tbs.dbf'
SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
в. Создайте администратора Oracle Streams:
На базах данных SRC и DEST:
CREATE USER strmadmin IDENTIFIED BY oracle
DEFAULT TABLESPACE streams_tbs
QUOTA UNLIMITED ON streams_tbs;
г. Выдайте этому пользователю привилегию DBA:
На базах данных SRC и DEST:
GRANT DBA TO strmadmin;
Note:
Роль DBA необходима, когда пользователь создает или изменяет процессы сбора и применений. Когда пользователь не делает этого – можно забрать роль DBA.
д. Выдайте привилегии администратор STREAMS с помощью DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE:
На базах данных SRC и DEST:
BEGIN
DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE(
grantee => 'strmadmin',
grant_privileges => TRUE);
END;
5. Создайте database links.
Подключиться как strmadmin и создать database links:
База данных SRC:
CREATE DATABASE LINK dest.local CONNECT TO strmadmin
IDENTIFIED BY oracle
USING 'dest.local';
База данных DEST:
CREATE DATABASE LINK src.local CONNECT TO strmadmin
IDENTIFIED BY oracle
USING 'src.local';
Проверить работу можно выполним следующие команды:
База данных SRC:
SQL> select * from tab@dest.local;
no rows selected
База данных DEST:
SQL> select * from tab@src.local;
no rows selected
- Вам также могут быть интересны следующие статьи:
- Использование Oracle Streams для репликации (часть 4)
- Использование Oracle Streams для репликации (часть 5)
- Oracle Streams для репликации: расширенная настройка (часть 7)
- Oracle Streams для репликации: расширенная настройка (часть 9)
- Использование Oracle Streams для репликации (часть 3)
Рубрики: Data Warehouse, Data Warehousing, Database, Streams | Комментарии (6) »

02.04.2009 в 18:32
[...] Oracle Streams для репликации (часть 3)Использование Oracle Streams для репликации (часть 2)HTTP Internal Error 500 в Oracle BI после инсталляции на LinuxЗапуск Oracle [...]
04.04.2009 в 21:51
[...] (часть 4)Использование Oracle Streams для репликации (часть 3)Использование Oracle Streams для репликации (часть 2)HTTP Internal Error 500 в Oracle BI после инсталляции на LinuxЗапуск Oracle [...]
06.04.2009 в 18:53
[...] (часть 4)Использование Oracle Streams для репликации (часть 3)Использование Oracle Streams для репликации (часть 2)HTTP Internal Error 500 в Oracle BI после инсталляции на LinuxЗапуск Oracle [...]
08.04.2009 в 02:34
[...] (часть 4)Использование Oracle Streams для репликации (часть 3)Использование Oracle Streams для репликации (часть 2)HTTP Internal Error 500 в Oracle BI после инсталляции на LinuxЗапуск Oracle [...]
12.04.2009 в 02:30
[...] (часть 4)Использование Oracle Streams для репликации (часть 3)Использование Oracle Streams для репликации (часть 2)HTTP Internal Error 500 в Oracle BI после инсталляции на LinuxЗапуск Oracle [...]
14.04.2009 в 23:36
[...] (часть 4)Использование Oracle Streams для репликации (часть 3)Использование Oracle Streams для репликации (часть 2)HTTP Internal Error 500 в Oracle BI после инсталляции на [...]