Oracle 11g 单机服务器ASM部署
阅读原文时间:2023年07月08日阅读:2

Oracle

oracle,相比都有所了解,是一家企业级的数据库公司(收费),上图是oracle官网,也是对外的服务平台

oracle有自己独特的安装方式:ASM   :  自动存储管理(ASM,Automatic Storage Management)

ASM 是 Oracle 数据库 10g之后中一个非常出色的新特性,它以平台无关的方式提供了文件系统、逻辑卷管理器以及软件 RAID(磁盘阵列) 等服务。ASM 可以条带化和镜像磁盘,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡 I/O 以删除“热点”。它还支持直接和异步的 I/O 并使用 Oracle9i 中引入的 Oracle 数据管理器 API(简化的 I/O 系统调用接口)。

使用ASM安装好处:

1、 将I/O平均分部到所有可用磁盘驱动器上以防止产生热点,并且最大化性能。
   2、 配置更简单,并且最大化推动数据库合并的存储资源利用。
   3、 内在的支持大文件
   4、 在增量增加或删除存储容量后执行自动联系重分配
   5、 维护数据的冗余副本以提高可用性。
   6、 支持10g,11g的数据存储及RAC的共享存储管理
   7、 支持第三方的多路径软件
   8、 使用OMF方式来管理文件

关于ASM还有很多理论和底层的东西(有兴趣可以网上查),这里我们只需要基本知道为什么要用asm安装oracle即可。

  简单来说,使用asm安装方式是DBA普遍选择,具了解:大多数能购买起oracle的公司,基本也是购买了他的服务,也就是说,部署oracle有针对的解决方案,而个人部署可能性太小。本章详解个人单机部署,是为了能帮助想学oracle的同学了解oracle部署。


下面开始部署oracle11g(单机部署)

系统

数量

centos6.5 (全包环境)

1

  oracle-ASM部署分两步:第一步主要是部署oracle服务的包,oracle官网提供了给普通用户的一个服务应用的包,包含构建库,图形化安装等服务。oracle不同于其他数据库(mysql),可以形象的说,oracle数据库,像是一个数据库服务的总称。这里为了找部署安装的过程,本人翻阅了官网文档,在各大平台寻找,借鉴DBA小伙伴的部署心得,来一步一步走下去………..

第一步:

1,修改主机名与hosts文件

# vi /etc/sysconfig/network
# hostname 11g
# vim /etc/hosts
    IP 主机名

2,关闭防火墙与安全机制

[root@11g ~]# service iptables stop
[root@11g ~]# chkconfig iptables off
[root@11g ~]# chkconfig libvirtd off
[root@11g ~]# vim /etc/selinux/config

3,创建oracle用户,grid用户,dba组

[root@11g ~]# groupadd -g 501 oinstall
[root@11g ~]# groupadd -g 502 dba
[root@11g ~]# groupadd -g 503 asmadmin
[root@11g ~]# groupadd -g 504 asmdba
[root@11g ~]# groupadd -g 505 asmoper
[root@11g ~]# useradd -u 501 -g oinstall -G dba,asmadmin,asmoper,asmdba grid
[root@11g ~]# useradd -u 502 -g oinstall -G dba,asmdba oracle
[root@11g ~]# passwd oracle
更改用户 oracle 的密码 。
新的 密码:
无效的密码: 它没有包含足够的不同字符
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@11g ~]# passwd grid
更改用户 grid 的密码 。
新的 密码:
无效的密码: 它没有包含足够的不同字符
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

3.1,以防在安装库时空间不够,给home目录进行扩容

#sdb是一块文件系统ext4的磁盘
[root@11g ~]# mount /dev/sdb /home/

4,创建目录。赋予对应的权限

(1)oraInventory目录

[root@11g ~]# mkdir -p /u01/app/oraInventory
[root@11g ~]# chown grid:oinstall -R /u01/app/oraInventory/
[root@11g ~]# chmod 775 -R /u01/app/oraInventory/

(2)oracle_base目录

[root@11g ~]# mkdir -p /u01/app/grid
[root@11g ~]# chown grid:oinstall -R /u01/app/grid
[root@11g ~]# chmod 775 -R /u01/app/grid
[root@11g ~]# mkdir -p /u01/app/oracle
[root@11g ~]# chown oracle:oinstall -R /u01/app/oracle
[root@11g ~]# chmod 775 -R /u01/app/oracle

(3)扩容给指定的安装目录( /u01/app/oracle/)

#sdc是一块文件系统ext4的磁盘
[root@11g ~]# mount /dev/sdc /u01/app/oracle/
#因为扩容,需重新赋予组别和权限
[root@11g ~]# chown oracle:oinstall -R /u01/app/oracle
[root@11g ~]# chmod 775 -R /u01/app/oracle

(4)oracle_home目录

[root@11g ~]# mkdir -p /u01/app/grid/11.2
[root@11g ~]# chown grid:oinstall -R /u01/app/grid/11.2
[root@11g ~]# chmod 775 -R /u01/app/grid/11.2
[root@11g ~]# mkdir -p /u01/app/oracle/product/11.2/db_1
[root@11g ~]# chown oracle:oinstall -R /u01/app/oracle/product/11.2/db_1
[root@11g ~]# chmod 775 -R /u01/app/oracle/product/11.2/db_1

5,设置环境变量(给两个用户设置)

[root@11g ~]# vi /home/grid/.bash_profile
  export ORACLE_BASE=/u01/app/grid
  export ORACLE_HOME=/u01/app/grid/11.2
  export ORACLE_SID=+ASM
  export PATH=$ORACLE_HOME/bin:$PATH
[root@11g ~]# vi /home/oracle/.bash_profile
  export ORACLE_BASE=/u01/app/oracle
  export ORACLE_HOME=/u01/app/oracle/product/11.2/db_1
  export ORACLE_SID=test
  export PATH=$ORACLE_HOME/bin:$PATH
#生效环境变量
[root@11g ~]# sh /home/grid/.bash_profile 
[root@11g ~]# sh /home/oracle/.bash_profile

5.1,磁盘分区并映射(一个磁盘至少3个区,是为了后面图形化安装库有空间)

查看磁盘信息:fdisk -l

开始分区:fdisk /dev/sdb

分3个主分区(每个3G):n p 按序号依次 回车 +3G

分一个扩展分区(剩下全给):n e 回车

扩展分区下添加8个逻辑分区(每个3G):n 回车 +3G

w 保存!

映射磁盘   添加以下内容:
vi /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdb5", RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add", KERNEL=="sdb6", RUN+="/bin/raw /dev/raw/raw6 %N"
ACTION=="add", KERNEL=="sdb7", RUN+="/bin/raw /dev/raw/raw7 %N"
ACTION=="add", KERNEL=="sdb8", RUN+="/bin/raw /dev/raw/raw8 %N"
ACTION=="add", KERNEL=="sdb9", RUN+="/bin/raw /dev/raw/raw9 %N"
ACTION=="add", KERNEL=="sdb10", RUN+="/bin/raw /dev/raw/raw10 %N"
ACTION=="add", KERNEL=="sdb11", RUN+="/bin/raw /dev/raw/raw11 %N"
ACTION=="add", KERNEL=="raw[1-9]", OWNER=="grid", GROUP=="asmadmin", MODE=="660"
ACTION=="add", KERNEL=="raw1[0-1]", OWNER=="grid", GROUP=="asmadmin", MODE=="660"

使配置生效:
start_udev
查看是否生效:
raw -qa
查看是否正确:
ls -l /dev/raw/raw*

6,上传下载好的服务包并进行解压

网址:https://www.oracle.com/
#下载的包
oracel11g zip.rar                       p13390677_112040_Linux-x86-64_2of7.zip
p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_3of7.zip

#创建目录放下载好的包
[root@11g ~]# mkdir /oracle
[root@11g ~]# chown grid:oinstall -R /oracle
[root@11g ~]# c
#解压包
#切换到grid用户下操作
su - grid
cd /oracle
unizp p13390677_112040_Linux-x86-64_3of7.zip
#切换到oracle用户下操作
su - oracle
cd /oracle
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip

7,安装所需要的依赖包 (要求一下包都要安装)

yum -y install binutils compat-libstdc++ elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel libXp compat-libstdc++-33-3.2.3
缺少的包:
#compat-libstdc++
#elfutils-libelf-devel-static


第二步,图形安装

安装grid依赖包:

rpm -ivh compat-libcap1-1.10-1.x86_64.rpm
cd /oracle/grid
./runInstaller

<---------图形操作如下--------->

(1)跳过软件更新:

(2)选择第二项:

(3)选择语言(英语

(4)创建磁盘组

(5)密码输入

(6)如果密码简单,会有一下提示,直接点击继续即可

(7)默认即可

(8)路径根据环境变量自动填写的:

(9)不是报错,可忽略警告:

(10)执行脚本,使用root用户,按照弹窗顺序启动脚本,启动完成再点OK:

(11)查看asm进程

实例创建完毕


图形化安装oracle软件

(1)直接下一步

(2)跳过软件更新

(3)选择只安装软件,数据库稍后创建:

(4)选择单实例数据库

(5)选择英语

(6)选择默认企业版

(7)根据环境变量自动填写

(8)检查缺少包,安装

(9)使用root用户执行

以上,oracle软件安装完毕!!!


使用oracle用户执行 dbca 打开图形界面,创建数据库

(1)

(2)自定义

(3)实例名

(4)不用EM

(5)密码

(6)yes

(7)选择存储方式,因为需要ASM磁盘组,使用grid用户登陆服务器,创建磁盘组

(8)登陆,执行命令asmca

(9)磁盘组完成,回到oracle数据库创建页面,选择磁盘组(oracle用户操作)

(10)不勾选

(11)选择字符集: