【Oracle】表空间管理
--表空间管理为主、附带 权限管理、数据字典
/*
表空间是逻辑结构,数据文件是物理结构
一个表空间对应多个段segment 段可以对应多个数据文件、跨磁盘
一个段对应多个盘区 extent 一个盘区只能位于一个数据文件上
一个盘区对应多个 数据块 block
*/
--通过数据字典查询 表空间
select * from dba_data_files; --可以看出 一个表空间对应多个数据文件
/*
默认表空间
example 存放各种样例
sysaux system的辅助空间。主要用于存储数据字典之外的其他数据对象,这样可以减少system表空间的负荷
system 存放数据字典,包括表、视图、存储过程的定义等
temp 存放sql语句处理的表和索引的信息。数据排序就用这个表空间
undotbs1 存放撤销数据的表空间
users 通常用于存放 应用系统所使用的数据库对象
SYSTEM 表空间
进行数据库操作所必须要求的表空间
包含数据字典的信息、存储过程和数据库触发子的定义
包括系统回滚段
可以存储用户数据,但最好不要存储用户数据
非SYSTEM 表空间
可以包括回滚段、临时段、应用数据、应用索引和用户空间
提供了一种更加灵活的数据库管理基础
*/
) from dba_segments group by owner;
--创建表空间语法
create tablespace <tablespace name>
data files 数据文件名以及大小
storage 设置表空间的存储参数 (存储子句)
bring online after creation 表空间在线
leave offline after creation 表空间离线
--查看表空间信息
select * from dba_tablespaces;
--查看数据文件的信息
select file_name,tablespace_name from dba_data_files;
--创建表空间 例句
create tablespace user_space
datafile 'D:\app\Administrator\oradata\bonc\DB_TEST.DBF'
size 30M
default storage
(
initial 10k
next 50k
minextents
maxextents
pctincrease
)
online;
--创建临时表空间 例句
CREATE TEMPORARY TABLESPACE DB_TEMP
TEMPFILE 'D:\app\gloryzheng\oradata\dbz\DB_TEMP.DBF'
SIZE 320M
AUTOEXTEND ON
NEXT 320M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
--删除表空间
drop tablespace user_space including contents cascade constraints;
--使表空间在线
set tablespace users online;
--修改表空间
alter tablespace user_space
add datafile 'D:\app\Administrator\oradata\bonc\DB_TEST2.DBF'
rename datafile 'D:\app\Administrator\oradata\bonc\DB_TEST.DBF' to 'D:\app\Administrator\oradata\bonc\DB_TEST1.DBF'
default storage
online
offline
normal
temporary
immediate;
begin backup
end;
--删除用户并级联删除
drop user tourdb cascade;
--为tourdb 创建表空间
CREATE TABLESPACE DB_ZHENG
LOGGING
DATAFILE 'D:\app\Administrator\oradata\orcl\DB_ZHENG.DBF'
SIZE 320M
AUTOEXTEND ON
NEXT 320M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
--创建用户并指定表空间
CREATE USER tourdb IDENTIFIED BY ch7YH3vd
ACCOUNT UNLOCK
DEFAULT TABLESPACE DB_DATA
TEMPORARY TABLESPACE DB_TEMP;
--修改密码
alert user scott identified by tiger;
--增加表空间的配额
alter user gloryzheng quota unlimited on DB_ZHENG;
alter user gloryzheng quota 10m on db_zheng;
--查看当前用户的权限
select * from user_sys_privs where privilege like '%grant%';
--查看所有用户的权限
select * from user_tab_privs where owner like'%gloryzheng%';
--查看字符集
select * from v$nls_parameters t where t.PARAMETER ='NLS_LANGUAGE' or t.PARAMETER ='NLS_CHARACTERSET';
--数据库服务器字符集
select * from nls_database_parameters;
--客户端字符集
select * from nls_instance_parameters;
--session字符集
select * from nls_session_parameters;
--在环境变量中 新建 系统变量 变量名:NLS_LANG 变量值 为服务器字符集中 NLS_LANGUAGE的值+.+NL_CHARACTERSET的值 即可解决字符集问题
--授权用户 对表操作
--会话权限
grant create session to gloryzheng, tour,tourdb,bkepler;
--授权查询任何表
grant select any table to gloryzheng, tour,tourdb,bkepler;
--授权查询任何字典
grant select any dictionary to gloryzheng, tour,tourdb,bkepler;
--创建表权限
grant create any table to gloryzheng, tour,tourdb,bkepler;
--删除表权限
grant drop any table to gloryzheng, tour,tourdb,bkepler;
--授予插入表的权限
grant insert any table to gloryzheng, tour,tourdb,bkepler;
--授予创建存储过程的权限
grant create procedure to gloryzheng;
--授予dba角色
grant dba to gloryzheng,tour,tourdb,bkepler;
--回收dba角色
revoke dba from gloryzheng, tour,tourdb,bkepler;
--删除角色
drop role xxx
--查看用户相关 数据字典
select table_name from user_tables; 或 select *from tab;--查看用户所拥有的表
select view_name from user_views; --查看用户所拥有的视图
select trigger_name from user_triggers;--查看用户所拥有的触发器
select sequence_name from user_sequence;--查看用户拥有的序列
select index_name from user_indexs;--查看用户拥有的索引
select *from session_privs;--查看用户所拥有的权限
conn scott/tiger;--切换用户
conn scott/tiger as sysdba;--将用户赋予某种角色登录
conn system/unis; select username from dba_users;--查看所有用户
--登录SQL Plus
sqlplus 用户名/密码@db1 as sysdba;
--导出用户文件 用户名/密码为登录现有数据库所用
/db1 file=d:/scott.dmp
--如果导出表时 用户是dba角色 那么导入表时 用户也应该是dba角色 用户名、密码为目标数据库所有
imp 用户名/密码@SID (目标数据库名) file=dmp文件路径 fromuser=导出用户名 touser=导入用户名
--查询表空间使用情况
SELECT Upper(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
To_char(, ), '990.99')
|| '%' "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
), ) TOTAL_BYTES,
), ) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
), ) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
;
--查询表空间的free space
, ) AS MB,sum(blocks) AS blocks from dba_free_space group BY tablespace_name;
--查询表空间的总容量
as MB from dba_data_files group by tablespace_name;
--查询表空间使用率
--例句1
SELECT total.tablespace_name,
) AS Total_MB,
) AS Used_MB,
, )
|| '%' AS Used_Pct
FROM (SELECT tablespace_name,
AS MB
FROM dba_free_space
GROUP BY tablespace_name) free,
(SELECT tablespace_name,
AS MB
FROM dba_data_files
GROUP BY tablespace_name) total
WHERE free.tablespace_name = total.tablespace_name;
--例句2
SELECT a.tablespace_name "表空间名",
total "表空间大小",
free "表空间剩余大小",
( total - free ) "表空间使用大小",
) "使用率 %"
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;
--例句3
SELECT TABLESPACE_NAME "TABLESPACE",
To_char(, ), '99990.00')
|| '' "TOTAL",
To_char(, ), '99990.00')
|| 'G' "FREE",
To_char(, ), '99990.00')
|| 'G' "USED",
To_char( , '99990.00')
|| '%' "PERCENT"
FROM (SELECT A.TABLESPACE_NAME TABLESPACE_NAME,
)) BYTES,
)) FREE,
)) USED
FROM (SELECT TABLESPACE_NAME TABLESPACE_NAME,
Sum(BYTES) BYTES
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) A,
(SELECT TABLESPACE_NAME TABLESPACE_NAME,
Sum(BYTES) FREE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME);
--WHERE TABLESPACE_NAME LIKE 'CDR%' --这一句用于指定表空间名称
* USED / BYTES) DESC;
--例句4
select tablespace_name,
max_gb,
used_gb,
* used_gb / max_gb) pct_used
from (select a.tablespace_name tablespace_name,
)) , ),
) used_gb,
, ), ) max_gb
from (select f.tablespace_name,
sum(f.bytes) bytes_alloc,
sum(decode(f.autoextensible,
'YES',
f.maxbytes,
'NO',
f.bytes)) maxbytes
from dba_data_files f
group by tablespace_name) a,
(select f.tablespace_name, sum(f.bytes) bytes_free
from dba_free_space f
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name(+)
union all
select h.tablespace_name tablespace_name,
)) , ), ) used_gb,
round(sum(decode(f.autoextensible,
'YES',
f.maxbytes,
'NO',
f.bytes)) , ),
) max_gb
from v$temp_space_header h, v$temp_extent_pool p, dba_temp_files f
where p.file_id(+) = h.file_id
and p.tablespace_name(+) = h.tablespace_name
and f.file_id = h.file_id
and f.tablespace_name = h.tablespace_name
group by h.tablespace_name)
;
【Oracle】表空间管理的更多相关文章
- ORACLE表空间管理维护
1:表空间概念 在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段.区.块等逻辑结构.从物理结构上看是放在数据文件中.一个表空间可由多个数据文件组成. 如下图所示, ...
- Oracle表空间管理
oracle表空间相关常用命令小结: 1.ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE; //修改表空间数据文件类型 2.ALT ...
- oracle 表空间管理
1.创建表空间 03:01:55 sys@ORADB11G> create tablespace TSPITR datafile '/u01/app/oracle/oradata/TSPITR0 ...
- ArcSDE for Oracle表空间管理——暂时(TEMP)表空间
Oracle暂时表空间主要用来做查询和存放一些缓冲区数据.暂时表空间消耗的主要原因是须要对查询的中间结果进行排序. 重新启动数据库能够释放暂时表空间,假设不能重新启动实例,而一直保持问题sql语句的运 ...
- ORACLE表空间管理方式segment和extent
A permanent tablespace contains persistent schema objects. Objects in permanent tablespaces are stor ...
- oracle 表空间管理相关(原创)
通过以下几步基本可以查看表空间情况以及处理表空间不足问题. ASM相关 查看asm空间 select group_number,name,total_mb,free_mb from v$asm_dis ...
- Oracle表空间管理相关
以下以我自己的测试环境举例: 1.表空间的 block_size 为 8192字节,即8KBytes.从数据字典中查到 max_size 为 2147483645,即约为15.9TBytes. 2.在 ...
- Oracle undo 表空间管理 (摘DAVID)
Oracle 的Undo有两种方式: 一是使用undo 表空间,二是使用回滚段. 我们通过 undo_management 参数来控制使用哪种方式,如果设为auto,就使用UNDO 表空间,这时必须要 ...
- Oracle 表空间的日常维护与管理
目录 Oracle 表空间的日常维护与管理 1.创建数据表空间 2.创建临时表空间 3.创建 UNDO 表空间 4.表空间的扩展与修改大小 5.表空间重命名 6.表空间的删除 7.更改表空间的读写模式 ...
- Oracle表空间概述及其基本管理
最近在工作中遇到有同事对Oracle表空间的理解有问题,所以写了这篇文章.我会从概念,管理及特别需要关注的点等几个维度对表空间进行一些介绍.本文以介绍表空间为主,涉及到的其他概念不展开描述.有问题的地 ...
随机推荐
- Linux 下搭建www服务器
偶然的机会接触了前端开发,尽管最初的意愿是后台. 不过现在看来,前端后台数据库密不可分! 回想起来感觉自己学习的层次也还很好,因为之前有学习c语言.c++的基础,所以在学习html,js的过程中感觉还 ...
- asp.net修行入门讨论
突然想起来大学的一个专业课老师,教C,C#,他的教学特点就是只教简单知识,现在想想真有道理,假如上来就教我们枯燥难以理解的高深知识,我们会恐惧编程的,极大地打击学习的兴趣,所以他C语言的指针从来没教过 ...
- Java虚拟机:类加载机制详解
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 大家知道,我们的Java程序被编译器编译成class文件,在class文件中描述的各种信息,最终都需要加载到虚拟机内存才能运行和使用,那么 ...
- Java中的数值和集合
数组array和集合的区别: (1) 数值是大小固定的,同一数组只能存放一样的数据. (2) java集合可以存放不固定的一组数据 (3) 若程序事不知道究竟需要多少对象,需要在空间不足时自动扩增容量 ...
- zookeeper+dubbo简单使用
首先下载zookeeper,直接百度官网下载即可! 下载完之后,把cfg配置文件改名为zoo.cfg,如下: 在bin目录下启动zkServer即可! 项目结构: 简单讲解:首先dubbo是一个mav ...
- java+反射+多线程+生产者消费者模式+读取xml(SAX)入数据库mysql-【费元星Q9715234】
java+反射+多线程+生产者消费者模式+读取xml(SAX)入数据库mysql-[费元星Q9715234] 说明如下,不懂的问题直接我[费元星Q9715234] 1.反射的意义在于不将xml tag ...
- vue项目优化之按需加载组件-使用webpack require.ensure
require-ensure和require-amd的区别: require-amd 说明: 同AMD规范的require函数,使用时传递一个模块数组和回调函数,模块都被下载下来且都被执行后才执行回调 ...
- 最小生成树详解 prim+ kruskal代码模板
最小生成树概念: 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边. 最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里 ...
- 电脑只能上QQ,不能上网浏览网站怎么解决
这个问题通常是因为网络的DNS解析出错引起的.QQ一类的聊天软件有自动的网络解析,不需要DNS便可以使用,而一般的浏览器是需要DNS解析来访问网页的.所谓DNS,即域名服务器(Domain Name ...
- 快慢指针实现不依赖计数器寻找中位数(linked list)
该方法在不借助计数器变量实现寻找中位数的功能.原理是:快指针的移动速度是慢指针移动速度的2倍,因此当快指针到达链表尾时,慢指针到达中点.程序还要考虑链表结点个数的奇偶数因素,当快指针移动x次后到达表尾 ...