checkpoint、cache fusion、OCR、GCS、GES、GRD、负载均衡、srvctl命令

来源:互联网 发布:网络主播毒药黄播 编辑:程序博客网 时间:2024/06/11 00:20

1、checkpoint理解

数据库DML操作提交以后,dbwr进程并不会立即将脏数据回写到磁盘,而是等待SCN号到来,才调用dbwr进程将数据写回到磁盘

checkpoint发生过程:

2、chenckpoint发生条件

a.alter system switch logfile

b.alter system checkpoint

c.对数据文件进行热备份 alter tablespace tablespace_name begin backup

d.shutdown immediate

3、checkpoint发生过程

a.checkpoint进程开始一个checkpoint事件,并记录下checkpoint RBA,这个通常是当前的RBA

b.checkpoint进程通知DBWn进程将所有checkpoint RBA之前的buffer cache里面的脏块写入磁盘

c.checkpoint进程将checkpoint信息(SCN)写入/更新数据文件和控制文件中

4、checkpoint相关参数及视图

log_checkpoint_interval:设定两次checkpoint之间重做日志块(重做日志块和系统数据块是一样的)数,当重做日志块数量达到设定值的时候将触发checkpoint

log_checkpoint_timeout:设定两次checkpoint之间的间隔时间,当超时值达到时增量checkpoint将被触发。Oracle建议不用这个参数来控制,因为事务(transaction)大小不是按时间等量分布的。将此值设置成0时将禁用此项设置。

fast_start_io_target:因为log_checkpoint_interval主要看的时候重做日志块的数量,并不能反应buffer cache中脏数据块的修改,因此Oracle又引入了这个参数来实现当脏数据块达到一定数量的时候触发checkpoint,不过此参数实际上控制的是恢复时所需IO的数量

fast_start_mttr_target:fast_start_mttr_target可以设定的最大值是3600,即一个小时;设置此参数的时候要综合考虑系统的IO,容量以及CPU等信息;将此参数设置成0时将禁用 fast-start checkpointing;fast_start_io_target or log_checkpoint_interval被指定,他们会自动覆盖由fast_start_mttr_target参数计算出来的值

log_checkpoint_to_alert:设置以后系统的checkpoint将会被记录alert_$SID.log文件中



5、cache fusion理解

Cache Fusion就是通过互联网络在集群内各节点的SGA之间进行块传递,以避免首先将块推送到磁盘,然后再重新读入其他实例的缓存中这样一种低效的实现方式(OPS的实现)。当一个块被读入RAC环境中某个实例的缓存时,该块会被赋予一个锁资源(与行级锁不同),以确保其他实例知道该块正在被使用。之后,如果另一个实例请求该块的一个副本,而该块已经处于前一个实例的缓存内,那么该块会通过互联网络直接被传递到另一个实例的SGA。如果内存中的块已经被改变,但改变尚未提交,那么将会传递一个CR副本。这就意味着只要可能,数据块无需写回磁盘即可在各实例的缓存之间移动,从而避免了同步多实例的缓存所花费的额外I/O。很明显,不同的实例缓存的数据可以是不同的,也就是在一个实例要访问特定块之前,而它又从未访问过这个块,那么它要么从其他实例cache fusion过来,或者从磁盘中读入。

6、GCS、GES、GRD

GCS(global cache server):记录资源的模式、资源的角色、block在实例中的状态、在各个活动的节点发布资源的master、在必要的时候重新发布master

GES(global enqueue server):主要负责维护字典缓存和库缓存内的一致性

GRD(global resource directory):记录几点间资源请求的变化的记录


7、OCR(oracle cluster register)

Oracle Clusterware把整个集群的配置信息放在共享存储上,这些信息包括了集群节点的列表、集群数据库实例到节点的映射以及CRS应用程序资源信息。存放的位置就在OCR Disk在整个集群中,只有一个节点能对OCR Disk 进行读写操作,这个节点叫作Master Node,所有节点都会在内存中保留一份OCR的拷贝,同时有一个OCR Process 从这个内存中读取内容。 OCR 内容发生改变时,由Master Node的OCR Process负责同步到其他节点的OCR Process。

 

因为OCR的内容如此重要,所以Oracle 每4个小时对其做一次备份,并且保留最后的3个备份,以及前一天,前一周的最后一个备份。 这个备份由Master Node CRSD进程完成,备份的默认位置是$CRS_HOME/crs/cdata/<cluster_name>目录下,可以通过ocrconfig -backuploc <directory_name> 命令修改到新的目录。每次备份后,备份文件名自动更改,以反应备份时间顺序,最近一次的备份叫作backup00.ocr。这些备份文件除了保存在本地,DBA还应该在其他存储设备上保留一份,以防止意外的存储故障。


一般都还原的OCR要验证

ocrcheck

cluvfy comp ocr -n all -verbose


8、负载均衡

 GOBO4 =  

    (DESCRIPTION =  

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.61)(PORT = 1521))  

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.62)(PORT = 1521))  

      (LOAD_BALANCE = yes)  --实现负载均衡

      (CONNECT_DATA =  

        (SERVER = DEDICATED)  

        (SERVICE_NAME = GOBO4)  

      )  

    )


9、服务目标  --对应CLB_GOAL

srvctl modify service -s service_name -d database_name -j short/long


3、DTP(distributed transaction processing)分布式事务  --对应上图 DTP

srvctl modify service -s service_name -d database_name -x true


4、TAF透明程序故障转移  --对应GOAL

srvctl modify service -s service_name -d database_name -P preconnect/none/base

none:没有任何TAF策略

base:将发生故障的实例上运行的sql转移到新实例上,并重新建立连接

preconnect:与base相同,只是preconnect可提前预知故障,提前开始转移,缩短故障转移时间


5、查看及用包修改上面参数

srvctl config service -s service_name -d database_name

dbms_serive.modify_service()   --不建议使用,已经不会更新OCR注册表信息


6、创建服务

srvctl add service -s service_name -d database_name -r prod1,prod2,prod3 -a prod4,prod5 -y automatic -p base


7、启动服务

srvctl start  service -d database_name -s service_name


8、服务门限

dbms_server_alert


9、dbms_application_info   

set_module

set_client_info


10、启动和停止CRS  cluster ready service

crsctl start crs

crsclt stop crs

crsctl enable crs

crsctl disable crs

crsctl check crs

crsctl start cluster -all   --启动所有节点的CRS

crsctl stop cluster -all   --停止所有节点的CRS

crsctl enable cluster -all    --启用所有节点的CRS

crsctl disable cluster -all   --禁用所有节点的CRS

crsctl check cluster      --检查整个集群的状态


0 0
原创粉丝点击