How to resolve setlocale warning in OEL6

默认安装的Oracle Enterprise Linux 6,在用户登录以后,通常会有以下警告: Last login: Tue Jun 19 16:52:19 2012 from 192.168.2.1 -bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8) 并且在执行oerr等命令的时候,也会先产生警告,比如: $ oerr ora 10046 perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = “UTF-8”, LANG = “en_US.UTF-8” are supported and installed…

Where is the backup of ASM disk header block?

在Oracle 10.2.0.5之前,ASM磁盘的头块并没有自己的备份,因此一旦头块损坏,如果没有以前kfed read备份出来的信息,也就没有办法使用kfed merge来作头块恢复,特别是如果一个磁盘组中所有的磁盘头块都出现问题(比如被人为地创建了PV),恢复ASM磁盘头块的操作就会非常麻烦。 但是从Oracle 10.2.0.5之后,ASM磁盘的头块会自动备份在另外一个块中,这实际上是Oracle 11g出现的功能,不过经过测试,在Oracle 10.2.0.5版本中,这个备份也是存在的。 正是因为存在这个备份,所以Oracle 10.2.0.5之后的kfed程序才有了新的repair命令,该命令将备份块直接覆盖到磁盘头块,完成修复工作。 在Oracle 10.2.0.4中,如果尝试执行kfed repair,则会报错说命令行参数不正确,此报错说明并不存在repair命令: $ kfed repair KFED-00101: LRM error [102] while parsing command line arguments 但是在Oracle 10.2.0.5中,执行kfed repair,则会说无法打开文件空,而这正说明repair命令是存在的,报错是因为还需要明确指定要修复哪块磁盘: $ kfed repair KFED-00303: unable to open file ” 那么这个备份块具体存在哪里呢?在Solaris下的测试,我们使用truss来进行跟踪。 $ truss -o tracedisk2.out kfed repair /asmdisks/vdisk2 在trace文件中,找到下面这段,可以明确地看到kfed程序从第510个块中读出4096字节,然后再写回到第0个块中。 stat(“/asmdisks/vdisk2”, 0xFFFFFD7FFFDFDB20) = 0 open(“/asmdisks/vdisk2”, O_RDWR) = 7 lseek(7,…