讲了关于如何在NT 2000上使用裸设备的用法
- 格式:doc
- 大小:308.50 KB
- 文档页数:6
如何在Win2000上创建一个裸设备,给Oracle使用:
在大型的UNIX机器上,很多都使用裸设备来提高系统的读写性能。其实不仅在UNIX上面可以使用裸设备,在NT上同样可以。下面用实例来讲述如何创建一个裸设备,并把Oracle的数据文件或者重做日志文件放到这个裸设备上。
但是使用裸设备也不是没有代价的。使用裸设备会带来维护上的不方便,比如备份和恢复等。每个裸设备都对应于一个磁盘分区,放置一个单独的Oracle数据文件或者重做日志文件。在NT上,就对应于一个驱动器盘符。
如何在Win2000上创建一个裸分区:
1.首先在Win2000上安装Oracle Server。然后创建一个数据库。这个数据库用来待会儿做测试。
进入Win2000的控制面板的计算机管理选项,打开“存储”选项,再打开其中的“磁盘管理”,呈现下图样子:
这里已经创建了一个裸设备,就是G盘。大小为102M。
接着再示范如何创建一个裸分区:
首先要保证磁盘上还有空余的没有分区的空间,如上图,有可用空间,可用空间是绿色表示的。如果没有的话,需要删除一些现有分区来腾出空间。
接着用右键单击可用空间部分,弹出如图的对话框,选择“创建逻辑驱动器”:
然后打开如下图对话框:
单击“下一步”,
继续向下进行:
这里需要指定这个分区的大小。
记住,一个裸设备只能分配给一个数据文件或者联机重做日志文件,因此,要选择合适的大小。太小不能创建分区,太大浪费磁盘空间。我希望这个表空间的大小为100M,就把磁盘空间大小设定为101M。之所以多加1M,是因为裸设备不能使用全部磁盘空间,需要留出1M的空间用户额外的管理上面的开销。(但是好像Win2000已经替你考虑了这个问题,后面自动给这个分区分配了102M)
继续单击“下一步”,打开下一个窗口,这里需要为这个裸设备指定一个文件名:
我们指定她为J盘。
下面这一步非常重要,这才是裸设备和普通逻辑驱动器的最最关键的区别;
如果要指定为裸设备,就必须把它保留为原始分区。不能格式化。
单击下一步完成裸设备的创建:
我们注意到,NT自动为这个裸分区加上了1M的额外空间,用来为裸设备提供支持,请参考下面这幅图:
创建了裸设备之后,我们开始在Oracle里边使用这个裸设备:
SQL> create tablespace rawtablespace
2 datafile '\\.\j:' size 101m;
Tablespace created.
然后就可以往这个表空间上面创建表、索引了。
SQL> create table testabc (name char(8)) tablespace rawtablespace ;
Table created.
SQL> create tablespace rawtest datafile '\\.\g:' size 100m;
Tablespace created.
SQL> alter user chaos default tablespace rawtest;
User altered.
SQL> show user
USER is "CHAOS"
SQL> create table table_on_raw file
2
SQL> create table table_on_raw (name char(8), age number);
Table created.
SQL> drop tablespace rawtest including contents;
Tablespace dropped.
这里,如果指定的大小超过了实际的分区大小的话,会出错。
SQL> create tablespace rawtest datafile '\\.\g:' size 105m;
create tablespace rawtest datafile '\\.\g:' size 105m
*
ERROR at line 1:
ORA-19505: failed to identify file "\\.\g:"
ORA-27047: unable to read the header block of file
OSD-04006: ReadFile() failure, unable to read from file
O/S-Error: (OS 87) 参数错误。
SQL> select default_tablespace from dba_users where username='CHAOS';
DEFAULT_TABLESPACE
------------------------------------------------------------
RAWTEST
SQL> show user
USER is "CHAOS"
SQL> create table testtable (name char(8));
create table testtable (name char(8))
*
ERROR at line 1:
ORA-00959: tablespace 'RAWTEST' does not exist
SQL> create tablespace rawtest datafile '\\.\g:' size 99m;
Tablespace created.
SQL> create table testtable (name char(8));
Table created.