آموزش نصب و راه‌اندازی بانک‌اطلاعاتی اوراکل 19c

قبل از نصب اوراکل نسخه 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.

ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:vahidusefzadeh@gmail.com

Comments (5)

  1. سلام ممنون بخاطر آموزش خوبتون. یه سوال داشتم
    من به مرحله نصب که میرسم می نویسم
    ./runInstaller
    ارور میده
    error “you must not be logged in as root to run this tool”
    از حالت super user هم میام بیرون میگه permition نداری
    چکارکنم؟

  2. با سلام.یک سوالی داشتم.
    سروری با 250 گیگ رم و 98 کور cpu که میخواد به عنوان دیتابیس اصلی مجموعه باشه .به نظرتون چه تغییری باید توی فایل
    sysctl.conf
    بدهد تا کارایی بهتری داشته باشه؟
    یا اگر جای دیگری باید تغییر کند کجا هست؟
    و اینکه این محاسبه چگونه صورت میگیرد؟

    1. سلام وقتتون بخیر
      پیشنهاد می کنم 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-برای-اوراکل/

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *