[技术干货] Oracle单机实例+ASM

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[技术干货] Oracle单机实例+ASM相关的知识,希望对你有一定的参考价值。

本环境CentOS7.4使用的主要软件包:
技术图片
技术图片

11.2.0.1版本
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
linux.x64_11gR2_grid.zip
需要额外一个磁盘做完ASM挂载磁盘:本实例使用50G
使用x-shell进行远程,通过Xmanager进行图形化显示(需关闭selinux)

一、环境准备

1.创建ORACLE用户和组成员
groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin
groupadd asmdba
groupadd asmoper
useradd -g oinstall -G dba,asmdba,oper -d /home/oracle oracle (命令自动创建/home/oracle目录)
useradd -g oinstall -G dba,asmadmin,asmdba,asmoper -d /home/grid grid (命令自动创建/home/grid目录)

2.分别创建oracle、grid用户的密码
passwd oracle
new unix password: oracle
passwd grid
new unix password: grid

3.//创建以下目录
mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir -p /u02/arch
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:oinstall /u02
chmod -R 775 /u01
chmod -R 775 /u02

4.使用oracle用户登陆,设置oracle用户的环境变量
//增加以下几行
[oracle@rac31 ~]$ vim .bash_profile
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.UTF8
umask 022

5.使用grid域名登陆,设置grid用户的环境变量
//增加以下几行
[grid@rac31 ~]$ vim .bash_profile
export PATH
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG=American_america.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
export ORACLE_SID=+ASM
[root@rac31 ~]# vi /etc/security/limits.conf

  • soft nproc 2047
  • hard nproc 16384
  • soft nofile 1024
  • hard nofile 65536
    [root@rac31 ~]# vim /etc/sysctl.conf
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmall = 2097152
    kernel.shmmax = 2147483648
    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@rac31 ~]# sysctl -p
    关闭selinux
    [root@rac31 ~]#vim /etc/selinux/config
    SELINUX=disabled
    [root@rac31 ~]#setenforce 0
    安装缺失的包
    yum -y install compat-libcap1 compat-libstdc++-33-3.2.3 libstdc++-devel-4.4.4 gcc gcc-c++ ksh libaio-devel
    fdisk dev/sdb
    N新建分区
    P创建主分区
    1 分区数1个
    回车
    回车
    W保存
    [root@rac31 ~]#ls /dev/sdb*
    /dev/sdb /dev/sdb1
    安装ASM依赖文件
    [root@rac31 ~]#yum install –y oracleasmlib-2.0.12-1.el7.x86_64.rpm oracleasm-support-2.1.11-2.el7.x86_64.rpm
    需要重启主机才能正常挂载oracleasm模块
    [root@rac31 ~]#reboot
    挂载oracleasm模块

    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) [y]: y
    Writing Oracle ASM library driver configuration: done
    oracleasm createdisk OCR_VOTE1 /dev/sdb1
    oracleasm module not loaded or /dev/oracleasm not mounted.
    解决 方法
    linux7需要手动挂载oracleasm模块
    #oracleasm status
    Checking if ASM is loaded: no
    Checking if /dev/oracleasm is mounted: no
    #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
    #oracleasm status
    Checking if ASM is loaded: yes
    Checking if /dev/oracleasm is mounted: yes

二、创建ASM磁盘

[root@rac31 ~]# oracleasm createdisk DATA1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
扫描:oracleasm scandisks
列出:oracleasm listdisks
安装xhost +工具 用于图形化界面
[root@rac31 ~]#yum whatprovides "/xhost"
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
base/filelists_db | 3.4 MB 00:00 ...
xorg-x11-server-utils-7.7-2.el6.x86_64 : X.Org X11 X server utilities
Repo : base
Matched from:
Filename : /usr/bin/xhost
[root@rac31 ~]#yum -y install xorg-x11-server-utils-

需要打开Xmanager工具
技术图片

[root@rac31 ~]#export DISPLAY=172.16.1.203:0.0 ###该IP为本地ipconfig在使用远程的主机IP
[root@rac31 ~]#xhost +
access control disabled, clients can connect from any host
xhost: must be on local machine to enable or disable access control.
安装grid组:
[grid@ rac31 grid]$ export DISPLAY=172.16.1.203:0.0
[grid@ rac31 grid]$ xhost +
[grid@ rac31 grid]$ ./runInstaller
技术图片
技术图片
技术图片
技术图片
技术图片

需要确保软件包均已安装(pdksh软件包可忽略),版本不同亦可,由于使用的是虚拟机 虚拟内存问题与OS问题可忽略
技术图片
确保无误后,忽略所有进行下一步
技术图片
技术图片
技术图片
技术图片

需要执行/u01/app/oraInventory/orainstRoot.sh与/u01/app/11.2.0/grid/root.sh
技术图片
技术图片

执行/u01/app/11.2.0/grid/root.sh后需要执行,上述红框内容, 大意是说,配置grid为一个独立的节点(单实例)需要root用户,执行roothas.pl命令
[root@rac31 ~]#/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
技术图片
注:由于我们使用的是centos7系统,oracle默认识别的是6版本的系统,在执行该命令时,另开一个窗口切换到oracle用户执行已下命令/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1,执行完后可ctrl+c停止,否则会报错
[root@rac31 ~]#/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
错误截图
技术图片
正确截图
技术图片
技术图片
点击ok,完成安装
技术图片
使用ASMCA命令创建ASM磁盘组
[root@rac31 ~]#su – grid
[grid@rac32 bin]$ pwd
/u01/app/11.2.0/grid/bin
[grid@rac32 bin]$ export DISPLAY=172.16.1.124:0.0
[grid@rac32 bin]$ ./asmca
技术图片
点击Specify Disk Gruop 制定磁盘组
技术图片
点击右下角“CREATE ASM” ,提示输入的密码过于简单,点击YES继续
弹出窗口,提示
ASM created and started successfully.
DiskGroup DATA created successfully.
点击“ok”


三、安装oracle软件

[oracle@rac32 ~]$ cd /tmp/oracle/
database/ linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip
[oracle@rac32 ~]$ cd /tmp/oracle/database/
[oracle@rac32 database]$ export DISPLAY=172.16.1.124:0.0
[oracle@rac32 database]$ ./runInstaller
技术图片
技术图片
技术图片
技术图片
技术图片
技术图片
技术图片
技术图片

由于oracle默认指识别固定版本,在安装ASM时已经把对应的软件包安装完成,该步骤可以忽略全部,点击“Next”
技术图片
技术图片

点击“Finish”,进行安装
技术图片
这一步其中2个问题可以忽略直接点击继续,到94%会比较慢,不是出错
技术图片
技术图片
技术图片
技术图片
技术图片
点击“Finish”,完成安装oracle软件安装

四、DBCA建库

切换oracle用户进行安装库
[root@rac32 ~]# su - oracle
[oracle@rac32 ~]$ export DISPLAY=172.16.1.124:0.0
[oracle@rac32 ~]$ /u01/app/oracle/product/11.2.0/db_1/bin/dbca
技术图片
技术图片

选择创建数据库
技术图片
自定义全局数据库名称
技术图片
取消“configure enterprise manager”前面的勾(配置企业管理器)
取消“enable automatic maintenance tasks”前面的勾(自动维护任务)
技术图片
技术图片

数据库身份证明, 所有账户使用同一口令
技术图片
技术图片

选择存储类型ASM
技术图片
技术图片
技术图片
技术图片
技术图片

初始化参数 内存:选择典型,百分比为40% ,使用自动内存管理
技术图片
设置存储块大小,设置后无法更改
设置最大进程数量,可更改
技术图片
字符集 数据库字符集选择ZHS16GBK 国家数据库字符集选择UTF8
技术图片
连接模式,选择专用服务器模式
技术图片
查看前面步骤的配置,直接点击“Next”
技术图片
创建数据库
生成数据库创建脚本
技术图片
技术图片

安装脚本生成成功,点击“OK”
技术图片
技术图片
部署oracle单机实例+ASM完成

以上是关于[技术干货] Oracle单机实例+ASM的主要内容,如果未能解决你的问题,请参考以下文章

技术干货 | DBA之Oracle数据库的备份恢复

# 每日3分钟技术干货 | 面试题+答案 | 分布式锁篇

干货数据库分库分表基础和实践

干货丨数据库分库分表基础和实践

干货丨数据库分库分表基础和实践

纯干货:手把手地教你搭建Oracle Sharding数据库分片技术