Oracle12c创建表空间及用户

Oracle12c创建表空间及用户

1. 表空间相关内容

表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际需要,设置为 4K、8K、16K、32K、64K等几种大小,ORACLE的物理文件最大只允许4194304个数据块(由操作系统决定),表空间数据文件的最大值为 4194304×DB_BLOCK_SIZE/1024M。

生产环境考虑到数据库可能一直增加,所以放开表空间大小限制,语句如下:

--改变用户表空间容量限制,不做限制
ALTER USER ankangreli QUOTA UNLIMITED ON ankangrelir_data;

1. db_block_size

1、 DB_BLOCK_SIZE作为数据库的最小操作单位,是在创建数据库的时候指定的,在创建完数据库之后便不可修改。要修改DB_BLOCK_SIZE,需要重建数据库。一般可以将数据EXP出来,然后重建数据库,指定新的DB_BLOCK_SIZE,然后再将数据IMP进数据库。

2、 DB_BLOCK_SIZE一般设置为操作系统块的倍数,即2K,4K,8K,16K或32K,但它的大小一般受数据库用途的影响。对于联机事务,其特点是事务量大,但每个事务处理的数据量小,所以DB_BLOCK_SIZE设置小点就足够了,一般为4K或者8K,设置太大话一次读出的数据有部分是没用的,会拖慢数据库的读写时间,同时增加无必要的IO操作。而对于数据仓库和ERP方面的应用,每个事务处理的数据量很大,所以DB_BLOCK_SIZE一般设置得比较大,一般为8K,16K或者32K,此时如果DB_BLOCK_SIZE小的话,那么I/O自然就多,消耗太大。

3、 大一点的DB_BLOCK_SIZE对索引的性能有一定的提高。因为DB_BLOCK_SIZE比较大的话,一个DB_BLOCK一次能够索引的行数就比较多。

4、 对于行比较大的话,比如一个DB_BLOCK放不下一行,数据库在读取数据的时候就需要进行行链接,从而影响读取性能。此时DB_BLOCK_SIZE大一点的话就可以避免这种情况的发生。

2. sql查看db_block_size值

Oracle12c在WindowsServer2019中安装后,默认的db_block_size为8K

--value为db_block_size的默认值
select value from v$parameter where name='db_block_size'
--输出如下
8192 = 8K

--查看INITIAL_EXTENT值,为DB_BLOCK_SIZE的整数倍
select owner,initial_extent/8192 from dba_rollback_segs
--输出
1	SYS	14
2	PUBLIC	16
3	PUBLIC	16
4	PUBLIC	16
5	PUBLIC	16
6	PUBLIC	16
7	PUBLIC	16
8	PUBLIC	16
9	PUBLIC	16
10	PUBLIC	16
11	PUBLIC	16

2. 创建表空间及用户

1. 查看与删除表空间语句

---查看表空间名称及表空间文件位置
select t1.name,t2.name from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;

---1.表空间信息查看
select * from dba_tablespaces; ---查看表空间
select * from dba_data_files; --查看数据库文件位置
select * from dba_free_space;  
---2.临时表空间信息查看
select * from dba_temp_files;
select * from dba_temp_free_space; 

---修改表的表空间
select 'alter table  ' || TABLE_NAME || '  move tablespace docmanagement;'
  from USER_TABLES UT
 where UT.TABLESPACE_NAME = 'USERS'
 

--查询当前用户下在 USERS 表空间中的所有索引 ,并修改索引的表空间为 docmanagement
select 'alter index '|| index_name ||' rebuild tablespace docmanagement;' from user_indexes i
where i.tablespace_name = 'USERS'

--删除表空间及数据库文件
drop tablespace TEMPORARY_DOCMANAGEMENT including contents and datafiles;

2. 创建表空间及临时表空间

以表空间testdb与临时表空间temporary_testdb为例

--创建表空间
create tablespace testdb
    datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\TESTDB.DBF' --dbf文件位置
    size 500M
    autoextend on next 100M
    maxsize unlimited;
--创建临时表空间
create temporary tablespace temporary_testdb
    tempfile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\TESTDB_TEMP.DBF'
    size 500M
    autoextend on
    next 100M maxsize unlimited
    extent management local;

3. 创建用户并指定默认表空间

  1. CDB是Oracle12c版本的新特性

  2. PDB与CDB创建用户的区别在与是否在用户名前面加C##,CDB需要加在用户名前加c##,而PDB则不需要;

  3. 如果启用了CDB则在客户端连接的时候必须加上c##

1. PDB方式

PDB全称为Pluggable Database,即可插拔数据库


---创建用户并指定默认表空间及临时表空间
create user test_user identified by test_user
profile default
default tablespace testdb
temporary tablespace temporary_testdb
account unlock;

--用户授权
grant connect,resource,dba to test_user

--删除用户
--drop user test_user cascade

2.CDB方式

CDB全称:Container Database,即容器数据库

--select * from dba_users t where t.username like 'C##%'

--创建用户并制定默认表空间
create user c##test_user identified by test_user
profile default
default tablespace testdb
temporary tablespace temporary_testdb
account unlock;


--用户授权
grant connect,resource,dba to  c##test_user

--删除用户
--drop user c##test_user cascade

3. 关于12c的新特性

Oracle12c新特性:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/newft/new-features.html

你可能感兴趣的:(oracle,数据库)