部署Oracle 12C R2单实例数据库,存储使用ASM,并且使用udev配置磁盘组的详细过程。
OS:CentOS 7.3 1611
磁盘6块,3块10G,3块50G。
1. 配置yum源
1)配置国内aliyun的源
wget http://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/Centos-7.repo
2)或者使用光盘制作本地yum源
过程略
以下语句是为了同时安装x86_64和i386的rpm包同时安装。
echo 'multilib_policy=all' >> /etc/yum.conf
2. 安装系统需要的rpm包
yum install gcc gcc-c++ binutils compat-libcap1 compat-libstdc++-33 glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst make net-tools nfs-utils smartmontools sysstat xterm unixODBC unixODBC-devel -y
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
3. 创建用户和组(这个包括数据库的用户和组)
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54326 asmadmin
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
useradd -u 54331 -g oinstall -G dba,oper,asmadmin,asmdba,asmoper oracle
useradd -u 54332 -g oinstall -G dba,oper,asmadmin,asmdba,asmoper grid
4. 修改系统对用户使用资源的限制
vi /etc/security/limits.conf
####oracle
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 20480
oracle soft memlock 3145728
oracle hard memlock 3145728
####grid
grid soft nofile 1024
grid hard nofile 65536
grid soft nproc 2047
grid hard nproc 16384
grid soft stack 10240
grid hard stack 20480
5. 修改系统的参数
vim /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
6. 使用Linux的udev创建asm的磁盘
1)使用fdisk对磁盘进行分区。
# 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 0x98d1e6dd.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519):
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
2)编辑脚本,生成udev的rule文件。
vim genasmdisk.sh
#!/bin/bash
cat /dev/null > /etc/udev/rules.d/99-oracle-asmdevices.rules
for i in a b c d e f;
do
echo "KERNEL==\"sd?1\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d /dev/\$name\", RESULT==\"`/usr/lib/udev/scsi_id -g -u -d /dev/sd${i}1`\", SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done
3)执行脚本,生成rule文件
# chmod +x genasmdisk.sh
# ./genasmdisk.sh
# cat /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB098d76e2-9145f9dd", SYMLINK+="asm-diska", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBf90ff69a-4814bddb", SYMLINK+="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBd4b95383-60793e3e", SYMLINK+="asm-diskc", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB6a13abd4-deaab396", SYMLINK+="asm-diskd", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB82560102-e94a69eb", SYMLINK+="asm-diske", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBadd50d7e-e225b445", SYMLINK+="asm-diskf", OWNER="grid", GROUP="asmadmin", MODE="0660"
4)测试规则,并检查磁盘的所属关系和权限
# partprobe /dev/sda1
# partprobe /dev/sdb1
# partprobe /dev/sdc1
# partprobe /dev/sdd1
# partprobe /dev/sde1
# partprobe /dev/sdf1
# udevadm test /block/sda/sda1
# ll /dev/asm-disk*
lrwxrwxrwx. 1 root root 4 Apr 30 22:03 /dev/asm-diska -> sda1
lrwxrwxrwx. 1 root root 4 Apr 30 22:03 /dev/asm-diskb -> sdb1
lrwxrwxrwx. 1 root root 4 Apr 30 22:03 /dev/asm-diskc -> sdc1
lrwxrwxrwx. 1 root root 4 Apr 30 22:03 /dev/asm-diskd -> sdd1
lrwxrwxrwx. 1 root root 4 Apr 30 22:03 /dev/asm-diske -> sde1
lrwxrwxrwx. 1 root root 4 Apr 30 22:03 /dev/asm-diskf -> sdf1
7. 创建安装目录和相关环境变量
# mkdir -p /u01/app/{grid,oracle}
# chown -R oracle:oinstall /u01/app
# chown -R grid:oinstall /u01/app/grid/
# su - grid
$ unzip linuxx64_12201_grid_home.zip
$ mv grid /u01/app/grid/12.2.0.1
编辑环境变量。
$ vim .bash_profile
$ cat .bash_profile
# .bash_profile
export ORACLE_SID=+ASM
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=$ORACLE_BASE/12.2.0.1
PATH=$ORACLE_BASE/bin:$ORACLE_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
export PATH
umask 022
8. 安装Grid,配置ASM
$ cd /u01/app/grid/12.2.0.1/
$ ./gridSetup.sh
仅仅安装grid,配置ASM。
修改ASM发现路径,按照前面udev定义的路径进行配置。
选择磁盘,定义磁盘组名称。
配置ASM管理用户密码。
配置EM(由于测试使用,没有配置)
配置组权限,默认即可。
指定安装路径,默认。
创建Invertory,默认,注意目录创建、属主、权限等配置。
根据显示的问题,进行解决。
# find /u01/app/grid -name cvuqdisk*
/u01/app/grid/12.2.0.1/cv/rpm/cvuqdisk-1.0.10-1.rpm
/u01/app/grid/12.2.0.1/cv/remenv/cvuqdisk-1.0.10-1.rpm
#
# rpm -ivh /u01/app/grid/12.2.0.1/cv/rpm/cvuqdisk-1.0.10-1.rpm
Preparing... ################################# [100%]
Using default group oinstall to install package
Updating / installing...
1:cvuqdisk-1.0.10-1 ################################# [100%]
然后重新检查。
安装信息汇总。
开始安装。
以上完成了ASM安装配置,下面开始安装数据库软件以及数据库实例。
9 . 安装数据库软件
# su - oracle
$ cd database
$ ./runInstaller
此处出于测试目的,全部为空,点击下一步。
选择“仅安装数据库软件”。
选择“单实例”。
执行此脚本。
10. 安装数据库实例
$ vim .bash_profile
# .bash_profile
export ORACLE_SID=ORCL
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1
PATH=$ORACLE_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
export PATH
$ dbca
参考资料:
http://blog.yannickjaquier.com/oracle/asm-on-red-hat-7-and-oel-7-with-udev.html
http://www.cnblogs.com/sunmengbbm/p/5651984.html