1. 数据库字符集
通过ALTER DATABASE CHARACTER SET语句修改字符集,但创建数据库后修改字符集是有限制的,只有新的字符集是当前字符集的超集时才能修改数据库字符集,一般情况下的做法是重建数据库。
查看方式 Show Parameters; 找到NLS_LANG参数
2. 存储单元简介
Oracle表空间(tableSpace)、段 (segment)、盘区(extent)、块(block),这些都是Oracle用来保存数据库对象的分配单元。
段 就是数据库对象,它消耗存储空间,如表、索引、回滚段等。当创建表的时候,将创建一个表段,当创建一个分区表时,即在每个分区上创建一个段,当创建索引 时,将创建一个索引段,每一个消耗存储空间的对象最终被存储在一个单一的段中,有回滚段,临时段,聚簇段、索引段等。一个段可以拥有来自许多不通数据文件 中的盘区。 段本身由一个或多个盘区组成,盘区在文件中一个连续的分配空间,每个段至少开始于一个盘区,一些对象可能至少需要2个盘区(例如回滚段)。各个盘区之间并不要求正好相邻。
盘区由块组成,一个块是在Oracle中空间分配的最小单元,是Oracle读写磁盘的对象,Oracle中的块通常有3个常见的大小 ,2K ,4K,8K。 一个段是由一个或多个盘区所组成,一个盘区是由一些连续分配的块。
表空间是一个容器,它保存段,每一个段恰好属于一个表空间,一个表空间可以有多个段,给定段的所有盘区将在与该段相关的表空间中。
存储层次结构如下: 1)、数据库由一个或多个表空间组成。 2)、表空间由一个或多个数据文件组成,一个表空间包含段。 3)、段由一个或多个盘区组成,段存在于表空间中,但在表空间中可以有许多数据文件中的数据。 4)、盘区是在磁盘上连续的块的组,一个盘区在一个表空间中,而且总是在表空间中单一的文件中。 5)、块是数据库中最小的分配单元,块是数据库使用的最小的I/O单元。
3. UNDO表空间预热
自动管理模式(Automatic Undo Management) undo_tablespace 指名系统使用哪一个重做表空间。 undo_suppress_errors 被设置成true时表示系统创建和使用回滚段时忽略错误。 undo_retention 系统提交后,回滚段的数据保留多长时间,单位是秒。 当系统被设置成menual后,这几个参数被忽略。
manual管理模式 系统根据如下几个步骤确认online的rollback segment的数量: 初始化参数rollback_segments 初始化参数transactions、transactions_per_rollback_segment 与menual相关的初始化参数 rollback_segments 指定实例启动时所需要的回滚段 transactions 指定系统中最大的并发事务数 transactions_per_rollback_segment 指定每一个回滚段支持的并发数 max_rollback_segments 指明系统支持的最大的online的回滚段数目
Undo 表空间大小的设计规范的计算公式 Undospace = UR * UPS *db_block_size+ 冗余量 UR: 表示在undo中保持的最长时间数(秒),由数据库参数UNDO_RETENTION值决定。 UPS:表示在undo中,每秒产生的数据库块数量。
和undo有关的动态性能视图v$undostat 包含undo的统计信息。使用这张视图可以估计系统当前所需的undo大小。 v$rollstat 是undo模式的视图。是undo表空间的undo segments的统计信息 v$transaction 包含undo segments的信息。 dba_undo_extents 包含undo表空间中每一个范围的提交时间。
和回滚段相关的性能视图 DBA_ROLLBACK_GEGS 描述回滚段的信息,包含回滚段的名字和表空间; DBA_SEGMENTS 描述回滚段的附加信息; V$ROLLNAME 列出在线回滚段的名称 V$ROLLSTAT 包含回滚段的统计信息 V$TRANSACTION 包含撤销的统计信息