قبل از خواندن این راهنما، اوراکل را بر روی فدورا نصب نکنید!!
این مقاله نصب پایگاه داده اوراکل 12c ریلیز 1 نسخه 64 بیتی را بر روی فدورا ۲۰ نسخه ۶۴ بیتی توضیح می‌دهد. این مقاله بر مبنای نصب اوراکل بر روی سرور با حداقل ۲ گیگابایت swap و لینوکس امن در حالت permissive را آموزش می‌دهد برای نمونه ای از این نوع نصب می‌توانید اینجا را ببینید.

دانلود نرم افزار

با توجه به شرایط پشتیبانی‌تان، نرم افزار اوراکل را از اوتی‌ان یا ام‌او‌اس دانلود کنید.

(OTN: Oracle Database 12c Release 1 (12.1.0.1) Software (64-bit

(edelivery: Oracle Database 12c Release 1 (12.1.0.1) Software (64-bit

بازکردن فایل‌ها
فایل ها را از حالت زیپ خارج کنید.

unzip linuxamd64_12c_database_1of2.zip
unzip linuxamd64_12c_database_2of2.zip

حالا شما می‌بایست یک دایرکتوری به نام database داشته باشید که شامل فایل‌های نصبی شود.

فایل هاست‌ها

فایل /etc/hosts می‌بایست شامل یک اسم کاملا تایید شده برای سرور باشد.

<IP-address> <fully-qualified-machine-name> <machine-name>

برای نمونه

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.0.213 fedora20.localdomain fedora20

نام هاست را در فایل /etc/hostname به شکل درست تنظیم کنید.

fedora20.localdomain

تنظیم کردن پارامترها کرنلخط‌های زیر را در فایل /etc/sysctl.conf اضافه کرده و یا تغییر دهید.

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

دستور زیر را اجرا کنید تا پارامترهای کنونی کرنل تغییر کنند.

/sbin/sysctl -p

خط‌های زیر را به فایل /etc/security/limits.conf اضافه کنید.

oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768

فایروال را متوقف کرده و آن را غیرفعال کنید.اگر خواستید می‌توانید آن را بعدا تنظیم کنید.

# systemctl stop firewalld
# systemctl disable firewalld

با ویرایش‌کردن SELinux  حالت آن را به permissive  تغییر دهید و مطمئن شوید که فلگ SELINUX  به شکل زیر تنظیم شده است.

SELINUX=permissive

سرور به یک بار ری‌بوت‌شدن برای اعمال تغییرات نیاز خواهد داشت.
 
تنظیمات
قبل از در نظر گرفتن پکیج‌های لازم برای نصب اوراکل، بد نیست که نصب بودن یا نبودن بعضی گروه‌های اساسی پکیج‌ها را بررسی کنید.

yum groupinstall "GNOME Desktop" -y
yum groupinstall "Development Tools" -y
yum groupinstall "Administration Tools" -y
yum groupinstall "System Tools" -y

اگر گروه‌های پیشنهاد شده‌ی پکیج‌ها را نصب کرده‌اید، اکثریت پکیج‌های لازم در حال حضر بر روی سیستم شما موجود هستند. پکیج‌های زیر، ضروری بوده که بعضی‌هایشان نسخه‌های 32 بیتی‌شان هستند. بیشتر آن‌ها می‌بایستی در حال حاضر بر روی سیستم شما وجود داشته باشند.

yum install binutils -y
yum install compat-libstdc++-33 -y
yum install compat-libstdc++-33.i686 -y
yum install gcc -y
yum install gcc-c++ -y
yum install glibc -y
yum install glibc.i686 -y
yum install glibc-devel -y
yum install glibc-devel.i686 -y
yum install ksh -y
yum install libgcc -y
yum install libgcc.i686 -y
yum install libstdc++ -y
yum install libstdc++.i686 -y
yum install libstdc++-devel -y
yum install libstdc++-devel.i686 -y
yum install libaio -y
yum install libaio.i686 -y
yum install libaio-devel -y
yum install libaio-devel.i686 -y
yum install libXext -y
yum install libXext.i686 -y
yum install libXtst -y
yum install libXtst.i686 -y
yum install libX11 -y
yum install libX11.i686 -y
yum install libXau -y
yum install libXau.i686 -y
yum install libxcb -y
yum install libxcb.i686 -y
yum install libXi -y
yum install libXi.i686 -y
yum install make -y
yum install sysstat -y
yum install unixODBC -y
yum install unixODBC-devel -y
yum install zlib-devel -y

گروه‌های جدید را ایجاد کنید.

groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
#groupadd -g 54324 backupdba
#groupadd -g 54325 dgdba
#groupadd -g 54326 kmdba
#groupadd -g 54327 asmdba
#groupadd -g 54328 asmoper
#groupadd -g 54329 asmadmin

useradd -u 54321 -g oinstall -G dba,oper oracle
passwd oracle

به یاد داشته باشید که ما قرار نیست از گروه‌های اضافی استفاده کنیم، اما آن‌ها را هم در فهرستمان وارد کرده‌ایم؛ شاید شما قضد داشتید از آنها استفاده کنید.
دایرکتوری‌هایی را که قرار است در آنها نرم‌افزار اوراکل نصب شود را ایجاد کنید.

mkdir -p /u01/app/oracle/product/12.1.0.1/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01

اگر از X Emulation استفاده می‌کنید، به عنوان کاربر روت وارد شوید و دستور زیر را اعمال کنید.

xhost +<machine-name>

فایل /etc/redhat-release را ویرایش کرده و اطلاعات مربوط به فدورا 20 را با آنچه به دنبال می‌آید تغییر دهید.

redhat release 6

به عنوان کاربر اوراکل وارد شده و خط‌های زیر را به انتهای فایل /home/oracle/.bash_profile اضافه کنید.

# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP

export ORACLE_HOSTNAME=fedora20.localdomain
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0.1/db_1
export ORACLE_SID=cdb1

export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

نصب

به عنوان کاربر اوراکل وارد شوید. اگر از X emulation استفاده می‌کنید، متغیر محیطی DISPLAY  را تغییر دهید.

DISPLAY=<machine-name>:0.0; export DISPLAY

نصاب یونیورسال اوراکل OUI را با اعمال دستور زیر در دیرکتوری پایگاه داده به راه بیاندازید.  

DISPLAY=<machine-name>:0.0; export DISPLAY

بنا بر انتخاب‌های خودتان عملیات نصب را ادامه دهید.
شما می‌توانید انواع نصب‌هایی که من انجام دادم را از پیوندهای زیر پیدا کرده و اسکرین‌شات‌های هر مرحله را ببینید.

  1. تنظیم کردن آپدیت های امنیتی
  2. جزئیات پشتیبانی اوراکل
  3. دانلود کردن آپدیت‌های نرم‌افزاری
  4. انتخاب نوع نصب
  5. کلاس سیستم
  6. تنظیمات نصب گرید
  7. انتخاب نوع نصب
  8. تنظیمات نصب به شکل معمولی
  9. ایجاد کردن اینونتوری
  10. انجام بررسی‌های پیش‌نیاز
  11. گزارش
  12. نصب محصول
  13. اسکریپت‌های تنظیمات اجرایی
  14. تنظیمات پایگاه داده اوراکل
  15. دستیار تنظیمات پایگاه داده
  16. دستیار کامل تنظیمات پایگاه داده
  17. پایان‌دادن
  18. ورود به دیتابیس اکسپرس 12c
  19. داشبورد دیتابیس اکسپرس 12c

نکته

صفحه دستیار کامل تنظیمات پایگاه داده آدرس دیتابیس اکسپرس 12c را نشان می‌دهد، که چیزی شبیه به https://fedora20.localdomain:5500/em خواهد بود. روی دکمه Yes کلیک کنید.

"[INS-13001] Environment does not meet minimum requirements.
Are you sure you want to continue?

در حین فرآیند لینک‌دهی خطای زیر را خواهید دید.

Error in invoking target 'links proc gen_pcscfg procob' of makefile
'/u01/app/oracle/product/12.1.0.1/db_1/precomp/lib/ins_precomp.mk'.
See
'/u01/app/oraInventory/logs/installActions2014-04-26_08-07-04PM.log'
for details.

برای درست کردن این خطا، به کادر پایین توجه کنید.

rm -rf $ORACLE_HOME/lib/stubs/*
cp $ORACLE_HOME/rdbms/lib/env_rdbms.mk $ORACLE_HOME/rdbms/lib/env_rdbms.mk.orig

اصلاحات زیر را برروی فایل $ORACLE_HOME/rdbms/lib/env_rdbms.mk انجام دهید.

# Line 176
# FROM:
LINKTTLIBS=$(LLIBCLNTSH) $(ORACLETTLIBS) $(LINKLDLIBS)
# TO :
LINKTTLIBS=$(LLIBCLNTSH) $(ORACLETTLIBS) $(LINKLDLIBS) -lons

# Line 279-280
# FROM:
LINK=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS) $(COMPSOBJS)
LINK32=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS32) $(COMPSOBJS)
# TO :
LINK=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS) $(COMPSOBJS) -Wl,--no-as-needed
LINK32=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS32) $(COMPSOBJS) -Wl,--no-as-needed

# Line 3041-3042
# FROM:
TG4PWD_LINKLINE= $(LINK) $(OPT) $(TG4PWDMAI) \
$(LLIBTHREAD) $(LLIBCLNTSH) $(LINKLDLIBS)
# TO :
TG4PWD_LINKLINE= $(LINK) $(OPT) $(TG4PWDMAI) \
$(LLIBTHREAD) $(LLIBCLNTSH) $(LINKLDLIBS) -lnnz12
روی دکمه Retry کلیک کنید.
ممکن است کمی بعد با این خطا مواجه شوید.
Error in invoking target 'install' of makefile
'/u01/app/oracle/product/12.1.0.1/db_1/ctx/lib/ins_ctx.mk'.
See
'/u01/app/oraInventory/logs/installActions2014-04-26_08-07-04PM.log'
for details.
برای درست کردن این خطا به کادر پایین توجه کنید.
rm -rf $ORACLE_HOME/lib/stubs/*
cp $ORACLE_HOME/ctx/lib/env_ctx.mk $ORACLE_HOME/ctx/lib/env_ctx.mk.orig
اصلاحات زیر را برروی فایل $ORACLE_HOME/ctx/lib/env_rdbms.mk انجام دهید.
# Line 154
# FROM:
LINK=$(LDCCOM)
# TO :
LINK=$(LDCCOM) --Wl,--no-as-needed
روی دکمه Retry کلیک کنید.

پس از نصب

فایل /etc/redhat-release را ویرایش کرده و اطلاعات ریلیز اصلی را وارد کنید.
Fedora release 20 (Heisenbug)
تنظیمات فایل /etc/oratab را تغییر داده و فلگ ری‌استارت را برای هر نمونه به Y تغییر دهید.
cdb1:/u01/app/oracle/product/12.1.0.1/db_1:Y
با توجه به مشکلات مرحله لینک‌دهی، بد نخواهد بود اگر محض اطمینان پیوندگذاری را دوباره انجام دهید.
dbshut $ORACLE_HOME
cd $ORACLE_HOME/bin
./relink all
# Following line should return no errors.
grep -i err $ORACLE_HOME/install/relink.log
dbstart $ORACLE_HOME