@clisdodo
2019-11-19T02:44:40.000000Z
字数 15829
阅读 3157
OEL7.7 12cR2 SingleInstance ASM
AskScuti :搭建类 2-0-1 Oracle 12cR2 单实例ASM采用UDEV方式图形化搭建
0级搭建类1级搭建类另外您需要了解:Oracle标准版本的RAC环境中 ASM 为强制使用;Oracle 企业版本的RAC环境中,您可以选择其他替代存储。
0级搭建类 相关文档,示例环境为 OEL7.7[root@asmsi12c ~]# fdisk -l |grep "32.2 GB"
Disk /dev/sdb: 32.2 GB, 32212254720 bytes, 62914560 sectors
[root@asmsi12c ~]# fdisk -l |grep "1073 MB"
Disk /dev/sdc: 1073 MB, 1073741824 bytes, 2097152 sectors
Disk /dev/sdd: 1073 MB, 1073741824 bytes, 2097152 sectors
Disk /dev/sde: 1073 MB, 1073741824 bytes, 2097152 sectors
[root@asmsi12c ~]# fdisk -l |grep "214.7 GB"
Disk /dev/sdf: 214.7 GB, 214748364800 bytes, 419430400 sectors
Disk /dev/sdg: 214.7 GB, 214748364800 bytes, 419430400 sectors
[root@asmsi12c ~]# fdisk -l |grep "107.4 GB"
Disk /dev/sdh: 107.4 GB, 107374182400 bytes, 209715200 sectors
[root@asmsi12c ~]# fdisk -l |grep "536.9 GB"
Disk /dev/sdi: 536.9 GB, 536870912000 bytes, 1048576000 sectors
规划(你需要知道,这是实验测试环境,网络、存储等具体规划请结合实际业务场景进行)
/dev/sdb: 32.2 GB --> Oracle Software
/dev/sdc: 1073 MB --> OCR1
/dev/sdd: 1073 MB --> OCR2
/dev/sde: 1073 MB --> OCR3
/dev/sdf: 214.7 GB --> Data1
/dev/sdg: 214.7 GB --> Data2
/dev/sdh: 107.4 GB --> Archived
/dev/sdi: 536.9 GB --> Backup
分区(专盘专用,对所有磁盘进行分区)
02行:分区命令
11行:添加分区 n
15行:默认主分区 回车
17行:默认第一个分区号 回车
18行:默认第一扇区值 回车
20行:专盘专用(直接回车将使用所有空间),您也可以 +10G +1024M +1024K 等操作
24行:保存并退出 w
# 为方便理解,将贴出针对磁盘 /dev/sdb 的具体分区操作信息[root@asmsi12c ~]# fdisk /dev/sdbWelcome 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 tableBuilding a new DOS disklabel with disk identifier 0x91c3f3dd.Command (m for help): nPartition type:p primary (0 primary, 0 extended, 4 free)e extendedSelect (default p):Using default response pPartition number (1-4, default 1):First sector (2048-62914559, default 2048):Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-62914559, default 62914559):Using default value 62914559Partition 1 of type Linux and of size 30 GiB is setCommand (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.
操作方法如上:将剩余 /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi 磁盘进行分区。
您可以通过 ls 命令查看,最终磁盘分区格式呈现如下
[root@asmsi12c ~]# ls /dev/sd*
/dev/sda /dev/sda2 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi
/dev/sda1 /dev/sda3 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1
格式化(仅 /dev/sdb1)
根据规划,/dev/sdb 下的 /dev/sdb1 分区将作为存放Oracle数据库软件安装文件的盘符(分区),其他分区用于ASM存储。
[root@asmsi12c ~]# mkfs.xfs /dev/sdb1meta-data=/dev/sdb1 isize=256 agcount=4, agsize=1966016 blks= sectsz=512 attr=2, projid32bit=1= crc=0 finobt=0, sparse=0data = bsize=4096 blocks=7864064, imaxpct=25= sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal log bsize=4096 blocks=3839, version=2= sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0
挂载文件系统
观察13行
[root@asmsi12c ~]# mkdir /u01[root@asmsi12c ~]# mount /dev/sdb1 /u01/[root@asmsi12c ~]# df -ThFilesystem Type Size Used Avail Use% Mounted ondevtmpfs devtmpfs 3.9G 0 3.9G 0% /devtmpfs tmpfs 3.9G 0 3.9G 0% /dev/shmtmpfs tmpfs 3.9G 9.5M 3.9G 1% /runtmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup/dev/sda3 xfs 34G 21G 13G 62% //dev/sda1 xfs 297M 195M 103M 66% /boottmpfs tmpfs 797M 12K 797M 1% /run/user/42tmpfs tmpfs 797M 0 797M 0% /run/user/0/dev/sdb1 xfs 30G 33M 30G 1% /u01
添加开机自启
获取 Block ID 添加至 /etc/fstab
[root@asmsi12c ~]# blkid /dev/sdb1
/dev/sdb1: UUID="e3af79a0-858f-440a-ac86-9645ac460755" TYPE="xfs"
[root@asmsi12c ~]# vim /etc/fstab
添加行
UUID=e3af79a0-858f-440a-ac86-9645ac460755 /u01 xfs defaults 0 0
[root@asmsi12c ~]# echo "192.168.1.110 asmsi12c" >> /etc/hosts
/usr/sbin/groupadd -g 54321 oinstall/usr/sbin/groupadd -g 54322 dba/usr/sbin/groupadd -g 54323 oper/usr/sbin/groupadd -g 54324 asmadmin/usr/sbin/groupadd -g 54325 asmoper/usr/sbin/groupadd -g 54326 asmdba/usr/sbin/useradd -g oinstall -G dba,asmdba,oper oracle/usr/sbin/useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba gridpasswd oracle --> Changing password for user oracle.passwd grid --> Changing password for user grid.
mkdir -p /u01/app/gridmkdir -p /u01/app/12.2.0.1/gridmkdir -p /u01/app/oracle/product/12.2.0.1/db_1mkdir -p /u01/app/oraInventorychown -R oracle:oinstall /u01chown -R grid:oinstall /u01/app/gridchown -R grid:oinstall /u01/app/12.2.0.1chmod -R 775 /u01/
yum -y install autoconfyum -y install automakeyum -y install binutilsyum -y install binutils-develyum -y install bisonyum -y install cppyum -y install dos2unixyum -y install ftpyum -y install gccyum -y install gcc-c++yum -y install lrzszyum -y install python-develyum -y install compat-libcap1yum -y install compat-libstdc++-33yum -y install compat-libstdc++-33.i686yum -y install glibc-*yum -y install glibc-*.i686yum -y install libXpm-*.i686yum -y install libXextyum -y install libXext.i686yum -y install libXtstyum -y install libXtst.i686yum -y install libX11yum -y install libX11.i686yum -y install libXauyum -y install libXau.i686yum -y install libxcbyum -y install libxcb.i686yum -y install libXiyum -y install libXi.i686yum -y install libstdc++.i686yum -y install libstdc++-develyum -y install libstdc++-devel.i686yum -y install libaioyum -y install libaio.i686yum -y install libaio-develyum -y install libaio-devel.i686yum -y install kshyum -y install libXpyum -y install libaio-develyum -y install numactlyum -y install numactl-develyum -y install make -yyum -y install sysstat -yyum -y install unixODBCyum -y install unixODBC-develyum -y install elfutils-libelf-develyum -y install redhat-lsb-coreyum -y install unzipyum -y install libXrenderyum -y install libXrender-develyum -y install nfs-utilsyum -y install smartmontoolsyum -y install tigervnc
您还通过以下脚本直接进行检测和安装
rpm -q autoconf \automake \binutils \binutils-devel \bison \cpp \dos2unix \ftp \gcc \gcc-c++ \lrzsz \python-devel \compat-libcap1 \compat-libstdc++-33 \compat-libstdc++-33.i686 \glibc-* \glibc-*.i686 \libXpm-*.i686 \libXext \libXext.i686 \libXtst \libXtst.i686 \libX11 \libX11.i686 \libXau \libXau.i686 \libxcb \libxcb.i686 \libXi \libXi.i686 \libstdc++.i686 \libstdc++-devel \libstdc++-devel.i686 \libaio \libaio.i686 \libaio-devel \libaio-devel.i686 \ksh \libXp \libaio-devel \numactl \numactl-devel \make \sysstat \unixODBC \unixODBC-devel \elfutils-libelf-devel \redhat-lsb-core \unzip \libXrender \libXrender-devel \nfs-utils \smartmontools \tigervnc | grep "not installed" | cut -d ' ' -f 2 | sed 's/^/yum install -y /g'
编辑文件 /etc/security/limits.conf 添加以下行
grid soft nproc 2047grid hard nproc 16384grid soft nofile 1024grid hard nofile 65536grid soft stack 10240grid hard stack 32768oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 10240oracle hard stack 32768
编辑文件 /etc/sysctl.conf 添加以下行
fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048586kernel.panic_on_oops = 1kernel.shmmax = 7730941132kernel.shmall = 1887436kernel.shmmni = 4096
执行 sysctl -p 生效
echo "session required pam_limits.so" >> /etc/pam.d/login
systemctl status firewalld.servicesystemctl stop firewalld.servicesystemctl disable firewalld.service
vim /etc/selinux/configSELINUX=disabled
Oracle 用户,编辑 .bash_profile
[root@asmsi12c ~]# su - oracle[oracle@asmsi12c ~]$ vim .bash_profile
添加以下行
PS1="[`whoami`@`hostname`:"'$PWD]$'export PS1export TMP=/tmpexport TMPDIR=$TMPORACLE_BASE=/u01/app/oracle; export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1; export ORACLE_HOMEORACLE_SID=SIASMCDB; export ORACLE_SIDORACLE_TERM=xterm; export ORACLE_TERMNLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMATNLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANGPATH=.:$PATH:$HOME/bin:$ORACLE_BASE/product/12.2.0.1/db_1/bin:$ORACLE_HOME/bin; export PATHTHREADS_FLAG=native; export THREADS_FLAGif [ $USER = "oracle" ] || [ $USER = "grid" ]; thenif [ $SHELL = "/bin/ksh" ]; thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fiumask 022fi
Grid 用户,编辑 .bash_profile
[root@asmsi12c ~]# su - grid[grid@asmsi12c ~]$ vim .bash_profile
添加以下行
PS1="[`whoami`@`hostname`:"'$PWD]$'export PS1umask 022export TMP=/tmpexport TMPDIR=$TMPORACLE_SID=+ASM; export ORACLE_SIDORACLE_TERM=xterm; export ORACLE_TERMORACLE_BASE=/u01/app/grid; export ORACLE_BASEORACLE_HOME=/u01/app/12.2.0.1/grid; export ORACLE_HOMENLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMATPATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin; export PATHTHREADS_FLAG=native; export THREADS_FLAGif [ $USER = "oracle" ] || [ $USER = "grid" ]; thenif [ $SHELL = "/bin/ksh" ]; thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fiumask 022fi
/etc/scsi_id 添加选项 options=-g,如果没有那么创建它。
[root@asmsi12c ~]# echo "options=-g" > /etc/scsi_id.config
/usr/lib/udev/scsi_id -g -u -d 分区名 确认标识符 2,4,6,8,10,12,14 行为标识符
#[root@asmsi12c ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdc136000c29817c724249fffa2aff9f16ebc#[root@asmsi12c ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdd136000c29a2b56e5768a39dfc8ff0f9818#[root@asmsi12c ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sde136000c29254011ae2772b0a142552cf5c#[root@asmsi12c ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdf136000c29c74cca73378c5ab985257bef8#[root@asmsi12c ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdg136000c29c4ddc31debc42547ac0474b45#[root@asmsi12c ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdh136000c292f96acc701bd3f61592504ae7#[root@asmsi12c ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdi136000c2910aa2ef2126ad1eb6c5420de2
vim /etc/udev/rules.d/99-oracle-asmdevices.rules ,并将获取到的SCSI标识符添加进该文件的 RESULT 参数中。需要注意的是:每个SCSI标识符占用一个条目,且每个条目必须在同一行,不可换行。你可以根据实际情况修改 SYMLINK+ 对应的显示名字。
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29817c724249fffa2aff9f16ebc", SYMLINK+="oracleasm/asm-ocr1", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29a2b56e5768a39dfc8ff0f9818", SYMLINK+="oracleasm/asm-ocr2", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29254011ae2772b0a142552cf5c", SYMLINK+="oracleasm/asm-ocr3", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29c74cca73378c5ab985257bef8", SYMLINK+="oracleasm/asm-data1", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29c4ddc31debc42547ac0474b45", SYMLINK+="oracleasm/asm-data2", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c292f96acc701bd3f61592504ae7", SYMLINK+="oracleasm/asm-archived", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c2910aa2ef2126ad1eb6c5420de2", SYMLINK+="oracleasm/asm-backup", OWNER="grid", GROUP="asmadmin", MODE="0660"
通过 root 用户执行 partprobe 命令重新识别
[root@asmsi12c ~]# /sbin/partprobe /dev/sdc1[root@asmsi12c ~]# /sbin/partprobe /dev/sdd1[root@asmsi12c ~]# /sbin/partprobe /dev/sde1[root@asmsi12c ~]# /sbin/partprobe /dev/sdf1[root@asmsi12c ~]# /sbin/partprobe /dev/sdg1[root@asmsi12c ~]# /sbin/partprobe /dev/sdh1[root@asmsi12c ~]# /sbin/partprobe /dev/sdi1
重启UDEV服务
[root@asmsi12c ~]# udevadm control --reload-rules
查看设备
请确保所有链接磁盘均可见,并具有对应的正确权限,否则,在进行下一步之前请解决该问题。
[root@asmsi12c ~]# ls -lathr /dev/oracleasm/*lrwxrwxrwx. 1 root root 7 Oct 25 10:24 /dev/oracleasm/asm-data2 -> ../sdg1lrwxrwxrwx. 1 root root 7 Oct 25 10:24 /dev/oracleasm/asm-ocr3 -> ../sde1lrwxrwxrwx. 1 root root 7 Oct 25 10:24 /dev/oracleasm/asm-data1 -> ../sdf1lrwxrwxrwx. 1 root root 7 Oct 25 10:24 /dev/oracleasm/asm-ocr1 -> ../sdc1lrwxrwxrwx. 1 root root 7 Oct 25 10:24 /dev/oracleasm/asm-ocr2 -> ../sdd1lrwxrwxrwx. 1 root root 7 Oct 25 10:24 /dev/oracleasm/asm-archived -> ../sdh1lrwxrwxrwx. 1 root root 7 Oct 25 10:24 /dev/oracleasm/asm-backup -> ../sdi1
上面链接归 root 用户所有,但是链接所指向的磁盘是拥有正确权限的
[root@asmsi12c ~]# ls -lathr /dev/sd*1 |grep -v sda1 |grep -v sdb1brw-rw----. 1 grid asmadmin 8, 97 Oct 25 10:24 /dev/sdg1brw-rw----. 1 grid asmadmin 8, 65 Oct 25 10:24 /dev/sde1brw-rw----. 1 grid asmadmin 8, 81 Oct 25 10:24 /dev/sdf1brw-rw----. 1 grid asmadmin 8, 33 Oct 25 10:24 /dev/sdc1brw-rw----. 1 grid asmadmin 8, 49 Oct 25 10:24 /dev/sdd1brw-rw----. 1 grid asmadmin 8, 113 Oct 25 10:24 /dev/sdh1brw-rw----. 1 grid asmadmin 8, 129 Oct 25 10:24 /dev/sdi1
使用 oracle 用户进行安装,运行可执行程序
[oracle@asmsi12c database]$ ./runInstaller











运行 netca 进行监听文件创建







使用 grid 用户进行安装
将软件解压至 grid 用的家目录
[grid@asmsi12c ~]$ cd $ORACLE_HOME/[grid@asmsi12c grid]$ unzip -q /soft/linuxx64_12201_grid_home.zip
运行可执行程序
[grid@asmsi12c grid]$ ./gridSetup.sh










注意:集群验证包您可以选择忽略,当然,为了完整性,也可以选择安装
使用 root 用户,按以下操作(该包在官方自带的数据库软件解压后的 database-->rpm 文件夹里面)
[root@asmsi12c ~]# cd /soft/database/rpm/[root@asmsi12c rpm]# lscvuqdisk-1.0.10-1.rpm[root@asmsi12c rpm]# rpm -ivh cvuqdisk-1.0.10-1.rpmPreparing... ################################# [100%]Updating / installing...1:cvuqdisk-1.0.10-1 ################################# [100%]
重新点击 Check Again 顺利通过







GI 软件安装完成后,可使用下面命令进行查看状态
[grid@asmsi12c:/home/grid]$crsctl stat res -t--------------------------------------------------------------------------------Name Target State Server State details--------------------------------------------------------------------------------Local Resources--------------------------------------------------------------------------------ora.LISTENER.lsnrONLINE ONLINE asmsi12c STABLEora.OCR.dgONLINE ONLINE asmsi12c STABLEora.asmONLINE ONLINE asmsi12c Started,STABLEora.onsOFFLINE OFFLINE asmsi12c STABLE--------------------------------------------------------------------------------Cluster Resources--------------------------------------------------------------------------------ora.cssd1 ONLINE ONLINE asmsi12c STABLEora.diskmon1 OFFLINE OFFLINE STABLEora.evmd1 ONLINE ONLINE asmsi12c STABLE--------------------------------------------------------------------------------
查看 ASM 实例监听状态
[grid@asmsi12c grid]$ lsnrctl statusLSNRCTL for Linux: Version 12.2.0.1.0 - Production on 25-OCT-2019 12:13:43Copyright (c) 1991, 2016, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=asmsi12c)(PORT=1522)))STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 12.2.0.1.0 - ProductionStart Date 25-OCT-2019 12:06:11Uptime 0 days 0 hr. 7 min. 31 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/12.2.0.1/grid/network/admin/listener.oraListener Log File /u01/app/grid/diag/tnslsnr/asmsi12c/listener/alert/log.xmlListening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=asmsi12c)(PORT=1522)))(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))Services Summary...Service "+ASM" has 1 instance(s).Instance "+ASM", status READY, has 1 handler(s) for this service...Service "+ASM_OCR" has 1 instance(s).Instance "+ASM", status READY, has 1 handler(s) for this service...The command completed successfully
使用 grid 用户,执行 asmca 创建ASM磁盘组



按照以上方法,继续创建磁盘组,最终结果如下图,注意冗余方式

使用 oracle 用户,执行 dbca 创建数据库















[oracle@asmsi12c:/home/oracle]$sqlplus / as sysdbaSQL*Plus: Release 12.2.0.1.0 Production on Fri Oct 25 12:47:59 2019Copyright (c) 1982, 2016, Oracle. All rights reserved.Connected to:Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit ProductionSQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED--------------------------- ---------- ----------2 PDB$SEED READ ONLY NO3 ERP1 READ WRITE NOSQL> select name from v$datafile;NAME--------------------------------------------------------------------------------+DATA/SIASMCDB/DATAFILE/system.256.1022589149+DATA/SIASMCDB/DATAFILE/sysaux.257.1022589231+DATA/SIASMCDB/DATAFILE/undotbs1.258.1022589267+DATA/SIASMCDB/4700A987085B3DFAE05387E5E50A8C7B/DATAFILE/system.266.1022589329+DATA/SIASMCDB/4700A987085B3DFAE05387E5E50A8C7B/DATAFILE/sysaux.265.1022589329+DATA/SIASMCDB/DATAFILE/users.259.1022589267+DATA/SIASMCDB/4700A987085B3DFAE05387E5E50A8C7B/DATAFILE/undotbs1.267.1022589329+DATA/SIASMCDB/95B5C4601FB02104E0536E01A8C01658/DATAFILE/system.271.1022589707+DATA/SIASMCDB/95B5C4601FB02104E0536E01A8C01658/DATAFILE/sysaux.272.1022589707+DATA/SIASMCDB/95B5C4601FB02104E0536E01A8C01658/DATAFILE/undotbs1.270.1022589707+DATA/SIASMCDB/95B5C4601FB02104E0536E01A8C01658/DATAFILE/users.274.102258971911 rows selected.