数据库突然宕机无法open的问题及解决
测试的数据库有一天突然宕机,然后无法正常open了,这个问题虽然过去了一段时间,也在这儿总结一把。从alert日志中的信息如下。Fri Jan 10 16:09:42 2014Archived Log entry 6837 added for thread 1 sequence 6863 ID 0x19db56aa dest 1:Fri Jan 10 16:12:59 2014Errors in file /oravl01/oracle/adm/FETABP2/diag/rd...
DBMS_STATS收集统计信息的问题及解决
收集数据库的统计信息是dba工作的一部分,如果在数据快速增长的库上,统计信息如果收集的频率太慢,会对执行计划有一定的影响。而对于逐渐客户饱和的系统来说,统计信息就可以很长时间收集或者尽量不收集。对于统计信息的收集,如果是很大的表,收集100%也是不现实的,如果收集的百分比太小,统计信息又失真,对系统系统...
手工创建/删除数据库的步骤
今天和大家分享下数据库的创建和删除的步骤,里面有很多细节需要大家考虑。创建数据库不只是一个create database语句。删除数据库 drop database也不是随时都能执行的。--创建数据库的步骤。1.用户,文件系统,挂载点和网络的配置,内核参数配置这个需要提前准备好。2.ORACLE_HOME的安装和PSUoracle_home的安装,这个...
探索ASH
老是在用ASH,昨天心血来潮,想看看ash视图里面是怎么样的,过程也算曲折,不过也算抛砖引玉。先看看v$active_session_history的情况。-->是个同义词SQL> select owner,object_name,object_type from dba_objects where object_name='V$ACTIVE_SESSION_HISTORY';OWNER &nb...
数据库突然宕机的问题及分析
昨天晚上,某个环境的数据库在做一个压力测试的时候突然宕机了。这个问题比较急。马上查看日志文件。看到了如下的一段,报了os级的linux错误。提示没有空间了。Fri Mar 14 19:16:47 2014Archived Log entry 192 added for thread 1 sequence 192 ID 0x1ed7a02c dest 1:Fri Mar 14 19:39:24 2014Incremental checkpoin...
alert日志中出现ash size的警告
今天查看数据库的alert日志总出现了如下的警告。Archived Log entry 202 added for thread 1 sequence 202 ID 0x1ed7a02c dest 1:Sat Mar 15 01:37:30 2014Completed checkpoint up to RBA [0xca.2.10], SCN: 267711453Sat Mar 15 01:44:58 2014Active Session History (ASH) performed an emergency flush. This may ...
探究AWR 第一篇
statspack相比算是比较通用,免费,可以在标准版,企业版中使用,awr算是statspack的一个升级版,而且代码不公开。但是实现的功能和数据的采集要更丰富。awr算是dba工作的必备工具。自己总结了一下,大概由以下几个方面来说明一下。1.snapshot的管理先来看看snapshot,这是列出近几天的snapshot,可以看出如果数据库重启...
ORACLE 11g导入9i dump的问题及解决
因为系统迁移,需要将一部分的9i的数据导入11g的库里,目标库是11.2.0.3.0 64位的环境。导入dump的时候,有一个比较大的分区表,需要用导入分区的方式,就写了如下的命令。但是奇怪的是过了一会,抛出来一个imp的错误就完事了。-bash-4.1$ imp n1/n1@testdb tables=TEST_DB:TEST_DB_PAR_P1  ...
excel文件内容导入数据库的问题及解决
今天需要导一些数据,从excel导入到数据库中。没有装现成的plsqldev,只能用sql*loader来弄了。首先我把excel文件的内容转换成csv文件,以逗号分隔,在另存外excel文件的时候有那个选项。然后我在目标库中创建了如下的表。create table sql_summary(sql_time varchar2(100),sql_id varchar2(100),cpu_time varchar2(1...
数据库文件的迁移
关于数据库中的文件迁移,需要考虑普通数据文件,redo日志文件(还需要考虑是否为current状态),undo表空间,临时表空间,system,sysaux表空间。文件迁移可以参考下面的伪代码:move_non_system_tablespace ,需要在open状态 {&nb...
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但是可...