在DB2 UDB V8.1中使用裸(raw)设备

<DB2>《AIX服务器DB2数据库裸设备表空间扩容方案》 DB2表空间扩容;数据库表空间容器是裸设备 阅读详情

版权声明: 本文可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。
原文出处: http://www.aiview.com/notes/db2_using_raw.htm
作者: 张洋 Alex_doesAThotmail.com
最后更新: 2004-7-14


 目录
  1. 一般信息
  2. 规划磁盘分区
  3. 创建RAW设备
  4. 创建数据库
  5. 规划日志以及备份文件存储
  6. 额外信息
  7. 参考资源
一般信息

本文中的命令和代码在以下环境编译执行通过:

IBM xSeriers 345(Inter 32位)
RedHat Enterprise Linux 3.0
DB2 V8.1 for Linux
主机连接一个IBM EMP300 磁盘柜,用于数据库数据存储。磁盘柜共有6块磁盘,单块146GB,其中5块做成RAID5,剩余一块做备用盘。

RAID5中,校验信息不单独占用一个磁盘,而是根据算法平均分布在各个磁盘上,这样避免了读写校验信息产生的瓶颈。
假设在主机上已经安装好了一个DB2服务,创建了一个实例,名为db2,还未建立数据库,并且磁盘柜已经在系统下安装好驱动程序,我们获得的设备名为sdb,还未进行分区。

下面分步介绍在磁盘阵列上建立raw设备并进行数据规划和数据放置的操作步骤:

规划磁盘分区

以root登录,对磁盘阵列进行分区,在root提示符下键入:

#fdisk /dev/sdb

新增3个主分区sdb1,sdb2,sdb3,每个分区20GB,分别划分给系统目录表空间、默认的系统临时表空间和新增的32kb的临时表空间,
剩下空间约527GB全部划分给第4个扩展分区sdb4,在扩展分区中增加5个逻辑分区sdb5,sdb6,sdb7,sdb8,sdb9,前两个逻辑分 区各160GB,用作表存储的用户表空间,第三个逻辑分区为20GB,用作专门放置索引的用户表空间,余下的2个逻辑分区分别为80GB、93GB,这两 个逻辑分区使用ext3进行格式化,用于存放日志和数据库备份。
注意:sdb1-sdb7均未进行格式化操作,准备用作raw设备,由DB2自行管理。

以下是分好区的磁盘状态:

Disk /dev/sdb: 587.2 GB, 587257085952 bytes
254 heads, 63 sectors/track, 71677 cylinders
Units = cylinders of 16002 * 512 = 8193024 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 2501 20010469+ 83 Linux
/dev/sdb2 2502 5002 20010501 83 Linux
/dev/sdb3 5003 7503 20010501 83 Linux
/dev/sdb4 7504 71677 513456174 5 Extended
/dev/sdb5 7504 27502 160011967+ 83 Linux
/dev/sdb6 27503 47501 160011967+ 83 Linux
/dev/sdb7 47502 50002 20010469+ 83 Linux
/dev/sdb8 50003 60002 80009968+ 83 Linux
/dev/sdb9 60003 71677 93411643+ 83 Linux

创建RAW设备

打算用作raw设备的各个逻辑分区DB2不能够直接使用,需要使用raw命令创建raw设备名:
在root提示符下键入:

# raw -a

查询当前已经建立的raw设备名,目前为空,我们可以从第一个设备名用起,

在root提示符下键入:

# raw /dev/raw/raw1 /dev/sdb1 # 用于system catalog tablespace (4K)
# raw /dev/raw/raw2 /dev/sdb2 # 用于system temp tablespace (4K)
# raw /dev/raw/raw3 /dev/sdb3 # 用于system temp tablespace (32K)
# raw /dev/raw/raw5 /dev/sdb5 # 用于user tablespace1 (32K),存储表
# raw /dev/raw/raw6 /dev/sdb6 # 用于user tablespace1 (32K),存储表
# raw /dev/raw/raw7 /dev/sdb7 # 用于user tablespace2 (32K),存储索引

至此,我们创建了6个raw设备名,用于交给DB2直接管理,查看一下已经创建的raw设备名的情况:

# raw -a

/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

如果想删除一个raw设备名(例如/dev/raw/raw1),在root提示符下键入:

# raw /dev/raw/raw1 0 0

接着修改系统的初始化文件,添加如下行到 /etc/rc.d/sysinit 文件:

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设备名。

默认建立的raw设备拥有者是disk,必须让数据库实例的拥有者具有此设备的存取权限,在root提示符下键入:

# chown db2:disk /dev/raw/raw[1,2,3,4,5,6,7]

将db2用户更改为7个裸设备的拥有者,至此,这些裸设备已经可以为DB2所引用。

创建数据库

下面准备使用以上raw设备创建一个名为newdb的数据库,包含页size为4kb系统目录表空间、系统临时表空间以及用户表空间各一个;
然后新建页size为8kb、16kb、32kb的缓冲池各一个;
删除4kb的用户表空间,新建2个32kb页size的用户表空间,用于用户表的存储;
新建一个32kb页size的用户表空间,用于存储索引;
新建一个32kb页size的系统临时表空间;

我们将完成以上功能的脚本保存为newdb.sql,并通过如下方式执行此脚本:

在root提示符下键入如下命令,转到db2用户下:

# su - db2

执行上面的脚本:

$ db2 -td";" -f newdb.sql

至此数据库创建完成。下载脚本代码

规划日志以及备份文件存储

接下来,还需要规划日志和数据库备份的存储,首先将用于日志和数据库备份的分区进行格式化(此过程花费时间较长):
在root提示符下键入:

# mkfs.ext3 /dev/sdb8
# mkfs.ext3 /dev/sdb9

创建DB2数据库的目录:

# mkdir /db2
# chown db2:db2 /db2
# su - db2

$ mkdir /db2/db2log
$ mkdir /db2/db2backup
$ exit

mount逻辑分区到目录:

# mount /dev/sdb8 /db2/db2log
# mount /dev/sdb9 /db2/db2backup

更新数据库的log文件路径:

# su - db2
$ db2 connect to newdb
$ db2 update db cfg using newlogpath '/db2/db2log'

停顿数据库使修改生效,使用defer参数继续执行已有的事务,拒绝新的连接,停顿成功后发布激活数据库的命令:

$ db2 quiesce db defer
$ db2 unquiesce db
$ exit

至此我们完成了利用raw设备进行数据规划和数据放置的任务。

额外信息

当已经在raw设备上创建容器之后,若没有通过正常的步骤删除表空间所在数据库,也没有直接删除容器或者容器所在表空间,则再次利用这些raw设备时,DB2会报错:
The container is already in use

此时应使用db2untag命令释放container标志,而采用重新对磁盘进行分区或者格式化的操作是无济于事的。

释放已经在raw设备raw1上建立的container标志:

# su - db2
$ db2untag /dev/raw/raw1

 

参考资源

  • 下载用于创建数据库的脚本
Linux DB2安装及配置TSA+HADR redhat 7.4安装DB2数据库,并配置TSA+HADR的高可用环境 立即下载

相关推荐

db2-裸设备及表空间调整文档

裸设备及表空间调整文档

DB2中使用裸设备作为表空间容器

DB2中使用裸设备作为容器需要三个步骤:1. 创建LV。2. 绑定LV和裸设备 3.创建表空间   1. 创建lv root@ubuntu:~# vgdisplay    root@ubuntu:~# vgdisplay   --- Volume group ---   VG Name               mainVG   System ID                

匿_名_用_户的专栏 4666

db2裸设备扩容表空间

记录db2 裸设备扩容归档 (文件系统)和表空间(裸设备)的过程。aix上操作截图

db2数据库查看表空间使用的是文件系统和裸设备情况

db2数据库查看表空间使用的是文件系统和裸设备情况 $ db2 list db directory System Database Directory Number of entries in...

cilonggang7850的博客 752

aix创建裸设备

在aix上创建裸设备,lsvg查看卷组,创建好裸设备要记住最重要的一点是,如果是双机热备,一定要修改裸设备的权限(一般的生产环境都是双机热备的)

手把手教你用Multisim仿真ADC接口电路(附峰值采样与电平抬升实战)

本文通过Multisim软件,手把手教学如何构建高保真ADC前端信号调理电路。核心实战内容包括峰值采样保持电路与电平抬升电路的设计、仿真与调试,旨在解决模拟信号接入ADC时遇到的幅度不匹配、负电压等问题,帮助电子设计者快速掌握关键接口电路的实现技巧。

ooo22的博客 259

oracle裸设备配置,ORACLE裸设备的创设配置

裸设备裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的非凡字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。我们可以将oracle得表空间直接建立在裸设备上,提高读写速度create tablespace sale_ts datafile '/dev/raw/raw1'size 20000mautoextend on next 100m ma...

weixin_33318720的博客 261

VLSI数字信号处理系统——第九章滤波器和变换中的算法强度缩减

[课程学习] VLSI数字信号处理系统——第九章滤波器和变换中的算法强度缩减

夏风喃喃的博客 1604

db2 DBPATHS

Retrieve all database paths: SELECT * FROM SYSIBMADM.DBPATHS:LOGPATH=  /data/NODE0000/                                                              Primary log path.DB_STORAGE_PATH=  /hom

emilyzhang98的专栏 846

CTR模型:Deep&Cross Network

1. 简介 DCN模型(Deep & Cross Network for Ad Click Predictions)是2017年提出的。 出发点: (1)人工探索所有的交叉特征是不现实的; (2)难于推广未曾出现过的交叉特征。 DNN能够自动探索交叉特征并推广到未出现过的交叉特征,但是DNN的学习效率不高,且无法显式的学习特征交叉。 Deep&Cross Network, DCN 模型保留了DNN的优点,并提出了新的cross network,高效学习高阶特征交互。 优点: (1)cross

rosefun96的博客 9357

STM32CubeIDE(CUBE-MX hal库)----RTC时钟断电保持与时间校准实战

本文详细介绍了在STM32CubeIDE中使用CUBE-MX和HAL库实现RTC时钟断电保持与时间校准的实战方法。通过硬件配置、后备寄存器(BKP)操作及软件校准策略,确保嵌入式设备在断电后仍能保持准确时间,适用于智能电表、环境监测等物联网应用场景。

weixin_29189373的博客 216

【原创】DB2 (包含基于裸设备的tablespace)全库恢复过程

以Linux 上 V9 版本DB2 实验为基础,制定生产系统数据库备份策略以及恢复步骤前提:第一:修改生产库 NEWLOGPATH 参数指向单独保存在线日志的文件系统,设为 /log_online1第二:修改生产库 MIRROR...

cmupa22628的专栏 295

AI驱动的CNC闭环加工系统:边缘实时控制与IIoT反馈实践

闭环控制是工业自动化的核心概念,指通过实时反馈调节系统输出以逼近目标值;其技术原理在于构建短于被控对象时间常数的确定性反馈链路,从而保障动态响应精度与稳定性。在智能制造落地中,AI正从离线分析工具演进为嵌入式实时决策单元,其核心价值在于将工艺知识模型化、控制指令轻量化、执行路径边缘化。典型应用场景包括CNC加工过程中的振动自适应调参、刀具磨损在线补偿及多机协同优化。本实践聚焦FANUC 0i-MF平台,基于Modbus TCP硬实时通信与轻量LSTM+CNN融合模型,实现217毫秒级AI推理与PMC寄存器直

weixin_29704001的博客 323

linux查看raw绑定了那个设备,Linux上关于raw device的使用方式

Linux上关于raw device的使用方式你了解多少呢?其实在Linux上使用raw device方式主要有两种,不知道有多少朋友们了解呢?现在我们就去看看如何在Linux中使用rawdevice的内容。在Linux上使用raw device一般有两个方式,下面分别测试一下:第一种方式是非lvm方式,直接使用partion方式如下:一,创建分区[root@localhost ~]# fdisk...

weixin_34463228的博客 450

第14.5章 高翔博士最新开源框架Lightning-LM源码解读(五):揭秘位姿图优化核心模块,从数学原理到代码实现

本文介绍了Lightning-LM框架中的位姿图优化(PGO)模块实现。该模块通过融合多源定位信息(激光定位、激光里程计、DR等),构建并优化位姿图来获得更精确的位姿估计。 主要内容包括: 模块概况与数据流程:初始化配置→添加PGO帧→分配位姿→优化求解→更新位姿→滑动窗口 16个核心函数详解:从构造函数到边缘化处理,涵盖完整的PGO工作流程 关键技术点:噪声参数设置、优化问题构建、约束添加、异常值处理等 关键数据结构:帧队列管理、顶点和边构建、优化统计信息收集 该PGO模块采用增量式优化方式,支持多种约束

行知SLAM 1216

工业质检升级!C#上位机集成YOLOv8.3.138+Blob分析:尺寸测量+缺陷检测一步到位

工业场景的技术选型,从来不是“选最先进的”,而是“选最适配的”。这个项目的成功,不在于采用了多前沿的技术,而在于找对了“贴合场景的技术组合”和“落地导向的实施思路”。C#上位机的稳定性保障了系统长期运行,YOLOv8.3.138的精度解决了缺陷检测痛点,Blob分析的抗干扰能力确保了尺寸测量准确,三者结合实现了“1+1+1>3”的效果。先摸透场景,再选技术:不要盲目追求最新模型,先深入了解车间环境、生产节奏、精度要求,选择兼容性强、稳定性高的技术方案;数据质量决定模型性能。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 611

ASM 2——raw设备绑定

Redhat 5 中裸设备(raw) 的配置  http://blog.csdn.net/tianlesoftware/article/details/5796962 在Redhat 5 之前的版本中,系统通过/etc/sysconfig/rawdevices配置raw的控制文件,通过/etc/init.d/rawdevices来管理raw设备的启动和关闭。而在Redhat 5之后,原来的r

changyanmanman的专栏 4618

土壤数据库辅助工具SPAW计算土壤导水率

首先点击打开根据之前的1比100土壤数据查表得到各个组分含量其中Field Capacity是田间持水量Matric Bulk Density是基质粒密度。

所有专家都曾始于新手 3443

linux db2创建表空间,db2在linux的裸设备上创建表空间总结

1、在创建表表空间时,确认裸设备一定是存在的方式:fdisk -l 命令查看裸设备使用情况。如 执行fdisk -l 后Disk /dev/sda: 8589 MB, 8589934592 bytes255 heads, 63 sectors/track, 1044 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Bo...

weixin_39779032的博客 512

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

db2数据迁移oracle,迁移日志表,数据类型LONG RAW,数据量1100W

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33895016的博客 387

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

linux raw 分区 读取,在linux上使用raw device方式

在linux上使用raw device一般有两个方式,下面分别测试一下:第一种方式是非lvm方式,直接使用partion方式如下:一,创建分区[root@localhost ~]# fdisk -lDisk /dev/sda: 12.8 GB, 12884901888 bytes255 heads, 63 sectors/track, 1566 cylindersUnits = cylinders...

weixin_36085895的博客 1201

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

裸设备和Oracle问答20例

1.什么叫做裸设备?  裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。2.如何辨别裸设备?  在Unix的/dev 目录下,有许多文件,其中有两个大类:字符设备文件和块设备文件。  字符设备特殊文件进行I/O操作不经过操作系统的缓冲区,而块设备特殊文件用来同外设进行定长的包传输。字符特殊文

georgewang的专栏 1084

Linux裸设备管理详解(原创) [不错]

Linux裸设备管理详解(原创) 博客分类: Linux/Unix日常管理   裸设备概述 裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备。裸设备可以绑定一个分区,也可以绑定一个磁盘。 字符设备:对字符设备的读写不需要通过OS的buffer。它不可被文件系统mount。 块设备:对

haiross的专栏 5273
上一篇: 学习笔记-DB2 UDB V8.1 管理 学习笔记(三)
下一篇: 升级DB2 UDB V8.1的补丁包到级别 6
alexdoes
博客等级 码龄23年 2粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值