002.Oracle安装部署-ASM

时间:2023-03-09 07:30:10
002.Oracle安装部署-ASM

一 环境准备

图形界面:略
安装包: linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip

二 安装ASM-Oracle准备

2.1 用户名/组建立

 [root@localhost ~]#hostnamectl set-hostname oracle
[root@oracle ~]# vi /etc/hosts
172.24.8.30 oracle #将localhost修改为相应的主机名
[root@oracle ~]# groupadd oinstall #创建用户组oinstall
[root@oracle ~]# groupadd dba #创建用户组dba
[root@oracle ~]# groupadd oper #创建用户组dba
[root@oracle ~]# groupadd asmadmin
[root@oracle ~]# groupadd asmdba
[root@oracle ~]# groupadd asmoper
[root@oracle ~]# useradd -g oinstall -G dba,oper,asmadmin,asmdba,asmoper -s /bin/bash -d /home/oracle -m oracle #创建oracle用户,主组为oinstall,并加入到之前创建的所有组。
[root@oracle ~]# useradd -g oinstall -G dba,oper,asmadmin,asmdba,asmoper -s /bin/bash -d /home/grid -m grid #创建grid组
[root@oracle ~]# echo x120952576 | passwd --stdin oracle #设置Oracle用户密码
[root@oracle ~]# echo x120952576 | passwd --stdin grid #设置grid用户密码

2.2 相关目录创建

 [root@oracle ~]# mkdir -p /data/oracle			#oracle数据库安装目录
[root@oracle ~]# mkdir -p /data/grid #grid组件安装目录
[root@oracle ~]# mkdir -p /data/oraInventory #oracle数据库配置文件目录
[root@oracle ~]# mkdir -p /data/database #oracle数据库软件包解压目录
[root@oracle ~]# chown -R grid:oinstall /data/
[root@oracle ~]# chown -R oracle:oinstall /data/oracle/
[root@oracle ~]# chmod 755 /data #设置目录所有者为oinstall用户组的oracle用户
附:oracle默认不支持CentOS系统安装,需要如下修改
 [root@oracle data]# vi /etc/redhat-release
redhat-7

2.3 基础依赖包安装

根据Oracle官方给出参考:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#BABCFJFG
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
依次yum安装即可,也可高于以上建议版本:
 yum -y install gcc* gcc-* gcc-c++-* glibc-devel-* glibc-headers-* compat-libstdc* libstdc* elfutils-libelf-devel* libaio-devel* sysstat* unixODBC-* pdksh-* compat-libcap1
swap要求最低2.67G

2.4 防火墙及SELinux设置

 [root@oracle ~]# systemctl stop firewalld.service
[root@oracle ~]# systemctl disable firewalld.service
[root@oracle ~]# setenforce 0
[root@oracle ~]# vi /etc/selinux/config
SELINUX=disabled

2.5 修改内核参数

 [root@oracle ~]# vi /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #设置最大打开文件数
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 #共享内存的总量
kernel.shmmax = 2147483648 #最大共享内存的段大小
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128
简要描述这四个参数
    SEMMSL: 每个信号集的最大信号数量
    SEMMNS: 系统信号量(非信号集)最大数量
    SEMOPM: 每次semop系统调用可执行的信号操作数
    SEMMNI:系统信号量集最大数量
 net.ipv4.ip_local_port_range = 9000 65500		#可使用的IPv4端口范围
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
[root@oracle ~]# sysctl -p #使配置生效

2.6 提高软件运行性能

对oracle用户设置限制,提高软件运行性能
 [root@oracle ~]# vi /etc/security/limits.conf
@student - maxlogins 4
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
# End of file

三 分区准备

3.1 磁盘分区

将磁盘分区,具体分区操作——略。
本实验采用LVM分区,通知创建10个50G大小的lvm逻辑分区。
 [root@oracle ~]# lvcreate -L 50g -n asm01 vg01
……
[root@oracle ~]# lvcreate -L 50g -n asm10 vg01

3.2 安装asm支持组件

在oracle官方找到对应的alm组件。
http://www.oracle.com/technetwork/server-storage/linux/asmlib/index-101839.html
002.Oracle安装部署-ASM
将相关rpm包上传至相应目录。
002.Oracle安装部署-ASM
 [root@oracle file]# yum -y install oracleasm
[root@oracle file]# rpm -ivh oracleasm*

3.3 初始化sm磁盘

 [root@oracle ~]# oracleasm configure -i				#初始化
Default user to own the driver interface []: oracle #拥有此接口的用户
Default group to own the driver interface []: oinstall #组
Scan for Oracle ASM disks on boot (y/n) [y]: y #系统启动时是否扫描asm磁盘组
[root@oracle ~]# oracleasm init #保存asm设备文件的目录
002.Oracle安装部署-ASM

3.4 创建sm磁盘

 [root@oracle ~]# vi oracleasm.sh
#!/bin/bash
oracleasm createdisk asmdisk01 /dev/vg01/asm01
oracleasm createdisk asmdisk02 /dev/vg01/asm02
oracleasm createdisk asmdisk03 /dev/vg01/asm03
oracleasm createdisk asmdisk04 /dev/vg01/asm04
oracleasm createdisk asmdisk05 /dev/vg01/asm05
oracleasm createdisk asmdisk06 /dev/vg01/asm06
oracleasm createdisk asmdisk07 /dev/vg01/asm07
oracleasm createdisk asmdisk09 /dev/vg01/asm08
oracleasm createdisk asmdisk09 /dev/vg01/asm09
oracleasm createdisk asmdisk10 /dev/vg01/asm10
[root@oracle ~]# ./oracleasm.sh #使用脚本创建相应磁盘。
[root@oracle ~]# oracleasm listdisks #验证所创建的磁盘
002.Oracle安装部署-ASM
 [root@oracle ~]# ll /dev/oracleasm/disks/	#检查磁盘是否已经挂载到oracleasm文件系统
002.Oracle安装部署-ASM

四 grid组件

4.1 grid组件获取

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html
http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_grid.zip
002.Oracle安装部署-ASM
 [root@oracle file]# unzip linux.x64_11gR2_grid.zip -d /data/database/

4.2 grid组件安装

 [root@oracle file]# chown grid /data/database/grid/
[grid@oracle ~]$ cd /data/database/grid/
[grid@oracle grid]$ ./runInstaller #切换至grid用户进入图形界面
002.Oracle安装部署-ASM

#选择安装单节点服务器

002.Oracle安装部署-ASM
#选择英语
002.Oracle安装部署-ASM
选择四块3.4创建asm磁盘。
冗余方式选择——
  • normal:相同的数据在磁盘中至少存储两份;
  • high:存储三份;
  • external:不提供冗余。
  • AU size:分配单元的大小。
002.Oracle安装部署-ASM
#指定sys和asmsnmp的密码,并忽略密码告警。
002.Oracle安装部署-ASM
#指定系统用户组对asm的相应管理组。
002.Oracle安装部署-ASM
#指定软件安装的目录。
002.Oracle安装部署-ASM
#指定Inventory的目录。
002.Oracle安装部署-ASM
#前置条件检查,切换至root用户执行脚本。
002.Oracle安装部署-ASM
若有未解决的依赖,依次解决,注意:安装的高版本对于oracle也会告警,但不会影响使用,可跳过。
002.Oracle安装部署-ASM
核对相关信息。
002.Oracle安装部署-ASM
#使用root用户执行上述两个脚本
 [root@oracle ~]# cd /data/oraInventory/
[root@oracle oraInventory]# ./orainstRoot.sh
[root@oracle ~]# cd /data/grid/product/11.2.0/grid/
[root@oracle grid]# ./root.sh
报错1:error while loading shared libraries: libcap.so.1: cannot open shared object file: No such file or directory
 [root@oracle grid]# yum -y install compat-libcap1
[root@oracle grid]# /data/grid/product/11.2.0/grid/crs/install/rootcrs.pl -deconfig -force -verbose
[root@oracle grid]# ./root.sh
报错2:CRS-4124: Oracle High Availability Services startup failed
Oracle Linux 7上执root.sh时注意
 [root@oracle grid]# /data/grid/product/11.2.0/grid/crs/install/roothas.pl -deconfig -force -verbose
[root@oracle grid]# ./root.sh
当命令行窗口出现Adding Clusterware entries to inittab时,立即在另一窗口以root用户执行:
 /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/nullbs=1024 count=1
如果出现:/bin/dd: opening`/var/tmp/.oracle/npohasd': No such file or directory,则说明文件还没生成就继续执行,直到能执行为止,等待root.sh成功执行完毕后可以ctrl+c取消。
002.Oracle安装部署-ASM

4.3 grid修改环境变量

 [root@oracle ~]# vi /home/grid/.bash_profile		#修改Oracle用户的环境变量
export ORACLE_BASE=/data/grid #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/grid #oracle数据库路径
export ORACLE_SID=+ASM #oracle启动数据库实例名
export ORACLE_TERM=xterm #xterm窗口模式安装
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量
export LANG=en_US #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集
[grid@oracle ~]$ source /home/grid/.bash_profile
附加——CentOS7所需步骤
 [root@oracle ~]# vi /usr/lib/systemd/system/ohas.service	#手动添加ohas服务
[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
[root@oracle ~]# chmod 777 /usr/lib/systemd/system/ohas.service
[root@oracle ~]# systemctl enable ohas.service #设置为开机启动
[root@oracle ~]# systemctl start ohas.service

4.4 登录测试

使用grid用户连接数据库测试。
002.Oracle安装部署-ASM

五 grid用户环境优化

5.1 环境修改

 [root@oracle ~]# vi /data/grid/product/11.2.0/grid/sqlplus/admin/glogin.sql
define_editor=vim #定义编辑器为vim
set linesize 160 #设置一行显示的字符
set pagesize 100 #设置一页显示的行数
set sqlprompt '_user@ _connect_identifier>' #设置提示符

5.2 支持键盘方向键操作

提示:默认oracle不支持方向键操作,需要安装rlwrap插件。
采用编译安装rlwrap-0.37.tar,过程略。
若报错如下——
002.Oracle安装部署-ASM
则需要yum安装以下两个rpm包之后再次编译安装——
 [root@oracle file]# yum -y install libtermcap-devel readline-devel
[root@oracle file]# tar -zxvf rlwrap-0.37.tar.gz
[root@oracle file]# cd rlwrap-0.37/
[root@oracle rlwrap-0.37]# ./configure
[root@oracle rlwrap-0.37]# make install
[root@oracle ~]# vi /home/grid/.bash_profile
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
[root@oracle rlwrap-0.37]# su - grid
[rid@oracle ~]$ source .bash_profile

5.3 密码设置

 [oracle@oracle ~]$ sqlplus / as sysdba
SYS@ orcl>alter profile default limit password_life_time unlimited; #oracle默认180天过期,可设置口令永不过期

六 使用ASM磁盘创建FRA(快速恢复区)

6.1 创建Fast Recovery Area

使用grid用户
[grid@oracle ~]$ asmca
002.Oracle安装部署-ASM
#创建新的磁盘组。
002.Oracle安装部署-ASM
#选择相应的磁盘,并设置为不提供冗余。
002.Oracle安装部署-ASM
#创建成功。
002.Oracle安装部署-ASM
#确认创建成功。

七 安装oracle 11g

7.1 解压安装包

 [root@oracle ~]# cd /data/file/ 	 					     #进入oracle包所在目录
[root@oracle file]# ls
linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip
[root@oracle file]# unzip linux.x64_11gR2_database_1of2.zip -d /data/database/  #解压
[root@oracle file]# unzip linux.x64_11gR2_database_2of2.zip -d /data/database/  #解压
[root@oracle file]# chown -R oracle:oinstall /data/database/database/

7.2 启动Oracle安装

采用oracle用户进入图形界面,并启动安装程序。
 [oracle@oracle ~]# su oracle
[oracle@oracle ~]$ cd /data/database/database/
[oracle@oracle database]$ ./runInstaller
注意:
1:以上必须进入图形界面之后操作;
2:若出现以下报错——
 Could not execute auto check for display colors using command /usr/bin/xdpyinfo.
需要使用root用户执行以下操作,之后切换回oracle用户再次执行以上runInstaller即可。
 xhost + 172.24.8.30
xhost +SI:localuser:oracle
email可不填。
002.Oracle安装部署-ASM
选择创建和配置数据库选项,下一步。
002.Oracle安装部署-ASM
#只安装数据库软件
002.Oracle安装部署-ASM
#选择单实例。
002.Oracle安装部署-ASM
#选择英语。
002.Oracle安装部署-ASM
#选择企业版。
002.Oracle安装部署-ASM
#选择需要安装的目录。
002.Oracle安装部署-ASM
#设置用户组。
002.Oracle安装部署-ASM
#前置条件检查,由于系统存在相关rpm包的高版本,可直接忽略。
002.Oracle安装部署-ASM
#确认相关信息。
002.Oracle安装部署-ASM
#漫长的等待。
002.Oracle安装部署-ASM
#使用root执行上面的脚本。
002.Oracle安装部署-ASM
#安装完成。

7.3 相关环境设置

 [root@oracle ~]# vi /home/oracle/.bash_profile		#修改Oracle用户的环境变量
export ORACLE_BASE=/data/oracle #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 #oracle数据库路径
export ORACLE_SID=orcl #oracle启动数据库实例名
export ORACLE_TERM=xterm #xterm窗口模式安装
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量
export LANG=en_US #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集
[oracle@oracle ~]$ source /home/oracle/.bash_profile

7.4 建库

使用oracle用户在图形界面执行——
[oracle@oracle ~]$ dbca
002.Oracle安装部署-ASM
#创建数据库
002.Oracle安装部署-ASM
#默认即可。
002.Oracle安装部署-ASM
#全局数据库名字和SID。
002.Oracle安装部署-ASM
002.Oracle安装部署-ASM

#开启EMO及自动维护任务。

002.Oracle安装部署-ASM
#指定相应的口令。
002.Oracle安装部署-ASM
#选择ASM系统中的ASMGROUP01。
002.Oracle安装部署-ASM

#确认相关信息。

002.Oracle安装部署-ASM
#多元化设置,同一个文件存储多份,联机重做log和控制log都存在两个不同的地方,+ASMGROUP01、+FRAGROUP01。
002.Oracle安装部署-ASM
#设置口令。
002.Oracle安装部署-ASM
#指定快速恢复区。
002.Oracle安装部署-ASM
#开启归档模式。
002.Oracle安装部署-ASM
#安装简单实例方案。
002.Oracle安装部署-ASM
#指定字符集。
002.Oracle安装部署-ASM
#相关说明。
002.Oracle安装部署-ASM
#开始创建。
002.Oracle安装部署-ASM
#确认相关信息。
002.Oracle安装部署-ASM
#开始等待。
002.Oracle安装部署-ASM
#可进行密码管理。
002.Oracle安装部署-ASM
#对BI、HR、OE、SCOTT、SH等常见用户指定密码。
002.Oracle安装部署-ASM
#再次确认。

八 oracle用户环境优化

8.1 环境修改

 [root@oracle ~]# vi /data/oracle/product/11.2.0/dbhome_1/sqlplus/admin/glogin.sql
define_editor=vim #定义编辑器为vim
set linesize 160 #设置一行显示的字符
set pagesize 100 #设置一页显示的行数
set sqlprompt '_user@ _connect_identifier>' #设置提示符

8.2 支持键盘方向键操作

提示:默认oracle不支持方向键操作,需要安装rlwrap插件。
采用编译安装rlwrap-0.37.tar,过程略。
若报错如下——
002.Oracle安装部署-ASM
则需要yum安装以下两个rpm包之后再次编译安装——
 [root@oracle ~]#yum -y install libtermcap-devel readline-devel
[root@oracle ~]# vi /home/oracle/.bash_profile
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
[root@oracle rlwrap-0.37]# su - oracle
[oracle@oracle ~]$ source .bash_profile

8.3 密码设置

 [oracle@oracle ~]$ sqlplus / as sysdba
SYS@ orcl>alter profile default limit password_life_time unlimited;
#oracle默认180天过期,可设置口令永不过期

九 OEM配置

参考SQL FI——《003.Oracle EM配置》。