normal冗余的ASM磁盘组创建测试以及数据如何具体均衡分布
normal冗余的ASM磁盘,数据只能保留两份,即使有三个失败组,也是如此,数据的分布是基于磁盘的partner关系,virtual extent是ASM的最小逻辑分配单位,而AU是最小的物理分配单位,我们通过测试分析冗余关系,以及数据存储的数据块再ASM磁盘的位置。
生产库大表拆分的需求案例分析
出于性能和管理需求,业务用户需要讲大表按照年份做拆分,便于管理(分区表这里不讨论,其实也是方案之一),用户需要按照每天一个表做拆分,而21年的表作为使用氨大表的名字,业务还需求,而21年之前的数据只是用户查询,我们计划使用数据泵来操作,由于索引重复和重建的问题,我们做了相对细致的考虑,下面是测试过程。
19.3RAC安装root.sh脚本时报PRCR-1079处理
安装19.3RAC数据库,在运行root.sh脚本时报错PRCR-1079 : Failed to start resource ora.qosmserver,看来在ora.qosmserver资源启动时配置方面由问题。
分区表导入的注意事项测试
分区表出于管理或者业务需要再存储层往往定义比较细致,比如每个分区段独立空间存放,本地分区索引需要单独表空间存储,这样对于位置导出情况的条件,或者对原始表信息不清楚时做导入操作会增加难度,我们通过测试,看看创建问题以及如何解决。
分区表必须掌握的几个字典
分布表是目前使用的已经很频繁了,对于大表基本可以实现按照业务需求进行分区,比如最常用的范围分区,而分区表的信息的元数据体现在几个掌握的几个字典 dba_tab_partitions,dba_part_tables,dba_part_key_columns,而这些字典也是必须掌握,下面通过测试体会他们之间查询信息的差异。
Job运行太慢如何停止Jo?
在数据库维护中,业务人员会要求DBA停止一个job,一般这个job运行较慢用户无法忍受,或者运行了错误的job。 那么该如何停止这些job呢?Oracle在dbms_job这个包中没有定义存储过程来停止正在运行的job。我们需要找到 运行job的会话和系统进程,然后在数据库层面或者系统层面kill该job的运行。
shmmax shamll sga_taget之间的关系以及再hp-ux下遇到的ORA-2709问题
sga-target与shmmax,一个是Oracle共享内存,一个是系统内核设置的共享内存段,二者的设置需要遵循规范,根据sga_target内存再数据库启动阶段的分配原理,我们讨论他们之间的关系,以及再hp-ux下可能遇到的问题。
SQL*Loader加载外部数据
Oracle SQL*Loader (SQLLDR) 用于从外部文件加载数据到Oracle数据库,比如txt文件,使得平面数据文件地加载十分方便高效。其强劲地数据解析引擎能够处理各种格式地数据,既可以本地加载也可以跨网络加载。 SQL*Loader的日志文件记录数据加载过程,提示加载遇到的报错信息。可以通过检查日志确定加载是否完成。
关于谓词中or写法in写法以及union all改写地测试
在or或者in相关字段上创建索引,可以避免全表扫描,优化执行计划,Oracle使用inlist iterator提高了执行效率,下面是测试过程和执行计划展示。
字段设计中的空值与索引使用
对于表的字段设计,如果确认没有空值或者不允许空值,在定义时最好直接加非空约束,下面测试由于空值导致的索引问题,以及如何解决。
和修改Oracle数据库的db_name
x修改dbname与修改dbid不同,再打开数据库时不需要resetlogs,这里给出详细的修改测试步骤。
归档丢失如何恢复数据文件
测试说明,有热备份,没有备份归档,当前日志无损坏,但是部分归档丢失,此时数据文件损坏(比如存储掉电),该如何恢复以及需要考虑的问题。
如何修改数据库的dbid
从Oracle9.2之后就提供了工具NID ( New Database ID),使用该工具修改DBNAME和DBID。
优化SQL从而降低CPU资源的使用,从而解决DBTime值异常增长。
观察DBTime告警曲线异常增长,进而生成了ASH报告,通过报告知道是CPU资源占用DBTime。从top SQL 看其中几条SQL都是全表扫描 我们分析表,表上的字段以及字段数据分布等信息,通过创建一个组合索引消除全表扫描,使得逻辑读降低到之前的大概1/40
ORA-06502: PL/SQL: numeric or value error常见问题
巡检发现大量的12012 6502以及1472错误,其中ORA-06502往往是存储过程的代码自身问题,变量赋值类型问题或者变量定义缓存不够。我们模拟跟踪如何分析定位问题。
存储性能差异造成log file sync等待严重
静态vs静态监听以及多端口注册
监听是Oracle的入口,要熟悉静态监听,动态监听以及多端口注册的概念,本测试熟悉下基本概念和测试流程
脚本是提高工作效率的好助手
在数据库安装审核时,我们经常需要查看给了用户那些角色以及权限,以防止过度授权,下面通过一个简单的脚本展示下查询过程。
ORA-00600 [17182] orORA-00600 [17147]错误处理分析过程
针对ora-600错误,如果前面没有其他报错,我们一般初步认为是bug导致,需要确定当前库的RU以及解决的bug列表,然后通过MOS找到最匹配的说明,当然如果有原厂支持确认更好,下面是一个ORA-600的处理过程,这个内存报错不会影响用户数据。
删除表记录后对应索引如何保持平衡树,索引段大小如何变化。
很多时候我们发现索引比表段要大,而且在删除表数据后,发现索引段比表段大的更多,其实这里涉及Oracle索引平衡树的机制,先通过测试演示并说明delete后索引如何变化。