admin管理员组

文章数量:1642695

os: centos 7.4
db: oracle 12.1.0.2

现在有 smallfile 和 bigfile 分类,详情可以参考 oracle 官方文档.

假如 oracle 数据库采用默认的 blocksize = 8K
smallfile 是 2 的 22 次方寻址,等于4M, 4M*8K=32G
bigfile 是 2 的 32 次方寻址,等于4G, 4G*8K=32T

create permanent smallfile tablespace

CREATE TABLESPACE peiyb_data 
DATAFILE '/data/orcl/pdborcl/peiyb_data01.dbf' SIZE 1G AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED
LOGGING
DEFAULT 
  NO INMEMORY
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512M
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

下面是从 alert 日志抓取到的语句

CREATE SMALLFILE TABLESPACE "USERS" 
LOGGING  
DATAFILE  '/u01/app/oracle/oradata/orcl/pdb1/pdb1_users01.dbf' 
SIZE 5M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED  
EXTENT MANAGEMENT LOCAL  SEGMENT SPACE MANAGEMENT  AUTO
;

ALTER DATABASE DEFAULT TABLESPACE "USERS"
;

create permanent bigfile tablespace

CREATE BIGFILE TABLESPACE peiyb_data 
DATAFILE '/data/orcl/pdborcl/peiyb_data01.dbf' SIZE 1G AUTOEXTEND ON NEXT 1G MAXSIZE 34359738344K
LOGGING
DEFAULT 
  NO INMEMORY
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512M
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

设置成 default tablespace

SQL> alter database default tablespace peiyb_data ;

add permanent smallfile

ALTER TABLESPACE peiyb_data
  ADD DATAFILE '/data/orcl/pdborcl/peiyb_data02.dbf'
  SIZE 1G
  AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED;

resize permanent smallfile

select 'alter database datafile '''||dt.file_name||''' autoextend on next 1g maxsize 30g; ', 
       dt.*,
       dts.*
from dba_data_files dt,
     dba_tablespaces dts
where 1=1
  and dt.tablespace_name = dts.tablespace_name
  and dts.contents='PERMANENT'
  and dts.bigfile = 'NO'
;

alter database datafile '/data/orcl/pdborcl/peiyb_data02.dbf' 
resize 10g;

alter database datafile '/data/orcl/pdborcl/peiyb_data02.dbf' 
autoextend on next 1g maxsize UNLIMITED; 

参考:
https://docs.oracle/database/121/SQLRF/statements_7003.htm#SQLRF01403

本文标签: ORACLEpermanentTablespace