9

Oracle 11g OCM考试考点分析 管理Oracle 集群

 3 years ago
source link: https://www.askmaclean.com/archives/oracle-11g-ocm-manage-clusterware.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
88888888.png

本文永久链接地址:https://www.askmaclean.com/archives/oracle-11g-ocm-manage-clusterware.html

15 管理Oracle 集群

15.1 目标

在完成这个课程后,你应该可以:

  • 熟练的描述集群管理
  • 演示OCR备份和恢复技术

15.2 管理Oracle 集群

  • 命令行工具

–crsctl管理集群相关的操作:

-启动和关闭Oracle集群

-启用和禁用Oracle集群后台进程

-注册集群资源

-srvctl 管理Oracle 资源相关操作

-启动和关闭数据库实例和服务

在Oracle Grid安装的home路径下的命令行工具crsctl和srvctl用来管理Oracle集群。使用crsctl可以监控和管理任何集群节点的集群组件和资源。srvctl工具提供了类似的功能,来监控和管理Oracle相关的资源,例如数据库实例和数据库服务。crsctl命令只能是集群管理者来运行,srvctl命令可以是其他用户,例如数据库管理员来使用。

15.3 控制 Oracle 集群

crsctl 工具可以被用来控制Oracle集群。

  • 在指定的节点上启动和关闭Oracle 集群:
crsctl start crs
crsctl stop crs
  • 在指定的节点上启用或者禁用Oracle 集群
crsctl enable crs
crsctl disable crs

当一个节点上包含的Oracle 集群被启动,Oracle 集群包含的脚本会自动的通过/etc/init.d/ohasd启动脚本启动。当crsctl工具被用来禁用Cluster Ready Services(crs)自启动时,相关的启动状态信息会被放置到SLCS_SRC控制文件,防止随机器重启而启动。使用下列语法来检查CRS的状态:

crsctl check crs

在应用补丁或者计划内的中断时,你可能需要手动控制Oracle集群的堆栈。你可以使用crsctl stop crs命令停止Oracle集群和使用crsctl start crs命令启动。

15.4 验证Oracle 集群的状态

crsctl 工具可以被用来验证Oracle 集群的状态

  • 在每个节点上决定整体的健康:
crsctl check crs
  • 检查节点上的Cluster Synchronization Services(CSS)服务
crsctl check cluster

crsctl 工具可以被用来在指定的节点和跨节点上验证集群的状态。crsctl相关的控制命令需要root身份,check 命令不需要root身份,并且可以被Oracle集群软件所有者用户执行。在指定的节点上运行crsctl check crs 命令可以检查整体的健康。也可使用单个进程命令来对进程进行检查,crsctl check <daemon> (crsd,evmd和cssd)

决定 Oracle 集群控制文件的位置

2个Oracle 集群主要的配置文件类型是仲裁盘和 Oracle Cluster Registry(OCR)

  • 使用下列方式决定仲裁盘的位置:
crsctl query css votedisk
  • 决定OCR的位置:
cat /etc/oracle/ocr.loc
ocrconfig_loc=+OCR

local_only=FALSE

Oracle 集群使用2种主要文件类型:仲裁盘和OCR。每个可以有多个副本。可以使用crsctl query css votedisk命令在任何节点上来决定仲裁盘的位置。这个不需要CSS后台进程是启动的,并且这个命令可以被Gird的拥有者执行。因为OCR文件总是在共享存储上面,所以可以在任何节点上使用 cat /etc/oracle/ocr.loc来确定OCR的位置。

注意:OCR 也可以使用ocrcheck 工具来放置,其中使用的路径是在PATH环境变量中提供的路径。

检查Oracle 集群配置文件的完整性

下面的命令可以用来检查Oracle集群配置文件的完整性

  • 检查ocssd.log 中仲裁盘的问题
grep voting <grid_home>/log/<hostname>/cssd/ocssd.log
  • 使用cluvfy工具或者ocrcheck命令来检查OCR的完整性
cluvfy comp ocr –n all -verbose
ocrcheck

15.5 备份和恢复仲裁盘

  • 在Oracle 集群 11g R2中,仲裁盘数据是作为任何配置变更的一部分自动的在OCR中备份。
  • 仲裁盘数据在任何仲裁盘增加时自动的重建。
  • 使用dd来备份和重建仲裁盘可能会导致仲裁盘的丢失!
  • 在非ASM存储上增加或移除仲裁盘,使用下列命令:
# crsctl delete css votedisk path_to_voting_disk
# crsctl add css votedisk path_to_voting_disk

备份仲裁盘

在之前的版本,使用dd命令进行仲裁盘备份时安装后的必须任务。在Oracle 集群 11gR2,使用dd命令备份和重建仲裁盘将可能导致丢失仲裁盘,所以这个步骤不被支持。

手动备份仲裁盘将不再需要,因为仲裁盘数据会自动的作为任何配置变更在OCR中备份,并且仲裁盘数据在任何增加仲裁盘时自动的重建。

恢复仲裁盘

如果你在非ASM存储上有多个仲裁盘,你可以使用下列命令来移除裁盘,和将其增加会你的环境,path是仲裁盘的绝对路径:

# crsctl delete css votedisk path_to_voting_disk

# crsctl add css votedisk path_to_voting_disk

注意:你可以不关闭集群,将仲裁盘从非ASM存储迁移到ASM上。使用ASM磁盘组来管理仲裁盘,你必须设置compatible.asm属性为11.2.0.0

增加,删除或迁移仲裁盘

作为root用户使用下列命令来增加一个或多个仲裁盘到非ASM存储:

# crsctl add css votedisk path_to_voting_disk [...]

增加仲裁盘到ASM:

# crsctl replace votedisk +asm_disk_group

在非ASM存储上,使用仲裁盘B替换仲裁盘A,首先增加仲裁盘B,然后删除仲裁盘A:

# crsctl add css votedisk path_to_voting_diskB# crsctl delete css votedisk path_to_voting_diskA

使用crsctl replace votedisk命令可以替换ASM中的仲裁盘。使用这个命令你不需要删除任何仲裁盘。

使用root用户执行下列命令来移除一个仲裁盘,替换voting_disk_GUID变量为一个或多个空格分隔的,你想移除的全局唯一磁盘表示符(GUID):

# crsctl delete css votedisk voting_disk_GUID

将仲裁盘从非ASM迁移到ASM或者反过来,需要在下列命令中指定ASM磁盘组名称或到非ASM存储设备的路径:

crsctl replace votedisk {+asm_disk_group | path_to_voting_disk}

你可以在集群中的任意节点上运行这个命令。

15 .6 定位OCR自动 备份

  • OCR 是自动的备份的
  • 只有一个节点执行备份
  • 决定节点和备份的位置:
ocrconfig -showbackup auto
  • 由于中断,文件可能会在节点中传播
  • 备份频率和保留策略:

-每4小时:CRS保存至少3个副本

-在每天的最后:CRS保存至少2个副本

-在每周的最后:CRS保存至少2个副本

储存在OCR中的信息比在仲裁盘中的更灵活。Oracle集群自动的对OCR文件执行常规的备份。它们是物理备份。只有一个节点负载执行这些备份,但是这个任务在发生中断的时候,可以传输到集群中任意其他的节点上。每个自动产生的OCR备份文件默认目标位置在<GridHome>/cdata/<cluster name>目录中。

自动的备份是每4小时调度一次,但是只有一定数量的文件被保留。对于4小时间隔备份来说,只保留最近3个备份,最新的备份会覆盖最旧的备份。在每天的最后,一个备份会生成,并且保留最近的2个。在一周的最后,一个备份产生,并且保留最近的2个。总之,需要存储的自动备份不应该超过7个:4小时的,8小时的,12小时的,24小时的,48小时的,7天的,14天的。4小时间隔的备份不是基于天的,是集群启动时间的一个偏移时间。

备份文件的名称不能变更,其名称如下:backup00.ocr,backup01.ocr, backup02.ocr, day.ocr, day_.ocr, week.ocr 和 week_.ocr.

15.7 变更自动OCR备份位置

  • 自动备份的位置应该被变更到所有节点共享的位置。
ocrconfig –backuploc <path to shared CFS or NFS>
  • 这个备份位置可以同时被自动备份和手动备份使用。
  • 建议将这些文件包含到日常的备份任务中,备份到一个离线的位置。
  • 如果所有节点的CRS被停止,备份调度会暂挂。
  • 当重启时,一个备份不会立即产生并且备份时间被重置。

因为默认情况下,自动备份只在主节点上被执行到本地文件系统上,建议将OCR自动备份位置变更到集群中所有节点共享的位置,使用ocrconfig -backuploc <newlocation>命令。这个命令需要一个绝对路径参数来指定新位置。这个位置将被自动和手动备份使用。你不能自定义备份的频率,备份保留的份数和备份文件的名称。如果主节点上的CRS关闭,其他的节点变成主节点,备份将在这个节点上恢复。如果备份位置没有被变更到一个普通共享的位置,备份可能会出项跨节点存在。如果在调度备份期间,所有的CRS关闭,在重启时,备份不会立即发生,并且备份时间将被重置。这可能会导致比标准的4小时间隔更长的时间间隔进行自动备份。

由于OCR   信息的重要性,也建议你对自动产生的物理备份创建副本。你可以使用备份软件来备份自动生成的备份文件,建议在不同的设备上每天对自定备份进行备份。

注:不要将自动OCR备份放置到ASM集群文件系统上存储(ACFS)。

增加,替换和修复OCR位置

  • 增加一个OCR位置到ASM或其他存储设备:
ocrconfig -add +DATA2ocrconfig -add /dev/sde1
  • 替换当前OCR位置:
 ocrconfig -replace /dev/sde1 -replacement +DATA2
  • 为了修复OCR配置,在停止了Oracle集群的节点上运行下列命令:
ocrconfig -repair -add +DATA1

你不能在正在运行Oracle集群的节点上执行这个操作。

# ocrconfig -replace destination_file | +ASM_disk_group -replacementdestination_file | +ASM_disk_group

你可以在完全安装了Oracle Grid和更新之后,增加一个OCR位置。Oracle集群可以管理多达5个OCR位置。作为root,运行下列命令在增加OCR位置到ASM或者其他的存储设备:

# ocrconfig -add +asm_disk_group | file_name

为了替换当前OCR位置,使用下列命令,destination_file或+ASM_disk_group表明当前个目标位置:

# ocrconfig -replace destination_file | +ASM_disk_group -replacementdestination_file | +ASM_disk_group

当一个节点停止时,如果配置变更,那么可能需要修复一个OCR配置。修复一个OCR配置涉及到增加,删除或者替换一个OCR位置。为了修复OCR配置,使用root用户在停止了集群的节点上运行ocrconfig命令:

# ocrconfig -repair -add file_name | -delete file_name | -replacecurrent_file_name -replacement new_file_name

这个操作只会变更你运行命令的节点的OCR配置。例如,如果OCR位置是/dev/sde1,使用命令语法 ocrconfig -repair add /dev/sde1在这个节点来修复这其OCR配置。

删除一个OCR位置

移除一个OCR位置,至少有一个其他的OCR必须在线。你可以移除一个OCR位置来减少OCR关联开销,或者在你移动OCR到一个冗余存储例如RAID时关闭OCR镜像。

使用root身份,执行下列步骤从Oracle集群环境中移除一个OCR位置:

1.确保至少有一个不是将要移除的其他OCR位置是在线的。

2.在集群中任意节点上运行下列命令来从ASM中或其他位置移除一个OCR位置:

# ocrconfig -delete +ASM_disk_group | file_name

file_name变量可以是一个设备名或者一个文件名。这个命令在集群运行时会在所有节点上更新OCR配置。

警告:不要在只有一个活动OCR位置在线时视图执行OCR移除命令,否则你会得到一个错误。你不能移除最后一个OCR文件。

迁移OCR位置到ASM

在oracle 集群11g R2 中,为了提高Oracle集群存储管理性,默认情况下,OCR配置是使用的ASM。Oracle 集群使用ASM磁盘组,你可以是用EM来管理数据库和集群存储。但是,如果你是从一个低版本的Oracle数据升级而来的,可以将OCR位置迁移到ASM,以提高Oracle 集群存储的管理。使用ocrconfig来将OCR位置迁移到ASM:

1.确保Oracle 集群已经升级到11g R2。运行下列命令来验证当前的版本:

crsctl query crs activeversion

2.在集群中的节点上使用ASMCA来配置和启动ASM,并创建一个磁盘组至少有1GB的空间并至少是普通的冗余。

3.为了增加一个OCR位置到ASM磁盘组,确保集群是运行的,并且使用root用户运行下列命令:

# ocrconfig -add +new_disk_group

4.为了移除不在使用的OCR位置,使用root用户运行下列命令:

# ocrconfig -delete old_storage_location

注意:OCR继承磁盘组的冗余度。如果你想为OCR使用高冗余度,在创建的时候,你必须为高冗余度配置对应的磁盘组。

ASM迁移OCR到其他共享存储

1.确保Oracle集群升级到了11g R2版本。运行下列命令来验证当前的版本:

crscrl query crs activeversion

2.创建一个有下列权限的共享文件:root,oinstall,640,确保至少挂载300MB的空间。

3.增加文件作为OCR位置,确保集群stack是运行的,并且使用root运行下列命令:

ocrconfig -add new_file_location

如果你想增加更多的OCR位置,可以多次运行这个命令。

4.为了移除不再使用的OCR位置,使用root身份运行下列命令:

ocrconfig -delete old_storage_location

如果有多个OCR位置,你可以运行这个命令多次。

15.8 执行手动OCR 备份

当配置发生了重要的变更后,建议按需进行手动的备份。

  • 执行一个物理备份:
ocrconfig -manualback
  • 显示手动备份的列表:
ocrconfig -showback manual
  • 执行一个逻辑备份:
ocrconfig -export /home/oracle/ocr.back

于仲裁不同,OCR文本变化会很快,尤其是高可用框架。如果重要的大量工作被完成,会导致OCR的修改,建议在自动备份发生之前进行手动的备份或者执行导出。这个按需的备份可以在,还没有进行自动备份时出现OCR损坏或丢失后进行信息重建。

不允许在执行手动备份时指定名称。一个文件名称格式为backup_<date>_<time>.ocr的文件将被创建,并且会放置到默认的备份位置。当执行一个手动备份时,其不会影响自动备份间隔。export命令会创建一个二进制的逻辑备份文件来保存OCR的键和值。

大多数的配置变更不仅仅会变更OCR内容,还会创建文件和数据库对象。当你重建OCR是,这些变更通常不会被重建。如果一个配置变更失败了,不要作为修正,执行重建OCR到之前的配置。这可能导致OCR中的内容与系统中其他的部分状态不匹配。

15.9 使用物理备份进行OCR的恢复

使用下列步骤在UNIX基础的系统上进行OCR的重建:

1.使用 ocrconfig -showback命令来确认OCR的备份。你可以在任何节点上使用oracle用户执行这个命令。这个输出告诉你哪个节点上可以检索到自动备份和手动备份。使用auto 或manul 参数来选择显示策略

2.在节点上使用crsctl stop cluster -all命令停止Oracle集群stack

3.停止oracle HA服务,使用root用户在所有节点执行crsctl  stop crs。

4.使用步骤1中的文件来进行重建,file_name就是你想重建的OCR文件名:

ocrconfig -restore file_name

确保你指定的的OCR设备在OCR配置文件中(/etc/oracle/ocr.loc)存在并且这个OCR设备有效。

5.使用root用户,在所有节点上使用crsctl start crs 重启Oracle HA服务

6.使用其他用户grid 执行cluvfy comp ocr -n all 命令来验证ocr的完整性。

注:这个步骤其实是有问题的,正确的步骤应该是:

crsctl stop crscrsctl start crs -exclcrsctl stop resource ora.crsd -init
ocrconfig -restore file_name

ocrcheck

crsctl stop crs

crsctl start crs
验证完整性

cluvfy comp ocr -n all

15.10 使用逻辑备份进行OCR的恢复

使用下列步骤在UNIX基础的系统上进行OCR导入:

1.明确你想导入的OCR导出文件,导入文件是之前使用 ocrconfig -export file_name命令产生的。

2.在每个节点上使用root用户执行crsctl stop crs命令来停止Oracle集群。

3.使用下列命令将步骤1中导入的文件导入,file_name是你想导入的的OCR信息:

ocrconfig -import file_name

4.在每个节点使用crsctl stsart crs命令重启 Oracle HA 服务。

5.运行下列命令来验证OCR 完整性,-n all参数 检索所有节点的配置:

cluvfy comp ocr -n all

–这个和物理重建差不多,只是使用的文件不一样,命令一个是import 一个是restore

15.11 Oracle 本地注册

  • 每个集群节点由一个本地注册的集群资源,被称作 Oracle Local Registry(OLR)。
  • 当Oracle 集群被安装时,OLR被安装和配置。
  • 其中的一个功能是在集群启动的时候,帮助找到ASM存和OCR,仲裁盘的位置
  • 你可以使用orcheck命令来检查OLR的状态
ocrcheck -local
ocm_sg11511.png

在Oracle 集群11g R2,每个集群中的每个节点为节点指定资源有一个本地注册,成为OLR。每个节点上的多个进程同时读取和写访问特定节点上的OLR,不管Oracle 集群是否正在运行或者完全的工作。

OLR提供了各种Oracle 集群进程来访问关键配置信息,即使Oracle 集群在这个节点并不运行。其中一个功能就是在集群进程启动的时候,帮助找到ASM存储和OCR和仲裁盘。在启动进程过程中,OLR被关联来确定仲裁盘的确切位置。这使得节点可以加入集群,在这个初始节点后,ASM被启动。在ASM启动之后,进程需要完整OCR才能启动,然后集群启动过程完成。

默认情况下,OLR位于 grid_home/cdata/hostname.olr。你可以使用ocrcheck,ocrdump和ocrconfig工具的-local选项 来管理OLR。例如使用ocrcheck工具来检查状态:

ocrcheck -local

你可以使用OCRDUMP工具来显示OLR的内容到文本终端程序,例如:

ocrdump -local -stdout

你可以使用OCRCONFIG工具在OCR上执行管理任务。将OLR导出到一个文件:

ocrconfig -local -exoport file_name

导入指定文件到OLR:

ocrconfig -local -import file_name

在本地节点上修改OLR文件:

ocrconfig -local -repair olr file_name

olr关键字伴随 -repair选项只在使用-local时有效。

15.12 总结

在这个课程中,你应该学会如何:

  • 熟练的展示集群管理
  • 验证OCR备份和恢复技术

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK