Как установить Oracle 18c (Enterprise Edition) в Ubuntu 18.04?
Этот вопрос остается без ответа с момента выпуска Oracle 18c. За исключением платформы Ubuntu Linux, большая часть другой платформы Linux поддерживает установку Oracle 18c. Я сам проверял это на CentOS 7
и oracle 18c был установлен без сбоев!
К сожалению, корпорация Oracle не документировала процедуру установки, особенно для Ubuntu Linux platform
Тем не менее, одна хорошая вещь заключается в том, что файл изображения db_home.zip
является общим, устанавливается на все платформы Linux.
Итак, как я могу установить Oracle 18c (Enterprise Edition) в Ubuntu 18.04?
6 ответов
Давайте начнем с первой части сессии ответов.
1. Предварительное условие:
1.1. Требуется место для хранения
- Oracle скачать файл
db_home.zip
чей размер составляет 4,3 ГБ. Если у вас нет так много места для хранения либо в$HOME
каталог или/tmp
, вы можете использовать Pendrive объемом не менее 8 ГБ для хранения загруженного файлаdb_home.zip
пока извлечение не сделано. - Как мы собираемся установить Oracle на каталог
/opt
в нем должно быть неиспользованное свободное пространство не менее 13 ГБ, поскольку само извлечение Oracle будет занимать около 9,3 ГБ дискового пространства. Используйте следующую команду для проверки/opt
пространство для хранения разделов:
$ df -h /opt
Figure-1: Amount of free space available under "/opt" partition.
1.2. JDK-11 установлен на вашем компьютере.
$ echo $JAVA_HOME
Figure-2: Installation of JDK-11 is already done.
1.3. Включить поддержку Multi-Arch (32-bit support).
Перед включением 32-bit support
для 64-битной Ubuntu 18.04, давайте проверим, что у вас есть 64-битная архитектура ядра:
$ dpkg --print-architecture
Figure-3: This Computer system has 64-bit Kernel Architecture.
Поддержка нескольких арок позволяет использовать 32-битные библиотеки наряду с 64-битными библиотеками.
$ dpkg --print-foreign-architectures
Figure-4: This Computer system also supports i386 Architecture (i.e. supports 32-bit Libraries too).
Если вы получите результат, подобный рисунку 4, то вам следует прервать этот шаг и перейти к следующему шагу 1.4.
Включите поддержку нескольких арок, набрав:
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
Начинается загрузка обновления и запуск. После этого вы даете следующую команду:
$ sudo apt-get dist-upgrade
Теперь проверьте поддержку i386, набрав следующее, и вы должны получить вывод, подобный рисунку 4:
$ dpkg --print-foreign-architectures
1.4. Установите пакеты Dependancy, необходимые для установки Oracle.
Выполните следующие команды для установки зависимых пакетов:
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential libaio1 libaio-dev rpm rpm-common ndctl
1,5. Создать символические ссылки.
Создайте необходимые программные ссылки, чтобы при установке можно было найти нужные файлы в тех местах, где они ожидаются:
$ sudo mkdir -p /usr/lib64
$ sudo ln -s /usr/bin/rpm /bin/
$ sudo ln -s /usr/bin/awk /bin/
$ sudo ln -s /usr/bin/basename /bin/
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libndctl.so.6.10.1 /usr/lib64/libndctl.so
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libnuma.so.1.0.0 /usr/lib64/libnuma.so
Узнайте, кому это /bin/sh
указывая на:
$ ls -l /bin/sh
Figure-5: '/bin/sh' points towards 'dash' shell
Если /bin/sh
указывает на dash
оболочка (см. рисунок-5 выше), значит, вы хороши! Теперь вы нарушаете этот шаг и переходите к следующему шагу 1.6.
Figure-6: /bin/sh points towards 'bash' shell
Если это bash
shell, как показано на рисунке 6, затем создайте следующие символические ссылки:
$ sudo ln -s /usr/lib/x86_64-linux-gnu/crti.o /usr/lib64/
$ sudo ln -s /usr/lib/x86_64-linux-gnu/crtn.o /usr/lib64/
$ sudo ln -s /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib64/
1.6. Настройте параметры ядра с /etc/sysctl.conf
:
Чтобы настроить параметры ядра, просто выполните следующую процедуру:
$ sudo cp /etc/sysctl.conf /etc/sysctl.conf.back
$ sudo vi /etc/sysctl.conf
Скопируйте и вставьте ниже содержимое в файл.
# ------------------------------------------------
# kernel parameter configuration for 18c installation
# 1. Configure kernel shared memory segment
# Calculate shmmax and shmall based on your Computer system RAM (physical memory).
# shmmax = (half the size of RAM in bytes) = (16 GB / 2) * 1024*1024*1024 = 8589934592 bytes
# (or) = (one quarter of RAM in bytes) = 4294967296 bytes
# shmall = shmmax/pagesize = 8589934592 / 4096 = 2097152 pages
# 2. Configure kernel semaphore parameters which are semmsl, semmns, semopm and semmni respectively.
# kernel.sem = semmsl semmns semopm semmni = 250 32000 100 128
#
# to display all kernel parameters, issue this command: sysctl -a
# to display current kernel parameters, issue this command: sysctl -p
# -------------------------------------------------------
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 8589934592
kernel.sem = 250 32000 100 128
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
Сохраните и выйдите из редактора vi.
Запустите следующую команду, чтобы отобразить текущие параметры ядра.
$ sudo sysctl -p
Figure-7: The list of Kernel Parameters configured in "/etc/sysctl.conf" file.
1.7. Настройка ограничений оболочки для пользователя oracle
Исторически ограничения ресурсов для процессов определены в /etc/security/limits.conf
, Этот файл читается во время входа в систему для пользователей, которые входят в систему с помощью PAM (через файл pam_limits.so
). Однако системные службы, которые запускаются через systemd
не используйте PAM для входа в систему, поэтому ограничения в /etc/security/limits.conf
игнорируются
Выполните вход в GUI и откройте терминал с Ctrl+Alt+T
и введите следующую команду:
$ ulimit -n -s -u -l
Figure-8: Limits for a GUI login with empty '/etc/systemsd/user.conf' file.
Выполните вход в систему без графического интерфейса с помощью команды su <username>
а затем выпустить ulimit
команда:
$ su krishna
$ ulimit -n -s -u -l
Figure-9: Limits for a non-GUI login with empty '/etc/security/limits.conf' file.
1.7.1. Настройте параметры пределов для входов в систему с помощью /etc/systemd/user.conf
файл:
Настроить параметры лимитов system.conf
, просто следуйте приведенной ниже процедуре:
$ sudo cp /etc/systemd/system.conf /etc/systemd/system.conf.back
$ sudo vi /etc/systemd/system.conf
Скопируйте и вставьте следующие строки в файл.
DefaultLimitNOFILE=65535
DefaultLimitNPROC=65535
Сохранить и выйти из vi
редактор.
Настроить лимиты параметров в user.conf
, просто следуйте приведенной ниже процедуре:
$ sudo cp /etc/systemd/user.conf /etc/systemd/user.conf.back
$ sudo vi /etc/systemd/user.conf
Скопируйте и вставьте следующие строки в файл.
DefaultLimitNOFILE=65000
DefaultLimitNPROC=65000
Сохранить и выйти из vi
редактор.
Перезагрузите компьютер, чтобы изменения вступили в силу.
Наблюдение: Когда я попытался изменить параметр DefaultLimitSTACK на различные значения в файлах /etc/systemd/system.conf и /etc/systemd/user.conf, система либо зависла, либо зависла при перезагрузке. Хотя я успешно восстанавливал систему большую часть времени, но дважды мне приходилось переустанавливать операционную систему Ubuntu с нуля, и это было действительно тяжелое время!
Выполните вход в GUI и откройте терминал с Ctrl+Alt+T
и введите следующую команду:
$ ulimit -n -s -u -l
Figure-10: Limits for a GUI login with parameters configured in '/etc/systemsd/user.conf' file.
Выполните вход в систему без графического интерфейса с помощью команды su <username>
а затем выпустить ulimit
команда:
$ su krishna
$ ulimit -n -s -u -l
Figure-11: Limits for a non-GUI login with empty '/etc/security/limits.conf' file.
1.7.2. Сконфигурируйте параметры пределов для не-GUI входов /etc/security/limits.conf
файл:
Настроить лимиты параметров в limits.conf
, просто следуйте приведенной ниже процедуре:
$ sudo cp /etc/security/limits.conf /etc/security/limits.conf.back
$ sudo vi /etc/security/limits.conf
Скопируйте и вставьте ниже содержимое в файл.
#-------------------------------------------------------------------------------------------------
# shell limits for users of oracle 18c
# [domain] is either username or group or the wildcard *, for default entry or
# the wildcard %, can be also used with %group syntax, for maxlogin limit
# [type] is either soft (enforcing soft limits) or hard (enforcing hard limits)
# [item] is among core, data, fsize, memlock, nofile, rss, stack, cpu, nproc, as,
# maxlogin, maxsyslogins, priority, locks, sigpending, msgqueue, nice, rtprio
#[domain][type] [item] [value]
#-------------------------------------------------------------------------------------------------
krishna soft nofile 60000
krishna hard nofile 65535
krishna soft nproc 60000
krishna hard nproc 65535
krishna soft stack 30000
krishna hard stack 32768
krishna soft memlock 3000000
krishna hard memlock 3145728
Сохранить и выйти из vi
редактор.
Перезагрузите компьютер, чтобы изменения вступили в силу. Выполните вход в GUI и откройте терминал с Ctrl+Alt+T
и введите следующую команду:
$ ulimit -n -s -u -l
Figure-12: Limits for a GUI login with parameters configured in '/etc/systemsd/user.conf' file.
Выполните вход в систему без графического интерфейса с помощью команды su <username>
а затем выпустить ulimit
команда:
$ su krishna
$ ulimit -n -s -u -l
Figure-13: Limits for a non-GUI login with parameters configured in '/etc/security/limits.conf' file.
Используйте редактор vi и редактируйте /etc/security/limits.conf
для того, чтобы изменить "krishna"
в "oracle"
потому что имя пользователя krishna
был использован для создания скриншотов и объяснить концепции. Ниже приведены желаемые настройки для установки Oracle:
oracle soft nofile 60000
oracle hard nofile 65535
oracle soft nproc 60000
oracle hard nproc 65535
oracle soft stack 30000
oracle hard stack 32768
oracle soft memlock 3000000
oracle hard memlock 3145728
1.7.3. Как отобразить пределы пользовательского процесса?
Чтобы отобразить пределы пользовательского процесса, все, что вам нужно сделать, это просто "cat"
файл ограничений такой:
$ sudo cat /proc/PID/limits
куда PID
можно узнать используя ps
команда.
$ ps -a | grep -v tty2 | grep gnome-shell
Figure-14: PID for gnome-shell.
$ sudo cat /proc/1202/limits
Figure-15: Soft limits for gnome-shell (marked in red).
MaxStackSize
составляет 8 192 КБ (8388608 % 1024), MaxProcess
63,077, MaxOpenFile
1024 и MaxLockedMemory
16,384 КБ (16777216 % 1024). Сравните эти значения с рисунком-11.
$ ps -a | grep -v tty2 | grep bash
Figure-16: PID for 'bash'.
$ sudo cat /proc/2697/limits
Figure-17: Soft limits for 'bash' (marked in red).
MaxStackSize
составляет 30000 КБ (30720000 % 1024), MaxProcess
это 60000, MaxOpenFile
60000 и MaxLockedMemory
3 000000 КБ (3072000000 % 1024). Сравните эти значения с рисунком-13.
1.7.4. Добавьте pam_limits к вашей конфигурации PAM (сменные модули аутентификации).
/etc/security/limits.conf
позволяет устанавливать лимиты ресурсов для пользователей, вошедших в систему через PAM. Это полезный способ предотвратить, например, использование бомб-вилок всеми системными ресурсами. поскольку /etc/security/limits.conf
читается pam_limits.so
, вам нужно проверить, включен ли этот модуль в файлах: login, common-session, common-session-noninteractive, su
, Сделайте резервные копии перед внесением изменений:
$ sudo cp /etc/pam.d/login /etc/pam.d/login.back
$ sudo cp /etc/pam.d/common-session /etc/pam.d/common-session.back
$ sudo cp /etc/pam.d/common-session-noninteractive /etc/pam.d/common-session-noninteractive.back
$ sudo cp /etc/pam.d/su /etc/pam.d/su.back
Введите следующие команды:
$ echo 'session required pam_limits.so' | sudo tee -a /etc/pam.d/login
$ echo 'session required pam_limits.so' | sudo tee -a /etc/pam.d/common-session
$ echo 'session required pam_limits.so' | sudo tee -a /etc/pam.d/common-session-noninteractive
$ echo 'session required pam_limits.so' | sudo tee -a /etc/pam.d/su
Примечание: см. /var/log/auth.log
файл для любых ошибок, связанных с лимитами.
1,8. Настройте безопасный Linux. Чтобы убедиться, что компьютер настроен для secured linux
введите команду:
$ sestatus
Figure-18: Output confirms that secured linux is not installed which is good.
Если вы получите вывод, как показано выше на рисунке-18, значит, вы хороши! Теперь вы нарушаете этот шаг и переходите к следующему шагу 1.9.
Если вы установили пакет policycoreutils
и если вы получите вывод, как на рисунке 19 ниже, то вы тоже хороши! Вы нарушаете этот шаг и переходите к следующему шагу 1.9.
$ sudo sestatus
Figure-19: Output of 'sestatus' command.
Как вы уже настроили защищенный Linux, так что меняйте SELINUX
помечать как разрешающий, редактируя /etc/selinux/config
файл:
$ sudo cp /etc/selinux/config /etc/selinux/config.back
$ sudo vi /etc/selinux/config
Теперь установите SELINUX
флаг для permissive
:
SELINUX=permissive
Сохранить и выйти из vi
редактор.
Чтобы подтвердить изменения, введите следующую команду:
$ sudo sestatus
Примечание. Так как мой компьютер не был настроен для secure linux
Я не мог сделать скриншот для вышеуказанной команды!
1,9. Отключить прозрачные огромные страницы.
Прозрачные огромные страницы (THP) - это система управления памятью в Linux, которая сокращает накладные расходы при поиске в трансляции Lookaside Buffer (TLB) на машинах с большим объемом памяти за счет использования больших страниц памяти.
Тем не менее, рабочие нагрузки базы данных часто работают плохо с THP, потому что они, как правило, имеют разреженные, а не непрерывные шаблоны доступа к памяти. Общая рекомендация для MySQL
, MongoDB
, Oracle
и т. д. отключить THP на машинах Linux, чтобы обеспечить лучшую производительность.
Вы можете проверить, включен ли THP или нет, запустив:
$ cat /sys/kernel/mm/transparent_hugepage/enabled
Figure-20: The output shows THP 'enabled' is set to default value '[madvise]' in this computer at present.
$ cat /sys/kernel/mm/transparent_hugepage/defrag
Figure-21: The output shows THP 'defrag' is set to default value '[madvise]' in this computer at present.
Если цифра-20 и фигура-21 показывают вывод как [never]
тогда THP не включен и не запущен.
Как отключить THP в течение всего текущего сеанса?
Теперь выполните следующие команды:
$ su -
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# exit
$ cat /sys/kernel/mm/transparent_hugepage/enabled
Figure-22: The output shows THP enabled is stopped from this computer as indicated by the value '[never]'.
$ su -
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# exit
$ cat /sys/kernel/mm/transparent_hugepage/defrag
Figure-23: The output shows THP 'defrag' is stopped from this computer as indicated by the value '[never]'.
Как отключить THP постоянно и постоянно навсегда?
Однако после перезагрузки системы она снова вернется к значению по умолчанию. Чтобы сделать настройку постоянной в Ubuntu 18.04, вы можете отключить THP при запуске системы, выполнив systemd
единичный файл:
$ sudo vi /etc/systemd/system/disable-thp.service
Скопируйте и вставьте следующее в файл /etc/systemd/system/disable-thp.service
:
# ---------------------------------------------------
# Disable THP in Ubuntu 18.04:
# ---------------------------------------------------
[Unit]
Description=Disable Transparent Huge Pages (THP)
[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"
[Install]
WantedBy=multi-user.target
Чтобы включить и запустить /etc/systemd/system/disable-thp.service
файл при запуске, введите следующие команды:
$ sudo systemctl daemon-reload
$ sudo systemctl start disable-thp
$ sudo systemctl enable disable-thp
Figure-24: The THP disable service is enabled to start up at boot time.
$ sudo systemctl status disable-thp
Figure-25: The THP disable service has started successfully.
Теперь, чтобы убедиться, что THP постоянно отключен, введите следующую команду:
$ cat /sys/kernel/mm/transparent_hugepage/enabled
Figure-26: The output shows THP 'enabled' is turned off persistently as indicated by the value '[never]'.
$ cat /sys/kernel/mm/transparent_hugepage/defrag
Figure-27: The output shows THP 'defrag' is turned off persistently as indicated by the value '[never]'.
1.10. Финальные контрольные точки, имеющие отношение к установке Oracle.
1.10.1. Используйте следующую команду для определения физического объема оперативной памяти на сервере:
$ grep MemTotal /proc/meminfo
Figure-28: Abundant Physical RAM is available (16 GB).
Примечание. Если размер физической оперативной памяти, установленной в системе, меньше необходимого размера (2 ГБ), то перед продолжением необходимо установить больше памяти.
1.10.2. Определите размер настроенного пространства подкачки:
$ grep SwapTotal /proc/meminfo
Figure-29: Abundant Memory is available for swap partition (16 GB).
Примечание. Если размер подкачки в системе меньше требуемого (см. Таблицу ниже, recommended by oracle
), затем вы должны настроить больше памяти, прежде чем продолжить.
RAM Swap Space
Between 1 GB and 2 GB 1.5 times the size of RAM
Between 2 GB and 16 GB Equal to the size of RAM
More than 16 GB 16 GB
1.10.3. Определить размер настроенного /tmp
пространство:
$ df -h /tmp
Figure-30: Abundant Memory is available for '/tmp' partition (16 GB).
Примечание: если размер /tmp
памяти в системе меньше необходимого размера (400 МБ), затем выполните одно из следующих действий:
- Удалите ненужные файлы из
/tmp
каталог для удовлетворения требований дискового пространства. - Когда вы устанавливаете среду пользователя Oracle, также устанавливаете
TMP
а такжеTMPDIR
переменные окружения в каталог, который вы хотите использовать вместо/tmp
,
1.10.4. Определите объем свободной оперативной памяти и дискового пространства в системе:
$ free -h
Figure-31: A glance of Free RAM (physical) and swap (disk space) available on the system.
1.10.5. Определите, может ли системная архитектура запускать программное обеспечение:
Убедитесь, что архитектура процессора соответствует версии программного обеспечения Oracle для установки. Например, вы должны увидеть следующее для x86-64
битовая система.
$ uname -m
Figure-32: The output shows that the computer system has 64-bit architecture.
Если вы не видите ожидаемый результат, вы не можете установить программное обеспечение в этой системе
1.10.6. Пример таблицы разделов для SSD на 120 ГБ, подходящей для установки Oracle:
У меня есть SSD на 120 ГБ, на котором была установлена Ubuntu. Вот мои подробности раздела:
Sl.No: Partition File System Device Allocated Size Partition Type
1 efi FAT32 /dev/sda1 0.5 GB Primary
2 swap Swap area /dev/sda2 16 GB Primary
3 / ext4 with journaling /dev/sda3 6 GB Primary
4 /usr ext4 with journaling /dev/sda4 16 GB Primary
5 /opt ext4 with journaling /dev/sda5 44 GB Primary
6 /tmp ext2 /dev/sda6 16 GB Primary
7 /var ext4 with journaling /dev/sda7 8 GB Primary
8 /home ext4 with journaling /dev/sda8 13.5 GB Primary
Я настроил эту настройку разделов особенно с учетом Oracle 18c (Enterprise Edition)
1.10.7. Проверьте эту общую память ( /dev/shm
) правильно смонтирован с достаточными размерами:
Выполните следующую команду, чтобы проверить доступность общей памяти и ее общий размер:
$ df -h /dev/shm
Figure-33: The tmpfs filesystem mounted on '/dev/shm' and has 7.8 GB of total shared memory.
Чтобы уменьшить ограничение с 7,8 ГБ до 7,0 ГБ, введите следующую команду:
$ sudo mount -o remount,size=7G /dev/shm
$ df -h /dev/shm
Figure-34: The '/dev/shm' shared memory size has changed from 7.8 GB to 7 GB.
Ограничить любую модификацию по размеру /dev/shm
постоянно и чтобы убедиться, что файловая система в памяти монтируется при перезагрузке системы, поместите эту запись в /etc/fstab
файл следующим образом:
Сначала сделайте резервную копию:
$ sudo cp /etc/fstab /etc/fstab.back
Измените параметр размера на 8 ГБ:
$ echo '# To restrict any modification on the size of /dev/shm permanently' | sudo tee -a /etc/fstab
$ echo '# To ensure that the in-memory file system is mounted when the system restarts' | sudo tee -a /etc/fstab
$ echo 'tmpfs /dev/shm tmpfs defaults,size=8G 0 0' | sudo tee -a /etc/fstab
$ grep tmpfs /etc/fstab
Figure-35: Entry of 'tmpfs' filesystem in '/etc/fstab' file mounted on '/dev/shm' with 8 GB shared memory.
Для того, чтобы наши изменения были сделаны на /etc/fstab
немедленно перемонтировать /dev/shm
:
$ sudo mount -o remount /dev/shm
$ df -h /dev/shm
Figure-36: The '/dev/shm' shared memory size is 8 GB.
1.11. Конфигурация сети.
1.11.1. конфигурировать /etc/hosts
файл.
Чтобы узнать содержание /etc/hosts
файл, выполните эту команду:
$ cat /etc/hosts
Figure-37: Contents of /etc/hosts file.
Содержимое скриншота figure-37 воспроизведено ниже, так что любой, кому нужно, может скопировать и вставить.
# <IP-address> <fully-qualified-machine-name> <machine-name>
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain
::1 localhost localhost.localdomain localhost6 localhost6.localdomain
Ну, порядок разрешения имен на самом деле определяется в /etc/nsswitch.conf
и вы должны увидеть такую запись:
hosts: files dns
Введите следующую команду, чтобы увидеть фактическую запись, соответствующую хостам:
$ cat /etc/nsswitch.conf | grep hosts:
Figure-38: Hosts record in '/etc/nsswich.conf' where 'files' precedes dns in order which is good.
предупреждение: если /etc/hosts
файл не настроен должным образом, тогда установщик Oracle в какой-то момент завершится ошибкой!
1.11.2. конфигурировать /etc/resolv.conf
файл.
Чтобы отобразить, какие сетевые интерфейсы доступны в системе, введите следующую команду:
$ ip link show
Figure-39: The WiFi network adapter wlp5s0 is active, up and running.
Файл конфигурации сети netplan/.yaml
следует проверить детали конфигурации. Чтобы отобразить содержимое файла, введите следующую команду:
$ cat /etc/netplan/01-network-manager-all.yaml
Figure-40: Network Manager file '01-network-manager-all.yaml' is not configured.
Узнайте, /etc/resolv.conf
это static file
или же symlink
по следующей команде:
$ ls -l /etc/resolv.conf
Figure-41: File '/etc/resolv.conf' is a symlink pointing to stub file 'stub-resolv.conf'.
Показать содержимое /etc/resolv.conf
по команде: cat /etc/resolv.conf
Figure-42: The contents of symlink '/etc/resolv.conf' having 127.0.0.53 as nameserver.
Днс показано /etc/resolv.conf
, является 127.0.0.53
но не сервер имен по умолчанию, настроенный для dhcp. Выполните следующую команду, чтобы узнать DNS-сервер по умолчанию:
$ systemd-resolve --status wlp5s0
Figure-43: The default DNS server for WiFi network adapter is 192.168.43.1.
Показать содержимое /run/systemd/resolve/resolv.conf
по команде:
$ cat /run/systemd/resolve/resolv.conf
Figure-44: The contents of '/run/systemd/resolve/resolv.conf' indicating default nameserver. Compare with figure-43
Из рисунка 44 видно, что /run/systemd/resolve/resolv.conf
это тот, который действительно несет сервер имен по умолчанию 192.168.43.1.
Выполните следующую команду, чтобы изменить символическую ссылку /etc/resolv.conf
указать DNS-сервер по умолчанию 192.168.43.1
вместо 127.0.0.53
,
$ sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
$ ls -l /etc/resolv.conf
Figure-45: File /etc/resolv.conf is a symlink pointing to default nameserver which is good.
После настройки sysmlink, как показано на рисунке 45, вы должны убедиться, что ваш Wi-Fi подключен, работает и работает, выполнив следующую команду:
$ nmcli device
Figure-45-a: Wi-Fi network interface adapter 'wlp5s0' is connected, up and running.
1.12. Отключить брандмауэр Linux.
Если у вас включен брандмауэр Linux, вам необходимо отключить его, так что сделайте, как указано ниже:
$ sudo ufw disable
$ sudo ufw status
Figure-46: Disable Firewall before Oracle installation.
Примечание. Не забудьте включить брандмауэр после завершения установки с помощью команды: $ sudo ufw enable
Часть I заканчивается здесь, и начинается часть II сессии ответов, которая касается:
1) Create oracle User, and Groups.
2) Creation of Oracle Mount, Base and Home directories.
3) Tips for Oracle account creation to download installable image file.
4) Extraction of image file.
5) Manipulation and altering of make files required for building binaries on Ubuntu Linux platform.
Часть III сеанса ответов начинается сейчас.
3. Установка Oracle 18.c с использованием runInstaller
,
3.1. Каталог очистки /tmp
: Введите следующую команду для очистки /tmp
каталог в качестве первого шага до начала установки:
$ cd /tmp
$ sudo rm -rf *
3.2. Начать установку:
Бежать runInstaller
команда только из домашнего каталога Oracle. Не используйте runInstaller
команда, которая находится в $ORACLE_HOME/oui/bin/
или любое другое место для установки Oracle Database, Oracle Database Client, or Oracle Grid Infrastructure
,
Из домашнего каталога Oracle запустите runInstaller
команда для запуска мастера установки базы данных Oracle.
$ cd /oracle18c/app/oracle/product/18.0.0/dbhome_1
$ ./runInstaller
Figure-64: Execute 'runInstaller' from '/oracle18c/app/oracle/product/18.0.0/dbhome_1/' directory.
Figure-65: Launching Oracle Database 18c Installer.
Figure-66: Hit button Yes and go ahead with installation.
Figure-67: Select 'Set up Software Only' option and press Next.
Figure-68: Select 'Single instance database installation' option and press Next.
Figure-69: Select 'Enterprise edition' option and press Next.
Figure-70: Accept the default 'Intallation Location' and press Next.
Figure-71: Accept the default Oracle Inventor directory/oracle18c/app/oralInventory and hit Next.
Figure-72: Select Operating System Groups and press Next.
Figure-73: This is Summary screen and Click button 'Save Response File' to take a copy of 'db.rsp' file.
Figure-74: Double-click "Documents" folder and then save a copy of 'db.rsp' file by clicking "Save" button.
Пожалуйста, сохраните файл ответов db.rsp
в ~/Documents
каталог. Это для вашей справки.
Figure-75: Now click Install button on the Summary Screen to proceed further.
Figure-76: Now Install Product is under progress…...
Figure-77: Execute both the scripts one after another with "root" login.
Откройте 2-й терминал, набрав Ctrl+AlT+T
, Войдите в командную строку как пользователь root, набрав su –
:
$ su -
Скопируйте весь путь первого скрипта orainstRoot.sh
и вставьте его в терминал (префикс команды с ". "
)
# . /oracle18c/app/oraInventory/orainstRoot.sh
Figure-78: Execution of first script orainstRoot.sh with "root" login.
Теперь скопируйте весь путь второго скрипта root.sh
и вставьте его в терминал (префикс команды с ". "
) и ударил <CR>
,
# . /oracle18c/app/oracle/product/18.0.0/dbhome_1/root.sh
Во время выполнения этого скрипта вам будет предложено "Enter the full pathname of the local bin directory: /usr/local/bin:"
, Вы просто принимаете это "default bin directory"
путь нажатием <return>
ключ.
Впоследствии будет задан еще один вопрос: "Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes [no] : "
для которого вы печатаете "y"
и установите его.
Figure-79: Execution of second script root.sh with "root" login.
После завершения выполнения обоих скриптов "root"
войдите, вы должны вернуться к установщику и нажать OK
кнопку для продолжения установки (см. скриншот ниже на рисунке 80).
Figure-80: After the execution of scripts hit OK button and proceed further.
Figure-81: Click Close button to finish Database software Installation.
Figure-82: Congratulations! You have successfully installed database software using runInstaller interactively!!
3.3 . СЛУШАТЕЛЬ Установка:
Откройте терминал, нажав Ctrl+Alt+T
и введите следующую команду:
$ cp /oracle18c/app/oracle/product/18.0.0/dbhome_1/network/install/netca_typ.rsp ~/Documents/.
Тип cat netca_typ.rsp
команда для отображения содержимого netca_typ.rsp
файл:
$ cat ~/Documents/netca_typ.rsp
Figure-83: The contents of typical 'netca_typ.rsp' capable of generating 'listener.ora' and 'sqlnet.ora'
Файл ответов хотя и способен создавать listener.ora
а также sqlnet.ora
но нет tnsnames.ora
, Итак, давайте поумнемся netca_typ.rsp
превратиться в "custom"
введите для генерации псевдоним TNS!
Сначала возьмите копию с netca_typ.rsp
в netca.rsp
и затем выполните команды впоследствии:
$ cp ~/Documents/netca_typ.rsp ~/Documents/netca.rsp
$ sed -i 's/TYPICAL/CUSTOM/' ~/Documents/netca.rsp
$ sed -i 's/typical/custom/' ~/Documents/netca.rsp
С помощью vi
редактировать, скопировать и добавить следующее содержимое netca.rsp
:
#---------------------------------------------------------
# Instructions to create tnsnames.ora having TNS alias list
#----------------------------------------------------------
NSN_NUMBER=1
NSN_NAMES={"orcl"}
NSN_SERVICE={"orcl"}
NSN_PROTOCOLS={"TCP;UBUNTU-H170N-WIFI;1521"}
Предупреждение: пожалуйста, не забудьте заменить UBUNTU-H170N-WIFI
с вашим Computer Hostname
,
Примечание-1: чтобы распечатать computer hostname
, выполните эту команду: $ hostname
Примечание-2: чтобы распечатать computer FQDN
, выполните эту команду: $ hostname -f
или же $ hostname -A
Сохранить и выйти из vi
редактор.
Содержание мудры netca.rsp
кто сейчас способен генерировать tnsnames.ora
показано ниже:
$ cat ~/Documents/netca.rsp
Figure-84: The wised up 'netca.rsp' now generates not only 'listener.ora' and 'sqlnet.ora' but also 'tnsnames.ora'.
Запустите средство поддержки конфигурации сети netca
:
$ /oracle18c/app/oracle/product/18.0.0/dbhome_1/bin/netca -silent -responseFile ~/Documents/netca.rsp
Figure-85: NETCA has configured Listener as well as Net Services successfully executed in silent mode.
Проверьте состояние прослушивателя, введя эти команды:
$ export ORACLE_HOME=/oracle18c/app/oracle/product/18.0.0/dbhome_1
$ /oracle18c/app/oracle/product/18.0.0/dbhome_1/bin/lsnrctl status
Figure-86: Output of 'lsnrctl status' command.
Trace Level
установлено off
как видно на рисунке выше-86. Допустимые значения для уровня трассировки off
, user
, admin
а также support
, использование vi
Редактировать и скопировать и вставить содержимое ниже listener.ora
,
$ cd /oracle18c/app/oracle/product/18.0.0/dbhome_1/network/admin
$ vi listener.ora
#---------------------------------------------------------------------
# To prevent "Warning: Subscription for node down event still pending"
#---------------------------------------------------------------------
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=off
#-------------------------------------------------------------------------------
# Permitted values for trace level are "off", "user", "admin" and "support".
# OFF (equivalent to 0) provides no tracing.
# USER (equivalent to 4) traces to identify user-induced error conditions.
# ADMIN (equivalent to 6) traces to identify installation-specific problems.
# SUPPORT (equivalent to 16) provides trace information for troubleshooting
# information for support.
#--------------------------------------------------------------------------------
DIAG_ADR_ENABLED_LISTENER=off
TRACE_TIMESTAMP_LISTENER=true
TRACE_LEVEL_LISTENER=support
TRACE_DIRECTORY_LISTENER=/tmp
TRACE_FILE_LISTENER=listener.trc
LOG_DIRECTORY_LISTENER=/tmp
LOG_FILE_LISTENER=listener.log
Сохранить и выйти из vi
редактор.
Выполните следующие команды, чтобы отобразить содержимое listener.ora
файл:
$ cd /oracle18c/app/oracle/product/18.0.0/dbhome_1/network/admin
$ cat listener.ora
Figure-87: 'listener.ora' contains the server-side network configuration parameters.
использование vi
редактор и открыть sqlnet.ora
и скопируйте и вставьте следующее содержимое в файл:
$ cd /oracle18c/app/oracle/product/18.0.0/dbhome_1/network/admin
$ vi sqlnet.ora
#----------------------------------------
# set trace and log parameters for client
#----------------------------------------
DIAG_ADR_ENABLED=off
TRACE_UNIQUE_CLIENT=off
TRACE_TIMESTAMP_CLIENT=true
TRACE_FILELEN_CLIENT=100
TRACE_LEVEL_CLIENT=support
TRACE_DIRECTORY_CLIENT=/tmp
TRACE_FILE_CLIENT=sqlnet_client.trc
LOG_DIRECTORY_CLIENT=/tmp
LOG_FILE_CLIENT=sqlnet_client.log
#----------------------------------------
# set trace and log parameters for server
#----------------------------------------
TRACE_TIMESTAMP_SERVER=true
TRACE_FILELEN_SERVER=100
TRACE_LEVEL_SERVER=support
TRACE_DIRECTORY_SERVER=/tmp
TRACE_FILE_SERVER=sqlnet_server.trc
LOG_DIRECTORY_SERVER=/tmp
LOG_FILE_SERVER=sqlnet_server.log
#----------------------------------------
# set TNSPING Diagnostic Parameters
#----------------------------------------
TNSPING.TRACE_LEVEL=support
TNSPING.TRACE_DIRECTORY=/tmp
Сохранить и выйти из vi
редактор.
Выполните следующие команды, чтобы отобразить содержимое sqlnet.ora
файл:
$ cd /oracle18c/app/oracle/product/18.0.0/dbhome_1/network/admin
$ cat sqlnet.ora
Figure-88: 'sqlnet.ora' is a profile configuration file that contain parameters used by both client and server.
Names.directory_path: этот параметр указывает порядок именования методов, используемых, когда клиент пытается подключиться к базе данных. Возможные значения включают в себя: LDAP
, TNSNAMES
, HOSTNAME
, ONAMES
, а также EZCONNECT
,
Выполните следующие команды, чтобы отобразить содержимое tnsnames.ora
файл:
$ cd /oracle18c/app/oracle/product/18.0.0/dbhome_1/network/admin
$ cat tnsnames.ora
Figure-89: 'tnsnames.ora' file contains alias list.
Внести изменения, сделанные на listener.ora
а также sqlnet.ora
, перезагрузите listener
по команде:
$ /oracle18c/app/oracle/product/18.0.0/dbhome_1/bin/lsnrctl reload
$ /oracle18c/app/oracle/product/18.0.0/dbhome_1/bin/lsnrctl status
Figure-90: Listener Parameters are set up successfully (compare with figure-86).
Вот конец Части-III и предстоящая Часть-IV состоит из:
1) Generate database scripts by DBCA.
2) Create Orcale 18c database by running scripts.
Часть IV сессии ответов начинается сейчас.
4. DBCA Генерация скриптов для создания базы данных.
4.1. Запустите DBCA:
Откройте терминал, нажав Ctrl+Alt+T
и запустите инструмент помощи конфигурации базы данных dbca
:
$ /oracle18c/app/oracle/product/18.0.0/dbhome_1/bin/dbca
Figure-91: Run database configuration assistance tool 'dbca'
Figure-92: dbca logo
Figure-93: Select 'Create a database operation' and press 'Next'.
Figure-94: Select 'Advanced configuration' mode and press 'Next'.
Figure-95: Select 'Deployment type' and press 'Next'.
Figure-96: Enter 'Global database name', 'SID', 'PDB name' then click 'Next' button.
Figure-97: Select storage option "Use template file for database storage attributes" and click 'Next'.
Figure-98: Select Fast Recovery Option "Specify Fast Recovery Area" and click 'Next'
Figure-99: Choose listener to register database and click 'Next'.
Figure-100: Configure Database Vault and Label Security and click 'Next'.
Figure-101: Choose Memory option " Use Automatic Shared Memory Management (ASMM)" and configure "SGA" and "PGA" shared memory size and then hit menu 'Sizing'.
Figure-102: Specify "Processes" Number then hit menu "Character Sets".
Figure-103: Select "Unicode character" set and hit menu "Connection mode"
Figure-104: Select Dedicated server mode and hit "Sample Schemas"
Figure-105: Mark checkbox to "add sample schemas to the database" and then hit "Next".
Figure-106: Select "Configure Enterprise Manager (EM) database express " and specify port. Click 'Next'
Figure-107: Specify passwords for SYS, SYSTEM, PDBADMIN separately or select "Use the same passwords for all accounts". Click 'Next'.
Figure-108: Uncheck "Create database" checkbox to avoid creation of a database and check "Generate database creation scripts" checkbox. Click "Next" button.
Figure-109: Click "Save Response File " button.
Figure-110: Double-click "Documents" folder and then save a copy of dbca.rsp file by clicking "Save" button.
Сохраните файл ответов dbca.rsp
в ~/Documents
каталог. это rsp
файл нужен позже.
Figure-111: After saving "dbca.rsp" file, click "Finish" button.
Figure-112: Finish database script generation by clicking "Close" button.
4.2. Создайте базу данных Oracle 18c, запустив сценарии, сгенерированные из DBCA
:
Откройте терминал, нажав Ctrl+Alt+T
и выполнить сценарий оболочки orcl.sh
который предложит ввести пароли для пользователей SYS
, а также SYSTEM
и вы выбираете пароли достаточно сложно, чтобы быть в безопасности.
Scripts path is: {ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/scripts
$ cd /oracle18c/app/oracle/admin/orcl/scripts
$ . orcl.sh | tee ~/Documents/create_database_scripts.log
Теперь откройте файл журнала create_database_scripts.log
с помощью vi
редактор:
$ vi ~/Documents/create_database_scripts.log
Вы увидите ошибку "ORA-12547: TNS:lost contact"
как показано на рисунке-113, приведенном ниже: изменения Figure-113: "Error: ORA-12547: TNS:lost contact".
Теперь мы должны выяснить, кто был причиной этой проблемы.
Сценарий оболочки orcl.sh
вызывается orcl.sql
сценарий, с которого началось настоящее действие. orcl.sql
вызвал множество других sql
сценарии последовательно. Давайте поместим операторы трассировки вокруг первого скрипта sql CloneRmanRestore.sql
называется oracl.sql
показано на рисунке-114 ниже:
Figure-114: Trace statements in 'orcl.sql' file around 'CloneRmanRestore.sql' at the point of calling.
Если вы бежите orcl.sh
еще раз, то состояние выполнения в точке трассировки показано ниже на рисунке-115:
Figure-115: "Error: ORA-12547: TNS:lost contact" appears soon after entering into 'CloneRmanRestore.sql'.
Итак, откройте CloneRmanRestore.sql
хранить и размещать операторы трассировки CONNECT
заявление, которое является very first one upon entry
как показано на рисунке 116 удар:
Figure-116: Trace statements in 'CloneRmanRestore.sql' file around 'CONNECT' Statement.
Когда вы запускаете сценарий оболочки orcl.sh
опять же, момент, когда состояние исполнения вступает в CloneRmanRestore.sql
файл, ошибка происходит, как показано на рисунке-117 ниже:
Figure-117: Trace statements around 'CONNECT' prove that error occurred while executing 'CONNECT' statement.
Полезно знать о point of origination
ошибки, и это CONNECT
Оператор SQL, вызвавший ошибку. Теперь пришло время очистить failed installation
и повторяйте установку до момента вызова orcl.sh
, Итак, давайте продолжим со следующим шагом [ раздел 4.3 ] ниже.
4.3. Очистите систему после неудачной установки.
Перед повторной установкой система должна быть сначала очищена. Откройте терминал, нажав Ctrl+Alt+T
и выполните следующие команды:
$ su -
# rm -f /etc/oraInst.loc
# rm -f /etc/oratab
# cd /oracle18c
# rm -rf *
# cd /opt/oracle
# rm -rf *
# cd /opt
# rm -rf ORCLfmap
# cd /tmp
# rm -rf *
# exit
Теперь перезагрузите компьютер и перейдите к следующему шагу [ раздел-4.4 ], чтобы переустановить Oracle.
4.4. Переустановите Oracle после неудачной установки.
4.4.1. Извлечение Oracle db_home.zip
файл изображения.
После очистки системы, давайте попробуем установить снова. Выполните следующую процедуру:
$ mkdir -p /oracle18c/app/oracle/product/18.0.0/dbhome_1
$ unzip /mnt/ShareMe/'Software(downloaded)'/'MySQL & Oracle'/'Oracle 18.c LINUX.X64_180000_db_home.zip' -d /oracle18c/app/oracle/product/18.0.0/dbhome_1/
$ chmod -R 775 /oracle18c
Напомним, что в [ раздел - 2.2.10 ], omkfix.sh
файл был создан и сохранен в ~/scripts/
каталог, теперь запустите скрипт:
$ . ~/scripts/omkfix.sh
4.4.2. Установите программное обеспечение базы данных.
Чтобы установить программное обеспечение базы данных, следуйте [ раздел 3.2 ] с рисунка 64 до рисунка 82.
4.4.3. Установите Слушатель.
Вернитесь к [ раздел-3.3 ], завершите установку LISTENER и немедленно вернитесь сюда.
Чтобы проверить, что слушатель активен, выполните эту команду: $ ps -ef | grep tnslsnr
Figure-118: 'Listener' is alive and active in the background.
4.4.4. Генерация сценариев для создания базы данных.
Чтобы сгенерировать сценарии, необходимые для установки базы данных, запустите dbca
интерактивно с dbca.rsp
(см figure-110
который показывает, что файл ответов dbca.rsp
был сохранен в ~/Documents
папка, которую мы собираемся использовать сейчас!):
$ /oracle18c/app/oracle/product/18.0.0/dbhome_1/bin/dbca -responseFile /home/oracle/Documents/dbca.rsp
Повторите инструкции в [ Раздел 4.1 ] через figure-92
до тех пор figure-112
с целью генерации скриптов для создания базы данных.
На этом конец Части-IV и заключительная сессия Части-V начинается с раздела "Устранение неполадок и послеустановка".
Заключительная и заключительная часть V сессии ответов начинается сейчас.
5. Устраните неполадки ORA-12547: TNS: ошибка потерянного контакта.
5.1. Создать файл паролей.
Теперь создайте файл паролей, расположенный в "$ORACLE_HOME/dbs"
чье имя должно быть решено следующим образом:
Формула имени файла пароля: orapw
+ ORACLE_SID
знак равно orapw
+ orcl
знак равно orapworcl
,
Команда выдачи orapwd
создать и добавить пользователя SYS
в файл паролей 'orapworcl'
вместе с паролем 'oracle18c'
как показано ниже:
$ /oracle18c/app/oracle/product/18.0.0/dbhome_1/bin/orapwd file=/oracle18c/app/oracle/product/18.0.0/dbhome_1/dbs/orapworcl password=oracle18c ENTRIES=30 FORCE=Y IGNORECASE=Y format=12
5.2. Установите Oracle Environment.
Чтобы установить среду оракула, создайте файл ~/scripts/oenv.sh
и скопируйте и вставьте содержимое, указанное в этом разделе:
$ vi ~/scripts/oenv.sh
#!/bin/sh
#--------------------------------------------------------------------
# Oracle Environment Variables Settings
#--------------------------------------------------------------------
export ORACLE_BASE=/oracle18c/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/18.0.0/dbhome_1
export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export ORACLE_LIBPATH=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$CLASSPATH
export ORACLE_HOSTNAME=$HOSTNAME
export ORA_INVENTORY=/oracle18c/app/oraInventory
export DATA_DIR=$ORACLE_BASE/oradata
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ADR_HOME=$ORACLE_BASE/diag
#--------------------------------------------------------------------
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export PDB_NAME=pdb
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
#--------------------------------------------------------------------
export TMP=/tmp; export TMPDIR=$TMP; export TEMP=$TMP
#--------------------------------------------------------------------
Изменить разрешение файла:
$ chmod +x ~/scripts/oenv.sh
Добавьте следующее в ~/.bashrc
по этой команде:
$ echo '# Environment settings for Oracle ' | tee -a ~/.bashrc
$ echo '. ~/scripts/oenv.sh' | tee -a ~/.bashrc
Теперь перезагрузите компьютер и вернитесь сюда, чтобы продолжить.
5.3. Создать каталоги.
открыто vi
Редактировать и скопировать и вставить следующее содержимое:
$ vi ~/scripts/ocdir.sh
#!/bin/sh
umask 0027
mkdir -p /oracle18c/app/oracle
mkdir -p /oracle18c/app/oracle/admin/orcl/adump
mkdir -p /oracle18c/app/oracle/admin/orcl/dpdump
mkdir -p /oracle18c/app/oracle/admin/orcl/pfile
mkdir -p /oracle18c/app/oracle/audit
mkdir -p /oracle18c/app/oracle/cfgtoollogs/dbca/orcl
mkdir -p /oracle18c/app/oracle/fast_recovery_area/ORCL
mkdir -p /oracle18c/app/oracle/oradata/ORCL
mkdir -p /oracle18c/app/oracle/oradata/ORCL/pdb
mkdir -p /oracle18c/app/oracle/oradata/ORCL/pdbseed
mkdir -p /oracle18c/app/oracle/product/18.0.0/dbhome_1/dbs
Изменить разрешение файла:
$ chmod +x ~/scripts/ocdir.sh
Выполнить файл скрипта ocdir.sh
:
$ . ~/scripts/ocdir.sh
5.4. Проверьте listener
статус.
Убедитесь, что слушатель включен и слушает в фоновом режиме, с помощью следующей команды:
$ ss -elpunt | grep -E "^Net|tnslsnr"
Figure-119: Oracle listener is up and running.
Если слушатель не работает, запустите его с помощью следующей команды:
$ lsnrctl start LISTENER
5.5. Значение ORA-12547
ошибка.
Давайте сначала поймем "Что делает ORA-12547
значит ". Понять значение ошибки ORA-12547
запустив бинарный оракул oerr
который выводит предварительно записанное описание.
$ cd $ORACLE_HOME/bin
$ ./oerr ORA 12547
Figure-120: The Meaning of error 'ORA-12547' displayed by oracle binary utility 'oerr'.
Описание для ошибки ORA-12547
утилитой оракула oerr
Вроде бы немного странно. Проще говоря, ORA-12547
указывает на то, что канал связи был разорван. Чаще всего его бросают, потому что другой конец процесса неожиданно исчез. Эта ошибка ORA-12547
может возникнуть из-за различных причин. Мы увидим один за другим.
5.6. Настройки привилегий для oracle
двоичный
Бинарный oracle
должен не только иметь 6751
привилегия, но и non-zero
Размер файла, как показано на рисунке-121 ниже:
$ cd $ORACLE_HOME/bin
$ ls -l oracle
Figure-121: oracle binary has '6751' privileges set and 'non-zero' files size which are good.
Если установлена неправильная привилегия, введите следующую команду:
$ chmod 6751 oracle
Если файл оракула показывает zero file size
затем выполните следующую команду для перестройки:
$ cd $ORACLE_HOME/bin
$ ./relink all
5,7. Ненулевой размер файла config.o
двоичная:
Объектный файл config.o
должен иметь ненулевой размер файла. Чтобы проверить, выполните следующие команды:
$ cd $ORACLE_HOME/rdbms/lib
$ ls -l config.o
Figure-122: The screen displays that 'object.o' file has non-zero file size which is good.
Если там есть zero file size
затем выполните следующую команду для перестройки:
$ mv config.o config.o.bad
$ cd $ORACLE_HOME/bin
$ ./relink all
5,8. Oracle Base и домашние настройки в orabasetab
файл:
Показать содержимое файла для проверки оракула Base
а также Home
Настройки.
$ cd $ORACLE_HOME/install
$ cat orabasetab
Figure-123: Display of content of 'orabasetab' file showing the settings of oracle 'Base' and 'Home' which are good.
Если найдены неполные или неправильные настройки, отредактируйте $ORACLE_HOME/install/orabasetab
использование файла vi
редактировать и исправлять Base
а также Home
ценности.
5.9. Настройки Oracle Base:
Запустить orabase
двоичный файл, чтобы убедиться, что базовый каталог Oracle установлен правильно.
$ cd $ORACLE_HOME/bin
$ ./orabase
Figure-124: Oracle Base directory setting is shown by binary 'orabase' which is good.
5.10. Настройки привилегий для /proc
каталог:
Убедитесь, что установлены правильные привилегии /proc
каталог. Выполните следующую команду:
$ ls -l /
Figure-125: The correct privilege settings 555 for /proc directory.
Если настройки привилегий неверны, исправьте их вручную, выполнив следующую команду:
$ cd /
$ sudo chmod 555 proc
5.11. Настройки привилегий для /dev/null
каталог:
Убедитесь, что установлены правильные привилегии /dev/null
каталог, который должен быть 0666
, Выполните следующую команду:
$ ls -l /
Figure-126: The correct privilege settings '666' for '/dev/null' directory.
Если настройки привилегий неверны, исправьте их вручную, выполнив следующую команду:
$ cd /
$ sudo chmod 666 /dev/null
5,12. Бинарные настройки подсистемы Oracle в /ect/fstab
файл:
Структура каждой записи в /etc/fstab
Файл состоит в основном из следующих 6 полей:
[Device] [Mount point] [Files System Type] [options] [Backup operations] [File System check order]
Программное обеспечение Oracle было установлено в файловой системе /opt
точка крепления. Найдите запись в /etc/fstab
файл, соответствующий /opt
точка монтирования и осмотр 4-го поля, которое [options]
, Если это поле содержит "nosuid"
затем измените это на "suid"
,
Выполните следующую команду, чтобы найти запись, соответствующую /opt
точка крепления:
$ cat /etc/fstab | grep /opt
Figure-127: The 4th field '[options]' contains "defaults" corresponding to '/opt' file systems which is good.
4-е поле [options]
имеет значение "defaults"
который является shortcut
и чье расширение:
"rw,suid,dev,exec,auto,nouser,async"
Итак, наличие "defaults"
не вызывает проблем. В отсутствии "defaults"
, если есть присутствие "nosuid"
явно затем измените его на "suid"
вручную в /etc/fstab
использование файла vi
редактор. После изменения просто перезагрузите систему.
5,13. Сбросить EXTSHM
Переменная среды.
Как оракул не поддерживает Extended Shared Memory
переменная среды EXTSHM
должен быть сброшен Выполните следующую команду:
$ env | grep EXTSHM
Figure-128: The output shows that the Environment variable 'EXTSHM' is undefined which is good.
Если переменная EXTSHM
устанавливается unset
это с помощью следующей команды:
$ unset EXTSHM
5,14. Недостаточно настроек ulimit для стека:
См. [Раздел 1-7] " Настройка пределов оболочки для оракула пользователя " для увеличения пределов стека.
5,15. Моделирование "ORA-12547: TNS:lost contact"
ошибка при использовании sqlplus
двоичная:
Было установлено, что ORA-12547
произошла ошибка при попытке создать базу данных Oracle 18c с помощью сценариев, сгенерированных из DBCA [ см. раздел 4.2 и рисунок 113 ]. Мы выяснили, что основной причиной этой ошибки было CONNECT
заявление. Итак, давайте снова воспроизведем эту ошибку, вызвав CONNECT
заявление непосредственно от sqlplus
двоичный файл.
вопрос sqlplus
команда как показано ниже:
$ $ORACLE_HOME/bin/sqlplus /nolog
вопрос CONNECT
заявление в SQL
подскажите следующее:
SQL> connect sys/oracle18c as sysdba;
Figure-129: Simulation of "ORA-12547: TNS:lost contact" error by directly invoking 'sqlplus' binary.
Теперь установлено, что ошибка воссоздается путем выполнения sqlplus
двоичный файл. При отсутствии исходного кода мы должны атаковать проблему любым оружием, оставшимся в нашем арсенале. В качестве первого шага, давайте попробуем сгенерировать информацию трассировки, описывающую последовательность событий, происходящих в sqlplus
двоичный файл.
5,16. Бежать strace
Команда для генерации информации трассировки, необходимой для дальнейшего копания:
Для создания файла трассировки, необходимого для дальнейшего изучения CONNECT
Скажите, давайте использовать strace
командовать вместе с sqlplus
как показано ниже:
$ strace -f -o /tmp/strace.log $ORACLE_HOME/bin/sqlplus /nolog
вопрос CONNECT
заявление в SQL
подскажите следующее:
SQL> connect sys/oracle18c as sysdba;
Figure-130: Use 'strace' command to investigate into 'CONNECT' statement invoked from 'sqlplus' binary.
Теперь используйте gedit
и открыть /tmp/strace.log
файл. После отслеживания всего файла проблемная область была идентифицирована, как показано на рисунке 131 ниже: Figure-131: "core dump" is found recorded in the 'strace.log' file.
Прежде чем приступить к анализу "core dump"
далее, давайте проверим, core
файл был создан в default directory
с помощью следующих команд:
$ pwd
$ ls
Figure-132: The output confirms that no 'core' file was generated in '/home/oracle' directory.
Узнайте, включено ядро или нет, с помощью следующей команды:
$ ulimit -c
Figure-133: Output shows that 'core' is not enabled.
Чтобы включить ядро, введите следующую команду:
$ ulimit -c unlimited
Figure-134: Enable core file generation.
Убедитесь, что ядро включено с помощью следующей команды:
$ ulimit -c
Figure-135: Ouput shows that 'core' file generation is successfully enabled.
Опять беги strace
команда, как показано в начале этого раздела 5.16 и убедитесь, что core
файл был успешно создан:
$ pwd
$ ls
Figure-136: Output shows that 'core' file is generated successfully
Теперь запустите отладчик gdb
следующее:
$ gdb -c core
Figure-137: Undefined Symbol in 'libpython3.6m.so.1.0' while invoking debugger 'gdb'.
Разрешить symbol lookup error
введите следующую команду, чтобы проверить зависимости gdb
:
$ ldd /usr/bin/gdb
Figure-138: Output shows that only shared object 'libexpat.so.1' has been loaded wrongly from '$ORACLE_HOME/lib'.
Из вышеприведенного рисунка 138 о выходе можно легко сделать вывод, что проблема связана с LD_LIBRARY_PATH
переменная окружения.
Во-первых, введите следующую команду, чтобы найти правильный путь libexpat.so.1
:
$ locate libexpat.so.1
Figure-139: The correct library path for 'libexpat.so.1' is '/lib/x86_64-linux-gnu/'
Определить текущее значение переменной среды LD_LIBRARY_PATH
:
$ echo $LD_LIBRARY_PATH
Figure-140: '$ORACLE_HOME/lib' appears as the first member in the 'value' of environment variable 'LD_LIBRARY_PATH'
Как $ORACLE_HOME/lib
кажется первым членом LD_LIBRARY_PATH
так библиотека зависимостей libexpat.so.1
был загружен из $ORACLE_HOME/lib
вместо от /lib/x86_64-linux-gnu
, это LD_LIBRARY_PATH
должен быть сброшен до завершения анализа дампа ядра. Позже эта переменная среды LD_LIBRARY_PATH
должен быть восстановлен в исходное состояние.
редактировать ~/scripts/oenv.sh
файл (см. раздел 5.2) и закомментируйте строку, содержащую LD_LIBRARY_PATH
, так что эта переменная будет автоматически сброшена после перезагрузки.
Убедитесь, что строка закомментирована правильно, с помощью следующей команды:
$ cat ~/scripts/oenv.sh | grep LD_LIBRARY_PATH
Figure-141: The comment symbol "#" appears in front of line containing 'LD_LIBRARY_PATH'.
Перезагрузите систему.
Узнайте, что значение LD_LIBRARY_PATH
пусто это или нет с помощью следующей команды:
$ echo $LD_LIBRARY_PATH
Figure-142: Output shows that 'LD_LIBRARY_PATH' is empty, thus properly unset which is good.
Выполните следующую команду еще раз, чтобы проверить список зависимостей gdb
чтобы убедиться, что libexpat.so.1
загружается с правильного пути:
$ ldd /usr/bin/gdb
Figure-143: Output shows that 'libexpat.so.1' is loaded correctly from '/lib/x86_64-linux-gnu'.
Теперь запустите отладчик gdb
и убедитесь, что он работает нормально:
$ gdb -c core
Figure-144: Debugger 'gdb' is found to be working perfectly.
вопрос bt
командовать в gdb
подскажите, как показано ниже:
(gdb) bt
Figure-145: The screen shows the output of 'bt' command and observe that the result is too poor to analyze.
Результат bt
Команда была слишком бедна, и мы need more information
для анализа. Давайте попробуем another method
с помощью следующей команды:
$ gdb --core=core --exec=/oracle18c/app/oracle/product/18.0.0/dbhome_1/bin/oracle
вопрос bt
командовать в gdb
незамедлительный:
(gdb) bt
Figure-146: The result produced by the above command is more promising than in figure-145.
tzset()
функция устанавливает информацию о преобразовании времени, используемую localtime()
и связанные функции. Более того, localtime()
не потокобезопасен, потому что возвращает указатель (struct tm *)
к статической структуре данных (см. <time.h>
заголовок для более подробной информации), который содержит результат. Давайте рассмотрим /tmp/strace.log
снова: Figure-147: The file "/etc/localtime" was the last one accessed before crash (core dump).
Файл "/etc/localtime"
был последним доступом до сбоя (дамп ядра). С самого начала и до дампа памяти этот файл "/etc/localtime"
был доступен дважды. Это показывает состояние тупика, потому что localtime()
вводится рекурсивно (во второй раз) из-за обработки некоторого сигнала и localtime()
не является реентерабельным или поточно-ориентированным, поэтому блокируется при блокировке.
Мы можем заключить, что Oracle kernel
врезается в различные libc
функции (Standard Library for C Programming Language
), например localtime().
Что такое ядро Oracle?
В Ubuntu Linux каждый клиентский процесс Oracle, такой как sqlplus or Toad
подключается к tnslsnr
, который fork()'s
а потом exec()'s
двоичный файл "$ORACLE_HOME/bin/oracle"
называется как oracle kernel program
, Этот двоичный файл также известен как Oracle Server Process
, обращаться figure-121
в [ раздел-5.6 ].
Давайте отображать системный вызов execve
ссылающееся oracle
двоичный файл, записанный strace
командовать в /tmp/strace.log
,
Figure-148: The Oracle Kernel binary "oracle" invoked by "execve" system call.
Итак, это Oracle kernel program
кто вызывал core dump
и чтобы преодолеть эту проблему, необходимо удалить libc*
заглушки, а затем пересобрать двоичное ядро Oracle $ORACLE_HOME/bin/oracle
сызнова.
Для выполнения этой задачи выполните следующие команды:
$ cd $ORACLE_HOME/lib/stubs
$ ls -l libc*
$ rm libc*
$ cd $ORACLE_HOME/bin
$ ./relink all
Figure-149: Rebuild oracle kernel program "$ORACLE_HOME/bin/oracle" afresh by issuing "./relink all" command and observe the resulting log file.
После восстановления проверьте его файл журнала $ORCALE_HOME/install/relink_2019-02-26_08-27.log
чтобы убедиться, что все перестройки были успешными.
Бежать strace
команда еще раз, и давайте проверим, что наш злодей "ORA-12547: TNS:lost contact"
все еще сохраняется!
$ strace -f -o /tmp/strace.log $ORACLE_HOME/bin/sqlplus /nolog
вопрос CONNECT
оператор в SQL подсказывает следующее:
SQL> connect sys/oracle18c as sysdba;
Figure-150: Our arch-villain "ORA-12547: TNS:lost contact" has vanished at last and replaced by "an idle instance".
Бинго! Наш арх злодей "ORA-12547: TNS:lost contact"
наконец исчез!
connect
заявление было успешно выполнено и idle instance
также был создан.
5,17. Повторно запустите сценарии, сгенерированные из DBCA
создать базу данных Oracle 18c:
Чтобы отобразить список сценариев, необходимых для создания базы данных, выполните следующие команды:
$ cd /oracle18c/app/oracle/admin/orcl/scripts
$ ls -l *.sql
Figure-151: List of scripts generated by 'DBCA' required to create oracle 18c database.
Убедиться, что listener
уже запущен с помощью следующей команды:
$ ss -elpunt | grep -E "^Net|tnslsnr" | column -t
Figure-152: Oracle listener is running and listening on port 1521.
Со ссылкой на [см. Раздел-4.2 и рисунок-113], давайте попробуем еще раз создать базу данных Oracle 18c, запустив сценарии, сгенерированные из DBCA
и будем надеяться, что на этот раз база данных будет успешно создана!
$ cd /oracle18c/app/oracle/admin/orcl/scripts
$ . orcl.sh | tee ~/Documents/create_database_scripts.log
Figure-153: Creation of oracle 18c database has successfully begun! Notice the appearance of 'idle instance' inside redbox.
Давайте посмотрим на скриншот завершения создания базы данных ниже: Figure-154: Creation of oracle 18c database has come to end successfully!
Давайте посмотрим Services supported by the Listener
с помощью следующей команды:
$ lsnrctl status
Figure-155: Services supported by 'listener'.
Давайте проверим Oracle Version
с помощью следующей команды:
$ sqlplus / as sysdba
SQL> select instance_name, version from v$instance;
Figure-156: Display of Oracle Version.
Давайте отображать Oracle Banner
с помощью следующей команды:
$ sqlplus / as sysdba
SQL> select banner from v$version;
Figure-157: Display of Oracle Banner.
6. После установки.
6.1. конфигурировать /etc/oratab
файл.
присоединять "/etc/oratab"
файл, устанавливающий флаг перезапуска для каждого экземпляра 'Y'
,
$ echo 'orcl:/oracle18c/app/oracle/product/18.0.0/dbhome_1:Y' | sudo tee -a /etc/oratab
Figure-158: Append "/etc/oratab" file with restart flag.
Показать содержимое "/etc/oratab"
файл с помощью следующей команды:
$ cat /etc/oratab
Figure-159: Content of "/etc/oratab" file.
6.2. Начните PDB
наряду с экземпляром базы данных.
Переменные среды DATA_DIR
а также PDB_NAME
необходимо настроить PDB
уже экспортированы через ~/scripts/oenv.sh
, Выполните следующую команду для проверки:
$ env | egrep 'DATA_DIR=|PDB_NAME='
Figure-160: Environnment variables 'PDB_NAME' and 'DATA_DIR' are already set.
Затем убедитесь, что экземпляр базы данных запущен и работает.
Если это не так, вызовите следующий файл скрипта для запуска:
$ . ~/scripts/ora_start.sh
Примечание: узнать о скрипте ora_start.sh
см. [ раздел-6.5 ]
Включите Oracle Managed Files (OMF) и убедитесь, что PDB запускается при запуске экземпляра:
$ sqlplus / as sysdba <<EOF
alter system set db_create_file_dest='${DATA_DIR}';
alter pluggable database ${PDB_NAME} save state;
exit;
EOF
Figure-161: Pluggable database will start along with database instance.
6.3. Восстановить LD_LIBRARY_PATH
вернуться к первоначальному значению.
Напомним, что LD_LIBRARY_PATH
был не установлен (см. цифры-137 и 138) в ~/scripts/oenv.sh
, Теперь мы должны восстановить его, удалив comment # symbol
в строке содержится LD_LIBRARY_PATH
Строка с использованием любого редактора. Чтобы убедиться, что изменение выполнено, введите следующую команду:
$ cat ~/scripts/oenv.sh | grep LD_LIBRARY_PATH
Figure-162: Environnment variables 'LD_LIBRARY_PATH' is restored to its original value by removing comment '#' symbol (compare with figure-140).
6.4. Включить брандмауэр.
В разделе 1.12 брандмауэр был отключен, что было обязательным условием. Теперь это можно восстановить. Чтобы включить брандмауэр, введите следующую команду:
$ sudo ufw enable
Figure-163: Firewall successfully enabled.
Чтобы проверить состояние брандмауэра, введите следующую команду:
$ sudo ufw status
Figure-164: Firewall status is active
6,5. Запуск / остановка скриптов для базы данных.
Важно помнить, что переменные среды Oracle уже были установлены с помощью ~/scripts/oenv.sh
файл и добавляется в ~/.bashrc
файл для исполнения при входе в систему. См. Раздел 5.2.
Создать два сценария ora_start.sh
а также ora_stop.sh
соответственно что можно назвать как startup/shutdown
оказание услуг.
Теперь создайте ora_start.sh
с помощью vi
редактор.
$ vi ~/scripts/ora_start.sh
Скопируйте и вставьте приведенное ниже содержимое в файл.
#!/bin/sh
lsnrctl start
dbstart $ORACLE_HOME
Сохраните и выйдите из редактора vi.
Теперь создайте ora_stop.sh
с помощью vi
редактор.
$ vi ~/scripts/ora_stop.sh
Скопируйте и вставьте приведенное ниже содержимое в файл.
#!/bin/sh
lsnrctl stop
dbshut $ORACLE_HOME
Сохранить и выйти из vi
редактор.
chown -R oracle:oinstall ~/scripts
chmod +x ~/scripts/ora_start.sh
chmod +x ~/scripts/ora_stop.sh
После редактирования /etc/oratab
(см. раздел 6.1), вы должны быть в состоянии start/stop
база данных со следующими сценариями запускается после входа в систему как пользователь oracle.
Чтобы запустить Oracle Database Service, запустите ora_start.sh
сценарий:
$ . ~/scripts/ora_start.sh
Figure-165: Run script 'ora_start.sh' to start database instance
Чтобы завершить работу Oracle Database Service, запустите ora_stop.sh
сценарий:
$ . ~/scripts/ora_stop.sh
Figure-166: Run script ora_stop.sh to shut down database instance
6.6. Создайте список псевдонимов для оракула.
Создайте список псевдонимов, подходящих для Oracle в ~/scripts/oalias.sh
следующее:
$ vi ~/scripts/oalias.sh
Добавьте следующее в ~/scripts/oalias.sh
файл с использованием техники копирования-вставки:
#----------------------------------------
# alias list of useful commands for Oracle
#----------------------------------------
alias o='cd /oracle18c'
alias op='cd /opt'
alias oo='cd /opt/oracle'
alias ob='cd /oracle18c/app/oracle'
alias oi='cd /oracle18c/app/oraInventory'
alias od='cd /oracle18c/app/oracle/oraData'
alias oh='cd /oracle18c/app/oracle/product/18.0.0/dbhome_1'
alias obin='cd /oracle18c/app/oracle/product/18.0.0/dbhome_1/bin'
alias olib='cd /oracle18c/app/oracle/product/18.0.0/dbhome_1/lib'
alias odbs='cd /oracle18c/app/oracle/product/18.0.0/dbhome_1/dbs'
alias olog='cd /oracle18c/app/oracle/cfgtoollogs'
alias odlog='cd /oracle18c/app/oracle/cfgtoollogs/dbca'
alias otfa='cd /oracle18c/app/oracle/tfa'
alias otfab='cd /oracle18c/app/oracle/tfa/bin'
alias os='cd /oracle18c/app/oracle/admin/orcl/scripts'
alias oad='cd /oracle18c/app/oracle/admin'
alias osid='cd /oracle18c/app/oracle/admin/orcl'
alias otns='cd /oracle18c/app/oracle/product/18.0.0/dbhome_1/network/admin'
Сохранить и выйти из vi
редактор.
Изменить разрешение файла с помощью chmod
команда:
$ chmod +x ~/scripts/oalias.sh
Затем выполните следующие команды, чтобы добавить строку ~/scripts/oalias.sh
в ~/.bashrc
файл:
$ echo '#--------------------------------------------------------' | tee -a ~/.bashrc
$ echo '# alias list of useful commands for Oracle' | tee -a ~/.bashrc
$ echo '#--------------------------------------------------------' | tee -a ~/.bashrc
$ echo '. ~/scripts/oalias.sh' | tee -a ~/.bashrc
Теперь закройте свой текущий терминал и откройте новый терминал с Ctrl+Alt+T
и введите следующую команду:
$ alias
Figure-167: Very useful alias list for oracle.
Вы увидите list of aliases
для оракула отображается на экране.
7. Заключение.
Радость и радость были связаны не только с успешной установкой Oracle-18c (Enterprise Edition) на Ubuntu 18.04, но и с " укрощением " Oracle Software
сосуществовать вместе со всеми другими установленными программными пакетами под /opt
раздел (refer figure-57)
!
Это завершает Oracle 18c (Enterprise Edition)
установка на Ubuntu 18.04! Наслаждайтесь Oracle 18c (Enterprise Edition)
!!
Во время моей попытки установить Oracle 18c (Enterprise Edition) на Ubuntu 18.04 я сталкивался с препятствиями на каждом шагу. Вы должны продолжать устранять каждое препятствие по мере его появления и двигаться вперед. Если у тебя нет упорства, ты сдашься!
Поскольку эта процедура установки для Oracle 18c (Enterprise Edition) на Ubuntu 18.04 настолько длинная, состоит из 167 снимков экрана с очень подробными инструкциями (88 pages of Microsoft Word document containing both instructions and screenshots
). Мне потребовалось более 2 месяцев непрерывного труда, чтобы установить его и попробовать на вкус!
Я колеблюсь, чтобы вылить весь материал в этой сессии ответов за один раз. Я уверен, что это создаст путаницу и может не служить намеченной цели.
Мое намерение состоит в том, чтобы этот материал был полезен каждому читателю, который в нем нуждается!
Я предлагаю разделить весь материал на 5 сессий ответов (частей) и выпустить их один за другим следующим образом:
1. Часть I: Предварительная установка.
- В этой части рассматриваются требования к объему дискового пространства, включается поддержка нескольких архитектур, пакеты, необходимые для установки, создание символических ссылок, настройка параметров ядра, настройка ограничений оболочки для пользователя.
oracle
, настройте безопасный linux и отключите THP (Transparent Huge Pages). - Узнайте размер физической памяти, размер подкачки, размер /tmp и т. Д. И сравните их с рекомендациями Oracle.
- Монтирование разделяемой памяти, настройка
/etc/hosts
файл и/etc/resolv.conf
файл и отключить брандмауэр. - Предупреждение: если вы игнорируете эту часть, вы никогда не сможете установить Oracle 18c (Enterprise Edition) в вашей системе!
2. Часть II: Создание пользователей и групп Oracle.
- Эта часть посвящена созданию идентификаторов пользователей и групп Oracle, обсуждению и созданию каталогов Mount, Base и Home, включая советы по загрузке устанавливаемого файла образа.
db_home.zip
с сайта оракула. - Другим важным аспектом этой части является то, что манипулирование и изменение файлов make (
particularly linker/loader flags suitable for Ubuntu Linux platform
), которые необходимы для динамического создания двоичных файлов в процессе установки программного обеспечения базы данных, выполняемойrunInstaller
(Oracle Universal Installer) в части III. - Изменение make-файлов было сделано очень тщательно и тщательно протестировано на моем рабочем столе Ubuntu, так что ошибки компоновщика / загрузчика, возникающие при динамическом построении, были идентифицированы и полностью устранены, таким образом, вы получите чистый и приятный опыт сборки в следующей части III.
3. Часть III: Установка программного обеспечения базы данных и прослушивателя.
- Установка программного обеспечения базы данных выполняется с использованием
runInstaller
в интерактивном режиме. - Двоичные файлы программного обеспечения Oracle создаются на этом этапе динамически, и эта процедура гарантирует, что вы никогда не столкнетесь с проблемами компоновщика / загрузчика на платформе Ubuntu, что обеспечит вам чистую и приятную установку программного обеспечения!
- После завершения установки программного обеспечения, установка слушателя будет продолжена.
- Установка слушателя выполняется в автоматическом режиме с использованием файла ответов. Типичный файл ответов оракула
netca_typ.rsp
способен генерироватьlistener.ora
а такжеsqlnet.ora
только файлы, но неtnsnames.ora
, Такntca_typ.rsp
придуманы дополнительные инструкции для производстваtnsnames.ora
автоматически вместе с двумя другими файлами. listener.ora
Файл изменен для установки параметров трассировки и регистрации. так жеsqlnet.ora
Файл также изменен, чтобы установить параметры конфигурации трассировки и журнала не только на стороне клиента, но и на стороне сервера.
4. Часть IV: Генерация сценариев базы данных с помощью DBCA и создание базы данных с использованием сценариев.
- Эта часть касается генерации скриптов (
sql files
) с помощьюDBCA
и создает базу данных с помощью сценариевmanually
, - Хотя вы можете создать базу данных
automatically
с помощьюDBCA
либо в интерактивном режиме, либо в режиме без вывода сообщений об ошибкахDBCA
броски на этапе создания заставят вас сбиться с толку и вряд ли предложат вам какой-нибудь ключ к их решению! - Принимая во внимание, что делать это
manually
открывает возможность отлаживать ошибки, потому что у вас естьsql
сценарии в руке, предлагая вам путь, чтобы найтиpoint of origination of error
и копать дальше.
5. Часть-V: Устранение неисправностей и после установки.
- Эта заключительная часть отлаживает ошибку, брошенную в Части-IV.
- После успешного завершения устранения неполадок, создание базы данных запускается с помощью сценариев, и, наконец, процесс завершается автоматическим запуском экземпляра базы данных oracle "orcl" и других, которые отображаются как службы прослушивателя.
- Дисплеи
Version
а такжеBanner
с помощьюsqlplus
продемонстрированы как доказательство успешной установки. - Инструкции после установки охватывают подготовку экземпляра базы данных
start/stop
сценарии оболочки, настройка/etc/oratab
настроить PDB для запуска вместе с экземпляром базы данных, включить брандмауэр, восстановитьLD_LIBRARY_PATH
и создание полезного оракулаalias
список. - Этот длинный сеанс ответов об установке Oracle18c (Enterprise Edition) заканчивается разделом " Заключение", содержащим заключительные замечания Marmayogi.
Давайте начнем с части II сессии ответов.
2. Требуется группа операционной системы и пользователь для установки оракула.
2.1. Пользователь и группы.
2.1.1. Создать группы Oracle.
Создание инвентарной группы oinstall
,
$ sudo groupadd -g 54321 oinstall
Создание группы OSDBA dba
,
$ sudo groupadd -g 54322 dba
Другие группы: вы можете создать следующие группы на основе ваших требований, в противном случае пропустите их все.
$ sudo groupadd -g 54323 oper
$ sudo groupadd -g 54324 backupdba
$ sudo groupadd -g 54325 dgdba
$ sudo groupadd -g 54326 kmdba
$ sudo groupadd -g 54327 asmdba
$ sudo groupadd -g 54328 asmoper
$ sudo groupadd -g 54329 asmadmin
$ sudo groupadd -g 54330 racdba
2.1.2. Создать владельца / пользователя программного обеспечения Oracle oracle
,
$ sudo useradd -u 54321 -m -s /bin/bash -g oinstall -G dba oracle
In this command:
• -u option specifies the numerical value of user’s ID.
• -m option specifies to create a home for oracle user: /home/oracle.
• -s option specifies the shell associated with login which is /bin/bash.
• -g option specifies the primary group oinstall.
• -G option specifies the secondary groups dba.
Если вы не создали " Другие группы " [section-2.1.1], то пропустите это.
В противном случае вы добавляете их пользователю oracle
:
$ sudo usermod -a -G oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin,racdba oracle
Установите пароль oracle
пользователь:
$ sudo passwd oracle
Убедитесь, что oracle
Пользователь и связанные с ним группы создаются, как ожидается:
$ id oracle
изменения Figure-47: User oracle and its associated groups.
Убедитесь, что oracle
основная группа пользователей oinstall
:
$ id -gn oracle
Figure-48: User oracle primary group is 'oinstall'.
2.1.3. Добавьте пользователя oracle в группу sudoers:
Включать oracle
пользователь с группой sudoers sudo
введите следующую команду:
$ sudo usermod -a -G sudo oracle
Чтобы убедиться, что oracle
пользователь связан с sudo
группа, введите команду:
$ id oracle
Figure -49: User 'oracle' is also with group 'sudo'.
2.1.4. Проверьте этого пользователя nobody
существует:
$ id nobody
Figure-50: Ouput shows that user 'nobody' does exist already.
Если пользователь nobody
не существует, затем введите следующую команду для его создания:
$ sudo useradd nobody
2.2. Необходимые каталоги программного обеспечения для установки оракула.
2.2.1. Oracle Mount Point.
Oracle 18.c будет установлен на /opt/oracle
которая автоматически станет точкой монтирования для установки Oracle. Но проблема в том, чтобы дать oracle
собственность пользователя для всего /opt/oracle
каталог, который не является приемлемым, потому что /opt
В каталоге уже размещено много других программных пакетов (см. рисунок 51 ниже). Я создал это /opt
раздел с намерением разместить как можно больше независимых программных пакетов! Я не хочу посвящать весь /opt
раздел исключительно для установки базы данных Oracle. Figure-51: Notice that partition '/opt' contains many important software packages which have already been installed.
Чтобы достичь нашей цели, давайте разработаем хитрость. Давайте предположим, каталог /opt/oracle
, как будто устройство и смонтировать это устройство на /oracle18c
как точка монтирования. Теперь мы можем назначить пользователя oracle
право собственности на эту точку монтирования /oracle18c
и поэтому мы избегаем вмешиваться в это устройство /opt/oracle
напрямую, без вреда!
Теперь создайте точку монтирования /oracle18c
от /
с помощью следующей команды:
$ sudo mkdir /oracle18c
$ ls -l /
https://ask-ubuntu.ru/images/aa59a76884751 b6bee0535eed166ececfa244714.png Figure-52: Command 'ls -l /' shows that the mount point '/oracle18c' has 'root:root' ownership.
Создать папку oracle
под /opt
каталог с помощью следующей команды:
$ sudo mkdir /opt/oracle
$ ls -l /opt
Figure-53: Directory 'oracle' under '/opt' has 'root:root' ownership.
Из рисунка 53 выше, обратите внимание, что папка /opt/oracle
имеет root:root
владение.
Чтобы внести изменения в /etc/fstab
введите следующие команды:
$ sudo cp /etc/fstab /etc/fstab.back
$ echo '# Oracle 18.c installation mount point' | sudo tee -a /etc/fstab
$ echo '/opt/oracle /oracle18c none bind' | sudo tee -a /etc/fstab
Удостоверься что /etc/fstab
, имеет точку входа /oracle18c
правильно установлен следующей командой:
$ grep /opt/oracle /etc/fstab
Figure-54: Directory '/opt/oracle' is mounted "as if a file system" on '/oracle18c' mount point.
Для того, чтобы наши изменения были сделаны на /etc/fstab
введите следующую команду:
$ sudo mount -a
Смена владельца точки монтирования /oracle18c
от root:root
в oracle:oinstall
, выполните эту команду:
$ sudo chown -R oracle:oinstall /oracle18c
$ ls -l /
Figure-55: The ownership of '/oracle18c' has changed from 'root:root' to 'oracle:oinstall'.
Таким образом, мы успешно смонтировали /oracle18c
без ущерба для собственности /opt
который все еще остается в root:root
нетронутым! Конечно, именно этого мы и хотели! Чтобы проверить этот факт, введите следующую команду:
$ ls -l /
Figure-56: The ownership of '/opt' partition still remains at 'root:root' untouched!
С другой стороны, право собственности на oracle
папка под /opt
каталог автоматически изменился с root:root
в oracle:oinstall
после загрузки /etc/fstab
изменения. Чтобы проверить этот факт, введите следующую команду:
$ ls -l /opt
Figure-57: The ownership of 'oracle' folder under '/opt' partition has changed automatically from 'root:root' to 'oracle:oinstall', after loading '/etc/fstab' using 'mount -a' command.
Просто сравните рисунок 57, приведенный выше, с рисунком 53.
Теперь установка Oracle ограничена и ограничена внутри /opt/oracle
подкаталог, и мы запретили Oracle принимать всю /opt
раздел таким образом покоряет Oracle прямо! Уловка, которую мы разработали против оракула, действительно сработала!
Мы не только надежно охраняем программы, уже установленные в /opt
раздел (см. рис. 51), но также предоставляется возможность для будущей установки новых пакетов программного обеспечения, если позволяет пространство для хранения. Программное обеспечение Oracle теперь вынуждено существовать, чтобы быть одним из них, будучи полностью лишенным какой-либо особой привилегии по сравнению с другими пакетами программного обеспечения в соответствии с /opt
каталог.
2.2.2. Базовый каталог Oracle
Optimal Flexible Architecture (OFA)
Руководства Oracle рекомендуют использовать путь, аналогичный следующему, для базового каталога Oracle: /mount_point/app/oracle_sw_owner
Войти в систему как oracle
пользователь или используйте эту команду:
$ su - oracle
Создайте базовый каталог oracle (не используйте sudo) с помощью следующей команды:
$ mkdir -p /oracle18c/app/oracle
$ exit
2.2.3. Oracle Inventary Directory
Каталог Oracle Inventory oraInventory
хранит перечень всего программного обеспечения, установленного в системе. Это требуется и используется всеми установками программного обеспечения Oracle в одной системе. Когда вы впервые устанавливаете программное обеспечение Oracle в систему, Oracle Universal Installer
предложит вам указать путь к этому каталогу. Oracle рекомендует выбрать следующий путь: oracle_base/oraInventory
Примечание-1: Oracle Universal Installer
создает каталог, который вы укажете, и автоматически устанавливает для него правильного владельца, группу и разрешения. You do not need to create it
,
Примечание-2: Если вы выполняете установку Oracle Database, и вы установили $ORACLE_BASE
для пользователя оракула к пути /oracle18c/app/oracle
перед установкой и предоставлением 755
разрешения оракула для этого пути, то Oracle Universal Installer (runInstaller) создает каталог Oracle Inventory на один уровень выше $ORACLE_BASE
в пути ORACLE_BASE/../oraInventory
Таким образом, путь к описи Oracle /oracle18c/app/oraInventory
(см. рисунок 71)
Внимание: все установки программного обеспечения Oracle основаны на этом каталоге. Убедитесь, что вы регулярно делаете резервные копии. Не удаляйте этот каталог, если вы полностью не удалили все программное обеспечение Oracle из системы.
2.2.4. Домашний каталог Oracle
Домашний каталог Oracle - это каталог, в который вы решаете установить программное обеспечение для определенного продукта Oracle. Вы должны установить разные продукты Oracle или разные выпуски одного и того же продукта Oracle в отдельных домашних каталогах Oracle. Когда ты бежишь Oracle Universal Installer
, он предлагает вам указать путь к этому каталогу, а также имя, которое его идентифицирует. Указанный вами каталог должен быть подкаталогом базового каталога Oracle. Oracle рекомендует указывать путь, аналогичный следующему, для домашнего каталога Oracle: oracle_base/product/18.0.0/dbhome_1
Войдите в систему как пользователь oracle или используйте эту команду: $ su - oracle
Создайте домашний каталог Oracle следующим образом:
$ mkdir -p /oracle18c/app/oracle/product/18.0.0/dbhome_1
$ sudo chown -R oracle:oinstall /oracle18c
2.2.5. Перезагрузить систему:
Перезагрузите систему и войдите в свой компьютер как пользователь oracle
,
2.2.6. конфигурировать umask
а также DISPLAY
Параметры.
Удостоверься что umask
а также DISPLAY
установлены правильно, выполнив эти команды:
$ umask
Figure-58: Set umask 022.
$ echo $DISPLAY
Figure-59: Set DISPLAY=:0.
Если оба umask
а также DISPLAY
параметры уже установлены правильно, как показано на рисунках 58 и 59 соответственно, тогда вы в порядке! Вы переходите к следующему шагу 2.2.7, чтобы создать учетную запись оракула.
Если вышеуказанные параметры не установлены должным образом, выполните следующие команды:
$ echo "umask 022" >> ~/.bash_profile
$ echo "export DISPLAY=:0" >> ~/.bash_profile
Перезагрузите компьютер и войдите в систему как пользователь oracle
,
2.2.7. Создайте свою учетную запись Oracle.
Чтобы загрузить файлы установочного образа Oracle Database db_home.zip
, сначала вы должны зарегистрироваться в Oracle Corporation и получить username
а также password
, Если у вас нет учетной записи, вам лучше зарегистрироваться прямо сейчас по этой ссылке: Создать учетную запись Oracle Figure-60: Create your Oracle Account
Вы должны поставить это username
а также password
всякий раз, когда вы загружаете с веб-сайта Oracle.
2.2.8. Скачать файл изображения db_home.zip
,
Скачивать db_home.zip
с веб-сайта Oracle, используйте следующую ссылку: Скачать образ Oracle Figure-61: Select Accept License Agreement and then download Image file db_home.zip.
2.2.9. Извлечение файла изображения db_home.zip
,
Извлекать db_home.zip
(предположим, что вы скачали и сохранили его в ~/Downloads
папку) в домашний каталог Oracle, введите следующую команду:
$ unzip ~/Downloads/'Oracle 18.c LINUX.X64_180000_db_home.zip' -d /oracle18c/app/oracle/product/18.0.0/dbhome_1/
Если бы вы скачали и сохранили db_home.zip
в Pendrive, затем извлечь db_home.zip
из pendrive в домашний каталог Oracle введите следующую команду:
$ unzip /media/krishna/SANTACRUZ/'Oracle 18.c LINUX.X64_180000_db_home.zip' -d /oracle18c/app/oracle/product/18.0.0/dbhome_1/
where
'SANTACRUZ' is name of my pendrive, so replace it with your pendrive's name.
'krishna' is the username on this desktop, so replace it with your own username.
Моя система dual-booted
настольный компьютер с SSD на 250 ГБ (Windows-10 installation
), еще 120 ГБ SSD (Ubuntu 18.04 installation
) и 1 ТБ жесткого диска с тремя разделами NTFS, которые смонтированы в Ubuntu как CodeWrite (read-only)
, ShareMe (read-only)
а также Warehouse (read-write)
соответственно. Итак, этот жесткий диск объемом 1 ТБ доступен для совместного использования между Windows-10 и Ubuntu 18.04. Все копии устанавливаемых загрузок не только для Windows-10, но и для Ubuntu 18.04 хранятся в ShareMe
, Такое расположение помогает сохранить место для хранения на обоих SSD! Чтобы разархивировать, я запускаю следующую команду со своего рабочего стола:
$ unzip /mnt/ShareMe/'Software(downloaded)'/'MySQL & Oracle'/'Oracle 18.c LINUX.X64_180000_db_home.zip' -d /oracle18c/app/oracle/product/18.0.0/dbhome_1/
Примечание. Oracle рекомендует, чтобы созданный вами путь к домашнему каталогу Oracle соответствовал Oracle Optimal Flexible Architecture (OFA)
рекомендации. Кроме того, разархивируйте файлы установочного образа только в созданном вами домашнем каталоге Oracle.
Затем установите правильное разрешение файла в точке монтирования /oracle18c
с помощью chmod
команда:
$ chmod -R 775 /oracle18c
Figure-62: Permission for '/oracle18c' directory and its descendents is set to 775
Выполните эту команду для проверки /opt
складские помещения после окончания процесса извлечения:
$ df -h /opt
Figure-63: The storage space consumed by extraction process was around 9.3 GB (compare with Figure-1).
2.2.10. Изменить флаги загрузчика / компоновщика в makefiles
подходит для Ubuntu Linux Platform.
Манипулирование и изменение make-файлов, в частности flags
, требуется для успешной сборки двоичных файлов на платформе Ubuntu Linux. Если какие-либо ошибки генерируются динамически во время сборки (во время database software installation process
инициировано в интерактивном режиме runInstaller
), безусловно, сделает вашу жизнь несчастной, тем не менее, она на сто процентов уверена, что будет чистая и приятная сборка!
Создать файл скрипта omkfix.sh
с помощью vi
редактор и добавьте следующее:
$ mkdir -p ~/scripts
$ vi ~/scripts/omkfix.sh
Скопируйте и вставьте ниже содержимое в файл.
#!/bin/sh
# Change the path below to point to your installation
export ORACLE_HOME=/oracle18c/app/oracle/product/18.0.0/dbhome_1
# make changes in orld script
sed -i 's/exec gcc "\$@"/exec gcc -no-pie "\$@"/' $ORACLE_HOME/bin/orald
# Take backup before committing changes
cp $ORACLE_HOME/rdbms/lib/ins_rdbms.mk $ORACLE_HOME/rdbms/lib/ins_rdbms.mk.back
cp $ORACLE_HOME/rdbms/lib/env_rdbms.mk $ORACLE_HOME/rdbms/lib/env_rdbms.mk.back
cp $ORACLE_HOME/network/lib/env_network.mk $ORACLE_HOME/network/lib/env_network.mk.back
cp $ORACLE_HOME/srvm/lib/env_srvm.mk $ORACLE_HOME/srvm/lib/env_srvm.mk.back
cp $ORACLE_HOME/crs/lib/env_has.mk $ORACLE_HOME/crs/lib/env_has.mk.back
cp $ORACLE_HOME/odbc/lib/env_odbc.mk $ORACLE_HOME/odbc/lib/env_odbc.mk.back
cp $ORACLE_HOME/precomp/lib/env_precomp.mk $ORACLE_HOME/precomp/lib/env_precomp.mk.back
cp $ORACLE_HOME/ldap/lib/env_ldap.mk $ORACLE_HOME/ldap/lib/env_ldap.mk.back
cp $ORACLE_HOME/ord/im/lib/env_ordim.mk $ORACLE_HOME/ord/im/lib/env_ordim.mk.back
cp $ORACLE_HOME/ctx/lib/env_ctx.mk $ORACLE_HOME/ctx/lib/env_ctx.mk.back
cp $ORACLE_HOME/plsql/lib/env_plsql.mk $ORACLE_HOME/plsql/lib/env_plsql.mk.back
cp $ORACLE_HOME/sqlplus/lib/env_sqlplus.mk $ORACLE_HOME/sqlplus/lib/env_sqlplus.mk.back
cp $ORACLE_HOME/bin/genorasdksh $ORACLE_HOME/bin/genorasdksh.back
#
# make changes changes in .mk files
#
sed -i 's/\$(ORAPWD_LINKLINE)/\$(ORAPWD_LINKLINE) -lnnz18/' $ORACLE_HOME/rdbms/lib/ins_rdbms.mk
sed -i 's/\$(HSOTS_LINKLINE)/\$(HSOTS_LINKLINE) -lagtsh/' $ORACLE_HOME/rdbms/lib/ins_rdbms.mk
sed -i 's/\$(EXTPROC_LINKLINE)/\$(EXTPROC_LINKLINE) -lagtsh/' $ORACLE_HOME/rdbms/lib/ins_rdbms.mk
sed -i 's/\$(OPT) \$(HSOTSMAI)/\$(OPT) -Wl,--no-as-needed \$(HSOTSMAI)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(OPT) \$(HSDEPMAI)/\$(OPT) -Wl,--no-as-needed \$(HSDEPMAI)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(OPT) \$(EXTPMAI)/\$(OPT) -Wl,--no-as-needed \$(EXTPMAI)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(SPOBJS) \$(LLIBDMEXT)/\$(SPOBJS) -Wl,--no-as-needed \$(LLIBDMEXT)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKRMED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKRMED)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSBBDED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSBBDED)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKRSED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKRSED)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SKRNPT)/\$(S0MAIN) -Wl,--no-as-needed \$(SKRNPT)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSTRCED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSTRCED)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSTNTED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSTNTED)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFEDED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFEDED)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFODED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFODED)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFNDGED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFNDGED)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFMUED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFMUED)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFSAGED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFSAGED)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(DBGVCI)/\$(S0MAIN) -Wl,--no-as-needed \$(DBGVCI)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(DBGUCI)/\$(S0MAIN) -Wl,--no-as-needed \$(DBGUCI)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKECED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKECED)/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \($(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/network/lib/env_network.mk
sed -i 's/\$LD \$1G/$LD -Wl,--no-as-needed \$LD_RUNTIME/' $ORACLE_HOME/bin/genorasdksh
sed -i 's/\$(GETCRSHOME_OBJ1) \$(OCRLIBS_DEFAULT)/\$(GETCRSHOME_OBJ1) -Wl,--no-as-needed \$(OCRLIBS_DEFAULT)/' $ORACLE_HOME/srvm/lib/env_srvm.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $ORACLE_HOME/crs/lib/env_has.mk;
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $ORACLE_HOME/odbc/lib/env_odbc.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $ORACLE_HOME/precomp/lib/env_precomp.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $ORACLE_HOME/srvm/lib/env_srvm.mk;
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $ORACLE_HOME/network/lib/env_network.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $ORACLE_HOME/ldap/lib/env_ldap.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $ORACLE_HOME/ord/im/lib/env_ordim.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $ORACLE_HOME/ctx/lib/env_ctx.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $ORACLE_HOME/plsql/lib/env_plsql.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $ORACLE_HOME/sqlplus/lib/env_sqlplus.mk
Сохранить и выйти из vi
редактор.
Выполняя этот скрипт, ORACLE_HOME
будет экспортирован как первая строка скрипта, так что каталог установки для всего скрипта будет правильно указан. Теперь запустите скрипт omkfix.sh
:
$ chmod +x ~/scripts/omkfix.sh
$ . ~/scripts/omkfix.sh
Это конец части II установки, и впоследствии начнется следующая часть III, которая состоит из:
1) Installation of database software by runInstaller interactively.
2) Installation of Listener silently using response file 'rsp'.