نصب Grid Infrastructure 18c و راه اندازی ASM

در این متن قصد داریم به نصب نرم افزار Grid Infrastructure 18c بپردازیم.

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

مرحله 1: نصب نرم افزار گرید می تواند از طریق کاربری که نرم افزار اوراکل را نصب می کند، انجام شود و در صورت صلاحدید dba، می توان از کاربر دیگری برای نصب استفاده نمود. در این متن، برای نصب نرم افزار گرید، کاربری با نام grid را ایجاد می کنیم:

 [root@asmhost ~]# groupadd -g 54322 dba

 [root@asmhost ~]# groupadd -g 54327 asmdba

 [root@asmhost ~]# groupadd -g 54328 asmoper

 [root@asmhost ~]# groupadd -g 54329 asmadmin

 [root@asmhost ~]# useradd  -u  501  -g oinstall  -G  asmadmin,asmdba,asmoper,dba grid

استفاده از گروه های متعدد برای کاربر grid، صرفا به جهت پیاده سازی role separation می باشد و کم یا زیاد کردن این گروه ها، اثری در مرحله نصب ایجاد نخواهد کرد.

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

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

[root@asmhost ~]# yum localinstall /source/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm

Installed size: 55 k

Is this ok [y/d/N]: y

Downloading packages:

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Installing : oracle-database-preinstall-18c-1.0-1.el7.x86_64          1/1

  Verifying  : oracle-database-preinstall-18c-1.0-1.el7.x86_64          1/1

Installed:

  oracle-database-preinstall-18c.x86_64 0:1.0-1.el7

Complete!

[root@asmhost ~]#  yum install  oracleasm-support*

Total download size: 79 k

Installed size: 243 k

Is this ok [y/d/N]: y

Downloading packages:

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Installing : oracleasm-support-2.1.8-3.1.el7.x86_64                     1/1

Note: Forwarding request to ‘systemctl enable oracleasm.service’.

  Verifying  : oracleasm-support-2.1.8-3.1.el7.x86_64                     1/1

Installed:

  oracleasm-support.x86_64 0:2.1.8-3.1.el7

Complete!

[root@asmhost ~]#  yum install  kmod-oracleasm

Total download size: 278 k

Installed size: 1.4 M

Is this ok [y/d/N]: y

Downloading packages:

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Installing : kmod-oracleasm-2.0.8-19.0.1.el7.x86_64                                                 1/1

  Verifying  : kmod-oracleasm-2.0.8-19.0.1.el7.x86_64                                                 1/1

Installed:

  kmod-oracleasm.x86_64 0:2.0.8-19.0.1.el7

مرحله 3:در این قسمت، ASM Library(ASMLIB) Driver را پیکربندی می کنیم:

[root@asmhost ~]# oracleasm configure -i

Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library

driver.  The following questions will determine whether the driver is

loaded on boot and what permissions it will have.  The current values

will be shown in brackets (‘[]’).  Hitting <ENTER> without typing an

answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: grid

Default group to own the driver interface []: asmadmin

Start Oracle ASM library driver on boot (y/n) [n]: y

Scan for Oracle ASM disks on boot (y/n) [n]: y

Writing Oracle ASM library driver configuration: done

[root@asmhost ~]# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module “oracleasm”: oracleasm
Configuring “oracleasm” to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm

با اجرای دستور زیر، تنظیمات انجام شده را مجددا مرور می کنیم:

[root@asmhost ~]# oracleasm configure

ORACLEASM_ENABLED=true

ORACLEASM_UID=grid

ORACLEASM_GID=asmadmin

ORACLEASM_SCANBOOT=true

ORACLEASM_SCANORDER=””

ORACLEASM_SCANEXCLUDE=””

ORACLEASM_USE_LOGICAL_BLOCK_SIZE=”false”

در پایان این مرحله، وضعیت سرویس oracleasm را هم بررسی می کنیم:

[root@asmhost ~]# systemctl status oracleasm

â oracleasm.service – Load oracleasm Modules

   Loaded: loaded (/usr/lib/systemd/system/oracleasm.service; enabled; vendor preset: disabled)

   Active: active (exited) since Wed 2018-12-12 09:25:59 +0330; 1min 16s ago

  Process: 1739 ExecStop=/usr/sbin/service oracleasm stop_sysctl (code=exited, status=0/SUCCESS)

  Process: 1801 ExecStart=/usr/sbin/service oracleasm start_sysctl (code=exited, status=0/SUCCESS)

 Main PID: 1801 (code=exited, status=0/SUCCESS)

Dec 12 09:25:59 asmhost systemd[1]: Starting Load oracleasm Modules…

Dec 12 09:25:59 asmhost service[1801]: Initializing the Oracle ASMLib driver: [  OK  ]

Dec 12 09:25:59 asmhost service[1801]: Scanning the system for Oracle ASMLib disks: [  OK  ]

Dec 12 09:25:59 asmhost systemd[1]: Started Load oracleasm Modules.

مرحله 4: برای راه اندازی asm، فضایی را از san storage به سرور تخصیص داده ایم برای استفاد از این فضا در محیط asm، ابتدا آن را پارتیشن بندی می کنیم و سپس با کمک سرویس oracleasm برای آن labelای را مشخص می کنیم تا برای محیط asm قابل استفاده باشد.

با توجه به اینکه فضا از san storage گرفته شده است، نیاز است تا از سرویسی چون multipath استفاده شود با این منظور، بسته مربوط به سرویس multipath را نصب می کنیم:

 [root@asmhost ~]# yum install device-mapper-multipath-0.4.9-111.el7.x86_64

Is this ok [y/d/N]: y

Downloading packages:

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Installing : device-mapper-multipath-0.4.9-111.el7.x86_64                    1/1

  Verifying  : device-mapper-multipath-0.4.9-111.el7.x86_64                    1/1

Installed:

  device-mapper-multipath.x86_64 0:0.4.9-111.el7

Complete!

سرویس multipath را بررسی کرده و در نهایت ان را استارت می کنیم:

[root@asmhost ~]# systemctl  start multipathd

همچنین برای استارت خودکار این سرویس بعد از reboot شدن سرور، دستور زیر را اجرا می کنیم:

[root@asmhost ~]# systemctl  enable multipathd

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

[root@asmhost ~]# multipath -v0

Dec 12 12:24:14 | DM multipath kernel driver not loaded

Dec 12 12:24:14 | /etc/multipath.conf does not exist, blacklisting all devices.

Dec 12 12:24:14 | A default multipath.conf file is located at

Dec 12 12:24:14 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf

Dec 12 12:24:14 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf

Dec 12 12:24:14 | DM multipath kernel driver not loaded

[root@asmhost ~]# cp  /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/multipath.conf

[root@asmhost ~]# systemctl restart multipathd

[root@asmhost ~]# ll /dev/mapper/

crw——- 1 root root 10, 236 Dec 12 08:24 control

lrwxrwxrwx 1 root root       7 Dec 12 12:24 mpatha -> ../dm-0

نکته: با تنظیم فایل multipath.conf می توان به دیسکها اسم مستعار داد و در مورد blacklist، blacklist_exceptions و مسائل دیگر اعمال نظر کرد برای مثال می توان به فرم زیر، تنظیماتی را در این فایل اعمال نمود:

defaults {

        find_multipaths yes

        udev_dir /dev

        polling_interval 10

        path_selector “round-robin 0”

        path_grouping_policy failover

        getuid_callout “/sbin/scsi_id -g -u -s /block/%n”

        path_checker readsector0

        rr_min_io 100

        rr_weight priorities

        failback immediate

        user_friendly_names yes

}

 blacklist {

        wwid  “*”

 }

blacklist_exceptions {

   wwid 360060e801605560000010234000000a7

}

multipaths {

        multipath {

                wwid  360060e801605560000010234000000a7

                alias  DATA

                path_grouping_policy failover

        }

}

با این وجود الزامی به تنظیم فایل multipath.conf وجود ندارد و می توان بدون انجام هرگونه تنظیمات در این فایل، از فضای san storage استفاده کرد.

برای پارتیشن بندی mpatha، می توان از دستوراتی چون parted و یا fdisk کمک گرفت:

[root@asmhost ~]# fdisk /dev/mapper/mpatha

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p

Partition number (1-4, default 1):

First sector (2048-1153433599, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-1153433599, default 1153433599): +200G

Partition 1 of type Linux and of size 200 GiB is set

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

[root@asmhost ~]# partprobe /dev/mapper/mpatha

[root@asmhost ~]#

بعد از انجام پارتیشن بندی، به پارتیشن ایجاد شده، label می زنیم تا برای محیط asm قابل استفاده باشد:

[root@asmhost ~]# oracleasm createdisk myasm1 /dev/mapper/mpatha1

Writing disk header: done

Instantiating disk: done

نکته: برای مشاهده همه دیسکهای asmای، می توان از دستور زیر استفاده کرد:

[root@asmhost ~]# oracleasm listdisks

MYASM1

مرحله 5:برای نصب نرم افزار گرید، پوشه های مورد نیاز را ایجاد می کنیم:

[root@asmhost ~]# mkdir -p /grid/18c

[root@asmhost ~]#  chown -R grid.oinstall /grid

نصب نرم افزار Grid Infrastructure 18c

برای نصب نرم افزار گرید، در ابتدا فایل سورس را در مسیر ORACLE_HOME$ از حالت zip خارج می کنیم:

[grid@asmhost ~]$ cd /grid/18c

[grid@asmhost 18c]$ unzip /source/LINUX.X64_180000_grid_home.zip

نکته: منظور از متغیر ORACLE_HOME، همان grid_home می باشد منتها برای گرید متغیری با نام grid_home وجود ندارد و از همان ORACLE_HOME برای این نرم افزار استفاده می شود. البته برای نصب گرید، الزامی به تنظیم هیچ یک از متغیرها نظیر ORACLE_HOME و ORACLE_SID وجود ندارد و می توان تنظیم این متغیرها را به بعد از نصب موکول کرد.

بعد از unzip کردن سورس نرم افزار گرید، بسته Cluster Verification Utility)cvuqdisk) را نصب می کنیم:

[root@asmhost rpm]# cd /grid/18c/cv/rpm/

[root@asmhost rpm]# rpm -ivh cvuqdisk-1.0.10-1.rpm

Preparing…                          ################################# [100%]

Using default group oinstall to install package

Updating / installing…

   1:cvuqdisk-1.0.10-1                ################################# [100%]

برای نصب گرید، اسکریپت gridSetup.sh که در مسیر $ORACLE_HOME قرار دارد را اجرا می کنیم:

[grid@asmhost ~]$ /grid/18c/gridSetup.sh

Launching Oracle Grid Infrastructure Setup Wizard…

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

مرحله دوم: در این مرحله باید نام دیسک گروه، سطح افزونگی، اندازه allocation unit، مسیر asm diskها در سیستم عامل و … را مشخص کرد.

در کادر بالا خبری از دیسک myasm که در طول نصب ایجاد شده است، نمی باشد چرایی این مسئله به مسیر پیش فرضی برمی گردد که در قسمت Disk Discovery Path تعیین شده است. به همین جهت، مسیری که در محیط ما از ان استفاده شده است را در این قسمت تنظیم می کنیم:

با توجه به انکه در این متن تنها از یک asm disk استفاده می کنیم، به ناچار باید سطح افزونگی را به external تنظیم کنیم:

مرحله سوم:در این قسمت، پسورد کاربر sys و asmsnmp را مشخص می کنیم. در صورت فراموش کردن هر کدام از این پسوردها، بعد از نصب نرم افزار هم می توان پسورد این کاربران را در محیط asm تغییر داد.

مرحله چهارم: در این مرحله، امکان رجیستر کردن گرید با نرم افزار مانیتورینگ کلود کنترل فراهم است.

مرحله پنجم: نگاشت یا map بین گروهای سیستم عاملی و admin privilegeها در این قسمت قابل انجام است:

مرحله ششم: در گرید 18c، امکان تغییر مسیر ORACLE_HOME در زمان نصب وجود ندارد و تنها می توان در مورد oracle base اعمال نظر کرد:

مرحله هفتم: مسیر oraInventory را در این قسمت مشخص می کنیم:

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

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

بررسی پیش نیارها توسط گرید نشان می دهد که تنها یک warning در این زمینه وجود دارد که آن هم مربوط به اندازه swap می باشد:

با توجه به تستی بودن محیط نصب، از این warning صرف نظر می کنیم البته برای رفع این warning، باید سایز swap را افزایش داد:

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

مرحله یازدهم: نصب در حال انجام است:

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

این دو اسکریپت را با کاربر root اجرا می کنیم:

[root@asmhost ~]# /grid/oraInventory/orainstRoot.sh

Changing permissions of /grid/oraInventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

Changing groupname of /grid/oraInventory to oinstall.

The execution of the script is complete.

اسکریپت دوم که root.sh می باشد، اهمیت بسیار بالاتری دارد و در صورت به خطا خوردن این اسکریپت، عملا نصب هم متوقف خواهد شد:

[root@asmhost ~]# /grid/18c/root.sh

Performing root user operation.

The following environment variables are set as:

    ORACLE_OWNER= grid

    ORACLE_HOME=  /grid/18c

Enter the full pathname of the local bin directory: [/usr/local/bin]:

The contents of “dbhome” have not changed. No need to overwrite.

The file “oraenv” already exists in /usr/local/bin.  Overwrite it? (y/n)

[n]:

The file “coraenv” already exists in /usr/local/bin.  Overwrite it? (y/n)

[n]:

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.

Using configuration parameter file: /grid/18c/crs/install/crsconfig_params

The log of current session can be found at:

  /grid/base/crsdata/asmhost/crsconfig/roothas_2018-12-12_02-00-57PM.log

2018/12/12 14:00:57 CLSRSC-363: User ignored prerequisites during installation

LOCAL ADD MODE

Creating OCR keys for user ‘grid’, privgrp ‘oinstall’..

Operation successful.

LOCAL ONLY MODE

Successfully accumulated necessary OCR keys.

Creating OCR keys for user ‘root’, privgrp ‘root’..

Operation successful.

CRS-4664: Node asmhost successfully pinned.

2018/12/12 14:01:06 CLSRSC-330: Adding Clusterware entries to file ‘oracle-ohasd.service’

CRS-4133: Oracle High Availability Services has been stopped.

CRS-4123: Oracle High Availability Services has been started.

asmhost     2018/12/12 14:04:15     /grid/18c/cdata/asmhost/backup_20181212_140415.olr     70732493

2018/12/12 14:04:16 CLSRSC-327: Successfully configured Oracle Restart for a standalone server

بعد از اجرای اسکریپت، گزینه ok را انتخاب می کنیم و منتظر خواهیم ماند تا نصب به پایان برسد:

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

بعد از اتمام نصب نرم افزار گرید، به تنظیم متغیر ORACLE_HOME و ORACLE_SID، وارد محیط sqlplus خواهیم شد، همچنین وضعیت instance را بررسی می کنیم:

[grid@asmhost ~]$ export ORACLE_HOME=/grid/18c

[grid@asmhost ~]$ export ORACLE_SID=+ASM

[grid@asmhost ~]$ export PATH=$PATH:$ORACLE_HOME/bin

[grid@asmhost ~]$ sqlplus “/as sysasm

SQL*Plus: Release 18.0.0.0.0 – Production on Wed Dec 12 16:14:01 2018

Version 18.3.0.0.0

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

Connected to:

Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 – Production

Version 18.3.0.0.0

SQL> select status from v$instance;

STATUS

————

STARTED

همانطور که می بینید، asm instance در وضعیت started قرار دارد با کمک دستور asmcmd، وضعیت دیسک گروه DATA+ را مورد بررسی قرار می دهیم:

[grid@asmhost ~]$ asmcmd –p

ASMCMD [+] > lsdg

State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name

MOUNTED  EXTERN  N         512             512   4096  4194304    204800   204700                0          204700              0             N  DATA/

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

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

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