redo日志文件学习笔记(一)
关于redo日志文件,今天因为要做redo日志的在线迁移,所以特意做了个简单的总结。1. 如果要把redo的切换信息显示到alert日志中,需要设置个参数。Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> s...
sqlplus无法启动的问题及解决
今天性能测试部门的同事问我一个问题,说他跑一个shell脚本调用sqlplus结果报错Error 6 initializing SQL*PlusSP2-0667: Message file sp1<lang>.msb not foundSP2-0750: You may need to set ORACLE_HOME to your Oracle software directory我记得自己之前碰到过类似的问题,也是sqlplus启动不了。参见日志http:/...
临时表空间损坏的修复
最近测试环境需要把一些现有的存储空间匀出一部分来给新增的环境使用。unix组的人很快就空间按照指定的比例重新切分好了。环境交给我的时候,我先把数据库起来,没有任何问题,因为需要到处一个创建用户的语句,就简单执行了一个查询。select dbms_metadata.get_ddl('USER',u.username) from dba_users u WHERE USERNAME ...
分区表放入keep pool,recycle pool的问题及解析
因为生产环境的性能瓶颈,经过诊断,给出的结论是需要把几个表和索引放入keep pool,几个索引放入recycle pool.其实放入keep pool 确实对于频繁访问的数据,而且数据量不大的情况下,性能有一定的改善。避免了大量的物理读。大家的大体感觉都是把表放入keep pool,其实在一定的情况下,把索引放入keep pool也有一定的道理,...
一条sql语句“导致”的数据库宕机问题及分析
最近测试环境需要做一些变更,把测试环境切分成两套环境,存储空间也需要压缩压缩和整理。unix组的人已经开始做空间划分了,然后我们需要在此基础上重建一套环境。有些数据文件使用空间不大,所以准备压缩一下。用了下面的sql语句,结果跑了十几秒中就抛了下面的错误。SQL> set linesize 200SQL> col name for a40SQ...
关于数据字典的查询效率优化
最近因为测试需要对一些数据文件做压缩,腾出更多的空间来为其他环境做准备,压缩数据文件,最开始采用了如下的sqlcol name for a40col resizecmd for a80select a.file#,a.name,a.bytes/1024/1024 CurrentMB, ceil(HWM * a.block_size)/1024/1024 ResizeTo, ...
oracle大师的点拨分享
突然想起前段时间和美国一个oracle大师的邮件交流,感觉受益匪浅,大师还是很热心的,为了保护隐私,只说他是oaktable的会员,很有经验而且谦逊的一个人。交流的邮件如下,希望大家也能收到一些感悟。对自己的学习都能有所帮助。Jianrong,I will try to answer your questions with my responses in red italicized typ...
关于TNS-12543: TNS:destination host unreachable的案例
今天在给几个库做映射的时候,用tnsping,有一个库老是有问题,在客户端配置tnsping NFTTESTUsed TNSNAMES adapter to resolve the aliasAttempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.19.198.51)(PORT = 1563))) (CONNECT_DATA = (SERVICE_NAME = NFTTEST)))TNS-1254...
一条sql语句导致的数据库宕机问题及分析
之前分享过一篇博文,是一条sql语句"导致"的数据库宕机,上次是另有原因,这次真碰到一个案例,而且是在重要的环境上,希望大家引以为戒。数据库是基于Linux64的版本,版本是11.2.0.2.0,已经打了最新的psu.数据库的访问用户数大约在1000左右,当时查看服务器的cpu已经是100%了,有大约10个进程都是cpu 100%,数据库逻辑读...
关于字符串匹配查找的总结
比如判断一个字符型字段中出现某个字符超过3次的数据行,如果为了简单达到目的,可以直接使用Like来做,SQL> select content from clob_test where content like '%is%is%is%';CONTENT--------------------------------------------------------------------------------this is a test,and it is very useful但是可...
通过top命令抓取cpu高消耗的sql
top命令在linux环境维护中很实用,虽然功能缺失不够sar那么全面。今天和大家分享一个通过top命令来抓取性能sql的案例。通过top命令抓取了如下的信息。pid是3585的进程对应的sql 之前已经确定是性能问题导致的了,所以先放过,可以看看pid是8879的这个进程,出现的不是很“稳定”。可能通过ash,awr不一定能够及时的抓...
关于oracle里的process总结
感觉需要对process做一个简单的总结。准备了如下的测试场景。session在服务端请求先用sqlplus / as sysdba在服务端登录。SQL> show userUSER is "SYS"得到当前的session为5860.SQL> select sid from v$mystat where rownum<2; SID---------- 5860得到对应的Proces...
数据库shutdown之后无法启动的问题
最近在已有数据库服务器上又新建了4个数据库实例,目前一共有9个数据库实例。环境搭好以后做检查的时候。根据反馈,有个job报如下的错误。Failed to create connection for url=jdbc:oracle:thin:@xxxxx and dbUser=xxxxxxNested Exception/Error: java.sql.SQLRecoverableException: IO Error: Got minus one fr...
关于drop user的cascade选项解惑
在数据库中,有时候需要删除用户,大多数时候都需要使用cascade选项,有些时候却不需要,想知道在这个简单的命令之后数据库倒底在干什么,这时候给一些指定的操作加上trace就跟把那层纱布揭开一样,可以很清楚看到数据库倒底在干些什么。10046,sql_trace等都是一些不错的选择。首先来复现一下这个问题。‘创建一个新用...
关于trigger过滤最大值的问题
今天碰到一个问题,开发有一个比较紧的需要,想问问我数据库这边能不能帮上忙。如果开发那边来做,需要改代码,如果数据库这边能临时支持,代码就可以多做些测试,然后再打补丁了。需求的情况大体是这样:有一个表的字段是number(11,4),意味着数据保持4为精度,总共长度支持11位,最大值位9999999.9999如果超过了那个最大...
关于oracle中session跟踪的总结
数据库中的session在操作中可能会有各种各样的问题,比如一条sql语句执行失败,某一个应用在一些特定的场景下就会有一些性能问题等等,有时候在代码层去做一些debug来说肯定是不实际的,而且也不一定能够迅速的排查问题,对于session的监控显得尤为重要。可以灵活的开启和关闭,在数据库层面,session层面,甚至特定的应用...
session跟踪失效的问题和原因
最近碰到一个奇怪的问题,在生产和其他比较正式的环境中进行sql trace都没问题,但就是测试环境的数据库不知道怎么的, 设置sql_trace,开启诊断事件,dbms_system,dbms_monitor都试了,就是没有trace日志,我都怀疑是不是有些配置给禁用了。查看基本的参数设置,没有发现什么问题。SQL> show parameter statisNAM...
分析函数牛刀小试
今天有个同事问我一个问题,想通过一条sql语句完成一个稍显复杂的查询。结构如下面所示。需要算出tax apply 的值,但是需要汇总charge_amount列和tax_amount列的值 CDL CRDCharge AmountTax AmountTax apply...
物化视图全量刷新的简单测试
关于物化视图的刷新,如果数据的变化比较大采用了全量刷新的时候,会将现有表里的数据都清空然后放入新的数据,整个过程有点类似delete,insert的感觉,但是刷新后表的高水位线还是会保持不变,效果类似于truncate,insert.对于堆表来说,在重要的一些表上做truncate简直就是灾难,如果一个表访问频繁,做了truncate之后,在...
物化视图刷新的问题及分析
最近现场需要搭建一套全新的环境,对于数据字典的管理采用了物化视图,因为数据量不大,采用了全量刷新的方式。因为有好几套环境,有几套环境是通过db link和主节点的表创建的物化视图,这几个节点间的网络情况不好,刷新一个稍微大一些的表或者带有lob字段的表时,速度会很慢,因为有好几套环境,一套一套的等待刷新完得花...