最近为了完成数据在不同库之间的导入导出,临时创建了不少表空间和用户,为了保持数据库的干净整洁,根据需要删除无用的用户、表空间及物理文件。
一个数据库被分成一个个的逻辑单元,这些逻辑单元叫做“表空间”,表空间用于存放数据库对象(如表、索引等)。表空间由一个或者多个数据文件(物理文件)组成,数据文件是数据的物理载体。表空间的尺寸是组成这个表空间的所有数据文件的尺寸之和。每个数据文件是一个操作系统文件,由多个操作系统文件块组成。用户查询一个表,如果表的数据不在内存中,Oralce会读取该表所在的数据文件,并把数据放到内存中。
每个数据库都有一个系统表空间(system tablespace)和一个辅助表空间(sysaux tablespace),创建数据库的时候,系统会自动创建这两个表空间。
下面是相关的语法操作。
1.查看表空间
select * from dba_tablespaces
2.查找物理文件
select * from dba_data_files
3.查看表空间里存放了哪些用户的数据
select distinct owner from dba_segments where tablespace_name='MY_001'
4.查看用户
select * from dba_users
5.查看用户默认的表空间
select default_tablespace from dba_users where username='LG'
6.查找用户下面所有的表
select * from dba_tables where owner='LGL'
7.删除用户,及级联关系也删除
drop user user_name cascade
8.删除表空间,对应的表空间文件也删除
drop tablespace tablespace_name including contents and datafiles cascade constraint
9.创建表空间
create tablespace ****
datafile 'd:\app\oracle12c\oradata\orcl\my_0003.dbf'
size 1024m
autoextend on next 200m
maxsize unlimited
10.修改表空间----增加物理文件
alter tablespace *** add datafile
'd:\app\oracle12c\oradata\orcl\my_0005.dbf' size 128m
autoextend on next 5m
maxsize unlimited
11.创建用户及设置默认表空间
---创建用户
CREATE USER GZZL_LS IDENTIFIED BY password
DEFAULT TABLESPACE "GZZL"
TEMPORARY TABLESPACE "TEMP"
QUOTA UNLIMITED ON "GZZL"; ---设置用户无限制使用这个表空间配额
12.查看某个表的占用物理空间大小
select segment_name AS TABLENAME,bytes b,bytes / 1024 kb,bytes /1024 /1024 mb,bytes /1024 /1024 /1024 GB from user_segments
where segment_name = upper('D_DZ')
13.jdbc连接数据库的时候,需要使用数据库的sid_name,而不是数据库的services_name
而使用plsql连接数据库的时候,只需要数据库的services_name即可
查看数据库的sid_name语句
select INSTANCE_NAME from v$instance;