心得整理:
现象描述:早上一个现场出现业务故障,经现场定位发现DB主机hang,然后就没有然后了。后来项目经理按照既定的应急预案,紧急重启主机,切应急,5分钟业务恢复,因为9:30业务高峰期前,业务无感知。
问题思考:如果早上项目经理没在现场,或者项目经理请假,等到9:30之后,业务高峰期来临,影响面扩大,最后就是鸡飞狗跳,各种总结会,分析会。。。。。。这里面根本的问题是日常的应急演练不充分,基本没有练,更谈不上“演”,当故障真的来临的时候,即便有各种预案,也仅仅是预案罢了。
改进措施:需要把预案变成行为规范,通过演练及演练总结印在每个人的脑子里,当遇到问题,就像下雨本能打伞一样的根据预案来进行故障性能处理。
后续延伸:将应急预案的场景全部工具化,出现问题,根据场景平台点击对应预案处理自动完成,减少人工介入处理的琐碎时间浪费。
下面是另一个故障分享,上下无关联,请勿想入非非
技术总结:
环境:LINUX 6.9 ORACLE一体机
数据库版本:12.2.0.1
是否RAC:是
节点数:7
一体机型号:X7
现象:
所有节点实例全停全启之后,发现数据库所有PDB均处于RESTRICTED模式,所有应用用户无法连接,除了SYS/SYSTEM。
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY YES
3 SHOWDBPDB READ WRITE YES
4 GISPDB READ WRITE YES
分析:
一、当发现所有PDB处于受限模式下,我们尝试将其open成正常模式,但是open之后还是受限模式
alter pluggable database SHOWDBPDB close immediate instance=all;
alter pluggable database SHOWDBPDB open read write instance=all;
二、根据以往经验,受限模式一般是打完patch,更新数据字典失败或者未更新,重新打开PDB才会出现的模式。
尝试重新更新数据字典报ORA-01918: user DVSYS does not exist
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY YES
3 SHOWDBPDB READ WRITE YES
4 GISPDB READ WRITE YES
cd $ORACLE_HOME/OPatch
./datapatch -verbose
.......................
ORA-01918: user DVSYS does not exist
.......................
三、对比其他库发现这个库CDB及所有PDB都没有DVSYS用户
select USERNAME,CREATED from dba_users where username=DVSYS;
四、在CDB依次运行如下命令创建DVSYS用户
1、如果OLS元数据未安装,先enable OLS
sqlplus / as sysdba
@?/rdbms/admin/catols.sql
exec lbacsys.configure_ols
exec lbacsys.ols_enforcement.enable_ols
2、运行catmac.sql脚本创建DVSYS及相关对象
sqlplus / as sysdba
@?/rdbms/admin/catmac.sql system temp
注:system是DVSYS的默认表空间,temp是临时表空间
3、如果失效对象较多,运行如下脚本重编译
sqlplus / as sysdba
@? dbmsadminutlrp.sql
较少的话单个编译就行
五、在所有PDB(包括模板库)运行步骤四
sqlplus / as sysdba
alter session set container=SHOWDBPDB;
继续运行步骤四命令。
**************遇到的问题***************
提前运行catmac.sql,忘记enable OLS了,发现DVSYS用户没创建成果
后面enable之前重新运行catmac.sql发现报DV开头的对象已存在。
解决方法:
select role from dba_roles where role like DV%;
select USERNAME,CREATED from dba_users where username like DVSYS;
删除查询出来的DV开头的角色
例如:
alter session set "_oracle_script"=true;
drop role DV_SECANALYST;
六、重新更新数据字典,脚本显示运行成功了,但是PDB还是处于受限模式
cd $ORACLE_HOME/OPatch
./datapatch -verbose
七、查询registry$sqlpatch发现存在之前运行数据字典更新的记录,但是状态是WITH ERRORS的
SQL> select ACTION,ACTION_TIME,DESCRIPTION,status from registry$sqlpatch_org;
ACTION ACTION_TIME DESCRIPTION STATUS
--------------- --------------------------------- ----------------------------------------------------------------------------------------- -------------------------
APPLY 09-MAR-18 01.43.22.087140 PM OJVM RELEASE UPDATE: 12.2.0.1.180116 (27001739) SUCCESS
APPLY 09-MAR-18 01.43.23.054917 PM DATABASE RELEASE UPDATE 12.2.0.1.180116 SUCCESS
APPLY 14-SEP-18 11.57.04.980461 PM DATABASE JUL 2018 RELEASE UPDATE 12.2.0.1.180717 WITH ERRORS
八、继续解决这个PDB受限模式问题,运行如下命令
1、连接至CDB
sqlplus / as sysdba
show con_name;
2、备份registry$sqlpatch
create table registry$sqlpatch_org as select * from registry$sqlpatch;
3、删除表registry$sqlpatch
exec dbms_pdb.exec_as_oracle_script(drop table registry$sqlpatch);
4、运行如下脚本重建registry$sqlpatch表
@$ORACLE_HOME/rdbms/admin/catsqlreg.sql
5、连到PDB
alter session set container=
show con_name;
6、备份PDB的registry$sqlpatch表
create table registry$sqlpatch_PDB as select * from registry$sqlpatch;
7、删除PDB下的registry$sqlpatch表
exec dbms_pdb.exec_as_oracle_script(drop table registry$sqlpatch);
8、重建PDB下的registry$sqlpatch表
@$ORACLE_HOME/rdbms/admin/catsqlreg.sql
9、当所有PDB都重建完registry$sqlpatch表之后,运行脚本
sqlplus / as sysdba
alter pluggable database all close immediate;
alter pluggable database all open upgrade;
exit
cd $ORACLE_HOME/OPatch
./datapatch -verbose;
或者指定PDB进行字典更新
./datapatch -verbose -pdbs PDB1,PDB2
sqlplus / as sysdba
alter pluggable database all close immediate;
alter pluggable database all open;
注:模板库有点特殊,使用如下命令更新
alter pluggable database PDB$SEED close immediate;
alter pluggable database PDB$SEED open read write upgrade;
alter session set container=PDB$SEED;
./datapatch -verbose -pdbs PDB$SEED
alter pluggable database PDB$SEED open read only;
10、当前运行脚本的实例在PDB重启之后,会发现已经变成正常状态了,但其他节点实例还是受限模式,
重启其他节点实例即可,至此故障恢复完成。
srvctl stop instance -d db_unique_name -i
srvctl start instance -d db_unique_name -i
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/130249.html
摘要:大数据分布式存储的部署模式分离式超融合数据中心内部系统的核心要求是稳定可靠,一是指系统在运行过程中有能力提供连续可靠的服务,长时间无故障运行二是指当故障发生之后,有能力快速定位,及时排查,故障范围不蔓延。建议采用超融合式部署模式。 大数据分布式存储的部署模式:分离式or超融合数据中心内部系统的核心要求是稳定可靠,一是指系统在运行过程中有能力提供连续可靠的服务,长时间无故障运行;二是指当...
摘要:内网基础工作组在同一工作组的计算机可以共享资源,工作组没有集中管理作用,工作组里的所有计算机都是对等的不分域域域是一个有安全边界的计算机集合,与工作组相比,域的安全管理控制机制更加严格。 ...
摘要:行为识别包含两个研究方向个体行为识别与群体行为事件识别。同时,随着行人智能分析与群体事件感知的需求与日俱增,一系列行为分析与事件识别算法在深度学习技术的推动下应运而生。 行为识别是指通过分析视频、深度传感器等数据,利用特定的算法,对行人的行为进行识别、分析的技术。这项技术被广泛应用在视频分类、人机交互、安防监控等领域。行为识别包含两个研究方向:个体行为识别与群体行为(事件)识别。近年来,深度...
摘要:利用永恒之蓝对进行攻击环境搭建,其中为靶机。命令有很多,想使用什么命令可以百度,我这里使用一些进行演示的命令就可以了。一般权限不够命令无法执行,这里简单介绍提权,提权方法百度多的很。至此本次利用永恒之蓝攻击漏洞拿到权限结束。 ...
摘要:微服务架构的风险微服务架构将应用程序逻辑移动到服务,并使用网络层在它们之间进行通信。在微服务架构中,服务依赖于彼此。您始终只能部署其中一个,并且在验证新版本是否符合预期之后才,将负载均衡器指向新的。 [译] 设计一个容错的微服务架构 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.com/jasonGeng88/blog 原文地址 https://blog....
摘要:性能平台公测发布性能平台,是由阿里云所提供的,面向中大型应用提供性能监控安全提醒故障排查性能优化等服务的整体性解决方案。业务实时监控服务版本发布,新增应用监控功能等重磅功能业务实时监控服务简称是一款阿里云类监控产品。 摘要: 一、新产品发布1、云防火墙 商业化 发布云防火墙是一款云环境下的防火墙产品,首创了基于业务可视的结果,实现业务梳理和业务隔离的技术。适用于互联网/通用/游戏/金融...
阅读 1023·2023-01-11 13:20
阅读 1298·2023-01-11 13:20
阅读 808·2023-01-11 13:20
阅读 1392·2023-01-11 13:20
阅读 3709·2023-01-11 13:20
阅读 2085·2023-01-11 13:20
阅读 2232·2023-01-11 13:20
阅读 1075·2023-01-11 13:20