文档库 最新最全的文档下载
当前位置:文档库 › clob类型数据的内部存储格式解析

clob类型数据的内部存储格式解析

clob类型数据的内部存储格式解析

Clob 类型字段的内部存储初步探索

前言:本篇文章仅供参考,此为一家之言,仅代表个人观点,欢迎有有此爱好的同行门拍砖,其中部分结构还没有搞清除。

我google / baidu 了n多次,目前尚未在web上发现关于此类的文章。

本人有幸从WEB上得到了一些关于oracle 数据类型内部存储的介绍类的文章,于是尝试解析lob类型字段。废话来来。开始干活。:)

1。Dsi 中介绍的LOB类型的内部结构。

There are three structures for internal LOBs:

–LOB Locator: kolbl (20 bytes)

–LOB Inode: kdlinode (16 bytes minimum)

–Data array

? The physical location of these three components

could be up to three different segments:

len(2), vsn(2), flg(4), bytl(2), lobid(10), inode(16),

data

len = maximum length of the LOB locator excluding these two len bytes

vsn = version of the LOB locator structure

flg = 4 flag bytes

bytl = byte length (1 for BLOB/CLOB/BFILE. Value for NCLOB)

lobid = 2 bytes for index followed by 8 byte LOB OID. Key into LOB index

inode = kdlinode structure

data = actual LOB data

Internal LOB locator without inode:

len(2), vsn(2), flg(4), bytl(2), lobid(10)

Len = maximum length of the LOB locator excluding these two len bytes

vsn = version of the LOB locator structure

flg = 4 flag bytes

bytl = byte length (1 for BLOB/CLOB/BFILE. Value for NCLOB)

lobid = 2 bytes for index followed by 8 byte LOB OID. Key into LOB index SQL*Plus: Release 10.2.0.3.0 - Production on D??ú?t 5?? 27 04:46:43 2008 Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Productio n

With the Partitioning, OLAP and Data Mining options

SQL> drop user lsliang cascade ;

User dropped.

SQL> drop tablespace test ;

Tablespace dropped.

SQL> create tablespace test datafile '/oracle/oradata/sunha5/test01.dbf' size 1m reuse;

Tablespace created.

SQL> create user lsliang identified by lsliang ;

User created.

SQL> grant dba to lsliang ;

Grant succeeded.

SQL> conn lsliang/lsliang ;

Connected.

SQL> create table test (id number ,name varchar2(10), text clob) tablespac e test ;

Table created.

SQL> insert into test values( 1,'lsl','aaaaa') ;

1 row created.

SQL> commit;

Commit complete.

SQL> alter system checkpoint;

System altered.

SQL>

SQL> select rowid from test ;

ROWID

------------------

AAAPIoAAVAAAAAQAAA

SQL>

[oracle@sunha2 baby]$ perl rowid.pl AAAPIoAAVAAAAAQAAA

For this Rowid : AAAPIoAAVAAAAAQAAA

The dba_objets -- data_object_id = 61992

The data_file -- datafile# = 21

The data_block -- data_block# = 16

This Record in the datablock is 0

## rowid.pl 是一个解析rowid 的perl脚本,具体rowid 如何解析请参考网络上的文章。

[oracle@sunha5 sunha5]$ ./a.out test01.dbf 16

file#: 21

block#: 16

type: 0X6

fmt:0Xa2 --0X02

rdba: 0X5400010

bas SCN:0Xf4a9a73

wrap SCN: 0X0000

flag: 0X6

chk: 0Xb6e0

数据块的块头的信息。 A.out 为解析数据文件块头的c程序,具体请参考网络上数据块的结构。

Vi a1

*** 2008-05-27 05:44:53.154

*** ACTION NAME:() 2008-05-27 05:44:53.153

*** MODULE NAME:(SQL*Plus) 2008-05-27 05:44:53.153

*** SERVICE NAME:(SYS$USERS) 2008-05-27 05:44:53.153

*** SESSION ID:(1652.49666) 2008-05-27 05:44:53.153

Start dump data blocks tsn: 22 file#: 21 minblk 16 maxblk 16

buffer tsn: 22 rdba: 0x05400010 (21/16)

scn: 0x0000.0f4a9a73 seq: 0x03 flg: 0x06 tail: 0x9a730603

frmt: 0x02 chkval: 0xb6e0 type: 0x06=trans data

Hex dump of block: st=0, typ_found=1

Hex dump of block: st=0, typ_found=1

Dump of memory from 0x0000000106768C00 to 0x000000010676AC00 106768C00 06A20000 05400010 0F4A9A73 00000306 [.....@...J.s....] 106768C10 B6E00000 01270019 0000F228 0F4A99DE [.....'.....(.J..] 106768C20 00000000 1F023200 05400009 00370026 [......2..@...7.&] 106768C30 00000619 00800384 01052D00 20010000 [..........-. ...] ...................... ......................

10676AB90 010078D0 2C000FFF 00000000 FFFFFFFF [..x.,...........] 10676ABA0 7FFEEEB8 00000004 1E629308 003E002C [.........b...>.,] 10676ABB0 00008000 00000027 C20F3F4B C5162F24 [.......'..?K../$] 10676ABC0 154A062C 010302C1 02036C73 6C2E0054 [.J.,......lsl..T] 10676ABD0 0001020C 80000002 00000001 00000038 [...............8] 10676ABE0 EF33001A 09000000 0000000A 00000000 [.3..............] 10676ABF0 00010061 00610061 00610061 9A730603 [...a.a.a.a.a.s..] Block header dump: 0x05400010

Object id on Block? Y

seg/obj: 0xf228 csc: 0x00.f4a99de itc: 2 flg: E typ: 1 - DATA brn: 0 bdba: 0x5400009 ver: 0x01 opc: 0

inc: 0 exflg: 0

Itl Xid Uba Flag Lck Scn/Fsc

0x01 0x0037.026.00000619 0x00800384.0105.2d --U- 1 fsc 0x0000.0f4a9a73 0x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

data_block_dump,data header at 0x106768c64

===============

tsiz: 0x1f98

hsiz: 0x14

pbl: 0x106768c64

bdba: 0x05400010

76543210

flag=--------

ntab=1

nrow=1

frre=-1

fsbo=0x14

fseo=0x1f5f

avsp=0x1f4b

tosp=0x1f4b

0xe:pti[0] nrow=1 offs=0

0x12:pri[0] offs=0x1f5f

block_row_dump:

tab 0, row 0, @0x1f5f

tl: 57 fb: --H-FL-- lb: 0x1 cc: 3

col 0: [ 2] c1 02

col 1: [ 3] 6c 73 6c

col 2: [46]

00 54 00 01 02 0c 80 00 00 02 00 00 00 01 00 00 00 38 ef 33 00 1a 09 00 00

00 00 00 00 0a 00 00 00 00 00 01 00 61 00 61 00 61 00 61 00 61

end_of_block_dump

End dump data blocks tsn: 22 file#: 21 minblk 16 maxblk 16

解说:

对于数据长度小于4000的情况,lob列的数据存放在行内,如上图,数据的存储格式是ascii码存放。

Lob数据的结构,头部最大为84字节,最小为36字节

对于本例:

2E0054 [.J.,......lsl..T]

10676ABD0 0001020C 80000002 00000001 00000038 [...............8]

10676ABE0 EF33001A 09000000 0000000A 00000000 [.3..............]

10676ABF0 00010061 00610061 00610061 9A730603 [...a.a.a.a.a.s..]

2E : 列的长度46-- col 2: [46]

0054 lob head 的最大长度,

0001 vsn

02 0c 80 00 flag

00 02 数据的单位长度为2个字节。

00 00 00 01 00 00 00 38 ef 33 lob_id

00 1a 09 00 00 00 00 00 00 0a 00 00 00 00 00 01 inodeid

00 61 00 61 00 61 00 61 00 61 data数据:我们插入的那5个a .

经过我的测试对inodeid 最后一位是一个开关变量(01,02)

01 表示数据在行内存放,

02 表示数据存储在log段中。

SQL> @a.sql;

PL/SQL procedure successfully completed.

SQL> alter system checkpoint ;

System altered.

SQL> commit;

Commit complete.

More a.sql ;

--------------------------

declare

a clob;

b varchar2(32000) ;

begin

b:=lpad('a',4000,'a') ;

a:=a||b ;

--a:=a||a;

--a:=a||a;

--a:=a||a;

--a:=a||a;

--a:=a||a;

--a:=a||a;

update lsliang.test set text=a ;

commit ;

end ;

/

---------------------------------

## a.sql 用来更新lob字段。

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production With the Partitioning, OLAP and Data Mining options

SQL> alter system dump datafile 21 block 16 ;

System altered.

SQL>

Block header dump: 0x05400010

Object id on Block? Y

seg/obj: 0xf228 csc: 0x00.f4b132c itc: 2 flg: E typ: 1 - DATA

brn: 0 bdba: 0x5400009 ver: 0x01 opc: 0

inc: 0 exflg: 0

Itl Xid Uba Flag Lck Scn/Fsc

0x01 0x0037.026.00000619 0x00800384.0105.2d C--- 0 scn 0x0000.0f4a9a73 0x02 0x0017.026.00000ae0 0x00801869.01b9.3c --U- 1 fsc 0x0006.0f4b132d

data_block_dump,data header at 0x106768c64

===============

tsiz: 0x1f98

hsiz: 0x14

pbl: 0x106768c64

bdba: 0x05400010

76543210

flag=--------

ntab=1

nrow=1

frre=-1

fsbo=0x14

fseo=0x1f2c

avsp=0x1f4b

tosp=0x1f51

0xe:pti[0] nrow=1 offs=0

0x12:pri[0] offs=0x1f2c

block_row_dump:

tab 0, row 0, @0x1f2c

tl: 51 fb: --H-FL-- lb: 0x2 cc: 3

col 0: [ 2] c1 02

col 1: [ 3] 6c 73 6c

col 2: [40]

00 54 00 01 02 0c 80 00 00 02 00 00 00 01 00 00 00 38 ef 34 00 14 05 00 00 00 00 00 1f 40 00 00 00 00 00 02 05 40 00 18

end_of_block_dump

End dump data blocks tsn: 22 file#: 21 minblk 16 maxblk 16

0054 lob head 的最大长度,

0001 vsn

02 0c 80 00 flag

00 02 数据的单位长度为2个字节。

00 00 00 01 00 00 00 38 ef 34 lob_id

00 14 05 00 00 00 00 00 1f 40 00 00 00 00 00 02 inodeid

05 40 00 18 data部分没有了,取而代之的是rdba

我们来看看 ox05400018放的是什么东西。

SQL*Plus: Release 10.2.0.3.0 - Production on D??ú?t 5?? 27 07:00:18 2008

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production With the Partitioning, OLAP and Data Mining options

SQL> alter system dump datafile 21 block 24 ;

System altered.

SQL>

[oracle@sunha5 sunha5]$ ./a.out test01.dbf 24

file#: 21

block#: 24

type: 0X28

fmt:0Xa2 --0X02

rdba: 0X5400018

bas SCN:0Xf4b132c

wrap SCN: 0X0000

flag: 0X4

chk: 0X10c3

*** 2008-05-27 07:00:32.904

*** SERVICE NAME:(SYS$USERS) 2008-05-27 07:00:32.904

*** SESSION ID:(510.3928) 2008-05-27 07:00:32.904

Start dump data blocks tsn: 22 file#: 21 minblk 24 maxblk 24 buffer tsn: 22 rdba: 0x05400018 (21/24)

scn: 0x0000.0f4b132c seq: 0x02 flg: 0x04 tail: 0x132c2802

frmt: 0x02 chkval: 0x10c3 type: 0x28=PAGETABLE MANAGED LOB BLOCK Hex dump of block: st=0, typ_found=1

Dump of memory from 0x0000000106768C00 to 0x000000010676AC00 106768C00 28A20000 05400018 0F4B132C 00000204 [(....@...K.,....] 106768C10 10C30000 0000F229 00000001 00000038 [.......).......8] 106768C20 EF340000 00000001 00000000 00000000 [.4..............] 106768C30 05400011 00000000 00610061 00610061 [.@.......a.a.a.a] 106768C40 00610061 00610061 00610061 00610061 [.a.a.a.a.a.a.a.a] Repeat 498 times

10676AB70 00610061 00610061 00200020 00200020 [.a.a.a.a. . . . ] 10676AB80 00200020 00200020 00200020 00200020 [. . . . . . . . ] Repeat 6 times

10676ABF0 00200020 00200020 00200020 132C2802 [. . . . . . .,(.] Long field block dump:

Object Id 61993

LobId: 000100038EF34 PageNo 0

Version: 0x0000.00000001 pdba: 88080401

00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61

00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61

00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61

。。。。。。。。。。。。。。。。。

。。。。。。。。。。。。。。。。

00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61

00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61

00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61

00 61 00 61 00 61 00 61 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20

00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20

00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20

00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20

00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20

00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20

End dump data blocks tsn: 22 file#: 21 minblk 24 maxblk 24

可以看出来了,0x05400018 是一个lob段,保存了我们刚才update的数据

(@a.sql update lsliang.test set text=a; a=40000 * a )

从这里可以看出:

106768C30 05400011 00000000 00610061 00610061 [.@.......a.a.a.a]

106768C40 00610061 00610061 00610061 00610061 [.a.a.a.a.a.a.a.a]

Repeat 498 times

10676AB70 00610061 00610061 00200020 00200020 [.a.a.a.a. . . . ]

刚好是498*8个a + 8个a + 2*4个a =4000个a 。

再回过头来看看ox05400010

col 2: [40]

00 54 00 01 02 0c 80 00 00 02 00 00 00 01 00 00 00 38 ef 34 00 14 05 00 00

00 00 00 1f 40 00 00 00 00 00 02 05 40 00 18

0054 lob head 的最大长度,

0001 vsn

02 0c 80 00 flag

00 02 数据的单位长度为2个字节。

00 00 00 01 00 00 00 38 ef 34 lob_id

00 14 05 00 00 00 00 00 1f 40 00 00 00 00 00 02 inodeid

05 40 00 18 data部分没有了,取而代之的是rdba

看到了吧 inodeid的最后一位是02 即数据存储行外的log段,其后面放置的就是

Log列数据存储的log段的rdba.

还有一个 00 14 05 00 00 00 00 00 1f 40 00 00 00 00 00 02 的红色部分“00 00 00 0 0 00 1f 40”表示的就是我们存储的数据的长度的16进制的表示。

[oracle@test231 ~]$ hex2i 0x1f40

argv[] = 8000 -- 8 -- 17500 -- 16 0x1f40

[oracle@test231 ~]$ ## hex2i 为10,8,16进制之间转换的小脚本请自行实现。

我们实际存储的是4000个a ,lobhead里定义的bytl=0x02 两个字节。总共8000字节。

[oracle@test231 ~]$ ## hex2i 为10,8,16进制之间转换的小脚本请自行实现。

00 14 05 00 00 00 00 00 1f 40 00 00 00 00 00 02 inodeid 中的”00 14 05“这部分是作什么的呢?我本人目前还没有解决,欢迎大家发表意见。

再来看 0x05400018 这个lob段,

106768C00 28A20000 05400018 0F4B132C 00000204 [(....@...K.,....]

106768C10 10C30000 0000F229 00000001 00000038 [.......).......8]

106768C20 EF340000 00000001 00000000 00000000 [.4..............]

106768C30 05400011 00000000 00610061 00610061 [.@.......a.a.a.a]

106768C40 00610061 00610061 00610061 00610061 [.a.a.a.a.a.a.a.a]

”28A20000 05400018 0F4B132C 00000204

10C30000“这是block head 部分

下面的部分中

0000F229 00000001 00000038 [.......).......8]

106768C20 EF340000 00000001 00000000 00000000 [.4..............]

106768C30 05400011 00000000

" 0000F229" 这部分代表的是objectid oxf229=61993;

QL> select * from dba_objects where object_id=61993;

OWNER OBJECT_NAME OBJECT_ID DATA_OBJECT_ID

LSLIANG SYS_LOB0000061992C00003$$ 61993 61993 LOB

"00000001 00000038EF34" 红色部分是lobid

"0000 00000001 " 蓝色部分Version: 0x0000.00000001

"00000000 00000000" 绿色部分是page no当一个lob列分为多个chunc的时候,page no 确定该block的数据在整个lob列中的位置。

" 05400011 "黄色部分为PDBA即lob段的block的空闲列表(freelist bitmap ) 我们对这部分的展开将在以后给出。

"00000000" 最后的这几个0代表什么呢??

现在时间:

[oracle@sunha5 udump]$ date

Tue May 27 08:05:33 CST 2008

又一个不眠之夜。后续的部分我会继续推出

存储器种类

存储器类型 ①SRAM SSRAM RAM ②DRAM SDRAM ①MASK ROM ②OTP ROM ROM ③PROM ④EPROM ⑤EEPROM ⑥FLASH Memory RAM: Random Access Memory 随机访问存储器 存储单元的内容可按需随意取出或存入,这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。它的特点就是是易挥发性(nonvolatile),即掉电失忆。 ROM: Read Only Memory 只读存储器 ROM 通常指固化存储器(一次写入,反复读取),它的特点与RAM 相反。 注意: ①我们通常可以这样认为,RAM是单片机(MCU)的数据存储器(这里的数据包括 内部数据存储器(用户RAM区,可位寻址区和工作组寄存器)和特殊功能寄存器 SFR),或是电脑的内存和缓存,它们掉电后数据就消失了(非易失性存储器除外, 比如某些数字电位器就是非易失性的)。ROM是单片机的程序存储器,有些单片 机可能还包括数据存储器,这里的数据指的是要保存下来的数据,即单片机掉电 后仍然存在的数据,比如采集到的最终信号数据等。而RAM这个数据存储器只是 在单片机运行时,起一个暂存数据的作用,比如对采集的数据做一些处理运算, 这样就产生中间量,而RAM这个数据存储器就是来暂时存取中间量的,最终的结 果要放到ROM的数据存储器中。(如下图所示) ② ROM在正常工作状态下只能从中读取数据,不能快速的随时修改或重新写入数 据。它的优点是电路结构简单,而且在断电以后数据不会丢失。缺点是只适用于 存储那些固定数据的场合。RAM与ROM的根本区别是RAM在正常工作状态下 就可以随时向存储器里写入数据或从中读取数据。

PLC中存储器的数据类型与寻址方式

一、数据在存储器中的存储方式 1、数据格式及要求 A〉数据格式:即指数据的长度和表示方式。B〉要求:S7-200对数据的格式有一定的要求,指令与数据之间的格式一致才能正常工作。 2、用一位二进制数表示开关量 A〉一位二进制数:一位二进制数有0(OFF)和1(ON)两种不同的取值,分别对应于开关量(或数字量)的两种不同的状态。B〉位数据的数据类型:布尔(Bool)型。C〉位地址:由存储器标识符、字节地址和位号组成,如I3.4等。D〉其它CPU存储区的地址格式:由存储器标识符和起始字节号(一般取藕字节)组成,如V B 100、V W 100、V D 100等。 3、多位二进制数(8421码) A〉数及数制:数用于表示一个量的具体大小。根据计数方式的不同,有十进制(D)、二进制(B)、十六进制(H)和八进制等不同的计数方式。B〉二进制数的表示:在S7-200中用2#来表示二进制常数,例如“2# 10111010 ”。C〉二进制数的大小:将二进制数的各位(从右往左第n位)乘以对应的位权(×2n-1),并将结果累加求和可得其大小。例如:2# 10111010 = 1×27+0×26+1×25+1×24+1×23+0×22+1×21+0×20 = 186 4、十六进制数 A〉十六进制数的引入:将二进制数从右往左每4位用一个十六进制数表示,可以实现对多位二进制数的快速准确的读写。B〉不同进制数的表示方法:( 表3-2-1 不同进制数的表示方 法) C〉十六进制数的表示:在S7-200中用16#来表示十六进制常数,例如“2# 1010 1110 0111 0101 可转换为16# AEF7 ”。D〉十六进制数的大小:将十六进制数的各位(从右往左第n位)乘以对应的位权(×16n-1),并将结果累加求和可得其大小。例如:16# 2F = 2×161+15×160 = 47 5、数据长度:字节(Byte)、字(Word)、双字(DoubleWord) A〉字节(B):从0号位开始的连续8位二进制数称为一个字节。B〉字(W):相邻的两个字节组成一个字的长度。C〉双字(DW):相邻的四个字节组成一个双字的长度。D〉字、双字长数据的存储特点:高位存低字节、地位存于高字节。 6、负数(有符号数)的表示方法 A〉负数的表示:PLC一般用二进制的补码来表示有符号数,其最高位为符号位(0 ——正数、1 ——负数)。B〉绝对值相等的正负有符号数间的关系:正数的补码是它本身。C〉不同数据的取值范围:( 表3-2-2 数据的位数与取值范围) 7、BCD码

大数据存储方式概述

大数据存储方式概述 随着信息社会的发展,越来越多的信息被数据化,尤其是伴随着Internet的发展,数据呈爆炸式增长。从存储服务的发展趋势来看,一方面,是对数据的存储量的需求越来越大,另一方面,是对数据的有效管理提出了更高的要求。首先是存储容量的急剧膨胀,从而对于存储服务器提出了更大的需求;其次是数据持续时间的增加。最后,对数据存储的管理提出了更高的要求。数据的多样化、地理上的分散性、对重要数据的保护等等都对数据管理提出了更高的要求。随着数字图书馆、电子商务、多媒体传输等用的不断发展,数据从GB、TB 到PB量级海量急速增长。存储产品已不再是附属于服务器的辅助设备,而成为互联网中最主要的花费所在。海量存储技术已成为继计算机浪潮和互联网浪潮之后的第三次浪潮,磁盘阵列与网络存储成为先锋。 一、海量数据存储简介 海量存储的含义在于,其在数据存储中的容量增长是没有止境的。因此,用户需要不断地扩张存储空间。但是,存储容量的增长往往同存储性能并不成正比。这也就造成了数据存储上的误区和障碍。海量存储技术的概念已经不仅仅是单台的存储设备。而多个存储设备的连接使得数据管理成为一大难题。因此,统一平台的数据管理产品近年来受到了广大用户的欢迎。这一类型产品能够整合不同平台的存储设备在一个单一的控制界面上,结合虚拟化软件对存储资源进行管理。这样的产品无疑简化了用户的管理。 数据容量的增长是无限的,如果只是一味的添加存储设备,那么无疑会大幅增加存储成本。因此,海量存储对于数据的精简也提出了要求。同时,不同应用对于存储容量的需求也有所不同,而应用所要求的存储空间往往并不能得到充分利用,这也造成了浪费。 针对以上的问题,重复数据删除和自动精简配置两项技术在近年来受到了广泛的关注和追捧。重复数据删除通过文件块级的比对,将重复的数据块删除而只留下单一实例。这一做法使得冗余的存储空间得到释放,从客观上增加了存储容量。 二、企业在处理海量数据存储中存在的问题 目前企业存储面临几个问题,一是存储数据的成本在不断地增加,如何削减开支节约成本以保证高可用性;二是数据存储容量爆炸性增长且难以预估;三是越来越复杂的环境使得存储的数据无法管理。企业信息架构如何适应现状去提供一个较为理想的解决方案,目前业界有几个发展方向。 1.存储虚拟化 对于存储面临的难题,业界采用的解决手段之一就是存储虚拟化。虚拟存储的概念实际上在早期的计算机虚拟存储器中就已经很好地得以体现,常说的网络存储虚拟化只不过是在更大规模范围内体现存储虚拟化的思想。该技术通过聚合多个存储设备的空间,灵活部署存储空间的分配,从而实现现有存储空间高利用率,避免了不必要的设备开支。 存储虚拟化的好处显而易见,可实现存储系统的整合,提高存储空间的利用率,简化系统的管理,保护原有投资等。越来越多的厂商正积极投身于存储虚拟化领域,比如数据复制、自动精简配置等技术也用到了虚拟化技术。虚拟化并不是一个单独的产品,而是存储系统的一项基本功能。它对于整合异构存储环境、降低系统整体拥有成本是十分有效的。在存储系统的各个层面和不同应用领域都广泛使用虚拟化这个概念。考虑整个存储层次大体分为应用、文件和块设备三个层次,相应的虚拟化技术也大致可以按这三个层次分类。 目前大部分设备提供商和服务提供商都在自己的产品中包含存储虚拟化技术,使得用户能够方便地使用。 2.容量扩展 目前而言,在发展趋势上,存储管理的重点已经从对存储资源的管理转变到对数据资源

数据存储的四种常见方式

https://www.wendangku.net/doc/dd12996162.html, 数据存储的四种常见方式 数据存储,它的概念为数据在交流过程的情况下发生的临时数据以及加工的操作的进程里面要进行查找的讯息,一般的存储介质包含有磁盘以及磁带。数据存取的方法和数据文件组织紧紧的相连,它的最主要的就是创立记录逻辑和物理顺序的两者之间的互相对应的联系,进行存储地址的肯定,从而使得数据进行存取的速度得到提升。进行存储介质的方法因为使用的存储介质不一样采用的方法也不一样,当磁带上面的数据只是按照次序来进行存取的时候;在磁盘上面就能够根据使用的需求使用顺序或者是直接存取的方法。 ●在线存储 (Online storage):有时也称为二级存储。这种存储方式的好处是读写非常 方便迅捷,缺点是相对较贵并且容易因为误操作或者防病毒软件的误删除而使数据受到损害。这种存储方式提供最好的数据获取便利性,大磁盘阵列是其中最典型的代表之一。 ●脱机存储 (Offline storage):脱机存储用于永久或长期保存数据,而又不需要介质当 前在线或连接到存储系统上。这种存储方式指的是每次在读写数据时,必须人为的将存储介质放入存储系统。脱机存储的介质通常可以方便携带或转运,如磁带和移动硬盘。 ●近线存储 (Near-line storage):也称为三级存储。自动磁带库是一个典型代表。比起 在线存储,近线存储提供的数据获取便利性相对差一些,但是价格要便宜些。近线存储由于读取速度较慢,主要用于归档较不常用的数据。 ●异站保护 (Off-site vault):这种存储方式保证即使站内数据丢失,其他站点仍有数 据副本。为了防止可能影响到整个站点的问题,许多人选择将重要的数据发送到其他站点来作为灾难恢复计划。异站保护可防止由自然灾害、人为错误或系统崩溃造成的数据丢失。

存储器的发展史

1.存储器设备发展之汞延迟线是基于汞在室温时是液体,同时又是导体,每比特数据用机械波的波峰(1)和波谷(0)表示。 机械波从汞柱的一端开始,一定厚度的熔融态金属汞通过一振动膜片沿着纵向从一端传到另一端,这样就得名“汞延迟线”。 在管的另一端,一传感器得到每一比特的信息,并反馈到起点。 设想是汞获取并延迟这些数据,这样它们便能存储了。 这个过程是机械和电子的奇妙结合。 缺点是由于环境条件的限制,这种存储器方式会受各种环境因素影响而不精确。 1950年,世界上第一台具有存储程序功能的计算机EDVAC由冯.诺依曼博士领导设计。 它的主要特点是采用二进制,使用汞延迟线作存储器,指令和程序可存入计算机中。 1951年3月,由ENIAC的主要设计者莫克利和埃克特设计的第一台通用自动计算机UNIVAC-I交付使用。 它不仅能作科学计算,而且能作数据处理。 2.存储器设备发展之磁带UNIVAC-I第一次采用磁带机作外存储器,首先用奇偶校验方法和双重运算线路来提高系统的可靠性,并最先进行了自动编程的试验。 磁带是所有存储器设备发展中单位存储信息成本最低、容量最大、标准化程度最高的常用存储介质之 一。 它互换性好、易于保存,近年来,由于采用了具有高纠错能力的编码技术和即写即读的通道技术,大大提高了磁带存储的可靠性和读写速度。

根据读写磁带的工作原理可分为螺旋扫描技术、线性记录(数据流)技术、DLT技术以及比较先进的LTO技术。 根据读写磁带的工作原理,磁带机可以分为六种规格。 其中两种采用螺旋扫描读写方式的是面向工作组级的DAT(4mm)磁带机和面向部门级的8mm磁带机,另外四种则是选用数据流存储技术设计的设备,它们分别是采用单磁头读写方式、磁带宽度为1/4英寸、面向低端应用的Travan和DC系列,以及采用多磁头读写方式、磁带宽度均为1/2英寸、面向高端应用的DLT和IBM的3480/3490/3590系列等。 磁带库是基于磁带的备份系统,它能够提供同样的基本自动备份和数据恢复功能,但同时具有更先进的技术特点。 它的存储容量可达到数百PB,可以实现连续备份、自动搜索磁带,也可以在驱动管理软件控制下实现智能恢复、实时监控和统计,整个数据存储备份过程完全摆脱了人工干涉。 磁带库不仅数据存储量大得多,而且在备份效率和人工占用方面拥有无可比拟的优势。 在网络系统中,磁带库通过SAN(Storage Area Network,存储区域网络)系统可形成网络存储系统,为企业存储提供有力保障,很容易完成远程数据访问、数据存储备份或通过磁带镜像技术实现多磁带库备份,无疑是数据仓库、ERP等大型网络应用的良好存储设备。 3.存储器设备发展之磁鼓1953年,随着存储器设备发展,第一台磁鼓应用于IBM 701,它是作为内存储器使用的。 磁鼓是利用铝鼓筒表面涂覆的磁性材料来存储数据的。 鼓筒旋转速度很高,因此存取速度快。 它采用饱和磁记录,从固定式磁头发展到浮动式磁头,从采用磁胶发展到采用电镀的连续磁介质。 这些都为后来的磁盘存储器打下了基础。

存储设备的三种类型

1常见存储类型 对于企业存储设备而言,根据其实现方式主要划分为DAS、SAN和NAS三种,分别针对不同的应用环境,提供了不同解决方案。(区别见图2) 图1三种存储技术比较 1.1DAS DAS(DirectAttachSTorage):是直接连接于主机服务器的一种储存方式,每一台主机服务器有独立的储存设备,每台主机服务器的储存设备无法互通,需要跨主机存取资料时,必须经过相对复杂的设定,若主机服务器分属不同的操作系统,要存取彼此的资料,更是复杂,有些系统甚至不能存取。通常用在单一网络环境下且数据交换量不大,性能要求不高的环境下,可以说是一种应用较为早的技术实现。 1.2SAN SAN(StorageAreaNetwork):是一种用高速(光纤)网络联接专业主机服务器的一种储存方式,此系统会位于主机群的后端,它使用高速I/O联结方式,如SCSI,ESCON及 Fibre-Channels。一般而言,SAN应用在对网络速度要求高、对数据的可靠性和安全性要求高、对数据共享的性能要求高的应用环境中,特点是代价高,性能好。例如电信、银行的大数据量关键应用。 1.3NAS NAS(NetworkAttachedStorage):是一套网络储存设备,通常是直接连在网络上并提供资料存取服务,一套NAS储存设备就如同一个提供数据文件服务的系统,特点是性价比高。例如教育、政府、企业等数据存储应用。 2三种技术比较 以下,通过表格的方式对于三种存储技术进行一个简单的比较。 表格1三种技术的比较 录像存储 录像存储是指将监控图像录制下来,并以文件形式存储在存储设备中,并可在以后随时被读出回放。 存储的实现有多种模式,包括DAS(直连存储)、SAN(存储区域网)和NAS(网络就是普通计算机系统最常用的存储方式,即将存储介质(硬盘)直接挂接DAS存储)等。. 在CPU的直接访问总线上,优点是访问效率高,缺点是占用系统总线资源、挂接数量有限,一般适用于低端PC系统。SAN是将存储和传统的计算机系统分开,系统对存储的访问通过专用的存储网络来访问,对存储的管理可交付与存储网络来管理,优点是高效的存储管理、存储升级容易,而缺点则是系统较大,成本过高,适用于高端设备。NAS则充分利用系统原有的网络接口,对存储的访问是通过通用网络接口,访问通过高层接口实现,同时设备可专注与存储的管理,优点是系统简单、兼容现有系统、扩容方便,缺点则是效率相对比较低。 典型的传统数字硬盘录像机设备一般都采用DAS方式,即自身包含若干硬盘,录像数据进行压缩编码后直接存储在本地硬盘中,回放也从本地硬盘中读出。网络功能只是个附加的功能,主要面向远程终端实时监控本地图像和回放本地录像。在系统比较大时,这种方式必然是分布式存储的,给系统管理带来了麻烦。数字硬盘录像机的发展将使网络成为中心,而规模的增大使得分布式存储的缺点更加显着。采用NAS作为录像的存储设备,解决了传统数字硬盘录像机所限制的这些问题,作为下一代数字录像系统,其优势表现在: a优良的设备环境:由于硬盘的不稳定性,需要一个更好的工作环境来延长硬盘的寿命和减少存储的不可用时间。NAS作为专业的存储设备,针对多硬盘环境作了优化设计,让硬盘工作的更稳定、更可靠。

存储类型分类资料

常见存储类型 对于企业存储设备而言,根据其实现方式主要划分为DAS、SAN和NAS三种,分别针对不同的应用环境,提供了不同解决方案。(区别见图2) 图1三种存储技术比较 DAS DAS(Direct Attach Storage):是直接连接于主机服务器的一种储存方式,每一台主机服务器有独立的储存设备,每台主机服务器的储存设备无法互通,需要跨主机存取资料时,必须经过相对复杂的设定,若主机服务器分属不同的操作系统,要存取彼此的资料,更是复杂,有些系统甚至不能存取。通常用在单一网络环境下且数据交换量不大,性能要求不高的环境下,可以说是一种应用较为早的技术实现。 SAN SAN(Storage Area Network):是一种用高速(光纤)网络联接专业主机服务器的一种储存方式,此系统会位于主机群的后端,它使用高速I/O 联结方式, 如SCSI, ESCON 及 Fibre- Channels。一般而言,SAN应用在对网络速度要求高、对数据的可靠性和安全性要求高、对数据共享的性能要求高的应用环境中,特点是代价高,性能好。例如电信、银行的大数据量关键应用。

NAS NAS(Network Attached Storage):是一套网络储存设备,通常是直接连在网络上并提供资料存取服务,一套 NAS 储存设备就如同一个提供数据文件服务的系统,特点是性价比高。例如教育、政府、企业等数据存储应用。 三种技术比较 以下,通过表格的方式对于三种存储技术进行一个简单的比较。

表格 1 三种技术的比较 录像存储 录像存储是指将监控图像录制下来,并以文件形式存储在存储设备中,并可在以后随时被读出回放。 存储的实现有多种模式,包括DAS(直连存储)、SAN(存储区域网)和NAS(网络存储)等。DAS就是普通计算机系统最常用的存储方式,即将存储介质(硬盘)直接挂接在CPU的直接访问总线上,优点是访问效率高,缺点是占用系统总线资源、挂接数量有限,一般适用于低端PC系统。SAN是将存储和传统的计算机系统分开,系统对存储的访问通过专用的存储网络来访问,对存储的管理可交付与存储网络来管理,优点是高效的存储管理、存储升级容易,而缺点则是系统较大,成本过高,适用于高端设备。NAS则充分利用系统原有的网络接口,对存储的访问是通过通用网络接口,访问通过高层接口实现,同时设备可专注与存储的管理,优点是系统简单、兼容现有系统、扩容方便,缺点则是效率相对比较低。 典型的传统数字硬盘录像机设备一般都采用DAS方式,即自身包含若干硬盘,录像数据进行压缩编码后直接存储在本地硬盘中,回放也从本地硬盘中读出。网络功能只是个附加的功能,主要面向远程终端实时监控本地图像和回放本地录像。在系统比较大时,这种方式必然是分布式存储的,给系统管理带来了麻烦。数字硬盘录像机的发展将使网络成为中心,而规模的增大使得分布式存储的缺点更加显著。采用NAS作为录像的存储设备,解决了传统数字硬盘录像机所限制的这些问题,作为下一代数字录像系统,其优势表现在: ●优良的设备环境:由于硬盘的不稳定性,需要一个更好的工作环境来延 长硬盘的寿命和减少存储的不可用时间。NAS作为专业的存储设备,针 对多硬盘环境作了优化设计,让硬盘工作的更稳定、更可靠。 ●专业的存储管理:有效的存储管理在数据量上升时更加显得重要,数据 的安全性与冗余性将更受关注。NAS通过专业软件对大容量存储进行管 理,增加安全机制及冗余管理,使得存放的数据更便捷、更放心。 ●轻松的容量扩张:对容量的需求日益增加的今日,更加看重存储容量的 可扩张性。NAS的容量扩张基本上是Plug&Play的模式,方便用户升级。

存储器的发展史

1.存储器设备发展之汞延迟线 汞延迟线是基于汞在室温时是液体,同时又是导体,每比特数据用机械波的波峰(1)和波谷(0)表示。机械波从汞柱的一端开始,一定厚度的熔融态金属汞通过一振动膜片沿着纵向从一端传到另一端,这样就得名“汞延迟线”。在管的另一端,一传感器得到每一比特的信息,并反馈到起点。设想是汞获取并延迟这些数据,这样它们便能存储了。这个过程是机械和电子的奇妙结合。缺点是由于环境条件的限制,这种存储器方式会受各种环境因素影响而不精确。 1950年,世界上第一台具有存储程序功能的计算机EDVAC由冯.诺依曼博士领导设计。它的主要特点是采用二进制,使用汞延迟线作存储器,指令和程序可存入计算机中。 1951年3月,由ENIAC的主要设计者莫克利和埃克特设计的第一台通用自动计算机UNIVAC-I交付使用。它不仅能作科学计算,而且能作数据处理。 2.存储器设备发展之磁带 UNIVAC-I第一次采用磁带机作外存储器,首先用奇偶校验方法和双重运算线路来提高系统的可靠性,并最先进行了自动编程的试验。 磁带是所有存储器设备发展中单位存储信息成本最低、容量最大、标准化程度最高的常用存储介质之一。它互换性好、易于保存,近年来,由于采用了具有高纠错能力的编码技术和即写即读的通道技术,大大提高了磁带存储的可靠性和读写速度。根据读写磁带的工作原理可分为螺旋扫描技术、线性记录(数据流)技术、DLT技术以及比较先进的LTO技术。 根据读写磁带的工作原理,磁带机可以分为六种规格。其中两种采用螺旋扫描读写方式的是面向工作组级的DAT(4mm)磁带机和面向部门级的8mm磁带机,另外四种则是选用数据流存储技术设计的设备,它们分别是采用单磁头读写方式、磁带宽度为1/4英寸、面向低端应用的Travan和DC系列,以及采用多磁头读写方式、磁带宽度均为1/2英寸、面向高端应用的DLT和IBM的 3480/3490/3590系列等。 磁带库是基于磁带的备份系统,它能够提供同样的基本自动备份和数据恢复功能,但同时具有更先进的技术特点。它的存储容量可达到数百PB,可以实现连续备份、自动搜索磁带,也可以在驱动管理软件控制下实现智能恢复、实时监控和统计,整个数据存储备份过程完全摆脱了人工干涉。 磁带库不仅数据存储量大得多,而且在备份效率和人工占用方面拥有无可比拟的优势。在网络系统中,磁带库通过SAN(Storage Area Network,存储区域网络)系统可形成网络存储系统,为企业存储提供有力保障,很容易完成远程数据

各种常见类型的存储

浅谈我们经常遇到的存储 问大家一个问题,什么是SAN、什么是NAS、什么是SCSI,下文进行了很好的分解。 目前磁盘存储市场上,存储分类(如下表一)根据服务器类型分为:封闭系统的存储和开放系统的存储,封闭系统主要指大型机,AS400等服务器,开放系统指基于包括Windows、UNIX、Linux等操作系统的服务器;开放系统的存储分为:内置存储和外挂存储;开放系统的外挂存储根据连接的方式分为:直连式存储(Direct-Attached Storage,简称DAS)和网络化存储(Fabric-Attached Storage,简称FAS);开放系统的网络化存储根据传输协议又分为:网络接入存储(Network-Attached Storage,简称NAS)和存储区域网络(Storage Area Network,简称SAN)。由于目前绝大部分用户采用的是开放系统,其外挂存储占有目前磁盘存储市场的70%以上,因此本文主要针对开放系统的外挂存储进行论述说明。 今天的存储解决方案主要为:直连式存储(DAS)、存储区域网络(SAN)、网络接入存储(NAS)。如下:

开放系统的直连式存储(Direct-Attached Storage,简称DAS)已经有近四十年的使用历史,随着用户数据的不断增长,尤其是数百GB以上时,其在备份、恢复、扩展、灾备等方面的问题变得日益困扰系统管理员。 主要问题和不足为: 直连式存储依赖服务器主机操作系统进行数据的IO读写和存储维护管理,数据备份和恢复要求占用服务器主机资源(包括CPU、系统IO等),数据流需要回流主机再到服务器连接着的磁带机(库),数据备份通常占用服务器主机资源20-30%,因此许多企业用户的日常数据备份常常在深夜或业务系统不繁忙时进行,以免影响正常业务系统的运行。直连式存储的数据量越大,备份和恢复的时间就越长,对服务器硬件的依赖性和影响就越大。 直连式存储与服务器主机之间的连接通道通常采用SCSI连接,带宽为10MB/s、20MB/s、40MB/s、80MB/s等,随着服务器CPU的处理能力越来越强,存储硬盘空间越来越大,阵列的硬盘数量越来越多,SCSI通道将会成为IO瓶颈;服务器主机SCSI ID资源有限,能够建立的SCSI通道连接有限。 无论直连式存储还是服务器主机的扩展,从一台服务器扩展为多台服务器组成的群集(Cluster),或存储阵列容量的扩展,都会造成业务系统的停机,从而给企业带来经济损失,

常见的网络存储技术及其发展趋势

探讨几种常见的网络存储技术及其发展趋势 2012-08-15 来源:作者:吴桂华 摘要:计算机的发展从单片机时代开始,历经客户服务器时代和互联网时代之后,现在正逐步走向网络时代。许多有别于传统存储系统的新趋势日益显现,而选择不当的网络存储技术,往往会使得单位在网络建设中盲目投资,造成单位的网络性能低下。本文通过分析直连附加存储、网络附加存储、存储区域网络三种网络存储架构的优点、缺点及应用,供不同需求的单位群体参考选择,同时也简单地介绍网络存储技术未来的发展趋势及方向。 关键词:服务器时代网络时代传统存储系统网络存储技术发展趋势随着不断加速的信息需求使得存储容量飞速增长,存储系统网络平台已经成为一个核心平台,同时各种应用对平台的要求也越来越高,不仅在存储容量上,还包括数据访问性能、数据传输性能、数据管理能力、存储扩展能力等等多个方面。可以说,存储网络平台的综合性能的优劣,将直接影响到整个系统的正常运行。因此,发展一种具有成本效益的和可管理的先进存储方式就成为必然。下面就当前的存储技术及发展趋势进行分析和探讨。 1、网络存储技术概述 所谓网络存储技术(Network Storage Technologies),就是以互联网为载体实现数据的传输与存储,数据可以在远程的专用存储设备上,也可以是通过服务器来进行存储。网络存储技术是基于数据存储的一种通用网络术语。实际上,我们可以将存储技术分为三个阶段:①总线存储阶段;②存储网络阶段;③虚拟存储阶段。以存储网络为中心的存储是对数据存储新需求的回答。它采用面向网络的存储体系结构,使数据处理和数据存储分离;网络存储体系结构包括了网络和I/O的精华,将I/O能力扩展到网络上,特别是灵活的网络寻址能力,远距离数据传输能力,I/O高效的原性能;通过网络连接服务器和存储资源,消除了不同存储设备和服务器之间的连接障碍;提高了数据的共享性、可用性和可扩展性、管理性。 2、几种传统的网络存储架构 网络存储架构大致分为三种:直连附加存储、网络附加存储、存储区域网络。这几种网络存储方式特点各异,应用在不同的领域。下面我们来做简单的介绍并分析其中区别。 2.1 直连附加存储(DAS:Direct Attached Storage) 直接网络存储(DAS)是指将存储设备通过SCSI接口或光纤通道直接连接到服务器上的方式。这种连接方式主要应用于单机或两台主机的集群环境中,主要优点是存储容量扩展的实施简单,投入成本少,见效快。DAS主要应用于: (1)服务器在地理分布上很分散,SAN或NAS在它们之间进行互连非常困难时;(2)存储系统必须被直接连接到应用服务器时;(3)包括许多数据库应用和应用服务器在内的应用时。 缺点: (1)不能提供跨平台的文件共享功能;(2)用户要备份数据和存储数据,都要占用服务器CPU的时间,降低了服务器的管理效能;(3)由于各个主机之间的数据独立,数据需要逐一备份,使数据备份工作较为困难;(4)随着服务器的增多,数据管理会越来越复杂;

数据存储的四种常见方式

数据存储的四种常见方式 This model paper was revised by the Standardization Office on December 10, 2020

数据存储的四种常见方式 数据存储,它的概念为数据在交流过程的情况下发生的临时数据以及加工的操作的进程里面要进行查找的讯息,一般的存储介质包含有磁盘以及磁带。数据存取的方法和数据文件组织紧紧的相连,它的最主要的就是创立记录逻辑和物理顺序的两者之间的互相对应的联系,进行存储地址的肯定,从而使得数据进行存取的速度得到提升。进行存储介质的方法因为使用的存储介质不一样采用的方法也不一样,当磁带上面的数据只是按照次序来进行存取的时候;在磁盘上面就能够根据使用的需求使用顺序或者是直接存取的方法。 在线存储 (Online storage):有时也称为二级存储。这种存储方式的好处是读写非常方便迅捷,缺点是相对较贵并且容易因为误操作或者防病毒软件的误删除而使数据受到损害。这种存储方式提供最好的数据获取便利性,大磁盘阵列是其中最典型的代表之一。 脱机存储 (Offline storage):脱机存储用于永久或长期保存数据,而又不需要介质当前在线或连接到存储系统上。这种存储方式指的是每次在读写数据时,必须人为的将存储介质放入存储系统。脱机存储的介质通常可以方便携带或转运,如磁带和移动硬盘。 近线存储 (Near-line storage):也称为三级存储。自动磁带库是一个典型代表。比起在线存储,近线存储提供的数据获取便利性相对差一些,但是价格要便宜些。近线存储由于读取速度较慢,主要用于归档较不常用的数据。 异站保护 (Off-site vault):这种存储方式保证即使站内数据丢失,其他站点仍有数据副本。为了防止可能影响到整个站点的问题,许多人选择将重要的数据发送到其他站点来作为灾难恢复计划。异站保护可防止由自然灾害、人为错误或系统崩溃造成的数据丢失。

数据库数据类型的使用与区别

数据库数据类型的使用与区别 整型数据类型: 1、INT (INTEGER) INT (或INTEGER)数据类型存储从-2的31次方(-2 ,147 ,483 ,648)到2的31次方-1 (2 ,147 ,483,647)之间的所有正负整数。每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。 2、SMALLINT SMALLINT 数据类型存储从-2的15次方( -32, 768)到2的15次方-1( 32 ,767 )之间的所有正负整数。每个SMALLINT 类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。 3、TINYINT TINYINT数据类型存储从0 到255 之间的所有正整数。每个TINYINT类型的数据占用1 个字节的存储空间。 4、BIGINT BIGINT 数据类型存储从-2^63 (-9 ,223, 372, 036, 854, 775, 807)到2^63-1( 9, 223, 372, 036 ,854 ,775, 807)之间的所有正负整数。每个BIGINT 类型的数据占用8个字节的存储空间。 浮点数据类型: 浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server 中采用上舍入(Round up 或称为只入不舍)方式进行存储。所谓上舍入是指,当(且仅当)要舍入的数是一个非零数时,对其保留数字部分的最低有效位上的数值加1 ,并进行必要的进位。若一个数是上舍入数,其绝对值不会减少。如:对3.14159265358979 分别进行 2 位和12位舍入,结果为 3.15 和3.141592653590。 1、REAL 数据类型 REAL数据类型可精确到第7 位小数,其范围为从-3.40E -38 到3.40E +38。每个REAL类型的数据占用4 个字节的存储空间。 2、FLOAT FLOAT数据类型可精确到第15 位小数,其范围为从-1.79E -308 到1.79E +308。每个FLOAT 类型的数据占用8 个字节的存储空间。 FLOAT数据类型可写为FLOAT[ n ]的形式。n 指定FLOAT 数据的精度。n 为1到15 之间的整数值。当n 取1 到7 时,实际上是定义了一个REAL 类型的数据,系统用4 个字节存储它;当n 取8 到15 时,系统认为其是FLOAT 类型,用8 个字节存储它。 3、DECIMAL DECIMAL数据类型可以提供小数所需要的实际存储空间,但也有一定的限制,您可以用2 到17 个字节来存储从-10的38次方-1 到10的38次方-1 之间的数值。可将其写为DECIMAL[ p [s] ]的形式,p 和s 确定了精确的比例和数位。

信息存储技术的发展过程

信息存储技术的发展过 程 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】

信息存储发展史 远古信息存储 1.结绳记事 结绳记事是文字发明前,人们所使用的一种记事方法。即在一条绳子上打结,用以记事。上古时期的中国及秘鲁印地安人皆有此习惯,即到近代,一些没有文字的民族,仍然采用结绳记事来传播信息 上古无文字,结绳以记事。《.系辞下》:"上古,后世圣人易之以书契。"孔颖达疏:"结绳者,注云,事大大结其绳,事小小结其绳,义或然 也。"晋葛洪《抱朴子.钧世》:"若舟车之代步涉,文墨之改结绳,诸后作而善于前事。"后以指上古时代。例如:(Quipu或khipu)是古代的一种结绳记事的方法,用来计数或者记录历史。它是由许多颜色的绳结编成的。这种结绳记事方法已经失传,目前还没有人能够了解其全部含义。结绳记事(计数):原始社会创始的以绳结形式反映客观经济活动及其数量关系的记录方式。结绳记事(计数)是被原始先民广泛使用的记录方式之一。文献记载:“上古结绳而治,后世圣人易以书契,百官以治,万民以察”(《易·系辞下》)。虽然目前末发现原始先民遗留下的结绳实物,但原始社会绘画遗存中的网纹图、上的绳纹和陶制网坠等实物均提示出先民结网是当时渔猎的主要条件,因此,结绳记事(计数)作为当时的记录方式具有客观基础的。其结绳方法,据古书记载为:“事大,大结其绳;事小,小结其绳,之多少,随物众寡”(《易九家言》),即根据事件的性质、规模或所涉数量的不同结系出不同的绳结。民族学资料表明,近现代有些少数民族仍在采用结绳的方式来记录客观活动

2.甲骨文文字纸张 甲骨文是已发现的古代文字中时代最早、体系较为完整的文字。甲骨文主要指文,又称为“殷墟文字”、“殷契”,是殷商时代刻在兽骨上的文字。19世纪末年在殷代遗址被今小屯发现,继承了的造字方法,是中国后期(前14~前11世纪)王室用于占卜记事而刻(或写)在龟甲和兽骨上的文字。 古人以上等蚕茧抽丝织绸,剩下的恶茧、病茧等则用漂絮法制取丝绵。漂絮完毕,篾席上会遗留一些残絮。当漂絮的次数多了,篾席上的残絮便积成一层纤维薄片,经晾干之后剥离下来,可用于书写。这种漂絮的副产物数量不多,在古书上称它为赫蹏或方絮。这表明了中国造纸术的起源同丝絮有着渊源关系。东汉元兴元年(105)蔡伦发明造纸术。他用树皮、麻头及敝布、鱼网等植物原料,经过挫、捣、抄、烘等工艺制造的纸,是现代纸的渊源。公元三到六世纪的魏晋南北朝时期,我国造纸术不断革新。在原料方面,除原有的麻、楮外,又扩展到用桑皮、藤皮造纸。蔡伦首先使用树皮造纸,树皮是比麻类丰富得多的原料,这可以使纸的产量大幅度的提高。树皮中所含的木素、果胶、蛋白质远比麻类高,因此树皮的脱胶、制浆要比麻类难度大。这就促使蔡伦改进造纸的技术。西汉时利用石灰水制浆,东汉时改用草木灰水制浆,草木灰水有较大 的碱性,有利于提高纸浆的质量。

数据存储的四种常见方式

数据存储的四种常见方式 数据存储,它的概念为数据在交流过程的情况下发生的临时数据以及加工的操作的进程里面要进行查找的讯息,一般的存储介质包含有磁盘以及磁带。数据存取的方法和数据文件组织紧紧的相连,它的最主要的就是创立记录逻辑和物理顺序的两者之间的互相对应的联系,进行存储地址的肯定,从而使得数据进行存取的速度得到提升。进行存储介质的方法因为使用的存储介质不一样采用的方法也不一样,当磁带上面的数据只是按照次序来进行存取的时候;在磁盘上面就能够根据使用的需求使用顺序或者是直接存取的方法。 ●在线存储(Online storage):有时也称为二级存储。这种存储方式的好处是读写非常方 便迅捷,缺点是相对较贵并且容易因为误操作或者防病毒软件的误删除而使数据受到损害。这种存储方式提供最好的数据获取便利性,大磁盘阵列是其中最典型的代表之一。 ●脱机存储(Offline storage):脱机存储用于永久或长期保存数据,而又不需要介质当前 在线或连接到存储系统上。这种存储方式指的是每次在读写数据时,必须人为的将存储介质放入存储系统。脱机存储的介质通常可以方便携带或转运,如磁带和移动硬盘。 ●近线存储(Near-line storage):也称为三级存储。自动磁带库是一个典型代表。比起在 线存储,近线存储提供的数据获取便利性相对差一些,但是价格要便宜些。近线存储由于读取速度较慢,主要用于归档较不常用的数据。 ●异站保护(Off-site vault):这种存储方式保证即使站内数据丢失,其他站点仍有数据副 本。为了防止可能影响到整个站点的问题,许多人选择将重要的数据发送到其他站点来作为灾难恢复计划。异站保护可防止由自然灾害、人为错误或系统崩溃造成的数据丢失。

网络存储技术优缺点与发展趋势

网络存储技术优缺点与 发展趋势 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

网络存储技术优缺点与发展趋势 随着不断加速的信息需求使得存储容量飞速增长,存储系统网络平台已经成为一个核心平台,同时各种应用对平台的要求也越来越高,不仅在存储容量上,还包括数据访问性能、数据传输性能、数据管理能力、存储扩展能力等等多个方面。可以说,存储网络平台的综合性能的优劣,将直接影响到整个系统的正常运行。因此,发展一种具有成本效益的和可管理的先进存储方式就成为必然。下面就当前的存储技术及发展趋势进行分析和探讨。信息量的飞速发展使得存储容量也飞速增长,发展一种具有成本效益和可管理和先进存储方式就成为必然。本文就几种传统的网络存储框架进行探讨,之后介绍了新的存储技术,并分析了网络存储体系结构的发展趋势。 随着不断加速的信息需求使得存储容量飞速增长,存储系统网络平台已经成为一个核心平台,同时各种应用对平台的要求也越来越高,不仅在存储容量上,还包括数据访问性能、数据传输性能、数据管理能力、存储扩展能力等等多个方面。可以说,存储网络平台的综合性能的优劣,将直接影响到整个系统的正常运行。因此,发展一种具有成本效益的和可管理的先进存储方式就成为必然。下面就当前的存储技术及发展趋势进行分析和探讨。 一、网络存储技术概述 所谓网络存储技术(Network Storage Technologies),就是以互联网为载体实现数据的传输与存储,数据可以在远程的专用存储设备上,也可以是通过服务器来进行存储。网络存储技术是基于数据存储的一种通用网络术语。实际上,我

们可以将存储技术分为三个阶段:①总线存储阶段;②存储网络阶段;③虚拟存储阶段。以存储网络为中心的存储是对数据存储新需求的回答。它采用面向网络的存储体系结构,使数据处理和数据存储分离;网络存储体系结构包括了网络和I/O的精华,将I/O能力扩展到网络上,特别是灵活的网络寻址能力,远距离数据传输能力,I/O高效的原性能;通过网络连接服务器和存储资源,消除了不同存储设备和服务器之间的连接障碍;提高了数据的共享性、可用性和可扩展性、管理性。 二、几种传统的网络存储架构 网络存储架构大致分为三种:直连附加存储、网络附加存储、存储区域网络。这几种网络存储方式特点各异,应用在不同的领域。下面我们来做简单的介绍并分析其中区别。 直连附加存储(DAS:Direct Attached Storage) 直接网络存储(DAS)是指将存储设备通过SCSI接口或光纤通道直接连接到服务器上的方式。这种连接方式主要应用于单机或两台主机的集群环境中,主要优点是存储容量扩展的实施简单,投入成本少,见效快。DAS主要应用于: ①服务器在地理分布上很分散,SAN或NAS在它们之间进行互连非常困难时; ②存储系统必须被直接连接到应用服务器时; ③包括许多数据库应用和应用服务器在内的应用时。

数据存储方式

数据存储的几种方式: 总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络。其中文件和数据库可能用的稍多一些,文件用起来较为方便,程序可以自己定义格式;数据库用起稍烦锁一些,但它有它的优点,比如在海量数据时性能优越,有查询功能,可以加密,可以加锁,可以跨应用,跨平台等等;网络,则用于比较重要的事情,比如科研,勘探,航空等实时采集到的数据需要马上通过网络传输到数据处理中心进行存储并进行处理。对于Android平台来讲,它的存储方式也不外乎这几种,按方式总体来分,也是文件,数据库和网络。但从开发者的角度来讲它可以分为以下五种方式: 1.SharedPreferences共享偏好2.Internal Storage内部存储空间3.External Storage外部存储空间4.SQLite Database数据库5.Internet网络这几种方式各自有各自的优点和缺点,要根据不同的实际情况来选择,而无法给出统一的标准。下面就各种方式谈谈它们的优缺点,以及最合适的使用情况:1.Shared Preferences共享偏好SharedPreferences是用来存储一些Key/Value类似的成对的基本数据类型,注意,它只能存储基本数据类型,也即int, long, boolean, String, float。事实上它完全相当于一个HashMap,唯一不同的就是HashMap中的Value可以是任何对象,而SharedPreferences中的值只能存储基本数据类型(primitive types)。对于它的使用方法,可以参考Android Developer Guide,这里不重复。如此来看,最适合SharedPreferences的地方就是保存配置信息,因为很多配置信息都是Key/Value。事实上,在Android当中SharedPreferences使用最多的地方也是用来保存配置(Settings)信息,系统中的Settings中这样,各个应用中的Settings也是这样。并且,Android中为了方便的使用SharedPreferences 保存配置信息,它来专门有PreferenceActivity用来封装。也就是说如果你想在应用程序中创建配置(Settings),你可以直接使用PreferenceActivity和一些相关的专门为Preference封装的组件,而不用再直接去创建,读取和保存SharedPreference,Framework中的这些组件会为你做这些事。再谈谈一些使用SharedPreference时的技巧,它只能保存基本数据类型,但假如我想保存一个数组,怎么办?可以把数据进行处理,把它转化成一个String,取出的时候再还原就好了;再如,如想保存一个对象,怎么办,同样,可以把对象序列化成为字符序列,或转成String(Object.toString()),或是把它的HashCode(Object.hashCode())当成Value 保存进去。总之,SharedPreferences使用起来十分的方便,可以灵活应用,因为它简单方便,所以能用它就尽量不要用文件或是数据库。 1.Internal Storage内部存储空间所谓的内部存储与外部存储,是指是否是手机内置。手机内置的存储空间,称为内部存储,它是手机一旦出厂就无法改变,它也是手机的硬件指标之一,通常来讲手机内置存储空间越大意味着手机价格会越贵(很多地方把它称为手机内存,但我们做软件的知道,这并不准确,内存是指手机运行时存储程序,数据和指令的地方;这里应该是手机内部存储的简称为内存,而并非严格意义上的内存)。内部存储空间十分有限,因而显得可贵,所以我们要尽可能避免使用;另外,它也是系统本身和系统应用程序主要的数据存储所在地,一旦内部存储空间耗尽,手机也就无法使用了。所以对于内部存储空间,我们要尽量避免使用。上面所谈到的Shared Preferences和下面要谈到的SQLite数据库也都是存储在内部存储空间上的。Android本身来讲是一个Linux操作系统,所以它的内部存储空间,对于应用程序和用户来讲就是“/data/data"目录。它与其他的(外部的存储)相比有着比较稳定,存储方便,操作简单,更加安全(因为可以控制访问权限)等优点。而它唯一的缺点就是它比较有限,比较可贵。虽然,可以非常容易的知道程序本身的数据所在路径,所有的应用程序的数据路径都是“/data/data/app-package-name/”,所有的程序用到的数据,比如libs库,SharedPreferences

相关文档