10.2.0.1的crs的bug—Failed to restrieve procctx from ht
最近在查看rac的crsd.log中发现了大量的Failed to restrieve procctx from ht这个错误提示,这个提示是因为crs 10.2.0.1版本中出现的oracleBug(4494370),对生产系统并不会带来什么实质的影响。 [root@rac102 etc]# lsb_release -a LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch Distributor ID: RedHatEnterpriseServer Description: Red Hat Enterprise Linux Server release 4 (Tikanga) Release: 4 Codename:
ora-01000和tablespace不足推断
已经很多次碰见了ora-01000超过最大游标打开数,其实对于此种错误,dba能解决的方案很少,除了增加参数还真想不出什么方法。 Caused by: java.sql.SQLException: ORA-01000: maximum open cursors exceeded SQL> show parameter open_cursors; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ open_cursors integer 300 查看v$open_session视图来获取session中打开c
tomcat连接池不够-java.sql.SQLException: Io 异常: Connection reset
连接池的分配和释放,对系统性能是有很大影响的,合理的分配和释放,可以提高连接的效率,降低频繁建立连接和释放连接造成的系统开销,提高系统性能。 Tomcat中间件的日志中总是时不时出现IO异常,连接重置。 java.sql.SQLException: Io 异常: Connection reset SQL> select count(*),username from v$session group by username; COUNT(*) USERNAME ---------- ------------------------------ 16 74 COBRA 1 SYS 由于应用和数据库在同一台服务器上,感觉网
nologging插入需再次备份一点分析
相信经常看见文章 blog上面提到用nologging方式插入数据后需要马上进行备份,下面用两个例子来对nologging方式插入后需要再次备份后才能进行完全恢复进行分析. SQL> create table t_nolog01 as select * from dba_objects where 1<>1; Table created SQL> alter table t_nolog01 nologging; Table altered SQL> select table_name,logging from user_tables where table_name='T_NOLOG01'; TABLE_NAME LOGGING -----------------------------
library cache pin和library cache lock的诊断分析
最近运行一个分批删除数据的procedure,感觉运行比较慢,临时取消了该job,然后再次重建procedure时,session hang住了,应该是library cache pin的等待事件了,oracle用两种结构pin和lock来控制shared pool的并发访问控制。 访问一个对象将其pin到内存中,在pin之前需要先获取该对象的handle的锁定,lock的索引主要有null share exclusive,当然pin该对象也有上述三种状态。 Session a :execute delete_data 临时取消了该procedure的运行,实际进程并没有马上释放该对象的pin Session b: SQL> crea
or查询sql的一次改写
查看数据库的disk_reads中的top sql中有一个sql语句如下: SELECT a.id, a.title, a.pubdate, a.lastupdated, a.subject, a.url, w.displayname AS websitename, a.pubuser, a.similarity FROM article a, website w WHERE (FLOOR (similarity) = :1 or a.id = :2) AND a.HOST = w.id ORDER BY FLOOR (a.similarity), pubdate ASC Plan
ora-3136 client认证失败
查看alert日志中出现如下警告: Fri Aug 3 14:46:26 2012 WARNING: inbound connection timed out (ORA-3136) Fri Aug 3 14:46:26 2012 WARNING: inbound connection timed out (ORA-3136) oracle@server135 ~]$ oerr ora 3136 03136, 00000, "inbound connection timed out" // *Cause: Inbound connection was timed out by the server because // user authentication was not completed within the given time // specified by SQLNET.INBOUND_CONNECT_TIME
odu的truncate恢复
用老熊的odu又试着做了一下truncate表的恢复,一切都还算很轻松的实现了。 SQL> create table odu_xiaoyu02 as select * from dba_Objects; Table created SQL> insert into odu_xiaoyu02 select * from odu_xiaoyu02; 71940 rows inserted SQL> / 143880 rows inserted SQL> / 287760 rows inserted SQL> / 575520 rows inserted SQL> / 1151040 rows inserted SQL> select count(*) from
odu的drop恢复
找了一个win32的odu测试了一下drop的恢复,odu通过直接读取数据文件抽取数据,确实可以在非常时期解决问题,一则测试用例,大家参考下,详细的odu手册大家可以参考老熊的odu专栏。 SQL> create table odu_xiaoyu01 as select * from dba_objects; Table created SQL> insert into odu_xiaoyu01 select * from odu_xiaoyu01; 71939 rows inserted SQL> insert into odu_xiaoyu01 select * from odu_xiaoyu01; 143878 rows inserted SQL> insert into odu_xiao
并行直接加载和系统调整的一点思路
并行执行一个在OLAP系统经常出现的技术,这个可以简单描述的是处理一个sql语句时,任务被并行协调进程划分为多个并行处理单元,然后交给相应的并行服务进程,而后并行协调进程又分配其他 的并行处理单元,直到处理完所有的单元都完成,最后协调进程把所有的并行服务处理的单位合并起为一个集合交互给客户端。 为什么说多用于OLAP系统了,因为OLTP系统大多都是高效的索引读取,而高效的索引读取 完全没有必要开启并行。而并行利用多个cpu单位来共享完成任务,更多用于cpu空闲的系统, 由于OLAP系统中并发较少,cpu相对比较空
审计初记载
Oracle提供了审计功能,其实说到审计也只能说是oracle用来记录数据库对象的操作,例如什么时候、什么用户对什么对象的进行的操作,也就是对操作做信息记录而已。 SQL> show parameter audit_trail; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ audit_trail string NONE SQL> show parameter audit_file_dest; NAME TYPE
mysql的逻辑备份
Mysql物理备份可以利用mysqldump工具来备份相应的数据库的文本数据,其命令相对也很简单。 C:Userspc>mysqldump -help Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] OR mysqldump [OPTIONS] --all-databases [OPTIONS] For more options, use mysqldump --help 例如备份xiaoyu的tab02表 C:Userspc>mysqldump -u root -p xiaoyu tab02 >f:tab02.txt Enter password: ****** 备份xiaoyu的tab02和tab01的表
字符集修改引起的expdp impdp需要重新运行proc加载
用impdp导入dmp文件出现如下错误 [oracle@localhost ~]$ impdp zebra/zebra directory=back dumpfile=zebra20120420.dmp Import: Release 10.2.0.1.0 - 64bit Production on Monday, 23 July, 2012 11:33:25 Copyright 2003, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options ORA-39006: internal error ORA-39213: Metadata processing is not available [oracle@l
cpu瓶颈 top的内核sy占用较高
反应服务器的应用连接较慢,由于应用和数据库在同一台服务器上。先从os上top查看下 [oracle@server115 ~]$ top -c top - 11:58:28 up 31 days, 1:53, 5 users, load average: 1.55, 1.51, 1.51 Tasks: 247 total, 1 running, 226 sleeping, 1 stopped, 19 zombie Cpu(s): 0.1%us, 25.2%sy, 0.0%ni, 71.5%id, 3.2%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 32935076k total, 31446084k used, 1488992k free, 261712k buffers Swap: 33547688k total, 48112k used, 33499576k free, 27773788
动态和静态监听注册-小鱼的理解
关于网络上的动态和静态监听注册,自己也是迷糊的,如果判断动态和静态相信大家都清楚,监听程序自己也一直是停留在能用就行的地步,对于其中的原理也很难以理解透彻。 结合自己的测试谈谈自己的理解: 注册:其实可以简单的理解为把数据库的服务注册到监听程序中,因为客户端连接数据库需要通过定位主机,然后查看主机的监听程序上的端口上面是否存在数据库服务,然后核对用户名和密码,这个才是一次完整连接所要经历的步奏。 那么注册正是把服务注册到监听程序中,让其可以通过监听程序去对客户端和服务器端做一个相
rac的ha和loadbalance记载
Rac的高可用技术基础是failover,也就是集群的任何一个节点崩溃后连接可以到另外的节点而不影响应用。 连接的故障节点的连接会被自动转移到新的健康节点。 Failover主要体现有三种: Client-connect time failover TAF Service-sid TAF 其中的client-connect time failover主要是用于客户端的连接中的配置了多个连接地址,会先尝试连接第一个地址,当无法连接时然后尝试连接第二个地址,client-connect time failover只在连接建立failover,连接后就不会在做failover。对于现今比较流行的中间件连接池机制并
linux的iostat磁盘监测记载
[root@server24 ~]# iostat -x /dev/sdb* Linux 2.6.18-128.el5 (server24) 2012年07月10日 avg-cpu: %user %nice %system %iowait %steal %idle 12.10 0.02 0.71 2.33 0.00 84.83 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sdb 0.32 10.16 5.13 3.02 292.06 105.34 48.79 0.31 38.14 9.43 7.68 sdb1 0.05 0.86 0.57 0.43 50.
mysql忘记root密码
Windows上忘记root密码登陆C:Userspc>net stop mysqlMySQL 服务正在停止.MySQL 服务已成功停止。C:Userspc>e:E:>cd E:Program FilesMySQLMySQL Server 5.0binE:Program FilesMySQLMySQL Server 5.0bin>mysqld-nt --skip-grant-tables在另一个cmd下进行如下操作:E:Program FilesMySQLMySQL Server 5.0bin>mysql -u rootWelcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 2 to server version: 5.0.22-community-ntType 'help;' or 'h' for help. Type 'c' to clear the buffer.mysql&
materialized view的fast和日志分析和一则案例
物化视图多用户数据仓库,数据复制等环境,自己接触的还是主要是用于简单的查询,让其利用所谓的空间换取时间,提高系统的性能。刷新机制和查询重写是物化视图最重要的功能。下面结合自己碰到的一则物化视图的ora处理来简要说一下物化视图和日志和fast刷新机制。mview_tab01表是主表,下面的mv01是mview_tab01的物化视图。先来看看下面的物化视图日志的表的结构。SQL> alter table mview_tab01 add primary key(id); Table altered SQL> create materialized view log on mview_tab01; Materialized view log createdSQL> create
sequence的cache和order
rac等系统问题还是有所欠缺,序列的创建和使用可以说是非常基础的问题,其中的order可以具体分析一下所带来的性能影响。默认创建序列时只会cache 20往往是完全不够的,就跟50M的redo而言,往往就会对系统的性能造成较大的压力。SQL> create sequence seq01 3 increment by 1 5 nocache SQL> declare 3 begin 5 select seq01.nextval into v_time from dual; 7 end; 2 start with 1 4 maxvalue 999999 2 v_time number; 4 for i in 1..50000 loop 6 end loop; 8 /PL/SQL procedure successfully co