一、简介
1.1 ASMLib
在Red Hat Enterprise Linux (RHEL)6以前,Oracle均是使用ASMLib这个内核支持库配置ASM。ASMLIB是一种基于Linux module,专门为Oracle Automatic Storage Management特性设计的内核支持库(kernel support library)。但是,在2011年5月,甲骨文发表了一份Oracle数据库ASMLib的声明,声明中称甲骨文将不再提供Red Hat Enterprise Linux (RHEL)6的ASMLib和相关更新。
甲骨文在这份声明中表示,ASMLib更新将通过Unbreakable Linux Network (ULN)来发布,并仅对Oracle Linux客户开放。ULN虽然为甲骨文和红帽的客户服务,但如果客户想要使用ASMlib,就必须使用Oracle的kernel来替换掉红帽的。
因此,目前在Red Hat Enterprise Linux (RHEL)6以上使用Oracle+ASM,已不再使用ASMLib,而是采用udev设备文件来配置ASM。
什么是 udev?
udev 是Linux2.6 内核里的一个功能,它替代了原来的devfs,成为当前Linux 默认的设备管理工具。udev 以守护进程的形式运行,通过侦听内核发出来的uevent 来管理/dev目录下的设备文件。不像之前的设备管理工具,udev 在用户空间(user space) 运行,而不在内核空间(kernel space) 运行。
ASMLIB是一种基于Linux module,专门为Oracle Automatic Storage Management特性设计的内核支持库(kernel support library)。
理论上可以从ASMLIB API中得到的以下益处:
总是使用direct,async IO
解决了永久性设备名的问题,即便在重启后设备名已经改变的情况下
解决了文件权限、拥有者的问题
减少了I/O期间从用户模式到内核模式的上下文切换,从而可能降低cpu使用率
减少了文件句柄的使用量
ASMLIB API提供了传递如I/O优先级等元信息到存储设备的可能
ASMLIB可能带来的缺点:
对于多路径设备(multipathing)需要在/etc/sysconfig/oracleasm-_dev_oracleasm配置文件中设置ORACLEASM_SCANORDER及ORACLEASM_SCANEXCLUDE,以便ASMLIB能找到正确的设备文件,具体可以参考Metalink Note
因为ASM INSTANCE使用ASMLIB提供的asm disk,所以增加了额外的层面
每次Linux Kernel更新,都需要替换新的ASMLIB包
增加了因人为错误造成宕机downtime的可能
使用ASMLIB意味着要花费更多时间去创建和维护
因为ASMLIB的存在,可能引入更多的bug,这是我们最不想看到的
使用ASMLIB创建的disk,其disk header并不会和普通的asm disk header有什么不同,仅仅是在头部多出了ASMLIB的属性空间。
二、安装过程
2.1环境工具准备
在 CentOS7.3上安装 Oracle 11gR2 + ASM 使用udev
实验环境:
OS: CentOS7.3
Database: Oracle Database 11gR2 x64 (11.2.0.3.0)
VMware: VMware Workstation
软件:
xmanager-passive
XSHELL
2.2检查硬件
在正式安装开始前,请先检查你的软硬件条件是否满足安装需要。
硬件上可以使用命令查看内存情况和 CPU 特性:
其中内存的要求是不低于 1G,这里我分配2G内存
[root@test soft]# cat /proc/meminfo
df -kh /dev/shm //检查共享内存
df -kh /tmp //检查临时磁盘空间
more /proc/version //检查操作系统版本
uname -r //检查内核版本
grep MemTotal /proc/meminfo //内存
grep SwapTotal /proc/meminfo //交换空间
2.2安装软件包检查
没有安装过的包会提示is not installed :
[root@test soft]# rpm -q binutils \
compat-libstdc++-33 \
elfutils-libelf \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
libaio \
libaio-devel \
libgomp \
libgcc \
libstdc++ \
libstdc++-devel \
make \
sysstat \
unixODBC \
unixODBC-devel \
numactl-devel
检查结果如下,有些包没有安装,使用yum安装没有安装的包
检查下列包是否安装,若未安装则要先安装:
建议用 rpm –q packagename 逐个检查,因为是官方要求,所以为了不在安装时出现不必要的麻烦,还是确认都全部安装为好。
rpm -qa | grep binutils-
rpm -qa | grep compat-libstdc++-
rpm -qa | grep elfutils-libelf-
rpm -qa | grep elfutils-libelf-devel-
rpm -qa | grep glibc-
rpm -qa | grep glibc-common-
rpm -qa | grep glibc-devel-
rpm -qa | grep gcc-
rpm -qa | grep gcc-c++-
rpm -qa | grep libaio-
rpm -qa | grep libaio-devel-
rpm -qa | grep libgcc-
rpm -qa | grep libstdc++-
rpm -qa | grep libstdc++-devel-
rpm -qa | grep make-
rpm -qa | grep sysstat-
rpm -qa | grep unixODBC-
rpm -qa | grep unixODBC-devel-
[root@test soft]# rpm -qa | grep binutils-
binutils-2.25.1-22.base.el7.x86_64
[root@test soft]# rpm -qa | grep binutils-
binutils-2.25.1-22.base.el7.x86_64
[root@test soft]# rpm -qa | grep compat-libstdc++-
compat-libstdc++-33-3.2.3-72.el7.x86_64
[root@test soft]# rpm -qa | grep elfutils-libelf-
elfutils-libelf-0.166-2.el7.x86_64
[root@test soft]# rpm -qa | grep elfutils-libelf-devel-
[root@test soft]# rpm -qa | grep glibc-
glibc-devel-2.17-307.el7.1.x86_64
glibc-common-2.17-307.el7.1.x86_64
glibc-2.17-307.el7.1.x86_64
glibc-headers-2.17-307.el7.1.x86_64
[root@test soft]# rpm -qa | grep glibc-common-
glibc-common-2.17-307.el7.1.x86_64
[root@test soft]# rpm -qa | grep glibc-devel-
glibc-devel-2.17-307.el7.1.x86_64
[root@test soft]# rpm -qa | grep gcc-
libgcc-4.8.5-39.el7.x86_64
gcc-4.8.5-39.el7.x86_64
gcc-c++-4.8.5-39.el7.x86_64
[root@test soft]# rpm -qa | grep gcc-c++-
gcc-c++-4.8.5-39.el7.x86_64
[root@test soft]# rpm -qa | grep libaio-
libaio-0.3.109-13.el7.x86_64
libaio-devel-0.3.109-13.el7.x86_64
[root@test soft]# rpm -qa | grep libaio-devel-
libaio-devel-0.3.109-13.el7.x86_64
[root@test soft]# rpm -qa | grep libgcc-
libgcc-4.8.5-39.el7.x86_64
[root@test soft]# rpm -qa | grep libstdc++-
libstdc++-4.8.5-39.el7.x86_64
compat-libstdc++-33-3.2.3-72.el7.x86_64
libstdc++-devel-4.8.5-39.el7.x86_64
[root@test soft]# rpm -qa | grep libstdc++-devel-
libstdc++-devel-4.8.5-39.el7.x86_64
[root@test soft]# rpm -qa | grep make-
make-3.82-23.el7.x86_64
[root@test soft]# rpm -qa | grep sysstat-
sysstat-10.1.5-11.el7.x86_64
[root@test soft]# rpm -qa | grep unixODBC-
unixODBC-devel-2.3.1-14.el7.x86_64
unixODBC-2.3.1-14.el7.x86_64
[root@test soft]# rpm -qa | grep unixODBC-devel-
unixODBC-devel-2.3.1-14.el7.x86_64
2.3修改主机名,永久生效:
[root@test soft]# hostnamectl set-hostname test
编辑/etc/hosts
文件添加IP和主机名的隐射关系
[root@test soft]# vi /etc/hosts
2.4磁盘准备
添加四块磁盘,每块分配20G的大小,用于ASM和FRA,添加磁盘需要先关闭虚拟机
(1)编辑虚拟机设置
(2)选择添加硬盘
(3)默认选择SCSI
(4)创建新的虚拟磁盘
(5)分配20G大小,选择将虚拟磁盘存储为单个文件
重复上面的步骤一共添加四块盘就好
这里4块磁盘添加完毕后,为了避免后边再重启一次,可以先把后边需要的一个步骤做了,就是找到虚拟机的配置文件,在最后添加一行 disk.EnableUUID=“TRUE”,这里注意修改文件的时候一定要在关机的状态下修改该参数文件。
设置完毕后启动虚拟机
2.5对磁盘进行分区
磁盘添加完成后,启动虚拟机,作为 root 用户登录系统,分区新添加的两块磁盘sdb和sdc,这里并不做格式化和挂载操作,仅仅是分区。
[root@test ~]# fdisk -l | grep sd*
Disk /dev/sdd: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sde: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
分区步骤如下:
[root@test ~]# fdisk /dev/sdb
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.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x407c9eb6.
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): 1
First sector (2048-41943039, default 2048): //默认回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): //默认回车
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set
Command (m for help): w //输入w保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@test ~]# fdisk /dev/sdc
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.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xa807b184.
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): 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
使用partprobe
命令使系统重新识别所有分区
[root@test ~]# partprobe
查看分区后的情况:
[root@test ~]# fdisk -l | grep sdb
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
/dev/sdb1 2048 41943039 20970496 83 Linux
[root@test ~]# fdisk -l | grep sdc
Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors
/dev/sdc1 2048 41943039 20970496 83 Linux
2.6添加用户及用户组
groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin
groupadd asmoper
groupadd asmdba
添加用户到组
useradd -g oinstall -G dba,asmdba,oper,asmadmin oracle
useradd -g oinstall -G asmadmin,asmdba,asmoper,dba grid
修改oracle用户和grid用户的密码,为了方便,把密码和用户名设置一样
echo oracle | passwd --stdin oracle
echo grid | passwd --stdin grid
查看用户及属组设置是否正确
[root@test ~]# id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba),1003(oper),1004(asmadmin),1006(asmdba)
[root@test ~]# id grid
uid=1002(grid) gid=1001(oinstall) groups=1001(oinstall),1002(dba),1004(asmadmin),1005(asmoper),1006(asmdba)
2.7创建目录并且配置 grid 和 oracle 用户的配置文件
使用root用户执行如下命令
mkdir -p /u01/app/oracle
mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0/grid
chown -R grid:oinstall /u01/app/11.2.0/grid
chown -R grid:oinstall /u01/app/grid
chown -R oracle:oinstall /u01/app/oracle
chgrp -R oinstall /u01
chmod -R 775 /u01
切换到oracle用户下,编辑oracle用户的配置文件
[root@test app]# su - oracle
[oracle@test ~]$ vi .bash_profile //在文件末尾添加如下配置
export ORACLE_SID=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export TMP=/tmp
export TMPDIR=$TMP
export PATH=$PATH:$ORACLE_HOME/bin
切换到grid用户下,编辑grid用户的配置文件
[root@test app]# su - grid
[grid@test ~]$ vi .bash_profile //在末尾添加如下配置
export ORACLE_SID=+ASM
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
umask 022
使用source
命令刷新一下配置文件
[grid@test ~]$ source .bash_profile
2.8使用udev管理磁盘
配置 udev绑定的scsi_id
首先切换到root用户下:
不同的操作系统,scsi_id 命令的位置不同
[grid@test ~]$ cat /etc/issue
\S
Kernel \r on an \m
CentOS7.3的scsi_id
的命令不在PATH变量下,所以要将其路径添加到PATH变量才能直接用,不然要用绝对路径调用,显得麻烦
[root@test /]# export PATH=$PATH:/usr/lib/udev/
[root@test /]# which scsi_id
/usr/lib/udev/scsi_id
编辑 /etc/scsi_id.config 文件,如果该文件不存在,则创建该文件并添加如下行:
[root@test rules.d]# vi /etc/udev/rules.d/99-oracle-asmdevices.rules
options=--whitelisted --replace-whitespace
获取新增加的磁盘的uuid
[root@test /]# scsi_id -g -u /dev/sdb
36000c29321cc22ea16daf79fc3529aab
[root@test /]# scsi_id -g -u /dev/sdc
36000c29b4b094016e2d1869e49548c19
[root@test /]# scsi_id -g -u /dev/sdd
36000c292edd8df6bcc3a6e123c251774
[root@test /]# scsi_id -g -u /dev/sde
36000c29b979c7244acc21fb0e3936825
创建并配置 udev rules 文件
根据获取的UUID修改 RESULT 值,这里需要注意,一个KERNEL就是一行,不能换行
注意:这里的GROUP=“asmadmin”, 最好修改成 GROUP=“asmdba”,不然最后可能用dbca创建数据库实例的时候找不见磁盘组
[root@test /]# vi /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29321cc22ea16daf79fc3529aab", RUN+="/bin/sh -c 'mknod /dev/asmdiskb b $major $minor; chown grid:asmdba /dev/asmdiskb; chmod 0660 /dev/asmdiskb'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29b4b094016e2d1869e49548c19", RUN+="/bin/sh -c 'mknod /dev/asmdiskc b $major $minor; chown grid:asmdba /dev/asmdiskc; chmod 0660 /dev/asmdiskc'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c292edd8df6bcc3a6e123c251774", RUN+="/bin/sh -c 'mknod /dev/asmdiskd b $major $minor; chown grid:asmdba /dev/asmdiskd; chmod 0660 /dev/asmdiskd'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29b979c7244acc21fb0e3936825", RUN+="/bin/sh -c 'mknod /dev/asmdiske b $major $minor; chown grid:asmdba /dev/asmdiske; chmod 0660 /dev/asmdiske'"
配置完毕后重启udev,CentOS7重启用以下命令,与前面的版本有所不同
[root@test /]# /sbin/udevadm trigger --type=devices --action=change
或者:
[root@test /]# /sbin/udevadm control --reload
但是我重启后没有作用,无奈使用重启虚拟机大法,重启前最好快照一下,重启虚拟机后识别出了新加的磁盘,如下所示:
[root@test ~]# ll /dev/asm*
brw-rw----. 1 grid asmdba 8, 16 May 17 05:13 /dev/asmdiskb
brw-rw----. 1 grid asmdba 8, 32 May 17 05:13 /dev/asmdiskc
brw-rw----. 1 grid asmdba 8, 48 May 17 05:13 /dev/asmdiskd
brw-rw----. 1 grid asmdba 8, 64 May 17 05:13 /dev/asmdiske
2.9修改系统内核参数
编辑 /etc/security/limits.conf 文件,在文件尾部添加如下内容:
[root@test ~]# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
编辑 /etc/pam.d/login 文件,在文件尾部添加如下内容:
[root@test ~]# vi /etc/pam.d/login
session required pam_limis.so
编辑 /etc/profile 文件,设置 shell 限制,在文件尾部添加如下内容:
[root@test ~]# vi /etc/profile
if [ /$USER = "oracle" ] || [ /$USER = "grid" ]; then
if [ /$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
编辑/etc/sysctl.conf文件,修改内核参数:
[root@test ~]# vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
使修改生效
[root@test ~]# sysctl -p
2.10安装grid软件
将压缩包用winscp上传到虚拟机并解压
[root@test soft]# unzip p10404530_112030_Linux-x86-64_3of7.zip
作为 grid 用户登录系统,执行安装程序。
安装过程中的日志生成地址:/u01/app/oraInventory/logs/
检查安装脚本是否具有可执行权限
由图可知无权限执行,用命令更改一下:
[root@test grid]# chown -R grid.oinstall /soft/grid/
打开Xmanager - Passive 软件,然后在 Xshell 会话设置如下:
[grid@test grid]$ export DISPLAY=192.168.33.102:0.0 //这里的ip地址就是本机的ip地址(ipconfig可以查询到)
[grid@test grid]$ xhost +
提示有包需要安装,直接用yum安装,如果安装后还是检查不过,直接勾选忽略接着做
按照提示以root用户执行两个脚本:
[root@test ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@test ~]# /u01/app/11.2.0/grid/root.sh
Performing root user operation for Oracle 11g
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app/11.2.0/grid
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.
To configure Grid Infrastructure for a Stand-Alone Server run the following command as the root user: //由于是单实例,所以要执行下面这个命令,以root用户执行
/u01/app/11.2.0/grid/perl/bin/perl -I/u01/app/11.2.0/grid/perl/lib -I/u01/app/11.2.0/grid/crs/install /u01/app/11.2.0/grid/crs/install/roothas.pl //单实例执行这个命令
To configure Grid Infrastructure for a Cluster execute the following command: //如果是安装集群则执行下面的命令
/u01/app/11.2.0/grid/crs/config/config.sh //集群这个命令
This command launches the Grid Infrastructure Configuration Wizard. The wizard also supports silent operation, and the parameters can be passed through the response file that is available in the installation media.
[root@test ~]# /u01/app/11.2.0/grid/perl/bin/perl -I/u01/app/11.2.0/grid/perl/lib -I/u01/app/11.2.0/grid/crs/install /u01/app/11.2.0/grid/crs/install/roothas.pl
//这步能不能过的前提是是否已经启动服务ohas.service,由于实在Centos7版本安装,启动该服务的命令要用systemctl,但是oracle11g的脚本还是以service的形式启动,所以启动不了该服务,那么此处就过不去,必须手动添加ohas.service为系统服务并启动,下面会展示怎么添加并启动服务
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
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 test successfully pinned.
Adding Clusterware entries to inittab
test 2020/05/17 08:46:13 /u01/app/11.2.0/grid/cdata/test/backup_20200517_084613.olr
Successfully configured Oracle Grid Infrastructure for a Standalone Server
解决方法:
在CentOS7中ohasd需要被设置为一个服务,在运行脚本root.sh之前。
步骤如下:
(1)以root用户创建服务文件
#touch /usr/lib/systemd/system/ohas.service
#chmod 777 /usr/lib/systemd/system/ohas.service
(2)将以下内容添加到新创建的ohas.service文件中
[Unit]
Description=Oracle High Availability Services
After=syslog.target
[Service]
ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple
Restart=always
[Install]
WantedBy=multi-user.target
(3)以root用户运行下面的命令
systemctl daemon-reload
systemctl enable ohas.service
systemctl start ohas.service
(4)查看运行状态
systemctl status ohas.service
[grid@test grid]$ asmca
Step 1. 给磁盘组命名
Step 2. 选择冗余方式
High: 为每个分配单元创建三个副本(因此至少需要三个磁盘)
Normal: 单镜像(默认)
External: 不会镜像,假定底层存在一个 LVM 并且它正在执行认为适当的任何一种 RAID 级别。
Step 3. 添加磁盘挂载位置
Step 4. 输入磁盘挂载位置和名称
这里我只创建了两个磁盘,一个磁盘组,没有创建 FRA 区域。如果你创建了 3 个或者 3 个以上磁盘,可以留一部分给后面的 FRA 使用(什么是FRA? 就是闪回区)。
点击 Create ASM 创建 Disk Group
稍等半分左右就创建好了
使用netmgr命令为ASM实例配置监听
使用命令启动监听
[grid@test admin]$ lsnrctl start
[grid@test admin]$ lsnrctl status
通过 grid 用户执行crs_stat -t
检查 ASM 是否安装好,如下所示表示搭建 OK。
[grid@test ~]$ crs_stat -t
[grid@test admin]$ echo $ORACLE_SID
+ASM
[grid@test admin]$ sqlplus / as sysasm
SQL> select * from v$version;
SQL> select name,total_mb from v$asm_diskgroup;
NAME TOTAL_MB
------------------------------------------------------------ ----------
DATA 40960
SQL> select name,group_number,file_number,alias_index,alias_directory,system_created from v$asm_alias;
NAME
--------------------------------------------------------------------------------
GROUP_NUMBER FILE_NUMBER ALIAS_INDEX AL SY
------------ ----------- ----------- -- --
ASM
1 4294967295 0 Y Y
ASMPARAMETERFILE
1 4294967295 53 Y Y
REGISTRY.253.1040634279
1 253 106 N Y
三、搭建 Oracle 数据库
详情见我的Oracle安装教程,首先安装数据库软件,然后建立监听,最后建库,建库的时候会多处一个数据放置位置+DATA,这就是使用ASM管理表空间数据文件,这里不再赘述oracle数据库的安装过程了,相信大家也很熟悉了,到此在CentOS7.3上部署基于ASM的oracle数据库就完毕了,当然远不止这些,需要大家进一步在搭建的环境中进行探索。