1、*nux 上使用裸设备创建 Oracle DB 1使用裸设备创建 Oracle DBBy OwenSr.Oracle Administrato*nux 上使用裸设备创建 Oracle DB 2历史版本记录版本 时间 备注V1.0 2011-9-2 初稿 *nux 上使用裸设备创建 Oracle DB 3目 录*nix 上使用裸设备创建 Oracle DB1第一章 Linux 上使用裸设备创建 Oracle DB 31、存储管理基本概念 32、使用裸设备创建 DB.32.1 修改文件系统权限 32.2 磁盘分区创建 PV .32.3 创建 VG 42.3 创建 LV .42.4 创建裸设备 42
2、.5 系统重启自动挂载 raw .52.5 修改 raw 的权限 optional52.6 创建 oracle 数据文件 .62.7 创建 oracle 文件的映射关系配置文件 .6第二章 AIX 上使用裸设备创建 Oracle DB 71、创建 PV.72、创建 LV .73、创建裸设备和 oracle 数据文件的映射文件 .84、修改/dev/r* 的属性 85、创建数据库链接文件 96、编辑.profile 文件 97、使用 DBCA 建库 .9*nux 上使用裸设备创建 Oracle DB 4第一章 Linux 上使用裸设备创建 Oracle DB1、存储管理基本概念磁盘物理卷 PV:
3、可以是一个单独的磁盘也可以使个逻辑上的集合。VG/PE:卷组的基本单位是 PE。LV/LE:在卷组中创建逻辑卷,逻辑卷的基本单位是 LE2、使用裸设备创建 DB2.1 修改文件系统权限由于系统重启后,raw 的属组会改变,所以需要修改以下文件的内容vi /etc/udev/permissions.d/50-udev.permissions 一下内容:先修改这一块。可以避免后续修改权限那一步,免去 chown 的麻烦。# raw devicesram*:root:disk:0660raw/*:oracle10:oracle10:07772.2 磁盘分区创建 PVFdisk l 查看分区Fdisk
4、 /dev/sdb 设备分区命令,根据提示一步一步做。Pvcreate 在分区的基础上创建物理卷 PVrootprimary dev# fdisk -lDisk /dev/sda: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/sda1 * 1 918 7373803+ 83 Linux/dev/sda2 919 2320
5、11261565 83 Linux/dev/sda3 2321 2580 2088450 82 Linux swap*nux 上使用裸设备创建 Oracle DB 5Disk /dev/sdb: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/sdb1 1 1025 8233281 83 Linux/dev/sdb2 1026
6、 1150 1004062+ 83 Linux/dev/sdb3 1151 1200 401625 83 Linuxrootprimary dev# pvcreate /dev/sdb1 /dev/sdb22.3 创建 VGVgcreate vgname pvname 在 PV 的基础上创建卷组rootprimary dev# vgcreate datavg /dev/sdb1 /dev/sdb2Volume group “datavg“ successfully created2.3 创建 LVlvcreate n lvname L size vgname 在 vg 中创建逻辑卷可以写成 s
7、hell 脚本,批量执行。lvcreate -n system -L 512m datavglvcreate -n sysaux -L 512m datavglvcreate -n users -L 512m datavglvcreate -n undotbs1 -L 512m datavglvcreate -n temp -L 512m datavglvcreate -n spfile -L 2m datavglvcreate -n control1 -L 12m datavglvcreate -n control2 -L 12m datavglvcreate -n control3 -L
8、12m datavglvcreate -n redo1 -L 64m datavglvcreate -n redo2 -L 64m datavglvcreate -n redo3 -L 64m datavg这一创建完成后,可在/dev/datavg 和/dev/mapper 下查看到新创建的 lv 信息。删除 lv 的命令:Lvremove /dev/datavg/system2.4 创建裸设备Raw /dev/raw/rawx /dev/mapper/datavg-xxxxx同上,可以写在 shell 脚本中,批量执行。注意:由于 2.1 步修改了 raw 的属组,所以这里创建的裸设备属组已
9、经是设置好的了。raw /dev/raw/raw1 /dev/mapper/datavg-control1*nux 上使用裸设备创建 Oracle DB 6raw /dev/raw/raw2 /dev/mapper/datavg-control2raw /dev/raw/raw3 /dev/mapper/datavg-control3raw /dev/raw/raw4 /dev/mapper/datavg-redo1raw /dev/raw/raw5 /dev/mapper/datavg-redo2raw /dev/raw/raw6 /dev/mapper/datavg-redo3raw /d
10、ev/raw/raw7 /dev/mapper/datavg-spfileraw /dev/raw/raw8 /dev/mapper/datavg-sysauxraw /dev/raw/raw9 /dev/mapper/datavg-systemraw /dev/raw/raw10 /dev/mapper/datavg-tempraw /dev/raw/raw11 /dev/mapper/datavg-undotbs1raw /dev/raw/raw12 /dev/mapper/datavg-users如果想去除创建的 raw:Raw /dev/raw/raw? 0 02.5 系统重启自动挂载
11、 raw修改/etc/sysconfig/rawdevices 文件,以使系统重启后可以自动挂载裸设备/dev/raw/raw1 /dev/mapper/oradata-system01 如此的格式偷懒的做法,从 2.4 的 shell 中直接生成如下脚本即可cat mkraws | awk print $2 “t“ $3/etc/sysconfig/rawdevices/dev/raw/raw1 /dev/mapper/datavg-control1/dev/raw/raw2 /dev/mapper/datavg-control2/dev/raw/raw3 /dev/mapper/datav
12、g-control3/dev/raw/raw4 /dev/mapper/datavg-redo1/dev/raw/raw5 /dev/mapper/datavg-redo2/dev/raw/raw6 /dev/mapper/datavg-redo3/dev/raw/raw7 /dev/mapper/datavg-spfile/dev/raw/raw8 /dev/mapper/datavg-sysaux/dev/raw/raw9 /dev/mapper/datavg-system/dev/raw/raw10 /dev/mapper/datavg-temp/dev/raw/raw11 /dev/m
13、apper/datavg-undotbs1/dev/raw/raw12 /dev/mapper/datavg-users2.5 修改 raw 的权限 optional在 linux 中,会在/dev 下存在 3 个目录: /dev/raw/裸设备目录 /dev/mapper/裸设备对应的块设备目录 /dev/datavg/裸设备和块设备的链接文件目录修改以上三个目录的权限后,oracle 方能使用。由于第 2.1 步已经做了,此处就不需要执行了,如果权限不正确,可以将/dev/raw/ 下的裸设备文件属组修改为 oracle 的,其他两个目录可以不做修改。*nux 上使用裸设备创建 Oracl
14、e DB 72.6 创建 oracle 数据文件创建 oracle 的数据文件和参数文件,软链接文件,对应到每一个裸设备文件。编辑 oracl 文件和 raw 的映射文件,批量处理ln -s /dev/raw/raw1 /u01/app/oracle/oradata/orcl/control1.ctlln -s /dev/raw/raw2 /u01/app/oracle/oradata/orcl/control2.ctlln -s /dev/raw/raw3 /u01/app/oracle/oradata/orcl/control3.ctlln -s /dev/raw/raw4 /u01/ap
15、p/oracle/oradata/orcl/redo1.logln -s /dev/raw/raw5 /u01/app/oracle/oradata/orcl/redo5.logln -s /dev/raw/raw6 /u01/app/oracle/oradata/orcl/redo6.logln -s /dev/raw/raw7 /u01/app/oracle/product/10.2.0/db_1/dbs/spfileorcl.oraln -s /dev/raw/raw8 /u01/app/oracle/oradata/orcl/sysaux.dbfln -s /dev/raw/raw9
16、/u01/app/oracle/oradata/orcl/system.dbfln -s /dev/raw/raw10 /u01/app/oracle/oradata/orcl/temp.dbfln -s /dev/raw/raw11 /u01/app/oracle/oradata/orcl/undotbs1.dbfln -s /dev/raw/raw12 /u01/app/oracle/oradata/orcl/users.dbf2.7 创建 oracle 文件的映射关系配置文件编辑 mapper 文件,在 DBCA 时指定 raw devices 可以使用,方便之举。如果不这样做也可以,那
17、就一个一个去指定,比较麻烦。control1=/u01/app/oracle/oradata/orcl/control1.ctlcontrol2= /u01/app/oracle/oradata/orcl/control2.ctlcontrol3=/u01/app/oracle/oradata/orcl/control3.ctlredo1_1=/u01/app/oracle/oradata/orcl/redo1.logredo1_2=/u01/app/oracle/oradata/orcl/redo5.logredo1_3=/u01/app/oracle/oradata/orcl/redo6.
18、logspfile=/u01/app/oracle/product/10.2.0/db_1/dbs/spfileorcl.orasysaux=/u01/app/oracle/oradata/orcl/sysaux.dbfsystem=/u01/app/oracle/oradata/orcl/system.dbftemp=/u01/app/oracle/oradata/orcl/temp.dbfundotbs1=/u01/app/oracle/oradata/orcl/undotbs1.dbfusers=/u01/app/oracle/oradata/orcl/users.dbf*nux 上使用
19、裸设备创建 Oracle DB 8第二章 AIX 上使用裸设备创建 Oracle DB1、创建 PVOWEN52A:root:/home/test#lspvhdisk0 00c02a7abb90603a rootvg activehdisk1 00c02a7abba74bba None hdisk2 00c02a7abba75c17 None OWEN52A:root:/home/test#mkvg -y datavg -s 128 -f hdisk1datavgOWEN52A:root:/home/test#lsvg -odatavgrootvgOWEN52A:root:/home/test
20、#lsvg datavgVOLUME GROUP: datavg VG IDENTIFIER: 00c02a7a00004c000000013227d603a7VG STATE: active PP SIZE: 128 megabyte(s)VG PERMISSION: read/write TOTAL PPs: 546 (69888 megabytes)MAX LVs: 256 FREE PPs: 546 (69888 megabytes)LVs: 0 USED PPs: 0 (0 megabytes)OPEN LVs: 0 QUORUM: 2 (Enabled)TOTAL PVs: 1 V
21、G DESCRIPTORS: 2STALE PVs: 0 STALE PPs: 0ACTIVE PVs: 1 AUTO ON: yesMAX PPs per VG: 32512 MAX PPs per PV: 1016 MAX PVs: 32LTG size (Dynamic): 256 kilobyte(s) AUTO SYNC: noHOT SPARE: no BB POLICY: relocatable2、创建 LV使用未格式化类型 raw 创建的逻辑卷。编辑如下 shell 脚本mklv -y system -t raw datavg 10mklv -y sysaux -t raw d
22、atavg 5mklv -y users -t raw datavg 3mklv -y undotbs -t raw datavg 3mklv -y temp -t raw datavg 3mklv -y example -t raw datavg 3mklv -y control1 -t raw datavg 3mklv -y control2 -t raw datavg 3*nux 上使用裸设备创建 Oracle DB 9mklv -y control3 -t raw datavg 3mklv -y spfile -t raw datavg 1mklv -y redo -t raw dat
23、avg 4mklv -y redo2 -t raw datavg 43、创建裸设备和 oracle 数据文件的映射文件Dbca 的时候用此文件建立 raw 和 oracle 数据文件的对应关系。OWEN52A:root:/home/test#cat raw_mpsystem=/oracle/oradata/oral/system01.dbfsysaux=/oracle/oradata/oral/sysaux01.dbfusers=/oracle/oradata/oral/users01.dbfundotbs1=/oracle/oradata/oral/undotbs01.dbftemp=/or
24、acle/oradata/oral/temp01.dbfcontrol1=/oracle/oradata/oral/control01.ctlcontrol2=/oracle/oradata/oral/control02.ctlcontrol3=/oracle/oradata/oral/control03.ctlredo1_1=/oracle/oradata/oral/redo01.logredo1_2=/oracle/oradata/oral/redo02.logexample=/oracle/oradata/oral/example01.dbf spfile=/oracle/product
25、/10.2.0/dbs/spfileoral.ora4、修改/dev/r*的属性这一步修改/dev/下裸设备文件,对应的块设备不修改。chown oracle:oinstall /dev/rsystemchown oracle:oinstall /dev/rsysauxchown oracle:oinstall /dev/ruserschown oracle:oinstall /dev/rundotbschown oracle:oinstall /dev/rtempchown oracle:oinstall /dev/rexamplechown oracle:oinstall /dev/rco
26、ntrol1chown oracle:oinstall /dev/rcontrol2chown oracle:oinstall /dev/rcontrol3chown oracle:oinstall /dev/rspfilechown oracle:oinstall /dev/rredochown oracle:oinstall /dev/rredo2生成上面文件内容的步骤:OWEN52A:root:/home/test#lsvg -l datavg | awk print $1chownsofrawdatavg:LVsystem*nux 上使用裸设备创建 Oracle DB 10sysaux
27、usersundotbstempexamplecontrol1control2control3spfileredoredoOWEN52A:root:/home/test#vi chownsofrawVi 中使用以下命令在行首添加 chown oracle:oinstall /dev/r:1,$s/chown oracle:oinstall /dev/r/g5、创建数据库链接文件此处创建的数据库文件对应到每一个裸设备文件。注意编辑好文件后,切到 oracle 用户下执行,免去修改权限的麻烦。ln -s /dev/rsystem /oracle/oradata/oral/system01.dbfl
28、n -s /dev/rsysaux /oracle/oradata/oral/sysaux01.dbfln -s /dev/rusers /oracle/oradata/oral/users01.dbfln -s /dev/rundotbs /oracle/oradata/oral/undotbs01.dbfln -s /dev/rtemp /oracle/oradata/oral/temp01.dbfln -s /dev/rcontrol1 /oracle/oradata/oral/control01.ctlln -s /dev/rcontrol2 /oracle/oradata/oral/
29、control02.ctlln -s /dev/rcontrol3 /oracle/oradata/oral/control03.ctlln -s /dev/rredo /oracle/oradata/oral/redo01.logln -s /dev/rredo2 /oracle/oradata/oral/redo02.logln -s /dev/rexample /oracle/oradata/oral/example01.dbf ln -s /dev/rspfile /oracle/product/10.2.0/dbs/spfileoral.ora6、编辑.profile 文件补充一下内
30、容,不配置也可以。export DBCA_CONFIG=/home/oracle/raw_mp7、使用 DBCA 建库这一步所谓艰辛啊!试了很多次,报了很多错误。第一个:ora-09925 Unable to create audit trail file*nux 上使用裸设备创建 Oracle DB 11第二个:ORA-01503: CREATE CONTROLFILE failedORA-01565: error in identifying file /dev/rsystemORA-27047: unable to read the header block of fileAdditional information: 2最终发现问题在于:由于是一个旧库,不知道谁改的,害人啊OWEN52A:oracle:/oracle/product/10.2.0/rdbms$lltotal 136drwxr-xr-x 2 oracle oinstall 40960 Sep 26 2010 admindrwxr-xr-x 2 oracle oinstall 256 Sep 26 2010 autid_bak这块应该是 audit执行命令:Cp r autid_bak audit重新 dbca 后正常!