قبل از نصب اوراکل نسخه 19c، باید مقدمات نصب را در محیط سیستم عامل فراهم کنیم با طی هفت مرحله زیر، این کار را در محیط اوراکل لینوکس نسخه 7.6 انجام خواهیم داد.
توجه: الزامی به رعایت ترتیب این مراحل وجود ندارد و ضمنا دسته بندی این مراحل، کاملا به صورت سلیقه ای صورت گرفته است.
مرحله اول: در گام اول، نام هاست را از localhost به ol7 تغییر می دهیم:
[root@localhost ~]# nmtui-hostname
ol7 => ok
این دستور، hostname جدید را به فایل etc/hostname/ اضافه می کند.
[root@localhost ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.102 ol7
با اضافه کردن مشخصات ماشین به etc/hosts/، با اولین reboot، نام هاست تغییر خواهد کرد. البته برای تغییر این نام بدون انجام reboot ماشین، می توان از دستورات زیر استفاده کرد:
[root@localhost ~]# hostname ol7
[root@localhost ~]# su –
Last login: Fri Mar 30 01:09:15 +0430 2018 from 192.168.56.1 on pts/1
[root@ol7 ~]#
نکته: بدون انجام مرحله اول، نرم افزار اوراکل قابل نصب می باشد.
مرحله دوم: گروه ها و کاربران مورد نیاز را در این مرحله ایجاد می کنیم:
[root@ol7 ~]# groupadd -g 54321 oinstall
[root@ol7 ~]# groupadd -g 54322 dba
[root@ol7 ~]# groupadd -g 54323 oper
[root@ol7 ~]# groupadd -g 54324 backupdba
[root@ol7 ~]# groupadd -g 54325 dgdba
[root@ol7 ~]# groupadd -g 54326 kmdba
[root@ol7 ~]# groupadd -g 54327 asmdba
[root@ol7 ~]# groupadd -g 54328 asmoper
[root@ol7 ~]# groupadd -g 54329 asmadmin
[root@ol7 ~]# groupadd -g 54330 racdba
[root@ol7 ~]# useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle
نکته 1: الزامی جهت تعیین نام کاربر به oracle وجود ندارد.
نکته 2: نرم افزار اوراکل صرفا با ایجاد یک گروه و یک کاربر هم قابل نصب می باشد.
مرحله سوم: برای نصب بسته های مورد نیاز نرم افزار اوراکل، می توان از rpm و یا yum استفاده کرد که به دلیل سهولت نصب بسته ها با کمک yum، از این package manager استفاده می کنیم.
جهت راه اندازی repository، فایل iso مربوط به oracle linux را به دایرکتوری dvd/ مونت می کنیم:
[root@ol7 ~]#mkdir /dvd
[root@ol7 ~]# mount /dev/sr0 /dvd
mount: /dev/sr0 is write-protected, mounting read-only
[root@ol7 ~]# df -h /dvd
Filesystem Size Used Avail Use% Mounted on
/dev/sr0 4.3G 4.3G 0 100% /dvd
در ادامه، تنظیمات لازم را برای ایجاد repository انجام می دهیم:
[root@ol7 ~]# mv /etc/yum.repos.d/public-yum-ol7.repo /etc/yum.repos.d/public-yum-ol7-old
[root@ol7 ~]# vi /etc/yum.repos.d/repo_usef.repo
[repo_usef]
name=repo_usef
baseurl=file:///dvd/
gpgcheck=0
enabled=1
[root@ol7 ~]# yum repolist all
Loaded plugins: langpacks, ulninfo
repo id repo name status
repo_usef repo_usef enabled: 5,134
repolist: 5,134
قبل از نصب بسته های مورد نیاز اوراکل، با کمک دستور rpm بررسی می کنیم که چه بسته هایی نصب نشده اند:
rpm -q –qf ‘%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n‘ binutils \
compat-libcap1 \
compat-libstdc++-33 \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libX11 \
libXau \
libXi \
libXtst \
libgcc \
libstdc++ \
libstdc++-devel \
libxcb \
make \
nfs-utils \
smartmontools \
net-tools \
sysstat \
kmod \
kmod-libs
خروجی این دستور به صورت زیر می باشد:
binutils-2.27-34.base.0.1.el7(x86_64)
package compat-libcap1 is not installed
package compat-libstdc++-33 is not installed
glibc-2.17-260.0.9.el7(x86_64)
package glibc-devel is not installed
package ksh is not installed
libaio-0.3.109-13.el7(x86_64)
package libaio-devel is not installed
libX11-1.6.5-2.el7(x86_64)
libXau-1.0.8-2.1.el7(x86_64)
libXi-1.7.9-1.el7(x86_64)
libXtst-1.2.3-1.el7(x86_64)
libgcc-4.8.5-36.0.1.el7(x86_64)
libstdc++-4.8.5-36.0.1.el7(x86_64)
package libstdc++-devel is not installed
libxcb-1.13-1.el7(x86_64)
make-3.82-23.el7(x86_64)
nfs-utils-1.3.0-0.61.0.1.el7(x86_64)
smartmontools-6.5-1.el7(x86_64)
net-tools-2.0-0.24.20131004git.el7(x86_64)
sysstat-10.1.5-17.el7(x86_64)
kmod-20-23.0.1.el7(x86_64)
kmod-libs-20-23.0.1.el7(x86_64)
همانطور که مشاهده می کنید، تعدادی از این بسته ها، هنوز در حالت not installed قرار دارند که در ادامه با کمک دستور yum، انها را نصب خواهیم کرد:
yum -y install compat-libcap1*
yum -y install compat-libstdc++-33*
yum -y install glibc-devel*
yum -y install ksh*
yum -y install libaio-devel*
yum -y install libstdc++-devel*
با اجرای این دستورات، تمامی بسته های مورد نیاز اوراکل نصب خواهند شد البته اگر بسته ای در این مرحله نصب نشود، می توان در حین نصب نرم افزار اوراکل، آن را نصب نمود.
مرحله چهارم:در این مرحله، تغییراتی را در چند فایل اعمال خواهیم کرد که البته باید توجه نمود مقادیر بعضی از پارامترها، باید متناسب با بار و میزان منابع سرور، بازنگری شوند.
—خطوط زیر را به فایل sysctl.conf اضافه می کنیم:
[root@ol7 ~]# vi /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
kernel.panic_on_oops=1
برای اعمال این تغییرات، ازدستور زیر استفاده می شود:
[root@ol7 ~]# sysctl -p
—مدیریت محدودیت منابع مصرفی کاربر oracle:
[root@ol7 ~]# vi /etc/security/limits.conf
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 65536
oracle hard nproc 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock 3145728
oracle hard memlock 3145728
—به فایل login خط زیر را اضافه می کنیم:
[root@ol7 ~]# vi /etc/pam.d/login
session required pam_limits.so
نکته: بدون انجام مرحله چهارم، نرم افزار اوراکل قابل نصب می باشد.
مرحله پنجم: در صورت عدم نیاز به دو سرویس فایروال و selinux، انها را غیرفعال می کنیم:
—غیرفعال کردن سرویس فایروال:
[root@ol7 ~]# systemctl stop firewalld
[root@ol7 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
—غیرفعال کردن selinux:
[root@ol7 ~]# vi /etc/sysconfig/selinux
SELINUX=disabled
[root@ol7 ~]# reboot
نکته: بدون انجام مرحله پنجم، نرم افزار اوراکل قابل نصب می باشد و صرفا برای اتصال از راه دور به بانک اطلاعاتی، باید فایروال را غیر فعال و یا تنظیم کرد.
مرحله ششم: مسیری که قرار است نرم افزار اوراکل در ان نصب شود را ایجاد می کنیم:
[root@ol7 ~]# mkdir -p /19c/home
بعد از ایجاد این مسیر، مالکیت ان را به کاربر اوراکل و گروه oinstall تغییر می دهیم:
[root@ol7 ~]# chown -R oracle.oinstall /19c
مرحله هفتم: متغیرهای مربوط به نرم افزار اوراکل را در یکی از user login fileها (از قبیل bash_profile. و یا bashrc. تنظیم می کنیم:
[oracle@ol7 ~]$ vi .bash_profile
export ORACLE_BASE=/19c
export ORACLE_HOME=/19c/home
export ORACLE_SID=db19c
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_UNQNAME=db
export ORACLE_HOSTNAME=ol7
export PATH=/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export TMP=/tmp
export TMPDIR=$TMP
متغیرهای مهم و ضروری را به صورت bold نمایش داده ایم.
نکته: بدون انجام مرحله هفتم(تنظیم bash_profile)، نرم افزار اوراکل قابل نصب می باشد.
نصب نرم افزار اوراکل(اجرای runInstaller)
بعد از فراهم سازی مقدمات نصب اوراکل در سطح سیستم عامل، به چگونگی نصب این نرم افزار خواهیم پرداخت.
در ابتدا باید نرم افزار دانلود شده را در مسیر ORACLE_HOME تعیین شده، از حالت zip خارج کنیم:
دانلود نرم افزار اوراکل نسخه 19c
[oracle@ol7 ~]$ cd /19c/home/
[oracle@ol7 home]$ unzip /source/LINUX.X64_193000_db_home.zip
نرم افزار اوراکل را می توان به دو شکل گرافیکی و یا سایلنت نصب نمود که در این متن به نصب گرافیکی این نرم افزار می پردازیم.
برای نصب نرم افزار اوراکل به صورت گرافیکی، نیاز است تا محیط را برای اجرای گرافیکی این نرم افزار اماده کنیم این کار با روشهای مختلفی قابل انجام است:
1.با اتصال مستقم به سرور و دسترسی به محیط گرافیکی آن
2.با کمک محیط ویندوز از طریق برنامه های putty و xming
3.ارتباط از راه دور به سرور البته به صورت گرافیکی از طریق برنامه هایی چون vncserver، xrdp و …
4.با استفاده از برنامه هایی چون ssh و با فوروارد کردن گرافیک به محیط گرافیکی دیگر(با کمک متغیر DISPLAY)
نکته: برای استفاده از سرویس vnc، ابتدا باید بسته مربوط به ان را در سمت سرور نصب نمود و سپس با اجرای برنامه vnc در محیط کلاینت، به سرور وصل شد:
[root@ol7 ~]# yum -y install tigervnc-server
[root@ol7 ~]# vncserver
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
New ‘ol7:2 (root)’ desktop is ol7:2
با فراهم سازی بستر گرافیکی، فایل runinstaller را در مسیر ORACLE_HOME اجرا می کنیم:
[oracle@ol7 ~]$ xhost +
access control disabled, clients can connect from any host
[oracle@ol7 ~]$ cd /19c/home/
[oracle@ol7 home]$ ./runInstaller
Launching Oracle Database Setup Wizard…
مرحله 1: در گام اول باید تعیین شود که همراه با نصب نرم افزار اوراکل، بانک اطلاعاتی هم ایجاد شود یا خیر؟
مرحله 2: گزینه single instance database installation را انتخاب می کنیم:
مرحله 3: متناسب با هزینه ای که برای نرم افزار پرداخت شده(البته نه در ایران!!)، باید یکی از گزینه های زیر انتخاب نمود که با انتخاب گزینه Enterprise Edition به همه قابلیتها دسترسی خواهیم داشت:
مرحله 4: در طول نصب نرم افزار اوراکل نسخه 19c، امکان تغییر مسیر ORACLE_HOME وجود ندارد:
مرحله 5: در این قسمت، مسیر orainventory مشخص می شود:
مرحله 6: با توجه به گروه های سیستم عاملی ایجاد شده در مرحله دو از آماده سازی سیستم عامل لینوکس، به صورت خودکار این قسمت تنظیم خواهد شد.
مرحله 7: در پایان نصب نرم افزار اوراکل، باید دو اسکریپت را به صورت دستی و با اتصال به کاربر root اجرا کرد در صورتی که بخواهیم این کار به صورت خوادکار انجام شود، می توانیم پسورد کاربر root را در این مرحله مشخص کنیم:
مرحله 8: پیش نیازهای مربوط به نصب نرم افزار مورد بررسی قرار می گیرند و در صورتی که نقصانی در این زمینه وجود داشته باشد، قابل مشاهده خواهد بود:
مرحله9: بدون هیچ خطایی وارد مرحله نهایی شدیم در این صفحه لیستی از تنظیمات انجام شده در طول نصب را مشاهده می کنید:
مرحله 10: :نصب در حال انجام است:
در انتهای فرایند نصب، اجرای دو اسکریپ توسط کاربر root پیشنهاد می شود(البته انجام آن الزامی نیست):
[root@ol7 ~]# /19c/oraInventory/orainstRoot.sh
Changing permissions of /19c/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /19c/oraInventory to oinstall.
The execution of the script is complete.
[root@ol7 ~]# /19c/home/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /19c/home
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin …
Copying oraenv to /usr/local/bin …
Copying coraenv to /usr/local/bin …
Creating /etc/oratab file…
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Oracle Trace File Analyzer (TFA – Standalone Mode) is available at :
/19c/home/bin/tfactl
Note :
1. tfactl will use TFA Service if that service is running and user has been granted access
2. tfactl will configure TFA Standalone Mode only if user has no access to TFA Service or TFA is not installed
مرحله 12:همانطور که در صفحه زیر می بینید، نصب نرم افزار اوراکل بدون خطا و با موفقیت انجام شده است:
بعد از انجام این مراحل، می توان وارد محیط sqlplus شد:
[root@ol7 ~]# su – oracle
Last login: Sun May 5 01:58:00 +0430 2019 on pts/1
[oracle@ol7 ~]$ sqlplus “/as sysdba”
SQL*Plus: Release 19.0.0.0.0 – Production on Sun May 5 01:59:35 2019
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to an idle instance.
SQL>
با انجام مراحل بالا، صرفا نرم افزار اوراکل نصب خواهد شد در ادامه مراحل ایجاد بانک اطلاعاتی را مشاهده خواهد کرد.
ایجاد بانک اطلاعاتی(dbca)
برای ایجاد بانک اطلاعاتی، باید دستور dbca را اجرا نمود:
[oracle@ol7 ~]$ dbca
مرحله 1: گزینه create database را انتخاب می کنیم همچنین در این صفحه امکان مدیریت و حذف دیتابیسهای قبلی وجود دارد:
مرحله 2: در صورتی که قصد اعمال نظر(به صورت تخصصی تر) در مورد قسمتهای مختلف instance و بانک را در هنگام اجرای dbca دارید، گزینه advanced configuration را انتخاب کنید
البته اگر قسمتtypical configuration به تنهایی گزینه های مدنظر شما را دارا می باشد، صرفا با کامل کردن اطلاعات مورد نیاز این قسمت، وارد مرحله ایجاد بانک اطلاعاتی شوید.
توجه توجه توجه! در صورت عدم شناخت از مفاهیم container database، این گزینه را به هیچ وجه انتخاب نکنید.
مرحله 3: database type و template name در این مرحله مشخص می شوند:
database type: برای ایجاد بانک اطلاعاتی در محیط کلاستر گزینه Oracle Real Application cluster را باید انتخاب کرد همچنین انتخاب گزینه پیش فرض، برای ایجاد بانک اطلاعاتی در محیط single instance مناسب می باشد(در این نوشتار، صرفا در مورد single instance صحبت شده است)
template name: در این قسمت سه گزینه وجود دارد:
گزینه Custom Database جهت ایجاد بانک اطلاعاتی به صورت کاملا سفارشی می باشد(تعیین size block، تغییر پارامترها، انتخاب کامپوننتهای مورد نیاز و …)
گزینه General Purpose، برای محیطهای OLTP مناسب می باشد
برای محیطهای data warehouse گزینه اول مناسب تر خواهد بود.
ما در این نصب از همان گزینه پیش فرض استفاده می کنیم.
مرحله 4: در این مرحله، نام database(به همراه نام domain البته به صورت اختیاری) و sid را مشخص می کنیم.
نکته بسیار مهم در این مرحله از نصب، گزینه create as container database می باشد که به طور پیش فرض فعال است این گزینه سبب ایجاد container database خواهد شد(برای مطالعه مفاهیم container database می توانید به سایت usefzadeh.com رجوع کنید) انتخاب این گزینه برای افرادی که اشنایی چندانی با اوراکل ندارند، به هیچ وجه توصیه نمی شود.
مرحله 5: مسیری که قرار است database fileها(اعم از control file، data file و redo log) در ان ایجاد شوند، در این مرحله از نصب مشخص خواهد شد. همچنین در این صفحه امکان فعال کردن OMF هم وجود دارد.
مرحله 6: در این مرحله می توان FRA را فعال کرد. همچنین می توان بانک را در حالت archivelog قرار داد:
مرحله 7: ایجاد listener و یا انتخاب listenerای که قبل در ماشین ایجاد شده است، در این مرحله قابل انجام است:
مرحله 8: این مرحله امکان فعال کردن ویژگی database vault و یا oracle label security را فراهم می سازد:
مرحله 1-9: شیوه مدیریت حافظه در سربرگ memory قابل مشاهده می باشد.
در این مرحله می توان به سه شیوه در مورد اندازه componentهای حافظه اعمال نظر کرد:
1. Use Manual Shared Memory Management: به شیوه اوراکل 9i، در مورد تمامی مولفه های حافظه باید به صورت مجزا اعمال نظر نمود.
2. Use Automatic Shared Memory Management: همانند اوراکل 10g، می توان به جای تنظیم دستی تمامی مولفه ها، از PGA و SGA استفاده کرد تا اندازه هر مولفه به صورت خودکار توسط اوراکل مدیریت شود.
3. Use Automatic Memory Management : تنظیم پارامتر memory target که از اوراکل 11g قابل انجام است.
نکته: بنا به تجربه شخصی، بهتر است حداقل 50 درصد از فضای ram موجود در سرور به اوراکل تخصیص داده شود البته افزایش این درصد به 70 الی 80 درصد هم مسبوق به سابقه می باشد.
مرحله 2-9: درسربرگ sizing می توان block size و مقدار پارامتر processes را مشخص کرد(برای تغییر اندازه block size، باید بانک را بصورت custom نصب کرد).
مرحله 3-9: تعیین درست کاراکترست که در این مرحله انجام می شود، از نکات بسیار مهم در زمان ایجاد بانک اطلاعاتی می باشد. کاراکترست AR8MSWIN1256 هم فارسی را ساپورت می کند.
مرحله 4-9: در سربرگ connection mode شیوه اتصال به بانک را Dedicated Server انتخاب می کنیم:
مرحله 5-9: انتخاب Add sample schema سبب اضافه شدن اسکیمایی به نام HR در بانک خواهد شد.
مرحله 10: قابلیتهای EM از اوراکل 12c بسیار کم رنگ شده و عمدتا از cloud control برای مانیتورینگ استفاده می شود ولی با این حال، در این مرحله می توان EM را پیکربندی کرد:
مرحله 11: تعیین پسورد دو کاربر sys و system:
مرحله 12: گزینه create database را انتخاب می کنیم:
مرحله 13: خلاصه ای از انچه که در طول مراحل نصب تعیین و تنظیم شده است را در تصویر زیر می بینید:
مرحله 14: ایجاد بانک اطلاعاتی در حال انجام است:
مرحله 15: نصب با موفقیت به اتمام رسیده است:
در پایان برای برای بررسی وضیعت فعلی بانک، بعد از ورود به محیط sqlplus، دستوراتی را اجرا می کنیم:
[oracle@ol7 ~]$ sqlplus “/as sysdba”
SQL*Plus: Release 19.0.0.0.0 – Production on Sun May 5 02:29:01 2019
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.3.0.0.0
SQL> select status from v$instance;
STATUS
————
OPEN
همانطور که می بینید، بانک اطلاعاتی در وضیعت open قرار دارد.در نهایت جهت تست، جدولی را هم ایجاد می کنیم:
SQL> create table tbl(id number,name varchar2(99),last_name varchar2(99));
Table created.
SQL> insert into tbl values(1,’vahid’,’usefzadeh’);
1 row created.
سلام ممنون بخاطر آموزش خوبتون. یه سوال داشتم
من به مرحله نصب که میرسم می نویسم
./runInstaller
ارور میده
error “you must not be logged in as root to run this tool”
از حالت super user هم میام بیرون میگه permition نداری
چکارکنم؟
دستور chown را درست اجرا کردید؟ احتمالا یوزر oracle شما صاحب دایرکتوری home نیست.
با سلام.یک سوالی داشتم.
سروری با 250 گیگ رم و 98 کور cpu که میخواد به عنوان دیتابیس اصلی مجموعه باشه .به نظرتون چه تغییری باید توی فایل
sysctl.conf
بدهد تا کارایی بهتری داشته باشه؟
یا اگر جای دیگری باید تغییر کند کجا هست؟
و اینکه این محاسبه چگونه صورت میگیرد؟
سلام وقتتون بخیر
پیشنهاد می کنم shmall و shmmax را به درستی تنظیم کنید:
http://www.usefzadeh.com/2019/01/28/نکاتی-در-مورد-shmall،-shmmax،-sga_target،-lock_sga/
و بقیه تنظیمات را متناسب با انچه که در این متن اومده می تونید انجام بدید.
ضمنا پیشنهاد می کنم huge page را هم پیکربندی کنید:
http://www.usefzadeh.com/2020/04/11/پیکربندی-huge-page-برای-اوراکل/