ACOUG First Event 2011

ACOUG新年的第一次活动即将于3月26日举行,这是2011年ACOUG的第一次活动,而且这次活动较去年的形式和内容都有所不同,我们有幸邀请到了韩国的数据库专家李华植先生。

去年,我们引进出版了李华植先生的代表著作《海量数据库解决方案》一书,该书集华植先生数十年经验之大成,为国内读者带来了不少新的技术知识与体验,借此次机会,我们联合人民大学信息学院、电子工业出版社和恩墨科技,一起认真组织内容,邀请嘉宾,为大家奉献了中韩数据库界的第一次技术交流。

在 人大方面,国内数据库界的先驱,人大教授王珊老师也将出席这次活动。在这次交流中,我们将有机会了解韩国数据库的应用发展历史,以及韩国海量数据库的规模 与经验;我们也有机会与王珊老师面对面交流,回忆一下几乎每个人都学习过的《数据库系统概论》学生时光。

本次活动由于场地所限,我们为ACOUG会员预先保留席位,按照报名顺序先后确定参会。
活动注册请移步ACOUG官方活动论坛: http://forum.acoug.org/read.php?tid=164
Oracle官方页面:Database Solution – China-Korea Oracle technical communication

Mac之路(九)- 自定义截屏目录、文件名

在本站中搜索“Mac之路”,可以找到之前写的一系列文章,有些很幼稚,有些现在看起来仍然很有用。

这是此系列的最新一篇,主要介绍如何自定义Mac自带的截屏快捷键所截取图片存放的路径,图片的格式,图片的名称。

本文主要参考自:
http://snowleopardtips.net/tips/everything-you-need-to-know-about-screen-captures.html

Mac自带的截屏本身已经很强大,如果还不知道如何截屏(Sreen Capture)的,请自行Google,关键字“Mac截屏”。

默认情况下,截取的文件存放在用户桌面上,文件名类似“Screen shot 2011-03-01 at 18.48.25 .png”这样带时间和空格,格式为png文件。

现在我们准备修改为:截屏文件自动保存在用户目录下的Pictures/snap目录中,并且名字为“screenshot001.jpg”,其中的数字自动递增。

1. 修改存储目录
在Terminal中执行如下命令,location关键字后为目录的绝对路径:

defaults write com.apple.screencapture location /Users/kamus/Pictures/snap

2. 修改文件类型
在Terminal中执行如下命令,type关键字后为想要保存的文件类型:

defaults write com.apple.screencapture type jpg

3. 修改文件名
这部分比较复杂,无法用defaults write com.apple.screencapture name ‘filename’这样的命令来完成。所以这里我们使用到了Mac中强大的Automator folder action。

首先创建一个Automator脚本。一个Automator脚本就类似一个工作流,按照指定的步骤一步一步执行下去。创建完毕的脚本截图如下:
Automator

实际上这个工作流就是先在指定目录中寻找符合条件的文件名,然后在文件名后面附加递增的数字。

Folder Action类型的Automator脚本默认保存在~/Library/Workflows/Applications/Folder Actions/目录下。(不同类型的脚本保存的目录不同,比如Service类型的Automator脚本则保存在~/Library/Services目录中)

bogon:Folder Actions kamuspwd
/Users/kamus/Library/Workflows/Applications/Folder Actions
bogon:Folder Actions kamus ls -l
total 0
drwxr-xr-x@ 3 kamus  staff  102 Mar  1 19:11 RenameScreenCaptures.workflow

接下来需要将该脚本绑定到snap目录上。
在Finder中找到该目录,右键单击,在菜单中选择“Folder Actions Setup…”,在弹出窗口中选择刚刚保存的脚本,在我的例子中保存为RenameScreenCaptures.workflow。

Choose automator folder action

做完以上所有更动,需要Logout用户再登陆,或者直接在命令行中输入:

killall SystemUIServer

再重新截屏试一下,All done。

How to resize ACFS and change the mountpoint

关于如何创建ACFS,参看我的上一篇文章:How to create ASM filesystem(ACFS) in Oracle 11gR2

在创建完ACFS之后如果想更改挂载点(mountpoint)以及修改卷的大小,该如何操作呢?

–检查当前ACFS文件系统状态。ACFSDG是ACFS所在的磁盘组,总大小614400M,还有409491M空闲。

$ asmcmd lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512   4096  1048576    614400   409491                0          409491              0             N  ACFSDG/
MOUNTED  EXTERN  N         512   4096  1048576      4886     4490                0            4490              0             Y  CRSDG/
MOUNTED  EXTERN  N         512   4096  1048576    488288    90536                0           90536              0             N  DATADG/
MOUNTED  EXTERN  N         512   4096  1048576    223623   221834                0          221834              0             N  FRADG/

–检查ACFSDG上的卷(Volume)。Volume Device是挂载时要指定的设备名称,Usage和Mountpoint仅仅是描述,并不是表明其真正用途和真正的挂载点。
–可以使用asmcmd volset来修改usagestring和mountpath。

$ asmcmd volinfo -G ACFSDG -a
Diskgroup Name: ACFSDG

         Volume Name: ACFSDGVOL1
         Volume Device: /dev/asm/acfsdgvol1-57
         State: ENABLED
         Size (MB): 204800
         Resize Unit (MB): 256
         Redundancy: UNPROT
         Stripe Columns: 4
         Stripe Width (K): 128
         Usage: To Store RMAN backupsets
         Mountpath: We should mount this volume as /backup

–检查ACFS挂载点,可以看到当前Mount Point并不是/backup而是/acfsmounts/acfsdg_acfsdgvol1,后面我们就要修改这个挂载点。

# acfsutil registry -l /dev/asm/acfsdgvol1-57
Device : /dev/asm/acfsdgvol1-57 : Mount Point : /acfsmounts/acfsdg_acfsdgvol1 : Options : none : Nodes : all : Disk Group : ACFSDG : Volume : ACFSDGVOL1 

–创建新的挂载点

# mkdir /backup

–先尝试用asmcmd volresize命令修改卷大小,报ORA-15476错误,实际上这里的意思是说,在卷处于mount状态时,是无法用volresize命令修改卷大小的,必须用acfsutil size命令。volresize命令只能在文件系统被卸载之后才能使用。

ASMCMD> volresize -G acfsdg -s 614400M ACFSDGVOL1
ORA-15032: not all alterations performed
ORA-15476: ACFS volumes must be resized with the 'acfsutil size' operating system command. (DBD ERROR: OCIStmtExecute)

–卸载当前已经挂载的文件系统

# umount -a -t acfs

–修改ACFS Registry,修改这个信息并不会自动挂载文件系统,而只是为了让下次Oracle Clusterware重启的时候可以自动地将文件系统挂载到正确路径下。

# acfsutil registry -d /dev/asm/acfsdgvol1-57
acfsutil registry: successfully removed ACFS volume /dev/asm/acfsdgvol1-57 from Oracle Registry
# acfsutil registry -a /dev/asm/acfsdgvol1-57 /backup
acfsutil registry: mount point /backup successfully added to Oracle Registry
# acfsutil registry -l /dev/asm/acfsdgvol1-57
Device : /dev/asm/acfsdgvol1-57 : Mount Point : /backup : Options : none : Nodes : all : Disk Group : ACFSDG : Volume : ACFSDGVOL1

–在文件系统被卸载之后,尝试使用volresize命令修改大小。报ORA-15041错误,因为我们尝试指定之前在asmcmd lsdg命令中显示的该磁盘组的Total_MB,但是由于ADVM Volume在创建时会有额外的空间开销,因此报空间不足。当然,如果这里我们将大小降低1G左右,volresize命令是可以运行成功的。本例中在后面选择使用acfsutil size来修改大小。

$ asmcmd volresize -G acfsdg -s 614400M ACFSDGVOL1
ORA-15032: not all alterations performed
ORA-15041: diskgroup "ACFSDG" space exhausted (DBD ERROR: OCIStmtExecute)

–手动挂载文件系统到新目录下。

# mount -v -t acfs /dev/asm/acfsdgvol1-57 /backup
mount.acfs: volume: /dev/asm/acfsdgvol1-57, mount point: /backup
mount.acfs: options: rw
mount.acfs: verbose option specified
mount.acfs: command string: /bin/mount -i -t acfs -o ,rw /dev/asm/acfsdgvol1-57 /backup -v.
/dev/asm/acfsdgvol1-57 on /backup type acfs (rw)

–修改挂载点属主

# chown oracle:oinstall /backup 

–acfsutil size命令可以在文件系统仍然被使用的时候进行扩容,+/-符号表示要在当前基础上增加或者减少多少,这比volresize命令更灵活。

# acfsutil size +400000M /backup
acfsutil size: new file system size: 634312982528 (604928MB)
# acfsutil size +8000M /backup
acfsutil size: new file system size: 642902917120 (613120MB)
# acfsutil size -3000M /backup
acfsutil size: new file system size: 639950127104 (610304MB)