Oracle基础结构之表空间

本文深入探讨了Oracle数据库中表空间的相关管理,包括表空间和数据文件的目的、使用DBCA创建表空间、管理表空间状态、删除表空间、获得表空间信息、改变表空间尺寸和移动数据文件等内容。

文章版权所有Jusin Haoluckyfriends),支持原创,转载请注明。

1、表空间相关管理... 24

1.1明确表空间和数据文件的目的... 24

1.2使用dbca创建数据库中的的表空间构成... 24

1.3 表空间概念... 24

1.4使用命令创建表空间... 25

2、管理表空间... 26

2.1 改变表空间状态... 26

2.2 删除表空间... 26

2.3获得表空间信息... 26

2.4 改变表空间的尺寸... 26

2.5移动数据文件... 27

1. 表空间相关管理 1.1明确表空间和数据文件的目的

表空间和数据文件:从逻辑上来讲,Oracle将数据存储在表空间中,实际上存储在数据文件中;

表空间:能属于仅仅一个数据库,包括一个或更多数据文件,更进一步被划分成为存储的逻辑单元;

数据文件:能属于仅仅一个表空间和一个数据库,模式对象(表、索引)数据的一个储存处;

1.2使用dbca创建数据库中的的表空间构成

system:系统表和系统回滚段;

sysaux:某些系统标位置;

temp:临时段;

undotbs1:回滚段;

users:用户数据所在

example:示例模式的位置;

1.3 表空间概念

表空间类型:永久表空间、临时表空间、还原表空间;

表空间的定义的管理方式:

1) 本地管理的表空间:自由的盘区信息在表空间中被管理;

用位图来记录自由盘区信息

每一点映射一个块或若干块;

点的值表明自由或者已被使用;

2) 词典管理的表空间:自由盘区信息在数据词典中被管理(内部管理)

当空间分配获得释放时,适当的系统表被更新;

注意:如果系统表空间(system表空间)是本地管理方式则后续创建的表空间要都是本地管理的表空间;如果系统表空间是字典管理的表空间则后续创建的表空间可以是字典管理的也可以是本地管理的;

本地表空间的盘区管理有两种方式:统一管理方式、自动管理方式;

1.4使用命令创建表空间

创建普通表空间例子:

create tablespace user_data datafile 'F:\oracle\product\10.2.0\oradata\test\userdata01.dbf' size 10M extent management local segment space management auto;

create temporary tablespace temp_data tempfile 'F:\oracle\product\10.2.0\oradata\test\tempdata01.dbf' size 10M extent management local uniform size 16K;

create tablespace test01 datafile 'F:\oracle\product\10.2.0\oradata\test\test01_01.dbf' size 10M autoextend on next 1m maxsize 50m extent management local segment space management auto;

create tablespace test02 datafile 'F:\oracle\product\10.2.0\oradata\test\test02_01.dbf' size 50M extent management local uniform size 512K;

create tablespace test03 datafile 'F:\oracle\product\10.2.0\oradata\test\test03_01.dbf' size 10M autoextend on extent management local;

create tablespace test04 datafile 'F:\oracle\product\10.2.0\oradata\test\test04_01.dbf' size 10M autoextend on next 2m maxsize 50m autoallocate extent management local segment space management auto;

创建大文件表空间

create bigfile tablespace bigtbs datafile 'F:\oracle\product\10.2.0\oradata\test\bigtbs_01.dbf' size 50G;

1)segment space management{auto|manual}表明了对segment中自由空间的管理方式(manual、auto),即表明追踪segment中自由空间(表的剩余空间)是通过freelist(manual)还是bitmaps(auto),如果设为auto在此tablespace中相应的对象的pctused、freelsit、freelistgroups存储参数将被忽略;

2)segment space management 子句有一定的限制:only for permanent,local managed tablespace ,并且不能对system表空间使用;

3)Oracle 9i创建表空间默认是manual,10G默认是auto;

4)Oracle表空间由段(segment)组成,段由连续的块(block)组成,当在表空间里创建一个table、index等对象的时候,对于使用者而言称其为对象,但是对于Oracle存储的角度来说是segment;Oracle最小的读写单位是block,但是在为对象(segment)分配空间时单位是extent,这样做是为了效率;

5)uniform size 5M表示是表空间未满的情况下以5M的盘曲分配空间给段;autoallocate表示由Oracle自动分配盘区的大小(默认是自动的)

6)autoextend on next 64K表示表空间满后,以64K的盘区单位为表空间扩展空间;

7)创建大文件表空间可以指定盘区分配方式(如uniform或autoallocate)但是不能将段管理方式指定为manual;

8)创建临时表空间时盘区分配方式不能指定为autoallocate,只能uniform(默认是manual);

9)创建撤销表空间不能使用uniform指定统一的区大小;

2、管理表空间 2.1 改变表空间状态

表空间状态:读写(read write)、只读(read only)、脱机(offline)

联机状态:alter tablespace test01 online;

脱机状态:alter tablespace test01 offline;

注意:表空间脱机状态下数据访问是被禁止的,system表空间和包含回滚段的表空间不能被脱机;

只读表空间就是只允许从中读取数据,而不能写数据的表空间,这类表空间通常用于保存一些不允许用户修改的数据;

alter tablespace test01 read only;

alter tablespace test01 read write;

2.2 删除表空间

删除表空间和之上的对象及表空间包含的数据文件:drop tablespace user_data including contents and datafiles;

如果表空间中有内容则删除表空间必须加上contents这项;

如果误删了某个不重要的表空间的数据文件时想要删除表空间不能或者重启数据库后只能到mount状态不能打开数据库(同时不能删除表空间),这时需要使表空间的数据文件脱机后再删除或打开数据库后删除:

alter database datafile 5 offline;

alter database datafile ‘/u01/test01.dbf’ offline drop;

如果对sysaux表空间执行了offline drop则在online的时候会提示进行介质恢复(recover database)

2.3获得表空间信息

dba_tablespace

v$datafile

dba_data_files;

dba_temp_files;

v$tempfile

2.4 改变表空间的尺寸

> 为表空间创建新的数据文件

alter tablespace my_data add datafile ‘f:\oracle\oradata\test\test01_02.dbf’ size 200m;

> 手工改变数据文件尺寸

alter database datafile ‘f:\oracle\oradata\test\test01_02.dbf’ resize 200m;

> 使表空间自动扩展

alter database datafile ‘f:\oracle\oradata\test\test01_02.dbf’ autoextend on next 10m maxsize 500M;

alter database datafile ‘f:\oracle\oradata\test\test01_02.dbf’ autoextend off;

? 删除数据文件

alter tablespace test01 drop datafile ‘f:\oracle\oradata\test\test01_02.dbf’;

(删除表空间的数据文件前提是这个数据文件中没有数据并且该数据文件正常(没有脱机、没有坏))

2.5移动数据文件

方法1)

? 表空间必须脱机(此时数据库open)

? 目标数据文件必须存在(拷贝数据文件到目标位置)

? 用命令修改控制文件指向:alter tablespace my_data rename datafile ‘f:\oracle\oradata\test\test01_02.dbf’ to ‘D:\oradata\test\test01_02.dbf’;’;

? 表空间联机

这种情况下只能移动除系统表空间(system表空间)和回退表空间以外的其他数据文件;

方法2)

? 数据库要在mount状态

? 目标数据文件必须存在(拷贝数据文件到目标位置)

? alter database rename file ‘f:\oracle\oradata\test\system01.dbf’ to ‘d:\ oradata\test\system01.dbf’ ;

? alter database open;

这种情况下可以一定包括系统表空间、回退表空间在内的所有数据文件;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14710393/viewspace-1086827/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14710393/viewspace-1086827/

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值