ITPUB论坛-中国最专业的IT技术社区

 
 注册
热搜:
查看: 250|回复: 0

[原创] Oracle集群删除节点和克隆节点

[复制链接]
论坛徽章:
9
娜美
日期:2017-06-26 15:18:15目光如炬
日期:2017-08-20 22:00:00目光如炬
日期:2017-08-27 22:00:01火眼金睛
日期:2017-09-01 17:00:07目光如炬
日期:2017-09-03 22:00:01火眼金睛
日期:2017-09-30 22:00:01目光如炬
日期:2017-11-26 22:00:00目光如炬
日期:2017-12-17 22:00:00目光如炬
日期:2018-01-14 22:00:00
跳转到指定楼层
1#
发表于 2018-1-11 16:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前就职海天起点,服务于电力行业,致力于帮助客户解决生产过程中出现的问题,提高生产效率, 爱好书法,周易!愿结交志同道合之士!共同进步! 微信号:sunyunyi_sun


目的:
该文章主要演示在11.2.0.4环境下删除集群中一个节点和添加一个节点的操作过程。
我的环境为策略管理的数据库,集群两个节点为pmsup1,pmsup2分配给upgrade_pool
serverpool,这里首先删除pmsup1节点,然后使用clone再次将pmsup1节点加入集群中。

步骤:

首先删除pmsup1节点:
Deleting oracle rac from a cluster node

1:deleting instance from oracle rac databases

  a: policy-managed databases   
     emca -deleteNode db -error
     srvctl stop instance -d pmssn -i pmssn_1
     srvctl modify serverpool -g upgrade_pool -l 1 -u 2 -i 2 -n "pmsup1,pmsup2" -f
     srvctl relocate server -n pmsup1 -g Free

  b: Administrator-Managed databases
     dbca -silent -deleteInstance -nodeList pmsup1 -gdbName pmssn -instanceName pmssn_1
     -sysDBAUserName sysdba -sysDBAPassword "Oraclesys"

2: remove oracle rac

  srvctl disable listener -l LISTENER -n pmsup1
  srvctl stop listener -l LISTENER -n pmsup1
  delete node:
  $ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/db_1
   "CLUSTER_NODES={pmsup1}" -local
  $ORACLE_HOME/deinstall/deinstall -local
  remaming node:
  $ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/db_1
   "CLUSTER_NODES={pmsup2}"

3: Deleting a cluster node

   export LANG=C
   olsnodes -s -t
   if pin then: #crsctl unpin css -n node_to_be_deleted
   stop em
   $/u01/app/11.2.0.4/grid/crs/install/rootcrs.pl -deconfig -force
   $/u01/app/11.2.0.4/grid/deinstall/deinstall -local
   note:deinstall -local 命令竟然提示deconfig二号节点,所以执行该命令需要特别注意。

上面的步骤是ORACLE官方的脚本不太好用。

最好使用下面脚本:
rm -rf /etc/oracle/scls_scr
rm -rf /etc/oracle/
rm -f /etc/init.d/init.cssd
rm -f /etc/init.d/init.crs
rm -f /etc/init.d/init.crsd
rm -f /etc/init.d/init.evmd
rm -f /etc/rc2.d/K96init.crs
rm -f /etc/rc2.d/S96init.crs
rm -f /etc/rc3.d/K96init.crs
rm -f /etc/rc3.d/S96init.crs
rm -f /etc/rc5.d/K96init.crs
rm -f /etc/rc5.d/S96init.crs
rm -f /etc/inittab.crs
rm -f /etc/ohasd
rm -f /etc/oraInst.loc
rm -f /etc/oratab
rm -rf /tmp/.oracle
rm -rf /tmp/ora*
rm -rf /var/tmp/.oracle
rm -rf /tmp/CVU*
rm -rf /tmp/Ora*
rm -rf /home/grid/.oracle
rm -rf /u01/*
mv /etc/init.d/init.ohasd /etc/init.d/init.ohasd.bak
需要清理磁盘则:我这里不需要
dd if=/dev/zero of=/dev/mapper/mpath1p1 bs=1M count=256



下面添加pmsup1节点:

首先添加RAC,也就是database:

确保操作系统参数设置正确,grid,oracle用户环境变量设置正确,目录建立正确。

oracle user:
$ORACLE_HOME/oui/bin/addNode.sh -silent "CLUSTER_NEW_NODES={pmsup1}"
仔细阅读输出信息,执行下面命令
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0.4/db_1/root.sh

添加grid:
$cluvfy stage -pre nodeadd -n pmsup1 -fixup fixupdir /tmp -verbose
$ORACLE_HOME/oui/bin/addNode.sh -silent "CLUSTER_NEW_NODES={pmsup1}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={pmsup1-vip}"
我这里提示pmsup1已经是集群中的成员,但是软件目录并没有copy成功,提示如下:
SEVERE:The new nodes 'pmsup1' are already part of the cluster


采用clone:

pmsup2节点:
srvctl stop database -d pmssn
crsctl stop has -f
as root user:
cp -prf /u01/app/11.2.0.4/grid /u02

delete unnecessary files:

cd /u02/grid
rm -rf log/pmsup2
rm -rf gpnp/pmsup2
find gpnp -type f -exec rm -f {} \;
find cfgtoollogs -type f -exec rm -f {} \;
rm -rf crs/init/*
rm -rf cdata/*
rm -rf crf/*
rm -rf netwoork/admin/*.ora
find . -name '*.ouibak' -exec rm {} \;
find . -name '*.ouibak.l' -exec rm {} \;
rm -rf root.sh*
rm -rf bin/clsecho/*
rm -rf rdbms/audit/*
rm -rf rdbms/log/*
rm -rf inventory/backup/*


cd /u02/grid
tar -zcvpf /u02/gridHome.tgz .


pmsup1节点:
scp root@pmsup2:/u02/gridHome.tgz /u01/app/11.2.0.4
因为我是在原有基础上添加节点所以下面目录已经存在,如果是新环境则需要添加。

mkdir -p /u01/app/11.2.0.4/grid
cd /u01/app/11.2.0.4/grid
tar -zxvf /u01/app/11.2.0.4/gridHome.tgz

mkdir -p /u01/app//oraInventory
chown oracleinstall /u01/app//oraInventory
chown -R oracleinstall /u01/app/11.2.0.4/grid

chmod u+s /u01/app/11.2.0.4/grid/bin/oracle
chmod g+s /u01/app/11.2.0.4/grid/bin/oraclekl
chmod u+s /u01/app/11.2.0.4/grid/bin/extjob
chmod u+s /u01/app/11.2.0.4/grid/bin/jssu
chmod u+s /u01/app/11.2.0.4/grid/bin/oradism

开始执行clone.pl:

$ cd /u01/app/11.2.0.4/grid/clone/bin
$ perl clone.pl -silent ORACLE_BASE=/u01/app/grid ORACLE_HOME=/u01/app/11.2.0.4/grid
ORACLE_HOME_NAME=OraHome1Grid INVENTORY_LOCATION=/u01/app//oraInventory -O'"CLUSTER_NODES={pmsup1,pmsup2}"'
-O'"LOCAL_NODE=pmsup1"' CRS=TRUE -debug

这里需要注意-O'"写法,Windows环境下不需要-O'",另外12C下已经不需要要这样写,这个不任性化,看起来有点乱。

第一次执行上面命令没有提示执行root.sh 脚本,添加-debug发现grid用户没有权限建立 root.sh脚本,执行如下命令:
chown -R gridinstall /u01

再次执行输出如下,没有报错:
-------------------------------------------------------
Initializing Java Virtual Machine from /tmp/OraInstall2018-01-11_09-40-54AM/jre/bin/java. Please wait...
Oracle Universal Installer, Version 11.2.0.4.0 Production
Copyright (C) 1999, 2013, Oracle. All rights reserved.

You can find the log of this install session at:
/u01/app/oraInventory/logs/cloneActions2018-01-11_09-40-54AM.log
...........................................................................................[main]
[ 2018-01-11 09:41:00.281 CST ] [QueryCluster.<init>:56]  No Cluster detected
[main] [ 2018-01-11 09:41:00.282 CST ] [QueryCluster.isCluster:65]  Cluster existence check = false
......... 100% Done.

Installation in progress (Thursday, January 11, 2018 9:41:01 AM CST)
.....................................................................                                                           69% Done.
Install successful

Linking in progress (Thursday, January 11, 2018 9:41:04 AM CST)
Link successful

Setup in progress (Thursday, January 11, 2018 9:41:31 AM CST)
................                                                100% Done.
Setup successful

End of install phases.(Thursday, January 11, 2018 9:41:53 AM CST)
WARNING:
The following configuration scripts need to be executed as the "root" user in each new cluster node.
Each script in the list below is followed by a list of nodes.
/u01/app/11.2.0.4/grid/root.sh #On nodes pmsup1
To execute the configuration scripts:
    1. Open a terminal window
    2. Log in as "root"
    3. Run the scripts in each cluster node

Run the script on the local node first. After successful completion, you can run the script in parallel on all
the other nodes.


依据提示执行脚本:
/u01/app/11.2.0.4/grid/root.sh

root.sh 脚本日志如下:
Performing root user operation for Oracle 11g
The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/11.2.0.4/grid
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.

To configure Grid Infrastructure for a Stand-Alone Server run the following command as the root user:
/u01/app/11.2.0.4/grid/perl/bin/perl -I/u01/app/11.2.0.4/grid/perl/lib -I/u01/app/11.2.0.4/grid/crs/install
/u01/app/11.2.0.4
/grid/crs/install/roothas.pl

To configure Grid Infrastructure for a Cluster execute the following command:
/u01/app/11.2.0.4/grid/crs/config/config.sh
This command launches the Grid Infrastructure Configuration Wizard. The wizard also supports silent operation,
and the parame
ters can be passed through the response file that is available in the installation media.

提示执行/u01/app/11.2.0.4/grid/crs/config/config.sh

说明:
config脚本默认启动图形界面,我这里网络不能访问自己电脑的6000端口所以需要以静默方式执行config,
静默方式需要提供参数文件grid_install.rsp,grid_install.rsp 文件在grid安装目录response下可以copy,
然后依据里面的内容进行修改添加具体值即可,该文件需要访问模式为600,用户为grid

chmod 600 /home/grid/grid_install.rsp

静默执行config:

To run config.sh silently:-
As grid user:
cd /u01/app/11.2.0.4/grid/crs/config
./config.sh -silent -responseFile /home/grid/grid_install.rsp -ignoreSysPrereqs -ignorePrereq

报错:                              
[FATAL] [INS-40915] The installer has detected the presence of Oracle Clusterware on the following nodes: pmsup2.
   CAUSE: Either Oracle Clusterware is running on the listed nodes, or previous installations of Oracle Clusterware are
not completely deinstalled.
   ACTION: For each node listed, ensure that existing Oracle Clusterware is completely deinstalled. You can also choose
not to include these nodes in this installation.
./config.sh -silent -responseFile /home/grid/grid_install.rsp -ignoreSysPrereqs -ignorePrereq -local -debug
报错提示pmsup2节点存在,从这里我们也可以看到,congfig脚本执行前必须要将集群中所有节点deconfig,
然后才能执行成功。这里我们修改参数只包含一个节点如下:

修改下面参数只列出新节点:
oracle.install.crs.config.clusterNodes=pmsup1msup1-vip

再次执行:
./config.sh -silent -responseFile /home/grid/grid_install.rsp -ignoreSysPrereqs -ignorePrereq -local -debug

输出如下:
As a root user, execute the following script(s):
        1. /u01/app/11.2.0.4/grid/root.sh
Execute /u01/app/11.2.0.4/grid/root.sh on the following nodes:
[pmsup1]
Successfully Setup Software.
[WARNING] [INS-32091] Software installation was successful. But some configuration assistants failed, were cancelled
or skipped.
   ACTION: Refer to the logs or contact Oracle Support Services.

提示配置错误,这个没关系,我们执行root.sh.
其实config.sh 就是建立参数文件/u01/app/11.2.0.4/grid/crs/install/crsconfig_params
这里需要说明我在这里修改crsconfig_params文件将另外一个节点信息也添加在里面。是因为我在这里没有deconfig二号节点,如果首先
deconfig二号节点,grid_install.rsp文件中有二号节点信息,那么crsconfig_params参数文件中也会有二号节点信息。


执行root.sh
/u01/app/11.2.0.4/grid/root.sh

报错:
未能创建磁盘组DATA, 返回消息如下:
ORA-15018: diskgroup cannot be created
ORA-15031: disk specification '/dev/raw/raw1' matches no disks
ORA-15014: path '/dev/raw/raw1' is not in the discovery set
这个报错是因为我将磁盘发现路径写错了,ASM不能建立,修改asm 参数文件和crsconfig_params参数文件,手动启动ASM实例,OK!

SQL> alter diskgroup data mount;
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15017: diskgroup "DATA" cannot be mounted
ORA-15003: diskgroup "DATA" already mounted in another lock name space

因为二号节点启动,关闭二号节点crs -- crsctl stop has -f

SQL> alter diskgroup data mount;
Diskgroup altered.

再次执行root.sh

日志信息如下:
Installing Trace File Analyzer
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'pmsup1'
CRS-2676: Start of 'ora.cssdmonitor' on 'pmsup1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'pmsup1'
CRS-2672: Attempting to start 'ora.diskmon' on 'pmsup1'
CRS-2676: Start of 'ora.diskmon' on 'pmsup1' succeeded
CRS-2676: Start of 'ora.cssd' on 'pmsup1' succeeded

已成功创建并启动 ASM。
已成功装载磁盘组DATA。

clscfg: -install mode specified
clscfg: EXISTING configuration version 5 detected.
clscfg: version 5 is 11g Release 2.
Successfully accumulated necessary OCR keys.
clscfg: Arguments check out successfully.

NO KEYS WERE WRITTEN. Supply -force parameter to override.
-force is destructive and will destroy any previous cluster
configuration.
CRS-4256: Updating the profile
Successful addition of voting disk 9a74c1f6c5b14f56bfd68550557cc62b.
Successfully replaced voting disk group with +DATA.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
1. ONLINE   9a74c1f6c5b14f56bfd68550557cc62b (/dev/raw/raw1) [DATA]
Located 1 voting disk(s).
Configure Oracle Grid Infrastructure for a Cluster ... succeeded


注意Voting file(s) successfully replaced 这句话,意思vt被replaced,也就是FUID改变了,
那么二号节点一定是启动不了,因为vt FUID都改变了二号节点怎么能启动。FUID就是vt的唯一编号。
启动二号节点日志报错如下:
[cssd(20798)]CRS-1714:Unable to discover any voting files, retrying discovery in 15 seconds;
刚才已经说了,config脚本需要所有节点deconfig,那么二号节点也需要reconfig了:

二号节点:
As root user:
export LANG=C
/u01/app/11.2.0.4/grid/crs/install/rootcrs.pl -deconfig -force
Removing Trace File Analyzer
Successfully deconfigured Oracle clusterware stack on this node

/u01/app/11.2.0.4/grid/root.sh
Using configuration parameter file: /u01/app/11.2.0.4/grid/crs/install/crsconfig_params
User ignored Prerequisites during installation
Installing Trace File Analyzer
PRKO-2190 : VIP exists for node pmsup2, VIP name pmsup2-vip
Preparing packages for installation...
cvuqdisk-1.0.9-1
Configure Oracle Grid Infrastructure for a Cluster ... succeeded

这里如果报错ASM无法访问,手动启动ASM实例,再次执行root.sh即可。

到此clone cluster 就完成了。

--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS      
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE       pmsup1                                       
               ONLINE  ONLINE       pmsup2                                       
ora.LISTENER.lsnr
               ONLINE  ONLINE       pmsup1                                       
               ONLINE  ONLINE       pmsup2                                       
ora.asm
               ONLINE  ONLINE       pmsup1                   Started            
               ONLINE  ONLINE       pmsup2                   Started            
ora.gsd
               OFFLINE OFFLINE      pmsup1                                       
               OFFLINE OFFLINE      pmsup2                                       
ora.net1.network
               ONLINE  ONLINE       pmsup1                                       
               ONLINE  ONLINE       pmsup2                                       
ora.ons
               ONLINE  ONLINE       pmsup1                                       
               ONLINE  ONLINE       pmsup2                                       
ora.registry.acfs
               ONLINE  ONLINE       pmsup1                                       
               ONLINE  ONLINE       pmsup2                                       
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       pmsup1                                       
ora.cvu
      1        ONLINE  ONLINE       pmsup1                                       
ora.oc4j
      1        ONLINE  ONLINE       pmsup1                                       
ora.pmssn.db
      1        ONLINE  ONLINE       pmsup1                   Open               
      2        ONLINE  ONLINE       pmsup2                   Open               
ora.pmsup1.vip
      1        ONLINE  ONLINE       pmsup1                                       
ora.pmsup2.vip
      1        ONLINE  ONLINE       pmsup2                                       
ora.scan1.vip
      1        ONLINE  ONLINE       pmsup1                                       


2018-1-11
孙显鹏









您需要登录后才可以回帖 登录 | 注册

本版积分规则

DTCC2018购票6.8折优惠进行时

中国数据库技术大会是国内数据库及大数据领域规模最大、最受欢迎的技术交流盛会。 2018年5月10-12日,第九届中国数据库技术大会将如约而至。本届大会以“数领先机•智赢未来”为主题,设定2大主会场及20个技术专场,邀请来自国内外互联网、金融、教育等行业百余位技术专家,共同探讨Oracle、MySQL、NoSQL、大数据等领域的前瞻性热点话题与技术。
----------------------------------------
优惠时间:2018年2月13日前

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 |
  | | |
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表
北京赛车pk10 申博官网 北京赛车pk10 六台宝典现场开奖 北京赛车pk10历史记录 北京赛车开奖 北京赛车预测 949494开奖结果今晚 威尼斯人线上娱乐 手机投注平台 幸运28投注技巧 pk10助赢软件 北京pk10百度鼎盛彩票网 北京赛车聚彩 北京pk10如何稳杀3码 pk10稳赢方法 pk10定位计划 pk10包赢计划群