文章目录
- 一、Oracle RAC集群 关键参数
- 1、静态参数
- 2、唯一参数
- 3、可变参数
- 4、参数实践
- 二、常用命令
- 1、crsctl:
- 2、srvctl:
- 3、asm:
- 4、OCR:
- 5、OLR:
- 6、VF:
一、Oracle RAC集群 关键参数
- RAC上的参数大致分为以下几类。
- 所有实例必须相同的参数,称为一致性参数或者静态参数
- 所有实例上必须唯一的参数,称为唯一参数
- 所有实例上可以有不同值得参数,称为可变参数
1、静态参数
active_instance_count 用于两个节点时,设置一个数据库为主实例,一个为备用实例。
如果设定值为1,则实例1作为主实例提供服务。
当主实例失败是,备用实例切换为主实例并提供服务。该参数对于2节点以上的情形不适用。
archive_lag_target 根据用户指定的时间周期切换日志
cluster_database 为true时表明为集群数据库,否则,非集群数据库.
cluster_database_ instances 集群数据库中实例的总数cluster_interconnects
该参数用来指定集群中IPC通信的网络。如果集群中有多种网络用于高速互联,需要配置该参数。
对于多个IP地址,用冒号将其隔开。Oracle根据这个参数来分散网络流量到不同的接口。compatible Oracle版本兼容参数
control_files 指定一个或多个控制文件的位置
db_block_size Oracle 数据库缺省的初始化块大小
db_domain 用于分布式数据库系统中标识一个数据库的逻辑位置
db_files 指定能被当前数据库打开的文件数
db_name 数据库名字
dml_locks 指定在一个事物中被每一个被修改的表最大的DML锁的数量
license_max_users 指定当前数据库可以创建的最大用户数
parallel_max_servers 指定一个实例并行执行或恢复时的最大进程数
remote_login_ passwordfile 指定登陆时是否使用密码文件row_locking 在更新操作期间指定是否需要使用行级锁
trace_enabled 控制执行历史,代码路径跟踪
undo_management 指定undo表空间的管理方式undo_retention 指定undo的保留时间
2、唯一参数
instance_name 为当前实例指定一个唯一的实例名
instance_number 该参数表示节点上实例的实例号
thread 该参数用来标示实例使用的redo线程。线程号与节点号/实例号没有直接关联。
rollback_ segments 为当前实例的分配一个或多个回滚段的名称
undo_tablespace 指定实例启动时使用的undo表空间
service_names 定义了数据库实例提供服务的名称。
db_unique_name 这个参数为数据库定义了一个全局唯一的名称。用于在Data Guard配置或RAC环境中,这个参数用于区分不同的数据库。
3、可变参数
SGA_TARGET 和 SGA_MAX_SIZE: 这些参数控制系统全局区(SGA)的大小。在RAC环境中,每个实例可以根据其所在服务器的内存容量和负载要求有不同的设置。
PGA_AGGREGATE_TARGET: 控制程序全局区(PGA)的大小。这也是一个可以在RAC的每个实例中独立设置的参数。
PROCESSES: 定义每个实例可以启动的进程数。不同实例可能根据其负载和硬件资源有不同的设置。
OPEN_CURSORS: 指定每个会话可以打开的游标的最大数量。这可以根据每个实例的需要进行调整。
SESSIONS: 控制每个实例可以拥有的最大会话数。这个参数通常基于PROCESSES参数设置。
DB_CACHE_SIZE: 控制缓冲区高速缓存的大小。这可以在不同的实例中独立设置,以适应不同的工作负载和内存容量。
UNDO_TABLESPACE: 指定每个实例使用的撤销表空间。在RAC环境中,通常每个实例有其专用的撤销表空间。
INSTANCE_NAME: 定义实例的名称。这显然是在每个实例中不同的。
4、参数实践
--开启强制归档
ALTER DATABASE FORCE LOGGING;
--设置 30分钟 强制归档
ALTER SYSTEM SET ARCHIVE_LAG_TARGET=1800 SCOPE=BOTH SID='*';
--设置期望undo保持时间3h
ALTER SYSTEM SET UNDO_RETENTION=21600 SCOPE=BOTH SID='*';
--关闭UNDO_RETENTION的自动调整
ALTER SYSTEM SET "_undo_autotune"=FALSE SCOPE=BOTH SID='*';
--调整session最大打开cursor数量
ALTER SYSTEM SET OPEN_CURSORS=2000 SCOPE=BOTH SID='*';
--调整trace、alert日志最大为2048m
ALTER SYSTEM SET MAX_DUMP_FILE_SIZE='2048m' SCOPE=BOTH SID='*';
--设置standby file自动管理,DG环境用处大
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SCOPE=BOTH SID='*';
--db_cache_advice,建议采用手工内存管理,避免系统性能下降
ALTER SYSTEM SET DB_CACHE_ADVICE='off' SCOPE=BOTH SID='*';
--关闭初始化extent的延迟创建功能
ALTER SYSTEM SET DEFERRED_SEGMENT_CREATION=FALSE SCOPE=BOTH SID='*';
--将DDL操作写入alert文件
ALTER SYSTEM SET ENABLE_DDL_LOGGING=TRUE SCOPE=BOTH SID='*';
--db_block_checksum 是对 block 做物理性检查,用于 DBWn 和 direct loader 数据块写入到磁盘时,基于块内的所有字节计算得出一个校验值并将其写入块头.
ALTER SYSTEM SET DB_BLOCK_CHECKSUM=FULL SCOPE=BOTH SID='*';
--启用profile 的 RESOURCE_LIMIT
ALTER SYSTEM SET RESOURCE_LIMIT=TRUE SCOPE=BOTH SID='*';
--禁用资源计划resource_manager_plan
ALTER SYSTEM SET RESOURCE_MANAGER_PLAN='force:' SCOPE=BOTH SID='*';
ALTER SYSTEM SET "_resource_manager_always_off"=TRUE SCOPE=SPFILE SID='*';
--设置控制文件保留1个月信息
ALTER SYSTEM SET CONTROL_FILE_RECORD_KEEP_TIME=31 SCOPE=BOTH SID='*';
--调整job作业能够使用的总进程数
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=100 SCOPE=BOTH SID='*';
--关闭merge join connection
ALTER SYSTEM SET "_optimizer_mjc_enabled"=FALSE SCOPE=BOTH SID='*';
--关闭result_cache查询结果缓存,场景更适用OLAT环境
ALTER SYSTEM SET RESULT_CACHE_MAX_SIZE=0 SCOPE=BOTH SID='*';
--关闭result cache功能启用情况下优化器自适应功能
ALTER SYSTEM SET "_optimizer_ads_use_result_cache" = FALSE SCOPE=BOTH SID='*';
ALTER SYSTEM SET "_optimizer_cartesian_enabled"=FALSE SCOPE=BOTH SID='*';
-- 关闭自适应游标共享参数,12c版本的自适应游标共享(隐藏参数)会带来过多子游标和ORA-04031的问题,为了避免19c遇到同样问题,建议先将其关闭(重启库后生效)。整合考虑建议保持默认值,即:开启自适应游标(默认也开启绑定变量窥探及cursor_sharing=EXACT)
--ALTER SYSTEM SET "_optimizer_adaptive_cursor_sharing"=FALSE SID='*' SCOPE=BOTH;
--ALTER SYSTEM SET "_optimizer_extended_cursor_sharing"=NONE SID='*' SCOPE=BOTH;
--ALTER SYSTEM SET "_optimizer_extended_cursor_sharing_rel"=NONE SID='*' SCOPE=BOTH;
--关闭RAC隐藏参数"_gc_bypass_reader"和 "_gc_read_mostly_lock",为了避免RAC的用户进程卡死在"gc current request"这个数据库内部等待,大多与隐藏参数"_gc_bypass_reader"和 "_gc_read_mostly_lock", 在参数关闭后会发现RAC稳定性提升明显(不会影响性能),同时还发现这两个参数也有其他不少bug,因此建议关闭:
ALTER SYSTEM SET "_gc_bypass_readers"=FALSE SCOPE=BOTH SID='*';
ALTER SYSTEM SET "_gc_read_mostly_locking"=FALSE SCOPE=SPFILE SID='*';
--关闭RAC全局事务支持隐藏参数
ALTER SYSTEM SET "_clusterwide_global_transactions"=FALSE SID='*' SCOPE=SPFILE;
--关闭跨实例并行参数
ALTER SYSTEM SET PARALLEL_FORCE_LOCAL=TRUE SCOPE=BOTH SID='*';
--关闭Cardinality feedback,12c版本的Cardinality feedback可能会导致执行计划的不稳定,为了避免19c发生,建议关闭
ALTER SYSTEM SET "_optimizer_use_feedback"=FALSE SCOPE=BOTH SID='*';
ALTER SYSTEM SET "_partition_large_extents"=FALSE SCOPE=BOTH SID='*';
--alter system set "_optimizer_adaptive_plans"=FALSE scope=spfile sid='*';
ALTER SYSTEM SET OPTIMIZER_ADAPTIVE_PLANS=FALSE SCOPE=BOTH SID='*';
--禁止polling模式和post/wait切换,只使用post/wait模式,否则可能造成CPU占用高
ALTER SYSTEM SET "_use_adaptive_log_file_sync"=FALSE SCOPE=BOTH SID='*';
--加快回滚速度
ALTER SYSTEM SET "_cleanup_rollback_entries"=5000 SCOPE=SPFILE SID='*';
ALTER SYSTEM SET "_rollback_segment_count"=4000 SCOPE=BOTH SID='*';
ALTER SYSTEM SET "_cursor_obsolete_threshold"=1024 SCOPE=SPFILE SID='*';
ALTER SYSTEM SET "_keep_remote_column_size"=TRUE SCOPE=SPFILE SID='*';
--建议启用大池(Large Pool)分配并行进程内存,减少对共享池(Shared Pool)的争用。
ALTER SYSTEM SET "_PX_use_large_pool"=TRUE SCOPE=SPFILE SID='*';
--适当增加shared pool保留比率 5 --> 20
ALTER SYSTEM SET "_shared_pool_reserved_pct"=20 SCOPE=SPFILE SID='*';
--设置审计日志级别,记录SQL语句,禁用设置为none,启用设置为DB或'db,extended'
-- ALTER SYSTEM SET AUDIT_TRAIL=NONE SCOPE=SPFILE SID='*';
-- alter system set audit_trail=db,extended scope=spfile;
--调大数据文件数量上线--RAC要求必须所有节点参数设置一致
ALTER SYSTEM SET DB_FILES=2000 SCOPE=SPFILE SID='*';
-- 28401:使用错误密码登陆尝试会导致很高的Library Cache Locks或row cache lock。
-- 10949:事件用于关闭11g的自动serial direct path read特性,避免出现过多的直接路径读,消耗过多的IO资源。
-- 19823:With Oracle 11.2 and onwards, Oracle will start to purge the files in the FRA when the SPACE_USED reaches 80% of SPACE_LIMIT as specified by the db_recovery_file_dest_size parameter,快速恢复区空间使用率达到90%以后开始删除文件(归档日志),默认80%,调大延迟Oracle删除归档日志
ALTER SYSTEM SET EVENT='10949 trace name context forever, level 1:28401 trace name context forever, level 1:10849 trace name context forever, level 1:19823 trace name context forever, level 90:60025 trace name context forever:10943 trace name context level 2097152' SCOPE=SPFILE SID='*';
--指定并行执行 (并行查询、PDML、并行恢复和复制) 消息的大小,RAC要求必须所有节点参数设置一致
ALTER SYSTEM SET PARALLEL_EXECUTION_MESSAGE_SIZE=32768 SCOPE=SPFILE SID='*';
--调整会话进程上限
ALTER SYSTEM SET PROCESSES=8000 SCOPE=SPFILE SID='*';
--调整每个session 最多可以缓存关闭掉的 cursor 数量
ALTER SYSTEM SET SESSION_CACHED_CURSORS=500 SCOPE=SPFILE SID='*';
--设置异步IO,存在IO性能时建议启用,重启生效
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE SID='*';
--关闭RAC的DRM(dynamic remastering)特性,避免频繁的DRM使系统性能不稳定、严重的时候使数据库挂起。同时也关闭关闭集群 Undo Affinity,降低集群交互,Read-mostly Locking新特性,这个特性目前会触发大量的BUG,严重时使数据库实例宕掉
ALTER SYSTEM SET "_gc_undo_affinity"=FALSE SCOPE=SPFILE SID='*';
ALTER SYSTEM SET "_gc_policy_time"=0 SCOPE=SPFILE SID='*';
--调整归档日志文件格式
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT = 'arch_%t_%s_%r.arc' SCOPE=SPFILE SID='*';
alter system set "_serial_direct_read"=never scope=both sid='*';
--启用块跟踪,优化增量备份速度
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+DATA' REUSE;
--回退命令
alter system set "_cleanup_rollback_entries"=100 scope=spfile sid='*';
alter system set "_cursor_obsolete_threshold"=8192 scope=spfile sid='*';
alter system set "_keep_remote_column_size"=true scope=spfile sid='*';
alter system set "_PX_use_large_pool"=FALSE scope=spfile sid='*';
alter system set "_shared_pool_reserved_pct"=5 scope=SPFILE sid='*';
alter system set audit_trail=DB scope=SPFILE sid='*';
ALTER SYSTEM RESET EVENT SCOPE=SPFILE SID='*';
alter system set parallel_execution_message_size=16384 scope=spfile sid='*';
alter system set db_files=200 scope=spfile sid='*';
alter system set processes=6400 scope=spfile sid='*';
alter system set sec_max_failed_login_attempts=3 scope=spfile sid='*';
alter system set session_cached_cursors=50 scope=SPFILE sid='*';
alter system set "_resource_manager_always_off"=FALSE scope=spfile sid='*';
alter system set filesystemio_options=none scope=spfile sid='*';
alter system set LOG_ARCHIVE_FORMAT = '%t_%s_%r.dbf' scope=spfile sid='*';
alter system set "_gc_undo_affinity"=TRUE scope=spfile sid='*';
alter system set "_gc_policy_time"=20 scope=spfile sid='*';
二、常用命令
1、crsctl:
查看集群中所有资源状态
crsctl status res -t
守护进程状态:
crsctl status res -t -init
启动/关闭 集群服务:
crsctl start/stop crs
独占模式启动集群:
crsctl start crs -excl -nocrs
检查集群服务状态:
crsctl check crs
集群自启动:
crsctl enable/disable crs
关闭启动指定资源:
crsctl start/stop res res_name //有的无法单独关闭,因为存在资源依赖关系
查看资源属性:
crsctl status res res_name -f
修改资源属性 :
crsctl modify resource res_name -attr
crsctl start crs 对当前节点的资源进行操作,包含OHAS。
----
2、srvctl:
查询所有实例的状态
srvctl status database -d racdb
查询单节点实例的状态
srvctl status instance -d racdb -i racdb1
关闭所有节点的实例
srvctl stop database -d racdb
关闭单节点的实例
srvctl stop instance -d racdb -i racdb2
查看数据库配置
srvctl config database -d racdb
使用srvctl资源控制命令:
srvctl config network:显示配置了 Oracle Grid Infrastructure 网络资源的详细信息,例如子网、节点名称、IP 地址等。
srvctl config vip:显示配置了虚拟 IP(VIP)资源的详细信息,包括 VIP 名称、所在节点和 VIP 地址等。
srvctl status vip:显示当前运行状态下的虚拟 IP(VIP)资源的详细信息,例如节点名称、VIP 地址和状态。
srvctl config scan:显示配置了 SCAN(Single Client Access Name)的详细信息,包括 SCAN 名称和地址列表。
srvctl status scan:显示当前运行状态下的 SCAN(Single Client Access Name)资源的详细信息,例如名称、地址和状态。
srvctl config listener:显示配置了监听器的详细信息,包括监听器名称、所在节点和监听端口。
srvctl status listener:显示当前运行状态下的监听器的详细信息,例如名称、监听地址和状态。
srvctl start/stop listener:启动或停止指定的监听器。
srvctl config scan_listener:显示配置了 SCAN 监听器的详细信息,包括监听器名称、所在节点和监听端口。
srvctl status scan_listener:显示当前运行状态下的 SCAN 监听器的详细信息,例如名称、监听地址和状态。
srvctl config asm:显示配置了 Automatic Storage Management (ASM) 的详细信息,包括 ASM 实例名称、监听器名称和磁盘组名称等。
srvctl status asm:显示当前运行状态下的 ASM 实例的详细信息,例如实例名称、ASM 状态和监听器状态。
srvctl status diskgroup -g data:显示指定磁盘组(这里是 data)的详细信息,包括磁盘组名称、状态和成员磁盘列表。
srvctl remove database -d orcl:移除指定的数据库(这里是 orcl),将删除与数据库相关的资源配置。
srvctl config nodeapps -a 查看集群VIP
oifcfg getif 查看集群网卡
oifcfg delif 删除集群网卡
oifcfg setif 重新配置集群网卡
3、asm:
创建磁盘组:
create diskgroup FLASH_DISK external redundancy disk '/dev/oracleasm/disks/ASMDISK1' ;
查看磁盘组状态:
select name,state from v$asm_diskgroup;
磁盘组挂载与卸载:
alter diskgroup FLASH_DISK mount/dismount;
查看磁盘名与设备的关系:
select name,path from v$asm_disk_stat;
查看每个磁盘组可用大小:
select name,allocation_unit_size,free_mb,total_mb from v$asm_diskgroup;
向磁盘组中增加一个磁盘:
ALTER DISKGROUP ARCH_DISK ADD DISK '/dev/oracleasm/disks/ASMDISK3' (name ARCHDISK2);
从磁盘组中删除一个磁盘:
ALTER DISKGROUP ARCH_DISK DROP DISK ARCHDISK2;
删除一个磁盘组:(确保该磁盘被所有实例所卸载dismount)
drop diskgroup FLASH_DISK;
删除一个有内容的磁盘组:
drop diskgroup ocr2 including contents;
手动重新平衡磁盘组:
ALTER DISKGROUP data2 REBALANCE
ALTER DISKGROUP data2 REBALANCE power 5
如果不指定power,以初始化参数值ASM_POWER_LIMIT为默认值
对于ASM磁盘组兼容性设定为11.2.0.2或更高,值的操作范围是0到1024用于重新平衡能力。
对于ASM磁盘组兼容性设定为小于11.2.0.2,该值的操作范围是0到11。如果ASM_POWER_LIMIT大于11,则使用11.
关闭ASM:
(需要与crs一起关闭) srvctl stop crs
4、OCR:
ocrcheck //检查OCR
ocrconfig -add +data2 //添加OCR镜像盘
ocrconfig -delete +data2 //删除OCR镜像盘
ocrconfig -manualbackup //触发OCR备份
ocrconfig -showbackup //查看OCR备份
ocrconfig -export file_name //导出OCR
ocrconfig -import file_name //导入OCR
5、OLR:
/etc/oracle/ocr.loc
/etc/oracle/olr.loc
6、VF:
crsctl replace votedisk diskgroup_name //替换VF(常用于更换存储)
crsctl query css votedisk //集群层面查看VF信息
v$asm_disk v$asm_diskgroup // 这两个视图中包含voting_file列。
select name,path,voting_file from v$asm_disk; //查看某个磁盘是否为VF