1.安装系统
安装系统是/home缩小(一般配50G)/root缩小(一般配50G)/u01(创建100G逻辑卷单独挂载),剩余空间先空着,数据库工程师自行使用剩下的空间,新建lvm把/u01挂载出去
关闭kdump
关闭UTC时钟同步
系统 | root:50G | Home:100G | u01:100G | 网络+主机名 |
参数 | cpuspeed | grub | sysctl | limit |
服务 | ntpd | selinux | NetworkManager | Iptables |
存储 | multipath | udev |
|
|
2.用户与组创建以及配置
为Grid Infrastructure创建组和用户:
[root@localhost Desktop]# cat /etc/group | grep oinstall
[root@localhost Desktop]# more /etc/oraInst.loc
/etc/oraInst.loc: No such file or directory
[root@localhost Desktop]# groupadd oinstall
[root@localhost Desktop]# groupadd asmoper
[root@localhost Desktop]# groupadd dba
[root@localhost Desktop]# groupadd oper
[root@localhost Desktop]# groupadd asmdba
[root@localhost Desktop]# groupadd asmadmin
[root@localhost Desktop]# id oracle
id: oracle: No such user
[root@localhost Desktop]# useradd -u 501 -g oinstall -G dba,oper,asmdba oracle
[root@localhost Desktop]# id grid
id: oracle: No such user
[root@localhost Desktop]# useradd -u 502 -g oinstall -G asmadmin,asmdba,asmoper grid
查看效果:
[root@localhost Desktop]# id grid
uid=1100(grid) gid=1000(oinstall) groups=1000(oinstall), 1200(asmadmin), 1201(asmdba),1202(asmoper)
设置 grid 帐户的口令:
[root@localhost Desktop]# passwd grid
为 Oracle 数据库软件创建组和用户
[root@localhost Desktop]# groupadd -g 1300 dba
[root@localhost Desktop]# groupadd -g 1301 oper
[root@localhost Desktop]# useradd -m -u 1101 -g oinstall -G dba,oper,asmdba oracle
查看效果
[root@localhost Desktop]# id oracle
uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall),1201(asmdba),1300(dba),1301(oper)
设置 oracle 帐户的口令
[root@localhost Desktop]# passwd oracle
安装软件之前,执行以下过程,以验证在两个 Oracle RAC 节点上存在用户 nobody
验证用户nobody 存在
[root@localhost Desktop]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
如果该命令显示了nobody 用户的信息,则无需创建该用户。
如果用户 nobody 不存在,则输入以下命令进行创建。
[root@localhost Desktop]# useradd nobody
在集群中的所有其他Oracle RAC 节点上重复此过程。
新建目录:
[root@localhost Desktop]# /u01
[root@localhost Desktop]# chmod 755 -R /u01
3.本地yum、网络、hostname、selinux与iptables
[root@localhost Desktop]# mkdir /yum
[root@localhost Desktop]# umount /dev/sr0
[root@localhost Desktop]# mount /dev/sr0 /yum
[root@localhost Desktop]# mount -t iso9660 /dev/sr0 /media
[root@localhost Desktop]# cp -a /media/* /yum
[root@localhost Desktop]# vim /etc/yum.repo.d/local.repo
[server]
name=local_repo
baseurl=file:///yum
gpgcheck=0 (跳过校验加快缓存速度)
enabled=1
[root@localhost Desktop]# vim /etc/sysconfig/network-scripts/ifcfg-eth
参数: | NETMASK | IPADDR | GATEWAY | DNS | 开机自动启动 | method |
[root@localhost Desktop]# service NetworkManager stop
[root@localhost Desktop]# chkconfig NetworkManager off
查看hostname
[root@localhost Desktop]# hostname
更改hostname识别
[root@localhost Desktop]# vim /etc/hosts
本机IP(10.0.0.123) + localhost(别名) localhost.localdomain(主机名)
更改hostname
[root@localhost Desktop]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=主机名
NOZEROCONF=yes
[root@localhost Desktop]# vim /etc/sysconfig/selinux
更改SELINUX=permissive
setenforce是临时生效
getenforce查看效果
[root@localhost Desktop]# service iptables stop
[root@localhost Desktop]# chkconfig iptables off
4.cpuspeed、grub.conf与sysctl.conf
步骤:
[root@localhost Desktop]# vim /etc/sysconfig/cpuspeed
修改GOVERNOR=performance
重启服务
[root@localhost Desktop]# service cpuspeed restart
查看更改效果
[root@localhost Desktop]# watch -n 0 "cat /proc/cpuinfo | grep MHz"
步骤:
查看系统是否支持大页内存
[root@localhost Desktop]# cat /proc/meminfo | grep -i huge
关闭透明页
[root@localhost Desktop]# vim /etc/grub.conf
在kernel后加transparent_hugepage=never
设置大页内存
[root@localhost Desktop]# vim /etc/sysctl.conf
添加vm.nr_hugepages=value(单位为页数)
大小一般为内存的50%-60%略大于SGA+PGA。(show parameter可查SGA和PGA)
5.软件包安装
[root@localhost ~]# yum list |grep multipath
device-mapper-multipath.x86_64 0.4.9-93.0.1.el6 @local
device-mapper-multipath-libs.x86_64 0.4.9-93.0.1.el6 @local
device-mapper-multipath-libs.i686 0.4.9-93.0.1.el6 local
[root@localhost ~]# yum -y install device-mapper device-mapper-multipath
启动multipath,并修改为自启动。
[root@localhost ~]# service multipathd start
[root@localhost ~]# chconfig multipathd on
[root@localhost Desktop]# yum list | grep -I oracle-rdbms
oracle-rdbms-server-11gR2-preinstall.x86_64
oracle-rdbms-server-12cR1-preinstall.x86_64
[root@localhost Desktop]# yum -y install oracle-rdbms-server-11gR2-preinstall.x86_64 gcc*
6.limits.conf
[root@localhost Desktop]# vim /etc/security/limits.conf
加入oracle,grid用户
soft | nproc: | 单个用户可用的最大进程数量 | 最少2047 |
hard | nproc | 单个用户可用的最大进程数量 | 最少16384 |
soft | nofile | 可打开的文件描述符的最大数 | 最少1024 |
hard | nofile | 可打开的文件描述符的最大数 | 最少65536 |
soft | memlock | 内存锁定 | 最多是物理内存的百分之90 |
hard | memlock | 内存锁定 | 最多是物理内存的百分之90 |
7.ntpd
如果没有ntp源则关闭ntp服务
[root@localhost Desktop]# vim /etc/sysconfig/ntpd
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g"
[root@localhost Desktop]# vim /etc/ntp.conf
server ip/域名 prefer
重启NTP服务
[root@localhost Desktop]# service ntpd restart
[root@localhost Desktop]# ntpdate ip/域名 进行验证
[root@localhost Desktop]# ntpq -p 验证是否同步
关闭NTP服务
[root@localhost Desktop]# service ntpd stop
[root@localhost Desktop]# chkconfig ntpd off
主配置文件改名
[root@localhost Desktop]# mv /etc/ntp.conf /etc/ntp.conf_old
8.存储多路径与udev绑定
软件包的安装
[root@localhost ~]# yum list |grep multipath
device-mapper-multipath.x86_64 0.4.9-93.0.1.el6 @local
device-mapper-multipath-libs.x86_64 0.4.9-93.0.1.el6 @local
device-mapper-multipath-libs.i686 0.4.9-93.0.1.el6 local
[root@localhost ~]# yum -y install device-mapper device-mapper-multipath
启动multipath,并修改为自启动
[root@localhost ~]# service multipath start
[root@localhost ~]# chconfig multipath on
查看多路径状态查看模块是否加载成功
[root@localhost ~]# multipath -ll
提示:模块未加载;配置文件未加载
建立配置文件
[root@localhost ~]# cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/multipath.conf
解注释后更改配置
白名单里放入非本地存储
查询wwid号
[root@localhost ~]# /sbin/scsi_id -g -u /dev/sdc
[root@localhost ~]# /sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sda
[root@localhost ~]# modprobe v2
[root@localhost ~]# multipath -F
[root@localhost ~]# multipath dm-multipath
[root@localhost ~]# multipath dm-round-robin
[root@localhost ~]# service multipathd restart
执行完成上述命令之后,会在/etc/multipath目录下生成一个bindings这的一个文件,如下,
[root@localhost ~]# cat /etc/multipath/bindings
# Multipath bindings, Version : 1.0
# NOTE: this file is automatically maintained by the multipath program.
# You should not need to edit this file in normal circumstances.
#
# Format:
# alias wwid
#
mpatha 14f504e46494c45526776753764752d695267332d675a4a32
mpathb 14f504e46494c4552446f646c47592d325053352d33634f42
mpathc 14f504e46494c45524559737259462d7a4278572d6b307253
mpathd 14f504e46494c45524c693336494f2d517450512d4c6d3730
mpathe 14f504e46494c45527448484b6f432d575472632d41393944
这里存放的是多路径的磁盘名称和对应的ID。这时,我们可以使用fdisk -l这个命令查看到这些设备,比如/dev/mapper/mpatha。
udev绑定(绑定块存储)!!!!块存储!!!!建完PV、VG、LV、格式化、挂载后才可访问
[root@localhost ~]# cat /etc/udev/rules.d/99-iscsi-udev.rules
# dm-01 | 路径别名 | 磁盘位置(/dev/mapper/multipath01) | wwid | 挂载点(别名) | 所属组和用户 | 权限 |
ENV{DM_NAME}=="data01", PROGRAM=="/sbin/scsi_id -g -u -d /dev/mapper/*",RESULT=="wwid", NAME="/hello1",OWNER="grid", GROUP="asmadmin", MODE="660"
查看是否生效
[root@localhost ~]# ll /dev/ | head
续:
用户与组创建以及配置:
一般参照官方文档。
1.安装单实例时需要创建的几个groups:
Oracle 清单组(一般为 oinstall)
OINSTALL 组的成员被视为 Oracle 软件的“所有者”,拥有对 Oracle 中央清单 (oraInventory) 的写入权限。在一个 Linux 系统上首次安装 Oracle 软件时,OUI 会创建 /etc/oraInst.loc 文件。该文件指定 Oracle 清单组的名称(默认为 oinstall)以及 Oracle 中央清单目录的路径。
cat /etc/oraInst.loc
inventory_loc=/u01/app/oraInventory
inst_group=oinstall
如果不存在 oraInventory 组,默认情况下,安装程序会将集群的网格基础架构的安装所有者的主组列为 oraInventory 组。确保所有计划的 Oracle 软件安装所有者都使用此组作为主组。
数据库管理员(OSDBA,一般为 dba)
OSDBA 组的成员可通过操作系统身份验证使用 SQL 以 SYSDBA 身份连接到一个 Oracle 实例。该组的成员可执行关键的数据库管理任务,如创建数据库、启动和关闭实例。该组的默认名称为 dba。SYSDBA 系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。
不要混淆 SYSDBA 系统权限与数据库角色 DBA。DBA 角色不包括 SYSDBA 或 SYSOPER 系统权限。
数据库操作员组(OSOPER,一般为 oper)
OSOPER 组的成员可通过操作系统身份验证使用 SQL 以 SYSOPER 身份连接到一个 Oracle 实例。这个可选组的成员拥有一组有限的数据库管理权限,如管理和运行备份。该组的默认名称为 oper。SYSOPER系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。要使用该组,选择 Advanced 安装类型来安装 Oracle 数据库软件。
2.安装RAC集群时在单实例基础上添加的几个groups:
Oracle 自动存储管理组(一般为 asmadmin)
此组为必需组。如果想让 Oracle ASM 管理员和 Oracle Database 管理员分属不同的管理权限组,可单独创建此组。在 Oracle 文档中,OSASM 组是其成员被授予权限的操作系统组,在代码示例中,专门创建了一个组来授予此权限,此组名为 asmadmin。
OSASM 组的成员可通过操作系统身份验证使用 SQL 以 SYSASM 身份连接到一个 Oracle ASM 实例。SYSASM 权限是在 Oracle ASM 11g 第 1 版 (11.1) 中引入的,现在,在 Oracle ASM 11g 第 2 版 (11.2) 中,该权限已从 SYSDBA 权限中完全分离出来。SYSASM 权限不再提供对 RDBMS 实例的访问权限。用 SYSASM 权限代替 SYSDBA 权限来提供存储层的系统权限,这使得 ASM 管理和数据库管理之间有了清晰的责任划分,有助于防止使用相同存储的不同数据库无意间覆盖其他数据库的文件。SYSASM 权限允许执行挂载和卸载磁盘组及其他存储管理任务。
ASM 数据库管理员组(OSDBA for ASM,一般为 asmdba)
ASM 数据库管理员组(OSDBA for ASM)的成员是 SYSASM 权限的一个子集,拥有对 Oracle ASM 管理的文件的读写权限。Grid Infrastructure 安装所有者 (grid) 和所有 Oracle Database 软件所有者 (oracle) 必须是该组的成员,而所有有权访问 Oracle ASM 管理的文件并且具有数据库的 OSDBA 成员关系的用户必须是 ASM 的 OSDBA 组的成员。
ASM 操作员组(OSOPER for ASM,一般为 asmoper)
该组为可选组。如果需要单独一组具有有限的 Oracle ASM 实例管理权限(ASM 的 SYSOPER 权限,包括启动和停止 Oracle ASM 实例的权限)的操作系统用户,则创建该组。默认情况下,OSASM 组的成员将拥有 ASM 的 SYSOPER 权限所授予的所有权限。
要使用 ASM 操作员组创建 ASM 管理员组(该组拥有的权限比默认的 asmadmin 组要少),安装 Grid Infrastructure 软件时必须选择 Advanced 安装类型。这种情况下,OUI 会提示您指定该组的名称。如果要拥有一个 OSOPER for ASM 组,则集群的 Grid Infrastructure 软件所有者 (grid) 必须为此组的一个成员。
Oracle RAC 节点最终的配置:
1.Oracle 中央清单组,即 oraInventory 组 (oinstall),其成员以中央清单组作为主组,拥有对 oraInventory 目录的写入权限。
2.单独的 OSASM 组 (asmadmin),其成员拥有 SYSASM 权限,可以管理 Oracle Clusterware 和 Oracle ASM。
3.单独的 ASM OSDBA 组 (asmdba),其成员包括 grid 和 oracle,拥有对 Oracle ASM 的访问权限。
4.单独的 ASM OSOPER 组 (asmoper),其成员包括 grid,拥有有限的 Oracle ASM 管理员权限(包括启动和停止 Oracle ASM 实例的权限)。
5.集群的 Oracle 网格安装所有者 (grid),该用户以 oraInventory 组作为其主组,以 OSASM (asmadmin)、OSDBA for ASM (asmdba) 和 OSOPER for ASM (asmoper) 组作为其辅助组。
6.单独的 OSDBA 组 (dba),其成员拥有 SYSDBA 权限,可以管理 Oracle 数据库。
7.单独的 OSOPER 组 (oper),其成员包括 oracle,拥有有限的 Oracle 数据库管理员权限。
8.Oracle 数据库软件所有者 (oracle),该用户以 oraInventory 组作为其主组,以 OSDBA (dba)、OSOPER (oper) 和 OSDBA for ASM 组 (asmdba) 作为其辅助组。
9.符合 OFA 的挂载点 /u01,在安装之前,其所有者为 grid:oinstall。
10.网格的 Oracle 基目录 /u01/app/grid,其所有者为 grid:oinstall,权限设置为 775,在安装过程中其权限设置更改为 755。网格安装所有者的 Oracle 基目录是存放 Oracle ASM 诊断和管理日志文件的位置。
11.网格主目录 /u01/app/11.2.0/grid,其所有者为 grid:oinstall,权限设置为 775 (drwxdrwxr-x)。这些权限为安装所需,在安装过程中会更改为 root:oinstall 和 755 权限设置 (drwxr-xr-x)。
12.在安装过程中,OUI 在路径 /u01/app/oraInventory 下创建 Oracle 清单目录。此路径的所有者一直为 grid:oinstall,使其他 Oracle 软件所有者可以写入中央清单。
13.Oracle 基目录 /u01/app/oracle,其所有者为 oracle:oinstall,权限设置为 775
进行操作时一般不推荐关闭Selinux,而是选择permissive模式
有条件的情况可以在服务器制作一个本地YUM源,保证操作系统可以回退以前版本(使用旧版本的软件等)
根据应用环境需求提升服务器性能。
cpuspeed中GOVERNOR选项
ondemand:系统默认的超频模式,按需调节,内核提供的功能,不是很强大,但有效实现了动态频率调节,平时以低速方式运行,当系统负载提高时候自动提高频率。以这种模式运行不会因为降频造成性能降低,同时也能节约电能和降低温度。一般官方内核默认的方式都是ondemand。
interactive:交互模式,直接上最高频率,然后看CPU负荷慢慢降低,比较耗电。Interactive 是以 CPU 排程数量而调整频率,从而实现省电。
InteractiveX:是以 CPU 负载来调整 CPU 频率,不会过度把频率调低。所以比 Interactive 反应好些,但是省电的效果一般。
conservative:保守模式,类似于ondemand,但调整相对较缓,想省电就用他吧。Google官方内核,kang内核默认模式。
smartass:聪明模式,是I和C模式的升级,该模式在比interactive 模式不差的响应的前提下会做到了更加省电。
performance:性能模式!只有最高频率,从来不考虑消耗的电量,性能没得说,但是耗电量。
powersave:省电模式,通常以最低频率运行。
userspace:用户自定义模式,系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU 运行频率使用。也就是长期以来都在用的那个模式。可以通过手动编辑配置文件进行配置
Hotplug:类似于ondemand, 但是cpu会在关屏下尝试关掉一个cpu,并且带有deep sleep,比较省电。
大页内存:使用2M的内存页替代传统4KB内存页面,降低所管理虚拟地址数,加快从虚拟地址到物理地址的映射摒弃内存页面的换入换出来提高内存的整体性能。为程序预留一部分内存,这些内存不会被交换出去。
透明大页:内核试图尽可能分配巨大的页面,主内核地址空间本身被映射为巨大的页面,减少了内核代码的透明大页压力。内核将始终尝试使用巨页来满足内存分配。如果没有可用的巨大页面,内核将回退到正常的4KB页面。
linux开启透明巨页,则I/O读写性能降低30%;如果关闭透明巨页,I/O读写性能则恢复正常。
最小内存为3GB时才可以开启大页内存,如果大于3GB时配置当前内存的百分之90为大页内存。大页内存是内存链表,因为CPU寻址是按照指针形式,而指针只能向上或者向下移动,不能跳跃,利用大页内存可以减少中断次数。
GIMR:资源管理库
SGA:系统全局域 共享池,资源缓冲区,日志缓冲区
PGA:程序缓冲域 用户进程保留的内存
调优原因:1.大页内存是内存链表,因为CPU寻址是按照指针形式,而指针只能向上或者向下移动,不能跳跃,利用大页内存可以减少中断次数;2.在RAC环境下,透明大页会导致异常节点重启和性能问题;3.在单机环境中,透明大页 也会导致一些异常的性能问题。
![](https://i-blog.csdnimg.cn/blog_migrate/50213028a6b3d46bbd24b735f08290e5.png)
把本地磁盘添加到黑名单
其他存储设备添加到黑名单
把远端映射存储的wwid放入白名单
配置wwid与别名
重载服务
字段 | 描述 |
defaults段 | 全局属性的默认设置 |
blacklist段 | 黑名单配置,multipath忽略的设备 |
blacklist_exceptions段 | 免除黑名单,黑名开启,但包含在这里的设备不会被忽略 |
multipaths段 | 多路径相关配置 |
devices段 | 存储设备相关配置 |
命令 | 描述 |
multipath –r | 修改multipath.conf配置文件之后重新加载 |
multipath –ll | 查看多路径状态 |
multipath -v2 | 格式化路径,检测路径,合并路径 |
multipath -v3 | 查看多路径详情blacklist、whitelist和设备wwid |
multipath –F | 删除现有链路 |