123
 123

Tip: 看不到本站引用 Flickr 的图片? 下载 Firefox Access Flickr 插件 | AD: 订阅 DBA notes --

2010-03-04 Thu

20:27 支付宝开通聋哑客户绿色通道 (3195 Bytes) » 支付宝官方 Blog - 支付志

网购以及网络支付已经成为网民日常生活的一部分,正如马云所言,电子支付的发展可以不让老太太去银行排队缴费,我们也希望通过自己的努力让更多的人享受到支付发展带来的价值,通过提升用户体验,降低使用门槛,并以此逐步提高整个行业的水平。

为了方便聋哑的客户遇到问题时可以第一时间找到我们的小二解决问题,近日,支付宝特别开通聋哑客户旺旺绿色通道。只要客户通过邮件提交申请,附上证明材料,经支付宝小二审核后,即可开通与支付宝客服小二的旺旺绿色通道。

在线服务时间:
周一到周五,早上9点到下午6点。

报名方法:
发送申请邮件至green@alipay.com
邮件中请写明您的淘宝会员ID,对应的支付宝账户名(邮箱 /手机),同时请附上您本人的身份证原件扫描件及残疾人证明原件的扫描件。
在收到您的申请邮件后,我们将不会回复邮件。客服小二会在三个工作日内完成审核,审核通过后,我们将为您开通旺旺绿色通道。
该申请方法长期有效。

绿色通道的定义:
支付宝绿色通道是指支付宝通过在线旺旺的形式专门为聋哑客户提供咨询的服务。
聋哑客户可以通过绿色通道咨询支付宝业务以及本人支付宝账户的问题,小二将竭力为您解答;如果涉及账户问题的处理,支付宝仍需按照现有流程受理。
PS:如果您已经是淘宝绿色通道的客户,支付宝在收到淘宝反馈后为您开通绿色通道服务。同时支付宝绿色通道客户信息也将提供给淘宝。让我们沟通方便起来!

开通聋哑客户绿色通道是支付宝庞大的用户体验提升计划的一部分,此前已经相继开放全新设计的“个人版”用户平台等项目。

No related posts.

12:52 3 Sweet Spots for MapReduce (2021 Bytes) » MyNoSQL

The presentation given by Andrew Pavlo “MapReduce and Parallel DBMSs”, embedded below for reference, identifies the following 3 sweet spots for MapReduce:

  • Extract-Transform-Load
    • “Read Once” data sets
    • Allows for quick-and-dirty data analysis
  • Semi-Structured Data
    • Can easily store semi-structured data which would otherwise be awkward to be stored in RDBMS
  • Limited Budget Operations
    • the alternative, parallel DBMSs are expensive

When speaking about the possible MapReduce and RDBMS integration, something that for example Oracle has already been considering, Andrew and his colleagues mention the following advantages:

What can MapReduce learn from Databases?

  • Fast query times.
  • Schemas.
  • Supporting tools.

What can Databases learn from MapReduce?

  • Ease of use, “out of box” experience.
  • Attractive fault tolerance properties.
  • Fast load times.
10:21 SQL Server 2 (1 Bytes) » Oracle Scratchpad
07:30 Redis Queues: An Emerging Usecase (3224 Bytes) » MyNoSQL

We’ve been covering tons of Redis usecases, not to mention this amazing list of ideas. Lately, it looks like there is a new emerging usecase that Redis can be proud of: queues.

Now if that already sounds interesting then I guess you could just take a look at QR, a Python ☞ GitHub hosted project that makes it easy to create queues, stacks and deques on top of Redis. For some help on using it you could check Ted Nyman’s posts on ☞ queues and ☞ deques and stacks. Another option would be to head to Resque, a Ruby ☞ GitHub hosted library for creating and processing jobs using Redis queues.

Anyway, if you don’t have yet an idea on how this can be useful, then I hope these following posts will wet your appetite. David Czarnecki’s ☞ article covers a very simple Redis-based queue scenario: inter-application communication (basically the two apps will get an easy way to pass from one to another any kind of messages). If this is still not enough, then Paull Gross’s ☞ post is introducing you to a web proxy built using node.js and Redis queues for high availability.

Last, but not least, I should emphasize the fact that what sets aside Redis as a good tool for this sort of things is not the fact that Redis is a extremely fast, persistent key-value store, but rather Redis native support for ☞ data structures like lists, sets and ordered sets and a set of specific ☞ commands to deal with these.

06:42 Define the row filters for reports in WebChart (5923 Bytes) » DBA Tools

Author: AnySQL, published on dbatools.net, Oracle Data Recovery, Tools, WebChart Report, etc.

    Supposed that we are creating a report of the top 3 highest salary employees for every department (check the Oracle demo table : SCOTT.EMP). If the table is stored in Oracle database, we could generate the report with one Oracle SQL query as following.

SELECT * FROM (
SELECT DEPTNO, EMPNO, ENAME, SAL,
  RANK() OVER (PARTITION BY DEPTNO ORDER BY SAL DESC) RNK
FROM EMP ) WHERE RNK <= 3

    But if we store this employee table in MySQL or SQLLite database, generating the top n salary employee report will be very complex or difficult. It's hard for us to know different SQL syntax on different database systems. With the feature of the WebChart, you can generate the report with very simple SQL query.

webchart.query_1=select deptno, empno, ename, sal from emp
webchart.express_1=rank|x|rnk::sal|deptno
webchart.filter_1=3.5-x|rank
webchart.sort_1=deptno,rank
webchart.group_1=1

    If the result of filter express for specific row is negative, the specific row is removed from the result set. For example, if the salary rank is large than 3, the result will be negative number, and the employee record is removed by the program, and just keep the top 3 employees for every department as we required, and we will get a result page as following.

deptnoempnoenamesalrank
107839KING5000.01
7782CLARK2450.02
7934MILLER1300.03
207788SSCOTT3000.01
7902FORD3000.02
7566JONESS2975.03
307698BLAKE2850.01
7499ALLEN1600.02
7844TURNER1500.03

    By doing the computation at application side, we make the SQL very simple. If the report is accessed very frequently, we also reduce the load of database server.

Related Posts

Twitter Me? | Leave New Comment(Current: 0)

Link: http://www.dbatools.net/mytools/webchart-rows-filter.html

06:21 Presentation: Persistent graphs in Python with Neo4j (1959 Bytes) » MyNoSQL

These are the slides Tobias Ivarsson (@thobe) presented at PyCon to introduce Neo4j with a Python flavor.

I really liked this slide in particular:

Python code starts at slide 23. A couple of my comments:

  • I am not really sure I understand how the Python scripts are accessing the Neo4j storage when using CPython (Neo4j is supposed to run in a JVM)
  • traversals in graph databases are somewhat synonymous to queries
  • having the traversal implemented like classes extending neo4j.Traversal doesn’t really look Pythonic
  • Django and Neo4j can work together
05:38 Live RAC SIG Web-cast Today: Oracle ASM 11g — The Evolution (921 Bytes) » The Pythian Blog

Just a quick announcements…

If you didn’t manage to attend my presentation, Oracle 11g ASM — The Evolution, during RMOUG or other conferences, you have a chance to see it online today. I’m doing it a web-cast at RAC SIG. It’s today, 4-Mar-10 at 12:00pm EST (9:00am PST).

04:54 为DataReport增加条件过滤功能 (6039 Bytes) » AnySQL.net

    为了查询出保存在员工表(SCOTT.EMP)中, 每个部门工资最高的三个人, 如果是Oracle数据库, 大家可以使用Windows分组汇总函数来轻松地实现, 如下所示.

SELECT * FROM (
SELECT DEPTNO, EMPNO, ENAME, SAL,
  RANK() OVER (PARTITION BY DEPTNO ORDER BY SAL DESC) RNK
FROM EMP ) WHERE RNK <= 3

    但如果员工表存放在MySQL数据库, 或其他数据库, 如SQLLite中, 要实现同样的功能, 就比较复杂了, 至少我现在都还不会. 但利用DataReport以前开发的功能, 及刚增加的条件过滤功能, 就可以轻松实现这个需求.

webchart.query_1=select deptno, empno, ename, sal from emp
webchart.express_1=rank|x|rnk::sal|deptno
webchart.filter_1=3.5-x|rank
webchart.sort_1=deptno,rank
webchart.group_1=1

    如果Filter中的公司算出来的值小于0, 那么这条记录就会被删除, 在这个例子中, 如果排名这一列的值大于3, 这个公式算出来的值就为负数, 所以只保留了前三名, 达到了我们的业务要求. 页面输出如下所示的表格:

deptnoempnoenamesalrank
107839KING5000.01
7782CLARK2450.02
7934MILLER1300.03
207788SSCOTT3000.01
7902FORD3000.02
7566JONESS2975.03
307698BLAKE2850.01
7499ALLEN1600.02
7844TURNER1500.03

    将这些处理放在应用服务器端实现, 不仅让SQL变得通用, 如果访问频率极高, 还可以减轻数据库端的压力.

Relative Posts:

01:53 votedisk & OCR maintains (28937 Bytes) » 玉面飞龙的BLOG

Votedisk can’t be add & remove while CRS is running, or else it would corrupt something.

OCR can be added & replaced while CRS is running.

ENV: Oracle Clusterware 10.2.0.4

Detailed logfile:

While CRS is still running…

# ./crsctl add css votedisk /dev/rdsk/ c4t60060E80056F160000006F1600000669d0s1

Cluster is not in a ready state for online disk addition

# ./crsctl add css votedisk /dev/rdsk/ c4t60060E80056F160000006F1600000669d0s1  -force

Now formatting voting disk: /dev/rdsk/ c4t60060E80056F160000006F1600000669d0s1

successful addition of votedisk /dev/rdsk/c4t60060E80056F160000006F1600000669d0s1.

# ./crsctl query css votedisk

0.     0    /dev/rdsk/c4t60060E80056F160000006F1600000469d0s1

1.     0    /dev/rdsk/c4t60060E80056F160000006F1600000669d0s1

located 2 votedisk(s).

Looks good, continue add another one.

# ./crsctl add css votedisk /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1

Cluster is not in a ready state for online disk addition

# ./crsctl add css votedisk /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1 -force

Now formatting voting disk: /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1

successful addition of votedisk /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1.

It’s corrupted. Entry 1 and entry 2 both point to “*869d0s1”.

# ./crsctl query css votedisk

0.     0    /dev/rdsk/c4t60060E80056F160000006F1600000469d0s1

1.     0    /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1

2.     0    /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1

located 3 votedisk(s).

Has to stop CRS on all nodes.

# ./crsctl stop crs

Stopping resources. This could take several minutes.

Successfully stopped CRS resources.

Stopping CSSD.

Shutting down CSS daemon.

Shutdown request successfully issued.

Then I want to delete corrupted entry 1 and entry 2.

# ./crsctl delete css votedisk /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1

Cluster is not in a ready state for online disk removal

# ./crsctl delete css votedisk /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1 -force

no votedisk found matching path specified /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1.

It shows “0” for entry 1 and entry 2.

# ./crsctl query css votedisk

0.     0    /dev/rdsk/c4t60060E80056F160000006F1600000469d0s1

1.     0    0

2.     0    0

Add another 2 votedisk while CRS is down.

# ./crsctl add css votedisk /dev/rdsk/c4t60060E80056F160000006F1600000669d0s1 -force

Now formatting voting disk: /dev/rdsk/c4t60060E80056F160000006F1600000669d0s1

successful addition of votedisk /dev/rdsk/c4t60060E80056F160000006F1600000669d0s1.

# ./crsctl add css votedisk /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1 -force

Now formatting voting disk: /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1

successful addition of votedisk /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1.

# ./crsctl query css votedisk

0.     0    /dev/rdsk/c4t60060E80056F160000006F1600000469d0s1

1.     0    0

2.     0    0

3.     0    /dev/rdsk/c4t60060E80056F160000006F1600000669d0s1

4.     0    /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1

located 5 votedisk(s).

Delete “0” votedisk. Looks good.

# ./crsctl delete css votedisk 0 -force

successful deletion of votedisk 0.

# ./crsctl query css votedisk

0.     0    /dev/rdsk/c4t60060E80056F160000006F1600000469d0s1

1.     0    0

2.     0    /dev/rdsk/c4t60060E80056F160000006F1600000669d0s1

3.     0    /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1

located 4 votedisk(s).

# ./crsctl delete css votedisk 0 -force

successful deletion of votedisk 0.

# ./crsctl query css votedisk

0.     0    /dev/rdsk/c4t60060E80056F160000006F1600000469d0s1

1.     0    /dev/rdsk/c4t60060E80056F160000006F1600000669d0s1

2.     0    /dev/rdsk/c4t60060E80056F160000006F1600000869d0s1

located 3 votedisk(s).

Want to add mirrored OCR while CRS is down. It reports error “PROT-1”.

# ./ocrconfig -replace ocrmirror /dev/rdsk/c4t60060E80056F160000006F1600000669d0s5

PROT-1: Failed to initialize ocrconfig

After start CRS on all nodes. Mirrored OCR can be added.

# ./ocrconfig -replace ocrmirror /dev/rdsk/c4t60060E80056F160000006F1600000669d0s5

# ./ocrcheck

Status of Oracle Cluster Registry is as follows :

Version                  :          2

Total space (kbytes)     :    1151724

Used space (kbytes)      :       4608

Available space (kbytes) :    1147116

ID                       : 1986342521

Device/File Name         : /dev/rdsk/c4t60060E80056F160000006F1600000469d0s5

Device/File integrity check succeeded

Device/File Name         : /dev/rdsk/c4t60060E80056F160000006F1600000669d0s5

Device/File integrity check succeeded

Cluster registry integrity check succeeded

# cat /var/opt/oracle/ocr.loc

#Device/file  getting replaced by device /dev/rdsk/c4t60060E80056F160000006F1600000669d0s5

ocrconfig_loc=/dev/rdsk/c4t60060E80056F160000006F1600000469d0s5

ocrmirrorconfig_loc=/dev/rdsk/c4t60060E80056F160000006F1600000669d0s5

local_only=false#

[detached]

2010-03-03 Wed

21:37 kcbgtcr 错误小记 (26796 Bytes) » Oracle Life

作者:eygle 发布在 eygle.com

在很久以前遇到过一次kcbgtcr_13号错误,那次错误在数据库恢复时出现,最后导致数据库不能够完成恢复。

最近又遇到类似错误,错误出现在INSERT操作时,错误出现,进程crash,任务失败,重新执行可以通过。
kcbgtcr 是Oracle数据库最重要的函数之一,其含义为:Kernal Cache Buffer GeT Cosistents Read,也就是数据库的一致性读操作,后面的代码有很多种,代表在不同的层面上出现问题。
Metalink 的 Note 415773.1 - Diagnostics and Solutions for kcbgtcr() Related Internal Errors记录了与此相关的很多问题。

 不讨论具体的问题,根据代码的含义实际上可以知道,出现这类错误,基本上都是由于CR读异常导致的,CR读涉及的各个层面出现问题,如DataBlock,Undo Header,Undo Block出问题,都可能导致异常。

kcbgtcr_13号错误是指在构造一个CR读时,检查Buffer时发现其SCN不可用,判断出错导致代码异常,进程Crash掉,这类错误可能是Buffer过小,重用过快导致的,也可能是数据变更过于频繁导致。

这类错误极其少见,一旦出现要非常慎重的处理,有些Bug与此有关,需要通过Metalink确认,数据库在部署时最好应用最新的PSU。
下面是这次故障的错误堆栈摘要:

*** 2010-03-03 14:15:04.436
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [kcbgtcr_13], [], [], [], [], [], [], []
Current SQL statement for this session:
INSERT INTO CT_INFO (RPT_DATE, RGN_CODE, .......
----- PL/SQL Call Stack -----
  object      line  object
  handle    number  name
700000206d666a0       338  procedure CT_INFO_S
7000001a89a3f30         3  anonymous block
----- Call Stack Trace -----
calling              call     entry                argument values in hex     
location             type     point                (? means dubious value)    
-------------------- -------- -------------------- ----------------------------
ksedst+001c          bl       ksedst1              FFFFFFFFFFED73C ? 000000006 ?
ksedmp+0290          bl       ksedst               104A48040 ?
ksfdmp+0018          bl       03F326DC            
kgerinv+00dc         bl       _ptrgl              
kgeasnmierr+004c     bl       kgerinv              000000000 ? 10566823C ?
                                                   100000013 ? 225D0C00130000 ?
                                                   000000000 ?
kcbassertbd+0074     bl       kgeasnmierr          1101955E0 ? 110450040 ?
                                                   105668AC4 ? 000000000 ?
                                                   000000000 ? 700000206F807C0 ?
                                                   000000000 ? 000000051 ?
kcbgtcr+2a68         bl       kcbassertbd          105668AC0 ? FFFFFFFFFFEC608 ?
ktspgfbs+0144        bl       kcbgtcr              102147B38 ? 000000000 ?
                                                   70000002EB3F448 ? 000000001 ?
ktspfsrch+00b8       bl       ktspgfbs             FFFFFFFFFFEE028 ? 000000000 ?
                                                   000000000 ? 000000000 ?
                                                   1101FFEF8 ? FFFFFFFFFFEDA78 ?
                                                   000000000 ?
ktspscan_bmb+021c    bl       ktspfsrch            700000010018078 ?
                                                   FFFFFFFFFFEE028 ?
ktspgsp_cbk1+07c4    bl       ktspscan_bmb         1FE800000001 ?
ktspgsp_cbk+00a8     bl       ktspgsp_cbk1         1130D0A00 ? 000000000 ?
                                                   1028F3668 ? FFFFFFFFFFEDF40 ?
                                                   11022A548 ? 110266D40 ?
                                                   000000000 ? 000000014 ?
kdtgsp+0504          bl       ktspgsp_cbk          000000000 ? 000000000 ?
                                                   000000000 ? 000000000 ?
                                                   000000000 ? 000000000 ?
                                                   000000000 ? 000000000 ?
kdtgsph+02f8         bl       kdtgsp               10500E820 ? 110195760 ?
kdtFlushBuf+0288     bl       kdtgsph              1105F8E40 ? 000000000 ?
insflush+0348        bl       kdtFlushBuf          1105F8E40 ?
insrow+0384          bl       insflush             1105F8E40 ? 000000000 ?
                                                   1101BECF0 ? FFFFFFFFFFF13E0 ?
                                                   2C000100000004 ?
insdrv+0428          bl       insrow               1105F8E40 ? FFFFFFFFFFF13E0 ?
                                                   000000000 ?
inscovexe+02b8       bl       insdrv               1105F8E40 ?
insExecStmtExecIniE  bl       01FA0954            
ngine+005c                                        
insexe+02f8          bl       insExecStmtExecIniE  FFFFFFFFFFF2318 ?
                              ngine                FFFFFFFFFFF2310 ? 110527020 ?
opiexe+2738          bl       insexe               1105942B8 ? FFFFFFFFFFF2978 ?
opipls+185c          bl       opiexe               FFFFFFFFFFF3CC0 ?
                                                   FFFFFFFFFFF3DA8 ?
                                                   FFFFFFFFFFF3C60 ?
opiodr+0ae0          bl       _ptrgl              
rpidrus+01bc         bl       opiodr               66FFFF5A80 ? 6025E14E0 ?
                                                   FFFFFFFFFFF6B80 ? CE9A84B20 ?
skgmstack+00c8       bl       _ptrgl              
rpidru+0088          bl       skgmstack            10233AE20 ? 000000000 ?
                                                   000000002 ? 000000000 ?
                                                   FFFFFFFFFFF6348 ?
rpiswu2+034c         bl       _ptrgl              
rpidrv+095c          bl       rpiswu2              70000020458E188 ? 11052E3A0 ?
                                                   11046AA58 ? 000000000 ?
                                                   FFFFFFFFFFF6120 ?
                                                   3C00000000 ? 000000000 ?
                                                   000000000 ?
psddr0+02bc          bl       03F32174            
psdnal+01d0          bl       psddr0               CFFFF6DB8 ? 6600000000 ?
                                                   FFFFFFFFFFF6B80 ?
                                                   30100BA3A8 ?
pevm_EXECC+01f8      bl       _ptrgl              
pfrinstr_EXECC+0070  bl       pevm_EXECC           70000019DB5AC60 ? 000000000 ?
                                                   7000001C12D897A ?
pfrrun_no_tool+005c  bl       _ptrgl              
pfrrun+1014          bl       pfrrun_no_tool       FFFFFFFFFFF6EE0 ?
                                                   7000001A89A3F30 ? 3100EAA30 ?
plsql_run+06b4       bl       pfrrun               11048A228 ?
peicnt+0224          bl       plsql_run            11048A228 ? 1000000000418 ?
                                                   000000000 ?
kkxexe+0250          bl       peicnt               FFFFFFFFFFF81F8 ? 11048A228 ?
opiexe+2ef8          bl       kkxexe               110483218 ?
kpoal8+0edc          bl       opiexe               FFFFFFFFFFFB814 ?
                                                   FFFFFFFFFFFB588 ?
                                                   FFFFFFFFFFF99E8 ?
opiodr+0ae0          bl       _ptrgl              
ttcpip+1020          bl       _ptrgl              
opitsk+1124          bl       01FA3344            
opiino+0990          bl       opitsk               000000000 ? 000000000 ?
opiodr+0ae0          bl       _ptrgl              
opidrv+0484          bl       01FA2198            
sou2o+0090           bl       opidrv               3C02DB56BC ? 44065F000 ?
                                                   FFFFFFFFFFFF750 ?
opimai_real+01bc     bl       01F9FAB4            
main+0098            bl       opimai_real          000000000 ? 000000000 ?
__start+0098         bl       main                 000000000 ? 000000000 ?
 
--------------------- Binary Stack Dump ---------------------


-The End-

相关文章|Related Articles

评论数量(0)|Add Comments

本文网址:

19:11 换号码了 » OracleDBA Blog---三少个人涂鸦地!
17:01 Note taking apps a la NoSQL » MyNoSQL
16:30 RobB's Question about M/M/m » Cary Millsap
13:20 Index Efficiency 3 » Oracle Scratchpad
01:33 2010年支付宝春季招聘之运维校园招聘篇 » 支付宝官方 Blog - 支付志

2010-03-02 Tue