作者文章: Fenng

的确没有那么多”迷信” [DBA工作备忘]

昨天拜读了刘润的“不要搞封建迷信活动”,深有感触. 前一段时间我在处理 Data Guard 的时候, 遇到过一件怪事. “怪现象一定有原因的”. 果然, 经过仔细分析之后, 果然发现并不是灵异现象. 凡事皆有因果.
情景描述:
在一个机器上建立两个同一数据库的 Data Guard. 其中一个 Data Guard 已经建立,数据文件放在 foo 目录下.现在准备建立第二个 Data Guard, 数据文件放在 fooback 下. 初始化参数已经设置:

*.db_file_name_convert='/opt/oracle/oradata/foo/','/opt/oracle/oradata/fooback/'

其他的设置略. 用第一个 Data Guard 备份的控制文件, 启动第二个实例, 进行恢复. 开始正常, 恢复了几个文件之后,遇到如下错误:
skipping datafile 56; already restored to file /opt/oracle/oradata/fooback/user_log_04.dbf
skipping datafile 57; already restored to file /opt/oracle/oradata/fooback/user_log_05.dbf
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00058 to /opt/oracle/oradata/foo/foo_note_06.dbf
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 03/24/2006 11:32:48
ORA-19504: failed to create file “/opt/oracle/oradata/foo/foo_note_06.dbf”
ORA-27086: skgfglk: unable to lock file – already in use
IBM AIX RISC System/6000 Error: 13: Permission denied
Additional information: 8
Additional information: 553070
已经作了数据文件名字映射, 在第 58 个文件映射失败(应该是 fooback 目录下的文件,又跑到 foo 上去恢复了!) 怪哉!
进入第一个实例, 查询文件名字,正常.进入第二个实例, 查询文件名字, 前面 57 个都是 fooback 目录下的, 第 58 个就变成了 foo . 难道是遇到了 Bug 么 ? 为什么是 58 ?
折腾了许久, 针对这个58 ,我去查以前的数据库变动, 发现这个文件,是第一个 Data Guard 建立之后我第一次添加的数据文件.
oops, 我用的这个控制文件有问题!! 如果只在一个机器上建立一个 standby ,那么用其他 standby
备份出来的控制文件, 并且不修改文件名字映射的话, 不会出现该问题的. 而第一个 Standby 的控制文件,只从 Primary DB 控制文件带来 57 个数据文件的信息.所以, 在 58 个失败. 而 Oracle 的 Data Guard 文档中建议的标准做法是从 Primary DB 取控制文件.
Bug ,这是一个 DBA 甚至是所有 IT 工程师最容易”迷信”的地方. 破除迷信, 从现在开始. 

继续阅读

SSL 2.0 真的不是很安全

前几天用 Nessus 扫描自己用的笔记本, 报告有安全漏洞:

The remote service accepts connections encrypted using SSL 2.0, which reportedly suffers from several cryptographic flaws and has been
deprecated for several years. An attacker may be able to exploit these
issues to conduct man-in-the-middle attacks or decrypt communications
between the affected service and clients

阅读了一下推荐的文档 Analysis of the SSL 3.0 protocol, SSL 2.0 果然存在不少问题.

其中一个问题是 SSL 2.0 容易受到密码组回滚攻击(CipherSuite Rollback attack). 关于 ciphersuite rollback attack:

An attack against how Secure Socket Layer version 2 (SSL v2) negotiates the cipher suite. The aim is to convince Alice and Bob to use much weaker encryption than they are capable of using.

该攻击方法通过恶意编辑在 hello 报文中发送的所支持密码组的明文列表而使得使用者被动选择弱化的出口加密算法.这几乎是 SSL 2.0 的致命缺陷.

另外一个问题是由于美国安全产品出口法的限制: 只能使用不超过 40 位的 MAC( 报文验证码, message authentication codes). SSl 2.0 使用 MAC 后添加字节的块加密模式,但是添加的长度字段是未经验证的,这给了主动攻击者会删除最后的内容的可能.

对于 SSL V2 也可能存在中间人攻击(man-in-the-middle attack). 虽然 Diffie-Hellman 是目前最为完美的公钥算法.但是在 SSL V2 的缺陷使得供给者能够巧妙伪造一个数字证书, 让客户以为他是和真正的服务器通讯. 在 SSL V3 中则对该缺陷进行了改进.

推荐文档:SSL技术详细说明

一直对 SSL 的安全性比较模糊. 唉

 

金庸小说《碧血剑》仍然存在的一处Bug

在家闲来无事读金庸。广州出版社出版的修订版《碧血剑》,读罢,发现了一处不太合常理的情节。
书中写道,袁承志少年时候进入金蛇郎君丧命的洞窟中, 发现了插在石壁中的碧血剑,用力拔了几下,微微晃动,只得作罢。
从后来的情节中,我们看到,当时金蛇郎君手足筋脉俱废, 哪里来的力气把这把宝剑插入石壁呢 ?
碧血剑
下部的时候还有一处很明显的情节错乱, 就是五毒教的齐云璈请求何铁手拔刀的那一段。前言不搭后语。
这部碧血剑是金庸早期的作品, 在这个版本中加入了大量的心里活动描写(比如对阿九的意乱情迷) ,纵观金庸小说,心里活动的描写一如中国古典小说那样,并不多见, 也是很为生涩的地方。

《万象》复刊 有点粗糙

这次回家途中如果拿一本《万象》消磨时间倒是一件美事。可惜,在长春也没有看到,直到今天才总算在楼下报刊亭买了一本。

感觉纸张质量下降了一个档次。有点黯。难道是天热太阳给晒黑了?? 封三居然是什么”专门保护四合院的房修二公司”的广告. 所幸的是,素来不喜的范旭仑老先生的文章总算这一期没有。

附:复刊后的《万象》第八卷 第一期 2006年4月号目录

    

  • 1. 楚门秀——八卦作家楚门*卡波提 钟芳玲
  • 14.卡波提与人物采访
  • 18.卡波提与哈波*李
  • 21.我这一代香港人 陈冠中
  • 39.我这一代东京人 新井一二三
  • 60.玩具 游戏 旧时月色 方非
  • 68.《党派评论》的一波三折 钱满素
  • 83.花园中孤独的诗人:艾米丽 狄金森 菊子
  • 97.朱希祖与钱玄同 朱元曙
  • 111.胡适“作伐”和北大的“某籍某系” 邵建
  • 117.昔日果脯仍在 旧时习俗已远 –俞平伯的《杂拌儿》与周作人 吴兴文
  • 124.香菱的裙子及其他 张宗子
  • 133.再谈钱锺书为谁沉吟 胡文辉
  • 139.角先生,肉苁蓉及其他 钟叔河
  • 150.且玩且读 –欧游读书杂记 任西真
  • 154.黄酒:掀起你的盖头来 杨起

《书城》也复刊了,书亭老板说过几天能到。

BTW:
刚才网上看到杭州台风中 7 人失踪, 叹息
–End.