2008-04-20 Sun
Here is a list of public Oracle.com subdomains that I know about. In no specific order:
Do you know an Oracle.com subdomain that is not listed above? Feel free to share it with us.
---
Related Articles at Eddie Awad's Blog:
- No related posts
昨天上午,博文视点的编辑来家里做客,顺便带来了一本美丽的书,书名就是《美丽的京剧》。
据说这是博文出版的唯一一本和技术无关的书,整本书制作的非常精美,让人爱不释手。
我仔细看了这本书的板式,几乎每一页都可以说是精心设计,这需要多大的耐心和专注啊。
他们说,这本书的制作用了2年时间,这是可以留给时间的精品。
博文的编辑们也在不断思考关于数据库方面的选题,他们有很多不错的想法,希望这些想法都能够不断通过优秀的图书展现出来。

晚上,石总请我们去看了一场美丽的晋剧-打金枝,这一天是戏剧的节日。
地点在崭新的梅兰芳大剧院。

关于打金枝这出戏,最后我和石总做了些探讨,关于时间和帝王。
节目单上有两处问题,第一说唐太宗,这肯定是有问题的;第二戏里说是郭子仪的花甲寿诞;这也有问题了。
花甲寿诞应当是 60 岁,郭子仪781年逝世时已经是85岁高龄,所以60寿诞应当是756年。
而756年,升平公主的父亲唐代宗还没有当上皇帝,所以石总说,这里应当是70寿诞,这才合理。
因为代宗是762年当上的皇帝。
还是回顾一下历史吧,看看郭子仪的一生:
郭子仪(697----781),华州郑县(今陕西华县)人,祖籍山西汾阳。唐代著名的军事家。武举出身。安史之乱时任朔方节度使,在河北打败史思明。后连回纥收复洛阳、长安两京,功居平乱之首,晋为中书令,封汾阳郡王。代宗时,叛将仆固怀恩勾引吐蕃、回纥进犯关中地区,郭子仪正确地采取了结盟回纥,打击吐蕃的策略,保卫了国家的安宁。郭子仪戎马一生,屡建奇功,以84岁的高龄才告别沙场。天下因有他而获得安宁达20多年。他"权倾天下而朝不忌,功盖一代而主不疑",举国上下,享有崇高的威望和声誉。
建元二年(781年)六月十日,郭子仪以85岁的高龄辞世。德宗沉痛悲悼,废朝5日,下诏书高度评价和追念他。按律令规定一品官坟墓高1丈8尺,特下诏给他加高10尺,以示尊祟。君臣依次到府第吊唁,皇帝还到安福门临哭送行。生前死后,哀荣始终。
郭子仪真乃是一代名将矣!
-The End-
相关文章|Related Articles
- 奥运会、抵制 与 anti-cnn
- NVIDIA GeForce4 MX 440与液晶电视
- 决战顺义之边-CS真人对决
- 发现一个有趣的网站-www.breakthechain.org
- 中国移动遭遇的闰年Bug?
评论数量(1)|Add Comments
本文网址:http://www.eygle.com/archives/2008/04/the_beautiful_shansi_opera.html
早晨是一个高效的时段,善于利用这个时段的人,会有更多的效率~
在国外和台湾的很多人都有这样的习惯,但是在国内还比较少。
刚开始的时候想要靠一个人的力量做到早睡早起是非常困难的,因此网上出现了一些“早起联盟”,互相监督,互相鼓励~可以达到很好的效果,巴布早起团和海内早起团就是例子。
对于自身来说,保持一个良好的习惯是保证早起的关键,我在这里向大家推荐几个保证早起的习惯:
早晨吃好,晚上吃少
早晨喝上一杯牛奶,吃上一个鸡蛋能够保证大脑的营养以及充沛的经历,晚上的时候少量进食,尽量在接近空腹的状态下入睡,这样能获得较高的睡眠质量,可以这样说:“睡眠越有质量,早起越有希望”。
有目标的生活
生活中的每一天都是向目标靠近的一天,每天早晨起床的第一件事就是重复你的终极目标,比如说有些人早晨起来就告诉自己“我与众不同,我要达到年薪30万,我要到瑞士旅游~”这些将成为你早起的动力。
趁大脑不注意
这是我自己的经验,觉得相当管用,所以推荐给大家。每天早晨我都不想起床,大脑会想这样或者那样的理由阻止自己起床,比如说:“离上班时间还早”“昨天睡的晚,今天多睡会”等等~~
但是我会趁大脑想这些事情的时候立即坐起来,当身体感觉到阵阵凉意的时候,下一个动作绝对是穿衣服,而不是继续躺下,屡试不爽,大家可以试试~
晚上不想睡,早晨不想起
保证早晨早起的另一个好习惯是“早睡”,早睡和早起像是一对亲兄弟,如果你喜欢上了其中的一个,那么另一个也会来到你的身边,如果你无法做到早起的话,你可以先从做到早睡开始~~
不要设置懒人闹钟
用我的观点来看,懒人闹钟只有在头三天的时候有效果,到i第四天的时候你就彻彻底底变成了一个“懒人”,所以,懒人闹钟不是给“懒人”用的闹钟,而是把你变成“懒人”的闹钟~呵呵~慎用
为老婆做早饭
这个习惯我至今没有养成~呵呵~不过我已经想尽办法让我老婆养成了这样的习惯,呵呵,自从她养成这样的习惯之后,比以前早起20分钟,呵呵~~~
标签:生活, 睡眠, 习惯相关内容
失眠是越来越严重了.
昨天晚上折腾到凌晨1点多,实在没有办法睡着了,只能自己吃了颗安定,躺在床上30分钟,发现越来越清醒,实在没有办法,再来一颗,发现自己还是没有办法睡着.看来现在啥都是假的,连这个安定都是假的.
既然睡不着,那就躺床上想事情,想来想去发现没什么好想的,还是不想的好.
算了,今天再去开点安定.实在不行,加大计量吧.
PS:早上去刷牙洗脸的时候,等到回来的时候,发现自己把自己锁外面了,第一次干这种事情,凡事总有第一次的,虽然有人说,第一次总是有点痛苦的.
不知道是不是最近心理压力太大,总想去控制所有的事情,到头来,却发现,我能控制得住的只有那么多,或许应该放下点心理负担,只去控制我能控制的那部分,至于没有办法控制的,那就听天命尽人事吧.
We’ve been analyzing historical TechMeme data to dig a little deeper than the leaderboard information on the site that shows top blogs over the trailing 30 days. Mark McGranaghan and I are slicing the data in a number of ways and will publish it shortly on CrunchBase.
For now we thought we’d show a teaser - below are the top 100 tech bloggers/authors, based on the total number of headlines they have had on TechMeme from January 1, 2008 until today. The data isn’t 100% perfect as we’ve been grabbing it only once per hour, so a headline that was up for less than one hour may not be counted. But in terms of tracking the most popular bloggers, the data is meaningful. Since a lot of the top leaderboard blogs are multi-author, this helps to shake out who’s actually writing the popular stories.
Clarification: This list doesn’t take into consideration authors who write for multiple publications.
Full list is below:
Crunch Network: CrunchBoard because it’s time for you to find a new Job2.0
For a couple of months there have been no updates to our msl patch, however recently I managed some time to change this. The functionality was extended a little bit and what’s even more important the patch is available for all the recent MySQL releases.
To remind anyone who has not yet come across this piece of code. msl (microslow) patch was developed a few years ago to allow more precise logging of query execution times into the slow log. Originally MySQL database offered a second time resolution and also a 2 second minimum for the query to get written, that is when you set long_query_time=1. After applying the patch you could see whether the time was 0.005s or 0.9s, which can make a substantial difference for the database and application performance. Over time msl patch grew with new features to let people learn more details of query execution, normally hidden from everyone’s eyes. Currently it’s used by many DBAs and developers to help in optimizations or troubleshooting the applications. We ourselves often rely on it when doing commercial MySQL consulting and MySQL AB has even adopted it into the official database distribution starting 5.1.21 release.
Below you will find the files to download, but first let me walk you through the installation and configuration because things changed along the way.
Installation
In order to use the patch first you will need to build the database binaries from source. This is unavoidable. Following this guide I hope should make it fairly easy even for those of you, who do not have much experience in that kind of tasks.
Of course the problem can be approached in many different ways, however I will be describing the method that is simple, non-intrusive to the system and additionally allows marginal database downtime. It should also work on virtually any Linux distribution and possibly under most other systems.
The patch is currently available for MySQL 5.0.45, 5.0.51a, 5.0.54a and 5.0.56. I assume you have some MySQL version installed already, but if it’s not any of these releases, you will need to upgrade (it will be worth it anyway :-)). You will also need to download the sources matching the installed database version. Once you have it all in place, we can begin.
Open command line (shell) on the server and go to the directory where the sources archive and the patch is. First you should determine how your current MySQL installation was built, so you can have the new binary to be as close to the original one as possible (e.g. to have the same set of storage engines or default paths):
(garfield:~/work) % env VISUAL=/bin/cat mysqlbug | grep ‘Configure command’
Configure command: ./configure ‘–disable-shared’ ‘–with-server-suffix=-community’ ‘–without-embedded-server’ ‘–with-ndbcluster’ ‘–with-innodb’ ‘–with-csv-storage-engine’ (…)
From that output you can learn how to run configure command, which needs to be done prior to compiling the sources. It should be one long line full of various options and in the above case it was:
./configure ‘–disable-shared’ ‘–with-server-suffix=-community’ ‘–without-embedded-server’ ‘–with-ndbcluster’ ‘–with-innodb’ ‘–with-csv-storage-engine’ ‘–with-archive-storage-engine’ ‘–with-blackhole-storage-engine’ ‘–with-example-storage-engine’ ‘–with-federated-storage-engine’ ‘–without-bench’ ‘–with-zlib-dir=bundled’ ‘–with-big-tables’ ‘–enable-assembler’ ‘–enable-local-infile’ ‘–with-mysqld-user=mysql’ ‘–with-unix-socket-path=/var/lib/mysql/mysql.sock’ ‘–with-pic’ ‘–prefix=/’ ‘–with-extra-charsets=all’ ‘–with-yassl’ ‘–exec-prefix=/usr’ ‘–libexecdir=/usr/sbin’ ‘–libdir=/usr/lib64′ ‘–sysconfdir=/etc’ ‘–datadir=/usr/share’ ‘–localstatedir=/var/lib/mysql’ ‘–infodir=/usr/share/info’ ‘–includedir=/usr/include’ ‘–mandir=/usr/share/man’ ‘–enable-thread-safe-client’ ‘–with-comment=MySQL Community Edition (GPL)’ ‘–with-readline’ ‘CC=gcc’ ‘CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector –param=ssp-buffer-size=4 -m64 -mtune=generic’ ‘CXXFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector –param=ssp-buffer-size=4 -m64 -mtune=generic’ ‘CXX=gcc’ ‘LDFLAGS=’
Take your output and copy&paste it to some notepad for later. Next step is to extract the archive:
(garfield:~/work) % gzip -c -d mysql-5.0.51a.tar.gz | tar -x -v -f -
mysql-5.0.51a/
mysql-5.0.51a/bdb/
mysql-5.0.51a/bdb/Makefile.in
mysql-5.0.51a/bdb/btree/
mysql-5.0.51a/bdb/btree/bt_curadj.c
…
Once that has completed, enter the sources directory:
(garfield:~/work) % cd mysql-5.0.51a
Finally you can apply the patch:
(garfield:~/work/mysql-5.0.51a) % patch -p1 < ../patch-mysql-5.0.51a-msl.diff
patching file include/my_time.h
patching file scripts/mysqldumpslow.sh
patching file sql-common/my_time.c
patching file sql/filesort.cc
patching file sql/log.cc
patching file sql/log_event.cc
patching file sql/my_time.c
patching file sql/mysql_priv.h
patching file sql/mysqld.cc
patching file sql/set_var.cc
patching file sql/set_var.h
patching file sql/slave.cc
patching file sql/sql_cache.cc
patching file sql/sql_class.cc
patching file sql/sql_class.h
patching file sql/sql_parse.cc
patching file sql/sql_select.cc
patching file sql/sql_show.cc
patching file sql/structs.h
Now it is the time to run configure with all the options you discovered earlier. Please do not use the below example as it may not be suitable for your environment.
(garfield:~/work/mysql-5.0.51a) % ./configure ‘–disable-shared’ ‘–with-server-suffix=-community’ ‘–without-embedded-server’ ‘–with-ndbcluster’ ‘–with-innodb’ ‘–with-csv-storage-engine’ ‘–with-archive-storage-engine’ ‘–with-blackhole-storage-engine’ ‘–with-example-storage-engine’ ‘–with-federated-storage-engine’ ‘–without-bench’ ‘–with-zlib-dir=bundled’ ‘–with-big-tables’ ‘–enable-assembler’ ‘–enable-local-infile’ ‘–with-mysqld-user=mysql’ ‘–with-unix-socket-path=/var/lib/mysql/mysql.sock’ ‘–with-pic’ ‘–prefix=/’ ‘–with-extra-charsets=all’ ‘–with-yassl’ ‘–exec-prefix=/usr’ ‘–libexecdir=/usr/sbin’ ‘–libdir=/usr/lib64′ ‘–sysconfdir=/etc’ ‘–datadir=/usr/share’ ‘–localstatedir=/var/lib/mysql’ ‘–infodir=/usr/share/info’ ‘–includedir=/usr/include’ ‘–mandir=/usr/share/man’ ‘–enable-thread-safe-client’ ‘–with-comment=MySQL Community Edition (GPL)’ ‘–with-readline’ ‘CC=gcc’ ‘CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector –param=ssp-buffer-size=4 -m64 -mtune=generic’ ‘CXXFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector –param=ssp-buffer-size=4 -m64 -mtune=generic’ ‘CXX=gcc’ ‘LDFLAGS=’
This command will take about a minute to complete and it prints the following message at the end when everything goes fine:
Remember to check the platform specific part of the reference manual for
hints about installing MySQL on your platform. Also have a look at the
files in the Docs directory.
Thank you for choosing MySQL!
Otherwise you will see some error. The sources have been prepared for compilation, so you are ready to run it:
(garfield:~/work/mysql-5.0.51a) % make
Now it’s a good moment to go and get yourself a cup of tea, because for the next 5-10 minutes, depending on the hardware, you will be sitting idle and watching tons of text scrolling through the screen. The process should end with no errors and message like this one:
make[1]: Leaving directory `/home/macko/work/mysql-5.0.51a’
The new database binary should be now available in sql subdirectory:
(garfield:~/work/mysql-5.0.51a) % ls -l sql/mysqld
-rwxr-xr-x 1 macko macko 28467073 2008-04-18 20:31 sql/mysqld
If it’s not there, you had errors in compilation. You may strip the symbols off the binary to make it smaller:
(garfield:~/work/mysql-5.0.51a) % strip sql/mysqld
(garfield:~/work/mysql-5.0.51a) % ls -l sql/mysqld
-rwxr-xr-x 1 macko macko 7453516 2008-04-18 20:38 sql/mysqld
You are ready to have the patched MySQL installed in the system. Locate where the original mysqld binary is with:
(garfield:~/work/mysql-5.0.51a) % whereis mysqld
mysqld: /usr/sbin/mysqld /usr/share/man/man8/mysqld.8.bz2
As you can see in this case it resides in /usr/sbin, because the other file is just a manual. For the following operations you will need to become root user, unless you are already
(garfield:~/work/mysql-5.0.51a) % su root
Password:
First you should apply the changes to the database configuration, specifically you need to enable slow logging (see Configuration section for details). Then rename the binary, which can be safely done even with MySQL still running. This will also automatically create a backup of the un-patched version in case you need to restore it.
(garfield:~/work/mysql-5.0.51a) # cp /usr/sbin/mysqld /usr/sbin/mysqld.BAK-unpatched
Finally you can place the patched mysqld to the right location.
(garfield:~/work/mysql-5.0.51a) # cp sql/mysqld /usr/sbin/mysqld
Even though everything is ready, the database is still running the original code. In order to activate the patch you will need to restart MySQL. You can obviously choose the most convenient time, there is no rush. The restart can take as little as few seconds, however it will depend on many factors such as storage engines used (InnoDB will take significantly longer to close than MyISAM), database configuration, load, etc.
Configuration
There are several parameters related to slow log you can set with patch applied. All filter-type options work in conjunction meaning that in order for query to be logged it must match long_query_time AND min_examined_row_limit AND log_slow_filter.
log-slow-queries[=name]
Log slow queries to this log file. Defaults logging to hostname-slow.log file. Must be enabled to activate other slow log options.
This is the most important one as it enables the logging. If you don’t specify it in my.cnf file, the remaining part of the configuration will not matter, because the log file won’t be created. This is also the only option which you cannot change at runtime from MySQL console wit SET or SET GLOBAL command.
log_slow_filter=name
Log only the queries that followed certain execution plan. Multiple flags allowed in a comma-separated string. [qc_miss, full_scan, full_join, tmp_table, tmp_table_on_disk, filesort, filesort_on_disk]
It allows you to filter queries logged by execution plan. For example to log only queries doing full table scans you would need to set this to “full_scan”, while in order to get only those which use on-disk temporary storage for intermediate results “tmp_table_on_disk,filesort_on_disk” would be a proper flags set. To clear the filter just assign an empty string “” to this option.
Note: you should put double quotes around the entire string of comma-separated flags.
Can be changed at run time with both SET SESSION and SET GLOBAL.
log_slow_rate_limit=#
Rate limit statement writes to slow log to only those from every (1/log_slow_rate_limit) session.
With high traffic coming to your database, the slow logging may consume a lot of IO bandwidth and the file may grow huge very quickly when logging all the queries. This parameter allows you to get the full sessions logged while doing it only for every n-th of them thus limiting the number of writes to the log.
Note: this feature will fail to work well if your application uses some kind of connection pooling. Rate limiting is disabled for the replication thread.
Can be changed at run time with both SET SESSION and SET GLOBAL.
log_slow_verbosity=name
Choose how verbose the messages to your slow log will be. Multiple flags allowed in a comma-separated string. [microtime, query_plan, innodb]
msl patch currently can log three types of information: query timings, execution plan details and InnoDB engine per-query statistics. With this option you may choose which of those you want to have in your slow log. For example to have microsecond query timing and InnoDB statistics you would need to set this option to “microtime,innodb”.
Note: You should put double quotes around the entire string of comma-separated flags. Currently “microtime” is mandatory meaning you cannot disable it. “innodb” is only available with the patch supporting that feature.
Can be changed at run time with both SET SESSION and SET GLOBAL.
long_query_time=#
Log all queries that have taken more than long_query_time microseconds to execute to file.
This option is standard MySQL, however after you apply the patch, it will no longer take time in seconds. Instead it will want you to specify the number of microseconds.
Can be changed at run time with both SET SESSION and SET GLOBAL.
min_examined_row_limit=#
Don’t log queries which examine less than min_examined_row_limit rows to file.
If you are not interested in queries which scan no more than N rows, you can set this to the desired value.
Can be changed at run time with both SET SESSION and SET GLOBAL.
Downloads
msl patch for MySQL 5.0.45
msl patch for MySQL 5.0.51a
msl patch for MySQL 5.0.54a
msl patch for MySQL 5.0.56
msl patch for MySQL 5.0.45 with InnoDB extensions
msl patch for MySQL 5.0.51a with InnoDB extensions
msl patch for MySQL 5.0.54a with InnoDB extensions
msl patch for MySQL 5.0.56 with InnoDB extensions
Entry posted by Maciej Dobrzanski | 2 comments
2008-04-19 Sat
2008-04-18 Fri
AnySQL.net
DBA notes
Oracle & Starcraft
eagle's home
Give you some color to see see!
AnySQL.net English
Oracle Scratchpad
Oracle Life
OracleDBA Blog---请享受无法回避的痛苦!
Uploads from dbanotes
Chanel [K]
xzh2000的博客
Oracle Security Blog
ERN空间
Eddie Awad's Blog
MySQL Performance Blog
The Tom Kyte Blog
del.icio.us/fenng/oracle
AIXpert
O'Reilly Databases
Red Hat Magazine
DBASupport
DB2 Magazine 中文版
developerWorks : AIX 专区的文章,教程
Pythian Group Blog » Log Buffer
车东[Blog^2]
blue_prince
玉面飞龙的BLOG
此生 今世
人生就是如此
Orange Tiger 木匠 的 移民生活
生活帮-LifeBang
Hey!! Sky!
dba on unix
Oracle Notes Wiki
Brotherxiao's Home
柔嘉维则@life.oracle.eng
Fenng's shared items in Google Reader
jametong's shared items in Google Reader
缥缈游侠-logzgh
Tanel Poder's blog: Core IT for geeks and pros
DBA Tools
ilonng
yangtingkun
NinGoo@Net
Oracle & Unix
Inside the Oracle Optimizer - Removing the black magic
Ricky's Test Blog
DBA@Taobao
存储部落
Think in 88
Alibaba DBA Team
Oracle Team @SNC
淘宝数据仓库团队
OracleBlog.cn







