Установка Oracle
8.1.7 на Red Hat Linux 7.2
Команды, которые могут
потребоваться:
Для установки потребуются следующие
файлы:
3. Пользователь Oracle, папки и
переменные окружения (*3)
8. Переключаюсь в другое окно под
root
10. Языки продукта выбирать не надо
13. Под root правим 102 и 156 строки
файла
14. Под root запускаем исправленный
root.sh
16. Прерываем выполнение netassist
18. Возвращаемся к инсталлеру и
заново запускаем netassist
19. Разкоментируем в профиле
настройки
23. Для нормального отображения
русских букв на клиенте ставим патч
Копирование существующей базы с машины БД1 на БД2
http://daemonnews.opennet.ru/docs/RUS/inst_oracle/index.html
http://www.sql.ru/forum/actualtopics.aspx?bid=3
/dev/had |
|
|
|
/dev/hda1 |
47 |
ext3 |
/boot |
/dev/hda2 |
18505 |
ext3 |
/home/dbf |
/dev/hda3 |
18552 |
ext3 |
/home |
/dev/hda4 |
20113 |
Расширенный |
|
/dev/hda5 |
13837 |
ext3 |
/ |
/dev/hda6 |
4997 |
ext3 |
/usr |
/dev/hda7 |
1020 |
swap |
|
/dev/hda8 |
259 |
ext3 |
/var |
ps ax | more посмотреть список процессов (ps -A)
kill –9 NN убить процесс по номеру NN
df –m количество свободного места в мегабайтах
su зайти под другим юзером
top объем памяти и процессы в ней
tar xvf имя_архива –C куда_распаковать распаковать архив
tar rvf имя_архива вайлы_для_упаковки создать архив
1) дополнительные пакеты
compat-glibc-6.2-2.1.3.2
compat-egcs-c++-6.2-1.1.2.16
compat-libs-6.2-3
2) Java машина
jdk118_v3 (с любой другой может не работать)
3)
Файл с переменными
окружения:
.bash_profile
Набор командных файлов:
*1
*2
*3
*4
*5
6
8_befo_root_sh
9_oratab
Автозапуск, автостоп Oracle:
*Oracle_Avto_Start_Stop
oracle
oratab
*orainit
4)Патчи
i386-glibc-2.1-linux.tar
glibc-2.1.3-stubs.tar
Файл *start создает папку install (из которой все устанавливается) и распаковывает в нее все архивы.
rpm -i
compat-glibc-6.2-2.1.3.2.i386.rpm
rpm -i
compat-egcs-6.2-1.1.2.16.i386.rpm
rpm -i
compat-libs-6.2-3.i386.rpm
cd /tmp
tar xvzf jdk118_v3-glibc-2.1.3.tar.gz
mv jdk118_v3 /usr/local
cd /usr/local
ln -s jdk118_v3 java
groupadd
dba
groupadd
oinstall
useradd
oracle -g oinstall -G dba
cp
.bash_profile /home/oracle/.bash_profile
chown -R
oracle:dba /home/oracle
mkdir
/home/dbf/app
mkdir
/home/dbf/app/oracle
mkdir
/home/dbf/app/oracle/product
mkdir
/home/dbf/app/oracle/product/8.1.7
chown -R
oracle:dba /home/dbf
passwd
oracle
Патч необходим для установки Oracle. Он заменяет оригинальные glibc,
сохранив их в папке saved.
tar xvf
i386-glibc*.tar -C /
cd /usr/bin
mkdir saved
mv gcc cc
ld saved
cd /usr/bin
ln -s
/usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-gcc gcc
ln -s gcc
cc
ln -s
/usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld ld
cd /usr/lib
mkdir saved
mv libc.so
libdl.so libm.so libpthread.so saved
mv libc.a
libdl.a libm.a libpthread.a saved
./runInstaller
Далее в инсталлере:
Адресат/Путь: /home/dbf/app
Имя группы пользователей Unix: oinstall
и запускаю orainstRoot.sh (о чем собственно напомнит installer)
cd /u01/app/oracle/product/8.1.7.0.1
./orainstRoot.sh
Он создаст файл /etc/oraInst.loc и сменит группу (Changing groupname of /app/oracle/oraInventory to oinstall)
- Custom
(там уже есть Русский и Английский)
менять не надо
– No (все равно не создаст)
Далее на этапе связывания (на 11%) будет ругаться на файлы типа *.mk – пропустить.
(8_befo_root_sh)
app/oracle/product/8.1.7.1./root.sh
Then at line 102 we have
RMF=/bin/rm -f
which is obviously wrong since "/bin/rm -f" should be quoted.
and finally, at line 156 we have:
RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}`
which should obviously be:
RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}’’
(У нас отругался на то, что ORACLE_SID не установлен, скопировали root.sh с другой машины и запустили его – все прошло ок)
он создаст файл /etc/oratab
(Кнопка Стоп) но инсталлер не закрываем
Данный патч исправляет ошибку возникающую из за того что Oracle 8.1.7 был собран с не правильной версией glibc. Патч необходимо установить после инсталляции Oracle 8.1.7 но до того как будут созданы базы.
17.1 Распаковываю патч glibc-2.1.3-stubs.tar (под пользователем Oracle) в /home/dbf/app
Внимание! Для работы этого патча в профиле должны быть закомментированы строки (патч с ними конфликтует):
17.2 Коментируем:
# +--------------------------+
# | LINUX STUFF |
# +--------------------------+
# export LD_ASSUME_KERNEL=2.2.5
# export LDEMULATION=elf_i386_glibc21
# export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/
# source /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
17.3 Загружаемся в другую (например текстовую Ctrl+Alt+F2) консоль и выполняем
./setup_stubs.sh
Он должен выполниться без сообщений об ошибках.
После его выполнения можно проверить, запускается ли
$ORACLE_HOME/bin/svrmgrl
(должен запускаться без сообщений об ошибках)
$ORACLE_HOME/bin/lstnrctl
- принимает сетевые вызовы (прослушивающий процесс)
(Кнопка Повторить)
(у нас запустился)
# +--------------------------+
# | LINUX STUFF |
# +--------------------------+
export LD_ASSUME_KERNEL=2.2.5
export LDEMULATION=elf_i386_glibc21
export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/
source /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
, запускаем /app/bin/dbassist
(у нас запустился)
21.1 Custom
21.2 OLTP / Data Warehousing / Multipurpose – типы БД
OLTP – много пользователей с одновременными транзакциями (оперативная работа)
Data Warehousing – построение сложных отчетов, сложные выборки, маленьких
транзакций мало
Multipurpose – смешанный тип
21.3 Dedicated Server Mode / Shared Server Mode –
Dedicated Server Mode – лучше для небольшого числа пользователей (менее 100)
Shared Server Mode – необходимо для большого количества пользователей, но требует включения и настройки режима MultiThreadServer
21.4 Опции
Опции (options) сервера - это дополнительные возможности по обработке или хранению данных, иногда нереляционных. Раньше опции назывались картриджами (cartridge), и было более понятно, что это как бы дополнение сервера БД. Теперь все интегрировано, и поэтому часто бывает неожиданностью, что за них иногда надо платить отдельно.
Oracle partiton option представляет собой средство для работы со
сверхбольшими базами данных. При этом данные находясь логически в одной
таблице, физически располагаются в ее частях, называемых партициями.
Oracle
Context Option позволяет хранить и обрабатывать тексты в БД. При этом тексты
могут быть даже в форматах PDF, Word и т.д., а текст можно искать не только по
полному совпадению, а скажем все словоформы. При некоторых условиях все
это работает и с русским языком. Точнее со словоформами все получиться
только при использовании Russian Context Optimizer (RCO).
Advanced Security - возможности по дополнительной защите БД.
Oracle Time Series – работа с временем, датами, календарь
Oracle Spatial – работа с пространственными данными (типа ГИС)
Oracle Jserver - это такая штука, которая позволяет писать (и исполнять) код для server-side приложение не только на PL/SQL, но и на Java
Oracle Intermedia – обработка медиа информации (например видео), не работает без Jserver
Advanced Replication – для репликаций в любом направлении
21.5 Compatible – ставим 8.1.0
CharSet – обе ставим в CL8MSWIN1251
21.6 Настраиваем размеры Tablespace
21.7 Archive Log – режим постоянного сохранения всех изменений, при его включении необходимо настроить архивное копирование изменений на другой винт и удалять накопленные логи.
21.8 Настройка памяти
SHARED_POOL_SIZE – для начала 128М а потом настраивать (в байтах)
128*1024*1024 = 134217728
DB_BLOCK_BUFFERS – 25% доступной оперативной памяти (берем 64М)(в блоках)
64*1024*1024/ DB_BLOCK_SIZE=16384
DB_BLOCK_SIZE - Этот параметр управляет количеством данных, которые база данных может считать в память в течение одной транзакции ввода/вывода. (например 4096)
выполняем скрипт *Oracle_Avto_Start_Stop
Он копирует файл oracle в /etc/sysconfig
а файл orainit в автозапуск и автостоп
Так же в /etc должен находится файл oratab со строкой:
$ORACLE_SID:$ORACLE_HOME:Y
(linora:/home/dbf/app:Y)
, если его там нет, нужно его туда скопировать. Y по умолчанию не стоит.
fixmsg.tgz
(разархивируем и ./ fixmsg)
С установкой все.
sys/change_on_install
system/manager
dbsnmp/dbsnmp
1) Копируем с БД1 на БД2 файл
$ORACLE_HOME/admin/$ORACLE_SID/pfile/initORACLE_SID.ora
Исправляем в нем ORACLE_SID и пути
2) Запускаем файл $ORACLE_HOME/bin/orapwd
orapwd file=$ORACLE_HOME/dbs/orapwORACLE_SID password= change_on_install
По указанному пути дожен создаться файл orapwORACLE_SID
3) В папке $ORACLE_HOME/dbs создаем символическую ссылку на файл
$ORACLE_HOME/admin/$ORACLE_SID/pfile/initORACLE_SID.ora
4) Копируем файлы из $ORACLE_HOME/assistants/dbca с БД1 на БД2
initdbf.sql
linorarun.sh
linorarun1.sh
linorarun2.sh
linoraalterTablespace.sh
Исправляем в них ORACLE_SID и пути
и запускаем initdbf.sql
5) С помощью клиента создаем недостающие табличные пространства и делаем полный импорт.
(
Не проверенная информация:
Далее скачиваем и устанавливаем JRE 1.1.8 (http://www.blackdown.org), входящая в дистрибутив Oracle 8.1.7 Java в 80% случаев не работает, причину я не знаю.
подправляем конфигурационный файл инсталятора /mnt/oracle/install/oraparam.ini, в переменную JRE_LOCATION прописать путь к новой Jave (JRE_LOCATION=/usr/local/jre118_v3, я установил новый JRE в этот каталог), дистрибутив в моем случае находится в каталоге /mnt/oracle.
Для создания БД можно воспользоваться утилитой $ORACLE_HOME/bin/dbassist - это Java приложение, позволяет легко создать новую или скопировать демонстрационную БД.
dbassist по умолчанию пытается использовать Java из дистрибутива, но также как и при запуске инсталлятора Java из дистрибутива может не работать. Здесь два выхода:
1. Подправить путь к JRE в скрипте dbassist или
2. Заменить символическую ссылку $ORACLE_HOME/JRE (Она ведет на Java из дистрибутива), на такуюже но ведущую к новой (/usr/local/jre118_v3)
)