oracle中的裸设备指的是什么

合集下载

Oracle 文件系统复制到裸设备

Oracle 文件系统复制到裸设备

一、在VG中创建LV,以HPUX为例:
1、创建大小为1.5G名称为test在VG00下的逻辑卷
2、修改逻辑卷的属主为ORACLE
二、文件系统数据拷贝到裸设备
例如:我们本地INDEXTS表空间(文件系统)复制到刚刚建立的表空间TEST(裸设备下),其中表空间TEST下无数据。

三、进入RMAN利于RMAN中COPY命令拷贝数据文件
1、进入RMAN目标主机为本地,并将要复制的表空间修改为OFFLINE状态
2、查出你要拷贝表空间所用的数据文件位置(文件系统)
然后利用RMAN中COPY命令从文件系统拷贝到裸设备
RENAME表空间
修改表空间为online状态
最后检查一下我们表空间中数据
检查数据字典,看看是表空间是否用了我们新的数据文件(裸设备)
总结:
个人感觉利用RMAN备份要比操作系统命令DD简单并且不容易出错,操作过程要注意几点:
1、文件系统复制到裸设备,新建的裸设备一定要修改属主,不需要在裸设备上建立任何表
空间。

2、RMAN一定要连接到本地实例,如果是CATALOG库则采用非CATALOG模式连接。

3、复制完成别忘修改表空间所用数据文件。

OK了,以上过程是我在HPUX下完成用时1小时30分,仅供参考。

oracle 10g使用裸设备建实例

oracle 10g使用裸设备建实例

虽然oracle 11g已经发布了很多年了,不过世界主流的数据库仍然是10g。

为什么?稳定。

虽然11g以后已不支持裸设备这种存储了(自家ASM是王道),不过对于10g之前,尤其生产环境或RAC下,裸设备是首选,甚至是不二选择。

具体裸设备的特点大家可以去百度下,这里我就不详细说下。

当然不止oracle,其他的数据库,在非windows环境下,生产环境基本都是用裸设备的。

I/O性能提高20-40%,设备成本低廉,性能效果明显。

下面直接帖步骤:一、划分磁盘/dev/sba做linux及oracle软件的磁盘,另加一个/dev/sdb做裸设备。

当然裸设备划分好之后,大小不能再变的。

实例各个文件的大小划分:Device Boot Start End Blocks Id System/dev/sdb1 1 2 16033+ 83 Linux/dev/sdb2 3 4 16065 83 Linux/dev/sdb3 5 6 16065 83 Linux/dev/sdb4 7 6527 52379932+ 5 Extended/dev/sdb5 7 14 64228+ 83 Linux/dev/sdb6 15 22 64228+ 83 Linux/dev/sdb7 23 30 64228+ 83 Linux/dev/sdb8 31 280 2008093+ 83 Linux/dev/sdb9 281 530 2008093+ 83 Linux/dev/sdb10 531 780 2008093+ 83 Linux/dev/sdb11 781 1030 2008093+ 83 Linux/dev/sdb12 1031 1280 2008093+ 83 Linux/dev/sdb13 1281 1282 16033+ 83 Linux/dev/sdb14 1283 6527 42130431 83 Linux二、为裸设备建立映射关系raw /dev/raw/raw1 /dev/sdb1raw /dev/raw/raw2 /dev/sdb2raw /dev/raw/raw3 /dev/sdb3raw /dev/raw/raw4 /dev/sdb5raw /dev/raw/raw5 /dev/sdb6raw /dev/raw/raw6 /dev/sdb7raw /dev/raw/raw7 /dev/sdb8raw /dev/raw/raw8 /dev/sdb9raw /dev/raw/raw9 /dev/sdb10raw /dev/raw/raw10 /dev/sdb11raw /dev/raw/raw11 /dev/sdb12raw /dev/raw/raw12 /dev/sdb13raw /dev/raw/raw13 /dev/sdb14三、修改映射配制文件,防止重启无效vi /etc/sysconfig/rawdevices/dev/raw/raw2 /dev/sdb2/dev/raw/raw3 /dev/sdb3/dev/raw/raw4 /dev/sdb5/dev/raw/raw5 /dev/sdb6/dev/raw/raw6 /dev/sdb7/dev/raw/raw7 /dev/sdb8/dev/raw/raw8 /dev/sdb9/dev/raw/raw9 /dev/sdb10/dev/raw/raw10 /dev/sdb11/dev/raw/raw11 /dev/sdb12/dev/raw/raw12 /dev/sdb13/dev/raw/raw13 /dev/sdb14vi /etc/udev/rules.d/60-raw.rulesACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"ACTION=="add", KERNEL=="sdb5", RUN+="/bin/raw /dev/raw/raw4 %N"ACTION=="add", KERNEL=="sdb6", RUN+="/bin/raw /dev/raw/raw5 %N"ACTION=="add", KERNEL=="sdb7", RUN+="/bin/raw /dev/raw/raw6 %N"ACTION=="add", KERNEL=="sdb8", RUN+="/bin/raw /dev/raw/raw7 %N"ACTION=="add", KERNEL=="sdb9", RUN+="/bin/raw /dev/raw/raw8 %N"ACTION=="add", KERNEL=="sdb10", RUN+="/bin/raw /dev/raw/raw9 %N"ACTION=="add", KERNEL=="sdb11", RUN+="/bin/raw /dev/raw/raw10 %N" ACTION=="add", KERNEL=="sdb12", RUN+="/bin/raw /dev/raw/raw11 %N" ACTION=="add", KERNEL=="sdb13", RUN+="/bin/raw /dev/raw/raw12 %N" ACTION=="add", KERNEL=="sdb14", RUN+="/bin/raw /dev/raw/raw13 %N" ACTION=="add", KERNEL=="raw*", WNER=="oracle", GROUP=="dba", MODE=="0664"四、授权chmod 660 /dev/raw/raw1chown oracle:dba /dev/raw/raw1chmod 660 /dev/raw/raw2chown oracle:dba /dev/raw/raw2chmod 660 /dev/raw/raw3chown oracle:dba /dev/raw/raw3chmod 660 /dev/raw/raw4chown oracle:dba /dev/raw/raw4chmod 660 /dev/raw/raw5chown oracle:dba /dev/raw/raw5chmod 660 /dev/raw/raw6chown oracle:dba /dev/raw/raw6chmod 660 /dev/raw/raw7chown oracle:dba /dev/raw/raw7chmod 660 /dev/raw/raw8chown oracle:dba /dev/raw/raw8chown oracle:dba /dev/raw/raw9chmod 660 /dev/raw/raw10chown oracle:dba /dev/raw/raw10chmod 660 /dev/raw/raw11chown oracle:dba /dev/raw/raw11chmod 660 /dev/raw/raw12chown oracle:dba /dev/raw/raw12chmod 660 /dev/raw/raw13chown oracle:dba /dev/raw/raw13五、建立链接关系ln -s /dev/raw/raw1 /u02/oradata/sm803/control01ln -s /dev/raw/raw2 /u02/oradata/sm803/control02ln -s /dev/raw/raw3 /u02/oradata/sm803/control03ln -s /dev/raw/raw4 /u02/oradata/sm803/redo01ln -s /dev/raw/raw5 /u02/oradata/sm803/redo02ln -s /dev/raw/raw6 /u02/oradata/sm803/redo03ln -s /dev/raw/raw7 /u02/oradata/sm803/systemln -s /dev/raw/raw8 /u02/oradata/sm803/sysauxln -s /dev/raw/raw9 /u02/oradata/sm803/undotbs1ln -s /dev/raw/raw10 /u02/oradata/sm803/templn -s /dev/raw/raw11 /u02/oradata/sm803/usersln -s /dev/raw/raw12 /u02/oradata/sm803/spfileln -s /dev/raw/raw13 /u02/oradata/sm803/data1六、重启裸设备服务/sbin/service rawdevices restart七、创建连接关系,拱dbca使用,当然,下面的要用oracle用户登录了vi /home/oracle/dbca.confspfile = /u02/oradata/sm803/spfilesystem = /u02/oradata/sm803/systemsysaux = /u02/oradata/sm803/sysauxundotbs1= /u02/oradata/sm803/undotbs1data = /u02/oradata/sm803/data1temp = /u02/oradata/sm803/tempusers = /u02/oradata/sm803/usersredo1_1 = /u02/oradata/sm803/redo01redo1_2 = /u02/oradata/sm803/redo02redo1_3 = /u02/oradata/sm803/redo03control1 = /u02/oradata/sm803/control01control2 = /u02/oradata/sm803/control02control3 = /u02/oradata/sm803/control03七、启动DBCA,存储选项中选第3项,rac设备,使用我们提前规划好的连接关系选择创建的dbca.conf文件:后面的跟普通的文件系统一样,完成创建。

在裸设备和文件系统之间转换ORACLE数据

在裸设备和文件系统之间转换ORACLE数据
d.在未提到操作系统时,默认是AIX,OS_RESERVED_SIZE=4K
二、移动数据文件(DATAFILE)
2.1在裸设备上建立数据文件
用以下命令建立表空间:
SQL> CREATE TABLESPACE ts_test DATAFILE '/dev/rlv_data' SIZE 8180k;
SIZE指定的数值必须小于或等于8180k,否则语句将会失败:
1.2裸设备的可用空间
不同的UNIX对裸设备的管理不完全相同,特别要注意的是某些UNIX在每个裸设备的头部要保留一定的空间,应用程序在使用裸设备时不可以覆盖这一部分,否则会对裸设备造成损坏。所以一个裸设备的实际可用空间是分配给裸设备的空间再减去这部分操作系统保留空间。下面是常用UNIX的OS Reserved Size列表:
UNIXOS Reserved Size
----------------------------
SUN Solaris 0
HP-UX 0
IBM AIX 4k
Tru64 UNIX 64k
Linux 0
1.3 dd命令
UNIX上读写裸设备不能使用cp, cpio, tar等命令,必须用dd,下面是几个dd常用参数的简单说明,更详细的信息请参考UNIX使用手册或用命令man dd。
Windows512
SUN Solaris512
HP-UX1024
IBM AIX512
Compaq Tru64 UNIX1024
Linux512
3.2在文件系统和裸设备之间移动ONLINE REDO LOG
参见2.2拷贝DATAFILE的过程,唯一不同是要把DB_BLOCK_SIZE换成REDO_BLOCK_SIZE。另外,REDO LOG也可以不用dd进行拷贝,而采用删除重建的方法:

oracle常用SQL语句(汇总版)

oracle常用SQL语句(汇总版)

Oracle数据库常用sql语句ORACLE 常用的SQL语法和数据对象一.数据控制语句(DML) 部分1.INSER T (往数据表里插入记录的语句)INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……);INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名;字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个单引号''.字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验.日期字段的字段值可以用当前数据库的系统时间SYSDATE, 精确到秒或者用字符串转换成日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’)TO_DATE()还有很多种日期格式, 可以参看OR ACLE DOC.年-月-日小时:分钟:秒的格式YYYY-MM-DD HH24:MI:SSINSERT时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包.INSERT时如果要用到从1开始自动增长的序列号, 应该先建立一个序列号CREATE SEQUENCE 序列号的名称(最好是表名+序列号标记) INCREMENT BY 1 START WI TH 1 MAXVALUE 99999 CYCLE NOCACHE;其中最大的值按字段的长度来定, 如果定义的自动增长的序列号NUMBER(6) , 最大值为999999 INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL2.DELETE (删除数据表里记录的语句)DELETE FROM表名 WHERE 条件;注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused.如果确实要删除一个大表里的全部记录, 可以用TRUNCATE 命令, 它可以释放占用的数据块表空间TRUNCATE TABLE 表名;此操作不可回退.3.UPDATE (修改数据表里记录的语句)UPDATE表名SET 字段名1=值1, 字段名2=值2, …… WHERE 条件;如果修改的值N没有赋值或定义时, 将把原来的记录内容清为NULL, 最好在修改前进行非空校验;值N超过定义的长度会出错, 最好在插入前进行长度校验..注意事项:A. 以上SQL语句对表都加上了行级锁,确认完成后, 必须加上事物处理结束的命令COMMIT 才能正式生效,否则改变不一定写入数据库里.如果想撤回这些操作, 可以用命令ROLLBACK 复原.B. 在运行INSERT, DELETE 和UPDATE 语句前最好估算一下可能操作的记录范围,应该把它限定在较小(一万条记录) 范围内,. 否则ORACLE处理这个事物用到很大的回退段.程序响应慢甚至失去响应. 如果记录数上十万以上这些操作, 可以把这些SQL语句分段分次完成, 其间加上COMMIT 确认事物处理.二.数据定义(DDL) 部分1.CREATE (创建表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)ORACLE常用的字段类型有CHAR 固定长度的字符串VARCHAR2 可变长度的字符串NUMBER(M,N) 数字型M是位数总长度, N是小数的长度DATE 日期类型创建表时要把较小的不为空的字段放在前面, 可能为空的字段放在后面创建表时可以用中文的字段名, 但最好还是用英文的字段名创建表时可以给字段加上默认值, 例如DEFAUL T SYSDATE这样每次插入和修改时, 不用程序操作这个字段都能得到动作的时间创建表时可以给字段加上约束条件例如不允许重复UNIQUE, 关键字PRIMAR Y KEY2.AL TER (改变表, 索引, 视图等)改变表的名称AL TER TABLE 表名1 TO 表名2;在表的后面增加一个字段AL TER TABLE表名ADD 字段名字段名描述;修改表里字段的定义描述AL TER TABLE表名MODIFY字段名字段名描述;给表里的字段加上约束条件AL TER TABLE 表名ADD CONSTRAINT 约束名PRIMAR Y KEY (字段名);AL TER TABLE 表名ADD CONSTRAINT 约束名UNIQUE (字段名);把表放在或取出数据库的内存区AL TER TABLE 表名CACHE;AL TER TABLE 表名NOCACHE;3.DROP (删除表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)删除表和它所有的约束条件DROP TABLE 表名CASCADE CONSTRAINTS;4.TRUNCATE (清空表里的所有记录, 保留表的结构)TRUNCATE 表名;三.查询语句(SELECT) 部分SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 条件;字段名可以带入函数例如: COUNT(*), MIN(字段名), MAX(字段名), AVG(字段名), DISTINCT(字段名), TO_CHAR(DATE字段名,'YYYY-MM-DD HH24:MI:SS')NVL(EXPR1, EXPR2)函数解释:IF EXPR1=NULLRETURN EXPR2ELSERETURN EXPR1DECODE(AA﹐V1﹐R1﹐V2﹐R2....)函数解释:IF AA=V1 THEN RETURN R1IF AA=V2 THEN RETURN R2..…ELSERETURN NULLLPAD(char1,n,char2)函数解释:字符char1按制定的位数n显示,不足的位数用char2字符串替换左边的空位字段名之间可以进行算术运算例如: (字段名1*字段名1)/3查询语句可以嵌套例如: SELECT …… FROM(SELECT …… FROM表名1, [表名2, ……] WHERE 条件) WHERE 条件2;两个查询语句的结果可以做集合操作例如: 并集UNION(去掉重复记录), 并集UNION ALL(不去掉重复记录), 差集MINUS, 交集INTERSECT分组查询SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] GROUP BY字段名1[HAVING 条件] ;两个以上表之间的连接查询SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE表名1.字段名= 表名2. 字段名[ AND ……] ;SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE表名1.字段名= 表名2. 字段名(+) [ AND ……] ;有(+)号的字段位置自动补空值查询结果集的排序操作, 默认的排序是升序ASC, 降序是DESCSELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……]ORDER BY字段名1, 字段名2 DESC;字符串模糊比较的方法INSTR(字段名, ‘字符串’)>0字段名LIKE ‘字符串%’[‘%字符串%’]每个表都有一个隐含的字段ROWID, 它标记着记录的唯一性.四.ORACLE里常用的数据对象 (SCHEMA)1.索引(INDEX)CREATE INDEX 索引名ON 表名( 字段1, [字段2, ……] );AL TER INDEX 索引名REBUILD;一个表的索引最好不要超过三个(特殊的大表除外), 最好用单字段索引, 结合SQL语句的分析执行情况, 也可以建立多字段的组合索引和基于函数的索引ORACLE8.1.7字符串可以索引的最大长度为1578 单字节ORACLE8.0.6字符串可以索引的最大长度为758 单字节2.视图(VIEW)CREATE VIEW 视图名AS SELECT …. FROM …..;AL TER VIEW视图名COMPILE;视图仅是一个SQL查询语句, 它可以把表之间复杂的关系简洁化.3.同义词(SYNONMY)CREATE SYNONYM同义词名FOR 表名;CREATE SYNONYM同义词名FOR 表名@数据库链接名;4.数据库链接(DATABASE LINK)CREATE DATABASE LINK数据库链接名CONNECT TO 用户名IDENTIFIED BY 密码USING ‘数据库连接字符串’;数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样数据库全局名称可以用以下命令查出SELECT * FROM GLOBAL_NAME;查询远端数据库里的表SELECT …… FROM 表名@数据库链接名;五.权限管理(DCL) 语句1.GRANT 赋于权限常用的系统权限集合有以下三个:CONNECT(基本的连接), RESOURCE(程序开发), DBA(数据库管理)常用的数据对象权限有以下五个:ALL ON 数据对象名, SELECT ON 数据对象名, UPDATE ON 数据对象名, DELETE ON 数据对象名, INSER T ON 数据对象名, AL TER ON 数据对象名GRANT CONNECT, RESOURCE TO 用户名;GRANT SELECT ON 表名 TO 用户名;GRANT SELECT, INSERT, DELETE ON表名 TO 用户名1, 用户名2;2.REVOKE 回收权限REVOKE CONNECT, RESOURCE FROM 用户名;REVOKE SELECT ON 表名FROM 用户名;REVOKE SELECT, INSERT, DELETE ON表名FROM 用户名1, 用户名2;查询数据库中第63号错误:select orgaddr,destaddr from sm_histable0116 where error_code='63';查询数据库中开户用户最大提交和最大下发数:select MSISDN,TCOS,OCOS from ms_usertable;查询数据库中各种错误代码的总和:select error_code,count(*) from sm_histable0513 group by error_code orderby error_code;查询报表数据库中话单统计种类查询。

Unix裸设备在Oracle中的应用与研究

Unix裸设备在Oracle中的应用与研究
【 关键 词】裸 设备、 N X、 : U I 缓存
0 引 言 .
尽管 使 用 裸 设 备 存 在 一 些 弊 端 .但 在 以 下 的 情 况 下 应 该 选
, 裸 设 备 , 叫裸 分 区 ( 始 分 区 )是 一 种 没 有 经 过 格 式 化 , 择使 用裸 设 备 : 也 原 , ( ) 用 了 0 s 8) 1使 P (I。如 果 使 用 了 Oa l 行 服 务 器 选 项 , rc e并 不被 U i 通 过 文 件 系 统 来 读 取 的特 殊 字 符 设 备 。 不 经 过 文 件 n】 【 它 那 么 必 须 采用 裸 设 备 来 存 放 所 有 的 数 据 文 件 和 控 制 文件 ,并 重 系统 的缓 冲 . 由应 用 程 序 负 责 对 它 进 行 读 写操 作 。 因为 只 有 把 这些 文件 放 到裸 设 备 上 , 能 保 证 所 有 才 关 于 裸 设 备 对 0 A L 数 据 库 系 统 性 能 的 影 响 存 在 几 种 做 日志 文件 。 R CE r e实 c 这 nx操 不 同 的 观 点 。 一 种 观 点认 为 O A L R C E磁 盘 I 性 能 的 改 善 得 益 Oal 例 都 可 以读 取 这 个 数 据 库 的 文件 , 是 由 U i 作 系 / O 在 R L 9的 A A E C S来 消 除 于 裸 设 备 而 不 是 U I 文 件 系 统 :而 另 一 种 观 点 则 认 为裸 设 备 统 的 特性 决定 的 O C I R C中 提 供 了 O F NX 对 O C 性能提高的作用不大。 A E R L 8 中使 用裸 设 备 的 限 制 。 I ( )不 能 使 用 直 接 I 2 / O。 当 UN 操 作 系 统 不 提 供 通 过 X I 还 有 观 点 认 为 .使 用 裸 设 备 并 跳 过 u ̄ 文 件 缓 冲 能 使 t x i O C 磁 盘 I 性 能 提 高 5 2 % .但 这 些 数 据 并 不 能 够 准 U I A E R L , 0 % 0 N X文 件 系 统 使 用 直 接 I 的情 况 下 考 虑 使 用 裸 设 备 。 / O a 一 些 U I 主 机 提 供 了直 接 读 写 U I 文 件 系 统 的 内 . NX NX 确 反 映裸 设 备 能 比一 般 的文 件 系 统 获 得 更 多 的性 能 提 升 。在 生 产 系统中使用裸设备 , 有当磁盘 I 成为系统瓶颈 时 , 只 / O 系统 性 核 。 些 内核 的 特 点是 允 许 应 用 软 件 跳 过 U I O缓 存 机 制来 这 NXI / 提 高性 能 . 质 上相 当于 使 用 了裸 设 备 , 不 会 产 生 管 理 裸 设 备 实 但 能 才 能得 到实 质 的提 升 。 数 据 库 使 用 缓 存 来 管 理 对 大 批 量 实 时 数 据 的 访 问 。 很 多 带 来 的开 销 。O C 数 据 库 系 统从 60版 本 开 始 提 供 该 功 能 。 A E R L .

很详细的SUN Cluster for Oracle(裸设备)文档-FZPU双机维护文档

很详细的SUN Cluster for Oracle(裸设备)文档-FZPU双机维护文档

Fzpu双机维护文档一.磁盘资源维护1查看磁盘集信息root@web-db1 #metaset -s ora_data2.删除磁盘集ora_data中的磁盘资源d5root@web-db1 # metaset -s ora_data -d -f /dev/did/rdsk/d5-f 代表强制删除3. 添加磁盘d5资源到磁盘集ora_data中root@web-db1 # metaset -s ora_data -a /dev/did/rdsk/d54.磁盘集属主的切换metaset –s ora_data –t注:(关于磁盘集属主的问题,在哪台机器上创建先创建了磁盘集那个节点就默认为磁盘集的数组,在实施中如果还未对cluster配置资源,会发生节点不能对磁盘集设置和写入的问题,可以用命令在需要切换的节点上运行命令metaset –s ora_data –t 进行切换)5.删除磁盘集ora_data中的节点主机web-db2root@web-db1 # metaset -s ora_data -d -f -h web-db2-f 代表强制删除6. 添加节点主机web-db2到磁盘集ora_data中root@web-db1 # metaset -s ora_data -a (-M)-h web-db27.初始化d5、d6为metadevicesmetainit -s oracle-data d50 1 1 /dev/did/dsk/d5metainit -s oracle-data d60 1 1 /dev/did/dsk/d68. 切换磁盘集到节点web-db2root@web-db1 # scswitch -z -D ora_data -h web-db29. 查看metadevices信息root@web-db1 # metastat -s ora_data10. 查看软分区详细信息root@web-db1 # metastat -s ora_data d5111. 创建软分区root@web-db1 # metainit -s ora_data d51 -p d50 10g创建一个新的软分区的具体步骤:a.创建磁盘集ora_datametaset -s ora_data -a -h web-db1 web-db2b.将共享磁盘d4,d5 添加到磁盘集ora_data中metaset –s ora_data –a /dev/did/rdsk/d4s0metaset –s ora_data –a /dev/did/rdsk/d5s0c.初始化d4、d5为metadevicesmetainit -s oracle-data d50 1 1 /dev/did/dsk/d5metainit -s oracle-data d60 1 1 /dev/did/dsk/d6d..划分软分区metainit -s ora_data d401 -p d40 20mmetainit -s ora_data d402 -p d40 20mmetainit -s ora_data d403 -p d40 30Gmetainit -s ora_data d404 -p d40 30Gmetainit -s ora_data d405 -p d40 500mmetainit -s ora_data d406 -p d40 25mmetainit -s ora_data d407 -p d40 500mmetainit -s ora_data d408 -p d40 4Gmetainit -s ora_data d409 -p d40 1Ge.查看磁盘集ora_data状态root@web-db1 # metastat -s ora_dataf. 软分区的挂载以d421做为归档日志存放设备挂接到/mnt/arch为例metainit -s ora_data d421 -p d40 100Gnewfs /dev/m d/ora_data/dsk/d421mount –F ufs /dev/md/ora_data/dsk/d421 /mnt/arch注:(此时确保web-db1为磁盘集ora_data的属主)修改web-db1 和 web-db2的 /etc/vfstab,加入/dev/md/ora_data/dsk/d421 /dev/md/ora_data/rdsk/d421 /mnt/arch ufs 2 no logging12. 删除软分区root@web-db1 # metaclear -s ora_data -r d5113. 删除metadevices(d50)下的所有软分区(慎用)root@web-db1 # metaclear -s ora_data -p d5014.oracle RAC中创建多属主磁盘集失败root@web-db2 # metaset -s ora_data -M -a -h web-db1 web-db2metaset: web-db2: ora_data: node web-db1 is not in membership list原因:没有注册SUNW.rac_svm服务所致解决方法:1:注册服务root@web-db2 # scrgadm -a -t SUNW.rac_svm2:在每个节点上编辑/var/run/nodelist文件root@web-db2 #vi /var/run/nodelist1 web-db1 192.168.1.12 web-db2 192.168.1.215. 如何更改设备组所需的辅助节点数设备组辅助节点的缺省数设置为一。

RACforRHEL5裸设备

RACforRHEL5裸设备本文将介绍在裸设备上使用RACforRHEL5的步骤与注意事项。

什么是RACforRHEL5RACforRHEL5是一种在Linux系统上进行数据库集群部署的技术。

它使用Oracle RAC(Real Application Clusters)的技术来实现高可用、负载均衡和容错等特性,可以在多个节点上部署Oracle数据库服务,从而提高系统的可用性和性能。

如何在裸设备上使用RACforRHEL5以下是在裸设备上使用RACforRHEL5的步骤:第一步:确认硬件和软件条件在开始使用RACforRHEL5之前,您需要确认以下硬件和软件条件:1.至少两个服务器,每个服务器必须满足至少2个CPU、4GB内存和两个磁盘的要求;2.两个网卡连接到您的网络设备;3.至少两个空闲IP地址。

4.安装Oracle Database 11g Release 2软件包。

第二步:设置IP地址和主机名在您的网络管理设备中为节点设置静态IP地址,并将其主机名和IP地址加入到/etc/hosts文件中。

第三步:安装Oracle Database 11g Release 2在每个节点上,通过root用户安装Oracle Database 11g Release 2软件包,以供使用RACforRHEL5进行部署。

您可以从Oracle官方网站上下载软件,并根据文档进行安装。

第四步:创建共享存储使用共享存储是RACforRHEL5的一个重要组成部分。

在您的网络管理设备上创建共享存储,并将其从所有节点访问。

第五步:安装RACforRHEL5软件包在每个节点上,使用root权限安装RACforRHEL5软件包。

您可以从Oracle官方网站上下载软件,并根据文档进行安装。

第六步:配置RACforRHEL5在所有节点上,使用config.sh脚本来配置RACforRHEL5。

您需要提供一些必要的信息,例如每个节点的主机名、IP地址和共享存储设备的位置。

linux下裸设备的使用

linux下裸设备的使用一个裸设备(裸分区)只能有一个数据文件一个表空间可以有多个裸设备(裸分区)组成我的归纳1、裸设备定义:一块没有分区的硬盘,称为原始设备(RAW DEVICE)或者是一个分区,但是没有用EXT3,OCFS等文件系统格式化,称为原始分区(RAW PARTITION)以上两者都是裸设备2、裸设备的绑定有文件系统的分区是采用mount的方式挂载到某一个挂载点的(目录)而裸设备不能mount,只能绑定到/dev/raw/下的某一个设备名比如/dev/raw/raw13、裸设备的绑定方法有两种方法,这里介绍一种,另一种可以google搜索到修改/etc/sysconfig/rawdevices,添加以下内容,这里sdd1和sdd2是原始分区名或者原始设备(硬盘)名,raw1和raw2是/dev目录下的原始设备名,编号从raw1到raw255,也就是最多可以绑定255个裸设备/dev/raw/raw1 /dev/sdd1/dev/raw/raw2 /dev/sdd2然后修改裸设备的属主和访问权限chown oracle:dba /dev/raw/raw1chown oracle:dba /dev/raw/raw2chmod 660 /dev/raw/raw1chmod 660 /dev/raw/raw2最后使得裸设备生效,并且在机器启动的时候就自动加载执行/etc/init.d/rawdevices restart 使裸设备生效执行/sbin/chkconfig rawdevices on 保证机器启动的时候裸设备能够加载,这一步很重要4、裸设备的读写不能用cp等命令操作,写入内容用dd命令,可以参阅相关资料5、清空裸设备,相当于格式化啦bs是快的大小,block sizecount是快的数量,这两者相乘大于裸设备的容量即可dd if=/dev/zero of=/dev/raw/raw1 bs=8192 count=12800dd if=/dev/zero of=/dev/raw/raw2 bs=8192 count=12800-------另外rhel4使用udev来管理设备手动修改/dev/raw/raw1 不能永久生效要想使得权限持久生效需要修改文件/etc/udev/permissions.d/50-udev.permissions 的第113行raw/*:root:disk:0660改成raw/*racle:dba:0660重启机器如果/dev/下没有/raw/ 目录,可以自己手工建立。

oracle中的裸设备指的是什么

裸设备就是绕过文件系统直接访问的储存空间1.什么叫做裸设备?裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。

它由应用程序负责对它进行读写操作。

不经过文件系统的缓冲。

2.如何辨别裸设备?在Unix的/dev 目录下,有许多文件,其中有两个大类:字符设备文件和块设备文件。

字符设备特殊文件进行I/O操作不经过操作系统的缓冲区,而块设备特殊文件用来同外设进行定长的包传输。

字符特殊文件与外设进行I/o操作时每次只传输一个字符。

而对于块设备特殊文件来说,它用了cache机制,在外设和内存之间一次可以传送一整块数据。

裸设备使用字符特殊文件。

在/dev 目录下,你可以看到许多这样的文件。

3.使用裸设备的好处因为使用裸设备避免了再经过Unix操作系统这一层,数据直接从Disk到Oracle进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。

当然,这是以磁盘的I/O 非常大,磁盘I/O已经称为系统瓶颈的情况下才成立。

如果磁盘读写确实非常频繁,以至于磁盘读写成为系统瓶颈的情况成立,那么采用裸设备确实可以大大提高性能,最大甚至可以提高至40%,非常明显。

而且,由于使用的是原始分区,没有采用文件系统的管理方式,对于Unix维护文件系统的开销也都没有了,比如不用再维护I-node,空闲块等,这也能够导致性能的提高。

4.如何决定是否应该使用裸设备?判断是否使用裸设备要从以下方面进行考虑:首先,数据库系统本身需要已经被比较好的经过了优化。

优化是一门很有些技术的话题,很难简单地讲述。

其次,使用Unix命令来辨别是否存在磁盘读写瓶颈。

比如Unix的vmstat, sar 等命令都可以较好的进行鉴别。

如果决定采用裸设备,需要磁盘上还有空闲的分区。

否则,就要新添磁盘,或者对原有系统重新规划。

5.什么系统必须使用裸设备?如果使用了Oracle 并行服务器选项,则必须采用裸设备来存放所有的数据文件,控制文件,重做日志文件。

使用dd备份裸设备

dd备份裸设备v1.0---sydjd主要内容:1.UNIX使用dd对裸设备进行备份2.dd命令详解3.确定裸设备数据文件大小,验证备份(2个工具)Making User-Managed Backups to Raw Devices 裸设备是指一个磁盘或者分区,它不包含文件系统,所以一个裸设备只能包含一个文件。

通过操作系统来备份raw设备上的文件,需要注意一些细节问题。

下面具体讨论一下。

Backing Up to Raw Devices on UNIXUnix下备份raw设备,最常用的就是dd命令。

使用dd命令需要制定一些正确的参数,这些参数是基于你的os以及database的。

参数使用情况。

How to know the size of your file?(确定count)非常简单,使用oracle提供的一个小工具:dbfsize (oracle自带,对数据文件和裸设备都有效)那么count=49920+1–不要忘记block 0 (上面提到过哦:)Backing Up with the dd utility on UNIX: Examples 为了使用dd,我们假设了如下的情况:∙要备份的数据文件:30720KB∙block 0 =8 KB.∙raw offset 64 KB.∙我们设定bs=8kNote:“=”左右不要有空格1)从raw设备备份到raw设备% dd if=/dev/rsd1b of=/dev/rsd2b bs=8k skip=8 seek=8 count=38412)裸设备到文件系统% dd if=/dev/rsd1b of=/backup/df1.dbf bs=8k skip=8 count=38413)文件系统到裸设备% dd if=/backup/df1.dbf of=/dev/rsd2b bs=8k seek=84)文件系统到文件系统,你可以为了提升I/O把bs设为较高的数值% dd if=/oracle/dbs/df1.dbf of=/backup/df1.dbf bs=1024kBacking Up to Raw Devices on LNUIXLinux一般是没有offset的,其他与Unix相同。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

裸设备就是绕过文件系统直接访问的储存空间
1.什么叫做裸设备?
裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。

它由应用程序负责对它进行读写操作。

不经过文件系统的缓冲。

2.如何辨别裸设备?
在Unix的/dev 目录下,有许多文件,其中有两个大类:字符设备文件和块设备文件。

字符设备特殊文件进行I/O操作不经过操作系统的缓冲区,而块设备特殊文件用来同外设进行定长的包传输。

字符特殊文件与外设进行I/o操作时每次只传输一个字符。

而对于块设备特殊文件来说,它用了cache机制,在外设和内存之间一次可以传送一整块数据。

裸设备使用字符特殊文件。

在/dev 目录下,你可以看到许多这样的文件。

3.使用裸设备的好处
因为使用裸设备避免了再经过Unix操作系统这一层,数据直接从Disk到Oracle进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。

当然,这是以磁盘的I/O 非常大,磁盘I/O已经称为系统瓶颈的情况下才成立。

如果磁盘读写确实非常频繁,以至于磁盘读写成为系统瓶颈的情况成立,那么采用裸设备确实可以大大提高性能,最大甚至可以提高至40%,非常明显。

而且,由于使用的是原始分区,没有采用文件系统的管理方式,对于Unix维护文件系统的开销也都没有了,比如不用再维护I-node,空闲块等,这也能够导致性能的提高。

4.如何决定是否应该使用裸设备?
判断是否使用裸设备要从以下方面进行考虑:首先,数据库系统本身需要已经被比较好的经过了优化。

优化是一门很有些技术的话题,很难简单地讲述。

其次,使用Unix命令来辨别是否存在磁盘读写瓶颈。

比如Unix的vmstat, sar 等命令都可以较好的进行鉴别。

如果决定采用裸设备,需要磁盘上还有空闲的分区。

否则,就要新添磁盘,或者对原有系统重新规划。

5.什么系统必须使用裸设备?
如果使用了Oracle 并行服务器选项,则必须采用裸设备来存放所有的数据文件,控制文件,重做日志文件。

只有把这些文件放到裸设备上,才能保证所有Oracle实例都可以读取这个数据库的文件。

这是由Unix操作系统的特性决定的。

还有一种情况是,如果你想使用异步I/O,那么在有些Unix上也必须采用裸设备。

这个需要参考具体Unix的相关文档。

6.能够使用一个磁盘的第一个分区作为裸设备吗?
可以,但是不推荐。

在Unix的比较旧的版本是银行,磁盘的第一个分区常常包含这个磁盘的一些信息,以及逻辑卷的一些控制信息。

若这些部分被裸设备覆盖的话,磁盘就会变得不可识别,导致系统崩溃。

较新的Unix版本不会发生这样的情况,因为它们采用了更复杂的技术来管理磁盘,逻辑卷的一些信息。

但是,除非很确信不要使用磁盘的第一个分区来作为裸设备。

7.我可以把整个裸设备都作为Oracle的数据文件吗?
不行。

必须让数据文件的大小稍微小于该裸设备的实际大小。

至少要空出两个oracle 块的大小来。

8.裸设备应该属于那个用户?
应该由root来创建裸设备,然后再分配给Oracle用户以供使用。

同时还要把它归入Oracle用户所在的那个组里边(通常都是DBA)。

9.在创建数据文件时如何指定裸设备?
和普通文件没有什么太大的区别,一样都是在单引号里边写上裸设备的详细路径就可以了。

举一个例子:要在创建一个表空间,使用两个裸设备,每个分别为30M的大小,Oracle 块的大小为4K,可以用下面的命令:
CREATE TABLESPACE RAW_TS
DA TAFILE ''/dev/raw1'' size 30712k
DA TAFILE ''/dev/raw2'' size 30712k;
10.Oracle块的大小和裸设备有什么关系吗?
Oracle会必须是裸设备上物理块大小的倍数。

11.如何在裸设备上进行备份?
在裸设备上,不能使用Unix实用程序来进行备份,唯一的办法是使用最基本的Unix 命令:DD来进行备份。

比如:dd if=/dev/raw1 of=/dev/rmt0 bs=16k。

dd的具体语法可以参考unix手册,或者联机帮助。

你也可以先用dd把裸设备上的数据文件备份到磁盘上,然后再利用Unix实用程序进一步处理。

12.如果我没有使用Oracle并行服务器选项,我可以在数据库上让一部分数据文件使用文件系统,另一部分使用裸设备吗?
可以。

但是这样的话,会使备份过程更加复杂。

13.我应该把联机重做日志文件放到裸设备上吗?
这是一个极好的选择。

联机重做日志文件是写操作非常频繁的文件,放到裸设备上非常合适。

如果你使用了并行服务器选项,那么联机重做日志文件必须放到裸设备上面。

14.可以把归档日志文件放到裸设备上吗?
不行。

归档日志文件必须放到常规的Unix文件系统上面,或者直接放到磁带上面去。

15.我可以在裸设备上边放置多个数据文件吗?
不行。

所以你必须在设置裸设备时非常小心。

太小的话,会导致空间很快用完,太大的话,空间就白白浪费了。

16.因应该把几个裸设备放到同一个物理磁盘上吗?
这样做不好。

因为使用裸设备就是为了提高磁盘读写速度。

而把多个裸设备放到同一个物理磁盘上会导致读写竞争,这样对于提高I/O速度是不利的。

应该尽量分散裸设备到不同的物理磁盘上,最好是分散到不同的磁盘控制器上。

这是最佳选择。

17.需要把所有裸设备都定义成同样的大小吗?
这不是必须得,但是划分成同样的大小对于管理数据库比较有利。

18.为了在Unix上使用裸设备,我需要改变Unix核心参数吗?
不需要。

但可以选择减小缓冲区的大小,如果没有别的应用也在同一台Unix机器上运行。

因为运用了裸设备以后,不再使用Unix的系统缓冲区。

19.为了提高读写速度,在操作系统级别上,还有什么办法可以采取吗?
使用RAID(廉价冗余磁盘阵列)也是非常有效的办法,尤其实那种读写非常频繁的系统。

20.在考虑了以上所有方面后,还能有什么办法可以提高性能的吗?
这就需要对Oracle 进行优化,并且购买更多的磁盘和磁盘控制器,来分散I/O到不同的磁盘上。

相关文档
最新文档