- 博客(144)
- 资源 (11)
- 收藏
- 关注
原创 oracle数据文件大小异常故障处理
1、数据文件大小必须是逻辑块大小的整数倍2、oracle数据库启动校验比较严格,除了数据大小是要求数据块的整数倍,还有所有的数据文件的scn要一致,,才能正常启动。3、通过追加空白数据块可修复文件大小异常但需要通过recover应用归档日志和在线重做日志来恢复数据一致性。
2025-11-24 17:37:31
962
原创 WebLogic 12.1.3 补丁升级的坑
检查当前服务器中的版本,初始已安装补丁32345262(WLS PATCH SET UPDATE [12.1.3.0](12.1.3.0).210420”),后续升级的补丁33494824是其超集,安装时会自动回滚旧补丁。补丁安装需严格遵循“关闭服务→安装补丁→验证结果”的流程,当前目标是安装2022年1月的PSU补丁33494824,过程中需先处理依赖补丁问题,再解决组件冲突报错。:遇到XML差分报错时,优先检查组件下的旧补丁目录,按官方文档备份并删除冲突目录,再重新安装。
2025-10-21 09:26:33
865
原创 JAVA脚本程序测试RAC TAC方案
本次JAVA TAC测试验证了Java程序在Oracle RAC环境下的连接稳定性。测试环境为CentOS 7.9、Oracle 19c RAC和Java 1.8,通过两种连接方式验证数据库连接。结果显示,在节点故障时应用无法自动重连,需手动重启应用。为此,建议在应用层配置重连机制,并提供了包含重连逻辑的Java测试脚本示例,以实现业务连续性。测试还展示了服务双节点配置情况,但节点停机仍会导致业务中断。测试为完善高可用方案提供了重要参考依据。
2025-09-28 15:35:43
1050
原创 Oracle Database 23ai 内置 SQL 防火墙启用
在正式启用拦截功能前,建议先开启观察模式。该模式下,防火墙会对所有 SQL 语句进行验证,若发现违规行为(如 SQL 注入语句、非授权 IP 地址访问等),仅记录违规日志,不阻止 SQL 执行,便于管理员进一步优化白名单,避免误拦截正常业务操作。执行该命令后,若有用户发出与白名单不匹配的 SQL 语句(如 SQL 注入语句)或从非授权连接路径访问数据库,防火墙将直接阻断 SQL 执行,并报错 “ORA-47605 SQL Firewall violation”,同时记录详细违规日志。
2025-09-16 18:14:08
1106
原创 23ai数据库通过SQLcl生成AWR报告
不过用新的命令方式相对来说比较简便一些,感觉少了很多交互,输出的结果内容还是一样的。生成快照为794-795的HTML格式awr报告。当然用原来老的方式也还是可以的。
2025-09-05 18:15:06
1187
原创 3 个 ASM 磁盘故障案例,从故障诊断到解决方案
风险类型典型场景规避策略Oracle Bug 风险添加磁盘触发 Rebalance,误报元数据损坏1. 操作前查询 Oracle 官方 Bug 库,确认当前 ASM 版本无相关 Bug;2. 优先创建新磁盘组,避免在生产磁盘组直接添加;3. 操作前验证备份与容灾有效性,确保可快速恢复磁盘资源冲突新增磁盘已被文件系统、逻辑卷占用1. 新增磁盘前,通过lsblk检查分区状态、df -h检查挂载情况;2. 使用(grid 用户)确认 ASM 已识别磁盘,且无其他进程占用;
2025-09-05 11:42:30
937
原创 优化器从RBO到CBO,为什么性能不行了?
CBO 依赖高质量统计信息:CBO 的决策基础是统计信息,对于数据倾斜的列(如本例中 fypb=0 的记录占比极低),必须生成柱状图才能准确反映数据分布。默认的配置无法满足需求,需针对性设置method_opt参数。驱动表选择决定关联性能:嵌套循环连接(Nested Loop)中,驱动表应选择筛选后。
2025-09-05 11:04:55
1113
原创 分区表改造导致查询性能下降分析
本次性能下降的核心原因是分区表改造后,查询未有效利用分区特性,仍执行全表扫描导致大量 I/O 等待。通过更新统计信息、优化sql对分区的使用,查询性能显著提升。所以在改造分区表的过程中,建议优先检查查询语句中的分区键过滤条件,确保分区功能正常生效。
2025-09-03 17:06:05
795
原创 Oracle参数PARALLEL_THREADS_PER_CPU深度解析与调优指南
Oracle数据库的PARALLEL_THREADS_PER_CPU参数是性能调优的关键,它通过优化CPU与I/O资源匹配来提升系统效率。该参数直接影响并行度设置,根据硬件规模建议配置:小型系统4,中型2-4,大型2。最佳实践强调先使用默认值再逐步调整,并通过监控资源使用情况来优化参数。合理的设置能有效平衡工作负载,使数据库在复杂环境下保持最佳性能。
2025-09-03 15:57:45
280
原创 Oracle跟踪及分析方法
当一个 SQL 出现性能问题时,可以使用 SQL_TRACE 或者 10046 事件来跟踪 SQL,通过生成的 trace 来了解 SQL 的执行过程。10046 事件 Oracle 提供的内部跟踪事件,是对 SQL_TRACE 的增强,通过10046 可以知道 Oracle 内部执行的 SQL_TRACE 的跟踪操作。通过设置 SQL_TRACE 可以启用或禁用 SQL 跟踪工具,设置 SQL_TRACE 为 true 可以收集信息用于性能优化或问题诊断;
2025-08-26 18:16:19
554
原创 升级openssh后ORACLE RAC EM 安装失败处理
手工去scp文件都能正常传过去,说明问题不在em的安装手法上。后来想到openssh的版本问题,默认版本openssh有漏洞,所以就从7.4p1版本升级到了9.6p1版本,怀疑openssh高版本的兼容性导致,所以进行了重新安装做降级操作。
2025-08-25 16:16:18
424
原创 sys.dbms_xa dist_txn_sync执行频繁导致性能问题
sys.dbms_xa.dist_txn_sync是Oracle数据库中用于分布式事务同步的一个功能模块,属于DBMS_XA包的一部分。还有高频调用SQL bn4nkxhy47yr3 (BEGIN sys.dbms_xa.dist_txn_sync;sys.dbms_xa.dist_txn_sync是oracle 内置存储过程,用于恢复应用了RAC类型oracle数据库的事务一致性。随着undo表空间增大,sys.dbms_xa.dist_txn_sync执行越来越慢,特别是节点3的undo暴增。
2025-08-20 10:21:40
591
原创 物化视图优先迁移大表,缩短逻辑迁移时间
impdp 账号/密码 network_link=CUTEINFO1 directory=backup logfile=impdp_cuteinfo.log PARALLEL=2 exclude=table:"in('T_EC_EVENT')" exclude=MATERIALIZED_VIEW_LOG:"in('MLOG$_T_EC_EVENT')" TABLE_EXISTS_ACTION=REPLACE schemas=cuteinfo remap_schema=cuteinfo:cuteinfo。
2025-08-14 15:20:35
447
原创 windows 19.18 配置nts本地连接dg传输问题
备库默认配置SQLNET.AUTHENTICATION_SERVICES = (NTS)时,主库的归档传不过来,备库的sqlplus/as sysdb可以登陆,SQLNET.AUTHENTICATION_SERVICES不设置时或设置成none,主库的归档可以传过来,但备库的sqlplus/as sysdb不能登陆。其中有个参数NO_NTLM正常连接的时候是0,异常的时候是1,true,sqlnet.ora种尝试设置一下NO_NTLM,客户端设置。发现连接正常了,mos上查了一下NO_NTLM,发现。
2025-07-23 16:57:43
1014
原创 windows 19c数据库oracle主目录用户选择的区别
windows下19c多了这么多选项主要还在于安全方面的考虑,前面三项都有对安全做了限制,包括访问等,虚拟账号有点类似域账号,没有真正的本地账号,自己创建的本地账号没有管理员权限,只有最后一项选windows内置账户才是系统权限,最高权限。创建新windows用户,这个口令在dbca建库、netca创建监听的时候还要用,主要是服务使用了oracle用户,没有密码不能正常启动,其实使用现有windows用户和创建新windows用户是同一类,一个有现成账号,另外一个是新建账号。默认安装,使用虚拟账户。
2025-07-23 14:07:41
617
原创 数据库rac多实例监控
我们可以把检查脚本配置到crontab中,没分钟检查一次,当发生异常时,可以及时收到邮件。2025-07-18 09:09:55 [ERROR] orcl1 PMON进程不存在。2025-07-18 09:19:04 [INFO] orcl1 状态正常(OPEN)2025-07-18 09:09:55 [ERROR] orcl1 PMON进程不存在。2025-07-18 09:19:04 [INFO] orcl1 状态正常(OPEN)数据库rac多实例监控,当发生异常宕机,可以邮件发送出来。
2025-07-18 09:34:36
300
原创 oracle rac自动表空间自动扩展脚本
2025-07-17 11:09:18] ===== 开始表空间检查 =====[2025-07-17 11:36:23] ===== 开始表空间检查 =====[2025-07-17 11:14:55] ===== 开始表空间检查 =====[2025-07-17 11:09:19] ===== 检查完成 =====[2025-07-17 11:36:48] ===== 检查完成 =====[2025-07-17 11:14:57] ===== 检查完成 =====最后把脚本添加到contab中。
2025-07-17 11:53:13
430
原创 oracle没耗CPU,CPU消耗在哪里
从表面上看没有其他异常,但想到是不是中病毒了,以前也有发生过挖矿病毒耗尽cpu的事情,但能从top里就能看出是哪个进程占用。这里却没有cpu高耗的进程。数据库层面,从生成最新的AWR报告进行分析,并未发现CPU使用率高的sql情况,数据库负载也不高,所以还是在操作系统层面。通过perf top -s comm,pid,symbol命令,动态显示系统中占用 CPU 资源最多的函数或代码段。客户反应业务系统很卡,CPU总体使用率为100%,load average负载很高,具体进程的CPU使用率都很低。
2025-07-14 14:13:00
154
原创 rac高可用测试私网中断为什么不会立即重启服务器?
《《 RAC集群中的一个节点无法与其他节点通信,为保持集群完整性,该节点将自动关闭,触发的保护性措施,防止"脑裂"现象发生。《《《 网络通信丢失已达到超时间隔的50%,若持续丢失,将在14.85秒后将该节点从集群中移除。《《《 网络通信丢失已达到超时间隔的75%,若持续丢失,将在6.850秒后将该节点从集群中移除。《《《 网络通信丢失已达到超时间隔的90%,若持续丢失,将在2.850秒后将该节点从集群中移除。从日志看是到35s之后集群才完成停止。集群alert日志记录。
2025-07-14 14:08:15
637
原创 物理升级awr报告性能比较
调用的DATA PUMP导出,备份完成,生成数据文件和日志文件。升级后的数据库,进行恢复数据,调用的DATA PUMP恢复数据。检查awr20250220.log日志是否都正常导入。TEST --输入一个不存在的用户名称,临时使用。如sql执行时间比较。
2025-07-08 16:55:08
762
原创 Weblogic12.2.1.4集群部署
基于点对点的TCP/IP协议,通过直接建立TCP连接实现集群成员间通信,无需依赖特定网络硬件,配置简单且兼容性更强。注意:如果和控制台在同一台机子,需要保证端口不能和控制台端口一样,不然会冲突。类型选择普通,监听地址选择一节点地址,创建第二台计算机时,监听地址为二节点地址。进入控制台界面后,进入环境→计算机,点击左上角的锁定并编辑后,新建添加计算机。进入控制台界面后,进入环境→集群,点击左上角的锁定并编辑后,新建集群。设置服务器名称,方便识别是哪台机器的,监听地址,监听端口,选择集群。
2025-07-08 16:54:30
816
原创 oracle 23ai通过接口访问deepseek模型
select DBMS_VECTOR_CHAIN.UTL_TO_GENERATE_TEXT('杭州景点',json('{"provider":"openai","credential_name": "COHERE_CRED","url": "https://api.siliconflow.cn/v1/chat/completions","model":"THUDM/glm-4-9b-chat"}'));注册账号后,申请创建一个API密钥。配置访问deepseek的ACL。
2025-07-01 09:12:58
489
原创 23ai新特性-AI向量搜索简单测试
SQL> insert into doc_detail values(10,'某段时间上映的电影的市场占有率','');insert into doc_detail values(8,'暑期档的电影播放排名,取前5名','');insert into doc_detail values(7,'不同年龄段的观众看电影的次数','');insert into doc_detail values(2,'按年分组,每年的电影总收入','');将生成的all_MiniLM_L12_v2.onnx模型放入到。
2025-06-17 17:14:24
1126
原创 oracle 23ai json简单使用
VALUES (i, JSON('{"name":"张三' || i || '","value":' || i || '}'));9984 {"name":"张三9984","value":9984}9985 {"name":"张三9985","value":9985}9986 {"name":"张三9986","value":9986}9987 {"name":"张三9987","value":9987}9984 {"name":"张三9984","value":9984}
2025-06-12 18:15:03
594
原创 oracle 23ai对象注释新特性ANNOTATIONS
T_USER NAME TEST 员工姓名。name列做了两个标注,一个标注name 是员工姓名,另外一个标注limits限制中文姓名,当然标注的value可以不写。可以通过dba_annotations_usage、dba_annotation_values查出注释内容。也就是一张表或者一个字段,可以注释多个内容描述,比如上面创建的表。我们知道以前数据库版本注释方式是用。COMMENT,如下。
2025-06-12 17:04:52
540
原创 19c补丁后oracle属主变化,导致不能识别磁盘组
Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(`oracle`)和集群管理用户(`grid`)在某些情况下没有被正确加入到必要的组中,导致权限问题,从而影响数据库启动。文档中指出,在打上 19.23 或以上版本的补丁后,Oracle 相关用户(`oracle` 和 `grid`)的组权限可能会被修改,导致无法正常启动数据库。MOS 号:[2919585.1](https://support.oracle.com)
2025-06-10 11:11:58
400
原创 rac防火墙未禁用服务器重启导致二节点启动异常
所以就朝这方面去查,后面发现操作系统防火墙没有禁用,服务器重启后,导致防火墙又起来了。数据库服务器由于断电重启,重启后起后发现rac一节点集群和数据库不能正常启动。从一节点alert.log日志可以看出在启动过程中,私网通信及多播存在问题。这说明在在私网通信中很多包被丢弃掉,接收丢包高达 547,823。通过服务器之间私网相互ping都很正常,并没有丢包情况发生。检查网卡网络丢包情况,发现私网很多包被drop掉。检查hosts中的私网ip。
2025-04-21 16:34:42
236
原创 oracle rac时区问题导致远程查询时间不准
发现直接通过sqlplus / as sysdba连时间正常,通过ip去连时间时间慢12小时,通过远程工具SQL Developer,时间也是不准确的。进程中的环境变量都是America/New_York,所以都是自通过远程访问的系统时间都不准确。都是没有问题,时间和时区都是准确无误,时间同步也配置着正常。远程工具SQLDev工具和应用出来的时间都要慢12个小时。后面检查到集群文件,发现集群文件的时区还是纽约的。改为:TZ=Asia/Shanghai。使用root用户修改该文件时区。
2025-04-21 16:10:49
389
原创 adg查询数据与主库存在差异
查询对应的sql发现都是查询语句的sql,查询对象带有dblink的对象,但dblink的目标库已经宕机,所以导致全部堵塞,进而堵塞了lgwr进程。kill掉single-task message事件的会话恢复正常。堵塞源头事件“single-task message”查询adg库数据,发现比主库差了几天。查询主备同步情况,均正常。数据文件头scn也均一致。
2025-04-10 15:57:53
407
原创 业务高峰期ddl带崩数据库
发现简单的一个insert竟然执行不完,并且造成了library cache和shared pool征用,说明当时有什么ddl操作堵塞了数据插入。检查服务器发现cpu耗尽,sqlplus / as sysdba不能连上数据库,重启后恢复,检查实例宕机前awr top5事件。一般情况,引发 mutex X 和 shared pool latch 争用,未使用绑定变量导致高硬解析。通过dba_hist_active_sess_history检查最早发生堵塞的事件。确实有很多ddl操作。
2025-04-10 14:14:28
322
原创 oracle数据库wrap加密
公司开发的产品要做加密,涉及数据库的存储过程、函数、包、触发器,通过wrap挨个加做代码加密,存储过程、函数、包加密均没问题,到触发器发现加密后输出的还是源码。1、Oracle数据库不同版本之间的wrap文件不向下兼容,也就是说不能用高版本的wrap生成加密到低版本中使用。去oracle官方文档找了一下,plsql源码加密不支持这块,原来触发器并不支持的,所以加密失败了。2、不能用wrap加密的源码去隐藏密码或表名,这种方式并不是安全的方法。3、不用wrap加密触发器PL/SQL源码。
2025-03-28 14:47:15
252
原创 oracle加密函数或存储过程代码的两种方式
使用q'[ ]' 避免单引号冲突,不使用q,单引号需要两个。在sqlplus下执行加密函数即可。使用自带的存储过程加密,在执行密文。
2025-03-28 10:30:46
570
原创 oracle中java类的使用
导入后通过PL/SQL Developer可以看到java classes下会有java类名称存在。可以通过创建java source做为java代码使用。生成OracleJavaDemo.class。导入java类到oracle数据库库。编写一个简单的java类。创建函数调用java类。
2025-03-28 10:17:44
686
原创 ALTER TABLE SHRINK SPACE及MOVE的区别与适用场景
:仅重组数据块(消除碎片),但不移动HWM,因此不会立即释放空间到表空间。:直接重组表数据并移动高水位线(HWM),释放未使用的空间到表空间。:在收缩表的同时,自动收缩其依赖的索引、LOB等对象,并移动HWM。重置高水位线(HWM):释放未使用的空间,降低表的逻辑存储上限。表所在的表空间不支持自动段空间管理(ASSM)(此时无法使用。:业务高峰期需减少锁冲突,先整理数据,维护窗口再释放空间。将表中的数据物理移动到新的位置(同一表空间内或跨表空间)。:需同步回收表和索引碎片时。
2025-03-25 16:20:00
844
原创 impdp导入报权限问题
检查文件系统、directory、用户权限均正常,并且导入过一次也正常。发现是个触发器,并且重编译发生错误,所以干脆删掉。根据报错查看编译出错的对象。
2025-03-25 14:03:51
454
原创 普通表再造成分区表导致性能问题
做分区表改造后,次日业务高峰期,发现有很多asynch descriptor resize事件,根据事件情况,调大了fs.aio-max-nr = 3145728,但性能并没有好转,io负载100%居高不下,检查ash。根据该分区表是通过日期做分区的,而且索引是非全局索引,通过检查sql执行计划发现,查询并没有用到分区时间,所以导致local索引也没有使用。发现全部走的全表扫描,检查索引和原表对比都存在。创建全局索引后恢复正常。
2025-03-21 15:53:00
172
原创 windows下oracle打完补丁不能正常启动服务
oracle11.2.0.4在windows2008环境下,打完补丁服务不能正常启动,查看事件日志。根据提示报错是调用32位的VC++软件出错,检查vc++安装软件。安装8版本的32位的vc++后启动正常。
2025-03-11 10:06:39
224
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅