Oracle ACE,《Oracle DBA工作笔记》作者 现就职于国内某互联网公司,擅长数据管理,数据迁移,性能优化,目前专注于开源技术,运维自动化和性能优化。
今天查看数据库的alert日志总出现了如下的警告。 Archived Log entry 202 added for thread 1 sequence 202 ID 0x1ed7a02c dest 1: Sat Mar 15 01:37:30 2014 Completed checkpoint up to RBA [0xca.
昨天晚上,某个环境的数据库在做一个压力测试的时候突然宕机了。这个问题比较急。马上查看日志文件。 看到了如下的一段,报了os级的linux错误。提示没有空间了。 Fri Mar 14 19:16:47 2014 Archived Log entry 192 ...
老是在用ASH,昨天心血来潮,想看看ash视图里面是怎么样的,过程也算曲折,不过也算抛砖引玉。 先看看v$active_session_history的情况。
今天和大家分享下数据库的创建和删除的步骤,里面有很多细节需要大家考虑。创建数据库不只是一个create database语句。删除数据库 drop database也不是随时都能执行的。
收集数据库的统计信息是dba工作的一部分,如果在数据快速增长的库上,统计信息如果收集的频率太慢,会对执行计划有一定的影响。 而对于逐渐客户饱和的系统来说,统计信息就可以很长时间收集或者尽量不收集。
测试的数据库有一天突然宕机,然后无法正常open了,这个问题虽然过去了一段时间,也在这儿总结一把。 从alert日志中的信息如下。 Fri Jan 10 16:09:42 2014 Archived Log entry 6837 added for thr...
昨天生产环境有个严重问题,报了ora-01461的错误,这个问题看似应该是开发那边的问题,但dba这边也得提供一些信息,自己模拟测试了一把。 为问题的排查也提供了一些帮助。
今天统计数据的时候,发现一个奇怪的小问题,通过segment去判断一个表的大小,然后查表的count,有一个表明明在,但是从segment里面去查的时候查不出来。
最近项目有一个需求,需要在多个数据库的schema上跑一些脚本。希望dba能够提供一个脚本,能够根据需求在环境中执行指定的脚本。 乍一听,没什么技术难点,为了更明白的说明问题,我举个例子。
最近自己搭了一套 11g rac的环境,基于redhat 6, 11g 用了11.2.0.3.0的cluster和db的安装包。 共享存储基于nfs,没有用asm. 环境打完以后,crs_stat -t看到相应的服务都起了,但是第二个节点上的实例不知道怎么回事却没起来。
7年前自己的随笔,看来以前自己也曾是文艺青年啊。:) 2006-09-28 17:07:13 曾经自己还是一个很菜的人,特别希望能够拿一吧吉他在草地上弹唱,那种感觉特别的向往 ,在大一的下学期的时候我硬是咬着牙去买了一把吉他 ,一把古典的吉他,开始了...
突然看到6年前在大学时候写的文章,感慨感慨啊。 狗狗的天空 2007-07-28 12:39:04 在简单又复杂的生活中无所适从的时候,朋友把他的小狗带过来,让我带养几天,说在他宿舍里整天叫,宿舍的人受不了,当时想想有个小狗挺好的,学习累了可以拉拉小腿,爱抚一下,喂食的时候也不花什么时间,不过现在看来当时想的有些天真了,好多事,好与不好在每个人看来和做了总是有差距。
今天和大家分享一个很有意思的例子,关于索引列的顺序导致的性能问题。 发现数据库的性能比较差,CPU消耗很高,抓了一个awr,发现瓶颈在sql上,top 1的sql是一个很简单的update语句,没有复杂的条件和表关联。
最近测试环境的连接数老是不够用,session/process 都相应的从5000提到了8000,但还是不够,而且还是不断有新环境需要增加。最后根据评估,session数需要50000左右 根据粗略的计算来说,process也需要调整,按照如下的公式.
最近几天发现库里有坏块了,环境是11gR2, linux平台的64位的库。以下是我的修复办法,基于dbms_repair做的在线修复,也可以基于备份rman来修复,archivelog,noarchive log可能修复的方式有所不同。
这几天学习了一下mysql,对于mysql的命令总结如下,发现很多方面和oracle还是差别挺大的。# mysql -uroot -p Enter password: Welcome to the MySQL monitor.
今天试了下在Linux下安装mysql,我只选了server和client两个组件,没有装其他的组件. 安装包的下载可以参见 http://www.mysql.com/downloads/ server端的安装: [root@oel2 install_mysql]# rpm -ivh MySQL-server-advanced-5.
最近几天被网络监听配置搞得焦头烂额,有时候配置没问题,有时候就出莫名其妙的问题,今天专门花时间总结了一下,希望对大家有所帮助。 listener.ora,tnsnames.ora有时候没有netca,netmgr这样的图形工具来创建的时候,只能手工来做,手工做的时候会有一些格式的问题,多加一个空格,或者少一个空格,就会有不同的结果。
快速刷新 可更新的物化视图 SQL> exec dbms_mview.refresh('MV_T','F'); BEGIN dbms_mview.refresh('MV_T','F'); END; * ERROR at line 1: ORA-12034: materialized view log on "JEANRON".
测试环境有两个db, TEST01(10gR2),TEST02(11gR2) TEST02是基本上复用了TEST01的参数设置,但是TEST02却报了很多问题,比如查询性能低下。
oracle的role算是对sys privilege 和object privilege的打包。 今天深入的测试了下,还算有不少的东西。role不是schema对象 像table等在一个schema里面不能有同名的schema object,但是可以有同名的table和role,如下。
这段时间饱受大分区表的性能之苦,碰到最大的一个分区表有1个t左右,操作起来每个细节都需要格外小心,我这次和大家分享的案例应用的分区表不是很大,有80G左右。但是这个分区主要分区比较多,有将近2000个左右的分区。
最近数据库碰到了连接紧张的问题,想通过一个脚本对数据库的session情况一目了然。 以下是自己写的脚本。实现的效果如下。 对session的总体情况,那些program主要在占用,每个用户所拥有的session(active,inactive,killed,sniped...)都能够一目了然。
最近测试库上会有很多的连接的问题,很多都是jdbc连接的问题,在此基础上我测试了一下sqlplus连接的情况, 根据sqlplus的命令,有conn,disc,disc会断开连接。
昨天在生产上出现了一个问题,客户的dba发现,使用临时用户导出了一个dump之后,无法导入测试环境,报错是常见的IMP-00013: only a DBA can import a file exported by another DBA 这个问题一般碰到的处理方法就是在给目标环境的用户赋予dba权限,或者细粒度一些,赋予imp_full_database的权限,就能解决。
今天在环境上测试expdp/impdp,环境有10.2.0.5.0,11.2.0.2.0的,11g的环境是从10g升级到11gde .是在impdp的时候都报了错误。
一直想做一个东西,能够直接在Linux下显示文本格式的图形,比如点阵图,连线图,直方图等等。直接使用第三方的工具会有一些平台和类库的限制,所以小米加步枪自己周末捣鼓了一下。
昨天升级数据库,从10.2.0.5.0升级到11.2.0.2.0. 按照预定的步骤很快就操作完了。升级完成后,开始跑一些应用和Job.有一个Job开始报错,Job是一个自动的同步job,中会有exp的动作,而且里面用到了consistent=y的选项,这样exp就大体如下: exp xxxx/xxxx file=xxx.
今天升级数据库碰到一个很郁闷的问题,把10g的数据库升级到11g以后,结果有一个改动,需要重启数据库,就敲了shutdown immediate,结果再startup,数据库竟然起不来了。
经常需要用sqlplus去查询一些数据字典类型的数据,这些数据量不大,而且需要环境之间都是一样的,所以就想使用离线查询的方式,把那些数据以平面文件的形式存放,然后通过系统级的操作来输出。
经常会在数据统计中取筛选连续性的数据,比如筛选连续三个月都登录的用户, 数据形式如下: 1 111 222 333 2 111 3 111 222 4 111 444 大体的意思就是1 2 3 4代表月份1,2,3,4 111,222,333,444代表用户 1 111 222 333 代表一月份用户111 222 333登录了。
今天碰到一个设计的严重问题,由于使用了外部文件来和sqlplus交互 sql大体结构如下 select xxxxx from xxxxx where table_name in ( "解析外部文件“) 在测试环...
在测试环境11g升级之后,从测试那边反馈查询syn反应很慢。要持续差不多10分钟。 其实这个syn中的数据只有200多条 第一反应是cpu 100%了,查看果然是 因为问题紧急,直接抓了一个ash报告,看到两个session占用了99.
客户的测试环境已经从10g升级到11g了。但是没过几天,数据hang住了,登都登不了了,而且通过sys,system,普通用户连接的错误都不一样 首先通过 一下命令来查看变量和进程是否都正常 ps -ef|grep smon ...
SQL> SQL> create table test_part(id number(10),name varchar2(100),cdate date) 2 partition by range(cdate...
看了一下国外dba的招聘要求,自己目前的情况和要求还有很大差距。也可以作为一个参考,继续努力。 Oracle Database Administrator DATABASE We have a Oracle Database Administrator position based in Wellesley, MA.
生产系统的一个库(负责容错处理的),目前遇到了严重的性能问题,数据量也大的出奇,一个分区表一百多个分区,blob字段达到了800多G. 查看 AWR 系统负载倒不重,但是根据反馈响应速度很慢。
升级生产的DB,有一些预检查条件,这些需要提前修复,以便在升级的时候不会成为影响进度的绊脚石。 生产中的components有一些显示是invalid状态,从dba_registry中可以查到。
10g升级至11g除了需要做一个详尽的计划, 需要采集10g系统的负载情况,做一个整体的把握,在升级之后,再做负载分析。 保证不会出现大的问题,sql的执行计划不会有大的变动。
--初始化操作, 创建两个用户一个,testo,一个test. 在testo上创建表,test上创建物化视图。 SQL> create user testo identified by testo; User created.
今天照例检查数据库alert日志,发现一个错误。但是也没在意,想可能有大的操作导致的,马上会释放空间的,但是转眼一想,这是生产库,而且现在时早上,泰国的运营商还不算忙时,需要重视这个问题,看有没有什么潜在的问题, 从...
最近需要生产系统从10.2.0.5.升级到11.2.0.2.0 做了不少的准备工作,硬是在周末自己搭了测试环境,照着自己准备的升级步骤练习了一番。 除过基本的检查,从Metalink上下载了最新的psu,和公司的资深dba确认后,提供了给了客户。
今天准备测试一下10g升级到11g的场景,装完10g的,然后再装11g的服务端。sqlplus就报错了。 因为ORACLE_BASE,ORACLE_HOME已经改过来了。
维护多个数据库,又没有EM,在各个数据库之间来回切换很是麻烦, 今天参照一些资料写了如下的shell脚本。主要来讲dba的账户密码,ORACLE_SID都以环境变量的形式注入,然后在当前session中可以灵活的切换实例来进行相应的操作。
今天碰到一个问题,在drop primary key的时候,提示ORA-02273的错误。 SQL> ALTER TABLE AR1_ACCOUNT DROP PRIMARY KEY; ALTER TABLE AR1_A...
今天开发碰到一个问题,说创建视图的时候老是提示没有权限。 SQL> create view test_view as select *from customer; create view test_view as select ...
今天尝试了一下用exp导出外部表,碰到了一些问题。 ----导出 今天导出的时候发现一个严重的问题,导出一个很小的外部表花了很长时间,最后还是报错,而且生成的dump文件有好几个G [oracle@oel1 ~]$ exp hr/hr file=hr.
今天,自己测试了一下对于oracle掌握的熟练程度,仅限于基本的操作,自己做了简单的总结。 1.修改global name的时候报了如下的错误 SQL> alter system set db_domain='oracle.
今天有个同事想把一个一部分数据导入到测试库上做测试,我给他提供了几个dump文件,但是在导入的时候,碰到了一些问题,总结如下。 scenario 1:一部分表在schema下已经存在 导入数据貌似还算正常,但是在导入后报出了一系列错...
今天一个dba交给我一个问题,让我帮忙查一下。说有个脚本运行的时候有错,让我看看是什么原因。 脚本的思路如下: 先drop PK,FK之类的constraint. 然后把表改个名 然后重新创建一个表 然后加上PK,FK和其他的constraint 根据报错,貌似是primary key创建失败导致的。