数据库服务器的应用
通常用户按缺省方式建立数据库和表,OnLine的这些概念和技术对他的影响是有限的。在确省情况下,用户的数据库和表都建立在rootdbs中,每个表的extent为8页,以后为4页,并且数据库不带日志,数据表的琐方式为页级琐。
其实用户可以根据其系统的特点了建立其数据库和表,使得系统有较高的运行效率和易于管理的特点,下面将描述在建立用户系统时如何使用OnLine的概念和技术。
第一节 建立用户数据库
用户可根据自己的要求将他的数据库建立在指定的数据库空间中,当然该数据库空间必须首先存在。
CREATE DATABASE employee IN company ;
以上SQL命令将数据库employee建立在名为company的数据库空间中。
CREATE DATABASE employee WITH LOG ;
CREATE DATABASE employee WITH BUFFERED LOG ;
以上两条SQL命令在建立数据库employee市分别要求带UNBUFFERED和BUFFERED日志。
OnLine的日志除了满足事务的提交和滚回,同时还是一种数据库安全机制。当系统由于断电或其他的原因使数据库服务器系统停 止运行,但是当它下一次启动时,数据库服务器系统将会根据 前一次停止工作时留下的日志 来滚 回 没有完成的事务。 UNBUFFERED 日志要求数据库每当有事 务提交时,立即将数据从共享 内存写回磁盘;而BUFFERED日志则并不因为事务提交即将数据从共 享内存写回磁盘,它只是当共享内存中的 Logical log buffer空间满或者当OnLine的定时共享内存数据 写回磁盘操作 Checkpoint 来到时,才将数据从 Logical log buffer 写回到日志文件。如果一个事务已 经提交,但共享内存并没有满,同时 Checkpoint 也没有进行时,系统发生非正常停机,当数据库服 务器系统再次启动时,由于该提交的事务并没有被写回磁盘,OnLine将根据在其数据空间中的日志 来滚回该操作。因此,带UNBUFFERED日志的数据库对已经提交的事务来说安全性较好,而带BU-FFERED数据库则运行效率较高。不带日志的数据库虽然运行效率最高但它不具有在系统非正常停机后自动滚回失败事务的能力,只能用数据备份来恢复。 综合上面的SQL 命令就得到下面的建立数据库的命令:
CREATE DATABASE employee IN company WITH LOG;
CREATE DATABASE employee IN company WITH BUFFERED LOG.
对于一个建立的不带日志数据库,希望使它带日志;或者一个带日志的数据库,希望改变它的日志类型,用户可通过onmonitor 实用工具来实现。运行 onmonitor后,选择 Logical-logs菜单, 然 后再选择Databases菜单,屏幕上显示出日志的四种类型,将选中项移到需要的日志类型上,按Contr- ol-B键,OnLine便将该数据库的日志修改成用户所需要的类型。 改变了数据库的日志类型 后, 用 户必须作数据库的0级备份。