1 数据库RAC安装规划
1.1 集群节点及实例
节点名称 | 实例名称 | 数据库名称 | RAM | OS |
---|---|---|---|---|
rac1 | oradb1 | oradb | 16G | CentOS 6.10 64bit |
rac2 | oradb2 | oradb | 16G | CentOS 6.10 64bit |
1.2 网络配置
Identity | Name | Type | IP Add | Resolved by |
---|---|---|---|---|
rac1 Public | rac1 | public | 192.168.10.11 | /etc/hosts |
rac1 Private | rac1-priv | private | 172.168.10.11 | /etc/hosts |
rac1 VIP | rac1-vip | virtual | 192.168.10.12 | /etc/hosts |
rac2 Public | rac2 | public | 192.168.10.13 | /etc/hosts |
rac2 Private | rac2-priv | private | 172.168.10.13 | /etc/hosts |
rac2 VIP | rac2-vip | virtual | 192.168.10.14 | /etc/hosts |
Scan VIP | scan-cluster | virtual | 192.168.10.15 | /etc/hosts |
1.3 Oracle软件部分
Software Companetns | Grid Infrstructure | Oracle RAC |
---|---|---|
OS USER | grid | oracle |
主要属组 | oinstall | oinstall |
辅助属组 | asmadmin,asmdba,asmoper | dba,asmdba |
Home目录 | /home/grid | /home/oracle |
Oracle Base | /u01/app/grid | /u01/app/oracle |
Oracle Home | /u01/app/11.2.0/grid | /u01/app/oracle/product/11.2.0/dbhome_1 |
软件版本 | Oracle 11.2.0.4 | Oracle 11.2.0.4 |
1.4 用户组规划
Group Name | 说明 | HOST |
---|---|---|
asmadmin | Oracle自动存储管理组 | rac1 rac2 |
asmdba | ASM数据库管理员组 | rac1 rac2 |
asmoper | ASM操作员组 | rac1 rac2 |
oinstall | Oracle清单和软件所有者 | rac1 rac2 |
dba | Oracle数据库管理员 | rac1 rac2 |
oper | Oracle数据库操作员组 | rac1 rac2 |
1.5 用户规划
User | Primary Group | Group | 说明 | HOST | 默认口令 |
---|---|---|---|---|---|
grid | oinstall | asmadmin,asmdba,asmoper | Oracle Cluster用户 | rac1 rac2 | oracle |
oracle | oinstall | dba,asmdba | Oracle数据管理员 | rac1 rac2 | oracle |
1.6 存储规划
Storage Items | File System | Size | Disk Group Name | Redundancy |
---|---|---|---|---|
OCR/Voting | ASM | 2G | OCR | External |
Datafile | ASM | 800G | DATA | External |
Archivelog | ASM | 100G | FRA | External |
2 安装前准备配置
2.1 检查两台机器物理内存
[root@ rac1 ~]# top | grep Mem
Mem: 16170748k total, 15670912k used, 499836k free, 278212k buffers
[root@ rac2 ~]# top | grep Mem
Mem: 16170748k total, 15658388k used, 512360k free, 276632k buffers
2.2 检查两台机器swap和/tmp
[root@ rac1 ~]# top | grep Swap
Swap: 33554428k total, 0k used, 33554428k free, 125015820k cached
[root@ rac1 ~]# df -h /tmp/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol01
517G 127G 365G 26% /
[root@ rac2 ~]# top | grep Swap
Swap: 33554428k total, 0k used, 33554428k free, 125015820k cached
[root@rac2 ~]# df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol01
517G 13G 479G 3% /
2.3 验证操作系统版本和bit
[root@ rac1 ~]# uname -a
Linux rac1 2.6.32-754.el6.x86_64 #1 SMP Tue Jun 19 21:26:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@ rac1 ~]# cat /etc/redhat-release
CentOS release 6.10 (Final)
[root@ rac2 ~]# uname -a
Linux rac1 2.6.32-754.el6.x86_64 #1 SMP Tue Jun 19 21:26:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@ rac2 ~]# cat /etc/redhat-release
CentOS release 6.10 (Final)
2.4 关闭防火墙和NetworkManager
在两个节点
- 关闭防火墙
service iptables stop
service ip6tables stop
- 禁止firewall开机启动
chkconfig iptables off
chkconfig ip6tables off
- 查看状态
/etc/init.d/iptables status
/etc/init.d/ip6tables status
- 关闭NetworkManager
service NetworkManager stop
- 禁止开机启动
chkconfig NetworkManager off
2.5 关闭selinux
在两个节点
- 临时性关闭(立即生效,但是重启服务器后失效)
setenforce 0
- 修改启动配置文件
vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled # 这一行改成disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
- 重启系统
reboot
- 查看状态
/usr/sbin/sestatus -v
2.6 关闭ntpd
在两个节点*
- 关闭ntpd
service ntpd status
- 禁止开机启动
chkconfig ntpd off
- 移除配置文件
mv /etc/ntp.conf /etc/ntp.conf.bk
2.7 关闭透明大页
在两个节点
- 关闭透明大页
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
- 查看状态
cat /sys/kernel/mm/transparent_hugepage/enabled
2.8 配置网络环境和host文件
在两个节点
vi /etc/hosts
[root@rac1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.15 rac-cluster rac-cluster-scan
192.168.10.11 rac1
192.168.10.12 rac1-vip
192.168.10.13 rac2
192.168.10.14 rac2-vip
172.16.10.11 rac1-priv
172.16.10.13 rac2-priv
2.9 安装所需要的软件包
在两个节点
- 配置yum仓库
mount /dev/cdrom /mnt
mv /etc/yum.repos.d/* /tmp
vi /etc/yum.repos.d/rhel-debuginfo.repo
[rhel-debuginfo] ----yum源的名字,必须全局唯一不重复
name=CentOs Linux \$releasever - \$basearch - Debug
baseurl=file:///mnt/ ----yum源的路径,支持三种协议:http、ftp、file,其中file表示本地文件,这里file://后边跟的iso挂载路径
enabled=1 ----1表示启用,0表示禁用
gpgcheck=0 ----指纹校验,0表示不校验
- 安装所需要的包
yum -y install binutils compat-libstdc++-33* elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
2.10 创建grid,oracle的用户和需要的组
在两个节点
- 创建用户组
groupadd -g 5000 asmadmin
groupadd -g 5001 asmdba
groupadd -g 5002 asmoper
groupadd -g 6000 oinstall
groupadd -g 6001 dba
groupadd -g 6002 oper
- 创建用户
useradd -g oinstall -G asmadmin,asmdba,asmoper grid
useradd -g oinstall -G dba,asmdba oracle
- 配置用户口令
passwd oracle
passwd grid
# 或
echo 'oracle' | passwd --stdin grid
echo 'oracle' | passwd --stdin oracle
2.11 创建安装目录
在两个节点
mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
chmod -R 755 /u01/
chown -R oracle:oinstall /u01
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/11.2.0
2.12 设置grid和oracle用户的环境变量
在两个节点
- grid 用户
vi /home/grid/.bash_profile
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_BASE=/u01/app/grid
export ORACLE_SID=+ASM1 #二节点 +ASM2
DISPLAY=:0.0
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
- oracle 用户
vi /home/oracle/.bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=oradb1 #二节点 oradb2
export ORACLE_UNQNAME=oradb
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_INVENTORY=/u01/app/oraInventory
export PATH=$PATH:$ORACLE_BASE/bin
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export ORACLE_HOME_LISTNER=$ORACLE_HOME
2.13 配置kernel和Oracle相关的Shell限制
2.13.1 调整内核参数
在两个节点
-
查看配置情况,基本上与官方文档推荐的参数配置一致。
官方文档 -
编辑文件 /etc/sysctl.conf 添加
#Kernel for Oracle 11g R2
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
- 使内核参数生效
sysctl -p
2.13.2 添加用户资源限制
在两个节点
- 编辑文件/etc/security/limits.conf添加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
3 配置ASM共享磁盘
3.1 分区
在rac1上
[root@localhost ~]# ll -l /dev/eql/
总用量 0
lrwxrwxrwx 1 root root 7 5月 24 15:45 t10db-data1 -> ../dm-6
lrwxrwxrwx 1 root root 7 5月 24 15:45 t10db-fra1 -> ../dm-9
lrwxrwxrwx 1 root root 7 5月 24 15:45 t10db-ocr1 -> ../dm-3
fdisk /dev/eql/t10db-data1 -->n-->p-->1-->1-->[enter]-->w
[root@localhost eql]# fdisk -l t10db-data1
Disk t10db-data1: 859.0 GB, 859003944960 bytes
255 heads, 63 sectors/track, 104434 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf7753ba6
Device Boot Start End Blocks Id System
t10db-data1p1 1 104434 838866073+ 83 Linux
- 重启机器
reboot
3.2 配置asmlib
在两个节点
-
官网下载oracleasmlib和oracleasm-support
oracleasm依赖包官网下载地址
-
安装asmlib依赖包
yum install kmod-oracleasm
- 上传另外两个并安装
rpm -ivh *.rpm
- 配置asmlib
oracleasm configure -i
-->grid-->asmadmin-->y-->y
oracleasm configure -d
oracleasm configure -e
- 查看oracleasm状态
oracleasm status
- 加载oracleasm内核模块
oracleasm init
- 修改参数
1.vi/etc/sysconfig/oracleasm
ORACLEASM_SCANORDER="dm"
ORACLEASM_SCANEXCLUDE="sd"
2. 重启oracleasm服务
/etc/init.d/oracleasm restart
3.3 rac1创建共享磁盘
在rac1上
oracleasm createdisk ocr /dev/eql/t10db-ocr1p1
oracleasm createdisk data /dev/eql/t10db-data1p1
oracleasm createdisk fra /dev/eql/t10db-fra1p1
- 查看所有的asm磁盘列表
oracleasm listdisks
3.4 rac2同步共享磁盘
在rac2上
- 扫描磁盘
oracleasm scandisks
4 安装grid 软件
在rac1上
-
将grid安装包上传到/soft目录,并解压
unzip p10404530_112030_Linux-x86-64_3of7.zip
-
更改解压后的路径及权限
mv grid/ /home/grid/
chown -R grid:oinstall grid
4.1进入安装界面
- grid自检校验,在/home/grid/grid/下执行
./runcluvfy.sh stage -post whos -n rac1,rac2
- 用xstart连接,启动图形化安装
su – grid
[grid@rac1 ~]$ cd /home/grid/grid/
[grid@rac1 grid]$ ll
total 68
drwxr-xr-x 4 grid oinstall 4096 Aug 26 2013 install
-rw-r--r-- 1 grid oinstall 30016 Aug 27 2013 readme.html
drwxr-xr-x 2 grid oinstall 4096 Aug 26 2013 response
drwxr-xr-x 2 grid oinstall 4096 Aug 26 2013 rpm
-rwxr-xr-x 1 grid oinstall 4878 Aug 26 2013 runcluvfy.sh
-rwxr-xr-x 1 grid oinstall 3268 Aug 26 2013 runInstaller
drwxr-xr-x 2 grid oinstall 4096 Aug 26 2013 sshsetup
drwxr-xr-x 14 grid oinstall 4096 Aug 26 2013 stage
-rw-r--r-- 1 grid oinstall 500 Aug 27 2013 welcome.html
校验无误,开始安装grid集群软件。注意:使用工具安装登录时必须为grid用户。
- 启动图形化安装
[grid@rac1 grid]$ ./runInstaller
4.2 安装步骤
1.下载软件更新
2. 选择安装选项
四个选项分别为:
- 集群安装和配置Oracle网格基础结构
- 独立服务器配置Oracle网格基础结构
- 升级Oracle网格基础设施或Oracle自动存储管理(ASM)
- 只安装Oracle网格基础架构软件
此处选择第一项,“集群安装和配置Oracle网格基础结构”。
3.选择安装类型
两个选项分别为:
- 一般安装
- 高级安装
此处选择第二项,“高级安装”。
4.配置语言
5.配置SCAN IP
6.配置集群节点信息
1)添加rac2私网IP
2)配置两节点SSH互信
7.设置网络接口
参数:public(公网)、private(私网)、do not use(不使用)
此处em1 为公网,em4 为私网,另两个为其他网络接口,不使用。
8.存储结构配置
选择ASM管理
两个选项分别为:
- 自动存储管理(ASM)
- 共享文件系统
此处选择第一项,“自动存储管理”。
9.配置ASM磁盘组和成员
redundancy—冗余
- 冗余策略的三种模式:
external(外部)、normal(正常)、high(高)。 - 一般情况下三种模式需要的磁盘组:
external—1块
normal-----3块
high-------5块
1)外部冗余(external redundancy):
表示Oracle不帮我们管理镜像,功能由外部存储系统实现,比如通过RAID技术。有效磁盘空间是所有磁盘设备空间的大小之和。
2)默认冗余(normal redundancy):
表示Oracle提供2份镜像来保护数据(镜像数据一次),有效磁盘空间是所有磁盘设备大小之和的1/2 (使用最多)。
3)高度冗余(high redundancy):
表示Oracle提供3份镜像来保护数据(镜像数据两次),以提高性能和数据的安全,最少需要三块磁盘(三个failure group);有效磁盘空间是所有磁盘设备大小之和的1/3,虽然冗余级别高了,但是硬件的代价也最高。
此处选择“外部冗余”。
10.配置ASM磁盘组的管理员密码
首字母未大写没有结合数字,会提示INS-30011错误(密码过于简单),此处可忽略。
11.故障隔离支持选项
两个选项分别为:
- 用户的IPMI接口(智能管理平台)
- 不使用IPMI接口
此处选择第二项,“不使用IPMI接口”。
12.配置ASM磁盘的组
Oracle管理员组:asmadmin组
Oracle DBS组:asmdba组
Oracle操作组:asmoper组
13.grid基础目录
注意:此处如果报错,请检查每个节点上这些目录是否都存在、权限是否足够。
14.grid库存目录
15.配置最终检查
1)将缺少的包,通过yum安装。
(在redhat中,如果安装了ksh就不需要再安装pdksh。但如果需要安装pdksh,就必须先检查系统是否安装过ksh,因为这两个包会发生冲突。)
2)Network Time Protocol(NTP):网络时间协议 NTP(代表RAC时间未同步,无法实现心跳线。但如不需要可跳过)
问题解决后,点击“修复并再次检查”,按照指定顺序执行脚本。
16. 安装配置报告
17.开始安装
按照提示在提示节点和用户,分别执行提示脚本文件。
注意:如果在执行脚本时报错,需要及时处理;如果执行结果显示“失败”,在问题解决后不能重新运行,需要在root用户下通过回退清除命令清空配置信息后再次运行。
- 回退清除命令:
rac1
# /u01/app/11.2.0/grid/crs/install/rootcrs.pl -verbose -deconfig -force
# /u01/app/11.2.0/grid/crs/install/roothas.pl -verbose -deconfig –force
rac2
# /u01/app/11.2.0/grid/crs/install/rootcrs.pl -verbose -deconfig -force - lastnode
# /u01/app/11.2.0/grid/crs/install/roothas.pl -verbose -deconfig -force
报错[INS-20802] Oracle Cluster Verification Utility failed.
Oracle集群验证实用程序失败,如果两个节点都能ping通SCAN IP,那么此问题可以忽略,点击Next。
18.grid软件安装完成
至此,grid软件安装完成。
4.3 验证
- 查看进程
[grid@rac1 ~]$ crsctl query crs activeversion
Oracle Clusterware active version on the cluster is [11.2.0.4.0]
[grid@rac1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....ER.lsnr ora....er.type ONLINE ONLINE rac1
ora....N1.lsnr ora....er.type ONLINE ONLINE rac1
ora.OCR.dg ora....up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.cvu ora.cvu.type ONLINE ONLINE rac1
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type ONLINE ONLINE rac1
ora.ons ora.ons.type ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip ora....t1.type ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip ora....t1.type ONLINE ONLINE rac2
ora.scan1.vip ora....ip.type ONLINE ONLINE rac1
- 查看crs进程
[grid@rac1 ~]$ crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
- 查看cluster进程
[grid@rac1 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
5 创建DATA磁盘组
5.1配置ASM磁盘组
以grid用户在任意一节点运行asmca,进入配置界面。
5.2 创建磁盘组
点击create创建磁盘组DATA、FRA。
其中DATA是存放数据文件的磁盘,FRA是存放归档的磁盘。
5.3 核对已经创建好的磁盘组
6 Oracle database软件安装
在rac1上
- 将oracle安装包上传到/soft目录,并解压
unzip p10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip
- 更改解压后的路径及权限
mv database/ /home/oracle/
chown -R oracle:oinstall database
- 以oracle用户在任意一节点运行
./runInstaller
6.1 安装步骤
1.配置安全更新
取消接受邮件。
**2.软件更新下载 **
三个选项分别为:
- 通过网络下载更新
- 通过本地源更新
- 不进行更新
此处选择第三项,“不进行更新”。
3.安装选项
三个选项分别为:
- 创建和配置数据库
- 只安装数据库软件
- 更新现有数据库
此处选择第二项,“只安装数据库软件”。
4.单实例或RAC安装
1)安装类型
三个选项分别为:
- 单实例数据库安装
- 多节点(RAC)数据库安装
- 单节点(RAC)数据库安装
此处选择第二项,“多节点数据库安装”。
2)配置两节点SSH互信
输入oracle密码,设置rac1与rac2互信
5.配置语言
6.数据库版本选择
两个选项分别为:企业版、标准版。此处选择“企业版”。
7.Oracle基础目录
注意:如果报错需要检查每个节点目录是否存在、权限是否足够。
8.配置数据库组
数据库管理员组:dba
数据库操作员组:oper
9.配置最终检查
如果两个节点都能ping通SCAN IP,那么此问题可以忽略,选择lgnore All(忽略所有)报错INS-13016 确认跳过问题,点击Next。
10.安装配置报告
11.开始安装
根据提示在节点和用户,执行脚本文件。
12.安装成功
至此,Oracle Database 软件安装完成。
7 创建数据库
以Oracle用户在任意节点运行dbca
,启动图形化界面安装。
1.选择安装模式
三个选项分别为:
- 多节点(RAC)数据库
- 单节点(RAC)数据库
- 单实例数据库
此次选择第一项,“多节点(RAC)数据库”。
2.选择执行操作
四个选项分别为:
- 创建一个数据库
- 配置数据库
- 删除数据库
- 模板管理
- 实例管理
此次选择第一项,“创建一个数据库”。
3.安装类型
带有数据文件的模板包含预创建的数据库。它们允许您在几分钟内创建出新的数据库,而不是一小时或更长时间。只有在必要时才会使用不带数据文件的模板,比如当您需要更改块大小等属性时,需要注意的是,这些属性在数据库创建后不能更改
三个选项分别为:
- 一般用途或事务处理(包含数据文件)
- 自定义数据库(不包含数据文件)
- 数据仓库
此处选择第二项,“自定义数据库”。
4.配置RAC数据库名
配置好数据库名称后,点击“select all”选择所有。
5.管理选项
不配置EM(企业管理器),保留automatic maintenance tasks(自动维护任务)。
6.数据库凭据
配置sys和system密码。
注意,默认规则是首字母大写,字母结合数字,如果没按照要求配置会有提示。
7.数据库文件存储位置管理
三个选项分别为:
- 指定数据库文件存储类型和位置
- 使用公共数据库文件存储位置
- 使用oracle自动化管理(此项需要配置数据库的域)
此处选择第三项,“使用oracle自动化管理”,其中存储类型为“自动存储管理(ASM)”,数据库的域为“+DATA”。
8.归档配置
两个选项分别为:
- 指定快速恢复区
- 归档
此处选择第一项,“指定快速恢复区”,快速恢复区的位置为“+FRA”磁盘组,大小为“5727M”。
9.组件选择
取消选择没作用的组件。
10.配置初始化参数
memory -------------------配置自动管理(SGA和PGA)或SGA、PGA手动管理
sizing ----------------------调整块大小,最大并发连接数
character sets -----------使用的字符集
connection mode -------服务器模式(专用或共享)
选择“自动管理(SGA和PGA)”。
增大并发连接数。
字符集选择“AL32UTF8”。
11.数据库存储配置
maximum datafiles --------------最大数据文件数
maximum instances -------------最大实例数
maximum log history ------------最大归档日志数量,超过这个数值将被复用
maximum redo log files ---------最大redo日志数
maximum log members ---------最大log日志成员
在此页面可以看到数据库已经配置的数据文件、包含的redo日志组及组内成员等信息,如果有需要,可以进行调整创建或删除等操作。
调整redo日志大小。
12.数据库创建选项
两个选项分别为:创建数据库和生成数据库创建脚本。本次选择“创建数据库”。
13.安装报告信息
14.数据库创建完毕
在任意节点以oracle用户登录,通过工具sqlplus登录数据库。
查看数据库版本信息
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
8 参数优化
8.1 数据库部分参数优化
8.1.1 密码策略
- 密码过期时间,从11g开始,oracle对数据库所有密码默认过期时间180天:
SQL> alter profile default limit PASSWORD_LIFE_TIME unlimited;
- 密码登陆错误次数,对于输入错误密码导致数据库账号被锁定:
SQL> alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
- 密码大小写敏感,该参数默认值是TRUE,因此,默认情况下密码大小写是敏感的
SQL> alter system set SEC_CASE_SENSITIVE_LOGON=false sid='*';
- 密码错误延迟登录,11G引入了延迟密码验证,在输入错误的密码后,后续如果还是采用错误的密码登陆,将会导致密码延迟验证,从第三次开始,后续的每次登陆导致密码延迟1秒左右。而且会导致失败登陆延长,可以通过如下事件来屏蔽密码的延迟验证
SQL> ALTER SYSTEM SET event='28401 TRACE NAME CONTEXT FOREVER, LEVEL 1' SCOPE=SPFILE SID='*';
8.1.2 审计策略
- Oracle的审计从11g开始,默认为开启,建议关闭:
SQL> alter system set audit_trail=none sid='*';
8.1.3 CPU资源管理
- 关闭Resource Manager该特性为11g新特性,用来给特定的资源组分配指定的CPU配额,容易引起等待事件:RESMGR:cpu quantum,导致数据库响应慢、CPU耗尽。
ALTER SYSTEM SET "_resource_manager_always_on"=FALSE SCOPE=SPFILE SID='*';
alter system set "_resource_manager_always_off"=true scope=spfile;
execute dbms_scheduler.set_attribute('SATURDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('SUNDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('MONDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('TUESDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('WEDNESDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('THURSDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('FRIDAY_WINDOW','RESOURCE_PLAN','');
8.1.4 关闭延迟段创建
ALTER SYSTEM SET deferred_segment_creation=FALSE SCOPE=SPFILE SID='*';
8.1.5 关闭跨节点并行查询
ALTER SYSTEM SET parallel_force_local=TRUE SCOPE=BOTH;
8.1.6 直接路径读
- 对于大表,Oracle 11g倾向于直接路径读。如果AWR中,关于直接路径读的等待事件较高,可以考虑关闭该等待事件。
alter system set "_serial_direct_read"=never scope=spfile sid='*'
8.2 内存参数优化
在64G主机内存的情况下,建议ORACLE内存设置如下:
内存 | 建议大小 |
---|---|
SGA | 25G |
PGA | 5G |
SHARED_POOL | 5G |
以上参数设置相对保守,可以自行决定具体参数设置范围,但是不能让SGA+PGA内存>60%OS_Mem 并且确保主机交换空间充足
8.3 在线日志调整
在线redo日志组建议,每个节点5组,每组一个日志文件,每个日志文件大小不小于400M(视具体业务情况而定),但是默认的4组每个节点2组 每组50M的默认设置明显是不够的
8.4 ASM部分参数优化
8.4.1 ASM 磁盘组兼容性
compatible参数(数据库的兼容版本)还确定启用的功能。该参数适用于数据库实例或ASM 实例,具体取决于instance_type参数。例如,将该参数设置为10.1 将禁止使用Oracle Database 11g 中引入的任何新功能(磁盘联机/脱机、可变区等)。
建或变更ASM 磁盘组时,可以使用CREATE DISKGROUP 命令或ALTER DISKGROUP命令新增的ATTRIBUTE 子句更改其属性。
alter diskgroup data SET ATTRIBUTE 'compatible.rdbms' = '11.2', 'compatible.asm' = '11.2';
8.4.2 调整ASM内存参数
MEMORY_TARGET参数又基于PROCESSES参数相关连,有可能导致缺省配置不足,在内存充裕的情况下建议调整:
su - grid
sqlplus / as sysasm
SQL> alter system set memory_max_target=4096m scope=spfile;
SQL> alter system set memory_target=4096m scope=spfile;
8.5 禁用ACFS特性
目前发现ACFS会导致集群在关闭过程中无法停止ASM实例问题,如果确认不需要使用ACFS共享文件系统特性,建议还是关闭该新特性
- 关闭处理命令:
# /u01/app/11.2.0/grid/bin/acfsroot disable
8.6 网络资源优化
11.2 RAC中Listener资源依赖于VIP, 而VIP资源依赖于ora.net1.network;这就造成了当public network短时不可用(或曰network hiccup)时会造成ora.net1.network资源OFFLINE,这就将造成该节点上VIP资源的FAILOVER和LISTENER的OFFLINE。且由于在11.2上ora.net1.network资源的默认CHECK_INTERVAL=1,即每秒都会对该NETWORK资源进行监控,所以NETWORK资源变得十分敏感,不管是由于硬件网络亦或者较高的主机负载造成短时的Public Network不可用,都可能导致VIP和LISTENER由于NETWORK依赖资源OFFLINE而受到影响
crsctl modify res ora.LISTENER.lsnr -attr "STOP_DEPENDENCIES=hard(intermediate:ora.net1.network)"
crsctl modify res ora.s2-11g.vip -attr "STOP_DEPENDENCIES=hard(intermediate:ora.net1.network)"
crsctl modify res ora.scan1.vip -attr "STOP_DEPENDENCIES=hard(intermediate:ora.net1.network)"