我是靠谱客的博主 和谐西装,最近开发中收集的这篇文章主要介绍linux裸设备建表空间,Linux下基于裸设备创建10g数据库,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近打算研究一下裸设备,于是在linux下测试了一下基于裸设备创建数据库看。以下是简单步骤:

一、分区

分区的步骤不说了,把硬盘分为如下几个区:

[root@suk1 ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 4294 MB, 4294967296 bytes

255 heads, 63 sectors/track, 522 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sdb1 1 44 353398+ 83 Linux

/dev/sdb2 45 69 200812+ 83 Linux

/dev/sdb3 70 88 152617+ 83 Linux

/dev/sdb4 89 522 3486105 5 Extended

/dev/sdb5 89 101 104391 83 Linux

/dev/sdb6 102 114 104391 83 Linux

/dev/sdb7 115 117 24066 83 Linux

/dev/sdb8 118 120 24066 83 Linux

/dev/sdb9 121 127 56196 83 Linux

/dev/sdb10 128 134 56196 83 Linux

2、绑定裸设备

绑定裸设备有两种方式

1)用命令绑定

[root@suk1 raw]# raw /dev/raw/raw1 /dev/sdb1

/dev/raw/raw1: bound to major 8, minor 17

[root@suk1 raw]# raw /dev/raw/raw2 /dev/sdb2

/dev/raw/raw2: bound to major 8, minor 18

[root@suk1 raw]# raw /dev/raw/raw3 /dev/sdb3

/dev/raw/raw3: bound to major 8, minor 19

[root@suk1 raw]# raw /dev/raw/raw5 /dev/sdb5

/dev/raw/raw5: bound to major 8, minor 21

[root@suk1 raw]# raw /dev/raw/raw6 /dev/sdb6

/dev/raw/raw6: bound to major 8, minor 22

[root@suk1 raw]# raw /dev/raw/raw7 /dev/sdb7

/dev/raw/raw7: bound to major 8, minor 23

[root@suk1 raw]# raw /dev/raw/raw8 /dev/sdb8

/dev/raw/raw8: bound to major 8, minor 24

[root@suk1 raw]# raw /dev/raw/raw9 /dev/sdb9

/dev/raw/raw9: bound to major 8, minor 25

[root@suk1 raw]# raw /dev/raw/raw10 /dev/sdb10

/dev/raw/raw10: bound to major 8, minor 26

[root@suk1 raw]# raw -qa

/dev/raw/raw1: bound to major 8, minor 17

/dev/raw/raw2: bound to major 8, minor 18

/dev/raw/raw3: bound to major 8, minor 19

/dev/raw/raw5: bound to major 8, minor 21

/dev/raw/raw6: bound to major 8, minor 22

/dev/raw/raw7: bound to major 8, minor 23

/dev/raw/raw8: bound to major 8, minor 24

/dev/raw/raw9: bound to major 8, minor 25

/dev/raw/raw10: bound to major 8, minor 26

注意:

/dev/sdb4是扩展分区,不要把裸设备绑定到那个分区上。

这种方式绑定的裸设备在OS重启后会失效,为了你重启后仍然生效,你可以修改/etc/rc.local文件,将如下内容加入到/etc/rc.local文件中:

raw /dev/raw/raw1 /dev/sdb1

raw /dev/raw/raw2 /dev/sdb2

raw /dev/raw/raw3 /dev/sdb3

raw /dev/raw/raw5 /dev/sdb5

raw /dev/raw/raw6 /dev/sdb6

raw /dev/raw/raw7 /dev/sdb7

raw /dev/raw/raw8 /dev/sdb8

raw /dev/raw/raw9 /dev/sdb9

raw /dev/raw/raw10 /dev/sdb10

这种方式实际上就是在开机的时候执行/etc/rc.local文件里的raw命令进行绑定的。

2)用服务的方式绑定

修改/etc/sysconfig/rawdevices文件如下,以开机时自动加载裸设备

/dev/raw/raw1 /dev/sdb1

/dev/raw/raw2 /dev/sdb2

/dev/raw/raw3 /dev/sdb3

/dev/raw/raw5 /dev/sdb5

/dev/raw/raw6 /dev/sdb6

/dev/raw/raw7 /dev/sdb7

/dev/raw/raw8 /dev/sdb8

/dev/raw/raw9 /dev/sdb9

/dev/raw/raw10 /dev/sdb10

然后启动服务:

[root@suk1 raw]# service rawdevices start

[root@suk1 raw]# service rawdevices start

Assigning devices:

/dev/raw/raw1 --> /dev/sdb1

/dev/raw/raw1: bound to major 8, minor 17

/dev/raw/raw2 --> /dev/sdb2

/dev/raw/raw2: bound to major 8, minor 18

/dev/raw/raw3 --> /dev/sdb3

/dev/raw/raw3: bound to major 8, minor 19

/dev/raw/raw5 --> /dev/sdb5

/dev/raw/raw5: bound to major 8, minor 21

/dev/raw/raw6 --> /dev/sdb6

/dev/raw/raw6: bound to major 8, minor 22

/dev/raw/raw7 --> /dev/sdb7

/dev/raw/raw7: bound to major 8, minor 23

/dev/raw/raw8 --> /dev/sdb8

/dev/raw/raw8: bound to major 8, minor 24

/dev/raw/raw9 --> /dev/sdb9

/dev/raw/raw9: bound to major 8, minor 25

/dev/raw/raw10 --> /dev/sdb10

这种方式绑定的裸设备在OS重启后仍然生效。

3、修改裸设备的属主

修改裸设备的属主也有两种方式:

1)命令修改

命令修改很简单:

[root@suk1 raw]# chown oracle:oinstall /dev/raw/raw1

[root@suk1 raw]# chown oracle:oinstall /dev/raw/raw2

[root@suk1 raw]# chown oracle:oinstall /dev/raw/raw3

[root@suk1 raw]# chown oracle:oinstall /dev/raw/raw4

[root@suk1 raw]# chown oracle:oinstall /dev/raw/raw5

[root@suk1 raw]# chown oracle:oinstall /dev/raw/raw6

[root@suk1 raw]# chown oracle:oinstall /dev/raw/raw7

[root@suk1 raw]# chown oracle:oinstall /dev/raw/raw8

[root@suk1 raw]# chown oracle:oinstall /dev/raw/raw9

[root@suk1 raw]# chown oracle:oinstall /dev/raw/raw10

由于/dev下的文件都是动态建立的,所以在OS重启后,属主仍会变成root:disk,要解决这个问题,可以把上面的命令写入到/etc/rc.local文件中:

chown oracle:oinstall /dev/raw/raw1

chown oracle:oinstall /dev/raw/raw2

chown oracle:oinstall /dev/raw/raw3

chown oracle:oinstall /dev/raw/raw4

chown oracle:oinstall /dev/raw/raw5

chown oracle:oinstall /dev/raw/raw6

chown oracle:oinstall /dev/raw/raw7

chown oracle:oinstall /dev/raw/raw8

chown oracle:oinstall /dev/raw/raw9

chown oracle:oinstall /dev/raw/raw10

这样每次开机后可以重新改变属主。

2)修改/etc/udev/permissions.d/50-udev.permissions文件

将/etc/udev/permissions.d/50-udev.permissions的113行

raw/*:root:disk:0660

修改为

raw/*:oracle:oinstall:0660

这个的意思是修改裸设备的默认属主为oracle:oinstall,默认的mode是0660。

重启OS检验。

4、创建符号链接

这一步可以省略,但是为了更直观些,建议建立软链接

[oracle@suk1 ~]$ cd $ORACLE_BASE

[oracle@suk1 oracle]$ ls

oraInventory product

[oracle@suk1 oracle]$ mkdir -p oradata/test1

[oracle@suk1 oracle]$ cd oradata/test1

[oracle@suk1 oradata]$ ln -s /dev/raw/raw1 system01.dbf

[oracle@suk1 oradata]$ ln -s /dev/raw/raw2 undotbs01.dbf

[oracle@suk1 oradata]$ ln -s /dev/raw/raw3 sysaux01.dbf

[oracle@suk1 oradata]$ ln -s /dev/raw/raw5 users01.dbf

[oracle@suk1 oradata]$ ln -s /dev/raw/raw6 temp01.dbf

[oracle@suk1 oradata]$ ln -s /dev/raw/raw7 control01.ctl

[oracle@suk1 oradata]$ ln -s /dev/raw/raw8 control02.ctl

[oracle@suk1 oradata]$ ln -s /dev/raw/raw9 redo01.ora

[oracle@suk1 oradata]$ ln -s /dev/raw/raw10 redo02.ora

5、创建数据库

启动dbca,选择创建数据库

下一步,选择创建customer 数据库,

下一步,输入SID,

......

下一步,在存储选项页,选择裸设备,

......

下一步,在选择参数页面,选择字符集;初始化文件选择init文件,同时在这个界面点击《所有初始化参数》,在弹出的界面修改控制文件参数为:

/opt/oracle/oradata/test1/control01.ctl,

/opt/oracle/oradata/test1/control02.ctl

下一步,在这一步,只保留两个控制文件、两组联机日志,确认表空间对应的数据文件的名称为刚才创建的对应的符号链接;并确定创建的数据文件、日志文件比对应的裸设备小(为了简单起见,统一设置为小1M)

下一步,开始创建数据库。

不出意外,一段时间后,数据库就可以安装完成。

纵观整个过程,基于裸设备创建数据库最重要的步骤是如何规划裸设备,如果裸设备设置过大,浪费空间,如果过小,安装就会失败。

最后

以上就是和谐西装为你收集整理的linux裸设备建表空间,Linux下基于裸设备创建10g数据库的全部内容,希望文章能够帮你解决linux裸设备建表空间,Linux下基于裸设备创建10g数据库所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部