你兴趣所在的地方,也就是你能力所在的地方。------------卡耐基
环境:
双节点RAC,其中一个节点因为本地盘损坏,导致系统完全损坏,系统需要重新安装
操作系统:OracleLinux 6.5 x86_64
1,重新安装操作系统
2,重新配置服务器环境
配置主机名
vi /etc/hosts
配置网络
vi /etc/sysconfig/network
vi /etc/sysconfig/network-script/ifcfg-eth0和/ifcfg-eth1
修改参数
vi /etc/pam.d/login
vi /etc/security/limits.conf
vi /etc/sysctl.conf
关闭防火墙
service iptables off
chkconfig iptables off
关闭selinux
Selinux=disable
关闭NetWorkerManager
service NetworkerManager stop
chkconfig NetworkerManager off
配置用户信息
groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 asmadmin
groupadd -g 505 asmoper
groupadd -g 506 asmdba
useradd -g oinstall -G dba,asmdba,oper,asmadmin,asmoper oracle
passwd oracle
useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
passwd oracle
配置信任关系(保留节点和已损修复节点间进行)
oracle用户和grid用户都需要执行
a,生产公钥和私钥(两个节点都执行)
su - oracle或者grid
mkdir ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
b,在保留节点上执行以下操作
cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys
ssh rac2 cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys
ssh rac2 cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys
ssh rac1 cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys
ssh rac1 cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys
scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
c,在oracle和grid用户下面分别执行检验操作
ssh rac1 date
ssh rac1-priv date
ssh rac2 date
ssh rac2-priv date
3,备份OCR
root用户下执行:
检测备份
$GRID_HOME/bin/ocrconfig -showbackup
手工备份
# GRID_HOME/bin/ocrconfig -manualbackup
# GRID_HOME/bin/ocrdump /tmp/ocrdump_ocr.bak
4,删除实例
a,如果是正常删除节点,那么在要删除的节点上执行操作
sqlplus / as sysdba
shutdown immediate
如果是节点损坏,则没有必要进行该操作
在保留节点上执行:
alter database disable thread 2;
b,在保留节点上执行instance删除
如果有图形界面支持,则可以运行dbca进行删除
如果没有则采取静默删除
dbca -silent -deleteInstance -nodeList db01 -gdbName newtbdb -instanceName db1 -sysDBAUserName sys -sysDBAPassword oracle
Deleting instance
1% complete
2% complete
6% complete
13% complete
20% complete
26% complete
33% complete
40% complete
46% complete
53% complete
60% complete
66% complete
Completing instance management.
100% complete
Look at the log file "/oracle/app/oracle/cfgtoollogs/dbca/orcl.log" for further details.
c,确认实例删除完成
su - grid
srvctl config -d newtbdb
5,RAC层面删除节点
a,保留节点上执行
srvctl status listener
srvctl disable listener -n db01
srvctl stop listener -n db01
b,移除oracle home
如果是正常删除节点,需要在被删除节点上执行一下操作,如果是损坏则不需要
su - oracle
cd $ORACLE_HOME/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={db01(代表要删除的节点)}" -local
卸载oracle db,删除oracle home
$ORACLE_HOME/deinstall/deinstall -local
保留节点上更新节点列表信息
su - oracle
cd $ORACLE_HOME/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={db02(代表保留节点)}"
6,Grid Infrastructure层面删除节点(删除grid home)
a,确认节点状态是否是Unpinned
su - grid
$olsnodes -s -t
如果是pinned,请设为Unpinned
crsctl unpin css -n db01
b,在被删除节点禁用clusterware的application and daemons
被删除节点上执行
su - root
cd $GRID_HOME/crs/install
#./rootcrs.pl -deconfig -force
c,在保留节点上进行节点删除
su - root
#crsctl delete node -n db01
d,被删除节点更新节点信息
su - grid
cd $GRID_HOME/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=$GRID_HOME "CLUSTER_NODES={zdnewtbdb01}" CRS=TRUE -silent -local
e,被删除节点上卸载GI,删除grid home
su - grid
cd $GRID_HOME/deinstall
./deinstall -local
f,保留节点更新节点信息
su - grid
cd $GRID_HOME/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=$GRID_HOME "CLUSTER_NODES={zdnewtbdb01}" CRS=TRUE -silent
g,在保留节点上确认节点是否删除
su - grid
cluvfy stage -post nodedel -n zdnewtbdb01
节点增加
注意点:删除节点后,如果新增加的节点主机名和删除节点一样,可能会遇到如下错误:
SEVERE:由于无法从命令行或响应文件中获取CLUSTER_NEW_NODES。。。。。。。。。。。。。
该问题是由于可能配置信息未完全清除,不能进行使用,可以换取另外一个nodename
7,确保环境是否一样
a,确保所有节点用户组,用户id一致
id oracle
id grid
b,检查环境(用户grid和oracle下面都执行)
cluvfy stage -pre nodeadd -n db03 -fixup -verbose
cluvfy stage -post hwos -n db03
cluvfy comp peer -refnode db02 -n db03 -orainv oinstall -osdba oinstall-verbose
8,Grid Infrastructure层面添加新节点
a,执行添加节点,拷贝软件信息
su - grid
cd $ORACLE_HOME/oui/bin
export IGNORE_PREADDNODE_CHECKS=Y
./addNode.sh -silent "CLUSTER_NEW_NODES={db03}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={db03-vip}" "CLUSTER_NEW_PRIVATE_NODE_NAMES={db03-priv}"
b,新增加节点上运行提示的脚本
su - root
sh /opt/oracle/app/oraInventory/oraInstRoot.sh
sh $ORACLE_HOME/root.sh
9,RAC层面添加节点
a,保留节点上执行添加节点,拷贝软件信息
su - oracle
cd $ORACLE_HOME/oui/bin
export IGNORE_PREADDNODE_CHECKS=Y
./addNode.sh -silent "CLUSTER_NEW_NODES={db03}"
b,新增加节点上运行提示的脚本
su - root
cd $ORACLE_HOME
sh root.sh
10,新节点添加实例
如果有图形界面支持,则运行dbca进行添加,否则:
su - oracle
dbca -silent -addInstance -nodeList db03 -gdbName newtbdb -instanceName db1 -sysDBAUserName sys -sysDBAPassword 123456
11,检查是否成功
select * from gv$instance;
喜欢的朋友可以扫描以下二维码进行关注,公众号将每天更新文章: