ArcSDE&Oracle9i на Linux

0 голосов
спросил 14 Июль, 03 от igorstr (6,660 баллов) в категории Программные продукты Esri

Сегодня доделал доку по установке ArcSDE&Oracle9i на Linux. Делал, естественно не с нуля, а правил описание Дрезюля Дмитрия (классное описание, но меня что-то не устроило, что-то просто не работало). В общем, получайте. Копия скоро появится в тех. поддержке

Установка Oracle 9i и ArcSDE 8.3 на Linux RedHat 8.0
 
У меня имелся следующий сервер:
Процессор P4 2.26 ГГц
Винчестер: 7 Гб (Виртуальная машина под XP, 6ГБ не хватает)
Память 272 Мб DDR (Виртуальная машина под XP)

Качаю дистрибутив линукса отсюда ftp.uib.no/pub/linux/iso-images/

Скачал следйющие диски:

Redhat80-i386-disc1.iso
Redhat80-i386-disс2.iso
Redhat80-i386-disс3.iso (остальные не требуются)

Для инсталятора оракла нужен Sun JDK 1.3.1 для замены стандартного 
jre который идет в поставке с ораклом. Качаю его c сайта www.sun.com

j2sdk-1_3_1_08-linux-i586.bin
Это самораспаковывающийся архив.


Далее с сервера www.oracle.com скачиваю дистрибутив оракла под линукс 
для этого нужно зарегестрироваться на сайте:

lnx_920_disc1.cpio.gz
lnx_920_disc2.cpio.gz
lnx_920_disc3.cpio.gz 

Создаю диски и iso имиджей Линукса.

Инсталирую Линукс в варианте Server, вполне можно ставить в оконном режиме.
Так получается даже удобнее.
Не забываем поставить mc - линуксовый вариант NC.

При инсталяции идем в авторазбиение и изменяем разделы так:
/boot	75Mb
/usr	1800 Mb
/	750 Mb (можно и меньше, но там ведь темповый каталог)
swap	650 Mb
/opt	- все остальное (3.88 Gb)

Настройка Linux.

1. Не забываю задать IP-адрес (динамический по каким-то причинам не работал) и реальное имя машине.

Открываю (в gedit) файл /etc/profile и вставляю в него записи переменных 
окружения это общий profile файл поэтому эти переменные будут 
у всех пользователей.

ORACLE_BASE=/opt/vendor/oracle
ORACLE_HOME=/opt/vendor/oracle/9.2.0.1.0
ORACLE_SID=orcl
SDEHOME=/opt/vendor/esri/sdeexe83
NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
TNS_ADMIN=/opt/vendor/oracle/9.2.0.1.0/network/admin/tnsnames.ora
ESRI_ARCSDE_LICENSE_FILE <номер_порта>@<имя_лиц_сервера> (Имя лиц_сервера надо прописать в /etc/hosts)

export ORACLE_BASE ORACLE_HOME ORACLE_SID SDEHOME TNS_ADMIN ESRI_ARCSDE_LICENSE_FILE NLS_LANG

PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:$SDEHOME/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:$SDEHOME/lib:/lib/usr:/lib:/usr/local/lib
		
export PATH LD_LIBRARY_PATH

Здесь экспортируются домашния директория оракла, путь к базам данных оракла
и название базы данных которая создастся при установке (с другим названием базы были 
проблемы вроде "файл не найден").

2.	Копирую j2sdk-1_3_1_08-linux-i586.bin в каталог /usr/local и запускаю:
#sh j2sdk-1_3_1_08-linux-i586.bin
В итоге получаю такую директорию: jdk1.3.1_08

Делаю символическую ссылку на нее:

#ln -fs ./jdk1.3.1_08 ./jdk
Далее в дистрибутиве оракла надо будет изменить путь к jdk.

3. Cо дисков RedHat инсталлирую следующие пакеты необходимые для 
запуска инсталятора Оракла: 

glibc-common-2.2.93-5.i386.rpm		(disk1)
glibc-2.2.93-5.i386.rpm			(disk1)
glibc-2.2.93-5.i686.rpm			(disk1)
glibc-common-2.2.93-5.i386.rpm		(disk1)
glibc-kernelheaders...rpm			(disk1)
libstdc++-devel-3.2.7.i386.rpm		(disk1)
compat-libstdc++-7.3-2.9.6.110.i386.rpm	(disk2)
compat-libstdc++-devel-7.3-2.9.6.110.i386.rpm	(disk2)
compat-gcc-7.3-2.96.110.i386.rpm		(disk2)
compat-libgcj-7.3-2.96.110.i386.rpm		(disk2)
compat-libgcj-devel-7.3-2.96.110.i386.rpm	(disk3)
nss_db-compat-2.2-17.i386.rpm		(disk3)
pdksh-5.2.14-19.i386.rpm			(disk3)

Кроме того, ставим Developer Tools (по умолчанию + gcc-objc), это 200-300 мегов, но без чего-то
из этого набора Oracle ставиться отказывается.

Если этого действия не выполнить то при запуске инсталятора будет 
выдаваться ошибка.

Устанавливать можно из графич интерфейса (мне кажется - так удобнее), 
а можно и из командной строки:
#rpm -I compat-libstdc++-7.3-2.9.6.110.i386.rpm

4. Меняю настройки ядра.

echo 250 32000 100 100 > /proc/sys/kernel/sem
echo 2147483648 > /proc/sys/kernel/shmmax
echo 4096 > /proc/sys/kernel/shmmni
echo 2097152 > /proc/sys/kernel/shmall
echo 65536 > /proc/sys/fs/file-max
echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

Для того чтоб эти настройки оставались и после перезагрузки добавляю их в файл 
/etc/rc.d/rc.local (в gedit)

Мой файл выглядит таким образом:

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don\'t
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
echo 250 32000 100 100 > /proc/sys/kernel/sem
echo 2147483648 > /proc/sys/kernel/shmmax
echo 4096 > /proc/sys/kernel/shmmni
echo 2097152 > /proc/sys/kernel/shmall
echo 65536 > /proc/sys/fs/file-max
echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

5. Создаю пользователя oracle и группу dba.
#groupadd dba
#useradd -g dba oracle
Это же можно сделать и из графического интерфейса

6.	Создаю директорию vendor в директории /opt и даю всем пользователям права на 
запись в нее.

#chmod 777 /opt/vendor

7.	Копирую три файла с дистрибутивом оракла в каталого /home/oracle и 
распаковыйваю его.
#su oracle
#gzip -d lnx_920_disk1.cpio.gz
#gzip -d lnx_920_disk2.cpio.gz
#gzip -d lnx_920_disk3.cpio.gz
#cpio -idmv < lnx_920_disk1.cpio
#cpio -idmv < lnx_920_disk2.cpio
#cpio -idmv < lnx_920_disk3.cpio
В итоге получаю три директории Disk1 Disk2 и Disk3.

Можно сделать дистрибутивы на CD (диски должны содержать содержимое каталогов Disk1 Disk2 и Disk3), 
метки дисков должны быть orcl920 (по крайней мере, у второго и третьего). 
На втором и тертьем дисках не должно быть ни одного лишнего файла, только содержимое *.cpio.

8.	Внесение изменений в дистрибутив оракла.

В файле /home/oracle/Disk1/install/linux/oraparam.ini

Значение JRE_LOCATION изменяем на  /usr/local/jdk.
 (в моем дистрибутиве это уже сделано на CD)

9.	Все, теперь осталось запустить X-сервер и запустить файл 
/home/oracle/Disk1/runInstaller.

Я (Дмитрий) выполнял инсталляцию на удаленной машине поэтому выполнил следующие 
действия:

На сервере:
#export DISPLAY=10.0.0.100  #адрес моей рабочей станции с запущеным X сервером

На рабочей станции:
#xhost +   # разрешил всем хостам подключатся к моей рабочей станции.

Если ставить локально, да еще и перед этим Linux ставить сразу с XWindow - то эти 
действия (п. 9) пропускаем.

10. При установке указываете группу для работы с ораклом - dba.
Не забудьте включить поддержку русского языка в Product languages.
Ставим Oarcle Standart, базу - Custom.

в процессе у меня возникла ошибка:
Непомню как точно но что то про /ctx/lib/ins_ctx.mk

Это происходит в то время когда оракл делает следующее:
/usr/bin/make -f ins_ctx.mk install 
ORACLE_HOME=/opt/oracle/product/9.2.0  

Для ее устранения надо внести изменения в файл 
/opt/vendor/oracle/9.2.0.1.0/ctx/lib/env_ctx.mk 

В строке где встречается \"INSO_LINK =\", добавить \"$(LDLIBFLAG)dl\" 

Так выглядит исправленная строка: 
INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl $(LDLIBFLAG)sc_ca 
$(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut 
$(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi $(LLIBCTXHX) $(LDLIBFLAG)c -Wl,-
rpath,$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS)  
 
После этого нажимаю Retry и ошибка исчезает.

Если возникает ошибка по поводу ntcontab.o - не стоят Developer Tools

Все после этого оракл создает базу данных и заканчивает инсталляцию.
При создании базы:
Параметры распределения памяти:
Shared Poll	80MB
Buffer Cache	60Mb
Java Pool		32Mb
Lage Pool	16Mb
PGA		24Mb
Язык:
Character set	CL8MSWIN1251
National char set	UTF8

2 Ответы

0 голосов
ответил 30 Авг, 03 от Гость (210,080 баллов)

"Можно и обычных юзеров и табличных пространств  для данных сделать.
Не забывайте только им сначала нелимитированные квоты на табл. пространства SDE и TEMP..."

Описание не пробовал, но прочитал. Подробное. Воспользуюсь, если будет нужно. В вышеупомянутом фрагменте - зачем давать quota unlimited on <tablespace sde> пользователям?

0 голосов
ответил 02 Фев, 04 от igorstr (6,660 баллов)
unlimited on <tablespace sde> пользователям задавал, поскольку для меня это самый легкий путь дать права на работу в табличном пространстве SDE. (При коннекте юзер должен создать лог в tablespace sde).
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...