Oracle 11g RAC集群日常运维与管理

01-RAC基本维护命令

查看环境:/etc/hosts
#cat /etc/hosts
在这里插入图片描述

[root@ouzy01 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4
::1         localhost localhost.localdomain localhost6
# Public
192.168.230.101 ouzy01
192.168.230.102 ouzy02
# Virtual
192.168.230.103 ouzy01-vip
192.168.230.104 ouzy02-vip
# Private
10.10.10.11 ouzy01-priv
10.10.10.12 ouzy02-priv
# Scan-ip
192.168.230.100 rac-scan

查询rac状态
#crs_stat -t

[grid@ouzy01 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    ouzy01      
ora....ER.lsnr ora....er.type ONLINE    ONLINE    ouzy01      
ora....N1.lsnr ora....er.type ONLINE    ONLINE    ouzy02      
ora.asm        ora.asm.type   ONLINE    ONLINE    ouzy01      
ora.cvu        ora.cvu.type   ONLINE    ONLINE    ouzy02      
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE               
ora....network ora....rk.type ONLINE    ONLINE    ouzy01      
ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    ouzy02      
ora.ons        ora.ons.type   ONLINE    ONLINE    ouzy01      
ora....SM1.asm application    ONLINE    ONLINE    ouzy01      
ora....01.lsnr application    ONLINE    ONLINE    ouzy01      
ora.ouzy01.gsd application    OFFLINE   OFFLINE               
ora.ouzy01.ons application    ONLINE    ONLINE    ouzy01      
ora.ouzy01.vip ora....t1.type ONLINE    ONLINE    ouzy01      
ora....SM2.asm application    ONLINE    ONLINE    ouzy02      
ora....02.lsnr application    ONLINE    ONLINE    ouzy02      
ora.ouzy02.gsd application    OFFLINE   OFFLINE               
ora.ouzy02.ons application    ONLINE    ONLINE    ouzy02      
ora.ouzy02.vip ora....t1.type ONLINE    ONLINE    ouzy02      
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    ouzy02      
ora.zydb.db    ora....se.type ONLINE    ONLINE    ouzy01  

1.1各种组件状态查询

Oracle Clusterware的命令集可以分为以下4种:
节点层:osnodes
网络层:oifcfg
集群层:crsctl, ocrcheck,ocrdump,ocrconfig
应用层:srvctl,onsctl,crs_stat
其中用的最多的是crsctl和srvctl

①节点层:olsnodes
显示集群节点列表
olsnodes
olsnodes -n
olsnodes -n -i
olsnodes -n -i -s
olsnodes -l -p
在这里插入图片描述
②网络层
oifcfg命令用来定义和修改Oracle集群需要的网卡属性,这些属性包括网卡的网段地址,子网掩码,接口类型等。
Oracle的每个网络接口包括名称,网段地址,接口类型3个属性:
interface_name/subnet:interface_type
v c l u s t e r i n t e r c o n n e c t s v cluster_interconnects v configured_interconnects
x$ksxpiaa
设置系统发送/接受数据缓冲
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 2621440
net.core.wmem_max = 2621440

查看节点网卡情况:
oifcfg iflist
oifcfg iflist -p -n
在这里插入图片描述
oifcfg getif
在这里插入图片描述
oifcfg getif -node ouzy01
oifcfg getif -node ouzy02
oifcfg getif -type public
oifcfg getif -type cluster_interconnect
在这里插入图片描述
oifcfg setif
oifcfg delif
③集群层:crsctl, ocrcheck,ocrdump,ocrconfig
在这里插入图片描述
crsctl, ocrcheck,ocrdump,ocrconfig
crsctl:对集群组件进行操作
srvctl:对集群资源进行操作
查看各资源状态(nodeapps节点应用程序,ASM实例,数据库等)
crs_stat -t
crs_stat -t -v
crsctl stat res -t
查看crs,css,evm,ohas服务
crsctl check crs在这里插入图片描述
crsctl check css
crsctl check ctss
crsctl check cluster -all
在这里插入图片描述
ps -ef|grep crs
ps -ef|grep css
ps -ef|grep ctss
ps -ef|grep evm
ps -ef|grep has

02-表决磁盘voting disk维护

管理voting文件
Voting Disk和 OCR。
OCR
负责维护整个集群的配置信息,包括RAC以及Clusterware资源,包括的信息有节点成员、数据库、实例、服务、监听器、应用程序等。
Voting
Disk里面记录着节点成员的信息。如RAC数据库中有哪些节点成员,节点增加或者删除时也同样会将信息记录进来。Voting Disk必须存放在共享存储上。
每个voting文件都有唯一的ID即FUID(File universal id)。
voting disk状态:
crsctl query css votedisk
在这里插入图片描述
ASM磁盘组中操作:
crsctl replace votedisk +zydg
crsctl replace votedisk /dev/asmdisk2

2.1添加共享磁盘

①查看现有表决磁盘
#ll /dev/asm*
在这里插入图片描述
②停止高可用服务(需root用户,并设置有环境变量)
#crsctl stop has
在这里插入图片描述
复制grid用户下的环境变量到root用户下:
查看grid用户环境变量:#cat .bash_profile
在这里插入图片描述

export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0.4/grid
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH

添加root用户的环境变量(节点1、2均需要添加

#vi .bash_profile在这里插入图片描述
在这里插入图片描述
使环境变量生效:#source .bash_profile
在这里插入图片描述
使用root停止高可用服务(需root用户,并设置有环境变量)
#crsctl stop has
在这里插入图片描述
③关机:#init 0
在这里插入图片描述
④创建新的共享磁盘(节点1添加新的磁盘,节点2选择节点1已添加磁盘
在这里插入图片描述
在这里插入图片描述
查看节点1、2的rac01.vmx中uuid是否启动,磁盘是否独立:

disk.EnableUUID = "TRUE"
scsi1:1.mode = "independent-persistent"

在这里插入图片描述
⑤确认无误后,启动系统

2.2创建ASM磁盘组

1、 查看现有磁盘规则及磁盘组情况:
#cd /etc/udev/rules.d/
#ls
#cat 99-oracle-asmdevices.rules
#fdisk -l
节点1、2均需要有新增的共享磁盘
在这里插入图片描述
在这里插入图片描述
2、复制99-oracle-asmdevices.rules中的语句,查看新增磁盘的RESULT,要求节点1和节点2一致。
#/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdc
在这里插入图片描述
3、复制99-oracle-asmdevices.rules中的全部语句,修改RESULT和NAME为新增的共享磁盘,然后在节点1、2的99-oracle-asmdevices.rules中新增共享磁盘:
#vi 99-oracle-asmdevices.rules
在这里插入图片描述
使新设置的udev规则rules生效(节点1、2):
#udevadm control --reload-rules
在这里插入图片描述
启动duev(节点1、2)
# start_udev
在这里插入图片描述
查看/dev/asm*
# ll /dev/asm*
在这里插入图片描述
4、开始创建磁盘组(4:35)
使用grid用户登陆系统图形化界面
#asmca
在这里插入图片描述
在终端,执行语句:#asmca
在这里插入图片描述
在这里插入图片描述
4.1在磁盘组页面点create创建
在这里插入图片描述
4.2选择单1磁盘,并勾选新增的磁盘
asmca创建磁盘组,注意compatibity参数
在这里插入图片描述
4.3成功后显示新增的磁盘组
在这里插入图片描述

2.3使用新ASM磁盘组替换原有的ASM磁盘

①查看原有磁盘情况(使用grid用户)
#crsctl query css votedisk
在这里插入图片描述
②替换ASM磁盘,并查询,发现已经更换为ZSDG
#crsctl replace votedisk +zydg
在这里插入图片描述
再次练习替换回去data磁盘
在这里插入图片描述
③替换为制定路径的ASM
#crsctl replace votedisk /dev/asmdisk2
a.删除原来的表决磁盘
进入图形化界面,终端执行asmca
在这里插入图片描述
b.选择ZYDG,右键选择 Drop
在这里插入图片描述
c.执行替换为路径的磁盘
#crsctl replace votedisk /dev/asmdisk2
在这里插入图片描述
提示出错,由于以ZYDG方式添加的时候,磁盘头已经存在数据或变更,需格式化或删除磁盘头:
格式化磁盘,清楚磁盘已有信息
#dd if=/dev/zero of=/dev/asmdisk2 bs=1M count=10
在这里插入图片描述
d.再次执行替换为路径的磁盘
#crsctl replace votedisk /dev/asmdisk2
可看出,asm磁盘已变更,磁盘组为空。
在这里插入图片描述

03-OCR管理:

OCR 负责维护整个集群的配置信息,包括RAC以及Clusterware资源,包括的信息有节点成员、数据库、实例、服务、监听器、应用程序等。OCR也是存储在ASM磁盘组中。
①ocrcheck用于检查OCR配置
在这里插入图片描述
②OCR两种备份方式选择:
ocrconfig -manualbackup and ocrconfig -restore
ocrconfig -export and ocrconfig -import
一般建议是通过第一种方式进行备份和恢复。
ocrconfig –manualbackup
产生的是二进制文件
/u01/app/11.2.0.4/grid/cdata/rac-scan/backup_20181219_154008.ocr
ocrconfig –manualbackup
在这里插入图片描述
查看备份:
ocrconfig –showbackup
在这里插入图片描述
查看二进制内容:
ocrdump -backupfile /u01/app/11.2.0.4/grid/cdata/rac-can/backup_20181122_152722.ocr
展示到屏幕:
ocrdump -backupfile /u01/app/11.2.0.4/grid/cdata/rac-can/backup_20181122_152722.ocr -stdout
在这里插入图片描述
在这里插入图片描述
OCR位置:
/etc/oracle/ocr.loc
ocrconfig_loc=+DATA
local_only=FALSE
在这里插入图片描述
使用ocrconfig备份恢复:
ocrconfig -export ocr.exp(root执行)
ocrconfig -import ocr.exp
在这里插入图片描述
③添加一个ocr:
ocrconfig -add +zydg
a.查看正在使用磁盘,并更换为data
在这里插入图片描述
在这里插入图片描述
b.格式化清除被使用的磁盘头
#dd if=/dev/zero of=/dev/asmdisk2 bs=1M count=10
在这里插入图片描述
c.创建磁盘组
在这里插入图片描述
添加orc:
ocrconfig -add +zydg
ocrcheck
在这里插入图片描述
查看ocr在新添加的zydg中的配置文件:
在这里插入图片描述
④删除==(root才有权限)==
ocrconfig -delete +zydg
在这里插入图片描述

04-集群组件状态查看

4.1停止和启动集群服务(root下执行)

#crsctl stop|start has(root下执行,当前节点有效)
#crsctl stop|start crs
在这里插入图片描述
在这里插入图片描述
查看高可用服务has是否开机自启动
#crsctl config has
#crsctl disable has(开机不自启动)
#crsctl enable has(开机自启动)
在这里插入图片描述
停止所有节点集群服务
#crsctl stop cluster -all

4.2应用层

srvctl,onsctl,crs_stat
srvctl:对集群资源进行操作
crsctl:对集群组件进行操作

查看数据状态:
srvctl status
srvctl status -h
在这里插入图片描述
①查看数据库实例状态:
#srvctl status database -d zydb
#srvctl status database -d zydb -v
在这里插入图片描述
②检查单个实例状态
#srvctl status instance -d zydb -i zydb1
#srvctl status instance -d zydb -i zydb2
在这里插入图片描述
③查看节点运用程序状态
#srvctl status nodeapps
在这里插入图片描述
④检查监听状态
#srvctl status listener
#srvctl status listener -n ouzy01
#srvctl status listener -l listener
在这里插入图片描述
⑤查看asm实例状态
#srvctl status asm
#srvctl status asm -v
#srvctl status asm -a
在这里插入图片描述
在这里插入图片描述
⑥查看vip状态
#srvctl status vip -n ouzy01
#srvctl status vip -n ouzy02
在这里插入图片描述
⑦查看服务service状态
#srvctl status service -d zydb
在这里插入图片描述

05-集群各组件资源配置查看

查看组件配置
srvctl config
srvctl config-h
在这里插入图片描述
①查看数据库的配置
#srvctl config database(列出数据库)
#srvctl config database -d zydb -a -v
在这里插入图片描述
在这里插入图片描述
②查看监听配置
#srvctl config listener
#srvctl config listener -a
#srvctl config listener -l listener
在这里插入图片描述
③查看ASM配置
#srvctl config asm
#srvctl config asm -a
在这里插入图片描述
④查看SCAN配置
#srvctl config scan
#srvctl config scan_listener
#srvctl status scan_listener
在这里插入图片描述
在这里插入图片描述
查看监听listener_scan1状态,需看SCAN目前在哪个节点:
#lsnrctl status listener_scan1
在这里插入图片描述
⑤查看vip配置
#srvctl config vip -n ouzy01
#srvctl config vip -n ouzy02在这里插入图片描述
⑥查看节点应用程序配置
#srvctl config nodeapps
在这里插入图片描述
⑦查看服务配置
#srvctl config service -d zydb

06-集群时钟验证

①验证所有集群节点间的时钟:
cluvfy
#cluvfy comp clocksync -n ouzy01,ouzy02 -verbose
在这里插入图片描述

在这里插入图片描述

07-集群数据库和实例操作

①查看数据库和实例(PLSQL下查看)
表:v i n s t a n c e g v instance(当前连接节点)、gv instance(全部节点)
select * from v i n s t a n c e ; s e l e c t f r o m g v instance; select * from gv instance;
在这里插入图片描述

②启动、关闭数据库(对集群中所有实例操作)
sqlplus / as sysdba
startup,shutdown immediate
#srvctl start database -d zydb
#srvctl stop database -d zydb
在这里插入图片描述
在这里插入图片描述
③查看数据库实例状态
#ps -ef|grep ora_
#srvctl status instance -h
#srvctl status instance -d zydb -n ouzy01
#srvctl status instance -d zydb -n ouzy02
在这里插入图片描述

④对单个实例操作启动关闭
#srvctl start instance -d zydb -i zydb1
#srvctl stop instance -d zydb -i zydb1
#srvctl status instance -d zydb -n ouzy01
在这里插入图片描述
⑤启动到nomount、mount、open状态
startup nomount,mount,open
shutdown immediate,abort
#srvctl start instance -d zydb -i zydb1 -o nomount/mount
#srvctl stop instance -d zydb -i zydb1 -o immediate/abort
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

08-地址漂移

①虚拟VIP地址漂移问题
virtual IP
#srvctl status vip -n ouzy01
#srvctl status nodeapps
在这里插入图片描述
在这里插入图片描述
VIP漂移
模拟:关闭节点1
#srvctl status vip -n ouzy01
#srvctl status nodeapps
在这里插入图片描述
漂移过去的IP地址是无法用来连接数据库,监听器并没有监听到这个地址
在这里插入图片描在这里插入图片描述述
在这里插入图片描述
当挂掉的节点启动后,VIP又会漂移回去。

②SCAN IP漂移
#srvctl status scan
在这里插入图片描述
在这里插入图片描述
关闭节点2后,scan ip漂移到节点1上
在这里插入图片描述
crsctl stop has ,scan、vip都会发生漂移。
在这里插入图片描述

09-ASM磁盘组管理

9.1 什么是ASM实例,作用,如何创建ASM实例

自动存储管理(Automatic Storage Management,ASM)是Oracle内置的逻辑卷管理器,它进一步简化了数据库管理的工作,是Oracle强烈推荐使用的存储管理机制。利用ASM,把多个磁盘以磁盘组的形式组织在一起,作为一个整体,为Clusterware和数据库提供存储空间, RAC集群中多个节点之间共享的文件都可以存储在磁盘组中。利用ASM,还可以实现磁盘的镜像和条带功能,从而提供数据库系统的性能,保证数据安全。
高冗余3,普通冗余2,外部冗余1

ASM是Oracle推荐使用的文件存储机制,在单机版数据库中使用不多,但在RAC环境下使用非常广泛。NFS

为了使用ASM磁盘组,在每个节点上需要运行一个ASM实例。

ASM实例与数据库实例是相互独立的,在启动ASM实例时并不需要启动数据库实例,但在启动数据库实例时,ASM实例必须已经启动。
在这里插入图片描述
回顾配置共享存储:
udev
路径:/etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c2982aeea65586d844b9c93832e5", NAME="asmdisk1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29ef3dbdc08588624fd8efbbe65", NAME="asmdisk2", OWNER="grid", GROUP="asmadmin", MODE="0660"

重新加载udev
#udevadm control --reload-rules

启动:#start_udev
ll /dev/asm* 注意权限是660,所属的用户和组。

使用ASM必须先安装grid软件 3of7。

asmca图形配置界面
dbca创建数据库图形界面
Asm 实例跟数据库实例一样也有 spfile。也有 SGA 和后台进程。
spfile配置文件:
sqlplus / as sysasm
show parameter spfile;
show parameter instance_type
show parameter instance_name
show parameter asm_power_limit(磁盘重新平衡)
show parameter asm_diskgroups(自动挂载的磁盘组)
show parameter asm_diskstring(创建asm磁盘的搜索路径)
/dev/asm*,/dev/ocr*
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
【ASM操作】
srvctl status asm
srvctl start asm
srvctl stop asm
在这里插入图片描述

9.2 磁盘组管理(创建、删除,添加磁盘、信息查询、磁盘重平衡、卸载挂载)

磁盘组是指一组磁盘,Oracle通过ASM技术将多个磁盘组织在一起,使它们作为一个整体向数据库提供存储空间。数据库运行时,数据将平均分布在磁盘组的各个磁盘上。条带功能。
数据库管理员可以在不关闭数据库的情况下向磁盘组中添加新磁盘,或者删除磁盘。在添加或删除磁盘时,ASM实例将重新平衡磁盘。
asmca,命令,em
冗余类型:
high3,normal2,external
硬盘sda,sdb
sda1,sda2,sda3
①PLSQL下查磁盘组合磁盘信息的视图:
v a s m d i s k g r o u p g v asm_diskgroup gv asm_diskgroup
v$asm_disk
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
②命令创建磁盘组(sqlplus / as sysasm)

create diskgroup zydg external redundancy disk '/dev/asmdisk2';
create diskgroup zydg external redundancy disk '/dev/asmdisk2' attribute 'compatible.asm'='11.2';

挂载
alter diskgroup zydg mount;挂载磁盘组
在这里插入图片描述
注意:
在1个节点通过命令创建asm磁盘组自动mount,其他节点不会挂载,需要手动mount

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
alter diskgroup zydg mount;挂载磁盘组
alter diskgroup zydg dismount;卸载磁盘组
alter diskgroup zydg dismount force;强制卸载
drop diskgroup zydg ;先在其他节点卸载磁盘组dismount
drop diskgroup zydg including contents;如果磁盘组有文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
③ 图形化界面均可完成磁盘的挂载删除操作:
在这里插入图片描述
④ 磁盘组中磁盘的添加和删除
可以在不关闭数据库的情况下,向磁盘组中添加、删除磁盘,
然后asm实例将对磁盘组数据进行重新平衡。
create diskgroup zydg external redundancy disk ‘/dev/asmdisk2’ attribute ‘compatible.asm’=‘11.2’;
alter diskgroup zydg add disk ‘/dev/asmdisk3’ name asmdisk3;
alter diskgroup zydg mount;

asm磁盘,故障组(failgroup),磁盘组:
normal,high
create diskgroup zydg normal redundancy
failgroup fg1 disk
‘/dev/asmdisk1’ name asmdisk1,
‘/dev/asmdisk2’ name asmdisk2,
failgroup fg2 disk
‘/dev/asmdisk3’ name asmdisk3,
‘/dev/asmdisk4’ name asmdisk5;

删除磁盘:
alter diskgroup zydg drop disk asmdisk3;

⑤磁盘组的重新平衡:
当磁盘组中的磁盘数目发生改变时,ASM实例将对其自动进行一次重新平衡,将磁盘组中的内容重新平均分布到现有的各个磁盘上。用户也可以手工对磁盘组进行平衡。
磁盘组的平衡能力从0-11,0表示停止平衡操作,11表示速度最快。指定的级别越高,消化的系统资源就越多。
asm_power_limit
(show parameter asm_pow)
重新平衡
alter diskgroup zydg rebalance power 3;
alter diskgroup zydg rebalance;
视图:select * from v$asm_operation;
alter diskgroup zydg rebalance wait;
alter diskgroup zydg rebalance nowait;
在这里插入图片描述
⑥磁盘组的挂载和卸载:
asm_diskgroups (自动挂载)
alter diskgroup zydg mount;
alter diskgroup all mount;
alter diskgroup zydg dismount;
alter diskgroup zydg dismount force;
在这里插入图片描述

磁盘组中的目录结构:
在磁盘组中包含一套完整的目录层次,这些目录是由ASM实例或者数据库实例自动创建的,OCR文件、voting文件以及数据库文件都存储在这些目录中。
磁盘组中的文件名称是由实例自动产生的。
数据文件:
select * from v d b f i l e ; s e l e c t f r o m v dbfile; select * from v datafile;
select * from dba_data_files;
临时文件:
select * from v t e m p f i l e ; s e l e c t f r o m d b a t e m p f i l e s ; : s e l e c t f r o m v tempfile; select * from dba_temp_files; 重做日志文件: select * from v logfile;
控制文件:
select * from v c o n t r o l f i l e ; ( v controlfile; 系统为每一个文件指定一个别名。(视图) v asm_alias;
v$asm_file;
asmcmd(磁盘组要挂载。)
在这里插入图片描述
在这里插入图片描述
【ASM操作】
创建目录:
alter diskgroup zydg add directory ‘+zydg/dir1’;
alter diskgroup zydg add directory ‘+zydg/dir2/dir22’;(需要上一级目录存在)

alter diskgroup zydg add directory ‘+zydg/dir1/dir11’;

alter diskgroup zydg rename directory ‘+zydg/dir1/dir11’ to ‘+zydg/dir1/dir12’;(改名)
alter diskgroup zydg drop directory ‘+zydg/dir1/dir12’;(目录为空)
alter diskgroup zydg drop directory ‘+zydg/dir1/dir12’ force;
在这里插入图片描述
为文件指定别名:

alter diskgroup data add alias '+data/us.dbf' for '+DATA/zydb/datafile/users.264.991306735';
alter diskgroup data drop alias '+data/us.dbf';(删除别名)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.3 磁盘组使用(文件命名规则,OMF文件)

使用ASM磁盘组:
OMF ----oracle managed files
创建数据库时,需要指定数据文件、控制文件、重做日志文件的名称、存储位置、大小、是否自动扩展等信息。使用OMF可以简化文件的管理,也称为自动文件管理。

ASM支持的数据结构:
表空间
重做日志文件
控制文件
归档日志文件
RMAN备份文件

开启Oracle自动文件管理:
DB_CREATE_FILE_DEST
DB_CREATE_ONLINE_LOG_DEST_n
DB_RECOVERY_FILE_DEST
db_recovery_file_dest_size

1、DB_CREATE_FILE_DEST:表空间中数据文件的默认存储位置。如果没有明确指定存储位置,数据文件将使用这个参数的值做为存储位置。如果DB_CREATE_ONLINE_LOG_DEST_n也没有设置,那么也做为重做日志文件和控制文件的默认存储位置。

2、DB_CREATE_ONLINE_LOG_DEST_n用来做为重做日志文件和控制文件的默认存储位置。n为1-5。

3、DB_RECOVERY_FILE_DEST用来做为RMAN备份文件的默认存储位置。如果没有通过其他方式为归档日志文件指定存储位置则使用这个。

如果没有指定DB_CREATE_ONLINE_LOG_DEST_n,则使用DB_RECOVERY_FILE_DEST做为重做日志文件和控制文件的存储位置。
在这里插入图片描述
1️⃣创建表空间:
create tablespace zytbs1;
初始大小100M,是自动扩展,每次100M
在这里插入图片描述
在这里插入图片描述
create tablespace zytbs2 datafile size 200m autoextend on next 50m;
指定磁盘组:
create tablespace zytbs3 datafile ‘+zydg’;

向表空间添加数据文件:
alter system set db_create_file_dest=’+zydg’ scope=both;
alter tablespace zytbs3 add datafile size 50m autoextend on next 50m;

2️⃣创建重做日志文件:
由(DB_CREATE_FILE_DEST、
DB_CREATE_ONLINE_LOG_DEST_n、
DB_RECOVERY_FILE_DEST)共同决定。
在这里插入图片描述
alter database add logfile;
默认100M,无需指定组号。
alter database add logfile group 6 size 200m;(指定组号)
alter database add logfile group 7 ‘+data’ size 50m;(指定磁盘组)
alter database add logfile thread 2 group 8 ‘+data’ size 50m;(指定在某个实例)

alter database add logfile thread 2 group 9 (’+data’,’+data’) size 50m;(同时生成多个文件)

alter database drop logfile group 9;
status状态为active,current是不能删除的
inactive,unused都可以删除。
在这里插入图片描述

(ONLINE +DATA/zydb/onlinelog/group_4.266.1010232111 NO)
3️⃣向日志组添加、删除日志成员:
alter database add logfile member ‘+zydg’ to group 4;
alter database drop logfile member ‘+DATA/zydb/onlinelog/group_4.266.1010232111’;
(手工命令切换日志组:
alter system switch logfile;
alter system checkpoint;
在这里插入图片描述
在这里插入图片描述

改变日志文件大小位200m,保持日志组号不变。
alter database add logfile group 6 size 200m;(日志组至少2个,新建用于过度)
alter database add logfile group 1 size 200m;
alter database add logfile group 2 size 200m;
alter database add logfile group 3 size 200m;
alter database add logfile group 4 size 200m;
在这里插入图片描述
4️⃣RAC环境开启归档模式
查看状态:archive log list;
在这里插入图片描述
开启归档:
1.关闭实例
srvctl stop database -d zydb
2.启动所有实例到Mount
srvctl start database -d zydb -o mount
在这里插入图片描述
在这里插入图片描述
3.开启归档
log_archive_dest_1
log_archive_format
alter system set log_archive_format=’%t_%s_%r.arc’ scope=spfile;

alter system set log_archive_dest_1=‘LOCATION=+data’ scope=both sid=‘zydb1’;
alter system set log_archive_dest_1=‘LOCATION=+zydg’ scope=both sid=‘zydb2’;
在这里插入图片描述
先重启实例,使上诉设置生效,然后执行修改归档。
alter database archivelog;
在这里插入图片描述
在这里插入图片描述
每个节点执行归档日志切换,将产生归档日志文件,路径即为上面定义的归档路径。
alter system switch logfile;
select * from v$archived_log;
在这里插入图片描述
在这里插入图片描述

9.4 asmcmd命令使用

【asmcmd命令行工具使用】
磁盘组需要mount状态
文件管理命令:
cd 切换目录
du 显示已经使用的磁盘空间在指定的目录(包括子目录)
ls 显示ASM目录下的内容
lsof 显示本地客户端已打开的文件
mkdir 创建ASM目录
pwd 显示当前目录的路径
rm 删除指定的文件或目录
在这里插入图片描述
磁盘组管理命令
lsdsk 显示ASM磁盘
lsod 显示已打开的设备
在这里插入图片描述

实例管理命令
shutdown 关闭ASM实例
startup 启动ASM实例
11gR2中引入了pgnp profile(Grid Plug and Play),用于存放ASM参数文件路径,这允许oracle在ASM实例启动以前读到参数文件。
<gi_home>/gpnp/<node_name>/profiles/peer/profile.xml
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ASM实例启动时候,寻找参数文件的顺序:

  1. Grid Plug and Play (GPnP) profile
  2. spfile+ASM<node_number>.ora
  3. init+ASM<node_number>.ora

spget 返回ASM SPFILE的位置从GPnP profile
spset 设置ASM SPFILE的位置
在这里插入图片描述
spbackup 备份ASM SPFILE,不影响GPnP profile;备份文件不能识别成SPFILE,不能用spcopy拷贝。必须用cp命令拷贝这个文件。
spbackup +DATA/rac-scan/asmparameterfile/registry.253.1010220097 +data/253.ora
在这里插入图片描述
spcopy 拷贝ASM SPFILE,在同一个磁盘组不能拷贝多份,但是可以拷贝到不同的磁盘组或者文件系统,如果更新GPnP profile,则用-u选项或用spset命令
spcopy +DATA/rac-scan/asmparameterfile/registry.253.1010220097 +zydg/2532.ora
spcopy +DATA/rac-scan/asmparameterfile/registry.253.1010220097 /tmp/253.ora
spcopy /tmp/spfile253.ora +zydg/spfile253.ora
spcopy -u /tmp/621.ora +zydg/621spfile.ora
在这里插入图片描述
在这里插入图片描述
spset +DATA/rac-scan/asmparameterfile/registry.253.1010220097
spmove 移动ASM SPFILE,自动更新GPnP profile.当SPFILE被ASM实例打开时不能被移动
spmove /tmp/621.ora +zydg/621.ora
在这里插入图片描述

10-RAC网络维护

管理网络(修改VIP,私有地址,公有地址public,SCAN IP)
当RAC集群环境投入使用之后,如果发现节点的IP由于某些原因需要更改,那就需要对其进行修改。因为节点的IP地址配置信息都记录在OCR中,为了使新的IP地址生效,需要修改/etc/hosts文件,还要修改OCR中的信息。
在这里插入图片描述

10.1- 修改SCAN IP地址:

在RAC 11.2中,SCAN是Oracle推荐使用的IP地址。尽管SCAN不是必须使用的,
但是客户端应用程序通过SCAN,可以把请求轮流发到各个节点上。
srvctl config scan
SCAN name: rac-scan, Network: 1/192.168.230.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /rac-scan/192.168.230.100
在这里插入图片描述
srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node ouzy02
在这里插入图片描述
srvctl status scan_listener
srvctl config scan_listener
lsnrctl status LISTENER_SCAN1
在这里插入图片描述
root下执行:
srvctl stop scan_listener
srvctl stop scan
在这里插入图片描述
②修改/etc/hosts文件 (节点1、2均修改)
vi /etc/hosts
srvctl modify scan -n rac-scan
srvctl start scan
srvctl start scan_listener

lsnrclt status scan_listener

srvctl config scan
srvctl status scan
srvctl config scan_listener
lsnrctl status LISTENER_SCAN1
在这里插入图片描述
两个节点均需要修改,如下提示没有服务?原因1:节点2未修改scan,服务未重启。
在这里插入图片描述
③修改节点2,并重启服务
节点2:vi /etc/hosts
节点1、2:
crsctl stop has
crsctl start has

srvctl config scan
srvctl status scan
srvctl config scan_listener(看看监听是否注册)
lsnrctl status LISTENER_SCAN1

select * from gv$instance;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.2- 修改VIP地址

ip addr / ifconfig
在这里插入图片描述
①查看VIP
srvctl status vip -n ouzy01
srvctl status vip -n ouzy02
在这里插入图片描述
srvctl config vip -n ouzy01
srvctl config vip -n ouzy02
在这里插入图片描述
srvctl stop listener -n ouzy01
srvctl stop listener -n ouzy02
在这里插入图片描述
srvctl stop vip -n ouzy01
srvctl stop vip -n ouzy02
在这里插入图片描述
在这里插入图片描述
②root修改/etc/hosts (节点1、2均需要修改)
vi /etc/hosts
srvctl modify nodeapps -n ouzy01 -A 192.168.230.113/255.255.255.0/eth0
srvctl modify nodeapps -n ouzy02 -A 192.168.230.114/255.255.255.0/eth0
在这里插入图片描述
在这里插入图片描述
srvctl config vip -n ouzy01
srvctl config vip -n ouzy02
srvctl start vip -n ouzy01
srvctl start vip -n ouzy02
在这里插入图片描述
在这里插入图片描述
srvctl start listener -n ouzy01
srvctl start listener -n ouzy02
在这里插入图片描述
在这里插入图片描述
③修改Oracle配置
show parameter local_li
在这里插入图片描述
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.230.103)(PORT=1521))

alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.230.113)(PORT=1521))' sid='zydb1';
alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.230.114)(PORT=1521))' sid='zydb2';

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.2- 修改公有和私有IP地址

10.2.1- 修改公有IP地址(public)

IP地址、子网掩码、网卡名称eth0,eth1,eth2…
oifcfg getif
eth0 192.168.230.0 global public
eth1 11.11.11.0 global cluster_interconnect
在这里插入图片描述
192.168.230.111 ouzy01
192.168.230.112 ouzy02
192.168.231.0

①修改/etc/hosts(节点1、2均需要修改)
vi /etc/hosts
修改网卡IP
cd /etc/sysconfig/network-scripts/
vi ifcfg-eth0
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
crsctl stop has
修改网卡IP(重新启动网卡)
service network restart
crsctl start has
crs_stat -t
在这里插入图片描述

10.2.1- 修改私有IP地址(cluster_interconnect)

11.11.11.0->10.10.10.0
10.10.10.11 ouzy01-priv
10.10.10.12 ouzy02-priv

gpnp(受影响)

oifcfg getif
eth0 192.168.230.0 global public
eth1 11.11.11.0 global cluster_interconnect
在这里插入图片描述
oifcfg setif -global eth1/10.10.10.0:cluster_interconnect
oifcfg delif -global eth1/11.11.11.0:cluster_interconnect
在这里插入图片描述
oifcfg getif
在这里插入图片描述
修改配置:(节点1、2)
vi /etc/hosts
在这里插入图片描述
修改IP地址:(节点1、2)
cd /etc/sysconfig/network-scripts/
vi ifcfg-eth1
在这里插入图片描述
在这里插入图片描述
重启2个节点,然后查看状态
检查实例状态和gpnp:
oifcfg getif
crs_stat -t
/u01/app/11.2.0.4/grid/gpnp/ouzy01/profiles/peer/profile.xml
ip addr
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
问题:
如只有一个节点能够启动数据库实例
在这里插入图片描述
检查节点1和节点2中的rac01.vmx文件是否包含disk.locking=“false”
若没有,手动添加:disk.locking=“false”
在这里插入图片描述

11-RAC-HA高可用和LB负载均衡

【HA和LB】
HA:High Availiablity高可用
LB:Load balance负载均衡,把负载平均的分配到集群中的各个节点,从而提供整体的吞吐能力。
可用性是指一个系统可用使用时间的比率。
业界普遍使用平均故障间隔时间(MTTF)和平均故障修复时间(MTTR)作为评价可用性的度量标准。
公式:
可用性=MTTF/(MTTF+MTTR)
如果一个服务器连续运行了6个月出现了一次故障,用20分钟修复了这个故障,那么可用性就是:
6个月/(6个月+20分钟)*100%=99.92%
在这里插入图片描述

RAC能提供最高级别的可用性,只要RAC中有一个节点能工作,就不会影响对外服务,RAC中所有节点同时宕机概率远小于的单个节点,节点越多概率越小,从理论上RAC能提供最高级别的可用性。
DataGuard环境中只有一个节点提供服务,一旦出现故障不会自动切换到另一台主机,必须人工介入,从发现问题到解决问题整个过程至少也得几分钟,
所以DataGuard只适用于普通的高可用性,但是DataGuard提供了数据的高安全性。

Failover(故障转移):
Oracle RAC高可用的技术基础是Failover,就是指集群中任何一个节点的故障都不会影响用户使用,连接到故障节点的用户会被自动转移到健康节点,用户感知不到这种切换。

SCAN(Single Client Access Name,单一的客户端访问名称)是Oracle 11gR2中引入的一个非常重要的特性,通过它可以实现负载均衡地连接到RAC数据库。
SCAN提供统一的名称来访问集群,不需要像10g那样在每个访问数据库的客户端配置多个VIP地址实现负载均衡。
添加或删除节点的情况下也不需要对客户端做任何配置的修改,就可以实现所有节点的负载均衡。
注意:SCAN只能实现负载均衡,如果要实现自动Failover,需要使用Service服务。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本地监听:公共IP和VIP
SCAN监听器:SCAN VIP

TAF(Transparent Application Failover)透明应用程序故障转移
现在大部分的应用系统(比如tomcat)都是启动时就建立若干到数据库的长连接,在应用程序整个生命周期内重用这些连接。未提交的事务会回滚。
连接建立以后,应用系统运行过程中,如果某个实例发生故障,连接到这个实例上的用户会被自动迁移到其他的健康实例上。
JDBC不支持TAF。

TAF:
1.client-side TAF 10g
2.server-side TAF

Method(用于定义何时创建到其他实例的连接。):
basic:感知到节点故障时才创建到其他实例的连接。在Failover时会有延迟。
preconnect:在最初建立连接时就同时建立到所有实例的连接,当发生故障时,立刻就可以切换到其他链路上。没有延迟,但是会建立多个连接,消耗更多的资源。
用时间换资源,用资源换时间。

type(用于定义发生故障时对完成的SQL语句如何处理):
2种方式都对未提交的事务进行回滚。
select:用户正在执行的select语句会被转移到新的实例上,在新节点上继续返回后续结果集,已经返回的记录集抛弃。
session:重新执行select语句。
在这里插入图片描述

CTAF =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.230.113)(PORT = 1521))
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.230.114)(PORT = 1521))
     (LOAD_BALANCE = yes)
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = zydb)
       (FAILOVER_MODE =
        (TYPE = select)
        (METHOD = basic)
        (RETRIES = 180)
        (DELAY = 5)
        )
     )
   )

sqlplus zyuser/zyuser@ctaf
select v.username,v.FAILOVER_TYPE,v.FAILOVER_METHOD,v.FAILED_OVER from v$session v;
在这里插入图片描述

11.2 server-side TAF

server-side TAF
这种TAF是在服务端配置,不像client-side TAF是在客户端配置。
如果需要微调参数,则要更改所有的客户端,低效又容易出错。
Server-side结合service,在服务端配置TAF,客户端TNS文件就不需要任何TAF的配置选项。
要想使用server-side TAF必须配置Service。
①添加service:
-r 首选实例zydb1,zydb2
-a 备选实例,

srvctl add service -d zydb -s staf -r zydb1,zydb2 -P BASIC -e select -m BASIC -w 5 -z 180

-r fxdb1 -a fxdb2

srvctl status service -d zydb
select * from dba_services;
srvctl start service -d zydb -s staf
srvctl config service -d zydb -s staf
srvctl modify service 修改service配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试server-side TAF:
lsnrctl status LISTENER_SCAN1
sqlplus zyuser/[email protected]:1521/staf
select instance_name from v$instance;
ip addr
在这里插入图片描述
在这里插入图片描述
如果关闭SCAN所在的主机,客户端也不会断掉,会卡几秒钟,等待SCANIP漂移到另一个节点就可以正常执行了。

②停止/删除servicestaf
srvctl status service -d zydb -s staf
srvctl stop service -d zydb -s staf
srvctl remove service -d zydb -s staf
srvctl config service -d zydb -s staf
在这里插入图片描述
注意:删除服务后,若服务未重启,数据库还能查询到staf服务
使用如下过程语句删除:

begin
dbms_service.delete_service(service_name => 'staf');
end;
/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
③测试STAF负载均衡:
文档内容test.sh:
vi test.sh
chmod 777 test.sh

#!/bin/sh
count=0
while [ $count -lt $1 ]
do
     count=`expr $count + 1`
     sqlplus -s zyuser/[email protected]:1521/staf @test.sql
done

在这里插入图片描述
在这里插入图片描述
文档内容test.sql:
vi test.sql

test.sql
col instance_name format a20
select instance_name from v$instance
/
exit;

在这里插入图片描述

执行并保存日志:
./test.sh 1000 >>test.log
在这里插入图片描述
[oracle@fanxin01 ~]$ grep zydb1 test.log|wc -l
536
[oracle@fanxin01 ~]$ grep zydb2 test.log|wc -l
464
在这里插入图片描述
在这里插入图片描述

12- RAC集群时间同步CTSS和NTP

RAC1 RAC2
时间保持一致:
在这里插入图片描述
在这里插入图片描述
Insert insert init xxx value(sysdate);
从Oracle11gR2 RAC开始使用Cluster Time Synchronization Service(CTSS)同步个节点的时间,当安装程序发现NTP协议处于非活动状态时,安装集群时间同步服务将已活动模式(active)自动进行安装并同步所有节点的时间。如果发现配置了NTP,则以观察者模式(observer mode)启动集群时间同步服务,Oracle Clusterware不会再集群中进行活动的时间同步。
在这里插入图片描述
①root打开NTP协议
cp /etc/ntp.bak /etc/ntp.conf

su - grid
[grid@ouzy01 ~]$ crsctl check ctss
CRS-4700: The Cluster Time Synchronization Service is in Observer mode.
crsctl stat res -t -init
在这里插入图片描述
在这里插入图片描述
②删除NTP协议文件,再次测试
在这里插入图片描述
说明:
在RAC中,集群的时间应该是保持同步的,否则可能导致很多问题,例如:
a.应用程序业务数据絮乱;
b.各种日志打印的顺序絮乱
c.可能会导致集群宕机或者重新启动集群时节点无法加入集群。

在Oracle11R2前,集群的时间是有NTP同步的,在11gR2后,Oracle引入了CTSS组件,如果系统没有配置NTP,则由CTSS来同步集群时间。

NTP和CTSS是可以共存的,NTP的优先级要高于CTSS,如果系统中同时有NTP和CTSS,那么集群的时间由NTP同步的,CTSS会处于观察者(Observer)模式,只有当集群关闭所有的NTP服务,CTSS才会处于活动(Active)模式。在一个集群中,只要有一个节点的NTP处于活动状态,那么集群的所有节点的CTSS都会处于非激活(Observer)模式。

校验集群的时间:
cluvfy comp clocksync -n all -verbose
在这里插入图片描述
cp /etc/ntp.bak /etc/ntp.conf

CTSS以slew time synchronization方式调整时间,并且从不将时间回调,确保系统时间始终增长。
实验:将其中一台的时间修改掉:
crsctl check ctss
查看日志:
/u01/app/11.2.0.4/grid/log/ouzy02/ctssd
tail -f octssd.log(查看实时日志)
重启,然后再次查看时间同步服务
在这里插入图片描述
在这里插入图片描述
启动/停止
crsctl stat resource ora.ctssd -t -init
crsctl start res ora.ctssd -t -init
crsctl stop res ora.ctssd -t -init
日志:/u01/app/11.2.0.4/grid/log/ouzy02/ctssd/octssd.log
重启同步主节点的时间。
在这里插入图片描述

12.2 时间同步:

1、使用ntpdate,结合crontab定时同步
ntpdate ntp.aliyun.com
203.107.6.88
0 */3 *** /user/sbin/ntpdate ntp.aliyun.com$$/sbin/hwclock -w

  • 1/ * * * root /usr/sbin/ntpdate 10.0.7.149;hwclock -w

2、使用ntp服务
如果本机与上源时间相差太大,ntpd不运行。

猜你喜欢

转载自blog.csdn.net/qq_41141058/article/details/90049003