对我认真的人,我会加倍珍惜
分类: Oracle
2015-01-22 16:40:55
Linux
下使用裸设备创建
oracle
表空间
1.
环境
?
系统环境
[root@node1 ~]# uname
–
a
Linux node1 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:43 EDT 2010 i686 i686 i386
GNU/Linux
[root@node1 ~]# more /etc/redhat-release
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
[root@node1 ~]#
?
oracle
环境
SQL> select * from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE
11.2.0.1.0
Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0
–
Production
2.
查看磁盘
[root@node1 ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot
Start
End
Blocks
Id
System
/dev/sda1
*
1
13
104391
83
Linux
/dev/sda2
14
2610
20860402+
8e
Linux LVM
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot
Start
End
Blocks
Id
System
/dev/sdb1
1
2610
20964793+
83
Linux
Disk /dev/sdc: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdc doesn't contain a valid partition table
3.
给
/dev/sdc
划分一个
1g
的分区
用作裸设备
[root@node1 ~]# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Linux
下使用裸设备创建
oracle
表空间
第
2
页
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
The number of cylinders for this disk is set to 1044.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): m
Command action
a
toggle a bootable flag
b
edit bsd disklabel
c
toggle the dos compatibility flag
d
delete a partition
l
list known partition types
m
print this menu
n
add a new partition
o
create a new empty DOS partition table
p
print the partition table
q
quit without saving changes
s
create a new empty Sun disklabel
t
change a partition's system id
u
change display/entry units
v
verify the partition table
w
write table to disk and exit
x
extra functionality (experts only)
Command (m for help): n
Command action
e
extended
p
primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044):
+1024M
Command (m for help): p
Disk /dev/sdc: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Linux
下使用裸设备创建
oracle
表空间
第
3
页
Device Boot
Start
End
Blocks
Id
System
/dev/sdc1
1
125
1004031
83
Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
4.
修改
/etc/udev/rules.d/60-raw.rules
文件
[root@node1 ~]# vi /etc/udev/rules.d/60-raw.rules
# Enter raw device bindings here.
#
# An example would be:
#
ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"
# to bind /dev/raw/raw1 to /dev/sda, or
#
ACTION=="add",
ENV{MAJOR}=="8",
ENV{MINOR}=="1",
RUN+="/bin/raw /dev/raw/raw2 %M %m"
# to bind /dev/raw/raw2 to the device with major 8, minor 1.
ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add",
ENV{MAJOR}=="3",
ENV{MINOR}=="1",
RUN+="/bin/raw
/dev/raw/raw1 %M %m"
ACTION=="add",
ENV{MAJOR}=="7",
ENV{MINOR}=="1",
RUN+="/bin/raw
/dev/raw/raw2 %M %m"
5.
启动裸设备
[root@node1 ~]# start_udev
Starting udev:
[
OK
]
[root@node1 ~]#
6.
修改裸设备的权限
[root@node1 ~]# raw -qa
/dev/raw/raw1:
bound to major 8, minor 33
/dev/raw/raw2:
bound to major 8, minor 34
[root@node1 ~]# cd /dev/raw
[root@node1 raw]# ls -l
total 0
crw------- 1 root root 162, 1 Apr
7 18:03 raw1
crw------- 1 root root 162, 2 Apr
7 18:03 raw2
[root@node1 raw]# chown oracle:oinstall raw1
[root@node1 raw]# chown oracle:oinstall raw2
[root@node1 raw]# chmod 775 raw1 raw2
Linux
下使用裸设备创建
oracle
表空间
第
4
页
[root@node1 raw]# ls -l
total 0
crwxrwxr-x 1 oracle oinstall 162, 1 Apr
7 18:03 raw1
crwxrwxr-x 1 oracle oinstall 162, 2 Apr
7 18:03 raw2
7.
查看裸设备的可用空间
[root@node1 raw]# blockdev --getsize /dev/raw/raw1
2008062
[root@node1 raw]# blockdev --getsize /dev/raw/raw2
2008125
2008125*512/1024/1024=980M
8.
在
oracle
中添加裸设备为数据文件的表空间
SQL> create tablespace
tbs_raw
datafile
'/dev/raw/raw1'
size 950m;
Tablespace created