Как установить Oracle 18c (Enterprise Edition) на Ubuntu 18.04?

Этот вопрос является оставшимся без ответа, так как Oracle 18c была выпущена. Кроме Ubuntu платформа Linux, большая часть другой поддержки платформ Linux Oracle 18c установка. Я, сам, протестировал это на CentOS 7 и оракул 18c был установлен без любого незначительного сбоя!

Неудачно, что Oracle Corporation не зарегистрировала процесс установки особенно для Ubuntu Linux platform, тем не менее, одна хорошая вещь состоит в том что файл изображения db_home.zip универсальный, устанавливаемый через все платформы Linux.

Таким образом, как я могу установить Oracle 18c (Enterprise Edition) на Ubuntu 18.04?

4
задан 12 March 2019 в 06:15

6 ответов

Часть 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 или Oracle Grid Infrastructure. .

В домашнем каталоге Oracle выполните команду runInstaller , чтобы запустить мастер установки базы данных Oracle.

$ cd /oracle18c/app/oracle/product/18.0.0/dbhome_1
$ ./runInstaller

enter image description here Рисунок-64: Выполните runInstaller из каталога /oracle18c/app/oracle/product/18.0.0/dbhome_1/.

enter image description here Рисунок 65: Запуск установщика Oracle Database 18c.

enter image description here Рисунок-66: Нажмите кнопку «Да» и продолжайте установку.

enter image description here Рисунок-67: Выберите параметр «Установить только программное обеспечение» и нажмите Далее.

enter image description here Рисунок-68: Выберите вариант «Установка базы данных с одним экземпляром» и нажмите Далее.

enter image description here Рисунок-69: Выберите вариант «Корпоративная версия» и нажмите Далее.

enter image description here Рисунок-70: Примите значение по умолчанию «Место установки» и нажмите Далее.

enter image description here Рисунок 71: Примите каталог Oracle Inventor по умолчанию / oracle18c / app / oralInventory и нажмите «Далее».

enter image description here Рисунок-72: Выберите Группы операционных систем и нажмите Далее.

enter image description here Рисунок 73: Это экран сводки. Нажмите кнопку «Сохранить файл ответов», чтобы сделать копию файла «db.rsp».

enter image description here Рисунок 74: Дважды щелкните папку «Документы» и затем сохраните копию файла «db.rsp», нажав кнопку «Сохранить».

Сохраните файл ответов db.rsp в каталоге ~ / Documents . Это для справки.

enter image description here Рисунок-75: Теперь нажмите кнопку «Установить» на итоговом экране, чтобы продолжить.

enter image description here Рисунок 76: Выполняется установка продукта… ...

enter image description here Рисунок 77: Выполните оба сценария один за другим с логином «root».

Откройте второй терминал, набрав Ctrl + AlT + T . Войдите в командную строку как пользователь root, набрав su - :

$ su -

Скопируйте весь путь к первому скрипту orainstRoot.sh и вставьте его в терминал ( команда с префиксом "." )

#. /oracle18c/app/oraInventory/orainstRoot.sh

enter image description here Рисунок-78: Выполнение первого скрипта orainstRoot.sh с входом «root».

Теперь скопируйте весь путь ко второму сценарию root.sh и вставьте его в терминал (команда префикса с "." ) и нажмите .

#. /oracle18c/app/oracle/product/18.0.0/dbhome_1/root.sh

Во время выполнения этого сценария вас попросят «Введите полный путь к локальному каталогу bin: / usr / local / bin: ". Вы просто принимаете этот «каталог bin по умолчанию» , нажав клавишу <возврат> .

Впоследствии будет задан другой вопрос: «Вы хотите настроить Oracle Trace File Analyzer (TFA) сейчас? Да [нет]:» , для которого вы вводите «y» и установите его.

enter image description here Рисунок-79: Выполнение второго скрипта root.sh с логином "root".

После завершения выполнения обоих сценариев с логином "root" , вы должны вернуться в программу установки и нажать кнопку OK , чтобы продолжить установку (см. Снимок экрана) ниже рисунок-80).

enter image description here Рисунок 80: После выполнения сценария нажмите кнопку ОК и продолжайте.

enter image description here Рисунок 81: Нажмите кнопку «Закрыть», чтобы завершить установку программного обеспечения базы данных.

enter image description here Рисунок 82: Поздравляем! Вы успешно установили программное обеспечение базы данных с помощью runInstaller в интерактивном режиме !!

3.3. LISTENER Установка:

Откройте терминал, нажав 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 enter image description here Рисунок 83: Содержимое типичного файла netca_typ.rsp, способного генерировать listener.ora и 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 на ваше имя хоста компьютера .
Примечание-1: Чтобы распечатать имя хоста компьютера , введите следующую команду: $ hostname
Примечание-2: Чтобы распечатать полное доменное имя компьютера , введите следующую команду: $ hostname -f или $ hostname -A

Сохраните и выйдите из редактора vi .

Содержимое обновленного netca.rsp , который теперь может генерировать tnsnames.ora , показано ниже:

$ cat ~ / Documents / netca.rsp enter image description here ] Рисунок-84: Умный 'netca.rsp' теперь генерирует не только 'listener.ora' и 'sqlnet.ora', но также 'tnsnames.ora'.

Запустите инструмент помощи в настройке сети netca :

$ /oracle18c/app/oracle/product/18.0.0/dbhome_1/bin/netca -silent -responseFile ~/Documents/netca.rsp

enter image description here Рисунок-85: NETCA настроила прослушиватель, а также сетевые службы, успешно запущенные в автоматическом режиме.

Проверьте статус слушателя, введя следующие команды:

$ export ORACLE_HOME=/oracle18c/app/oracle/product/18.0.0/dbhome_1
$ /oracle18c/app/oracle/product/18.0.0/dbhome_1/bin/lsnrctl status

enter image description here Рисунок-86: Вывод команды 'lsnrctl status'.

Уровень трассировки отключен , как показано на рисунке 86 выше. Допустимые значения для уровня трассировки: выключено , пользователь , администратор и поддержка . Воспользуйтесь редактором 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

enter image description here Рисунок 87: «listener.ora» содержит параметры конфигурации сети на стороне сервера.

Используйте редактор 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

enter image description here Рисунок 88: 'sqlnet.ora' - файл конфигурации профиля, который содержит параметры, используемые как клиентом, так и сервером.

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

enter image description here Рисунок 89: Файл 'tnsnames.ora' содержит список псевдонимов.

Чтобы применить изменения, сделанные в 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

enter image description here Рисунок-90: Параметры прослушивателя настроены успешно (сравните с рисунком 86).

Вот конец Части III , и предстоящая Часть-IV состоит из:

1) Generate database scripts by DBCA.
2) Create Orcale 18c database by running scripts.
7
ответ дан 23 November 2019 в 11:34

Давайте начнем с Часть-I сеанса ответов.

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 enter image description here Рисунок 1: Объем свободного места, доступного в разделе «/ opt» .

1.2. JDK-11 установлен на вашем компьютере.

$ echo $ JAVA_HOME enter image description here Рисунок 2: Установка JDK-11 уже выполнена.

1.3. Включите поддержку нескольких архитектур (поддержка 32-разрядной версии).

Перед включением 32-битной поддержки для 64-битной Ubuntu 18.04, позвольте нам убедиться, что у вас 64-битная архитектура ядра:

$ dpkg --print-architecture enter image description here Рисунок-3 : Эта компьютерная система имеет 64-битную архитектуру ядра.

Поддержка нескольких архитектур позволяет использовать 32-битные библиотеки наряду с 64-битными библиотеками.

$ dpkg --print-foreign-architeures enter image description here Рисунок 4: Эта компьютерная система также поддерживает архитектуру i386 (т.е. поддерживает также 32-битные библиотеки).

Если вы получили результат, подобный фигуре-4, то вам следует прервать этот шаг и перейти к следующему шагу-1.4.

Включите поддержку нескольких архивов, набрав:

$ sudo dpkg --add-architecture i386
$ sudo apt-get update

Начнется загрузка и выполнение обновления. После этого вы даете следующую команду:

$ sudo apt-get dist-upgrade

Теперь проверьте наличие поддержки i386, набрав следующее, и вы должны получить результат, как на рисунке 4:

$ dpkg - печать-иностранные-архитектуры

1.4. Установите пакеты зависимостей, необходимые для установки 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 enter image description here Рисунок 5: '/ bin / sh' указывает на оболочку 'dash'

Если / bin / sh указывает на черточку оболочки (см. Рисунок-5 выше), тогда все хорошо! Теперь вы прерываете этот шаг и переходите к следующему шагу 1.6.

enter image description here Рисунок 6: / bin / sh указывает на оболочку bash

Если это оболочка bash , как показано на рисунке 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. назад

$ 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 enter image description here Рисунок 7: Список параметров ядра, настроенных в файле "/etc/sysctl.conf".

1.7.Настройте ограничения оболочки для пользователя oracle

Исторически ограничения ресурсов для процессов определены в /etc/security/limits.conf . Этот файл читается во время входа в систему для пользователей, выполняющих вход с помощью PAM (через файл pam_limits.so ). Однако системные службы, запускаемые через systemd , не используют PAM для входа в систему, поэтому ограничения в /etc/security/limits.conf игнорируются.

Выполните вход в систему с графическим интерфейсом и откройте терминал с помощью Ctrl + Alt + T и введите следующую команду:

$ ulimit -n -s -u -l enter image description here Рисунок 8: Ограничения для входа в систему с графическим интерфейсом с пустым файлом /etc/systemsd/user.conf.

Выполните вход без графического интерфейса с помощью команды su , а затем введите команду ulimit :

$ su krishna
$ ulimit -n -s -u -l

enter image description here Рисунок 9: Ограничения для входа без графического интерфейса с пустым Файл /etc/security/limits.conf.

1.7.1. Сконфигурируйте параметры ограничений для логинов GUI с помощью файла /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 с нуля, и это было действительно тяжелое время!

Выполните вход в систему с графическим интерфейсом и откройте терминал с помощью Ctrl + Alt + T и введите следующую команду:

$ ulimit -n -s -u -l enter image description here Рисунок-10: Ограничения для входа в систему с графическим интерфейсом пользователя с параметрами, настроенными в файле /etc/systemsd/user.conf.

Выполните вход без графического интерфейса с помощью команды su , а затем введите команду ulimit :

$ su krishna
$ ulimit -n -s -u -l

enter image description here Рисунок 11: Ограничения для входа без графического интерфейса с пустым Файл /etc/security/limits.conf.

1.7.2. Настройте параметры ограничений для входа без графического интерфейса пользователя с помощью файла /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 .

Перезагрузите компьютер, чтобы изменения вступили в силу. Выполните вход в систему с графическим интерфейсом пользователя и откройте терминал с помощью Ctrl + Alt + T и введите следующую команду:

$ ulimit -n -s -u -l enter image description here Рисунок-12: Ограничения для входа в систему через графический интерфейс с параметрами, настроенными в файле '/etc/systemsd/user.conf'.

Выполните вход без графического интерфейса с помощью команды su , а затем введите команду ulimit :

$ su krishna
$ ulimit -n -s -u -l

enter image description here Рисунок 13: Ограничения для входа без графического интерфейса с параметрами настраивается в файле /etc/security/limits.conf.

Используйте редактор 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 enter image description here Рисунок 14: PID для gnome-shell.

$ sudo cat / proc / 1202 / limits enter image description here Рисунок 15: Мягкие ограничения для gnome-shell (отмечены красным).

MaxStackSize - 8192 КБ (8388608% 1024), MaxProcess - 63077, MaxOpenFile - 1024 и MaxLockedMemory - 16384 КБ (16777216% 1024 ). Сравните эти значения с цифрой 11.

$ ps -a | grep -v tty2 | grep bash enter image description here Рисунок 16: PID для 'bash'.

$ sudo cat / proc / 2697 / limits enter image description here Рисунок 17: Мягкие ограничения для 'bash' (отмечены красным).

MaxStackSize - 30 000 КБ (30720000% 1024), MaxProcess - 60 000, MaxOpenFile - 60 000 и MaxLockedMemory - 3 000 000 КБ (3072000000% 1024 ). Сравните эти значения с цифрой 13.

1.7.4. Добавьте pam_limits в свою конфигурацию PAM (подключаемые модули аутентификации).

/etc/security/limits.conf позволяет устанавливать ограничения ресурсов для пользователей, вошедших в систему через PAM. Это полезный способ предотвращения, например, использования всех системных ресурсов fork-бомбами. Поскольку /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. Чтобы убедиться, что компьютер настроен для защищенного Linux , введите команду:

$ sestatus enter image description here Рисунок 18: Вывод подтверждает, что защищенный Linux не установлен, который это хорошо.

Если вы получите результат, подобный приведенному на рис. 18, значит, все в порядке! Теперь вы прерываете этот шаг и переходите к следующему шагу 1.9.

Если вы установили пакет policycoreutils и получили результат, как на рисунке 19 ниже, значит, вы тоже в порядке! Вы прерываете этот шаг и переходите к следующему шагу 1.9.

$ sudo sestatus

enter image description here Рисунок 19: Вывод команды 'sestatus'.

Поскольку вы уже настроили защищенный Linux, измените флаг SELINUX на разрешающий, отредактировав файл / etc / selinux / config :

$ sudo cp /etc/selinux/config /etc/selinux/config.back
$ sudo vi /etc/selinux/config

Теперь установите SELINUX флаг разрешающий :

SELINUX = permissive

Сохраните и выйдите из редактора vi .

Чтобы подтвердить изменение, введите следующую команду:

$ sudo sestatus

Примечание : Поскольку мой компьютер не был настроен для защищенного Linux , я не смог создать снимок экрана для указанная выше команда!

1.9. Отключить прозрачные огромные страницы.

Transparent Huge Pages (THP) - это система управления памятью Linux, которая снижает накладные расходы на поиск в буфере трансляции (TLB) на машинах с большими объемами памяти за счет использования больших страниц памяти.

Однако рабочие нагрузки базы данных часто плохо работают с THP, потому что они, как правило, имеют разреженные, а не непрерывные шаблоны доступа к памяти.Общая рекомендация для MySQL , MongoDB , Oracle и т. Д. - отключить THP на машинах Linux для обеспечения максимальной производительности.

Вы можете проверить, включен ли THP, запустив:

$ cat / sys / kernel / mm / transparent_hugepage / enabled enter image description here Рисунок 20: Вывод показывает, что THP 'enabled' установлен по умолчанию значение '[madvise]' на этом компьютере в настоящее время.

$ cat / sys / kernel / mm / transparent_hugepage / defrag enter image description here Рисунок 21: Выходные данные показывают, что THP 'defrag' установлен на значение по умолчанию '[madvise]' на этом компьютере в настоящее время.

Если на рисунках 20 и 21 выводятся такие как [never] , то THP не активирован и не запущен.

Как выключить THP во время всего текущего сеанса?

Теперь введите следующие команды:

$ su -
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# exit
$ cat /sys/kernel/mm/transparent_hugepage/enabled

enter image description here Рисунок 22: Выходные данные показывают, что THP включен, остановлен с этого компьютера, что обозначено значением '[никогда]' .

$ su -
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# exit
$ cat /sys/kernel/mm/transparent_hugepage/defrag

enter image description here Рисунок-23: Выходные данные показывают, что THP 'defrag' остановлен с этого компьютера, на что указывает значение '[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

enter image description here Рисунок-24: Служба отключения THP включена для запуска во время загрузки.

$ sudo systemctl status disable-thp enter image description here Рисунок 25: Служба отключения THP успешно запущена.

Теперь, чтобы убедиться, что THP отключен навсегда, введите следующую команду:

$ cat / sys / kernel / mm / transparent_hugepage / enabled enter image description here Рисунок 26: Выходные данные показывают, что THP 'enabled' отключен постоянно, на что указывает значение «[никогда]».

$ cat / sys / kernel / mm / transparent_hugepage / defrag enter image description here Рисунок-27: Выходные данные показывают, что THP 'defrag' постоянно выключен, как указано значением '[never]'.

1.10. Заключительные контрольные точки, относящиеся к установке Oracle.

1.10.1. Используйте следующую команду, чтобы определить размер физического ОЗУ на сервере:

$ grep MemTotal / proc / meminfo enter image description here Рисунок 28: Доступен большой объем физической ОЗУ (16 ГБ).

Примечание : Если размер физической ОЗУ, установленной в системе, меньше требуемого размера (2 ГБ), то перед продолжением необходимо установить больше памяти.

1.10.2. Определите размер настроенного пространства подкачки:

$ grep SwapTotal / proc / meminfo enter image description here Рисунок 29: Для раздела подкачки доступен большой объем памяти (16 ГБ).

Примечание : Если размер памяти подкачки в системе меньше требуемого размера (см. Таблицу ниже, которая рекомендована 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 enter image description here Рисунок 30: Для раздела '/ tmp' (16 ГБ) доступен большой объем памяти.

Примечание : Если размер / tmp памяти в системе меньше необходимого размера (400 МБ), выполните одно из следующих действий:

  • Удалите ненужные файлы из каталог / tmp , чтобы обеспечить дисковое пространство.
  • При настройке среды пользователя Oracle также установите переменные среды TMP и TMPDIR в каталог, который вы хотите использовать вместо / tmp .

1.10.4. Определите объем свободной RAM и дискового пространства подкачки в системе:

$ free -h enter image description here Рисунок 31: Обзор свободной RAM (физической) и swap (дискового пространства), доступных в системе.

1.10.5. Определите, может ли архитектура системы запускать программное обеспечение:

Убедитесь, что архитектура процессора соответствует устанавливаемой версии программного обеспечения Oracle. Например, вы должны увидеть следующее для x86-64 разрядной системы.

$ uname -m enter image description here Рисунок 32: Выходные данные показывают, что компьютерная система имеет 64-битную архитектуру.

Если вы не видите ожидаемого результата, значит, вы не можете установить программное обеспечение в этой системе.

1.10.6. Пример таблицы разделов для твердотельного накопителя на 120 ГБ, подходящего для установки Oracle:

У меня есть твердотельный накопитель на 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 enter image description here Рисунок 33: Файловая система tmpfs смонтирована на '/ dev / shm' и имеет 7,8 ГБ общей общей памяти.

Чтобы уменьшить лимит с 7,8 ГБ до 7,0 ГБ, введите следующую команду:

$ sudo mount -o remount,size=7G /dev/shm
$ df -h /dev/shm

enter image description here Рисунок-34:Размер разделяемой памяти '/ dev / shm' изменен с 7,8 ГБ до 7 ГБ.

Чтобы навсегда ограничить любые изменения размера / 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 enter image description here Рисунок-35: Запись файловой системы 'tmpfs' в файл '/ etc / fstab', смонтированный на '/ dev / shm' с общей памятью 8 ГБ.

Чтобы применить наши изменения, сделанные в / etc / fstab , немедленно перемонтируйте / dev / shm :

$ sudo mount -o remount /dev/shm
$ df -h /dev/shm

enter image description here Рисунок 36: Общая память '/ dev / shm' размер 8 ГБ.

1.11. Конфигурация сети.

1.11.1. Настройте файл / etc / hosts .

Чтобы узнать содержимое файла / etc / hosts , введите следующую команду:

$ cat / etc / hosts enter image description here Рисунок 37: Содержимое файла / etc / hosts.

Содержание скриншота рисунка 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: enter image description here Рисунок-38: Запись хостов в '/etc/nsswich.conf', где 'files' предшествует dns в порядке, который является правильным.

предупреждение : если файл / etc / hosts настроен неправильно, то в какой-то момент установщик Oracle завершится ошибкой!

1.11.2.Настройте файл /etc/resolv.conf .

Чтобы отобразить, какие сетевые интерфейсы доступны в системе, введите следующую команду:

$ ip link show enter image description here Рисунок 39: Сетевой адаптер Wi-Fi wlp5s0 активен, запущен и работает.

Файл конфигурации сети netplan / .yaml должен быть проверен на предмет деталей конфигурации. Чтобы отобразить содержимое файла, введите следующую команду:

$ cat /etc/netplan/01-network-manager-all.yaml enter image description here Рисунок 40: Файл сетевого менеджера '01 -network-manager-all .yaml не настроен.

Определите, является ли /etc/resolv.conf статическим файлом или символической ссылкой с помощью следующей команды:

$ ls -l / etc /resolv.conf enter image description here Рисунок-41: Файл '/etc/resolv.conf' - это символическая ссылка, указывающая на файл-заглушку 'stub-resolv.conf'.

Отобразите содержимое /etc/resolv.conf с помощью команды: cat /etc/resolv.conf enter image description here Рисунок-42: Содержимое символической ссылки '/etc/resolv.conf 'имея 127.0.0.53 в качестве сервера имен.

DNS, показанный в /etc/resolv.conf , это 127.0.0.53 , но не сервер имен по умолчанию, настроенный для DHCP. Введите следующую команду, чтобы узнать DNS-сервер по умолчанию:

$ systemd-resolve --status wlp5s0 enter image description here Рисунок-43: DNS-сервер по умолчанию для сетевого адаптера WiFi - 192.168.43.1.

Отобразите содержимое /run/systemd/resolve/resolv.conf с помощью команды:

$ cat /run/systemd/resolve/resolv.conf enter image description here Рисунок-44: содержимое '/run/systemd/resolve/resolv.conf', указывающее сервер имен по умолчанию.Сравните с рисунком 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

enter image description here Рисунок-45: Файл /etc/resolv.conf - это символическая ссылка, указывающая на сервер имен по умолчанию, что хорошо.

После настройки sysmlink, как показано на рисунке-45, вы должны убедиться, что ваш Wi-Fi подключен, запущен и работает, выполнив следующую команду:

$ nmcli device

enter image description here Рисунок-45-a : Адаптер сетевого интерфейса Wi-Fi «wlp5s0» подключен, настроен и работает.

1.12. Отключите брандмауэр Linux.

Если у вас включен брандмауэр Linux, вам нужно будет его отключить, сделайте, как указано ниже:

$ sudo ufw disable
$ sudo ufw status

enter image description here Рисунок 46: Отключите брандмауэр перед установкой Oracle.

Примечание : не забудьте включить брандмауэр после завершения установки, используя команду: $ 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.
8
ответ дан 23 November 2019 в 11:34

IV части сессии ответа начинается теперь.

4. DBCA Генерируют сценарии для создания базы данных

4.1. Выполнение DBCA:

Откройте терминал путем нажатия Ctrl+Alt+T и выполненный инструмент помощи конфигурации базы данных dbca:

$ /oracle18c/app/oracle/product/18.0.0/dbhome_1/bin/dbca

enter image description here Figure-91: Run database configuration assistance tool 'dbca'

enter image description here Figure-92: dbca logo

enter image description here Figure-93: Select 'Create a database operation' and press 'Next'.

enter image description here Figure-94: Select 'Advanced configuration' mode and press 'Next'.

enter image description here Figure-95: Select 'Deployment type' and press 'Next'.

enter image description here Figure-96: Enter 'Global database name', 'SID', 'PDB name' then click 'Next' button.

enter image description here Figure-97: Select storage option "Use template file for database storage attributes" and click 'Next'.

enter image description here Figure-98: Select Fast Recovery Option "Specify Fast Recovery Area" and click 'Next'

enter image description here Figure-99: Choose listener to register database and click 'Next'.

enter image description here Figure-100: Configure Database Vault and Label Security and click 'Next'.

enter image description here Figure-101: Choose Memory option " Use Automatic Shared Memory Management (ASMM)" and configure "SGA" and "PGA" shared memory size and then hit menu 'Sizing'.

enter image description here Figure-102: Specify "Processes" Number then hit menu "Character Sets".

enter image description here Figure-103: Select "Unicode character" set and hit menu "Connection mode"

enter image description here Figure-104: Select Dedicated server mode and hit "Sample Schemas"

enter image description here Figure-105: Mark checkbox to "add sample schemas to the database" and then hit "Next".

enter image description here Figure-106: Select "Configure Enterprise Manager (EM) database express " and specify port. Click 'Next'

enter image description here Figure-107: Specify passwords for SYS, SYSTEM, PDBADMIN separately or select "Use the same passwords for all accounts". Click 'Next'.

enter image description here Figure-108: Uncheck "Create database" checkbox to avoid creation of a database and check "Generate database creation scripts" checkbox. Click "Next" button.

enter image description here Figure-109: Click "Save Response File " button.

enter image description here Figure-110: Double-click "Documents" folder and then save a copy of dbca.rsp file by clicking "Save" button.

Сохраните файл ответа dbca.rsp в ~/Documents каталог. Это rsp файл необходим позже.

enter image description here Figure-111: After saving "dbca.rsp" file, click "Finish" button.

enter image description here 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, данном ниже: изменения enter image description here Figure-113: "Error: ORA-12547: TNS:lost contact".

Теперь, мы должны узнать, кто доставлял эти неприятности.

Сценарий оболочки orcl.sh вызванный orcl.sql сценарий от того, где реальное действие началось. orcl.sql вызванный ряд другого sql сценарии последовательно. Давайте поместим операторы трассировки вокруг первого sql сценария CloneRmanRestore.sql названный oracl.sql показанный в рисунке 114 ниже:

enter image description here Figure-114: Trace statements in 'orcl.sql' file around 'CloneRmanRestore.sql' at the point of calling.

Если Вы работаете orcl.sh еще раз затем состояние выполнения при трассировке показывают ниже рисунка 115:

enter image description here Figure-115: "Error: ORA-12547: TNS:lost contact" appears soon after entering into 'CloneRmanRestore.sql'.

Так, откройтесь CloneRmanRestore.sql файл и место прослеживают операторы вокруг CONNECT оператор, который является very first one upon entry как показано в ударе рисунка 116:

enter image description here Figure-116: Trace statements in 'CloneRmanRestore.sql' file around 'CONNECT' Statement.

Когда Вы выполняете сценарий оболочки orcl.sh снова, момент состояние выполнения вводит CloneRmanRestore.sql файл, ошибка происходит, как дали в рисунке 117 ниже:

enter image description here 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] для переустанавливания оракула.

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], завершают Установку СЛУШАТЕЛЯ и возвращаются назад сразу сюда.

Чтобы проверить, что слушатель активен, дайте эту команду: $ ps -ef | grep tnslsnr

enter image description here 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 сессии начинает покрывать "Поиск и устранение неисправностей и После установки".

6
ответ дан 23 November 2019 в 11:34

Сейчас начинается последняя и заключительная Часть-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. Проверить статус слушателя .

Убедитесь, что слушатель включен и слушает в фоновом режиме, с помощью следующей команды:

$ ss -elpunt | grep -E "^ Net | tnslsnr"

enter image description here Рисунок-119: Прослушиватель Oracle запущен и работает.

Если прослушиватель не запущен, запустите его следующей командой:

$ lsnrctl start LISTENER

5.5. Значение ошибки ORA-12547 .

Давайте сначала разберемся, «Что означает ORA-12547 ». Выясните значение ошибки ORA-12547 , запустив двоичный файл Oracle oerr , который выводит предварительно записанное описание.

$ cd $ORACLE_HOME/bin
$ ./oerr ORA 12547

enter image description here Рисунок-120: Значение ошибки «ORA-12547», отображаемой двоичной утилитой oracle «oerr».

Описание ошибки ORA-12547 утилитой oracle oerr кажется немного странным. Проще говоря, ORA-12547 указывает, что канал связи нарушен. Чаще всего это происходит из-за того, что другой конец процесса неожиданно завершился. Эта ошибка ORA-12547 может возникать по разным причинам. Увидим по очереди.

5.6. Настройки привилегий для oracle двоичного

двоичного oracle должны иметь не только 6751 привилегию, но также ненулевой размер файла, поскольку показано на рисунке 121 ниже:

$ cd $ORACLE_HOME/bin
$ ls -l oracle

enter image description here Рисунок 121: двоичный файл oracle имеет установленные привилегии '6751' и 'ненулевой' размер файлов, что является приемлемым.

Если установлена ​​неправильная привилегия, введите следующую команду:

$ chmod 6751 oracle

Если файл oracle показывает нулевой размер файла , выполните следующую команду для восстановления:

$ cd $ORACLE_HOME/bin
$ ./relink all

5.7. Ненулевой размер файла config.o двоичный:

Объектный файл config.o должен иметь ненулевой размер файла. Для проверки введите следующие команды:

$ cd $ORACLE_HOME/rdbms/lib
$ ls -l config.o

enter image description here Рисунок-122: На экране отображается, что файл 'object.o' имеет ненулевой размер файла, и это хорошо.

Если имеется нулевой размер файла , введите следующую команду для восстановления:

$ mv config.o config.o.bad
$ cd $ORACLE_HOME/bin
$ ./relink all

5.8. Базовые и домашние параметры Oracle в файле orabasetab :

Отображение содержимого файла для проверки параметров Oracle Base и Home .

$ cd $ORACLE_HOME/install
$ cat orabasetab

enter image description here Рисунок-123: Отображение содержимого файла 'orabasetab', показывающего правильные настройки Oracle 'Base' и 'Home'.

Если обнаружены неполные или неправильные настройки, отредактируйте файл $ ORACLE_HOME / install / orabasetab с помощью редактора vi и исправьте Base и Home значения.

5.9. Настройки Oracle Base:

Запустите двоичный файл orrabase , чтобы убедиться, что базовый каталог Oracle установлен правильно.

$ cd $ORACLE_HOME/bin
$ ./orabase

enter image description here Рисунок-124: Настройки каталога Oracle Base показаны двоичной 'orabase', что хорошо.

5.10. Настройки привилегий для каталога / proc :

Убедитесь, что в каталоге / proc установлены правильные привилегии. Введите следующую команду:

$ ls -l / enter image description here Рисунок 125: Правильные настройки 555 привилегий для каталога / proc.

Если есть неправильные настройки привилегий, исправьте вручную с помощью следующей команды:

$ cd /
$ sudo chmod 555 proc

5.11. Настройки привилегий для каталога / dev / null :

Убедитесь, что в каталоге / dev / null установлены правильные привилегии, которые должны быть 0666 . Введите следующую команду:

$ ls -l / enter image description here Рисунок 126: Правильные настройки привилегий «666» для каталога «/ dev / null».

Если есть неправильные настройки привилегий, исправьте вручную с помощью следующей команды:

$ 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 enter image description here Рисунок-127: Четвертое поле '[options]' содержит «значения по умолчанию», соответствующие файловым системам '/ opt', что хорошо.

Четвертое поле [параметры] имеет значение «defaults» , которое является ярлыком и его расширение:

«rw, suid, dev , exec, auto, nouser, async "

Итак, наличие " значений по умолчанию " не вызывает проблем. При отсутствии "значений по умолчанию" , если присутствует "nosuid" явно, то измените его на "suid" вручную в / etc / fstab с помощью редактора vi . После изменения просто перезагрузите вашу систему.

5.13. Отключите переменную среды EXTSHM .

Поскольку Oracle не поддерживает Extended Shared Memory , переменная среды EXTSHM не должна быть установлена. Введите следующую команду:

$ env | grep EXTSHM enter image description here Рисунок 128: Выходные данные показывают, что переменная окружения 'EXTSHM' не определена, что хорошо.

Если установлена ​​переменная EXTSHM , то сбросит с помощью следующей команды:

$ unset EXTSHM

5.14. Недостаточно настроек ulimit для стека:

Обратитесь к [раздел 1-7] « Настройте пределы оболочки для пользователя oracle », чтобы увеличить ограничения стека.

5.15.Имитация ошибки «ORA-12547: TNS: потерянный контакт» с использованием двоичного кода sqlplus :

Было установлено, что ошибка ORA-12547 произошла при попытке создать базу данных Oracle 18c, запустив сценарии, сгенерированные из DBCA [ см. раздел 4.2 и рисунок 113 ]. Мы выяснили, что основной причиной этой ошибки была инструкция CONNECT . Итак, давайте воспроизведем эту ошибку еще раз, вызвав оператор CONNECT непосредственно из двоичного файла sqlplus .

Выполните команду sqlplus , как показано ниже:

$ $ ORACLE_HOME / bin / sqlplus / nolog

Проблема Оператор CONNECT в запросе SQL как следует:

SQL> подключить sys / oracle18c как sysdba; enter image description here Рисунок 129: Имитация ошибки «ORA-12547: TNS: потеря контакта» путем прямого вызова двоичного файла sqlplus.

Теперь установлено, что ошибка может быть повторно создана путем выполнения двоичного файла sqlplus . В отсутствие исходного кода мы должны решать проблему любым оружием, оставшимся в нашем арсенале. В качестве первого шага попробуем сгенерировать информацию трассировки, описывающую последовательность событий, происходящих в двоичном файле sqlplus .

5.16. Запустите команду strace , чтобы сгенерировать информацию трассировки, необходимую для дальнейшего копания:

Чтобы сгенерировать файл трассировки, необходимый для дальнейшего исследования оператора CONNECT , давайте воспользуемся strace ] вместе с sqlplus , как показано ниже:

$ strace -f -o / tmp / strace.log $ ORACLE_HOME / bin / sqlplus / nolog

Задайте оператор CONNECT в запросе SQL следующим образом:

SQL> подключите sys / oracle18c как sysdba;

enter image description here Рисунок- 130: Используйте команду strace, чтобы исследовать оператор CONNECT, вызванный из двоичного файла sqlplus.

Теперь используйте gedit и откройте файл /tmp/strace.log . После отслеживания всего файла проблемная область была идентифицирована, как показано на рисунке-131 ниже: enter image description here Рисунок-131: обнаружен «дамп ядра», записанный в файл 'strace.log'.

Прежде чем продолжить анализ «дампа ядра» , давайте проверим, был ли сгенерирован файл core в каталоге по умолчанию с помощью следующих команд:

$ pwd
$ ls

enter image description here Рисунок-132: Выходные данные подтверждают, что в каталоге «/ home / oracle» не был создан файл «core».

Узнайте, включено ли ядро, с помощью следующей команды:

$ ulimit -c enter image description here Рисунок 133: Выходные данные показывают, что «ядро» не включено.

Чтобы включить ядро, введите следующую команду:

$ ulimit -c unlimited enter image description here Рисунок 134: Включение генерации файла ядра.

Убедитесь, что ядро ​​включено, с помощью следующей команды:

$ ulimit -c

enter image description here Рисунок 135: Результат показывает, что создание файла ядра успешно включено.

Снова запустите команду strace , как показано в начале этого раздела 5.16 , и убедитесь, что файл core был успешно сгенерирован:

$ pwd
$ ls

enter image description here Рисунок -136: Выходные данные показывают, что файл 'core' успешно сгенерирован

Теперь запустите отладчик gdb следующим образом:

$ gdb -c core enter image description here Рисунок-137: Неопределенный символ в 'libpython3 .6m.so.1.0 'при вызове отладчика' gdb '.

Чтобы устранить ошибку поиска символа , введите следующую команду для проверки зависимостей gdb :

$ ldd / usr / bin / gdb enter image description here Рисунок-138: Выходные данные показывает, что только общий объект libexpat.so.1 был неправильно загружен из $ ORACLE_HOME / lib.

Из вывода about на рисунке 138 выше можно легко сделать вывод, что проблема связана с переменной среды LD_LIBRARY_PATH .

Во-первых, введите следующую команду, чтобы найти правильный путь к libexpat.so.1 :

$ locate libexpat.so.1 enter image description here Рисунок-139: Правильный путь к библиотеке для ' libexpat.so.1 'is' / lib / x86_64-linux-gnu / '

Определение текущего значения переменной среды LD_LIBRARY_PATH :

$ echo $ LD_LIBRARY_PATH enter image description here Рисунок-140: '$ ORACLE_HOME / lib' появляется как первый член в 'значении' переменной окружения 'LD_LIBRARY_PATH'

Поскольку $ ORACLE_HOME / lib кажется первым членом в LD_LIBRARY_PATH , поэтому библиотека зависимостей libexpat.so.1 была загружена из $ ORACLE_HOME / lib , а не из / lib / x86_64-linux-gnu . {{1 }} Этот LD_LIBRARY_PATH должен быть отключен до завершения анализа дампа ядра. Позже эта переменная среды LD_LIBRARY_PATH должна быть восстановлена ​​в исходное состояние.

Отредактируйте файл ~ / scripts / oenv.sh (см. Раздел 5.2) и закомментируйте строку, содержащую LD_LIBRARY_PATH , чтобы эта переменная автоматически сбрасывалась после перезагрузки.

Убедитесь, что строка закомментирована правильно, с помощью следующей команды:

$ cat ~ / scripts / oenv.sh | grep LD_LIBRARY_PATH enter image description here Рисунок-141: Символ комментария «#» появляется перед строкой, содержащей «LD_LIBRARY_PATH».

Перезагрузите систему.

Определите, что значение LD_LIBRARY_PATH , пусто оно или нет, с помощью следующей команды:

$ echo $ LD_LIBRARY_PATH enter image description here Рисунок-142: Выходные данные показывают, что 'LD_LIBRARY_PATH' пусто, таким образом, правильно отключите, что хорошо.

Выполните следующую команду еще раз, чтобы проверить список зависимостей gdb , чтобы убедиться, что libexpat.so.1 загружен с правильного пути:

$ ldd / usr / bin / gdb enter image description here Рисунок-143: Выходные данные показывают, что 'libexpat.so.1' правильно загружен из '/ lib / x86_64-linux-gnu'.

Теперь запустите отладчик gdb и убедитесь, что он работает нормально:

$ gdb -c core enter image description here Рисунок 144: Отладчик 'gdb' работает нормально.

Введите команду bt в приглашении gdb , как показано ниже:

(gdb) bt enter image description here Рисунок-145: На экране показан результат выполнения команды 'bt' и заметьте, что результат слишком плох для анализа.

Результат команды bt был слишком плохим, и нам требуется дополнительная информация для анализа. Давайте попробуем другой метод с помощью следующей команды:

$ gdb --core=core --exec=/oracle18c/app/oracle/product/18.0.0/dbhome_1/bin/oracle

Выполните команду bt в приглашении gdb :

(gdb) bt

enter image description here Рисунок- 146: Результат, полученный с помощью приведенной выше команды, более многообещающий, чем на рисунке-145.

Функция tzset () устанавливает информацию о преобразовании времени, используемую localtime () и связанными функциями. Кроме того, localtime () является не поточно-ориентированный, потому что он возвращает указатель (struct tm *) на статическую структуру данных (см. заголовок для получения дополнительных сведений), в котором содержится результат. Давайте еще раз рассмотрим /tmp/strace.log : enter image description here Рисунок-147 : Файл "/ etc / localtime" был последним, к которому обращались до сбоя (дамп ядра).

Файл "/ etc / localtime" был последним, к которому осуществлялся доступ до сбоя (дамп ядра). С самого начала до дампа ядра к этому файлу "/ etc / localtime" обращались дважды.Это показывает состояние тупика, потому что localtime () вводится рекурсивно (во второй раз) из-за обработки некоторого сигнала, а localtime () не является реентерабельным или потокобезопасным, поэтому он блокирует замок.

Мы можем сделать вывод, что ядро ​​Oracle дает сбой в различных libc функциях ( Стандартная библиотека для языка программирования C ), например местное время ().

Что такое ядро ​​Oracle?

В Ubuntu linux каждый клиентский процесс Oracle, такой как sqlplus или Toad , подключается к tnslsnr , который fork () , а затем exec () бинарный «$ ORACLE_HOME / bin / oracle» , называемый программой ядра oracle . Этот двоичный файл также широко известен как Oracle Server Process . См. рисунок-121 в [ раздел-5.6 ].

Давайте отобразим системный вызов execve , вызывающий двоичный файл oracle , записанный командой strace в /tmp/strace.log .

enter image description here Рисунок-148: Бинарный «oracle» ядра Oracle, вызываемый системным вызовом «execve».

Итак, программа ядра Oracle вызывала дамп ядра , и для решения этой проблемы необходимо удалить заглушки libc * . а затем заново собрать двоичный файл ядра Oracle $ ORACLE_HOME / bin / oracle .

Для выполнения этой задачи введите следующие команды:

$ cd $ORACLE_HOME/lib/stubs
$ ls -l libc*
$ rm libc*
$ cd $ORACLE_HOME/bin
$ ./relink all

enter image description here Рисунок-149: Перестройте программу ядра Oracle "$ ORACLE_HOME / bin / oracle" заново, выполнив команду "./ relink all "и просмотрите получившийся файл журнала.

После восстановления проверьте его файл журнала $ ORCALE_HOME / install / relink_2019-02-26_08-27.log , чтобы убедиться, что все повторные сборки выполнены успешно.

Выполните команду strace еще раз и давайте проверим, что наш главный злодей «ORA-12547: TNS: потерян контакт» все еще сохраняется!

$ strace -f - o /tmp/strace.log $ ORACLE_HOME / bin / sqlplus / nolog

Проблема Оператор CONNECT в приглашении SQL следующим образом:

SQL> подключить sys / oracle18c как sysdba;

enter image description here Рисунок- 150: Наш главный злодей «ORA-12547: TNS: потерянный контакт» наконец исчез и заменен на «бездействующий экземпляр».

Бинго! Наш главный злодей «ORA-12547: TNS : lost contact " наконец-то исчез!

Оператор connect был успешно выполнен, также был сгенерирован неактивный экземпляр .

5.17. Повторно запустить Скрипты, сгенерированные из DBCA для создания Oracle 18c Da tabase:

Чтобы отобразить список сценариев, необходимых для создания базы данных, введите следующие команды:

$ cd /oracle18c/app/oracle/admin/orcl/scripts
$ ls -l *.sql

enter image description here Рисунок-151: Список сценариев, сгенерированных 'DBCA', необходимых для создания базы данных oracle 18c.

Убедитесь, что слушатель уже запущен и работает, с помощью следующей команды:

$ ss -elpunt | grep -E "^ Net | tnslsnr" | column -t

enter image description here Рисунок-152: Прослушиватель Oracle работает и прослушивает порт 1521.

Что касается [см. раздел-4.2 и рисунок 113], давайте еще раз попытаемся создать базу данных Oracle 18c, запустив сценарии, сгенерированные из DBCA , и будем надеяться, что на этот раз база данных будет успешно создана!

$ cd /oracle18c/app/oracle/admin/orcl/scripts
$ . orcl.sh | tee ~/Documents/create_database_scripts.log

enter image description here Рисунок-153: Создание базы данных oracle 18c успешно началось! Обратите внимание на появление «незанятого экземпляра» внутри красного ящика.

Давайте посмотрим на скриншот завершения создания базы данных ниже: enter image description here Рисунок-154: Создание базы данных oracle 18c завершилось успешно!

Давайте посмотрим на службы , поддерживаемые прослушивателем , с помощью следующей команды:

$ lsnrctl status

enter image description here Рисунок-155: Службы, поддерживаемые «прослушивателем».

Давайте проверим версию Oracle с помощью следующей команды:

$ sqlplus / as sysdba
SQL> select instance_name, version from v$instance;

enter image description here Рисунок-156: Отображение версии Oracle.

Давайте отобразим Баннер Oracle с помощью следующей команды:

$ sqlplus / as sysdba
SQL> select banner from v$version;

enter image description here Рисунок-157: Отображение Баннера Oracle.

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

enter image description here Рисунок-158: Добавление файла «/ etc / oratab» с флагом перезапуска.

Отобразите содержимое файла «/ etc / oratab» с помощью следующей команды:

$ cat / etc / oratab enter image description here Рисунок-159: Содержимое файла «/ etc / oratab» .

6.2. Запустите PDB вместе с экземпляром базы данных.

Переменные среды DATA_DIR и PDB_NAME , необходимые для настройки PDB , уже экспортированы через ~ / scripts / oenv.sh .Введите следующую команду для проверки:

$ env | egrep 'DATA_DIR = | PDB_NAME =' enter image description here Рисунок 160: переменные среды 'PDB_NAME' и 'DATA_DIR' уже установлены.

Затем убедитесь, что экземпляр базы данных запущен и работает.

Если это не так, вызовите следующий файл сценария для запуска:

$. ~ / скрипты / ora_start.sh

Примечание : чтобы узнать о скрипте ora_start.sh , обратитесь к [ section-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

enter image description here Рисунок-161: Подключаемая база данных запускается вместе с экземпляром базы данных.

6.3. Восстановите LD_LIBRARY_PATH до исходного значения.

Напомним, что LD_LIBRARY_PATH был отключен (см. Рисунки-137 и 138) в ~ / scripts / oenv.sh . Теперь мы должны восстановить его, удалив символ # комментария в строке содержит строку LD_LIBRARY_PATH с использованием любого редактора. Чтобы убедиться, что изменение внесено, введите следующую команду:

$ cat ~ / scripts / oenv.sh | grep LD_LIBRARY_PATH enter image description here Рисунок-162: Переменные среды 'LD_LIBRARY_PATH' восстанавливаются до своего исходного значения путем удаления символа комментария '#' (сравните с рисунком-140).

6.4. Включите брандмауэр.

В раздел-1.12 брандмауэр был отключен, что было обязательным условием. Теперь его можно восстановить. Чтобы включить брандмауэр, введите следующую команду:

$ sudo ufw enable enter image description here Рисунок-163: Брандмауэр успешно включен.

Чтобы проверить состояние межсетевого экрана, введите следующую команду:

$ sudo ufw status enter image description here Рисунок-164: Состояние межсетевого экрана активно

6.5. Скрипты запуска / остановки для базы данных.

Важно напомнить, что переменные среды Oracle уже были установлены с помощью файла ~ / scripts / oenv.sh и добавлены в файл ~ / .bashrc для выполнения при входе в систему . См. Раздел 5.2.

Создайте два сценария ora_start.sh и ora_stop.sh соответственно, которые можно вызвать как службу запуска / выключения .

Теперь создайте 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) вы должны иметь возможность запускать / останавливать базу данных с помощью следующих скриптов, запускаемых после входа в систему в качестве оракула. Пользователь.

Чтобы запустить Oracle Database Service, запустите сценарий ora_start.sh :

$. ~ / scripts / ora_start.sh enter image description here Рисунок 165: Запуск сценария 'ora_start.sh' для запуска экземпляра базы данных

Чтобы завершить работу службы базы данных Oracle, запустите сценарий ora_stop.sh :

$ . ~ / scripts / ora_stop.sh enter image description here Рисунок-166. Запустите сценарий ora_stop.sh, чтобы завершить работу экземпляра базы данных

6.6. Создайте список псевдонимов для oracle.

Создайте список псевдонимов, подходящих для 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

enter image description here Рисунок 167: Очень полезный список псевдонимов для oracle.

Вы увидите список псевдонимов для oracle, отображаемый на экране.

7. Заключение.

Ликование и радость вызвало не только успешную установку Oracle-18c (Enterprise Edition) на Ubuntu 18.04, но и « приручение » Oracle Software для совместной работы. существуют вместе со всеми другими установленными программными пакетами в разделе / opt (см. рисунок 57) !

На этом установка Oracle 18c (Enterprise Edition) в Ubuntu 18.04 завершена! Наслаждайтесь Oracle 18c (Enterprise Edition) !!

5
ответ дан 23 November 2019 в 11:34

Во время моей попытки установить Oracle 18c (Enterprise Edition) на человечности 18.04, я столкнулся с препятствиями на каждом шаге. Необходимо продолжать разрешать каждое препятствие, как это появляется, и продвинуться вперед. Если у Вас не будет упорства, то Вы сдадитесь!

Поскольку этот процесс установки для Oracle 18c (Enterprise Edition) на Ubuntu 18.04 так долго состоит из 167 снимков экрана с очень подробными инструкциями (88 pages of Microsoft Word document containing both instructions and screenshots). Мне потребовались более чем 2 месяца непрерывной работы для устанавливания его и успех вкуса!

Я смущаюсь выводить весь материал на этой сессии ответа сразу. Я уверен, что это создаст беспорядок и не может служить намеченной цели.

Мое намерение состоит в том, что этот материал должен достигнуть и принести пользу каждому читателю, которому нужен он!

То, что я предлагаю, должно разделить весь материал на 5 сессий ответа (части) и выпустить их один за другим следующим образом:

1. Выгодная партия: предварительная установка.

  • Эта часть покрывает Требование Пространства памяти, включите мультисупинатор, пакеты должны были установить, создание символьных ссылок, настроить параметры ядра, настроить пределы оболочки для пользователя oracle, настройте безопасный Linux и отключите THP (Прозрачные Огромные Страницы).
  • Узнайте физический размер RAM, подкачайте размер,/tmp размер пространства, и так далее и сравните их с рекомендациями Oracle.
  • Монтирование общей памяти, настроить /etc/hosts файл, и /etc/resolv.conf файл и отключает брандмауэр.
  • Предупреждение: при игнорировании этой части Вы никогда не можете получать Oracle 18c (Enterprise Edition) установленный в Вашей системе!

2. Вторая часть: создание пользователя Oracle и групп.

  • Это расстается соглашения с созданием пользователя Oracle и идентификаторов группы, обсуждения и создания базы данных Mount, Базовых и Корневых каталогов включая подсказки для загрузки устанавливаемого файла изображения db_home.zip с веб-сайта оракула.
  • Другой важный аспект этой части то, что управление и изменение make-файлов (particularly linker/loader flags suitable for Ubuntu Linux platform) которые требуются, чтобы создавать двоичные файлы динамично во время процесса установки программного обеспечения базы данных, выполненного runInstaller (Oracle установщик Universal) в части-III.
  • Изменение make-файлов было сделано очень тщательно и протестировано полностью на моем рабочем столе Ubuntu так, чтобы ошибки компоновщика/загрузчика, брошенные во время динамического здания, были определены и решили полностью, таким образом уверив Вас, чтобы иметь чистый и приятный опыт сборки в предстоящей Части-III.

3. Часть-III: программное обеспечение базы данных и установка слушателя.

  • Установка программного обеспечения Database сделана с помощью 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 части.
  • После завершения поиска и устранения неисправностей успешно, создание базы данных инициируется путем запущения скриптов и наконец концов процесса путем запуска экземпляра базы данных оракула "orcl" и других автоматически, которые продемонстрированы как сервисы слушателя.
  • Дисплеи Version и Banner использование sqlplus продемонстрированы как доказательство успешной установки.
  • Покрытие инструкций после установки, готовящее экземпляр базы данных start/stop сценарии оболочки, настроить /etc/oratab, настройте PDB для запуска наряду с экземпляром базы данных, включив брандмауэр, восстановив LD_LIBRARY_PATH и создание полезного оракула alias список.
  • Это долго Oracle18c (Enterprise Edition) сессия ответа установки заканчивается Разделом Заключения, содержащим заключительные комментарии от автора.
3
ответ дан 23 November 2019 в 11:34

Давайте начнем со Второй части сессии ответа.

2. Required Operating System Group и Пользователь для установки оракула.

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, owner/user 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.

Разве Вы не создали "Другие Группы" [разделяют 2.1.1], затем Вы пропускаете это.

Иначе Вы добавляете их к пользователю oracle:

$ sudo usermod -a -G oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin,racdba  oracle

Установите пароль oracle пользователь:

$ sudo passwd oracle

Удостоверьтесь что oracle пользователь и связанные группы создаются как ожидалось:

$ id oracle enter image description hereизменения Figure-47: User oracle and its associated groups.

Удостоверьтесь что oracle пользовательская основная группа oinstall:

$ id -gn oracle enter image description here Figure-48: User oracle primary group is 'oinstall'.

2.1.3. Добавьте пользовательского оракула в sudoers группу:

Включать oracle пользователь с sudoers группой sudo, дайте следующую команду:

$ sudo usermod -a -G sudo oracle

Чтобы удостовериться что oracle пользователь связан с sudo группа, введите команду:

$ id oracle enter image description here Figure -49: User 'oracle' is also with group 'sudo'.

2.1.4. Проверьте того пользователя nobody существует:

$ id nobody enter image description here Figure-50: Ouput shows that user 'nobody' does exist already.

Если пользователь nobody не существует, затем вводят следующую команду для создания его:

$ sudo useradd nobody

2.2. Необходимые Каталоги программного обеспечения для установки оракула.

2.2.1. Точка монтирования Oracle.

Oracle 18.c будет установлена на /opt/oracle который станет автоматически точкой монтирования для установки оракула. Но проблема состоит в том, чтобы дать oracle пользовательское владение для всего /opt/oracle каталог, который не приемлем потому что /opt каталог уже поместил много других пакетов программного обеспечения в корпус (см. рисунок 51 ниже). Я создал это /opt раздел с намерением жилья как можно больше независимых пакетов программного обеспечения! Я не хочу выделять все /opt раздел исключительно для установки базы данных Oracle. enter image description here 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 /

enter image description here Figure-52: Command 'ls -l /' shows that the mount point '/oracle18c' has 'root:root' ownership.

Создайте папку oracle под /opt каталог со следующей командой:

$ sudo mkdir /opt/oracle 
$ ls -l /opt 

enter image description here 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

enter image description here 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 /

enter image description here Figure-55: The ownership of '/oracle18c' has changed from 'root:root' to 'oracle:oinstall'.

Таким образом мы успешно смонтировались /oracle18c не ставя под угрозу владение /opt который все еще остается в root:root нетронутый! Конечно, это - то, что точно мы хотели! Для проверки этого факта дайте следующую команду:

$ ls -l / enter image description here Figure-56: The ownership of '/opt' partition still remains at 'root:root' untouched!

С другой стороны, владение oracle папка под /opt каталог автоматически изменился от root:root кому: oracle:oinstall после загрузки /etc/fstab изменения. Для проверки этого факта дайте следующую команду:

$ ls -l /opt enter image description here 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

Создайте базовый каталог оракула (не используйте sudo) со следующей командой:

$ mkdir -p /oracle18c/app/oracle
$ exit

2.2.3. Каталог Oracle Inventary

Каталог 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, и Вы устанавливаете $ORACLE_BASE для пользовательского оракула к пути /oracle18c/app/oracle перед установкой и предоставлением 755 полномочия оракулу для того пути, затем Oracle Установщик Universal (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

Войдите в систему как в пользователя оракула или используйте эту команду:
$ 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 enter image description here Figure-58: Set umask 022.

$ echo $DISPLAY enter image description here 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 db_home.zip, сначала необходимо подписаться с Oracle Corporation и получить a username и password. Если у Вас нет учетной записи, Вы лучше подписываетесь прямо сейчас с помощью этой ссылки: Создайте учетную запись Oracle enter image description here Figure-60: Create your Oracle Account

Необходимо предоставить это username и password каждый раз, когда Вы загружаете с Веб-сайта Oracle.

2.2.8. Файл образа загрузки db_home.zip.

Загружать db_home.zip с Веб-сайта Oracle используйте следующую ссылку: Загрузите изображение Oracle enter image description here 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.

Моя система является a dual-booted рабочий стол с SSD на 250 ГБ (Windows-10 installation), другой SSD на 120 ГБ (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 enter image description here Figure-62: Permission for '/oracle18c' directory and its descendents is set to 775

Дайте эту команду для проверки /opt пространство памяти после заканчивающегося процесса извлечения:

$ df -h /opt enter image description here Figure-63: The storage space consumed by extraction process was around 9.3 GB (compare with Figure-1).

2.2.10. Измените Флаги Загрузчика/Компоновщика в makefiles подходящий для Ubuntu Платформа Linux.

Управление и изменение 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

Это - конец Второй части установки, и следующая Часть-III начнется впоследствии, который состоит из:

1) Installation of database software by runInstaller interactively.
2) Installation of Listener silently using response file 'rsp'.
4
ответ дан 23 November 2019 в 11:34

Другие вопросы по тегам:

Похожие вопросы: