管理Oracle数据库要注意的一些问题
以下针对Oracle9i数据库:
- Commit操作不强制将database buffer内容写到文件;Commit操作后,server process在提示用户“操作已完成”之后才释放相关资源的锁;
- 创建数据库时,数据文件和日志文件必须用size指定大小,或用reuse指定到某个已有文件,否则命令会失败;
- 若丢失了所有control file的副本,可以通过重建control file恢复数据库;
- 在创建unique或primary key约束时,Oracle自动创建索引(名称同约束名),删除这个索引前必须先删除对应约束;
- Partitioned table可以被多个进程同时查询或操作;
- 当前的log sequence number被存放在control file和每个data file的头部(由CKPT进程写入),log group里的每个member具有同样的log sequence number;
- 通过DBA_OBJECTS表可以找到哪些对象存在错误,例如视图所依赖的表已被删除,这个视图的status会被标为invalide;
- Read-Only的表空间里的对象可以被Drop,因为该操作只影响dictionary;
- 当使用external验证方式时,不能指定password expire;
- DBA是role,而不是privilege(SYSDBA和SYSOPER是privilege);
- 使用truncate table命令后,并非所有extents都被释放,table将保留个数为minextents的extents;
- SMON后台进程负责数据库的recovery,以及合并碎片;
- 查询USER_XXX和dictionary表不需要具有select any table权限;
- 对于标志为unused的列,可以在同一张表中创建与它同名的列;
- Undo段在刚创建时是offline状态的;
- 用户自己唯一可以使用alter user命令修改的属性是identified by;
- 要修改tablespace的数据文件为自动扩展,应该使用alter database而不是alter tablespace命令;
- 创建用户和创建表的动作不记录在alertSID.log文件里;
- 没有"Create Index"权限,因为"Create Table"包含了它,Alter和Drop也一样;
- 具有"Create Any XXX"权限的用户在其他用户下创建的对象,其所有者是那个用户;
- Unlimited tablespace系统权限,只能直接授给用户,而不能授给角色;
- Externally管理的角色不能设置为default role;
- 没有"Truncate Table"权限,用户拥有"Drop Table"权限即可执行Truncate操作;
- Create SPFILE From PFILE命令可以反过来用,即Create PFILE From SPFILE,若不指定PFILE/SPFILE的名称则使用缺省名称;
- TableSpace的Storage选项里的Initial和Next值应为Minimum Extent值的整数倍,否则创建语句会失败;
- LogSwitch事件会记录在alert_log文件里;
- Oracle缺省使用AL16UTF16作为National Character Set,Database Character Set用于SQL和PL/SQL代码,National Character Set用于NChar、NVarchar2和NClob字段;Database Character Set不能使用固定长度多字节类型字符集;
- 对于Rollback Segment: minextents至少为2(推荐20),pctincrease永远为零,可以是public或private但一旦确定就不能更改,optimal参数至少为该segment的initial size,initial和next最好相等已保证每个extent具有相同的大小,maxextents最好不要设置为unlimited;刚创建时的roolback segment是offline状态的,必须手工设置为online才可用;drop前必须先设置为offline;
- 对于Temporary Tablespace和Temporary Segment: UNIFORM SIZE值最好是SORT_AREA_SIZE的整数倍;Tempfiles不能改名,不能只读,不会进行recovery处理,不能用alter database命令创建,总是nologging模式;
- 字典区管理的表空间可以指定自定义的storage选项;本地区管理的表空间的storage选项不可更改,可以指定为自动段空间管理;
- 待续。