Linux 环境 Oracle 11g RAC 安装指南
目录
一、 安装前操作系统要求
1.1内存检查
1.2 Swap空间
1.3确认LINUX是64-Bit
1.4操作系统版本查看
1.5操作系统内核查看
1.6tmp空间
1.7磁盘空间需求
1.8安装软件包检查
1.9 创建用户和用户组
1.9.1 确认用户nobody存在
1.10 参数设置
1.10.1设置核心参数
1.10.2设置Shell Limits(系统资源限制)
1.11 设置用户环境变量
1.11.1设置grid用户环境变量
1.11.2设置oracle用户环境变量
1.12创建软件目录
1.13修改/etc/hosts文件
1.14关闭不必要的服务
1.14.1关闭防火墙
1.14.2关闭SELINUX
1.15配置裸设备
二、 安装集群软件
2.1 上传介质
2.2 开始安装
2.3 配置下载软件更新
2.4 选择软件类型
2.5 选择安装选项
2.6 选择产品语言
2.7 设置集群名称和SCAN名称
2.8 配置集群节点信息
2.9 配置SSH信任
2.10 配置网络接口使用情况
2.11指定OCR 和VotingDisk 存储介质
2.12 创建ASM磁盘组
2.13指定ASM密码
2.14指定ASM 实例操作系统组
2.15指定安装目录
2.16建立产品清单目录
2.17执行安装前检查
2.18安装前汇总
2.19开始安装
2.20执行配置脚本
2.21安装完成
三、 安装数据库软件
3.1 开始安装
3.2 配置安全更新
3.3 配置下载软件更新
3.4 选择软件类型
3.5选择安装选项
3.6 选择产品语言
3.7 选择数据库版本组件
3.8 指定安装目录
3.9设置系统组
3.10 执行安装前检查
3.11 安装前汇总
3.12 开始安装
3.13 执行配置脚本
3.14 安装完成
四、 创建数据库
4.1 创建磁盘组信息
4.2 运行dbca
4.3 选择执行操作选项
4.4 选择数据库模板
4.5 定义全局数据库名称和实例名
4.6 定义管理选项
4.7 设置数据库管理用户密码
4.8 指定数据库文件存储类型
4.9 选择恢复配置选项
4.10 选择数据库组件
4.11 配置数据库安装参数
4.12数据文件定义
4.13 选择数据库建立选项
4.14 数据库配置汇总查看
4.15 数据库开始创建
4.16 完成数据库的创建
五、安装完成后的配置
5.1 参数修改
5.2 关闭OCM功能
5.3 关闭数据文件自动扩展
5.4关闭集群自动启动功能
5.5 创建集群启停脚本
5.5.1 停集群脚本
5.5.2 起集群脚本
5.6 部署RMAN备份脚本
5.7 开启归档
5.7.1 创建目录
5.7.2 打开归档
六、 补丁更新
七、 卸载
7.1 卸载数据库
7.1.1 选择执行操作选项
7.1.2 选择要删除的数据库名称
7.1.3 确认删除
7.1.4 开始删除
7.1.5 完成删除
7.2 卸载软件
7.2.1卸载集群软件
7.2.2卸载数据库软件
八、日常查看命令
7.1查看数据库基本信息
7.2查看字符集
7.3查看用户信息
7.4查看表空间
7.5查看无效对象
一、安装前操作系统要求
1.1 内存检查
至少4G的物理内存
# grepMemTotal /proc/meminfo
MemTotal: 16336396 kB
1.2 Swap空间
# grepSwapTotal /proc/meminfo
SwapTotal: 8241144 kB
若交换空间不足,用以下方法增加:
假如分区空间要增加,可以增加新硬盘来加入VG内使其增加
先加上硬盘,用fdisk –l,可以看到新硬盘。
给新加的硬盘分区: fdisk /dev/sde
>n
>p
>1
>t
>8e(linux LVM)
>w
分成一个分区,格式为linux LVM.
下面开始把分区加到LVM内去:
1.建立物理卷
#pvcreate/dev/sde1
2.把新物理卷加入到卷组中去
#vgextendVolGroup /dev/sde1
3.关闭swap分区
#swapoff/dev/VolGroup/lv_swap
4.扩展 /dev/VolGroup/lv_swap,增加8336M
# lvextend -L+8336M /dev/VolGroup/lv_swap
Extending logical volume lv_swap to 16.28 GiB
Logical volume lv_swap successfully resized
5.将 /dev/VolGroup/lv_swap 设置为swap分区
# mkswap/dev/VolGroup/lv_swap
mkswap: /dev/VolGroup/lv_swap: warning:don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size =17072124 KiB
no label,UUID=f5fa0e85-da9e-440c-8f1c-e3ab978c9d6b
6.启动swap分区
# swapon/dev/VolGroup/lv_swap
7.查看结果
# free -m
total used free shared buffers cached
Mem: 16081 14695 1386 0 83 13680
-/+ buffers/cache: 931 15150
Swap: 16671 0 16671
1.3 确认LINUX是64-Bit
# uname -m
x86_64
1.4 操作系统版本查看
# cat/etc/redhat-release
Red Hat Enterprise Linux Server release 6.4(Santiago)
至少或高于
Red Hat Enterprise Linux 4 Update 7
Red Hat Enterprise Linux 5 Update 2
Red Hat Enterprise Linux 5 Update 5 (only if using Red Hat compatiblekernel)
1.5 操作系统内核查看
# uname -a
Linux localhost.localdomain2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64GNU/Linux
或
# uname -r
2.6.32-358.el6.x86_64
至少或高于
1.6 tmp空间
至少1G可用空间
#df –h /tmp
1.7 磁盘空间需求
磁盘空间按照数据库安装规范为50G。
# df –ah
1.8 安装软件包检查
检查下列包是否安装,若未安装则要先安装:
检查命令
# rpm -qa | greppackage_name
安装缺少的包
# yum –y install package_name
1.9 创建用户和用户组
Oracle11g 需要以下用户和组
The Oracle Inventory group (dba)
The OSDBA group (dba)
The Oracle ASM Database Administrator group (dba)
The Oracle software owner (oracle)
Oracle Grid Infrastructure User (grid)
命令行执行:
#/usr/sbin/groupadd-g 300 dba
#/usr/sbin/useradd-u 300 -g dba oracle
#/usr/sbin/useradd-u 301 -g dba grid
# id oracle
uid=300(oracle) gid=300(dba)groups=300(dba)
# id grid
uid=301(grid) gid=300(dba)groups=300(dba)
# passwd oracle
# passwdgrid
1.9.1 确认用户nobody存在
# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
1.10 参数设置
1.10.1 设置核心参数
在/etc/sysctl.conf文件中加入下列行:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912 (以字节为单位,物理内存数量*1024*1024*2,为内存的2倍)
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 = 1048586
运行下列命令改变核心参数
# /sbin/sysctl –p
注:kernel.shmmax,kernel.shmall两个参数,一般默认较大,取两者较大值。
1.10.2 设置Shell Limits(系统资源限制)
在/etc/security/limits.conf文件中加入下列行:
1.11设置用户环境变量
1.11.1 设置grid用户环境变量
# su - grid--su到grid用户下,
更改用户的一些配置
$vi .bash_profile
添加以下参数
注:
保存退出
--执行以下命令让配置马上生效或以grid用户登录使设置生效
$ source$HOME/.bash_profile
1.11.2 设置oracle用户环境变量
# su - oracle --su到oracle用户下,
更改用户的一些配置
$vi .bash_profile
添加以下参数,主要是配置oracle软件运环境参数
注:
11g:ORA_NLS33=$ORACLE_HOME/nls/admin/data
10g:ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
9i:ORA_NLS33=/oracle/app/ora92/ocommon/nls/admin/data
保存退出
--执行以下命令让配置马上生效或以oracle用户登录使设置生效
$ source$HOME/.bash_profile
1.12 创建软件目录
Oracle Base Directory :/oracle/db
Grid Base Directory:/oracle/grid,
Grid Home Directory:/oracle/asm
/oracle目录大小要求不低于50G
1.13 修改/etc/hosts文件
1.14 关闭不必要的服务
1.14.1 关闭防火墙
#serviceiptablesstop
1.14.2 关闭SELINUX
修改/etc/sysconfig/selinux或/etc/selinux/config文件:
SELINUX=disable
或
#sed -i's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#cat/etc/selinux/config
注:/etc/sysconfig/selinux、/etc/selinux/config是同一个文件,修改任一个即可。
1.15 配置裸设备
查看磁盘信息
#fdisk–l
编辑/etc/udev/rules.d/60-raw.rules文件,添加以下内容:
运行以下命令使裸设备可用
#start_udev
二、 安装集群软件
2.1 上传介质
建立软件存放目录
#mkdir -p /pkg/oracle/11g
ftp上传到指定目录并赋权
#chmod –R 777/pkg/oracle/11g
用grid用户解压
$unzip p13390677_112040_Linux-x86-64_3of7.zip
用oracle用户解压
$unzipp13390677_112040_Linux-x86-64_1of7.zip
$unzipp13390677_112040_Linux-x86-64_2of7.zip
或
$jar -xvf p13390677_112040_Linux-x86-64_1of7.zip
$jar -xvf p13390677_112040_Linux-x86-64_2of7.zip
2.2 开始安装
注意以下命名规则:
cluster name: hostname-cluster
scan name:hostname-scan
磁盘组名字为:ASMCRS
磁盘冗余类型选择:外部冗余
进入到相应目录,以grid用户运行runInstaller
$ ./runInstaller
2.3 配置下载软件更新
--跳过软件更新
2.4 选择软件类型
--在安装设置界面选择第一项(默认):Install and ConfigureGrid Infrastructure for a Cluster,点击“Next”
2.5 选择安装选项
--在“安装类型界面”选择“高级安装”:Advanced Installation,点击“Next”
2.6 选择产品语言
--在“语言界面”添加“简体中文”:Simplified Chinese,点击“Next”
2.7 设置集群名称和SCAN名称
--在“定义集群界面”按照“安装规范”中的3小项指定 “集群名称”,点击“Next”
2.8 配置集群节点信息
--在“集群节点信息”窗口添加节点2的信息,格式按照节点1的信息添加,HOSTNAME和Virtual IP Name是在/etc/hosts文件中已经定义好的
完成添加以后点击“OK”按钮返回“集群节点信息”窗口
--在“集群节点信息”窗口中点击“SSH Connectivity”按钮输入grid密码“grid”
2.9 配置SSH信任
--点击“setup”安装SSH认证
--点击“Test”检查SSH认证是否正常,点击“Next”
2.10 配置网络接口使用情况
--在“网络接口使用配置”界面指定网络接口的使用情况
私有网址选择“私有”
公共网址选择“Public”
管理网址选择“Do Not Use”
完成后点击 “Next”按钮
2.11 指定OCR 和VotingDisk 存储介质
--在”存储设置界面”选择第一项:Oracle Automatic Management(OracleASM),点击“Next”
2.12 创建ASM磁盘组
--在“创建ASM 磁盘组”界面选择“ocr”和“voting”文件的存放位置,点击“Next”
2.13 指定ASM密码
--在“ASM 密码”界面输入ASM密码“oracle”,出现”红色提示”不用管,点击“Next”
2.14 指定ASM 实例操作系统组
--在“系统组设置”界面所有的工作组均选择“dba”用户组
当出现该告警提示时选择“Yes”忽略掉该提示信息
2.15 指定安装目录
--在“安装位置”界面不需要指定路径,默认是读取/home/grid/.profile文件中的路径设置,点击“Next”
2.16 建立产品清单目录
2.17 执行安装前检查
--“需求检查”界面检查安装grid软件时的要求是是否都已经满足
出现上述提示可忽略‘Ignore All’,点击“Next”
2.18 安装前汇总
--“安装预览界面”核对配置的基本信息是否都正确,点击“Next”
2.19 开始安装
2.20 执行配置脚本
--切换到“root”用户执行弹出窗口中的两个sh脚本
root 用户:
在node1 上执行:/oracle/oraInventory/orainstRoot.sh
在node2 上执行:/oracle/oraInventory/orainstRoot.sh;
在node1 上执行: /oracle/asm/root.sh
在node2上执行: /oracle/asm/root.sh
节点1
节点2
节点1
节点2
2.21 安装完成
三、 安装数据库软件
3.1 开始安装
进入到相应目录,以oracle用户运行runInstaller
$ ./runInstaller
3.2 配置安全更新
--去掉技术支持选择
不接收软件更新,点击下一步
3.3 配置下载软件更新
--跳过软件更新
3.4 选择软件类型
3.5选择安装选项
--在“Grid Installation Options”界面选择“Oracle Real Application Clusters database installation”选项
--点击“SSH Connectivity”按钮,输入在OS Password文本框数据密码“oracle”
--点击“setup”安装SSH认证
点击“Test”测试SSH是否正常,如果正常点击“Next”
3.6 选择产品语言
--语言支持选择英语和简体中文
3.7 选择数据库版本组件
--选择企业版
3.8 指定安装目录
--和环境变量里设置的目录保持一致
3.9设置系统组
--在“Operating System Groups”界面中,全部选择dba工作组
3.10 执行安装前检查
--检测系统补丁及各项参数
pdksh包不是官方文档要求的包,可以忽略。
点击yes,下一步
3.11 安装前汇总
3.12 开始安装
3.13 执行配置脚本
--再开一窗口,以root用户运行以下脚本
节点1:
节点2:
3.14 安装完成
四、 创建数据库
4.1 创建磁盘组信息
--在“终端命令”窗口下切换到“grid”用户,输入“asmca”命令打开“ASM Configure Assistant:Configure ASM:DiskGroup”选择“Disk Groups”选项,点击“Create”按钮创建ASM磁盘组,磁盘组名为ASMVG1,完成后关闭该窗口
4.2 运行dbca
--以oracle用户运行dbca
4.3 选择执行操作选项
--选择建立一个数据库
4.4 选择数据库模板
--自定义数据库
4.5 定义全局数据库名称和实例名
--输入数据库名和实例名
4.6 定义管理选项
--不安装EM组件,如果有需要可以以后建立
4.7 设置数据库管理用户密码
--密码一致
点击yes,下一步
4.8 指定数据库文件存储类型
--选择 file system方式
4.9 选择恢复配置选项
--不开启flash功能,如有需要可以以后更改
4.10 选择数据库组件
--以下默认应用组件没有特殊要求不安装
4.11 配置数据库安装参数
--以下所有参数配置参考《生产环境ORACLE数据库安装配置操作规程》(下图以物理内存16G为例)
--块大小和进程数参考,块大小为8192,进程数一般为1500
--生产数据库字符集须依据应用系统特性来定义,推荐的数据库字符集为ZHS16GBK。国家语言字符集为AL16UTF16。
4.12数据文件定义
--在数据文件定义界面可以修改DataFile、RedoLog、Controlfile的大小和路径,按照数据库安装规范定义修改,点击“Next”
4.13 选择数据库建立选项
--点击“Finish”
4.14 数据库配置汇总查看
--点击OK开始创建数据库
4.15 数据库开始创建
4.16 完成数据库的创建
五、安装完成后的配置
5.1 参数修改
修改空表EXP导致bug参数
SQL>alter system set deferred_segment_creation =FALSE;
修改用户限制参数
SQL>alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;
SQL>alter profile default limit FAILED_LOGIN_ATTEMPTSUNLIMITED;
SQL>alter profile default limit PASSWORD_LOCK_TIME UNLIMITED;
SQL>alter profile default limitPASSWORD_GRACE_TIME UNLIMITED;
关闭审计功能
SQL>alter system set audit_trail=none scope=spfile;
修改游标参数
SQL>alter system set open_cursors=1500 scope=both;
修改进程参数
SQL>alter system set processes=1500 scope=spfile;
调大数据文件个数参数
SQL>alter system set db_files=600 scope=spfile;
5.2 关闭OCM功能
SQL>execdbms_scheduler.disable('ORACLE_OCM.MGMT_CONFIG_JOB');
SQL>execdbms_scheduler.disable('ORACLE_OCM.MGMT_STATS_CONFIG_JOB');
5.3 关闭数据文件自动扩展
SQL>declare
v_dfvarchar2(400);
v_tfvarchar2(400);
cursor c1 isselect name from v\$datafile;
cursor c2 isselect name from v\$tempfile;
begin
open c1;
loop
fetch c1 intov_df;
if c1%found then
execute immediate'alter database datafile '''||v_df|| ''' autoextend off';
else
exit;
end if;
end loop;
close c1;
open c2;
loop
fetch c2 intov_tf;
if c2%found then
executeimmediate 'alter database tempfile '''||v_tf|| ''' autoextend off';
else
exit;
end if;
end loop;
close c2;
end;
/
5.4关闭集群自动启动功能
两个节点分别root用户运行
#/oracle/asm/bin/crsctl disable crs
5.5 创建集群启停脚本
创建存放目录
#cd /
#mkdir /hacmp
#cd /hacmp
5.5.1 停集群脚本
变量$ORACLE_SID根据各数据库而定
#more $ORACLE_SIDstopdb.sh
su - oracle -c"srvctl stop instance -d orcl -i orcl1"
su - root -c"/oracle/asm/bin/crsctl stop crs"
5.5.2 起集群脚本
#more $ORACLE_SIDstartdb.sh
su - root -c"/oracle/asm/bin/crsctl start crs"
sleep 120
su - oracle -c"srvctl start instance -d orcl -i orcl2"
5.6 部署RMAN备份脚本
在2个节点分别创建备份目录
#/usr/sbin/mklv -y'lv_rmanbak ' -t'jfs2' -a'c' datavg 100
#/usr/sbin/crfs -v jfs2 -d 'lv_rmanbak' -m '/rmanbak' -Ayes -p rw
#mount /rmanbak
#chown -R oracle.dba /rmanbak
只在一个节点部署,脚本存放位置及命名
$/home/oracle/scripts/rman_full_db.sh
脚本内容
crontab 内容
10 2 * * */home/oracle/scripts/rman_full_db.sh >>/home/oracle/scripts/rman_full_db.log 2>&1
脚本权限
#chmod u+x rmanbak.sh
5.7 开启归档
5.7.1 创建目录
大小根据业务或者生产环境而定,新环境默认不小于20G
#mkdir /archivelog
#chown -R oracle.dba /archivelog
5.7.2 打开归档
SQL>alter system setlog_archive_dest_1='location=/archivelog';
SQL>shutdown immediate;
SQL>startup mount
SQL>alter database archivelog;
SQL>alter database open;
六、 补丁更新
根据《数据库安全规范》更新最新的opatch
除非造成比较严重的bug,一般情况下直接更新PSU补丁。
根据《数据库安全规范》更新最新的PSU补丁
其他建议补丁:
根据在测试,生产环境遇到的类似问题补丁,在同版本的数据库下一起更新。
11.2.0.1版本需要打
七、 卸载
7.1 卸载数据库
Oracle用户运行dbca
7.1.1 选择执行操作选项
7.1.2 选择要删除的数据库名称
7.1.3 确认删除
7.1.4 开始删除
7.1.5 完成删除
7.2 卸载软件
7.2.1卸载集群软件
7.2.1.1 手工卸载
a、以root用户在所有的节点上,除了最后一个节点执行
#$GRID_HOME/crs/install/rootcrs.pl-verbose -deconfig -force
b、以root用户在最后一个节点执行
#$GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig -force-lastnode
c、用grid用户在任意节点执行
#$GRID_HOME/deinstall/deinstall,在执行过程中,还需要根据提示运行两个在/TMP目录下的脚本。
d、root用户执行下列脚本删除grid相关配置文件
#rm -rf/var/tmp/.oracle
#rm -rf/usr/tmp/.oracle
#rm -rf/tmp/.oracle
#rm -rf/etc/ora*
#rm -rf/var/tmp/.oracle
#rm/etc/init.cssd
#rm/etc/init.crs
#rm/etc/init.crsd
#rm/etc/init.evmd
#rm/etc/rc.d/rc2.d/K96init.crs
#rm/etc/rc.d/rc2.d/S96init.crs
#rm -rf/etc/oracle/scls_scr
#rm -rf/etc/oracle/oprocd
#rm/etc/inittab.crs
#cp/etc/inittab.orig /etc/inittab
#rm-rf/opt/ORCL*
最后删除grid软件所在目录
#rm -rf/oracle/*
e、清空ocr 和votedisk磁盘
# ddif=/dev/zero of=/dev/rhdisk2 bs=1024 count=2560
# ddif=/dev/zero of=/dev/rhdisk3 bs=1024 count=2560
7.2.1.2使用deinstall工具卸载
Oracle 11g之后提供了卸载grid和database的脚本,可以卸载的比较干净,不需要手动删除crs等。
a、从oracle官方网站上下载的deinstall工具
11GR2有7个下载包,deinstall放在第7个下载包,如11.2.0.2的下载包为p10098816_112020_AIX64-5L_7of7.zip
b、解压到本地目录,并执行deinstall
需要输入$ORACLE_HOME
bash-3.00$./deinstall -home/oracle/grid/product/11.2.0/grid
Location of logs/ora11g/server_install/deinstall/./logs/
############ORACLE DEINSTALL & DECONFIG TOOL START ############
c、这里为RAC双节点的grid,选择3后按回车开始卸载流程
--后面根据自己情况进行选择,输入LISTENER的地方可以直接回车
--注卸载选项说明 1 为卸载单实例数据库,2 卸载rac数据库 ,3 卸载集群grid ,4 卸载单节点grid ,5卸载oracle客户端 ,6 卸载oracle网关
--显示执行成功,用root用户手工删除各节点/etc/oraInst.loc' 内容
7.2.2卸载数据库软件
通过操作系统命令删除相关目录即可
#rm –rf /etc/ora*
#rm –rf /usr/local/bin/coraenv
#rm –rf /usr/local/bin/dbhome
#rm –rf /usr/local/bin/oraenv
#rm –rf /oracle/
八、日常查看命令
8.1查看数据库基本信息
8.2查看字符集
SQL>select name,value$ from props$ where namein('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
8.3查看用户信息
用户基本信息
用户权限信息
8.4查看表空间
8.5查看无效对象
SQL>select'invalidobt',owner,object_name,object_type from dba_objects wherestatus='INVALID' and owner in (select username from dba_users where ACCOUNT_STATUS='OPEN') ;
由社区会员岳彩波分享,点击阅读原文可下载原文档
长按二维码关注公众号AIX专家俱乐部