oracle数据文件编号,oracle中表空间与数据文件编号的连续性
ORACLE中表空间编号与数据文件编号都是连续的,不会断号。如果TS$中表空间出现了断号,
oracle在启动时会进行数据字典和控制文件的校验,发现不一致时,数据库不能正常启动。
表空间被删除时ts$表中并不会删除相关表空间的记录。只是把表空间的状态置为3,即INVALID状态。
如果再次创建同名的表空间,则oracle会把TS$表中同名表空间的状态由3置为1,ONLINE状态。以此
来保证表空间号的连续。
ORACLE 10g中sql.bsq记录了ts$的online$列与file$的status$列的含义:
ts$
online$ /* 1 = ONLINE, 2 = OFFLINE, 3 = INVALID */
file$
status$ /* 1 = INVALID, 2 = AVAILABLE */
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as SYS
UNDOTBS2,LIANG,Liang这三个表空间被删除,但ts$中并没有删除相关记录。只是把ONLINE$状态置为3(INVALID)
SQL> SELECT ts#,name ,online$ FROM ts$;
TS# NAME ONLINE$
--- ----------- -------
0 SYSTEM 1
1 SYSAUX 1
2 UNDOTBS1 1
3 TEMP 1
4 USERS 1
5 UNDOTBS2 3 6 EXAMPLE 1
7 TBS_REPORT 1
8 LIANG 39 Liang 310 rows selected
-- 数据文件编号一样不会被删除,将删除的数据文件编号置为1(INVALID状态)。
SQL> SELECT file#,status$ FROM file$;
FILE# STATUS$
----- ------
1 2
2 2
3 2
4 2
5 2
6 2
7 17 rows selected
SQL> SELECT d.file_id,d.tablespace_name, d.file_name FROM dba_data_files d
2 order by d.file_id;
FILE_ID TABLESPACE_NAME FILE_NAME
------- ---------------- ----------------------------------------------------
1 SYSTEM D:/ORACLE/LIANGWEI/ORADATA/LIANGWEI/SYSTEM01.DBF
2 SYSAUX D:/ORACLE/LIANGWEI/ORADATA/LIANGWEI/SYSAUX01.DBF
3 UNDOTBS1 D:/ORACLE/LIANGWEI/ORADATA/LIANGWEI/UNDOTBS01.DBF
4 USERS D:/ORACLE/LIANGWEI/ORADATA/LIANGWEI/USERS01.DBF
5 EXAMPLE D:/ORACLE/LIANGWEI/ORADATA/LIANGWEI/EXAMPLE01.DBF
6 TBS_REPORT D:/ORACLE/LIANGWEI/ORADATA/LIANGWEI/TBS_REPORT1.DBF
6 rows selected
SQL> CREATE tablespace test DATAFILE 'D:/ORACLE/TEST02.DBF' SIZE 10M;
Tablespace created
重新创建数据文件时,如果没有状态为1(INVALID)的数据文件,oracle会新分配一个数据文件编号。
如果有状态为1(INVALID)的数据文件编号,不管新创建的数据文件是否与被删除的数据文件同名。
oracle都会重新利用被设置为状态为1(INVALID)的数据文件编号。以保证数据文件编号的连续性。
新创建数据文件后,发现7号数据文件编号被设置为2(AVAILABLE)
SQL> SELECT file#,status$ FROM file$;
FILE# STATUS$
----- -------
1 2
2 2
3 2
4 2
5 2
6 2
7 2
7 rows selected
SQL> SELECT d.file_id,d.tablespace_name, d.file_name FROM dba_data_files d order by d.file_id;
FILE_ID TABLESPACE_NAME FILE_NAME
------- ------------------ ----------------------------------------------------
1 SYSTEM D:/ORACLE/LIANGWEI/ORADATA/LIANGWEI/SYSTEM01.DBF
2 SYSAUX D:/ORACLE/LIANGWEI/ORADATA/LIANGWEI/SYSAUX01.DBF
3 UNDOTBS1 D:/ORACLE/LIANGWEI/ORADATA/LIANGWEI/UNDOTBS01.DBF
4 USERS D:/ORACLE/LIANGWEI/ORADATA/LIANGWEI/USERS01.DBF
5 EXAMPLE D:/ORACLE/LIANGWEI/ORADATA/LIANGWEI/EXAMPLE01.DBF
6 TBS_REPORT D:/ORACLE/LIANGWEI/ORADATA/LIANGWEI/TBS_REPORT1.DBF
7 TEST D:/ORACLE/TEST02.DBF
7 rows selected
新建表空间时,如果ts$中没有同名,且状态为3的表空间。oracle会重新分配一个连续的表空间编号。
SQL> SELECT ts#,name ,online$ FROM ts$;
TS# NAME ONLINE$
--- ---------- -------
0 SYSTEM 1
1 SYSAUX 1
2 UNDOTBS1 1
3 TEMP 1
4 USERS 1
5 UNDOTBS2 3
6 EXAMPLE 1
7 TBS_REPORT 1
8 LIANG 3
9 Liang 3
10 TEST 1
11 rows selected
如果创建同名的表空间,oracle会利用原有状态为3的表空间,同时将状态置为1.SQL> CREATE tablespace LIANG DATAFILE 'D:/ORACLE/TEST01.DBF' SIZE 10M;
Tablespace created
创建同名表空间LIANG后,8号表空间状态由3变为1.
SQL> SELECT ts#,name ,online$ FROM ts$;
TS# NAME ONLINE$
--- ---------- ----------
0 SYSTEM 1
1 SYSAUX 1
2 UNDOTBS1 1
3 TEMP 1
4 USERS 1
5 UNDOTBS2 3
6 EXAMPLE 1
7 TBS_REPORT 1
8 LIANG 1
9 Liang 3
10 TEST 1
11 rows selected
新创建的表空间不能与数据库中已有的表空间同名。
SQL> CREATE tablespace TEST DATAFILE 'D:/ORACLE/TEST02.DBF' SIZE 10M;
CREATE tablespace TEST DATAFILE 'D:/ORACLE/TEST02.DBF' SIZE 10M
*
第 1 行出现错误:
ORA-01543: 表空间 'TEST' 已存在
新创建的数据文件也不能与数据库中已有的数据文件同名。SQL> CREATE tablespace TEST2 DATAFILE 'D:/ORACLE/TEST02.DBF' SIZE 10M;
CREATE tablespace TEST2 DATAFILE 'D:/ORACLE/TEST02.DBF' SIZE 10M
*
第 1 行出现错误:
ORA-01537: 无法添加文件 'D:/ORACLE/TEST02.DBF' - 该文件已是数据库的一部分
oracle数据文件编号,oracle中表空间与数据文件编号的连续性相关推荐
- oracle如何往dg加盘_学习笔记:Oracle DG系统 主备库中表空间和数据文件增加删除等管...
天萃荷净 Oracle Data Guard表空间和数据文件管理汇总 汇总日常工作中操作,在Oracle DG结构系统中,如何删除备库表空间和数据文件,如何管理主库与备库之间的文件系统,详见文章内容. ...
- oracle 孙帅_农村居民点空间大数据平台构建方法研究
农村居民点空间大数据平台构建方法研究 孙帅,王彪 (北方工业大学建筑与艺术学院,北京 100144 ) [摘 要] 通过低空无人机实景建模技术,采集并构建农村居民点空间大数据平 台.充分发掘海量空间数 ...
- mysql数据库表空间压缩,表空间中有数据也可以压缩表空间(数据文件)大小!!...
首先说声抱歉,在 中提出以下观点,经过研究请教,发现观点都是错误的,在这里给予更正. 3.得知表空间中有数据不能resize数据文件的大小:要想resize数据文件,那么表空间中必须没有数据. 更正后 ...
- ORACLE开发:创建与管理表空间和数据文件1
Oracle在逻辑上以表空间存储数据,而实际上是以数据文件存储数据. 表空间和数据文件 表空间:某一时刻只属于一个数据库:由一个或多个数据文件组成:可近一步划分逻辑存储单元 数据文件:只能属于一个表空 ...
- oracle 11g dul,学习笔记:Oracle dul数据挖掘 导出Oracle11G数据文件坏块中表中
试验模拟导出Oracle 11G数据库中数据文件坏块中表中的数据 以前一直以为dul对应的版本只能恢复最高的数据库版本一致,今天测试发现dul 10可以恢复11g最新版的数据库. 模拟环境SQL> ...
- oracle rman恢复表空间,Oracle数据库RMAN恢复之表空间和数据块介质的恢复
示例一:表空间的数据文件被误删除 open状态下删除表空间对应的所有数据文件. 在open状态下使用alter tablespace ... offline for recover 脱机表空间. 使用 ...
- 在数据库使用期间创建OMF(Oracle Managed Files,Oracle管理的文件)
在数据库使用期间,可以按照以下步骤使用OMF为表空间创建数据文件,为临时表空间创建临时文件,创建控制文件,创建redo日志文件和归档日志. 1.使用OMF为表空间创建数据文件 当某些条件满足时,下面的 ...
- oracle rman部分恢复,Oracle中使用RMAN备份及一些恢复方法
使用RMAN备份并恢复 Backup 备份命令生成 Backup sets (备份集合),以 oracle 专有的格式保存, 由一个完全的所有的备份片集合构成,构成一个完全备份或增量备份. 1.1. ...
- 北京涛思数据获得 Pre A 轮融资,专注时序空间大数据领域
北京涛思数据科技有限公司(TAOS Data)宣布完成Pre A轮融资,参与此轮投资的是永辉瑞金和温青投资.此前,公司曾于2017年6月获得来自明势资本和蛮子基金的天使投资. 据悉,完成此轮融资后,涛 ...
最新文章
- [转] 先验概率and后验概率
- R语言seq函数生成数据序列实战
- Linux性能分析和调整的基本原则
- 读书笔记----10日摘抄整理(01)
- Matrix(二维hash)
- SQL SERVER作业的Schedules浅析
- 转HTML、CSS、font-family:中文字体的英文名称
- Python学习笔记_文件读写,目录遍历类封装
- 专访图灵奖得主David Patterson:8年前就得知被提名,AI跃迁看好边缘计算
- MySQL执行计划 EXPLAIN参数
- 30个值得关注的Vue开源项目
- AndroidStudio个人中心个人信息修改
- 最新Oreo支付系统平台完整源码+已全开源
- Leetcode 5855 数组第K大的整数
- 三亚科技创新创业大赛完美落幕,珈和科技等五个企业获一等奖
- Nvidia Jetson AGX Xavier 安装SATA接口固态硬盘
- win8连接wifi成功但受限制_win8平板电脑魔兽评测 Win8平板Pi游戏平板电脑测评PO W1流畅运行...
- 基于FPGA的数字钟(四)——时钟控制模块
- SpringCloud整合Seata(Docker)版本异常处理
- 如何在MySQL中修改'max_questions'资源值?