آموزش نصب پایگاه داده اوراکل(12c) به صورت Silent

برای نصب silent نرم افزار اوراکل، همانند نصب گرافیکی آن(مطالعه بفرمایید)، باید مقدماتی را در سطح os فراهم نمود که در ابتدای این متن و با طی چند مرحله، به جزییات انجام این مقدمات، خواهیم پرداخت.

مرحله اول: در اولین مرحله، نام سرور را از localhost به ol7 تغییر می دهیم:

[root@localhost ~]# nmtui-hostname

ol7  => ok

[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.20  ol7

با اجرای این دستورات، با اولین 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 ~]#

نکته: بدون انجام مرحله اول، نرم افزار اوراکل قابل نصب می باشد.

مرحله دوم: برای نصب بسته های اوراکل، می توان از rpm و یا yum استفاده کرد که به دلیل سهولت نصب بسته ها با کمک yum، از این package manager استفاده می کنیم.

برای این کار در ابتدا فایل iso مربوط به oracle linux را جهت راه اندازی repository به پوشه 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.6G  4.6G     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: 4,970

repolist: 4,970

قبل از نصب بسته های مورد نیاز اوراکل، با کمک دستور 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

خروجی این دستور به صورت زیر می باشد:

binutils-2.25.1-31.base.el7(x86_64)

package compat-libcap1 is not installed

package compat-libstdc++-33 is not installed

glibc-2.17-196.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-1.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-16.el7(x86_64)

libstdc++-4.8.5-16.el7(x86_64)

package libstdc++-devel is not installed

libxcb-1.12-1.el7(x86_64)

make-3.82-23.el7(x86_64)

nfs-utils-1.3.0-0.48.0.1.el7(x86_64)

smartmontools-6.2-8.el7(x86_64)

net-tools-2.0-0.22.20131004git.el7(x86_64)

sysstat-10.1.5-12.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*

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

مرحله سوم: گروه ها و کاربران مورد نیاز را در این مرحله ایجاد می کنیم:

[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: نرم افزار اوراکل صرفا با ایجاد یک گروه و یک کاربر هم قابل نصب می باشد.

مرحله چهارم:در این مرحله، تغییراتی را در چند فایل اعمال خواهیم کرد که البته باید توجه نمود بعضی از مقادیر، باید متناسب با بار سرور و میزان منابع سرور، بازنگری شوند.

—خطوط زیر را به فایل 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 /usef1/oracle/12c

بعد از ایجاد این مسیر، مالکیت ان را به کاربر اوراکل و گروه oinstall تغییر می دهیم:

[root@ol7 ~]# chown -R oracle.oinstall /usef1

مرحله هفتم: متغیرهای مربوط به نرم افزار اوراکل را در یکی از user login fileها (از قبیل .bash_profile – .bashrc) تنظیم می کنیم:

[root@ol7 ~]# su – oracle

[oracle@ol7 ~]$ vi .bash_profile

export ORACLE_BASE=/usef1/oracle

export ORACLE_HOME=/usef1/oracle/12c

export ORACLE_SID=usefdb

export PATH=$ORACLE_HOME/bin:$PATH

export ORACLE_UNQNAME=usefdb

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)

در هفت مرحله قبلی، مقدمات محیطی نصب اوراکل، فراهم شد. حال قصد داریم به صورت silent و بدون استفاده از محیط گرافیکی، به نصب این نرم افزار بپردازیم.

برای نصب silent نرم افزار اوراکل و همچنین ایجاد بانک و در نهایت اجرای netca، می توان از فایلهای موجود در سورس اوراکل کمک گرفت. این فایلها، در پوشه response قرار دارند:

[oracle@ol7 ~]$  cd /source/database/response/

[oracle@ol7 response]$ ll

-rwxrwxr-x. 1 root root 25502 Jan  5  2017 dbca.rsp

-rw-rw-r–. 1 root root 22924 Jan 26  2017 db_install.rsp

-rwxrwxr-x. 1 root root  6209 Jun 20  2016 netca.rsp

هر کدام از این فایلها، توضیحی مختصری از پارامترهای مرتبط را به همراه دارند به همین دلیل، قبل از ایجاد هرگونه تغییرات در این فایلها(البته الزامی در استفاده از این فایلها وجود ندارد)، بد نیست تا از این فایلها، کپی ای را داشته باشیم:

[oracle@ol7 response]$ cp db_install.rsp db_install.rsp_bkp

سرانجام برای نصب نرم افزار اوراکل، بعد از تعیین پارامترهای مورد نظر(با کمک فایل db_install.rsp)، محتویات قبلی فایل db_install.rsp را پاک کرده و پارامترهای زیر را به این فایل اضافه می کنیم:

[oracle@ol7 response]$ vi db_install.rsp

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0

oracle.install.option=INSTALL_DB_SWONLY

ORACLE_HOSTNAME=ol7

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/usef1/oraInventory

SELECTED_LANGUAGES=en

ORACLE_HOME=/usef1/oracle/12c

ORACLE_BASE=/usef1/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.OSDBA_GROUP=dba

oracle.install.db.OSOPER_GROUP=oper

oracle.install.db.OSBACKUPDBA_GROUP=backupdba

oracle.install.db.OSDGDBA_GROUP=dgdba

oracle.install.db.OSKMDBA_GROUP=kmdba

oracle.install.db.OSRACDBA_GROUP=racdba

با کمک این پارامترها، تعیین شد که نرم افزار بدون ایجاد بانک نصب شود(INSTALL_DB_SWONLY) آن هم به صورت (enterprise edition(InstallEdition=EE همچنین پارامترهای ORACLE_HOME و ORACLE_BASE به همراه اسامی گروها هم در بین این پارامترها قابل مشاهد هستند.

حال برای نصب نرم افزار با این مشخصات، نیاز است تا در زمان اجرای runInstaller، ادرس این فایل را با کمک پارامتر responsefile تعیین کرد:

[oracle@ol7 response]$ cd /source/database/

[oracle@ol7 database]$ ./runInstaller –silent –responsefile /source/database/response/db_install.rsp

 با اجرای این دستور، نصب نرم افزار اوراکل شروع خواهد شد و پیامهای زیر، قابل مشاهده خواهند بود:

Starting Oracle Universal Installer…

Checking Temp space: must be greater than 500 MB.   Actual 23629 MB    Passed

Checking swap space: must be greater than 150 MB.   Actual 4084 MB    Passed

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2018-07-17_02-19-52AM. Please wait …[oracle@ol7 database]$ You can find the log of this install session at:

/usef1/oraInventory/logs/installActions2018-07-17_02-19-52AM.log

The installation of Oracle Database 12c was successful.

Please check ‘/usef1/oraInventory/logs/silentInstall2018-07-17_02-19-52AM.log’ for more details.

As a root user, execute the following script(s):

  1. /usef1/oraInventory/orainstRoot.sh
  2. /usef1/oracle/12c/root.sh

Successfully Setup Software.

همانند محیط گرافیکی، نیاز است تا دو اسکرپیت پایانی را به صورت دستی و با کمک کاربر root اجرا کنیم:

[root@ol7 ~]# /usef1/oraInventory/orainstRoot.sh

Changing permissions of /usef1/oraInventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

Changing groupname of /usef1/oraInventory to oinstall.

The execution of the script is complete.

[root@ol7 ~]# /usef1/oracle/12c/root.sh

Check /usef1/oracle/12c/install/root_ol7_2018-07-17_02-37-06-019988768.log for the output of root script

با اجرای این دستورات، نصب اوراکل به صورت موفقیت آمیز انجام شد:

[oracle@ol7 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Mon Jul 16 16:10:58 2018

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Connected to an idle instance.

SQL>

اجرای dbca به صورت silent

در ادامه قصد ایجاد بانک اطلاعاتی را به صورت Silent داریم برای این کار می توان در حین اجرای dbca، پارامترهای مورد نیاز را تعیین کرد. همچنین برای مشاهده لیست این پارامترها، می توان از فایل dbca.rsp استفاده کرد.

به طور مثال، در دستوری که در ادامه خواهد امد، بانک (usefdb(gdbName usefdb به صورت General Purpose ایجاد خواهد شد(templateName General_Purpose.dbc) و پسورد کاربران sys و system به abc تنظیم خواهد شد(SysPassword abc SystemPassword abc) همچنین مسیر دیتافایلها هم مشخص شده است(datafileDestination) و خبری از پیکربندی em نخواهد بود(emConfiguration NONE) علاوه بر این تنظیمات، کارکترست به AL32UTF8 ست شده(characterSet AL32UTF8) و اندازه memory target هم به یک گیگابات تنظیم شده است(totalMemory 1000) و در آخر، مسیر fra هم تعیین شده است(recoveryAreaDestination):

 

[oracle@ol7 ~]$ dbca -silent –createDatabasetemplateName General_Purpose.dbc –gdbName usefdb –pdbadminPassword abc –SysPassword abc –SystemPassword abc –emConfiguration NONE –datafileDestination /usef1/oracle/oradata –characterSet AL32UTF8 –totalMemory 1000 –recoveryAreaDestination /usef1/oracle/flash_recovery_area

 با اجرای این دستور، فرایند ساخت دیتابیس شروع خواهد شد و پیامهای زیر، قابل مشاهده خواهند بود:

[WARNING] [DBT-06208] The ‘SYS’ password entered does not conform to the Oracle recommended standards.

CAUSE: a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].

b.The password entered is a keyword that Oracle does not recommend to be used as password

ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.

[WARNING] [DBT-06208] The ‘SYSTEM’ password entered does not conform to the Oracle recommended standards.

CAUSE: a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].

b.The password entered is a keyword that Oracle does not recommend to be used as password

ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.

Copying database files

1% complete

2% complete

18% complete

33% complete

Creating and starting Oracle instance

35% complete

40% complete

44% complete

49% complete

50% complete

53% complete

55% complete

Completing Database Creation

56% complete

57% complete

58% complete

62% complete

65% complete

66% complete

Executing Post Configuration Actions

100% complete

Look at the log file “/usef1/oracle/cfgtoollogs/dbca/usefdb/usefdb.log” for further details.

ایجاد بانک اطلاعاتی، با موفقیت انجام شد، نام دیتابیس و همچنین وضیعت instance را در ادامه مشاهده خواهید کرد:

[oracle@ol7 ~]$ sqlplus “/as sysdba”

SQL*Plus: Release 12.2.0.1.0 Production on Tue Jul 17 03:00:12 2018

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Connected to:

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 – 64bit Production

SQL> select name from v$database;

NAME

———

USEFDB

SQL> select status from v$instance;

STATUS

————

OPEN

اجرای netca به صورت silent

برای مشاهده لیست پارامترهای مورد نیاز، برای اجرای silent دستور netca، می توان از فایل netca.rsp استفاده کرد. در این متن، بدون تغییر خاصی در این فایل(netca.rsp)، دستور netca را اجرا می کنیم البته قبل از اجرای دستور netca، وضیعت جاری listener را چک می کنیم:

[oracle@ol7 ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 – Production on 17-JUL-2018 04:38:25

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

TNS-12541: TNS:no listener

 TNS-12560: TNS:protocol adapter error

  TNS-00511: No listener

   Linux Error: 111: Connection refused

همانطور که می بینید، سرویس listener در وضیعت stop قرار دارد. با اجرای دستور netca، فایل مربوطه را ایجاد و همچنین، سرویس listener را استارت می کنیم:

[oracle@ol7 ~]$ netca -silent -responseFile /source/database/response/netca.rsp

Parsing command line arguments:

    Parameter “silent” = true

    Parameter “responsefile” = /source/database/response/netca.rsp

Done parsing command line arguments.

Oracle Net Services Configuration:

Profile configuration complete.

Oracle Net Listener Startup:

    Running Listener Control:

      /usef1/oracle/12c/bin/lsnrctl start LISTENER

    Listener Control complete.

    Listener started successfully.

Listener configuration complete.

Oracle Net Services configuration successful. The exit code is 0

سرویس listener در وضیعت start قرار خواهد گرفت:

[oracle@ol7 ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 – Production on 17-JUL-2018 04:50:59

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ol7)(PORT=1521)))

STATUS of the LISTENER

————————

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 12.2.0.1.0 – Production

Start Date                17-JUL-2018 04:47:44

Uptime                    0 days 0 hr. 3 min. 14 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /usef1/oracle/12c/network/admin/listener.ora

Listener Log File         /usef1/oracle/diag/tnslsnr/ol7/listener/alert/log.xml

Listening Endpoints Summary…

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ol7)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Services Summary…

Service “usefdb” has 1 instance(s).

  Instance “usefdb”, status READY, has 1 handler(s) for this service…

Service “usefdbXDB” has 1 instance(s).

  Instance “usefdb”, status READY, has 1 handler(s) for this service…

The command completed successfully

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

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