一、 安装前准备
1. 2台或多台linux服务器 2. 每台服务器一个公用ip一个私有ip 3. 公有ip:其他主机访问 2台主机最好同一ip段 4. 私有ip:2台或多台虚拟机互访 2台主机最好同一ip段 5. 注意:网卡名称相同。 6. Oracle安装包,grid安装包,相关插件安装包(已准备)。 7. 2个虚拟机共享多块磁盘。 8. 本地环境ip: 192.168.2.159 9. 本地主机安装Xmanger 安装以后本地才会弹出远程安装oracle相关集群软件的界面 |
二、 以下配置以centos7+oracle11g+ vmware配置
a) 安装2个虚拟略:注意服务器硬盘最好高于40g,oracle安装好以后就会占用10个左右内存3g
b) 示例虚拟机1 主机名rac001 公有ip 192.168.2.187 私有ip 192.168.9.128
c) 示例虚拟机2 主机名rac002 公有ip 192.168.2.238 私有ip 192.168.9.129
1. 配置本地hosts文件(2台主机都要配置)
如下列1:ip 列2:别名 列3:主机名称(个人理解的,不同系统顺序可能不同)
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 #public ip 公有ip 192.168.2.187 rac001 rac001.svc.com 192.168.2.238 rac002 rac002.svc.com #virtual ip 192.168.9.128 rac001-priv rac001-priv.svc.com 192.168.9.129 rac002-priv rac002-priv.svc.com #private ip 192.168.2.230 rac001-vip rac001-vip.svc.com 192.168.2.232 rac002-vip rac002-vip.svc.com #scan ip 192.168.2.233 rac-scan rac-scan.svc.com 192.168.2.234 rac-scan rac-scan.svc.com 192.168.2.235 rac-scan rac-scan.svc.com |
2. 配置主机网络:(2台虚拟机都要配置)
vim /etc/sysconfig/network-scripts/网卡对应的配置文件名
如下:我的虚拟机网卡名,公有ip网卡名 ens33 私有网卡名ens37
DEVICE= ens33 TYPE=Ethernet UUID= 55e7e524-f748-48d1-a46c-051760f75aa7 //网卡的唯一标识 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none IPADDR=192.168.2.187 //共有地址,即IP配置中的rac001 PREFIX=24 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" HWADDR=00:0C:29:7B:73:66 //mac地址 NETMASK=255.255.255.0 //子网掩码 GATEWAY=192.168.2.129 //本地主机ip USERCTL=no |
完成后重启网络:# service network restart
测试本地主机window ip与虚拟机能否ping通
# ping 192.168.2.129
配置私有网卡(如没有则创建文件)
vim /etc/sysconfig/network-scripts/网卡对应的配置文件名
HWADDR=00:0c:29:85:ca:6b //eth1网卡的mac地址 DEVICE=eth1 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.10.1 //IP配置中的rac001-priv NETMASK=255.255.255.0 |
重启网络
#ifup eth1
#service network restart
此时配置的ip之间可以互相ping通,但是外网无法ping通,这时因为没有配置dns
配置dns
查看本地主机window的dns服务器
按window+r的 输入cmd
命令行# ipconfig –all
查看DNS服务器地址
虚拟机下添加查到的dns服务器地址
# vim /etc/resolv.conf 添加dns
nameserver 10.16.10.6 nameserver 10.16.10.8 |
或者使用公共的dns服务器
nameserver 114.114.114.114 nameserver 8.8.8.8 |
测试ping外网
#pingwww.baidu.com
OK网络配置完成
注意:有时候会遇到一个比较诡异的情况,配置的dns,在每次重启网卡的时候,都会消失,导致外网无法访问,解决方法:(我没遇到)
# chkconfig NetworkManager off # chkconfig network on #service NetworkManager stop # service network start # service network restart
|
3. 下载安装rac依赖包(2台虚拟机都要)
yum install -y expect* iscsi* binutils* compat-libstdc++* expat* elfutils-libelf* gcc* glibc* ksh* libgcc* yum install -y pdksh* libgomp* compat-db* libXp* libaio* cpp* setarch* sysstat* libstdc++* make-3* yum install -y unixODBC yum install -y unixODBC-devel yum install -y oracleasm* rpm –ivh /oracleasmlib-2.0.4-1.el4.x86_64 (百度下载,上传到服务器) rpm -ivh --force --nodeps /rac-pakge/*.rpm (百度下载,上传到服务器) --force强制安装 --nodeps 跳过依赖
以下是所需软件包,已准备好 expat-1.95.7 (x86_64) 有 pdksh-5.2.14 缺(yum搜不到,手动安装) sysstat-5.0.5 有 gcc-3.4.6 缺 libgcc-3.4.6 (x86_64) libgcc-3.4.6 (i386) 缺(yum搜不到,手动安装) libaio-0.3.105 (x86_64) libaio-0.3.105 (i386) 缺(yum搜不到,手动安装) libaio-devel-0.3.105 (x86_64) 缺 libaio-devel-0.3.105 (i386) 缺(yum搜不到,手动安装) gcc-c++-3.4.6 缺 glibc-2.3.4-2.41 (x86_64) glibc-2.3.4-2.41 (i686) 缺 glibc-headers-2.3.4 glibc-devel-2.3.4 (x86_64) glibc-common-2.3.4 elfutils-libelf-devel-0.97 缺 elfutils-libelf-0.97 (x86_64) compat-libstdc++-33-3.2.3 (x86_64) 缺 compat-libstdc++-33-3.2.3 (i386) 缺(yum搜不到,手动安装) compat-libcap1.x86_64 缺 binutils-2.15.92.0.2 libstdc++-devel-3.4.6 (x86_64) libstdc++-3.4.6 (x86_64) libstdc++-3.4.6 (i386) 缺(yum搜不到,手动安装) make-3.80 unixODBC-2.2.11 (x86_64) 缺(yum搜不到,手动安装) unixODBC-devel-2.2.11 (x86_64) 缺(yum搜不到,手动安装) unixODBC-libs-2.2.11-10.el5.i386 缺(yum搜不到,手动安装) unixODBC-devel-2.2.11 (i386) 缺(yum搜不到,手动安装) unixODBC-2.2.11 (i386) 缺(yum搜不到,手动安装) oracleasmlib-2.0.4-1.el4.x86_64缺 kmod-oracleasm-2.0.8-6.el6_7.x86_64 (yum可安装) oracleasm-support-2.1.8-1.el6.x86_64缺 |
4. 创建用户和组和安装目录(2台虚拟机都要配置)
# groupadd oinstall # groupadd dba # groupadd oper # groupadd asmdba # groupadd asmoper # groupadd asmadmin # useradd -g dba -G oinstall,oper,asmdba oracle # useradd -g asmdba -G oinstall,dba,asmadmin,asmoper grid |
1. 设置用户密码(2台虚拟机都要配置)
#passwd oracle #passwd grid |
2. 创建安装目录
# mkdir /u01 # mkdir /u01/grid # mkdir /u01/oracle # mkdir /u01/gridbase |
3. 修改文件归属(2台虚拟机都要配置)
# chown -R grid:oinstall /u01 # chown -R oracle:oinstall /u01/oracle |
4. 授权(2台虚拟机都要配置)
# chmod -R g+w /u01 |
5. 配置环境变量(2台虚拟机都要配置)
两个节点都做,注意两节点的ORACLE_SID不能相同,前缀cludb相同,后面的数字依次排序。 切换到oracle用户: # su – oracle # vim ~/.bash_profile 末尾增加: ORACLE_BASE=/u01/oracle 安装后的oracle目录 ORACLE_HOME=/u01/oracle/db 安装后的oracle目录 ORACLE_SID=cludb1 PATH=$ORACLE_HOME/bin:$PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH DISPLAY=192.168.2.129:0.0 export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH DISPLAY 切换grid用户: # su – grid # vim ~/.bash_profile 末尾增加: ORACLE_BASE=/u01/gridbase 安装后的grid目录 ORACLE_HOME=/u01/11.2.0/grid安装后的grid目录 PATH=$ORACLE_HOME/bin:$PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH DISPLAY=192.168.2.129:0.0 export ORACLE_BASE ORACLE_HOME PATH LD_LIBRARY_PATH DISPLAY 注:DISPLAY 是本地主机的ip,本地安装Xmanager,rac安装界面将在本地显示 配置好了,执行命令source ~/.bash_profile使其配置生效
|
6. 关闭不需要的服务(2台虚拟机都要配置)
Root用户: 关闭SELINX #vim /etc/selinux/config #编辑配置文件 #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加
|
关闭防火墙:注意不同系统的主机命令,不同(2台虚拟机都要配置)
注意:centos7关闭防火墙命令不一样,需要百度 #setup 根据图形化界面选择上下箭头选择【System Service】系统服务,找到iptables,ip6tables,sendmail,按空格键取消[]中的*号,按TAB键保存,并退出
|
7. 修改linux内核参数(以下是官方给出的最低配置2台主机都要配置)
Root用户: #vim /etc/sysctl.conf 具体参数意义参考官方文档 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 1073741824 这里修改要注意:kernel.shmall和kernel.shmmni的积= kernel.shmmax kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 centos7最后面参数无效 这里修改第一个参数和第4个参数的积=第二个参数 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 使修改生效 #sysctl -p #vim /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 grid soft stack 10240 |
8. 设置节点时间同步(2台虚拟机都要配置)
Root用户:
一般时间同步有linux的ntpd时间同步,还有就是oracle的时间同步,我们用 oracle 的时间同步,需要关闭ntpd服务
# /sbin/service ntpd stop 还要删除以下文件(如果有的话):
|
9. 创建共享磁盘(多块!我创建的3块,虚拟机配置,不是虚拟机配置不一样)
创建磁盘:
在虚拟机rac001节点右击--【设置】---【添加】---【硬盘】 稍等片刻,一块磁盘创建完毕,重复上述动作两次,创建3块磁盘。
将创建的磁盘剪切至一个公共目录: 移除rac001节点中的上述创建的磁盘(因为已经剪切走了) 然后再重复上述创建磁盘的动作,在第7步骤的时候不再选择【创建虚拟磁盘】,而是选择【使用现有虚拟磁盘】,然后选择移至公共目录下的磁盘文件sharedisk-1.vmdk,sharedisk-2.vmdk,sharedisk-3.vmdk,创建三块磁盘,保存后,更新三块磁盘的高级属性,分别选择scsi1:1,scsi1:2,scsi1:3. 节点rac002同样如此。
|
磁盘创建好了以后修改各虚拟机的配置文件
rac001.vmx,rac002.vmx(关闭虚拟机后才能修改 )
disk.locking = "FALSE" diskLib.dataCacheMaxSize = "0" diskLib.dataCacheMaxReadAheadSize = "0" diskLib.dataCacheMinReadAheadSize = "0" diskLib.dataCachePageSize = "4096" diskLib.maxUnsyncedWrites = "0" scsi1:1.deviceType="disk" scsi1:2.deviceType="disk" scsi1:3.deviceType="disk"
|
1. 分区(虚拟机1操作)
Root用户: # cd /dev/ # ls -l sd* 将看到sdb,sdc,sdd,这三块就是添加的磁盘 对硬盘进行分区 # fdisk sdb 按m键,此时有多个选项供选择 按n键(创建新分区) 按p键(创建主分区,另有e键是扩展分区) 按1键(分区数字从1开始,即sdb1,sdc1等) 按1键(分区从第一个柱面开始) 回车 (结束柱面选择 默认,即全部柱面只分在一个区) 按w键(将操作写入分区表) 依次对sdb sdc sdd |
2. 创建磁盘
(虚拟机1操作) Root用户: #oracleasm configure -i 然后输入用户grid 输入组dba 输入y 输入y # oracleasm init 创建磁盘DISK01,DISK02,DISK03 oracleasm createdisk DISK001 sdb1 oracleasm createdisk DISK002 sdc1 oracleasm createdisk DISK003 sdd1 查看磁盘: # oracleasm listdisks DISK01 DISK02 DISK03 虚拟机2 注:如果已开启则重启 Root用户: # oracleasm configure -i 输入grid 输入dba 输入y 输入y #oracleasm init
重启 #reboot #oracleasm listdisks 节点2也能看到DISK01,DISK02,DISK03了
|
10.2台或多台主机之间的互信(分别用grid和oracle用户)(2台主机都要执行)
注:grid,Oracle用户都需要添加相互信息,下面以grid为例 Grid用户: 在节点rac001和rac002节点分别执行 #ssh-****** -t rsa 然后一路回车 #cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 在节点rac001 上执行 # ssh rac002 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 在节点rac002上执行 # ssh rac001 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
如果秘钥的生成路径是按照上面一路默认的话,可以执行命令(rac002节点:ssh-copy-id grid@rac001;rac001节点:ssh-copy-id grid@rac002)将本地公钥追加到authorized_keys上 测试: 在rac002,rac001上分别执行 #ssh rac001 date #ssh rac002 date 只要不再提示输入密码就成功了
|
三、 安装Grid
1. 安装grid前检测
Grid用户: 将集群软件linux.x64_11gR2_grid.zip上传至/u01目录,并解压 将解压至grid目录,更改解压后文件属主 # chown –R grid:oinstall grid 进入加压后的目录 #cd /u01/grid 执行安装前检查操作 # ./runcluvfy.sh stage -pre crsinst -n rac001,rac002 -fixup -verbose
下面是检查过程 如果上面的依赖包全部正确安装的话,检查应该不会有问题 执行 集群服务设置 的预检查
正在检查节点的可访问性...
检查: 节点 "rac001" 的节点可访问性 目标节点 是否可访问? ------------------------------------ ------------------------ rac001 是 rac002 是 结果:节点 "rac001" 的节点可访问性检查已通过
正在检查等同用户...
检查: 用户 "grid" 的等同用户 节点名 注释 ------------------------------------ ------------------------ rac002 通过 rac001 通过 结果:用户 "grid" 的等同用户检查已通过
正在检查节点的连接性.. …………………. 可能会出现的问题: 1),用户 "grid" 的等同用户检查失败解决方法: 在失败的节点执行#ssh rac001/rac002 date 2) 交换空间内存不够 #dd if=/dev/zero of=swapfile bs=1024 count=1500000 1024单位byte,增加1.5G内存大小 # mkswap swapfile # swapon swapfile 交换内存开机自动挂载 # vim /etc/fstab 加入 /home/swapfile swap swap defaults 0 0
如果检查成功则开始安装操作 失败则执行相应的检测生成的修复文件(失败提示上有) |
2. 开始安装(虚拟机1安装)
Grid用户: 只在第一个节点执行安装命令 export DISPLAY=192.168.2.159:0.0 export LANG=en_US.UTF-8 # ./runInstaller
等待一会将会在本地主机出现安装界面 我们这里选择“高级安装”,点击“next” 选择“English”,点击“Next” 这里要填写scan name,对应我们的/etc/hosts里写的名字,不选择GNS,点击“next” 点击Add将其他节点加进来,点击SSH Connectivity 输入grid用户密码 点击Test测试,成功后点击next
执行脚本1)所有节点均需执行 2)以下错误均是安装时候出过 的错误,执行脚本前请先查看以下信息,以防再次犯错
所有节点上执行 # /u01/oraInventory/oraInstRoot.sh # /u01/grid/root.sh 【错误信息1】 在执行root.sh脚本时候,出现错误: /u01/grid/bin/clscfg.bin: error while loading shared libraries: libcap.so.1: cannot open shared object file: No such file or directory Failed to create keys in the OLR, rc = 127, 32512 OLR configuration failed 共享库libcap.so.1 找不到,因为缺少包compat-libcap1.x86_64.rpm(前文依赖包中有此包,若已安装,则不会出现此错误),yum安装: # yum install -y compat-libcap1.x86_64 安装完毕后,需要将之前失败的配置删除再重新执行脚本: # /u01/grid/crs/install/rootcrs.pl -delete -force -verbose 【错误信息2】 再次执行root.sh脚本,有遇到错误: CRS-4124: Oracle High Availability Services startup failed. CRS-4000: Command Start failed, or completed with errors. ohasd failed to start: 对设备不适当的 ioctl 操作 ohasd failed to start at /u01/grid/crs/install/rootcrs.pl line 443. 经过查找得知这是11.2.0.1版本一个经典的BUG,据说这个错误只在linux 6.1下,且Oracle 版本为11.2.0.1的时候出现,在11.2.0.3就不再有这个bug了。 解决方法:(注意:一定要2个节点分开执行,不能同时执行) 在执行root.sh脚本时候,当出现Adding daemon to inittab的时候,在另一个窗口执行下面命令: /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1 如果出现 /bin/dd: opening`/var/tmp/.oracle/npohasd': No such file or directory 的时候该文件还没生成就继续执行,直到能执行为止。
脚本执行完毕后,点击安装界面的OK,继续下一步,如果出现下面的错误,可以忽略,问题是由于scan-cluster使用/etc/hosts文件来解析造成的,直接跳过,不影响。如果是用dns来解析的话应该不会报此错误 点击OK--next 安装完成 点击Close关闭即可。
执行过程如果root.sh脚本执行失败,重新执行如下: 如果节点一成功,节点二失败 节点二执行 # /u01/grid/crs/install/rootcrs.pl -verbose -deconfig -force # /u01/grid/root.sh
|
3. 安装成功返回信息(节点2可能不一样)
Configure Oracle Grid Infrastructure for a Cluster ... succeeded Updating inventory properties for clusterware Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB. Actual 7423 MB Passed The inventory pointer is located at /etc/oraInst.loc The inventory is located at /u01/oraInventory 'UpdateNodeList' was successful 节点2成功可能返回 Preparing packages for installation... cvuqdisk-1.0.7-1 Configure Oracle Grid Infrastructure for a Cluster ... succeeded Updating inventory properties for clusterware Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB. Actual 7423 MB Passed The inventory pointer is located at /etc/oraInst.loc The inventory is located at /u01/oraInventory
|
4. 完成后检查
执行:# crs_stat –t –v 报错:CRS-0184: Cannot communicate with the CRS daemon 然后 用grid启动命令# crsctl start crs 报 CRS-4563: Insufficient user privileges. CRS-4000: Command Start failed, or completed with errors. 那就换root启动,结果报 CRS-4640: Oracle High Availability Services is already active CRS-4000: Command Start failed, or completed with errors.
解决方法:所有节点执行# dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1 然后执行# crs_start –all #crsctl check crs //检查crs 发现已经online了 CRS-4638: Oracle High Availability Services is online CRS-4537: Cluster Ready Services is online CRS-4529: Cluster Synchronization Services is online CRS-4533: Event Manager is online 再次执行#crs_stat –t –v ora....ER.lsnr ora....er.type ONLINE ONLINE rac001 ora....N1.lsnr ora....er.type ONLINE ONLINE rac001 ora.asm ora.asm.type ONLINE ONLINE rac001 ora.eons ora.eons.type ONLINE ONLINE rac001 ora.gsd ora.gsd.type OFFLINE OFFLINE ora....network ora....rk.type ONLINE ONLINE rac001 ora.oc4j ora.oc4j.type OFFLINE OFFLINE ora.ons ora.ons.type ONLINE ONLINE rac001 ora....SM1.asm application ONLINE ONLINE rac001 ora....01.lsnr application ONLINE ONLINE rac001 ora.rac001.gsd application OFFLINE OFFLINE ora.rac001.ons application ONLINE ONLINE rac001 ora.rac001.vip ora....t1.type ONLINE ONLINE rac001 ora....SM2.asm application ONLINE ONLINE rac002 ora....02.lsnr application ONLINE ONLINE rac002 ora.rac002.gsd application OFFLINE OFFLINE ora.rac002.ons application ONLINE ONLINE rac002 ora.rac002.vip ora....t1.type ONLINE ONLINE rac002 ora.scan1.vip ora....ip.type ONLINE ONLINE rac001
|
四、 安装数据库
1. 安装数据库软件(随便某一虚拟机安装)
任一节点安装: # cd /u01 将linux.x64_11gR2_database.zip上传至/u01,解压,将解压后的目录并改归属 #chown –R oracle:oinstall linux.x64_11gR2_database #chmod 777 /u01/oraclePage/database/runInstaller #chmod 777 /u01/oraclePage/database/install/unzip # chmod 777 /u01//database/install/.oui 开始安装 # su – oracle export DISPLAY=192.168.2.159:0.0 export LANG=en_US.UTF-8 # cd /u01/oraclePage/database/ # ./runInstaller -ignoreInternalDriverError 参数-ignoreInternalDriverError的作用是忽略内部驱动导致cluster认证失败,下文有错误信息 上图Next的时候,可能出现错误(在添加信任时如果oracle用户已添加则不会报此错): [INS-06006] Passwordless SSH connectivity not set up between the following node(rac001,rac002). 解决方法:在rac001,rac002节点上用oracle用户添加互相信任,并执行ssh rac001 date,ssh rac002 date 点击Next 报错[INS-20702],内部驱动错误导致cluster工具验证失败,取消重新安装添加-ignoreInternalDriverError参数 以上是检测,只有grid安装好了就不用管,选择Ignore All
等待安装完成,将生成的root.sh脚本在每一个节点上用root用户执行,执行完毕后点击OK,安装完成,并close关闭安装页签
|
2. 创建数据库(顺便某一虚拟机执行都行)
# dbca 弹出如下界面后,我们选择第一项集群模式Oralce Real Applicatoin…,然后next 默认Create a Database,然后Next 选择默认General Purpose… 然后next
这里Global Database Name和SID prefix为cludb,在前文节点环境变量中配置的cludb1,cludb2前缀cludb,然后选择所有节点(图片仅是参考),然后Next
默认即可,然后Next
设置密码,所有用户均设置一致的密码,防止记混,也可以设置不同密码。然后Next 默认选择ASM存储类型 然后Next,然后会弹出窗口指定ASM密码,填写密码,然后继续 闪回区配置默认,也可以不选择,以后修改spfile文件,然后Next 样例schemal可装可不装,然后Next 字符可以选择ZHS16GBK-GBK-bit Simplified Chinese,其他默认即可,然后Next 配置页面如下,然后Next 开始创建数据库 然后Finish,等待安装完成… 安装挺慢的,等待ing…可能会等很久,与系统与配置与网速都有关系 创建完成,Password Managerment可以解锁oracle默认账户,解锁scott(可略) 点击Exit 数据库创建完成. |
五、 相关检测
1. 检测集群状态(grid用户)
# su - grid # crs_stat –t 此图为后来再次搭建时所补,只为了看到不同节点ONLINE状态(所以主机名不是rac1,rac2)
|
2. 检测集群数据库(Oracle用户,各个虚拟机分别执行)
$ srvctl config database -d cludb Database unique name: cludb Database name: cludb Oracle home: /u01/oracle/db Oracle user: oracle Spfile: +DATA/cludb/spfilecludb.ora Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: cludb Database instances: cludb1,cludb2,cludb3 Disk Groups: DATA Services: Database is administrator managed
|
3. 检测数据库示例状态
$ srvctl status database -d cludb Instance cludb1 is running on node centos6srv01 Instance cludb2 is running on node centos6srv02 Instance cludb3 is running on node centos6srv03 检查本地配置的环境变量,以防sid不匹配 $ env |grep ORACLE //注意与上面的Instance相同,笔者笔误配置不同导致连上数据库后查询就报ora-01034 ORACLE_SID=cludb1 注意这里与之前oracle环境变量配置有关,配置的什么就是什么。每台主机的序号都不相同 ORACLE_BASE=/u01/oracle ORACLE_HOME=/u01/oracle/db
|
六、 安装后的数据库操作配置
1. 登陆数据库 oracle用户执行
系统用户 sqlplus / as sysdba 普通用户sqlplus 然后根据提示输入用户名和密码 |
2. 创建表空间与单例oracle不一样,如下
create tablespace OA datafile '+DATA/OA.dbf' size 800m autoextend on; |
3. JDBC连接字符串:(示例)
Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@(DESCRIPTION =" + "(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.122.210)(PORT = 1521)) " + "(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.122.212)(PORT = 1521))" + "(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.122.213)(PORT = 1521)) " + "(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.122.211)(PORT = 1521)) " + "(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = cludb))) ", "system", "123456");
|
七、 集群维护
实例管理 $ srvctl status instance -d cludb -i cludb1 $ srvctl stop instance -d cludb -i cludb1 $ srvctl start instance -d cludb -i cludb1 监听管理 $ srvctl status listener -n rac001 $ srvctl stop listener -n rac001 $ srvctl start listener -n rac001
集群管理命令crsctl 停止集群: $ su - grid $ srvctl stop database -d cludb $ su - root # /u01/grid/bin/crsctl stop crs //停止crs 同时停止asm磁盘组 root用户 启动集群 $ /u01/grid/bin/crsctl start crs $ /u01/grid/bin/srvctl start database -d cludb 注意:在启动crs时候,若报 CRS-4124: Oracle HighAvailability Services startup failed. CRS-4000: Command Startfailed, or completed with errors. 可在每个节点执行命令: /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1 (11.2.0.1才会有这个bug)
|
八、 虚拟机共享磁盘不足(注意,不是用的虚拟机,方式不一样)
由于测试过程中发现共享硬盘不够用,需要增加共享硬盘,创建共享硬盘过程略(前文已有), 然后登陆(grid) SQL> sqlplus / as sysasm 报: SQL*Plus: Release 11.2.0.1.0 Production on Sun Jun 12 13:08:07 2016 Copyright (c) 1982, 2009, Oracle. All rights reserved. ERROR: ORA-01031: insufficient privileges 此时需要导入环境变量(grid用户) $ export ORACLE_SID=+ASM1 $ export ORACLE_HOME=/u01/grid $ export PATH=$ORACLE_HOME/bin:$PATH 再次登陆即可 SQL> sqlplus / as sysasm Connected.
查看用户: SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP SYSAS ------------------------------ ----- ----- ----- SYS TRUE TRUE TRUE ASMSNMP TRUE FALSE FALSE 查看磁盘组: SQL> select STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;
STATE REDUNDA TOTAL_MB FREE_MB NAME -------- ------- ---------- ---------- ------------------------------ FAILGROUP ------------------------------ NORMAL UNKNOWN 5114 101 DISK1 DISK1 NORMAL UNKNOWN 5114 135 DISK2 DISK2 NORMAL UNKNOWN 5114 129 DISK3 DISK3 STATE REDUNDA TOTAL_MB FREE_MB NAME -------- ------- ---------- ---------- ------------------------------ FAILGROUP ------------------------------ NORMAL UNKNOWN 5114 132 DISK4 DISK4 增加磁盘 SQL> alter diskgroup DATA add disk 'ORCL:DISK5' name DISK5; Diskgroup altered. //添加成功
注:DATA为安装asm集群时候的磁盘组的名字,如果没有更改则默认是DATA DISK5为新建的共享磁盘
|