- 博客(131)
- 资源 (85)
- 收藏
- 关注
原创 PDB自启动设置
方案二:oracle12.2可用ALTER pluggable DATABASE ALL save state;–取消自动启动PDB。状态更改之后可以在dba_pdb_saved_states视图中查看开启情况。#12.2以上版本在pdb open状态下打以下命令执行。方案一:oracle12.1只能使用触发器。高版本建议优先使用第二种模式。
2024-09-12 08:00:00 413
原创 AHF关闭
AHF(Autonomous Health Framework):是oracle官方收集日志的工具集合包,包内涵盖了TFA :收集日志的工具;ORAchk/EXAchk : 检查系统的工具。./ahfctl statusahf --查看ahf状态。./ahfctl stopahf --关闭afh工具。由于目前涉及到漏洞,可以将其关闭来规避漏洞。
2024-09-11 08:00:00 163
原创 部署定时任务每2天清理一次表
authid current_user ---使用“authid Current_user”将存储过程转化为调用者权限。表是否被truncate,可以在dba_objects视图中验证。这里的enabled 被错误的写成了endabled,导致报错。原因是create_job的一个参数写错了。
2024-09-11 06:15:00 379
原创 ADG切换RESOLVABLE GAP
在切换ADG的过程中,需先关闭rac的二节点。关闭后发现存在 :RESOLVABLE GAP。4、再次关闭主备库的2节点,开始切换,正常。2、拉起主备数据库的2节点。3、几分钟之后GAP消失。
2024-09-10 12:34:17 402
原创 ADG切换异常
2、到操作系统层面去找PR00和7078022进程,系统中不存在。仍然无法关闭数据库,原因依然是 Active process 存在。4、直接尝试shutdown abort,数据库可以关闭。3、尝试关闭实例,shutdown immediate。有一个进程始终是active状态,导致无法完成切换。主库已切换成:RECOVERY NEEDED。--备用数据库还没有接收到切换请求。1、将备库上所有会话杀掉;5、再次拉起startup。7、再次切换,成功。
2024-09-10 12:31:17 379
原创 数据库process数打满
2021-11-11 15:00:51]-节点[1],连接失败!4、随即分析session连接的客户端信息,定位到具体业务,联系开发分析为什么连接数量暴增,然后突然释放。但查看process数据量已经将近达到3000的最大值,如下图所示,且很快就能释放到1500。3、进一步分析,是不是因为process或者session达到阈值。2、排查数据库各项状态均正常,日志未发现告警。监控工具报如下错误:提示数据库连接失败。查看session数量未达到阈值。
2024-08-29 08:15:00 218
原创 客户端字符集小于数据库字符集导致乱码
数据库的字符集AL16UTF18(服务端)是大于en_US.UTF-8(客户端)字符集的,是客户端的超集,因此会产生乱码。但服务端(数据库)上的字符集已无法修改,可以通过修改客户端的字符集大于等于数据库的字符集即可。如果想要永久生效,配置到.bash_profile文件中(未测试)将客户端的字符集修改成AL32UTF18,即大于数据库的字符集。1、查看数据库的字符集。2、查看客户端的字符集。
2024-08-28 08:15:00 221
原创 存量重复数据创建主键
2、该表存在重复数据,因此需新建普通索引,后通过enable novalidate方式重新加主键约束。1、删除原主键和索引。
2024-08-28 06:30:00 221
原创 oracle收缩表空间
1、发现一个表空间aaa使用率已达到93%,急需扩容,但asm磁盘组空间同样不足,只剩下不到100G,磁盘组扩容需要存储工程师配合,存储工程师未在现场,不具备扩容条件。5、使用alter database datafile 35 resize 1G,无法成功,发现曾经使用过最大的扩展分区;11、如果resize 不能成功,可将resize空间改大一些,比如5G,10G,就可成功。2、查看发现有一个表空间bbb为1T,但使用很低,只有20%。3、查看该bbb表空间最大的对象是sys.aud$;
2024-08-27 08:30:00 419
原创 Oracle-交换分区测试
2)将t_pe交换到t_p的p1分区,具体如下:alter table t_p exchange partition p1 with table t_pe;1)将数据初始化到一个新表t_pe,表结构(字段)跟原分区表保持一致。1、用exchange分区表减少初始化过程中对业务中断的影响。3、创建需要交换的普通表并插入数据。3)重建分区表上的索引。
2024-08-27 07:30:00 153
原创 存量数据重复数据建立主键
novalidate:表示对现有的存量数据不检查重复值。Oracle表中需要加主键的列,但有重复数据。enable:表示主键约束对以后的数据有效。2、加主键约束,并制定novalidate。可以采用忽略掉重复值的选项。
2024-08-26 11:01:39 384
原创 Oracle taf高级特性使用
TAF是Oracle数据库提供的一个高级特性,旨在实现应用程序在数据库连接中断时的透明重连。它允许应用程序在数据库故障发生时,无需修改代码或手动干预,就能自动连接到新的数据库实例,保证了事务的连续性和应用的高可用性。$srvctl relocate service -d tscta -s ser2 -i tscta1 -t tscta2 --2节点。$srvctl relocate service -d tscta -s ser1 -i tscta2 -t tscta1 --1节点。1、srvctl命令。
2024-08-26 11:00:12 910
原创 Oracle常用SQL脚本总结
sed -i "s/EXCLUDE INSTR 'GRANT'/EXCLUDE INSTRWORDS 'GRANT REVOKE'/g" *.prm ------将所有 prm结尾的文件中,EXCLUDE INSTR 'GRANT'替换为EXCLUDE INSTRWORDS 'GRANT REVOKE'ps aux | awk -F' ' '{sum+=$6};END{print sum}' ---所有内存之和。
2024-08-05 17:42:49 1502
原创 SQLTools插件下载与使用说明
9、右键菜单SOSI信息 - 查看表信息的sosi.sql脚本的简化版, 可读方式显示字段的low_value与high_value,快速判断谓词越界;SQLTools是一个专注于SQL优化与管理的plsql developer插件,目的是把一些常用的SQL收集在一起,方便快速解决问题,提高工作效率。6、SQL固化脚本生成器 - 只需提供两个SQL_ID,就能生成用固化SQL的脚本,快速优化SQL;3、SQL优化 - 主力工具:SQL优化工具集合,用于分析、优化SQL,快速解决性能问题;
2024-08-05 17:42:28 572
原创 生产环境交换表分区操作步骤
--1、源表的定义-- Create tablecreate table OSGIC.IC_GIC_LIMIT();--2、目标表定义-- Create tablecreate table OSGIC.IC_GIC_LIMIT_BACK();-- Create/Recreate indexescreate index OSGIC.GIE_BUSS_ID on OSGIC.IC_GIC_LIMIT_BACK (BUSS_ID);create index OSGIC.GIE_CREATED_TIME on OS
2024-08-03 00:30:00 432
原创 Oracle19c数据库system密码锁定
二、所在的pdb中的system用户状态是正常的,但不可用,连接的时候提示账号已锁定。一、在oracle 19c数据库中,cdb中system用户被锁定,locked。在cdb中将system用户解锁。
2024-08-02 00:30:00 252
原创 Oracle的一些脚本工具总结
第三个参数:等待事件,比如 on cpu,根据@ash_total.sql的结果中最多的分类。这是oracle官方提供的一个脚本,需要根据数据库版本下载对应的oratop版本。比如:收集2小时前开始的ash,总共收集1小时,按照每2分钟分类展示。第二个参数:收集多久的ash,即收集多长时间。第二个参数:收集多久的ash,即收集多长时间。脚本,数据库性能情况,查看当前数据库会话情况。第一个参数:几个小时之前开始的,即开始时间。第一个参数:几个小时之前开始的,即开始时间。查看一次会话产生的日志情况,间隔3秒。
2024-07-31 14:10:42 1498
原创 Orale并行的学习
比如:同时导出10张表,其中9张小表,一张大的分区表100G,而该分区表中分区p1 占用90G,则就算开了8个并行,也只能有一个并行来处理分区p1的数据。in memory 架构其实就是share nothing,对于普通rac来说,它会将表分布到不同的节点上,每个节点存储一部分数据,最终合并成一个完整的表。以下几个不论是跟父进程一起并行,还是跟子进程一起并行,或者跟父进程一起串行,还是跟子进程一起串行,都对资源消耗不大。5、索引的扫描不能并行(在12c之后,加并行后,在回表阶段可以并行)
2024-07-31 11:22:36 305
原创 10046 事件学习
--sys_context('userenv','module')的获取,在v$session 中的module字段。带有dblink的语句,oracle会自动将其划分成两部分的sql,一部分在本地执行的sql,一部分在远端的sql。sql_id的 10046 trace,只要该sql执行,就会打出trace。3、确认dblink远端数据库的process_id(在远端数据库执行)4、根据步骤3找到的process_id,进行oradebug方式追踪。六、imp、exp,(同样也适合其他操作的追踪)
2024-07-31 11:22:13 969
原创 oracle日志组损坏的处置方法
3)如果之前没有可用的备份,或问题严重到任何方法都不能 resetlogs 打开数据库,为了抢救数据,考虑最后一招使用 Oracle的隐含参数:_allow_resetlogs_corruption=TRUE。数据库此时为打开状态,这步若能成功,一定要做一个新的数据库全备,因为当前日志无法归档,归档日志 sequence 已无法保持连续性。本例日志组 1 状态是 CURRENT 状态的,现在模拟当前日志组损坏。2)数据库已经崩溃,只能做传统的基于日志的不完全恢复或使用闪回数据库。切换几次,触动它一下。
2024-07-30 13:15:00 168
原创 Oracle RAC将spfile从本地磁盘调整到共享存储
由于历史遗留问题,某Oracle RAC数据库集群的spfile分别存放在两个节点的本地磁盘上,但spfile是由同一份pfile生成,因此配置相同,但存在隐患。4、将两个节点中的$ORACLE_HOME/dbs目录中的spfileraac.ora文件mv到/home/oracle。到两个节点$ORACLE_HOME/dbs/initraac.ora中查看控制文件是否指向磁盘组中的共享spfile。2、将两个节点的spfile生成pfile,并比较配置是否一致。比较spfile中的配置,应该是一致的。
2024-07-30 12:30:00 369
原创 添加索引导致微服务异常
执行DDL时,最好使用ONLINE选项,随着oracle版本升级,online状态下可执行的DDL逐步增加,大部分普通DDL上,可以使用ONLINE选项,例如。而在新增索引的时候会有TM锁,而该表又有大量的insert、update等,因此会对这些dml语句造成阻塞。1、对大表新增索引尽量停业务,就算加上online不会造成阻塞,但对性能也有影响,特别是这种性能敏感的系统。2、在新增索引的时候加online参数,而online产生的TM锁时间比较短。加了online后,可以以非独占的方式创建和删除索引。
2024-07-29 17:17:32 1210
原创 数据库设置会话超时时长方法
方法一、在sqlnet.ora中设置参数 如需要设置客户端空闲10分钟即被中断,则在sqlnet.ora的末尾添加SQLNET.EXPIRE_TIME=10。注:sqlnet.ora文件的路径在$ORACLE_HOME/network/admin下。第 1 行出现错误: ORA-02396: 超出最大空闲时间, 请重新连接。
2024-07-08 09:19:18 685
原创 SQL Monitor Report总结学习
此函数用于根据各种条件参数(包括:start_time, end_time, duration, inst_id, dbid, event_detail, bucket_max_count, bucket_interval, top_n, duration_stats),产生比使用REPORT_SQL_MONITOR更加详细的SQL报告。系统收集的SQL信息会存储在V$SQL_MONITOR、V$SQL_PLAN_MONITOR视图中。3) 从v$sql_monitor获取模拟SQL信息。
2024-07-08 09:08:34 973
原创 Oracle加快数据库回滚
一般的操作引起的回滚,如rollback,中断操作,是不会出现在这个视图中的(可以在v$trasaction和v$session_longops中查看)。里面记录了回滚操作的状态,执行时间,操作的数据块,进程id等,可以估算出恢复所需的时间。记得一次大批量删除数据时,由于回滚段满,导致delete操作失败,大量事务回滚,这个表又是交易使用,rollback时,导致cpu idle急剧降低,cpu和io都繁忙了,交易根本无法使用这个表,程序直接挂死,真是带血的教训。CPUTIME:已经回滚的时间,单位是秒。
2024-07-06 10:30:00 428
原创 insert阻塞了insert?
而微服务是连接的scan IP地址,各种查询和insert操作是随机分配到两个数据库节点上的,因此就会造成其中2节点去请求1节点缓存的内存块,而这时1节点正在使用,2节点就会等待,反之亦然。数据库中存在,insert语句受到了行锁阻塞,而阻塞的源头也在执行同样的insert语句,同样都是对表USERSYS_TASK_USER_LOG_TEMP01的插入操作,很是费解。3、数据库中有微服务发起的定时job,执行delete这个表的操作,且删除的数据量大,且删除逻辑需优化,已执行9个小时,仍未执行完成。
2024-07-06 08:00:00 696
原创 Oracle日志挖掘小结
通常在安装数据库后就已经安装了Logminer,要查看数据库是否安装了LogMiner,只需查看数据库中是否已经有了dbms_logmnr和dbms_logmnr_d这2个package,如果有了,则已经安装。第1个脚本用来创建dbms_logmnr包,该包用来分析日志文件,第2个脚本用来创建dbms_logmnr_d包,该包用来创建数据字典文件。3. dbms_logmnr.start_logmnr :开始分析日志文件;4. dbms_logmnr.end_logmnr :结束分析日志文件;
2024-07-05 11:48:21 720
原创 Oracle审计小结
但audit trail不会写在aud$表中,这个很好理解,如果数据库还未启动aud$不可用,那么像conn /as sysdba这样的连接信息,只能记录在其它地方。如果是windows平台,audti trail会记录在windows的事件管理中,如果是linux/unix平台则会记录在audit_file_dest参数指定的文件中。DB:将audit trail 记录在数据库的审计相关表中,如aud$,审计的结果只有连接信息;audit_trail 的value值为NONE表示不开启;
2024-07-05 11:45:18 323
原创 物联网应用Fast ingest
Fast ingest 的目的是支持生成大量信息数据的应用程序,这些信息数据在聚合中具有重要价值,但不一定需要完整的ACID需求。物联网中的许多应用程序都有一个这种类型的工作负载,例如传感器数据、智能仪表数据甚至交通摄像头。对于这些应用程序,可能会收集大量数据并将其写入数据库以供以后分析。原理为:数据库将插入的数据临时保存到缓存(large pool)中并返回成功,这些内存中的数据后台异步写入磁盘(redo)。Fast ingest 优化是针对高并发,单行数据的插入这种场景的。
2024-07-04 08:00:00 259
原创 Oracle密码过期处理方式
1、如果密码因为时间到期而过期,需要修改密码才能重新。2、如果不记得密码,可以通过values方式修改。3、如果不想频繁过期,可调整profile。
2024-07-03 18:44:35 1730 1
原创 Oracle 集群的守护进程
ohas:主要用于守护cluster ware进程,在单节点建立集群的时候,没有crs,只有ohas、cluster ware。GPnP:管理clusterware的配置信息,放在本地磁盘上。crs:管理clusterware中的资源,数据库状态。css:管理节点成员,比如监控各节点是否存活。
2024-07-02 20:10:12 196
原创 高级队列实现代理穿透及迁移
--这些对象有告警,需要重新编译。2.1、登录原数据库导出数据库用户。1.2、通过sqlplus登录。3.1、创建用户相关的表空间。1.1、登录穿透专用数据库。编译过程中报错,需要赋权。三、穿透专用库相关配置。
2024-07-02 20:05:43 417
微软经典面试笔试题目参考答案
2007-11-14
微软经典面试笔试题目
2007-11-14
ash-object-by-waitclass.sql
2024-07-31
ash-total.sql-收集Oracle ash统计信息
2024-07-31
snapper.sql-Oracle会话级别的性能统计工具
2024-07-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人