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_HOME和ORACLE_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= 本机ip:0.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是节点2的VIP
3. 拷贝已有节点的DB的$ORACLE_HOME/dbs/init
保证init
=======================
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
比如:
[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 thread和redo 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