|
声明: 此文仅仅只是为了方便初学者理解rawdevice的使用过程,请勿用于生产环境。 // 查看当前lv的配置情况 [root@projectm rules.d]# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert pkges ext -wi-ao 16.00G lv_test_dbf system -wi-a- 64.00M oracle system -wi-ao 37.00G root system -wi-ao 6.78G swap system -wi-ao 1.00G // 查看当前主机的vg [root@projectm rules.d]# vgs VG #PV #LV #SN Attr VSize VFree ext 1 1 0 wz--n- 16.00G 0 system 6 4 0 wz--n- 55.62G 10.78G // 创建100M大小的一个逻辑卷。生产环境中此处应该是存储划拨的磁盘,使用逻辑卷只是为了方便获取和展示。 // 事实上,lv是可以直接添加为数据文件来使用的,这里不验证,有兴趣自行验证。 [root@projectm rules.d]# lvcreate -L +100M -n lv_create4raw system; Rounding up size to full physical extent 128.00 MB Logical volume "lv_create4raw" created // 查看当前现有的所有rawdevices [root@projectm rules.d]# raw -aq // 绑定rawdevice [root@projectm rules.d]# raw /dev/raw/raw1 /dev/mapper/system-lv_create4raw /dev/raw/raw1: bound to major 253, minor 5 // 查看rawdevice绑定情况 [root@projectm rules.d]# raw -aq /dev/raw/raw1: bound to major 253, minor 5 // 查看rawdevice文件对象,由于该裸设备将交予oracle使用,所以你需要修改一下权限。 [root@projectm rules.d]# ls -lrt /dev/raw/raw1 crw------- 1 root root 162, 1 Aug 11 18:29 /dev/raw/raw1 // 此修改权限及绑定rawdevice的方式在Linux中只是此次开机有效,重启以后需要重新赋权。 // 该方式已经淘汰,勿用于生产,生产中目前使用udev方式通过识别uuid来绑定设备。 [root@projectm rules.d]# id oracle uid=1987(oracle) gid=1987(dba) groups=1987(dba) [root@projectm rules.d]# chown oracle:dba /dev/raw/raw1 [root@projectm rules.d]# chmod 660 /dev/raw/raw1 [root@projectm rules.d]# ls -lrt /dev/raw/raw1 crw-rw---- 1 oracle dba 162, 1 Aug 11 18:29 /dev/raw/raw1 // 登录oracle用户使用rawdevices [root@projectm rules.d]# su - oracle // 查看当前运行的oracle实例。这是我的实验机,上面同时安装有9i, 10g, 11g, 12c。 // 为了方便区分环境我分别编写了.profile_9i, .profile_10g, .profile_11g, .profile_12c。 // 生产环境中请使用.profile 或者 .bash_profile(请根据不同系统确认使用哪个)。 // 只有这两个文件中的配置会自动加载, 因此我自定义的4个需要手动加载,以下你会看到。 [oracle@projectm ~]$ ps -ef | grep smon oracle 4436 1 0 10:19 ? 00:00:00 ora_smon_orcl12c oracle 4610 4581 0 18:31 pts/0 00:00:00 grep smon [oracle@projectm ~]$ . .profile_12c // 加载12c的环境变量 [oracle@projectm ~]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Thu Aug 11 18:31:19 2016 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options // 创建表空间并以rawdevice为数据文件,由于rawdevice大小是固定的,你可以不指定size,如果报错请补上。 I am sys@ORCL12C> create tablespace raw_tbs datafile '/dev/raw/raw1' size 100M; Tablespace created. // 查看是否创建成功 I am sys@ORCL12C> select file_name from dba_data_files where tablespace_name='RAW_TBS'; FILE_NAME ----------------------------------------- /dev/raw/raw1 // 在基于rawdevice的表空间上正常地创建表 I am sys@ORCL12C> create table raw_tab1 (id number, text varchar2(8)) tablespace raw_tbs; Table created. // 以正常的方式插入数据 I am sys@ORCL12C> insert into raw_tab1 values(1,'Yeah'); 1 row created. I am sys@ORCL12C> commit; Commit complete. // 验证数据插入情况 I am sys@ORCL12C> select * from raw_tab1; ID TEXT ---------- -------- 1 Yeah // 删除表 I am sys@ORCL12C> drop table raw_tab1 purge; Table dropped. // 删除表空间及表空间中的数据及数据文件 I am sys@ORCL12C> drop tablespace raw_tbs including contents and datafiles; Tablespace dropped. I am sys@ORCL12C> // 解绑刚刚创建的rawdevice,0是个强大的破坏者。 [root@projectm rules.d]# raw /dev/raw/raw1 0 0 /dev/raw/raw1: bound to major 0, minor 0 // 确认解绑 [root@projectm rules.d]# raw -aq // 删除lv, 此种访问lv的路径与此前提到的是等价的。 [root@projectm rules.d]# lvremove /dev/system/lv_create4raw Do you really want to remove active logical volume lv_create4raw? [y/n]: y Logical volume "lv_create4raw" successfully removed [root@projectm rules.d]# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert pkges ext -wi-ao 16.00G lv_test_dbf system -wi-a- 64.00M oracle system -wi-ao 37.00G root system -wi-ao 6.78G swap system -wi-ao 1.00G // 系统各项配置已还原,实验结束。 |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25521690/viewspace-2123374/ ,如需转载,请注明出处,否则将追究法律责任。