Centos Linux 下ORACLE12C RAC配置注意事项

Centos Linux 下ORACLE12C RAC配置注意事项

 

国庆节前,完成VMWRE WORKSTATION RHEL linux环境下,ORACEL12C RAC环境的安装,在安装地程中,虽然参考一些网上一些技术文档,但发现在实际配置过程中,还是有一要特别注意的地方,因而记录下来,方便日后,查证。、

关于共享磁盘的创建:

在虚拟机里,创建一个三个硬盘,一个是DATA(数据盘),一个是ocr_vote(投票仲裁盘),一个是FRA(快速恢复盘),分别是:8g,10g,10g, 建议这三个硬盘并建立在同一个sharestore文件夹下。

创建过程中,选择:立即分配所有磁盘空间 以及将虚拟磁盘存储为单个文件。

创建磁盘后,打开虚拟机设置,选择硬盘,点击右下角的高级,在虚拟设备节点,下拉框,选择SCIS1:X 硬盘(SCSI),第一个新增的硬盘就是:SCIS1:0 硬盘2(SCSI), 第二个新增的硬盘就是:SCIS1:1 硬盘3(SCSI), 第三个新增的硬盘就是:SCIS1:2 硬盘4(SCSI)。 模式就 选 独立 ,选 永久.

建多一个网络适本器:网络适配器2 的网络连接状态选自定义(U):特定虚拟网络:VMnet2. 配置RAC环境的每台机都要建.

关于共享磁盘的设置:

在一台机创建并设置三个硬盘后,打开这台机机虚机的vmx文件,加上以下内容,方便另外一台机正常访问这台机新增的三个硬盘。特别要注意,加以下文件内容时,要关掉VMWARE WORKSTION,而不是只关掉虚拟机。如果只是关掉虚拟机,而不是关掉VMWARE。改完vmx文件后,再重启虚拟机,会报字典错误。

fileSearchPath = “.”

scsi1.present = “TRUE”

scsi1.virtualDev = “lsilogic”

scsil.sharedBus = “VIRTUAL”

scsi1:0.present = “TRUE”

scsi1:0.mode = “independent-persistent”

scsi1:0.fileName = “E:\ShareStore\rac12c\ocr_vote.vmdk”

scsi1:0.deviceType = “disk”

scsi1:0.redo = “”

scsi1:1.present = “TRUE”

scsi1:1.mode = “independent-persistent”

scsi1:1.fileName = “E:\ShareStore\rac12c\data.vmdk”

scsi1:1.deviceType = “disk”

scsi1:1.redo = “”

scsi1:2.present = “TRUE”

scsi1:2.mode = “independent-persistent”

scsi1:2.fileName = “E:\ShareStore\rac12c\fra.vmdk”

scsi1:2.deviceType = “disk”

scsi1:2.redo = “”

 

#shared disks configure

disk.EnableUUID=”TRUE”

disk.locking = “FALSE”

scsi1.shared = “TRUE”

diskLib.dataCacheMaxSize = “0”

diskLib.dataCacheMaxReadAheadSize = “0”

diskLib.dataCacheMinReadAheadSize = “0”

diskLib.dataCachePageSize= “4096”

diskLib.maxUnsyncedWrites = “0”

 

关于网卡IP设置.

修改ifcfg-eth0, 就将ifcfg-eth0复制成ifcfg-eth1,并修改IP相关属性,至于ifcfg-eth1的HWADDR的参数值 ,可以通过vmare配置查看网卡的HWADDR,并取消ifcfg-eth1的UUID值.,另外一台机一样的设置方法.

关闭防火墙与selinux,两台机都要设,方法与步骤略.

/etc/hosts文件设置 ,两台机都要加;

192.168.179.12 12crac1

192.168.179.14 12crac1-vip

10.10.10.1 12crac1-priv

192.168.179.13 12crac2

192.168.179.15 12crac2-vip

10.10.10.2 12crac2-priv

192.168.179.8 scan-rac

七、要确认dev/shm 空间为达到要求,这个跟设置共享磁盘一样,都是设置RAC的重点。

1、如果一开始虚拟机内存设置为2G的话,/dev/shm的大小默认为1G,但这个1G空间会偏小,在影晌RAC的容器DB正常创建,会因为内存不足而报错。参照网上文档做以下操作,但发现不成功:

vi /etc/fstab ,

tmpfs                   /dev/shm                tmpfs   defaults,size=2G        0 0

然后mount -o remount /dev/shm ,但执行这一步报错:mount: /dev/shm not mounted already, or bad option

最好在网上找了一个办法:

mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm

可以将/dev/shm的大小改成1.5G.但发现这个方法,系统一重启后,大小又变成1G.致使创建容器DB出错,最好,查了文档,说RAC建议内存为4G。就将内内存调成4G.重启系统后,发现/dev/shm,自动变成2G。估计是受虚拟机的物理内存影晌的。具体原因就不细究。

善用终端工具SecureCRT的Send commands to all sessions 功能。在作两台机RAC安装的系统环境查看与设置方面,以及安装系统软件包以匹配ORACEL的安装条件,以及创建ORACLE的安装目录和用户组方面很有用。可以避免因输错字符,而造成操作输入出错。

在安装系统软件包以匹配ORACEL的安装条件时,要记得将X686的也要安装上,在LINUX 64环境下,默认只会安装上64位的系统软件包,而漏安装X686的,界时,可能会因为缺少系统软件包的SO文件而报错。

在安装GRID时,GRID 软件的 ORACLE_HOME 不能是 ORACLE_BASE 的子目录,最好在另外建安装目录,并且确认安装目录的属性值是输入:gri:oinstall

在配置GRID和ORACLE用户的环境变量时,要留意:

另外一台数据库实例名须做相应修改:

Oracle:export ORACLE_SID=ora12crac2

grid:export ORACLE_SID=+ASM2

十一、配置NTP.

因为rehl6.5 是最小化安装,默认没有安装ntp,虽然用yum 来额外安装。

可以采用操作系统的NTP服务,也可以使用Oracle自带的服务ctss,如果ntp没有启用,Oracle会自动启用自己的ctssd进程。

从oracle 11gR2 RAC开始使用Cluster Time Synchronization Service(CTSS)同步各节点的时间,当安装程序发现NTP协议处于非活动状态时,安装集群时间同步服务将以活动模式自动进行安装并通过所有节点的时间。如果发现配置了 NTP,则以观察者模式启动集群时间同步服务,Oracle Clusterware 不会在集群中进行活动的时间同步。

十二、上传安装介质,上传GRID,就用GRID用户来上传,上传ORACLE,就用ORACLE用户来上传。上传后,就可以直接用grid用户来解压GRID安装介质,可以用ORACLE用户来解压ORACLE安装介质。

十三、用Xmanager 的Passive模式来安装 ,在./runInstaller时,遇到如下报错,并解决:

[grid@node01 grid]$ ./runInstaller

Starting Oracle Universal Installer…

 

Checking Temp space: must be greater than 415 MB. Actual 22589 MB Passed

Checking swap space: must be greater than 150 MB. Actual 3999 MB Passed

Checking monitor: must be configured to display at least 256 colors

>>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<

 

Some requirement checks failed. You must fulfill these requirements before

 

continuing with the installation,

 

Continue? (y/n) [n] n

 

[grid@node01 grid]$ exit

logout

[root@node01 oracle]# yum install xdpyinfo

 

十四、配置udev绑定的scsi_id

[root@node01 rules.d]# echo “options=–whitelisted –replace-whitespace” > /etc/scsi_id.config

 

[root@node01 mnt]# /sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/sdb

36000c29e37e14751d1b6f2589a939a71

[root@node01 mnt]# /sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/sdc

36000c29f4f8082ebd3eb58077b669537

[root@node01 mnt]# /sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/sdd

36000c2945bc8444684f3d4f5519cfac7

[root@node01 mnt]# cd /etc/udev/rules.d/

[root@node01 rules.d]# ls

60-raw.rules 70-persistent-net.rules

70-persistent-cd.rules

[root@node01 rules.d]# vi 99-oracle-asmdevices.rules

KERNEL==”sdb”, BUS==”scsi”,PROGRAM==”//sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$name”,RESULT==”36000c29e37e14751d1b6f2589a939a71″,NAME=”asm-disk1″,OWNER=”grid”,GROUP=”asmadmiKERNEL==”sdc”, BUS==”scsi”,PROGRAM==”//sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$name”,RESULT==”36000c29f4f8082ebd3eb58077b669537″,NAME=”asm-disk2″,OWNER=”grid”,GROUP=”asmadmiKERNEL==”sdd”, BUS==”scsi”,PROGRAM==”//sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$name”,RESULT==”36000c2945bc8444684f3d4f5519cfac7″,NAME=”asm-disk3″,OWNER=”grid”,GROUP=”asmadmin”,MODE=”0660″

~

<oracle-asmdevices.rules” [New] 3L, 633C written

 

这里需要注意,一个KERNEL就是一行,不能换行的。

 

[root@node01 rules.d]# start_udev

Starting udev: [ OK ]

[root@node01 rules.d]# ls -ltr /dev/asm*

brw-rw—- 1 grid asmadmin 8, 32 Sep 27 01:16 /dev/asm-disk2

brw-rw—- 1 grid asmadmin 8, 48 Sep 27 01:16 /dev/asm-disk3

brw-rw—- 1 grid asmadmin 8, 16 Sep 27 01:16 /dev/asm-disk1

[root@node01 rules.d]# ls -ltr /dev/asm*

brw-rw—- 1 grid asmadmin 8, 32 Sep 27 01:16 /dev/asm-disk2

brw-rw—- 1 grid asmadmin 8, 48 Sep 27 01:16 /dev/asm-disk3

brw-rw—- 1 grid asmadmin 8, 16 Sep 27 01:16 /dev/asm-disk1

 

十五、在安装过程中,是因为/dev/shm的大小不满足,而造成mgmt-db数据库在DBC过程创建失败,虽然调制好/dev/shm大小后,手工执行命令来创建:

dbca -silent -createDatabase -createAsContainerDatabase true -templateName MGMTSeed_Database.dbc -sid -MGMTDB -gdbName _mgmtdb -storageType ASM -diskGroupName OCR -datafileJarLocation /grid/app/grid/12.1.0/assistants/dbca/templates -characterset AL32UTF8 -autoGeneratePasswords -skipUserTemplateCheck -oui_internal

 

要注意,在创建之前,要确保一些目录的用户属组和读写权限,以免影晌MGMTDB的创建。

 

十六、在安装ORACLE时,要注意将./runInstaller出来后的第一个窗口最大化,否则,会令mouse无法正常点击,处于假死状态。无法进行安装。

Centos Linux 下静默安装与配置Oracle 数据库

Linux下centos静默安装oracle

Oracle11gR2静默安装

Oracle11g静默安装—–linux环境

1.操作系统及oracle版本

Linux版本:CentOS release 6.5

Oracle版本:1.ORACLE11G

2.linux.x64_11gR2_database_1of2.zip

下载地址:wget http://v.yingsun.net/cobra/download/linux.x64_11gR2_database_1of2.zi              3.linux.x64_11gR2_database_2of2.zip

下载地址:wget  http://v.yingsun.net/cobra/download/linux.x64_11gR2_database_2of2.zip

2.硬件检测

物理内存不少于1G

硬盘可以空间不少于5G

Sqap分区空间不少于2G

支持256色以上显卡

Cpu主频不少于550mHZ

cat   /etc/issue                          —查看linux系统

Uanme  -r

Grep  MemTotal   /proc/meminfo

Grep  SwapTotal   /proc/meminfo

Grep  “model  name” /proc/cpuinfo

Free

df  -k  /tmp

3.检查安装依赖系统包

操作系统依赖的具体包,请参考官方安装文档。

以下为 Asianux 3, Oracle Linux 5, Red Hat Enterprise Linux 5, CentOS 5 操作系统依赖的包

binutils-2.17.50.0.6

compat-libstdc++-33-3.2.3

compat-libstdc++-33-3.2.3 (32 bit)

elfutils-libelf-0.125

elfutils-libelf-devel-0.125

gcc-4.1.2

gcc-c++-4.1.2

glibc-2.5-24

glibc-2.5-24 (32 bit)

glibc-common-2.5

glibc-devel-2.5

glibc-devel-2.5 (32 bit)

glibc-headers-2.5

ksh-20060214

libaio-0.3.106

libaio-0.3.106 (32 bit)

libaio-devel-0.3.106

libaio-devel-0.3.106 (32 bit)

libgcc-4.1.2

libgcc-4.1.2 (32 bit)

libstdc++-4.1.2

libstdc++-4.1.2 (32 bit)

libstdc++-devel 4.1.2

make-3.81

sysstat-7.0.2

unixODBC-2.2.11 (32-bit) or later

unixODBC-devel-2.2.11 (64-bit) or later

unixODBC-2.2.11 (64-bit) or later

检查依赖包

rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

如果包有显示is not installed(没安装),就用yum install 命令安装,如:

yum install compat-libstdc++-33

4.创建所需的操作系统组和用户

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

设置oracle用户密码

passwd oracle

5.修改内核参数

在/etc/sysctl.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数

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

6.修改用户限制

在/etc/security/limits.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft stack 10240

在/etc/pam.d/login 文件中,使用文本编辑器或vi命令增加或修改以下内容

session required /lib/security/pam_limits.so

session required pam_limits.so

在/etc/profile 文件中,使用文本编辑器或vi命令增加或修改以下内容

if [ $USER = “oracle” ]; then

if [ $SHELL = “/bin/ksh” ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

使设置生效

source /etc/profile

7.创建安装目录(可根据情况,选择比较多空间的目录创建)

mkdir -p /u01/oracle

chown -R oracle:oinstall /u01/oracle

chmod -R 775 /u01/oracle

8.创建/etc/oraInst.loc文件,内容如下

inventory_loc=/u01/oracle/oraInventory

inst_group=oinstall

更改文件的权限

chown oracle:oinstall /etc/oraInst.loc

chmod 664 /etc/oraInst.loc

9.设置oracle环境变量

su – oracle

vi  .bash_profile

在最后加上以下内容

export ORACLE_BASE=/u01/oracle

export ORACLE_SID=orcl

注意,除ORACLE_BASE和ORACLE_SID,( /etc/profile和.bash_profile中)不设置任何oracle相关环境变量(ORACLE_HOME, PATH, LD_LIBRARY_PATH等)。

使设置生效

source  .bash_profile

检查环境变量:

env

10.解压oracle安装文件

unzip linux.x64_11gR2_database_1of2.zip

unzip linux.x64_11gR2_database_2of2.zip

11.复制响应文件模板

mkdir etc

cp /u01/oracle/database/response/*  /home/oracle/etc/

设置响应文件权限

su – root

chmod 700 /home/oracle/etc/*.rsp(注意所有者,oinstall)

12.静默安装Oracle软件

su – oracle

修改安装Oracle软件的响应文件/home/oracle/etc/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY      // 29 安装类型

ORACLE_HOSTNAME=oracle                          // 37 主机名称(hostname查询)

UNIX_GROUP_NAME=oinstall                       // 42 安装组

INVENTORY_LOCATION=/home/oracle/oraInventory            //47 INVENTORY目录(不填就是默认值)  注意:这里inventory目录最好不要填写与oracle安装路径一致的目录,会报错

SELECTED_LANGUAGES=en,zh_CN,zh_TW                         // 78 选择语言

ORACLE_HOME=/u01/oracle/product/11.2.0/dbhome         // 83 oracle_home

ORACLE_BASE=/u01/oracle                                           // 88 oracle_base

oracle.install.db.InstallEdition=EE                               // 99 oracle版本

oracle.install.db.isCustomInstall=false                     //自定义安装,否,使用默认组件

oracle.install.db.DBA_GROUP=dba                        // 143 dba用户组

oracle.install.db.OPER_GROUP=oinstall                // 147 oper用户组

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE        // 160 数据库类型

oracle.install.db.config.starterdb.globalDBName=orcl             // 165 globalDBName

oracle.install.db.config.starterdb.SID=orcl                          // 170 SID

oracle.install.db.config.starterdb.memoryLimit=81920      // 200 自动管理内存的内存(M)

oracle.install.db.config.starterdb.password.ALL=oracle      // 233 设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false        // 376(手动写false)

DECLINE_SECURITY_UPDATES=true                              // 385 设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)

开始静默安装

cd /u01/oracle/database

./runInstaller  -silent  -force  -responseFile /home/oracle/etc/db_install.rsp

这个命令,一直执行失败,失败错误:

参考下面,我是直接加入

-ignorePrereq命令,就可以。

[FATAL] [INS-13013] Target environment do not meet some mandatory requirements

上面的参考文章解决是:安装命令中加入选项-ignorePrereq

三、安装完毕遇到,启动监听失败

一般情况下是 oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

hostname出错,修改为ip 就可以解决
vim   /etc/hosts
172.19.60.193       oracle
服务器ip地址            主机名(hostname查看)

从新修改安装命令:

./runInstaller -ignorePrereq  -silent -force -responseFile /home/oracle/etc/db_install.rsp

报错:[FATAL] [INS-32035] Unable to create a new central inventory at the specified location.

CAUSE: The central inventory location provided is not empty.

ACTION: Please provide another location for the inventory, or clean up the current location.

阅读更多