文档章节

oracle 11g 存储结构和数据文件

d
 doudou___9958
发布于 2017/05/05 11:18
字数 1930
阅读 26
收藏 2

 

存储结构与数据文件
存储结构:
database----tablespace-----sefment-----extent----blocks
|
datafile
tablespace:存储数据和表数据
1.表空间分类:
1.1永久表空间:存放用户和字典
查看表空间有名字及属于哪种类型:select tablespace_name,contents from dba_tablespaces;
1.1.1system(字典表空间):存放当前数据库数据字典信息,对象的结构信息,Oracle内部的基表(查看基表 desc tab$) 。
1.1.2sysaux(辅助表空间):分单字典表空间的负担,存放oracle内部使用的工具,
查看辅助表空间有哪些工具:select occupant_name from v$sysaux_occupants;
1.1.3undo(回退表空间):存放用户对数据块修改前的前镜像,主要用来用户执行回退或闪回操作;
1.1.4temp(临时表空间):1.存放用户临时数据,2.内存不够用时,排序操作
1.1.5users/example(用户表空间):需要手动创建

1.2表空间的状态:
online:联机 offline:离线 read write:可写 read only:只读
system空间不能offline/read write/read only
sysaux空间不能read only
设置表空间状态:alter tablespace users offline;
2.表空间的创建
创建语法:create [smallfile | bigfile] tablespace <> datafile '/' size <> [ extend uniform size <> | autoextend segment management local | auto];
创建小表表空间:select bigfile tablespace sarch1 datafile '/opt/u01/oracle/oradata/db/up14.dbf' size 50m;
创建自动增长的大表表空间:select bigfile tablespace sarch1 datafile '/u01/..... .dbf' size 50m autoextend on;
查看默认使用的哪个表空间:select property_name,property_value from database_properties where property_name like '%DEF%';
设置默认表空间:alter database default tablespace <> ;
使用默认的小 | 大 表表空间:alter databale set default smallfile | bigfile tablespace;
小表表空间:一个表空间下存放多个数据文件(最多存放1023个数据文件每个数据文件大小不能从超过32G)--------->系统默认
小表表空间数据文件头部:4k
大表表空间:一个表空间只存放一个数据文件(最大达到128T,最小8T,能放40亿个数据块)
大表表空间数据文件头部:4M
3.表空间的管理:


1.表空间改名:
注:system/sysaus 不能改名 自己创建的表空间可以改名
语法:alter tablespace <old> rename to <new>;


2.自己创建的表空间的迁移或空间下的数据文件的迁移
1.open状态下执行
注:不能离线的表空间不能迁移,能够离线的表空间可以迁移,不能直接拷贝(cp)需要离线
1.直接离线表空间(不建议使用,影响用户)
1.离线表空间:alter tablespace <> offline;
2.查看有哪些表空间:select tablespace_name,file_name from dba_data_files; 并拷贝(cp)到新路径
3.更新系统路径:alter tablespace <> rename datafile '/<old>' to '/<new>';
4.表空间在线:alter tablespace <> online;
2.迁移表空间的某个数据文件:
1.离线数据文件:alter database datafile <路径 | 编号> offline;
查看数据文件编号:select file#,name,status from v$datafile;
2.拷贝到新路径;cp
3.更新系统路径:alter database rename file '/<old>' to '/<new>';
4.介质恢复:recover datafile <编号 | 路径>;
5.数据文件在线:alter database datafile <编号 | 路径> online
2.mount状态下执行
1.拷贝到新路经
2.更新系统路径:alter database rename file '/<old>' to '/<new>';
3.打开数据库:alter database open;
3.表空间的扩容:表空间使用率达到85%时需扩容--->推荐使用1.3种
查看表空间使用情况:select tablespace_name,bytes/1024/1024 bytes from dba_data_files; |
查看空闲情况:select tablespace_name,sum(bytes/1024/1024) bytes from dba_free_space group by tablespace_name ;
查看表空间是否自动增长:select file_name,autoextensible from dba_data_files;
扩容方法:
1.没有使用自动增长:----->该为自动增长:autoextend on
alter database <> datafile '/' autoextend on
2.重置表空间的大小或数据文件的大小(使用它会出问题因为用户在使用)
alter database datafile '/' resize 60M;
3.在表空间下增加数据文件
alter tablespace <> add datafile '/' size 50M;
4.表空间的删除:
没有对象:drop tablespace <>;
有对象:drop tabalespace <> including contents;
删除表空间及物理文件:drop tabalespace <> including contents and datafiles;
5.表空间相关试图:
dba_tablespaces;
dba_data_files;
dba_free_space;
v$tablespace(动态);
undo表空间:主要给普通用户使用
默认分配10个段。
查看Undo表空间有多少个段:select segment_name from dba_rollback_segs;
查看undo表空间参数:show parameter undo;
1.作用
回退操作--------rollback
闪回操作-------commit
一致性
undo出了问题
创建undo表空间语法(也可以做smallfile | bigfile):
create undo tablespace <> datafile '/' size <> autoextend in [ segment management <> entent management <> | uniform size <>];
undo_management:
rallback segment:
aum:auto undo management
mum:manual undo management
11g:manual ----不能呢个做dml操作
sys----system
auto----
2.1Undo 表空间丢失处理(系统自带的)
1.改为手动管理:alter system set undo_management=manual scope=spfile;
2.重启数据库:shutdown immediate ---->启动:startup
3.删除undo表空间:drop tabalespace <>
4.创建undo表空间:create undo tablespace <> datafile '/' size 100m autoextend on ;
5.改为自动管理:alter system set undo_management=auto scope=spfile;
6.重启数据库:shutdown immediate ----->启动:startup
2.2undo物理文件丢失
1.关闭数据库:shutdown immediate; | shutdown abort;
启动到nomount阶段:startup nomount
2.改为手动管理undo表空间:alter system set undo_management=manual scope=spfile;
3. 启动数据库到mount阶段:shutdown immediate ---->startup nomount---->salter database mount;
4.让undo数据文件离线并删除物理文件: alter database datafile 3 offline drop;
5.打开数据库:alter databases open;
6.删除undo表空间(如果有dml操作会报错需要使用隐藏参数进行删除): drop tablespace undotbs1
7.新建undo: create undo tablespace undotbs1 datafile '/' size 100m autoextend on ;
8.改为默认:alter system set undo_tablespace=undotbs1;
9.该为自动管理: alter system set undo_management=auto scope=spfile
如果第六步不成功:
7.create pfile=‘/tmp/a.ora’ from spfile;
8.加隐藏参数过滤掉活动的undo段;
select segment_name from dba_rollback_segs where tablespace_name='UNDOTBS1'
vim /tmp/a.ora
添加: _corrupted_rollback_segments=(''_SYSSMU1_1240252155$,'...')
9.使用pfile启动数据库
startup pfile='/tmp/a.ora';
10.删除undotbs1并重新创建一个undo设为默认的
drop tablespace undotbs1 including contents and datafiles;
create undo tablespace undotbs2 datafile '/' size <> autoextend on;
alter system set undo_tablespace=undotbs2;
alter system set undo_management=auto scope=spfile;
11.重启并打开数据库
shutdown immediate---------->startup;
3.Undo表空间扩容(达到85%):
1.改为自动增长autoextend on
alter database datafile '/' autoextend on;
2.重置表空间大小 resize
alter database datafile '/' resize <>;
3.将表空间增加数据文件
alter tabalespcae <> add datadile ' ' size <>;
4.Undo试图:
与永久表空间试图一样
temp:临时表空间:
1.作用:
1.存放用户临时数据,
2.排序操作时,内存不够用时,
2.创建语法:
create temporary tablespace <> tempfile '/' size <> [segment management <> | extent management <> uniform size <> ];
查看临时表空间相关信息:desc dba_temp_files;
3.管理:
1.改为自动增长autoextend on
alter database datafile '/' autoextend on;
2.重置表空间大小 resize
alter database datafile '/' resize <>;
3.将表空间增加数据文件
alter tabalespcae <> add datadile ' ' size <>;
4.丢失处理:
允许重启:只需将数据库重启,
不允许重启:重新创建一个表空间并设置成默认的
1.重建:create temporary tablespace <> tempfile '/' size <> autoextend on;
2.设置为默认:alter database default temporary tablespace <>;
3.删除丢失的表空间:drop tablespace <>;
5.相关试图:
多1个 dba_temp_files;
segment(段):
查看段的信息:desc user_segments(11g只有插入数据到segment里面才会分配段)
段的产生:
用户执行创建对象的时候,系统自动分配段,默认情况用户创建对象时候系统分配一个段,
段只有名字,没有大小
段的分类:
表段:
索引段:
临时段:
undo段:
段的管理:
字典管理:10g就被淘汰。
本地管理:
extent:(区)
区只有大小,没有名字:
查看区的信息:desc user_extents
区的管理:
区的大小自动管理
本地管理:
Block:数据块
查看数据库信息: show parameter db_block

数据文件:
数据文件状态:
online: 联机 offline:离线 recover:需要做介质恢复

© 著作权归作者所有

共有 人打赏支持
d
粉丝 4
博文 44
码字总数 54288
作品 0
成都
私信 提问
Oracle专题1之Oracle概述、Oracle数据库的体系结构以及常用命令

1、Oracle概述 - Oracle Database,简称为Oracle。是美国ORACLE(甲骨文)公司的一款对象关系型的数据库管理系统(ORDBMS)。目前在数据库市场上占有主要份额。 - Oracle的发展史:1977年埃里...

极客微信条
2017/11/30
0
0
Oracle专题1之Oracle概述、Oracle数据库的体系结构以及常用命令

1、Oracle概述 - Oracle Database,简称为Oracle。是美国ORACLE(甲骨文)公司的一款对象关系型的数据库管理系统(ORDBMS)。目前在数据库市场上占有主要份额。 - Oracle的发展史:1977年埃里...

极客微信条
2017/11/23
0
0
orcale安装(grid 及变量的编写 )

环境:cenos6.8 软件:11.2.0.4 安装前的oracle了解 oracle: 关系型数据库(mysql)主要存放数据和二维表结构 非关系型数据库:树型结构 1.安装前准备: 9i版本----> rh4以下版本 10G版本-...

doudou___9958
2016/11/16
0
0
Oracle 11g体系结构

Oracle 11g体系结构 Oracle 11g 体系结构概述 基本概念  数据库database:一个数据集合,数据存放在数据文件中;  实例instance:通俗的讲,实例就是操作数据库的一种手段,也称作服务器...

fortyone41
2017/01/10
0
0
Oracle数据库11g新特性:自动存储管理

内容摘要:用于管理 ASM 实例的新的 SYSASM 角色、用于降低共享池使用的可变的区大小,以及实例能够读取磁盘组的特定磁盘,这些都是 Oracle 数据库 11g ASM 中引入的一些重要新特性。   S...

SANSOM
2013/08/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

容器服务

简介 容器服务提供高性能可伸缩的容器应用管理服务,支持用 Docker 和 Kubernetes 进行容器化应用的生命周期管理,提供多种应用发布方式和持续交付能力并支持微服务架构。 产品架构 容器服务...

狼王黄师傅
昨天
3
0
高性能应用缓存设计方案

为什么 不管是刻意或者偶尔看其他大神或者大师在讨论高性能架构时,自己都是认真的去看缓存是怎么用呢?认认真真的看完发现缓存这一块他们说的都是一个WebApp或者服务的缓存结构或者缓存实现...

呼呼南风
昨天
12
0
寻找一种易于理解的一致性算法(扩展版)

摘要 Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可...

Tiny熊
昨天
2
0
聊聊GarbageCollectionNotificationInfo

序 本文主要研究一下GarbageCollectionNotificationInfo CompositeData java.management/javax/management/openmbean/CompositeData.java public interface CompositeData { public Co......

go4it
昨天
3
0
阿里云ECS的1M带宽理解

本文就给大家科普下阿里云ECS的固定1M带宽的含义。 “下行带宽”和“上行带宽” 为了更好的理解,需要先给大家解释个词“下行带宽”和“上行带宽”: 下行带宽:粗略的解释就是下载数据的最大...

echojson
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部