|
![]()
Вся книга: Практика работы с Oracle: генерация, администрирование, репликация. И.К.Гаршин.
ISBN 5-901314-02-6 (рус.). УДК 004.42Oracle. ББК 32.973.26-018.2. Г21. В 1999-2000 г. программисты «Нефтегазсистемы» разработали и внедрили в большинство ОАО МН «Транснефти Информационную систему паспортизации магистральных нефтепроводов «СКУТОР». Сначала он был создан на базе MS Access, затем переведен на Oracle 8 с поддкржкой асинхронной репликации с помощью программы Oracle Multimaster. В книге подробно описан авторский опыт перевода и внедрения этой базы данных. |
Автор признателен руководителям и сотрудникам ЗАО «Нефтегазсистемы», начальникам и персоналу вычислительных центров региональных управлений ОАО «Транснефть», c чьей помощью был разработан и внедрен данный Oracle-проект.
Приложения
Состав приложений:
Приложение 1. Файлы TNSNAMES.ORA, LISTENER.ORA, CONFIG.ORA
Приложение 2. Пример конфигурационного файла
Приложение 3. Описание API для репликации
Приложение 4. Словарь БД
Файл TNSNAMES.ORA в данном примере включает описание сервисов в Компании, ряде Объединений и некоторых подчиненных Предприятиях:
# D:\ORAWIN95\NET80\ADMIN\TNSNAMES.ORA Configuration File:D:\orawin95\net80\admin\TNSNAMES.ORA
#Generated by Oracle Net8 Assistant
ORACLE.WORLD=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=
(COMMUNITY=TCP.world)
(PROTOCOL=TCP)
(Host=17.6.20.2)
(Port=1521))
(ADDRESS=
(COMMUNITY=IPC.world)
(PROTOCOL=IPC)
(KEY=MAD1-IPC))
(ADDRESS=
(COMMUNITY=SPX.world)
(PROTOCOL=SPX)
(Service=MAD1_LSNR))
)
(CONNECT_DATA =
(SID = ORCM)
(GLOBAL_NAME = ORACLE.world)
)
)
ORAWWW.WORLD=
(DESCRIPTION =
(ADDRESS=
(COMMUNITY=TCP.world)
(PROTOCOL=TCP)
(Host=17.6.15.9)
(Port=1521))
(CONNECT_DATA =
(SID = ORC2)
(GLOBAL_NAME = ORAWWW.world)
)
)
ORAPHL.WORLD=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=
(COMMUNITY=TCP.world)
(PROTOCOL=TCP)
(Host=17.1.15.4)
(Port=1521))
(ADDRESS=
(COMMUNITY=SPX.world)
(PROTOCOL=SPX)
(Service=PHL_ORA_LSNR))
)
(CONNECT_DATA =
(SID = ORCP)
(GLOBAL_NAME = ORAPHL.world)
)
)
MUN.WORLD=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=
(COMMUNITY=TCP.world)
(PROTOCOL=TCP)
(Host=17.11.1.5)
(Port=1521))
(ADDRESS=
(COMMUNITY=SPX.world)
(PROTOCOL=SPX)
(Service=MUN_ORA_LSNR))
(ADDRESS=
(COMMUNITY=IPC.world)
(PROTOCOL=IPC)
(KEY=MUN_ORA_LSNR))
)
(CONNECT_DATA =
(SID = MUNC)
(GLOBAL_NAME = MUNCHEN.world)
)
)
NYK.WORLD=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=
(COMMUNITY=TCP.world)
(PROTOCOL=TCP)
(Host=17.13.7.1)
(Port=1521))
(ADDRESS=
(COMMUNITY=IPC.world)
(PROTOCOL=IPC)
(KEY=ORC1))
(ADDRESS=
(COMMUNITY=SPX.world)
(PROTOCOL=SPX)
(Service=NYR1_LSNR))
)
(CONNECT_DATA =
(SID = ORC1)
(GLOBAL_NAME = NYORK.world)
)
)
PET.WORLD=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 171.12.14.5)(PORT = 1521))
(CONNECT_DATA = (SID = ORC1))
)
.
.
.
Файл LISTENER.ORA уникален для каждого сервера. Для одного из Объединений он имеет следующий вид:
################
# Filename......: listener.o
# Name..........: NYR1.world
# Date..........: 26-MAY-99 15:12:33
################
SQLNET.AUTHENTICATION_SERVICES = (NONE)
USE_PLUG_AND_PLAY_LISTENER = OFF
USE_CKPFILE_LISTENER = OFF
LISTENER=
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = TCP.world)
(PROTOCOL = TCP)
(Host = 171.15.36.2)
(Port = 1521)
)
(ADDRESS =
(COMMUNITY = IPC.world)
(PROTOCOL=IPC)
(KEY=ORC1)
)
(ADDRESS =
(COMMUNITY = SPX.world)
(PROTOCOL = SPX)
(Service = NYR1_LSNR)
)
)
STARTUP_WAIT_TIME_LISTENER= 0
CONNECT_TIMEOUT_LISTENER= 10
TRACE_LEVEL_LISTENER= OFF
SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = NYORK.world)
(SID_NAME = ORC1)
(ORACLE_HOME = VOL1:ORANW804)
(PRESPAWN_MAX = 10)
)
)
Это примеры файлов для сервера, на котором располагается только одна БД. Если на сервере также располагается другая БД, то файл LISTENER.ORA корректируется, а файлы TNSNAMES.ORA обоих БД объединяются.
Вот пример файла LISTENER.ORA, если установлено две БД Oracle:
LISTENER=
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = IPC)
(KEY = NWG_ORA_LSNR)
)
(ADDRESS =
(PROTOCOL = TCP)
(HOST = 171.15.36.2)
(PORT = 1521)
)
)
STARTUP_WAIT_TIME_LISTENER= 0
CONNECT_TIMEOUT_LISTENER= 10
TRACE_LEVEL_LISTENER= OFF
SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC =
(SID_NAME = NYOR)
)
(SID_DESC =
(SID_NAME = ORCL)
)
)
#EZCFG_VER=1.1.0.0.0
Файл CONFIG.ORA находится в подкаталоге сервера ORANW804\NLM. Ниже приводится его пример (кодовая страница в данном случае «досовская»):
OS_NAME=netware
ORACLE_HOME=VOL1:ORANW804
NLS_LANG=AMERICAN_AMERICA.RU8PC866
RDBMS80=VOL1:ORANW804\RDBMS80
PLSQL80=VOL1:ORANW804\PLSQL80
NW_ENABLE_SID_SUPPORT=TRUE
# Setting NW_FSTYPE to DFS is not supported on
# volumes with Block Suballocation On
NW_FSTYPE=CLIB
ORA_NLS33=VOL1:ORANW804\NLSRTL33
ORA_NLS_PROFILE=VOL1:ORANW804\NLSRTL33
NLSRTL33=VOL1:ORANW804\NLSRTL33
UTILITY_MSG=VOL1:ORANW804\RDBMS80
API=VOL1:ORANW804\RDBMS80
LOCAL=NYK.world
NET80=VOL1:ORANW804\NET80
# Setting NW_FSTYPE to DFS is not supported on
# volumes with Block Suballocation On
PLUS80=VOL1:ORANW804\PLUS80
SQLPATH=VOL1:ORANW804\PLUS80
PRO80=VOL1:ORANW804\PRO80
|