一 创建数据库必须遵循的原则
1、强制数据库中创建的每一个表空间必须是本地管理。
extent management local定义本地表空间。
2、确保数据库为每个用户自动分配一个默认的永久表空间。
3、确保数据库会为每个用户自动分配一个默认的临时表空间。
4、创建一个自动的UNDO表空间(自动撤销管理通过设置UNDO_MANAGEMENT和UNDO_TABLESACE初始化参数来启用)。
5、按照环境中的一定标准,将数据文件放到相应文件夹中。
6、DBA用户的密码设置为非默认值,确保数据库的安全性。
7、根据应用创建redo文件,每组两个成员,大小适合事务加载。
1、查询默认永久表空间和修改默认
select fromdatabase_prooperties where property_name='DEFAULT_PERMANENT_TABLESPACES';
alter database default tablespace users;
2、查询默认临时表空间和修改默认
select fromdatabase_prooperties where property_name=‘DEFAULT_TEMP_TABLESPACE';
alter database default temporary tablespace temp;
3、检验undo表空间的设置
select name,value from v$parameter where name in('undo_management','undo_tablespace');
修改UNDO表空间,首先创建一个新的,然后使用alter system set undo_tablespace='';
二 创建最优的表空间
1、本地管理
2、ASSM(Automatic segment space management, 自动段空间管理)
例子:
create tablespace tools
datafile '/u01/app/oracle/oradata/tooles01.dbf' size 100m
extent management local
uniform size 128k
segment space management auto;
uniform size 子句将表空间中每一次空间扩展的大小设置为同样的值,或者也可以将其生命为autoallocate,这样的话Oracle就可以每次分配64k、1MB、8MB或64M的扩展空间。如果表空间中的对象大小是不固定的,那么最好还是将其设置为自动分配。
本地管理+ASSM结合起来,被废弃的存储参数:
next
pcitncrease
minextents
maxextents
default
使用了segment space management auto子句,就没必要在声明下面这些参数:
pctused
freelists
freelist groups
查询表空间属性:
select tablespace_name,extent_management,segment_space_management from dba_tablespaces;
创建表空间时,还可以指定其类型为小文件(smallfile)或大文件(bigfile)。在Oracle 10G之前,只能使用小文件。
大文件表空间只能有一个相关的数据文件(数据文件大小根据存储块大小计算).
配置调优,最重要的应该根据实际的业务来调整,比如内存,大了小了都不好,正合适才是王道。还有各种参数,在上线之前最好就是模拟一部分数据量,然后进行各阶段的并发进行测试,然后在来调整相关参数和对SQL语句进行一些优化。收起