oracle数据库安装及其配置规范标准v0Word文件下载.docx
《oracle数据库安装及其配置规范标准v0Word文件下载.docx》由会员分享,可在线阅读,更多相关《oracle数据库安装及其配置规范标准v0Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。
![oracle数据库安装及其配置规范标准v0Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/21/4f61abec-e7ad-45df-aa6c-672b99d4f43e/4f61abec-e7ad-45df-aa6c-672b99d4f43e1.gif)
2.2.3.单词分隔18
2.2.4.保留字18
2.2.5.命名长度18
2.2.6.字段名称18
2.3.数据类型18
2.3.1.字符型18
2.3.2.数字型19
2.3.3.日期和时间19
2.3.4.大字段19
2.3.5.唯一键19
2.4.设计20
2.4.1.范式20
2.4.2.表设计20
2.4.3.索引设计23
2.4.4.视图设计24
2.4.5.包设计24
2.4.6.安全性设计25
2.5.SQL编写26
2.5.1.字符类型数据26
2.5.2.复杂sql27
2.5.3.高效性27
2.5.4.健壮性28
2.5.5.安全性29
2.5.6.完整性30
3.备份恢复设计原则30
3.1.数据库exp/imp备份恢复30
3.1.1.数据库级备份原则30
3.1.2.用户级备份原则30
3.1.3.表级备份原则31
3.2.数据库冷备份原则31
3.3.Rman备份恢复原则31
3.3.1.Catalog数据库31
3.3.2.ArchiveLog33
3.3.3.全备份策略33
3.3.4.增量备份策略33
3.3.5.恢复原贝U33
3.4.备用数据库原则34
3.5.一些小经验34
3.6.系统调优知识35
3.6.1.生成状态报表(statspack的使用)35
3.6.2.sql追踪36
3.6.3.内存调整37
3.6.4.排序的优化40
3.6.5.统计信息41
4.设计工具42
1.数据库物理设计原则
1.1.数据库环境配置原则
1.1.1.操作系统环境
对于中小型数据库系统,采用linux操作系统比较合适,对于数据库冗余要求负载均衡能力要求较高的系统,可以采用Oracle10gRAC的集群数据库的方法,集群节点数范围在2—64个。
对于大型数据库系统,可以采用SunSolarisSPARC64位小型机系统或HP9000系列小型机系统。
RAD5适合只读操作的数据库,RAD1适合OLTP数据库。
1.1.2.内存要求
对于linux操作系统下的数据库,由于在正常情况下Oracle对SGA的管理能力不超过1.7G。
所以总的物理内存在4G以下。
SGA的大小为物理内存的50%^75%对于64位的小型系统,Oracle数据库对SGA的管理超过2G的限制,SGA设计在一个合适的范围内:
物理内存的50%-70%当SGA过大的时候会导致内存分页,影响系统性能。
1.1.3.交换区设计
当物理内存在2G以下的情况下,交换分区swap为物理内存的3
倍,当物理内存>2G的情况下,swap大小为物理内存的1—2倍。
1.1.4.其他
其他环境变量参考Oracle相关的安装文档和随机文档。
1.2.数据库设计原则
1.2.1.数据库SID
数据库SID是唯一标志数据库的符号,命名长度不能超过5个字符。
对于单节点数据库,以字符开头的5个长度以内字串作为SID的命名。
对于集群数据库,当命名SID后,各节点SID自动命名为SIDnn,其中nn为节点号:
1,2,…,64。
例如rac1、rac2、rac24。
1.2.2.数据库全局名
数据库全局名称:
<
sid>
.domain
1.2.3.数据库类型选择
对于海量数据库系统,采用datawarehouse的类型。
对于小型
数据库或OLTF类型的数据库,采用TransactionProcessing类型
SuMulabempshalfiih«
rnlb®
list诚cfep鼻I*d
匚t
Torn口Im2Mama
IhrILi!
已h益EnatN*fiL..
1.2.4.数据库连接类型选择
Oracle数据库有专用服务器连接类型和多线程服务器MTS连接
类型。
对于批处理服务,需要专用服务器连接方式,而对于OLTP服
务则MTS的连接方式比较合适。
由于采用MTS后,可以通过配置网络服务实现某些特定批处理服务采用专用服务器连接方式,所以数据库
设计时一般采用MTS类型
th*nrhlb,-o-ij4*antys-wr河h卍b-^p*irbx日臼于必心腫
厂OvdiGit^di$*rvvrMqcI.
Foreachcl!
entne<
£
!
=:
>
nthedatabaseallozatearesour<
ededicatedtose«
^-ini
onlythtlcllantUsetn*ismon*wh#nnumberte<
aicttanto&
nMcdont■ewjMctidt*b*-smnsllc<
wFraflciientswillto«
m睾Iuei吗iy^-ststentl^n^i^uninlng「日口U巴toth8*e.
■ha?
fl0ServerHods
■it*■炖Itcoftfiacd^hiiiMri-■dAi*bai*-aliladlw『・喈斗uratf・Umthli
tnod*wIMnnKf*tluftaamAillntunbiwof辟・nn*adSf-onn-ihcttotIMd>
t&
b>
isiAlmulUMicullywintil*nrrici*«
nllyulililir^lSviUmrtt^urOM・Th,Oracleiburta^ervfirurewIhtrJH
EditC^nnact|i>
niPtra,rnBt^rs.
1.2.5.数据库SGA配置
数据库SGA可以采用手工配置或按物理内存比例配置,在数据库
初始设计阶段采用按比例配置方式,在实际应用中按系统调优方式修
改SGA
口dEFbdXCvrHlMjUlJLIFUnI.Slvpdu-l4.IriMJ.lhj«
irH>
h严
H・EQFF
Ch»
i.rMCBftelrw和・J・腐心“
*Typlettl
©
髦•■■.曾中怙咚户-牙t*h>
:
-k&
Im日*1u書事<
iyomB:
1<
■*o-★.倔:
|亍石—
U4Mbfli«
I[J?
@K顷回•hWEG
fchowdiitnbijd^-n^>
fMamory..;
Cult-OlT*
SPi^radPwl
PC*:
ijn-I
TestajMamcryf-orOracl«
7邸Rytc-s
®
^otatiTiiH「nor#In"
:
Iuds-i日■:
-tChra.-■e"
「小二口:
匚sI^p?
ndtth^iJpfa^1trfor
theparamarar-i’If己“典
1.26数据库字符集选择
为了使数据库能够正确支持多国语言,必须配置合适的数据库字符集,采用UTF8字符集。
注意:
如果没有大对象,在使用过程中进行语言转换没有什么影
响,具体过程如下(切记设定的字符集必须是ORACL支持,不然不
能start)
SQL>
shutdownimmediate;
startupmount;
altersystemenablerestrictedsession;
altersystemsetjob_queue_processes=0;
alterdatabaseopen;
alterdatabasecharactersetinternal_usewe8iso8859p1;
startup
127.数据库其他参数配置
127.1.DB_FILES
Db_files是数据库能够同时打开的文件数量,默认值是200个(当数据库规划时文件数量FILES接近或超过200个时候,按以下估计值配置:
DB_FILES=FILES*1.5
1272Db_block_size
一个extent要是5个blocks的倍数为好,如:
一个blocks是4096字节,那一个extent就是2M4M或8M为好。
Db_block_size是数据库最小物理单元,一旦数据库创建完成,该参数无法修改,db_block_size按以下规则调整:
数据仓库类型:
db_block_size尽可能大,采用8192或16384
OLTP类型:
db_block_size用比较小的取值范围:
2048或
4096
Blocks推荐是系统操作的块倍数(裸设备块大小是512字节,
NTFS是4K,使用8K的方式在大部分系统上通用)。
1.2.8.数据库控制文件配置
1.2.8.1.控制文件镜象
多个控制文件存放在不同的物理位置
1282控制文件配置
控制文件中参数设置,最大的数据文件数量不能小于数据库参数db_files。
129.数据库日志文件配置
129.1.日志文件大小
日志文件的大小由数据库事务处理量决定,在设计过程中,确保
每20分钟切换一个日志文件。
所以对于批处理系统,日志文件大小为几百M到几G的大小。
对于OLTP系统,日志文件大小为几百M以内。
1.2.9.2.日志文件组数量
对于批处理系统,日志文件组为5—10组;
对于OLTP系统,日志文件组为3—5组,每组日志大小保持一致;
对于集群数据库系统,每节点有各自独立的日志组。
1.2.9.3.日志成员数量
为了确保日志能够镜象作用,每日志组的成员为2个。
1.2.10.数据库回滚段配置
在Oracle9i数据库中,设计Undo表空间取代以前版本的回滚段表空间。
Undo表空间大小的设计规范由以下公式计算:
Undospace=UR*UPS*db_block_size+冗余量
UR表示在undo中保持的最长时间数(秒),由数据库参数
UND0_RETENTlO决定。
UPS表示在undo中,每秒产生的数据库块数量。
例如:
在数据库中保留2小时的回退数据,假定每小时产生200
个数据库块。
则Undospace=2*3600*200*4K=5.8G。
1.2.11.数据库临时段表空间配置
数据库临时段表空间根据实际生产环境情况调整其大小,表空间属性为自动扩展。
1.2.12.数据库系统表空间配置
系统表空间大小1G左右,除了存放数据库数据字典的数据外,其他数据不得存储在系统表空间。
1.3.数据库表空间设计原则
1.3.1.表空间大小定义原则
当表空间大小小于操作系统对最大文件限制时,表空间由一个文件组成。
如果表空间大小大于操作系统对最大文件限制时,该表空间由多个数据文件组成,表空间的总大小为估算为:
Tablespace+sum(数据段+索引段)*150%。
132.表空间扩展性设计原则
表空间数据文件采用自动扩展的方式,扩展容量快大小按2的整数倍(1M2M4M8M16M32M64M进行扩展,创建表空间时尽量采用nologing选项。
表空间的最大限制一般采用unlimited,
除非确切知道表空间数据文件的最大使用范围。
(一般windows3
2位系统的文件最大2G,64位的unix系统系统文件最大128G,但也要注意文件格式设定的文件大小),建议最大为2G表空间采用local管理方式,例如:
CREATETABLESPACETBS_USERINFO
DATAFILE
‘/oradata/tbs_userinfo.dbf'
SIZE8M
REUSE
AUTOEXTENDON
NEXT2M
MAXSIZEUNLIMITED
NOLOGGING
EXTENTMANAGEMENT
LOCAL
AUTOALLOCATE
SEGMENTSPACEMANAGEMENTAUTO;
1.4.裸设备的使用
一个scsi设备可以14个分区,unix操作系统256个分区,性能比文件系统方式高15%左右,空间大于要小于(实际分区大小减两个
ORACLE勺数据块),比如100M大于为100000K推荐在unix使用
软连接(ln)方式把裸设备形成文件,用加入表空间时加resue选项,
当然也可只接把设备加入表空间,移动裸设备使用dd命令。
对于windows平台,oracle提供软连接工具,实现裸设备的使用,计算一条记录的长度。
2.数据库逻辑设计原则
2.1.命名规范
2.1.1.表属性规范
2.1.1.1.表名
前缀为Tbl_。
数据表名称必须以有特征含义的单词或缩写组成,中间可以用“分割,例如:
tbl_pstn_detail。
表名称不能用双引
号包含。
2.1.1.2.表分区名
前缀为p。
分区名必须有特定含义的单词或字串。
tbl_pstn_detail的分区p2*******01表示该分区存储
2004100101时段的数据。
2.1.1.3.字段名
字段名称必须用字母开头,采用有特征含义的单词或缩写,不能用双引号包含
2.1.14主键名
前缀为PK_主键名称应是前缀+表名+构成的字段名。
如果复合主键的构成字段较多,则只包含第一个字段。
表名可以去掉前缀。
2.1.1.5.夕卜键名
前缀为FK」外键名称应是前缀+外键表名+主键表名+外键表构成的字段名。
2.1.2.索引
2.1.2.1.普通索引
前缀为IDX_。
索引名称应是前缀+表名+构成的字段名。
如果复合索引的构成字段较多,则只包含第一个字段,并添加序号。
表名可以去掉前缀。
2.1.2.2.主键索引
前缀为IDX_PK_索引名称应是前缀+表名+构成的主键字段名,在创建表时候用usingindex指定主键索引属性。
2.1.2.3.唯一索引
前缀为IDXUK。
索引名称应是前缀+表名+构成的字段名
2.1.24外键索引
前缀为IDX_FK仝索引名称应是前缀+表名+构成的外键字段名。
2.1.2.5.函数索引
前缀为IDX_func_。
索引名称应是前缀+表名+构成的特征表达字符。
2.1.2.6.簇索引
前缀为IDX_clu_。
索引名称应是前缀+表名+构成的簇字段。
2.1.3.视图
前缀为V_。
按业务操作命名视图。
2.1.4.实体化视图
前缀为MV_按业务操作命名实体化视图。
2.1.5.存储过程
前缀为Proc_。
按业务操作命名存储过程。
2.1.6.触发器
前缀为Trig_。
触发器名应是前缀+表名+触发器名
2.1.7.函数
前缀为Func_。
按业务操作命名函数。
2.1.8.数据包
前缀为Pkg_。
按业务操作集合命名数据包。
2.1.9.序列
前缀为Seq_。
按业务属性命名。
2.1.10.表空间
2.1.10.1.公用表空间
前缀为Tbs_。
根据存储的特性命名,例如:
tbs_parameter。
2.1.10.2.专用表空间
Tbs_v表名称>_nn。
该表空间专门存储指定的某一个表,或某一表的若干个分区的数据。
2.1.11.数据文件
<表空间名>nn.dbf。
nn=1,2,3,4,…等。
2.1.12.普通变量
前缀为Var_。
存放字符、数字、日期型变量。
2.1.13.游标变量
前缀为Cur_。
存放游标记录集。
2.1.14.记录型变量
前缀为Rec_。
存放记录型数据。
2.1.15.表类型变量
前缀为Tab_。
存放表类型数据。
2.1.16.数据库链
前缀为dbl_。
表示分布式数据库外部链接关系。
2.2.命名
2.2.1.语言
命名应该使用英文单词,避免使用拼音,特别不应该使用拼音简写。
命名不允许使用中文或者特殊字符。
英文单词使用用对象本身意义相对或相近的单词。
选择最简单或
最通用的单词。
不能使用毫不相干的单词来命名。
当一个单词不能表达对象含义时,用词组组合,如果组合太长时,采用用简或缩写,缩写要基本能表达原单词的意义。
当出现对象名重名时,是不同类型对象时,加类型前缀或后缀以示区别
222.大小写
名称一律大写,以方便不同数据库移植,以及避免程序调用问题。
2.2.3.单词分隔
命名的各单词之间可以使用下划线进行分隔。
2.2.4.保留字
命名不允许使用SQL呆留字。
2.2.5.命名长度
表名、字段名、视图名长度应限制在20个字符内(含前缀)。
2.2.6.字段名称
同一个字段名在一个数据库中只能代表一个意思。
比如telephone在一个表中代表“电话号码”的意思,在另外一个表中就不能代表“手机号码”的意思。
不同的表用于相同内容的字段应该采用同样的名称,字段类型定
义。
2.3.数据类型
2.3.1.字符型
固定长度的字串类型采用char,长度不固定的字串类型采用
varchar。
避免在长度不固定的情况下采用char类型。
如果在数据迁
移等出现以上情况,则必须使用trim()函数截去字串后的空格。
232.数字型
数字型字段尽量采用number类型,要注意精度。
2.3.3.日期和时间
233.1.系统时间
由数据库产生的系统时间首选数据库的日期型,如DATE类型。
2332外部时间
由数据导入或外部应用程序产生的日期时间类型采用varchar
类型,数据格式采用:
YYYYMMDDHH24MISS
2.3.4.大字段
如无特别需要,避免使用大字段(blob,clob,long,text,image
等)。
2.3.5.唯一键
对于数字型唯一键值,尽可能用系列sequenee产生
24设计
2.4.1.范式
如无性能上的必须原因,应该使用关系数据库理论,达到较高的范式,避免数据冗余,但是如果在数据量上与性能上无特别要求,考虑到实现的方便性可以有适当的数据冗余,但基本上要达到3NF.如
非确实必要,避免一个字段中存储多个标志的做法。
如11101表示5
个标志的一种取值。
这往往是增加复杂度,降低性能的地方。
2.4.2.表设计
2.4.2.1.逻辑段设计原则
2.4.2.1.1.Tablespace
每个表在创建时候,必须指定所在的表空间,不要采用默认表空间以防止表建立在系统表空间上导致性能问题。
对于事务比较繁忙的数据表,必须存放在该表的专用表空间中。
2.4.2.1.2.Pctused
默认pctused导致数据库物理空间利用率非常低40%左右;
对于update比较少或update不导致行增大的表,pctused可设置在60—85之间;
对于update能够导致行增大的表,update设置在40—70之间。
242.13Initrans
对于需要并行查询或者在RAC数据库中需要并行处理的表,
initrans设置为2的倍数,否则,不设该值。
2.4.2.1.4.Storage
1)Initial
尽量减少表数据段的extents数量,initial的大小尽量接近数
据段的大小64K128K…,1M2M4M8M16M,…,等按2的倍数进行圆整。
例如表或分区数据段大小为28M则initial取32M
2)Next
表或分区扩展extents的大小,按上述方法进行圆整。
当表或分区数据段无法按Initial接近值进行圆整的情况下,其大小可以按
Initial+Next进行圆整。
此时,必须设置Minextents=2。
表
或分区数据段大小为150M,贝SInitial=128M;
Next=32M,Minextents=2。
3)Minextents
该参数表示表创建时候Extents的初始数量,一般取1—2。
4)Pctincrease
表示每个扩展Extents的增长率,设置pctincrease=0能够获得较好的存储性能
2422特殊表设计原则
24221.分区表
对于数据量比较大的表,根据表数据的属性进行分区,以得到较好的性能。
如果表按某些字段进行增长,则采用按字段值范围进行范围分区;
如果表按某个字段的几个关键值进行分布,则采用列表分区;
对于静态表,则采用hash分区或列表分区;
在范围分区中,如果数据按某关键字段均衡分布,则采用子分区的复合分区方法。
24222.聚簇表
如果某几个静态表关系比较密切,则可以采用聚簇表的方法。
2423完整性设计原则
2.4.2.3.1.主键约束
关联表的父表要求有主健,主健字段或组合字段必须满足非空属性和唯一性要求。
对于数据量比较大的父表,要求指定索引段。
242.32夕卜键关联
对于关联两个表的字段,一般应该分别建立主键、外键。
实际是
否建立外键,根据对数据完整性的要求决定。
为了提高性能,对于数据量比较大的标要求对外健建立索引。
对于有要求级联删除属性的外键,必须指定ondeletecascade。
24233.NULL值
对于字段能否null,应该在sql建表脚本中明确指明,不应使用缺省。
由于NULLL直在参加任何运算中,结果均为NULL所以在应用程序中必须利用nvl()函数把可能