Oracle基础参数配置和调整( 二 )

SQL>create temporary tablespace tmp01 tempfile '/data/oradata/orcl/tmp01.dbf' size 50M autoextend on;
SQL>create temporary tablespace tmp02 tempfile '/data/oradata/orcl/tmp02.dbf' size 50M autoextend on;
SQL>create temporary tablespace tmp03 tempfile '/data/oradata/orcl/tmp03.dbf' size 50M autoextend on;
SQL>alter tablespace tmp01 tablespace group tempgrp;
SQL>alter tablespace tmp02 tablespace group tempgrp;
SQL>alter tablespace tmp03 tablespace group tempgrp;
SQL>alter database default temporary tablespace tempgrp;

Oracle基础参数配置和调整

文章插图
 
  • 新建业务用户BUSI,赋权限 。
SQL>create user busi identified by "busi123" default tablespace BUSIDATA temporary tablespace tempgrp;
Oracle基础参数配置和调整

文章插图
 
  • 注意:建索引的时候,需要明确指定tablespace为BUSIIDX 。
  • 更换用户表的表空间:由于建表语句不规范,经常会存在这样的情况:用户所属表的存储表空间不一样,有的表存储在users甚至是system表空间下 。这时需要调整表的存储表空间 。需要注意的是,移动表空间时会产生锁,而且表上的索引有可能失效,因此操作时务必避开业务高峰 。
以下sql中带“<>”根据实际情况改写:
SQL>alter table <tablename> move tablespace <newtbs>;
SQL>select * from user_indexes t where t.table_name=' <tablename> ' and t.status<>'VALID';
SQL>alter index <idx_name> rebuild tablespace <new_tab_space_name>;
  • 调整表空间大小:
SQL>select dbf.tablespace_name, dbf.totalspace "总量(M)", dbf.totalblocks as 总块数,
dfs.freespace "剩余总量(M)", dfs.freeblocks "剩余块数", (dfs.freespace / dbf.totalspace) * 100 "空闲比例"
from (select t.tablespace_name, sum(t.bytes) / 1024 / 1024 totalspace, sum(t.blocks) totalblocks
from dba_data_files t group by t.tablespace_name) dbf,
(select tt.tablespace_name, sum(tt.bytes) / 1024 / 1024 freespace, sum(tt.blocks) freeblocks
from dba_free_space tt group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name);
a) 修改已存在数据文件的大小
SQL>alter database datafile '/data/oradata/orcl/SYSTEM01.DBF' resize 4096m;
b) 增加数据文件
SQL>ALTER TABLESPACE USERS ADD DATAFILE '/data/oradata/orcl/ USERS01.DBF' SIZE 20480M [AUTOEXTEND ON] [NEXT 100M MAXSIZE UNLIMITED];




推荐阅读