为oracle数据库新增表空间及用户

什么是表空间?
表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。
创建用户的时候需要指定默认表空间和temp表空间,主要是为了当该用户创建对象不指定表空间时使用默认表空间来存储对象,
而temp表空间是用户执行查询、排序、分组等操作时使用temp表空间来存储临时数据块。

具体过程:
今天突然想到不能把所有数据都放到system用户的system表空间中,这对后续要做的数据处理分析肯定有影响,所以打算新建一个表空间和用户,过程如下:
1、查询所有表空间:

select * from DBA_TABLESPACES;

2、
查询所有表空间使用情况
使用DBA权限登陆,执行:

SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 4 DESC;

3、创建临时表空间:

create TEMPORARY tablespace CUPS_BS_DATA_TEMP TEMPFILE 'E:\app\Administrator\oradata\orcl\CUPS_BS_DATA_TEMP.dbf'
size 500m
AUTOEXTEND ON next 100m MAXSIZE UNLIMITED
extent MANAGEMENT LOCAL;

4、创建数据表空间:

create TABLESPACE CUPS_BS_DATA 
LOGGING
DATAFILE 'E:\app\Administrator\oradata\orcl\CUPS_BS_DATA.dbf' SIZE 1G
AUTOEXTEND ON
NEXT 100m MAXSIZE UNLIMITED
extent MANAGEMENT LOCAL;

5、创建用户并指定表空间:

--select * from DBA_TABLESPACES;
create user cups_user IDENTIFIED BY pass_word
default TABLESPACE CUPS_BS_DATA
TEMPORARY TABLESPACE CUPS_BS_DATA_TEMP;

6、给用户授予权限:

grant CONNECT,RESOURCE,dba to CUPS_USER;
grant create any sequence to CUPS_USER;  
grant create any table to CUPS_USER;  
grant delete any table to CUPS_USER;  
grant insert any table to CUPS_USER;  
grant select any table to CUPS_USER;  
grant unlimited tablespace to CUPS_USER;  
grant execute any procedure to CUPS_USER;  
grant update any table to CUPS_USER;  
grant create any view to CUPS_USER;  

以上3、4、5、6的输出:

Tablespace CUPS_BS_DATA_TEMP 已创建。

TABLESPACE CUPS_BS_DATA 已创建。

User CUPS_USER 已创建。

Grant 成功。

7、为表空间增加数据文件,因为接下来要导入很多很多数据进去,一个数据文件最多只能放32g数据。
增加CUPS_BS_DATA的表空间数据:

ALTER TABLESPACE "CUPS_BS_DATA" ADD DATAFILE 'E:\app\Administrator\oradata\orcl\CUPS_BS_DATA01.DBF' SIZE 500m AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
--xxxx多加几个,保证够用

8、查看所有表空间的数据文件及其使用情况:

select
b.file_name 物理文件名,
b.tablespace_name 表空间,
b.bytes/1024/1024 大小M,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M,
substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_name,b.bytes
order by b.tablespace_name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值