2008-08-27 Wed

04:20 支付宝-- 赤壁之乱世鞋商(最终版) (329 Bytes) » DBA notes

这个片段挺搞。台词写的很有趣,场景也都挺符合的。

有同事说东北话的配音不太标准,建议我上... 暴汗

--EOF--

03:44 Real Application Testing for Earlier Releases (7685 Bytes) » Chanel [K]

在Oracle11g中有一个新功能,称为Real Application Testing,直接的竞争对手是HP/Mercury的Load Runner,用于系统测试,在正式的产品环境中通过Capture抓取实际的Load,然后在测试环境中Replay,这样来测试新环境的性能。

现在Real Application Testing的部分功能通过打patch的方式在更早的Oracle版本中也可以使用了,这些版本包括Oracle9i和Oracle10g。在10.2.0.4 Patchset中已经包含了这部分功能,因此如果你已经将数据库升级到10.2.0.4,那么不再需要安装额外的oneoff patch,否则则需要去下载一个单独的patch包(详细的文档参看Metalink Note:560977.1)。

为什么要让老版本的数据库也支持Real Application Testing呢?Oracle的想法很简单,因为Oracle希望客户将自己的数据库都尽快升级到11g,那么对于客户来说一个很大的顾虑就是,我现在的9i或者10g数据库上跑的很正常的应用到了11g上是不是会出现大的性能问题呢?怎样才能完善地测试呢?

所以Oracle将Real Application Testing中的Workload Capture功能加入到了9i和10g数据库里,但是,没有把Workload Replay的功能加入,用脚想也知道会这样了,Workload Capture可以把老版本的生产库中的压力抓出来,但是,你只能到11g的数据库中去重新播放来观察效果。

体现到数据库对象上,就是在9i和10g库中只会存在DBMS_WORKLOAD_CAPTURE这个包,而没有DBMS_WORKLOAD_REPLAY包。

抓取Workload很简单。

  1. --先创建一个filter,只抓取指定用户的workload
  2. BEGIN
  3.   DBMS_WORKLOAD_CAPTURE.ADD_FILTER (
  4.                            fname => 'USER_KAMUS',
  5.                            fattribute => 'USER',
  6.                            fvalue => 'KAMUS');
  7. END;
  8. /
  9.  
  10. --开始抓取,持续时间1分钟,其中TMP_DIR是一个Directory,需要先用create directory来创建
  11. BEGIN
  12.   DBMS_WORKLOAD_CAPTURE.START_CAPTURE (name => 'kamus_test_capture',
  13.                            dir => 'TMP_DIR',
  14.                            duration => 60);
  15. END;
  16. /
  17.  
  18. --将被抓取的这段时间内的AWR数据也导出来,用以之后的AWR Report compare
  19. BEGIN
  20.   DBMS_WORKLOAD_CAPTURE.EXPORT_AWR (capture_id => 1);
  21. END;
  22. /

之后会在TMP_DIR指向的目录中生成一系列的文件,把这些文件传输到11g的机器上,然后就可以开始Process以及Replay了。


00:06 oracle的整合力量 (3346 Bytes) » OracleBlog.cn

1、7月15日,oracle在亚太区甲骨文融合中间件新策略发布会上,首次披露并购整合BEA后的策略。该战略涵盖BEA和已有oracle融合中间件的产品线,将保留并支持BEA产品线。顶级的BEA销售人员、开发人员将被保留,原BEA中国公司将占oracle中国管理团队较大比重,原BEA全球副总裁兼中国区总经理蔡汉辉可能将担任oracle大中华区总裁。

2、通过合并BEA,oracle将获得三个方面的巨大价值:(1)BEA的优秀团队;(2)BEA的巨大市场和众多客户,特别是在中国,BEA在电信行业有很大的优势;(3)通过“合并同类项”进行优化组合、缩减运营成本。oracle在并购整合后,规模效益得到体现——收入增加了,但是分摊成本却降低了。

3、oracle推出了针对iphone的BI(Business Indicators)软件,进军终端设备的软件领域。目前随着IP网和移动网络的融合,移动终端应用从一开始的娱乐化、个人化,慢慢的渗透到企业化、商务化。不少公司已经开始针对移动终端进行了ERP、CRM的开发。oracle利用iphone这趟快车,推出BI,又显示出了oracle“通吃”的野心……
点击此处BI软件演示(文件较大,12M的swf文件)

00:03 DBA警示录:Messages信息应当认真检查 (3813 Bytes) » Oracle Life

©作者:eygle 发布在 eygle.com

前几天出差兰州,在客户现场检查数据库的运行状况,首先查看了一下Linux系统的Message信息,结果就发现了错误提示,提示信息大致如下:

attempt to access beyond end of device

而且这个错误已经连续出现了很久,这类错误一般意味着硬件存在问题,导致了逻辑读写错误,最终可能会导致数据损失。

发现这个问题很简单,通过dmesg命令查看输出,或者查看/var/log/messages*文件就可以发现可能存在的问题。
可是往往很多用户忽视了系统状况的检查。

当时这个系统第二天出现严重故障,存储Down机,数据库损失了数据文件,业务遭受了影响。

这个案例给我们的教训是:系统状态应当认真检查,任何小处都不能忽视

今早以前公司的一个系统出现了点问题,message信息中同样记录了故障原因:

socal: [ID 403145 kern.info] ID[SUNWssa.socal.link.5010] socal1: port 1: Fibre Channel is OFFLINE
scsi: [ID 243001 kern.warning] WARNING: /sbus@3,0/SUNW,socal@0,0/sf@1,0 (sf3):
Offline Timeout
scsi: [ID 243001 kern.info] /sbus@3,0/SUNW,socal@0,0/sf@1,0 (sf3):
target 0x1 al_pa 0xe8 lun 0 offlined
scsi: [ID 107833 kern.warning] WARNING: /sbus@3,0/SUNW,socal@0,0/sf@1,0/ssd@w50020f2300007f86,0 (ssd0):
ssdrestart transport failed (fffffffe)
socal: [ID 403145 kern.info] ID[SUNWssa.socal.link.6010] socal1: port 1: Fibre Channel Loop is ONLINE
socal: [ID 403145 kern.info] ID[SUNWssa.socal.link.5010] socal1: port 1: Fibre Channel is OFFLINE
socal: [ID 403145 kern.info] ID[SUNWssa.socal.link.6010] socal1: port 1: Fibre Channel Loop is ONLINE

错误提示显示光纤通道出现问题,这一问题在数据库的体现就是数据库实例Crash掉了:

Wed Aug 27 04:21:29 2008
KCF: write/open error block=0xe13b online=1
file=68 /u02/oracle8/oradata/hysms02/SMS_STATUS2.dbf
error=27072 txt: 'SVR4 Error: 5: I/O error
Additional information: 57659'
Wed Aug 27 04:21:29 2008
Instance terminated by LGWR, pid = 352

系统的message信息是辅助我们进行数据库诊断的一个重要手段,当然防患功能是更为重要的,防患永远胜于救灾

-The End-

相关文章|Related Articles

评论数量(0)|Add Comments

本文网址:

  2008-08-26 Tue

22:15 打算入手450D (2135 Bytes) » Ricky's Test Blog

之前的老古董-200万像素的nikon coolpix已经彻底罢工了,打算入手一个单反,入门级别的Canon的450D是很多朋友的推荐,看价格也差不多了,上周去市场寻了价,5600包括套机镜头,送存储卡和电池。而且好像又降了一点价钱。

上个礼拜赶着把港澳通行证办了下来,打算这周去香港看看行情,对比一下,差不多就入手,有点迫不及待了。呵呵

先上个介绍吧,就这个:

450d

back

top

下面是详细参数: (more…)


06:44 Service Management Facility快速入门 (4415 Bytes) » Ricky's Test Blog

在解决前面scstat问题的时候,仔细的研读了一下这个sun的官方帮助,加深了对Solaris的服务的理解。在Solaris中,可以利用svcs 和svcadm 命令进行查看和修改、重启服务。下面就转载一下Service Management Facility这篇快速入门

简介

过去,UNIX 操作系统包含一组服务:这些服务是与任何交互式用户登录都不关联的软件程序,用于侦听和响应请求以执行特定的任务(如传送电子邮件、响应 ftp 请求,或允许执行远程命令)。这些传统服务通常是一些单独的应用程序,它们作为单个进程执行,在系统引导时启动,并在系统启动和运行时持续执行,可处理接收到的任何请求。

如今,管理员必须管理一系列服务,这些服务的作用已经超出了此原始模型的作用范围。Sun 推出了 Service Management Facility(SMF,服务管理工具),以简化这些系统服务的管理。SMF 是 Solaris 操作系统的一项新功能,为每个 Solaris 系统上的服务和服务管理创建支持的、统一的模型。它是 Solaris 10 中预测性自我修复技术的核心部分,为软件和硬件故障以及管理错误提供自动恢复功能。

在本指南中,我们将介绍 SMF 的功能及优势,指出 Solaris 中显著更新的部分,并说明如何使用 SMF 完成典型的管理任务。可以在 Sun 的 BigAdmin Web 站点上找到 SMF 及预测性自我修复功能的详细指南。

功能

Service Management Facility 已经改进了 Solaris 管理模型的几个方面。一些最显著的更新包括:

* 服务由可以进行查看(使用新的 svcs(1) 命令)和管理(使用 svcadm(1M) 和 svccfg(1M))的一级对象表示。
* 无论失败的服务是由管理员错误、软件错误导致,还是受无法更正的硬件错误的影响,这些服务都将按照相关性顺序自动重新启动。
* 可以获取有关配置错误或行为异常的服务的详细信息,包括对服务未运行的原因的说明(使用 “svcs -x”),以及每个服务单独的持久性日志文件。
* 引导过程中出现的问题比较容易调试,因为在启动故障期间可以控制引导详细程度,记录服务启动消息,以及提供更可靠的控制台访问。
* 自动拍摄服务配置快照,从而更容易备份、恢复和撤消对服务所做的更改。
* 可以使用受支持的工具 (svcadm(1M)) 启用和禁用服务,从而允许更改不受升级和修补程序的影响而保留原样。
* 管理员可以更容易地将任务安全地委派给非超级用户,这些任务包括配置、启动、停止或重新启动服务(如 smf_security(5) 手册页中所述)。
* 根据服务的相关性并行启动服务,可以更快地引导大型系统。

(more…)


06:37 scstat unexpected error问题及解决 (4362 Bytes) » Ricky's Test Blog

最近一直很少更新博客,熟悉的朋友都知道,我在忙一个重要的release,Oracle Database 11g的第一个patchset - 11.1.0.7,这个patchset应该很快就要发布的,敬请期待。

今天在测试的时候,Solaris的节点再一次出现问题,最近服务器的问题不断,先是DLM问题,后面是QFS问题,现在居然是服务出现依赖关系,启动异常,SunCluster命令scstat返回异常结果:unexepcted error

根据google搜到的结果,在Sun的官方网站找到一个类似的问题

根据提示,检查一下svcs -x 的输出,
bash-2.05$ svcs -x
svc:/network/nfs/client:default (NFS client)
State: offline since August 25, 2008 10:33:46 PM PDT
Reason: Start method is running.
See: http://sun.com/msg/SMF-8000-C4
See: mount_nfs(1M)
See: /var/svc/log/network-nfs-client:default.log
Impact: 18 dependent services are not running. (Use -v for list.)

svc:/application/print/server:default (LP print server)
State: disabled since August 25, 2008 10:31:10 PM PDT
Reason: Disabled by an administrator.
See: http://sun.com/msg/SMF-8000-05
See: lpsched(1M)
Impact: 2 dependent services are not running. (Use -v for list.)

svc:/system/cluster/cl-svc-cluster-milestone:default (Synchronizing the cluster userland services)
State: disabled since August 25, 2008 10:32:38 PM PDT
Reason: Temporarily disabled by an administrator.
See: http://sun.com/msg/SMF-8000-1S
Impact: 1 dependent service is not running. (Use -v for list.)

svc:/application/stosreg:default (Service Tag OS Registry Inserter)
State: maintenance since August 25, 2008 10:33:39 PM PDT
Reason: Method failed.
See: http://sun.com/msg/SMF-8000-8Q
See: stclient(1M)
See: /var/svc/log/application-stosreg:default.log
Impact: This service is not running.

svc:/network/stdiscover:default (Service Tag discovery probe)
State: maintenance since August 25, 2008 10:33:45 PM PDT
Reason: Restarter svc:/network/inetd:default gave no explanation.
See: http://sun.com/msg/SMF-8000-9C
See: in.stdiscover(1M)
Impact: This service is not running.

svc:/network/stlisten:default (Service Tag Discovery Listener)
State: maintenance since August 25, 2008 10:33:45 PM PDT
Reason: Restarter svc:/network/inetd:default gave no explanation.
See: http://sun.com/msg/SMF-8000-9C
See: in.stlisten(1M)
Impact: This service is not running.
bash-2.05$

发现服务的依赖不对,启动console进入单用户模式,操作了几个服务,重新禁用和启用,重启,居然好了。
记录一下。


06:32 使用搜索引擎来解决数据库的问题? (3390 Bytes) » Taobao DBA Team

数据库面临什么问题?
1.淘宝这种高oltp系统中,有些核心sql的执行频率在千万次/小时之上,随着业务量的持续膨胀,执行次数开始成倍的增加,整个库高峰时期执行次数不下5000万/小时,为了应对数据库带来的瓶颈,我们开始对系统进行调整,从应用,从cache,从分布式数据上进行改造,对硬件进行升级,但这些都只是延缓数据库带来的压力,数据库还是容易达到极限,毕竟数据库是单点的,而执行次数在不断加速攀升。
2.核心sql放在索引里面扫描,尽量不回表,回表对一个大表,对高执行频率的sql来说,代价太大了,最近我发现有些需求会对核心sql进行调整,如增加一个字段,然后在查询条件中添加这个条件,我的思想是尽量做到不回表,那只能对索引进行调整,冗余新增加的字段,核心索引重建的风险还是很大的,会导致索引的字段会越来越多,而随着业务的复杂度增加,需要添加字段到索引中。

搜索引擎能解决什么?
在淘宝首页搜索商品(如诺基亚 N71),会显示一大堆的结果集来,这是通过搜索引擎来实现的。换个角度来思考,如想查看我的交易,可能也就传递一个id参数给搜索引擎,通过搜索引擎来查询,再比如查看我的收藏,我的宝贝,我的评价,也可以通过搜索引擎来实现。如果真是这样的,那搜索引擎对数据库来就大有价值了,淘宝的数据库读写比率很高,大部分性能都花在读上面,如果我们能把这部分sql迁移到搜索引擎上,效益是相当可观的。
我相信搜索引擎在淘宝会有很好的前景,并能真正应用到商品管理,交易管理,评价管理,收藏夹等业务中,期待这一天。
周五闲聊开发说他的目标是很多功能通过搜索引擎来实现,然后让我们这些dba失业,我倒是期望这一天早点到来,真正的把我们解放出来,而不是现在天天满脑子database,要跳出数据库的范畴,多去打打牌,喝喝茶,这样才会有创造力。
修文(17:28:00):
你们数据库不是升级到新的服务器,性能更强
丁原(17:30:19):
这是个问题,要解决问题,跟机器升级没有关系吧
修文(17:32:27):
先说明,这不是问题,是由业务去驱动的
丁原(17:33:26):
我知道啊,所以才靠你去驱动嘛
修文(17:36:07):
我想用实时SE
修文(17:36:20):
然后让你们失业,
丁原(17:36:25):
这个还早着呢,我估计。
修文(17:36:42):
都已经快上线了
丁原(17:36:57):
我们以后不仅仅是做数据库了,我们团队关注的是数据,是data,不仅仅是db。
丁原(17:41:56):
lg有没有计划使用se
修文(17:42:25):
只要SE稳定了,我就会提需求出来,还要看你们那边的压力呢
丁原(17:43:43):
我们这么大的业务量,不能总去去依赖数据库来实现,数据库是扛不住的,数据库是单点的,就算一直加cpu,加内存又有什么用呢
修文(17:45:46):
我们已经在想方案去解决了,实时SE就是。

06:14 OCM exam guide - Create database (7180 Bytes) » Chanel [K]

开始描述手工创建数据库的快速过程,在这个过程中你只有命令行窗口,如果不习惯使用vi的话,可以用Gnome下的Text Editor,还有本机可以访问的Oracle联机文档。

1. 设置环境变量ORACLE_SID
参照考题中需要创建的数据库SID,设置操作系统环境变量,假设要求创建的数据库的SID是TEST。

2. 创建最简单的initTEST.ora文件
在$ORALCE_HOME/dbs下可以找到一份已经存在的init.ora文件,这是一份样本(在正式考试的机器上你也可以找到)。打开这份文件可以看到很多被注释的行,让人烦躁,一行一行地修改这个文件比较耗时,使用下面的命令,把所有以#开头和所有的空行全部过滤掉,同时生成最简单的initTEST.ora初始化参数文件。

$> cat init.ora | grep -v ^# | grep -v ^$ > initSID.ora

然后修改该文件的db_name参数和control_files参数(控制文件放在哪里,需要多少份控制文件,在考题中会清楚地提出要求),其它的参数保持原状不需要修改。

3. 启动数据库到nomount状态

此时已经有可供启动的初始化参数文件了,将数据库启动到nomount状态。

SQL> startup nomount;

4. 创建spfile
实例启动以后立刻创建spfile,然后重启一次数据库,让数据库能够使用到spfile。

5. 修改其它必须的初始化参数
为什么需要先快速地将实例启动到nomount状态?因为我们需要使用show parameter命令,在记不清楚那些初始化参数具体怎么敲的时候,show parameter命令能够来帮助我们快速定位其它必须要修改的初始化参数名字的写法。
因为用到了spfile,所以此处我们已经可以使用alter system命令来修改初始化参数了。

db_create_file_dest = 考题中要求你创建数据文件时存放的目录
db_create_online_log_dest_1 = 考题中要求你创建联机重做日志文件时存放的目录
audit_file_dest = …
background_dump_dest = …
core_dump_dest = …
user_dump_dest = …
db_block_size = 考题中可能会要求创建特定block大小的数据库

不要一条命令一条命令在SQL*Plus里面敲,用vi或者Text Editor将所有的alter system命令都编辑好,然后一次执行。
执行完毕以后,关闭实例,再重新启动到nomount状态,让刚才修改的初始化参数生效。

6. 创建密码文件
用orapwd程序创建orapwTEST密码文件,如果记不清楚orapwd程序怎么用,直接敲orapwd然后回车,会告诉你语法是怎样的。

7. 创建数据库
在这里有两种方法可以选择,依靠个人喜好了。
一种就是直接编辑create database命令,将考试的各项要求在这个命令中事先编辑好。
一种是创建完默认的数据库以后再用alter database命令去逐条修改以符合考试中对于数据库的各项要求。

第一种方法的技巧在于,要快速找到例句,如果你去查SQL Reference文档中的create database的语法,时间肯定是比较紧张的,我们要查的是Administrator’s Guide这本文档中第二章 Creating an Oracle Database -> Creating the database -> Step 7: Issue the CREATE DATABASE Statement,这里有完整的一条SQL语句,copy出来,然后按照考试要求去编辑相应的地方,然后执行,这样出来的命令基本上不会出现问题。

第二种方法的技巧在于,因为是10g数据库,因为我们在前面设置了db_create_file_dest和db_create_online_log_dest_1参数,所以,只需要输入最简单的“create database;”命令,回车,就会有一个可以使用的数据库创建出来,当然比如redolog的组数和member个数,比如temp表空间的名字,比如undo表空间的名字都可能会跟考试的要求不太一样,然后用alter database以及一些其它的命令逐条修改就行。要知道数据库起来了,其中的某些检查项跟考试要求不符,不会得0分。

8. 运行catalog.sql 和 catproc.sql
只需要运行这两个SQL,都在$ORACLE_HOME/rdbms/admin中,创建必须的数据字典和内置的package等,千万不要忘了执行这一步。

9. 创建监听

考试可能会要求你创建非默认端口(1521)的监听,并且要求实例自动注册到这个监听上,那么这时候需要配置listener.ora和tnsnames.ora文件,去$ORACLE_HOME/network/admin/sample目录下把示例文件copy出来,然后按照要求修改。如果考试没有要求,那么无需修改任何配置文件,直接lsnrctl start把监听启动即可。

10. 其它的一些要求
比如创建额外的表空间,比如创建临时表空间组。
此处需要注意的是,对于数据文件,考试可能都会有详细的要求,比如第一个extent应该多大,每次扩展多少,初始化时数据文件多大,最终能够扩展到多大。要求详细阅读考试的要求,至于这里的语法,如果不记得,没有什么好的办法,只能去查SQL Reference文档了。

基本上上午的工作就是这些,最后提醒一点,考试的结果是美国那边直接用脚本连到你的服务器上,通过数据字典抓取结果,然后判断你哪些错了,所以,一定要保证在最后的时候,数据库是OPEN的,监考老师说还有5分钟结束考试的时候,不要再做什么其它操作了。如果之前你创建完数据库,想要shutdown以后冷备一下的话,请估算好时间。我听到的案例是冷备刚完成,数据库还未startup,结果美国那边开始抓取考试结果,因为无法连接数据库,因此第一天上午的section得了零分。

下一篇文章介绍安装Grid Control的一些经验。


  2008-08-25 Mon

06:46 OCM exam guide - Prepair » Chanel [K]
04:15 对话 UNIX: 简单的按键操作 » oracle unix&linux技术
01:00 对话 UNIX: 简单的按键操作 » developerWorks 中国 : 技术文章 , 教程 AIX

  2008-08-24 Sun

07:46 测试JS引擎性能 » 架构研究室

  2008-08-23 Sat

  2008-08-22 Fri

19:19 奋斗 » 玉面飞龙的BLOG
09:06 需要什么样的监控? » AnySQL.net

  2008-08-21 Thu

21:20 Cacti实现MSN报警 » 架构研究室
07:51 开启异步IO的相关风险 » OracleBlog.cn
00:07 TCP 连接断连问题剖析 » developerWorks 中国 : 技术文章 , 教程 AIX

  2008-08-20 Wed

22:31 Learning ODI - Sybase to Oracle » Chanel [K]
20:58 MySQL优化 » 架构研究室
07:01 推荐一个多协议IM工具Pidgin » Ricky's Test Blog
 123
 123