RAC 添加节点

1.查看磁盘id

ll/dev/disk/by-id

vi/etc/multipath.conf 

2.绑定多路径

Multipath –ll

blacklist {

       wwid3600605b00bd2c1d01fc04aff15da345b 

        devnode"^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"

        devnode "^hd[a-z]"

}

multipaths {

        multipath {

                wwid                   36005076400810111e80000000000001a

                alias                   ocr

                path_grouping_policy    multibus

                #path_checker           readsector0

                path_selector           "round-robin 0"

                failback                manual

                rr_weight               priorities

                no_path_retry           5

        }

        multipath {

                wwid                    36005076400810111e800000000000019

                alias                   data

        }

        multipath {

                wwid                   36005076400810111e80000000000001b

                alias                   frs

        }

}

servicemultipathd start

chkconfigmultipathd on

3.绑定映射关系

vi  /etc/udev/rules.d/99-oracle-asmdevices.rules  #两个节点执行

KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id -g -u -d/dev/$name", RESULT=="36005076400810111e80000000000001a",NAME="asmdisk1", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id -g -u -d/dev/$name", RESULT=="36005076400810111e800000000000019",NAME="asmdisk2", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$name",RESULT=="36005076400810111e80000000000001b",NAME="asmdisk3", OWNER="grid", GROUP="asmadmin",MODE="0660"

4.修改host文件

#public ip

10.5.1.194 test1

10.5.1.195 test2

#private ip

192.168.13.19test1-priv

192.168.13.20test2-priv

192.168.14.19test1-priv

192.168.14.20test2-priv

#scan ip:

10.5.1.196  test-scan

10.5.1.197  test-scan

#vip

10.5.1.198  test1-vip

10.5.1.199  test2-vip

5.创建组、用户及目录

groupadd -g 501oinstall

groupadd -g 502dba

groupadd -g 503oper

groupadd -g 504asmadmin

groupadd -g 506asmdba

groupadd -g 507asmoper

 

useradd -u 501-g oinstall -G asmadmin,asmdba,asmoper,dba grid

useradd -u 502-g oinstall -G dba,asmdba,asmadmin,oper oracle

 

mkdir -p/u01/app/12.1.0.2/grid

mkdir -p/u01/app/grid

mkdir -p/u01/app/oracle

 

chown -Rgrid:oinstall /u01

chmod -R 775/u01/

6.打包GRID_HOMEORACLE_HOME

tar -zcvfOH.tar.gz /u01/app/oracle/product/12.1.0/dbhome_1

注:(检查物理盘挂载位置)

7.配置.bash_profile

8.配置互信

ssh-keygen -t rsa

cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys 

注:关闭防火墙和selinux

   自己的密钥也需配置否则对等性校验出错 

9.验证环境配置

./runcluvfy.shstage -pre crsinst -n test1,test2 >/tmp/cluvfy_oracle.txt

 

10.安装yum源及包

 

11.清除集群中未删除干净的test2信息,并刷新list信息

olsnodes -t –s

crsctl delete node -n test2

$ORACLE_HOME/oui/bin/runInstaller-updateNodeList ORACLE_HOME=$ORACLE_HOME “CLUSTER_NODES={test2}” CRS=true

$ORACLE_HOME/oui/bin/runInstaller-updateNodeList ORACLE_HOME=$ORACLE_HOME “CLUSTER_NODES={test1}” CRS=true

 

12.grid用户调用图形界面,

使用的是xmanager-passive

export DISPLAY=  本机ip0.0

(安装14%未成功,audi文件过多)

13.放弃图形界面  远程tar集群和数据库软件  解压tar包并执行两个root脚本  再用克隆数据库方式copy数据库

 

14.手动添加实例

1. 确保参数文件中日志相关的路径已经存在,如果不存在,需要提前创建相关的目录:
audit_file_dest, background_dump_dest, user_dump_dest
core_dump_dest等。

比如audit_file_dest=/u01/app/oracle/admin/RACDB/adump,如果这个目录不存在,那么启动实例会报错:
ORA-09925: Unable to create audit trail file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 9925

2.
在已有的数据库实例上执行下面的命令来添加新实例相关的参数:

SQL> alter system set instance_number=2 scope=spfile sid='RACDB2';
SQL> alter system set thread=2 scope=spfile sid='RACDB2';
SQL> alter system set undo_tablespace='UNDOTBS2' scope=spfile sid='RACDB2';
SQL> alter system setlocal_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.2.122)(PORT=1521))))'sid='RACDB2'; <=====192.0.2.122
是节点2VIP



3. 拷贝已有节点的DB$ORACLE_HOME/dbs/init.ora到新节点的DB$ORACLE_HOME/dbs/init.ora,一定要修改对应的实例名。
保证init.ora只有一行,用来指定spfile的位置:
=======================
SPFILE='+DATA/racdb/spfileracdb.ora'

比如:
[oracle@rac1 ~]$ scp $ORACLE_HOME/dbs/initRACDB1.orarac2:$ORACLE_HOME/dbs/initRACDB2.ora <===
文件名修改为实例2

4. 
修改新节点的/etc/oratab,保证其中有类似下面的内容:
RACDB2:/u01/app/oracle/product/11.2.0/dbhome_1:N       

5. 
拷贝已有节点的密码文件: DB$ORACLE_HOME/dbs/ora.pwd到新节点DB$ORACLE_HOME/dbs/ora.pwd,一定要修改对应的实例名。

比如:
[oracle@rac1 dbs]$ scp $ORACLE_HOME/dbs/orapwRACDB1rac2:$ORACLE_HOME/dbs/orapwRACDB2 <==
修改为实例2

6. 
在已有的实例执行下面的命令,为新建的实例添加UNDO TABLESPACE

比如:
SQL>CREATE UNDO TABLESPACE "UNDOTBS2" DATAFILE '/dev/….' SIZE4096M ;

或者使用磁盘组:
SQL>CREATE UNDO TABLESPACE "UNDOTBS2" DATAFILE '+DATA' SIZE 4096M;

7. 
在已有的实例执行下面的命令,为新建的实例添加redo threadredo log:

比如:
SQL> alter database add logfile thread 2 
     group 3 ('/dev/...', '/dev/...') size 1024M,
     group 4 ('/dev/...','dev/...') size 1024M;

或者使用磁盘组:
SQL> alter database add logfile thread 2
     group 3 ('+DATA','+RECO') size 1024M,
     group 4 ('+DATA','+RECO') size 1024M;

SQL> alter database enable thread 2; <==
启动这个thread

8. 
在新节点上启动新实例,保证环境变量设置的是正确的:
[oracle@rac2 admin]$su - oracle
[oracle@rac2 admin]$export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
[oracle@rac2 admin]$export ORACLE_SID=RACDB2

[oracle@rac2 admin]$ sqlplus / as sysdba
SQL> startup <==
如果启动成功,说明之前的实例2相关的参数应该设置正确了

 

 

 

ORA-01078: failure in processing system parameters

ORA-01565: error in identifying file '+DATA/spfile.ora'

ORA-17503: ksfdopn:2 Failed to open file +DATA/spfile.ora

 

查看grid用户下面的oracle的权限

su - grid

ls -l$ORACLE_HOME/bin/oracle

-rwxr-x--x 1grid oinstall 200678430 Oct  9 13:35/u01/app/11.2.0/grid/bin/oracle

权限不正确,修改。

 

chmod 6751$ORACLE_HOME/bin/oracle

ls -l$ORACLE_HOME/bin/oracle

-rwsr-s--x 1grid oinstall /u01/app/11.2.0/grid/bin/oracle ls -l $ORACLE_HOME/bin/oracle

-rwsr-x--x 1oracle asmadmin /u01/app/oracle/product/11.2.0/db_2/bin/oracle

 

cd$ORACLE_HOME/bin/

set

setasmgidwrapo=/u01/app/oracle/product/11.2.0/db_2/bin/oracle

ls -l/u01/app/oracle/product/11.2.0/db_2/bin/oracle

-rwsr-s--x 1oracle asmadmin /u01/app/oracle/product/11.2.0/

 

重启实例

 

Oracle ORA-00439

1)进入 $ORACLE_HOME/rdbms/lib

2)执行如下命令:

       nm -r libknlopt.a | grep -c kcsm.o

 

如果返回值等于0,那么就是没有link

如果返回值大于0. 那么就是已经linked

 

解决方法:

1. 关闭instance

2. 进入$ORACLE_HOME/rdbms/lib

3. Oracle的用户重新link

       make -f ins_rdbms.mk rac_on ioracle

重启实例

 

15.验证节点信息

/u01/app/oraInventory/ContentsXML

crs_stat –t –v

crsctl statusres -t

你可能感兴趣的:(rac)