仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 913|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网站制作之2Gb or Not 2Gb - File limits in Orac...

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:39:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对于IT经理来说,令他们喜欢的MySQL的简单性还有另一方面。MySQL可以运行的更快速。某些人或许会说MySQL缺少了一些人们想要的功能。oracle
2GborNot2Gb-FilelimitsinOracle



翻译:Kamus(Seraphim)

校订:Bloomit

邮件:kamus@itpub.net

日期:2004-1



常常会传闻导进导出的时分,备份恢复的时分,SQL*Loader导进数据的时分,文件超越了2G巨细,了局招致毛病。

自己理科卒业,甚么二进制,十六进制,数据布局,操纵体系等等的一概没有学过,以是对此成绩一向都只要一个含混的熟悉,明天在metalink下面闲逛,溘然发明了这篇文章,兴之而至,决意好悦目看,看完今后,感到关于此成绩分明了良多,因而就特地翻译成了中文,但愿对人人也有所匡助。

关于本文中说起的一切别的Notes和Bugs也做了尽量的收拾(还未翻译,今后假如偶然间再渐渐作),只是文中提到的一些Bug因为自己Metalink帐号的限定亦或是Bug的不公然性,其实不能看到具体形貌,关于如许的Bug就没法再作收拾。



原文出处:http://metalink.oracle.com

DocID:Note:62427.1原文创立日期:1998-9-2原文最初更新日期:2003-8-6



先容



本文论述了“2Gb”成绩,注释了为何2Gb会是一个如许充斥魔力的数字,而且假如你想在Oracle的使用中利用凌驾2Gb巨细的文件,那末这篇文章也告知了一些你应当晓得的事变。



本文以Unix操纵体系为基本,由于年夜部分的2Gb成绩都产生在Unix下面,固然文中也提到了一些关于别的非Unix操纵体系的相干材料,在本文的最初一节列出了各个操纵体系本人的限定。



本文主题包含以下几点:

l为何2Gb是一个特别的数字?

l如何利用凌驾2Gb(2Gb+)的文件?

l导出(Export)和2Gb

lSQL*Loader和2Gb

lOracle和别的2Gb成绩

l分歧操纵体系上的“年夜文件”(LargeFiles)



为何2Gb是一个特别的数字?



良多以后正在利用的CPU和API都利用了32位(bit)的字长,而恰是这个字长关于良多操纵发生了影响。



浩瀚的场所下文件操纵的尺度API在对文件巨细和文件中以后地位的处置都利用了有标记32位字(32-bitsignedword)。一个有标记32位字以最高位来暗示正负,以是只剩下31位来存储真实的数值,而16进制中存储在31位中的最年夜正值就是0x7FFFFFFF,也就是10进制中的+2147483647,这恰是一个邻近2Gb的值。



2Gb大概更年夜的文件一样平常被称为“年夜文件”,当你在32位情况中利用2147483647乃至更年夜的数字时,你就极可能会碰着一些成绩。为懂得决这些成绩,最新的操纵体系已从头界说了一系列完整使用64位寻址体例来操纵文件巨细和偏移量的体系函数。最新的Oracle刊行版也已利用了这些新的接口,可是假如在你决意要利用“年夜文件”之前,你仍旧有很多的成绩必要思索。



别的一个特别的数字是4Gb。也就是作为无标记字(unaignedvalue)的十六进制数字0xFFFFFFFF(十进制是4294967295),这是一个略小于4Gb的值。将该值加一将使低4位字节成为0x00000000,同时发生1进位。这个进位在32位运算中将会得到。以是4Gb也是一个大概会发生成绩的特别数字。本文中对这个成绩也有所说起。



关于利用Oracle这意味着甚么?



32bit的成绩在很多方面都影响到了Oracle,为了利用“年夜文件”,你必要满意以下前提:

1.一个撑持2Gb+文件的操纵体系大概裸设备(Rawdevices)

2.一个具有撑持存取2Gb+文件的API的操纵体系

3.一个利用了这些API的Oracle版本



明天年夜多半的平台都已撑持了年夜文件,而且关于这些文件有64bit的API,Oracle7.3及今后版本一样平常已利用了这些API,可是依据分歧的平台,分歧的操纵体系和分歧的Oracle版本仍旧有良多纷歧样的情形。在一些场所下默许就是撑持“年夜文件”的,可是别的一些场所却大概必需要打一些补钉。



一向到写这篇文章的时分,Oracle内里另有一些工具是没有更新到利用这些新的API的,好比尽人皆知的EXPORT和SQL*LOADER,不外仍旧再次夸大一下,因为平台和操纵体系的分歧,情形仍是纷歧样的。



为何要利用2Gb+的文件?



在这一节中我们试着总结一下关于Oracle的数据文件利用年夜文件和设备("large"files/devices)的长处和弱点。



利用年夜于2Gb文件的长处:

l在年夜多半平台上Oracle7撑持最多1022个数据文件。假如文件小于2G,那末也就是限定了数据库的巨细只能是小于2044Gb。固然这关于撑持了更多半据文件的Oracle8来讲已不再是个成绩(Oracle8撑持每一个表空间中包括最多1022个数据文件)。

l在实际情形中Oracle7的最年夜数据库尺寸会比2044Gb小,由于一样平常数据文件都寄存在独自的表空间中,而良多数据文件便可能远远小于2Gb。利用年夜文件可让数据库超出2044Gb的这个限定。

l利用年夜文件意味着关于较小的数据库只必要办理较少的文件。

l必要较少的文件处置资本。



利用年夜于2Gb文件的弱点:

l恢复的单元更年夜了。一个2Gb文件的备份和复原,依据备份媒体和磁盘速率的差别,会泯灭15分钟到1个小时的工夫,那末一个8Gb的文件就要花4倍如许的工夫。

l备份和恢复的并行操纵新能将会收到影响。

l会碰着一些平台独有的限定,好比说在凌驾2Gb以上异步I/O的操纵便可能会酿成线性操纵。

l处置2Gb以上的文件大概会必要补钉大概一些特别的设置。相对小文件来讲也会有更年夜的风险性。好比在一些AIX的刊行版上,凌驾2Gb,异步I/O就会利用线性操纵。



利用年夜于2Gb文件的要点:

l跟操纵体系供应商确认,年夜文件是不是被撑持,同时要怎样往设置。

l跟操纵体系供应商确认,真实的最年夜文件限定是几?

l扣问Oracle手艺撑持,断定关于你现有的平台,操纵体系版本,Oracle版本,是不是必要甚么补钉大概另有甚么限定?

l记着,假如你真的思索关于操纵体系大概Oracle要打一些补钉的话,那末就再反省一遍下面提到的这些成绩。

l确认关于一切要利用年夜文件读取的用户来讲,操纵体系的限定已准确设定。

l确认一切的备份剧本都可以处置年夜文件。

l注重,关于利用凌驾2Gb的数据文件,关于最年夜文件巨细另有一个限定。这个限定依附于你的体系平台和Oracle初始化参数DB_BLOCK_SIZE。在年夜多半平台上(包含Unix,NT,VMS)文件巨细的限定在4194302*DB_BLOCK_SIZE这么年夜。



[NOTE:112011.1]文档形貌了改动文件巨细中存在的成绩,出格是凌驾了2Gb的时分。



一样平常必要注重的要点:

必要当心设置文件的主动扩大。明智的作法是在不利用“年夜文件”的场所下,将主动扩大的数据文件最年夜尺寸限定在2Gb以下。别的注重因为[BUG:568232]将有大概界说一个凌驾Oracle处置极限的MAXSIZE数值,这在resize以后将会激发一个外部毛病(毛病显现为ORA-600[3292])



在良多平台上,Oracle数据文件的头部都包括着附加的数据块,以是创立一个2Gb的数据文件实践上必要比2Gb更多的磁盘空间。在UNIX平台上数据文件头部的附加数据块巨细一般即是DB_BLOCK_SIZE的巨细,可是在裸设备上大概必要占用更多一些的空间。



2Gb相干的Oracle毛病

当2Gb限定抵达的时分大概会产生上面这些毛病,这些毛病的发生没有特定的按次。

ORA-01119Errorincreatingdatafilexxxx

ORA-27044unabletowriteheaderblockoffile

SVR4Error:22:Invalidargument

ORA-19502writeerroronfilefilename,blocknox(blocksize=nn)

ORA-27070skgfdisp:asyncread/writefailed

ORA-02237invalidfilesize

KCF:write/openerrordba=xxxxxxblock=xxxxonline=xxxxfile=xxxxxxxxfilelimitexceed.

Unixerror27,EFBIG






人力成本上的节省,MySQL的用户Spacemonkey实验室的首席执行官MitchPirtle如此表示:“维护MySQL使得你不需要一个年薪15万美元的DBA。
小女巫 该用户已被删除
沙发
发表于 2015-1-19 20:40:48 | 只看该作者
从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
第二个灵魂 该用户已被删除
板凳
发表于 2015-1-27 07:31:16 | 只看该作者
学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!
愤怒的大鸟 该用户已被删除
地板
发表于 2015-2-5 03:34:40 | 只看该作者
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-11 03:18:15 | 只看该作者
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
活着的死人 该用户已被删除
6#
发表于 2015-3-1 20:29:28 | 只看该作者
入门没那么困难,精通没那么容易
飘灵儿 该用户已被删除
7#
发表于 2015-3-10 23:28:38 | 只看该作者
原来公司用过MYSQL自己也只是建个表写个SQL
爱飞 该用户已被删除
8#
发表于 2015-3-17 16:08:10 | 只看该作者
相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐
透明 该用户已被删除
9#
发表于 2015-3-24 10:50:09 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-6 11:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表