oracle 用户与表空间

SELECT a.tablespace_name, --"表空间名",
total, --"表空间大小",
free ,--"表空间剩余大小",
(total - free), --"表空间使用大小",
total / (1024 * 1024 * 1024) ,--"表空间大小(G)",
free / (1024 * 1024 * 1024) ,--"表空间剩余大小(G)",
(total - free) / (1024 * 1024 * 1024), --"表空间使用大小(G)",
round((total - free) / total, 4) * 100 --"使用率 %"
FROM (SELECT tablespace_name, SUM(bytes) free
FROM dba_free_space
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) total
FROM dba_data_files
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name

表空间概念详解

在一个房间里面这个房间可以存储很多箱子,箱子里面可以存储物品! 表空间可以看成房间 箱子可以看成数据文件 物品可以看成表。 用户指定表空间也就是你希望把属于这个用户的表放在那个房间(表空间)里面。
表空间是一个虚拟的概念可以无限大,但是需要由数据文件作为载体

表空间里ORACLE中的一个逻辑概念,它用于存放数据库文件,而数据库文件是存放在磁盘的数据文件,是物理概念,表空间里是后台的一个内存区域,通过它来连接到数据库文件,表空间只是一个虚拟的空间,但是它又没有实际的大小,表空间是恢复数据库的最小单元,表空间不能单独存在,它至少应该包涵一个数据库文件,可以把具有相同数据结构的数据库文件同时放到一个表空间里,而表空间用来逻辑的加以管理这些文件,可以想象成ORACLE是一个柜子,而表空间就是柜子上的空抽屉,而数据库文件就是文件夹,它放在抽屉里,嘿嘿


1.使用系统用户登录SQL Plus:
sys,system;sysman;scott
用户登录格式:[username/password] [@server] [as sysdba|sysoper]
                        system/orcl @orcl as sysdba 

                        备注:orcl 就是自己设置的服务名system/orcl

如果已经使用某个用户登录了SQL Plus,切换登录用户:
                        connect sys/orcl as sysdba 

                        备注:书写不区分大小写

2. 查看登录用户
show user 

备注:sqlplus 中输入的命令不需要分号,当输入的是sql语句时需要加分号

通过”数据字典”—dba_users(数据库提供的表,也是由很多的字段组成)查看用户的其他字段信息
查看数据字典中的字段:

desc dba_users
通过数据字典查看有多少个用户:

select username from dba_users;
3. 启用(scott)用户的语句:
使用scott用户登录sqlplus:(scott用户的默认密码是tiger)
connect scott/tiger
4. 表空间概述:
表空间:

        数据库的逻辑存储空间,可以理解为在数据库中开辟的空间用来存储数据库对象;

表空间和数据文件的关系:

        表空间由一个或多个数据文件组成;数据文件的大小和位置可以自己定义;

表空间的分类:
    永久表空间:数据库中要永久化存储的一些对象,如:表、视图、存储过程
    临时表空间:数据库操作当中中间执行的过程,执行结束后,存放的内容会被自动释放
    UNDO表空间:用于保存事务所修改数据的旧值,可以进行数据的回滚
5. 查看用户的表空间:
①数据字典

dba_tablespaces(系统管理员级别查看的数据字典)

user_tablespaces(普通用户查看的数据字典)

②.查看表空间的字段
desc dba_tablespaces
③.查看有几个表空间
select tablespace_name from dba_tablespaces;
⑤.查看用户的字段信息
desc dba_users
⑥.查看用户的默认表空间、临时表空间等等
select default_tablespace from dba_users where username=’SYS’;
6. 设置用户的默认或临时表空间
alter user username default|tempporart tablespace tablespace_name;
 备注:普通用户没有设置表空间的权限
7. 创建、修改、删除表空间
①.创建表空间
create [temporary] tablespace tablespace_name tempfile|datafile ‘xx.dbf’ size xx;
备注:如果创建的是临时表空间,需要加上temporary关键字;
②.查看表空间的具体路径:(通过dba_data_files 和 dba_temp_files这个数据字典)
desc dba_data_files
select file_name from dba_data_files where tablespace_name=”;(条件是表空间的名字,需要大写)
③.修改表空间的状态
设置联机或脱机的状态(表空间是脱机时不可用,默认是联机的)
alter tablespace tablespace_name online|offline;
如何知道表空间所处的状态?(通过这个dba_tablespaces数据字典)
desc dba_tablespaces
select status from dba_tablespaces where tablespace_name=”;(条件是表空间的名字,需要大写)
设置只读或可读写的状态(只有在联机状态才可以更改,默认的联机状态就是读写状态)
alter tablespace tablespace_name read only | read write;
④.修改数据文件
增加数据文件
alter tablespace tablespace_name add datafile ‘xx.dbf’ size xx;
select file_name from dba_data_files where tablespace_name=”;(条件是表空间的名字,需要大写)
备注:通过这条select语句就查询到当前表空间中的数据文件
删除数据文件(不能删除表空间当中第一个数据文件,如果要删除就需要删除整个表空间)
alter tablespace tablespace_name drop datafile ‘xx.dbf’;
⑤.删除表空间
drop tablespace tablespace_name[including contents];
备注:如果只是删除表空间不删除该表空间下的数据文件,则不加including contents;
 
---------------------
作者:疯狂的咸鸭蛋
来源:CSDN
原文:https://blog.csdn.net/guo_cw/article/details/80530726
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/xiaohuizhenyoucai/p/11101547.html