a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 66|回复: 0

[其他] Oracle认证:表空间设计理念

[复制链接]
发表于 2012-8-4 13:41:06 | 显示全部楼层 |阅读模式
SQL Server数据库与Oracle数据库之间最年夜的区别要属表空间设计。Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高机能做出了不成磨灭的进献。可以这么说,Oracle中良多优化都是基于表空间的设计理念而实现的。典型应用一:节制用户所占用的表空间配额。
+ a! [: j8 C% G& i) Y, Q  在一些年夜型的数据库应用中,我们需要节制某个用户或者某一组用户其所占用的磁盘空间。这就仿佛在文件处事器中,需要为每个用户设置磁盘配额一样,以防止硬盘空间耗竭。所以,在数据库中,我们也需要限制用户所可以使用的磁盘空间巨细。为了达到这个目的,我们就可以经由过程表空间来实现。
% f  J2 j) X: m+ @3 v: [' {  我们可以在Oracle数据库中,成立分歧的表空间,为其设置最年夜的存储容量,然后把用户归属于这个表空间。如斯的话,这个用户的存储容量,就受到这个表空间巨细的限制。
+ E$ j8 b  ~9 Q典型应用二:节制数据库所占用的磁盘空间。
8 `$ l6 Q+ c1 B. j# y3 w9 }; m& P  有时辰,在Oracle数据库处事器中,可能运行的不止也述处事。除了数据库处事器外,可能还有邮件处事器等应用系统处事器。为此,就需要先对Oracle数据库的磁盘空间作个规划,否则,当多个应用轨范处事所占用的磁盘空间都无限增添时,最后可能导致各个处事都因为硬盘空间的耗竭而遏制。所以,在统一台处事器上使用多个应用轨范处事,我们往往需要先给他们进行磁盘空间的规划和分配。各个处事都不能够跨越我们分配给他的最年夜限额,或者跨越后实时的提醒我们。只有这样,才能够避免因为磁盘空间的耗竭而导致各类应用处事的解体。
" b0 v$ j+ a$ ?& o( O典型应用三:矫捷放置表空间,提高数据库的输入输出机能。 $ g- h  g4 m$ T' s" n
  数据库打点员还可以将分歧类型的数据放置到分歧的表空间中,这样可以较着提高数据库输入输出机能,有利于数据的备份与恢复等打点工作。因为我们数据库打点员在备份或者恢复数据的时辰,可以按表空间来备份数据。如在设计一个年夜型的分销系统后台数据库的时辰,我们可以按省份成立表空间。与浙江省相关的数据文件放置在浙江省的表空间中,北京发生营业记实,则记其实北京这个表空间中。如斯,当浙江省的营业数据呈现错误的时辰,则直接还原浙江省的表空间即可。很较着,这样设计,当某个表空间中的数据呈现错误需要恢复的时辰,可以避免对其他表空间的影响。( j" k/ Y9 u, J7 H2 d6 k
  此外,还可以对表空间进行自力备份。当数据库容量斗劲年夜的时辰,若一会儿对折个数据库进行备份,显然会占用斗劲多的时刻。虽然说Oracle数据库撑持热备份,可是在备份时代,会占用斗劲多的系统资本,年夜而造成数据库机能的下降。为此,当数据库容量斗劲年夜的时辰,我们就需要进行设置多个表空间,然后规划各个表空间的备份时刻,年夜而可以提高整个数据库的备份效率,降低备份对于数据库正常运行的影响。
- w* L  O3 P# c" R5 p7 ?6 m典型应用四:年夜表的排序操作。 9 z6 G# M# e% U; s( O. Z& q; i8 p
  我们都知道,当表中的记实斗劲多的时辰,对他们进行发芽,速度会斗劲慢。第一次发芽成功后,若再对其进行第二次年夜头排序,仍然需要这么多的时刻。为此,我们在数据库设计的时辰,针对这种容量斗劲年夜的表对象,往往把它放在一个自力的表空间,以提高数据库的机能。+ x" I5 ?" \0 v' n9 C
典型应用五吉日志文件与数据文件分隔放,提高数据库平安性。
0 `1 e( D8 y9 e9 A4 B1 [4 W& f1 \  默认情形下,日志文件与数据文件存放在统一表空间。可是,这对于数据库平安方面来说,不是很好。所以,我们在数据库设计的过程中,往往喜欢把日志文件,出格是重做日志文件,放在一个自力的表空间中,然后把它存放在此外一块硬盘上。如斯的话,当存放数据文件的硬盘呈现故障时,能够马上经由过程存放在另一个表空间的重做日志文件,对数据库进行修复,以削减企业因为数据丢失踪所带来的损失踪。$ l; t/ V; d# }% B& X3 n# m
  当然,表空间的优势还不仅仅这些,企业对于数据库的机能要求越高,或者数据库容量越年夜,则表空间的优势就会越年夜。
1 ^' D) z1 w2 k& K; `. F  下面,我们就具体来看看Oracle数据库中表空间的措置体例,看其在机能与平安性方面是否有足够的优势与SQL Server数据库抗衡。
9 P8 T; C1 l. k; m0 P! D6 e  在数据库设计的时辰,我们建议数据库打点员按如下挨次设置表空间。
" ]5 Q7 b6 |5 M1 Q第一步:成立表空间。 . T5 x7 E  Z0 S" U4 V
  在设计数据库的时辰,首先需要设计表空间。我们需要考虑,是只成立一个表空间呢,仍是需要成立多个表空间,以及各个表空间的存放位置、磁盘限额等等。
# n! w1 R" R& b9 n1 P  到底设计若干好多个表空间合理,没有统一的说法,这首要按照企业的现实需求去判定。如企业需要对用户进行磁盘限额节制的,则就需要按照用户的数目来设置表空间。当企业的数据容量斗劲年夜,而其又对数据库的机能有斗劲高的要求时,就需要按照分歧类型的数据,设置分歧的表空间,以提高其输入输出机能。4 ~) i- Y- ~" M8 J7 L' M( k2 }
第二步:成立用户,并拟定用户的默认表空间。
: d7 O6 a& [% s5 t8 A  在成立用户的时辰,我们建议数据库打点员要指定用户的默认表空间。因为我们在操作CREATE语句建树数据库对象,如数据库表的时辰,其默认是存储在数据库的当前默认空间。若不指定用户默认表空间的话,则用户每次建树数据库对象的时辰,都要指定表空间,显然,这并不是很合理。5 w2 s9 }8 ~7 z2 r2 E% N
  此外要注重,分歧的表空间有分歧的权限节制。用户对于表空间A具有完全节制权限,可能对于表空间B就只有发芽权限,甚至连毗连的权限的都没有。所以,合理为用户设置装备摆设表空间的访谒权限,也是提高数据库平安性的一个体例。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-22 21:55 , Processed in 0.420171 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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