前提环境(ip,内核参数,环境变量,存储等等。。。)已准备好。
(一) 安装grid
1. Grid用户登录上传并解压
上传linuxx64_12201_grid_home.zip至/u01/app/product/12.2/crs
解压压缩包
$unzip linuxx64_12201_grid_home.zip
以root用户登录
安装cvuqdisk
# cd /u01/app/product/12.2/crs/cv/rpm/
# rpm -ivh cvuqdisk-1.0.10-1.rpm (所有节点都要安装)
第二台服务器安装cvuqdisk
将第一台服务器解压出来的cvuqdisk-1.0.10-1.rpm传至第二台服务器的grid根目录下
# rpm -ivh cvuqdisk-1.0.10-1.rpm
2. 配置互信
qgzf1:
以root登录
#cd /u01/app/product/12.2/crs/deinstall
# sh sshUserSetup.sh -user grid -hosts "qgzf1 qgzf2" -advanced -exverify -confirm -noPromptPassphrase
根据提示输入4次密码 grid
切换grid用户执行以下命令(两台服务器都需要执行)
# ssh-agent bash --login -i
# ssh-add ~/.ssh/id_rsa
ntzf1
以root登录
#cd /u01/app/product/12.2/crs/deinstall
# sh sshUserSetup.sh -user grid -hosts "ntzf1 ntzf2" -advanced -exverify -confirm -noPromptPassphrase
根据提示输入4次密码 grid
切换grid用户执行以下命令(两台服务器都需要执行)
# ssh-agent bash --login -i
# ssh-add ~/.ssh/id_rsa
3. 开始安装grid
打开终端
#export LANG=en不输入此命令,则为中文界面
#cd $ORACLE_HOME
# ./gridSetup.sh
如图所示,下一步
下一步
输入scan-name,下一步
根据实际进行修改:scan name和SCAN port
单击add,根据实际填写
public hostname输入qgzf2
virtual hostname输入qgzf2-vip
单击2
ssh 连接 输入 grid口令,点击测试
单击3
测试通过,单击4下一步
单击下一步
单击下一步
选择YES,单击下一步
如图diskgroup name输入ocr,选择外部,单击change discovery path选择多路径磁盘组路径 /dev/mapper/* 找到磁盘 下一步 (根据实际路径选择)
如图diskgroup name输入MGMT,选择normal,单击change discovery path选择多路径磁盘组路径 /dev/mapper/* 找到磁盘 下一步
选择如图所示,密码输入
单击下一步
单击下一步
如果上述列表有swap空间大小错误则执行以下命令(大小需按实际情况确定)
如:创建8个G的内存空间
Root用户执行
#dd if=/dev/zero of=/root/swapfile bs=1G count=8 //(8G)
#mkswap /root/swapfile
#swapon /root/swapfile
如果有失败可以选fixable为yes的可以单击Fix & Check Again
根据提示执行sh脚本即可
如果ping scan IP能ping通可以忽略
确定后点击跳过 下一步
4. 创建磁盘组
Grid用户登录
#asmca
右键选中未启动的实例启动
点击创建 输入磁盘名data,全选磁盘,确定
查看状态(grid用户)
#crsctl stat res -t
(二) 安装oracle
以oracle用户登录 上传安装包linuxx64_12201_database到/u01/app/oracle目录下解压
$unzip linuxx64_12201_database.zip
1. oracle配置互信
以root登录
#cd /u01/app/oracle/database/sshsetup
# sh sshUserSetup.sh -user oracle -hosts "ntzf1 ntzf2" -advanced -exverify -confirm -noPromptPassphrase
根据提示输入4次密码 oracle
切换oracle用户执行以下命令(两台服务器都需要执行)
$ ssh-agent bash --login -i
$ssh-add ~/.ssh/id_rsa
oracle用户输入:
vncserver :3
登录vncserver
2. 安装oracle基础软件
oracle用户:
$cd /u01/app/oracle/database/
$./runInstaller
如图提示下列失败点可忽略
#sh /u01/app/oracle/product/12.2/db/root.sh
3. 创建数据库实例
# dbca
归档,闪回后续开启
如上图asm完整性检查失败则跳转到 创建磁盘组
查看是否有实例未启动,手动启动后重新检查
4. 创建表空间,及目录
Grid用户
#asmcmd
#ls (查看磁盘组)
#cd +DATA (进入,data)
#ls (查看文件夹)
#mkdir tablespace (创建表空间目录)
#ls (确认)
#quit (退出)
(三) 打补丁
1. 补丁安装(漏扫打补丁)
l 每一个节点都要执行
l 更新OPatch
l # cd /u01/app/product/12.2/crs/
l # mv OPatch OPatch_old //备份OPatch
l 上传p6880880_122010_Linux-x86-64.zip包至/u01/app/product/12.2/crs/目录解压
l # unzip p6880880_122010_Linux-x86-64.zip
l # chown grid:oinstall OPatch -R //修改为grid权限
l
l # cd /u01/app/oracle/product/12.2/db/
l # mv OPatch OPatch_old
l # cp /u01/app/product/12.2/crs/OPatch /u01/app/oracle/product/12.2/db/ -frp
l # chown oracle:oinstall OPatch -R
l Root用户登录
以下步骤rac1和rac2都要操作
将补丁包p27010711_122010_Linux-x86-64.zip上传至/tmp目录下解压
#unzip p27010711_122010_Linux-x86-64.zip
第一步打GI(27100009补丁包)补丁(grid)和 (oracle)
#chown grid:oinstall 27010711 -R (修改grid权限)
#srvctl status listener (oralce用户关闭监听)单节点执行
#srvctl stop listener
#srvctl stop database -d orcl(oracle用户)关闭数据库
#srvctl status database -d orcl -f -v
查看数据库实例,如有开启则sqlplus进去关闭
#关闭crs (root)(双节点执行)
#cd /u01/app/product/12.2/crs/bin
#./crsctl stop crs
#/u01/app/product/12.2/crs/crs/install/rootcrs.sh -prepatch -nonrolling
#su – grid 切换grid用户
#/u01/app/product/12.2/crs/OPatch/opatch apply -oh /u01/app/product/12.2/crs/ -local /tmp/27010711/27100009/26839277 (输入y)
#依次打/tmp/27010711/27100009/目录下的补丁
#/u01/app/product/12.2/crs/OPatch/opatch apply -oh /u01/app/product/12.2/crs/ -local /tmp/27010711/27100009/27105253
#/u01/app/product/12.2/crs/OPatch/opatch apply -oh /u01/app/product/12.2/crs/ -local /tmp/27010711/27100009/27128906
#/u01/app/product/12.2/crs/OPatch/opatch apply -oh /u01/app/product/12.2/crs/ -local /tmp/27010711/27100009/27144050
#/u01/app/product/12.2/crs/OPatch/opatch apply -oh /u01/app/product/12.2/crs/ -local /tmp/27010711/27100009/27335416
#su – oracle 切换oracle用户
#/u01/app/oracle/product/12.2/db/OPatch/opatch apply -oh /u01/app/oracle/product/12.2/db/ -local /tmp/27010711/27100009/27335416/
#/u01/app/oracle/product/12.2/db/OPatch/opatch apply -oh /u01/app/oracle/product/12.2/db/ -local /tmp/27010711/27100009/27105253/
第二步打OJVM补丁包(27001739补丁包)(oracle)
#/u01/app/oracle/product/12.2/db/OPatch/opatch apply -oh /u01/app/oracle/product/12.2/db/ -local /tmp/27010711/27001739/
#如上双节点都执行完之后双节点执行如下
#/u01/app/product/12.2/crs/crs/install/rootcrs.sh -postpatch -nonrolling(root用户,如果报错则重复执行一次)
以下只在一个节点操作
# ./crsctl start cluster -all 启动集群服务
#sqlplus /as sysdba
#startup
#alter system set cluster_database=false scope=spfile
#quit
#$ORACLE_HOME/bin/srvctl stop database -d orcl
#sqlplus /as sysdba
#startup upgrade
#quit
#cd /u01/app/oracle/product/12.2/db/OPatch
#./datapatch -verbose
#sqlplus / as sysdba
#shutdown
#startup
#quit
#sqlplus / as sysdba
#alter system set cluster_database=true scope=spfile
# shutdown
#quit
#$ORACLE_HOME/bin/srvctl start database -d orcl
查询是否有实效对象
#sqlplus / as sysdba
#select count(*) from dba_objects where status <> 'VALID';
如果不为0则执行
完成之后再查询是否为0
(五) 常用命令
Grid or oracle用户
#srvctl stop database -d orcl 停止数据库实例
#srvctl status database -d orcl -f -v 查看数据库实例
#srvctl start database -d orcl 启动数据库实例
#srvctl status asm -a 查看asm状态
#crsctl stat res -t grid,查看集群状态AA
Root用户
#cd /u01/app/product/12.2/crs/bin
#./crsctl stop cluster -all 停止集群服务
#./crsctl start cluster -all 启动集群服务
查看已打补丁
/u01/app/oracle/product/12.2/db/OPatch/opatch lsinv