- 浏览: 550281 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (267)
- 随笔 (4)
- Spring (13)
- Java (61)
- HTTP (3)
- Windows (1)
- CI(Continuous Integration) (3)
- Dozer (1)
- Apache (11)
- DB (7)
- Architecture (41)
- Design Patterns (11)
- Test (5)
- Agile (1)
- ORM (3)
- PMP (2)
- ESB (2)
- Maven (5)
- IDE (1)
- Camel (1)
- Webservice (3)
- MySQL (6)
- CentOS (14)
- Linux (19)
- BI (3)
- RPC (2)
- Cluster (9)
- NoSQL (7)
- Oracle (25)
- Loadbalance (7)
- Web (5)
- tomcat (1)
- freemarker (1)
- 制造 (0)
最新评论
-
panamera:
如果设置了连接需要密码,Dynamic Broker-Clus ...
ActiveMQ 集群配置 -
panamera:
请问你的最后一种模式Broker-C节点是不是应该也要修改持久 ...
ActiveMQ 集群配置 -
maosheng:
longshao_feng 写道楼主使用 文件共享 模式的ma ...
ActiveMQ 集群配置 -
longshao_feng:
楼主使用 文件共享 模式的master-slave,produ ...
ActiveMQ 集群配置 -
tanglanwen:
感触很深,必定谨记!
少走弯路的十条忠告
一,只读表空间与数据的备份/恢复
表空间设置成只读之后,只需要执行一次备份操作即可,在后续备份时不再需要考虑这些表空间的备份。原因很容易理解,这些表空间中的数据已经不再改变,存储在表空间中的数据状态始终保持在表空间设置为Read-Only那一刻,Oracle也不需要对它们进行额外的恢复工作,比如应用归档。
我们创建两个表空间,一个是只读(Read-Only)的,一个是常规的(Read-Write),下面来比较这两个表空间数据文件的变化情况。
SQL> create tablespace readonly datafile '/u01/app/oracle/oradata/readonly01.dbf' size 10m;
Tablespace created.
SQL> create tablespace readwrite datafile '/u01/app/oracle/oradata/readwrite01.dbf' size 10m;
Tablespace created.
SQL> alter tablespace readonly read only;
Tablespace altered.
这样,我们就创建了两个表空间readonly和readwrite,并把表空间readonly的状态设置为只读。
SQL> select name,file#,checkpoint_change#,status,enabled from v$datafile where name like '%read%';
NAME FILE# CHECKPOINT_CHANGE# status enabled
--------------------------------------------- ---------- -------------
/u01/app/oracle/oradata/readonly01.dbf 6 4342263 ONLINE READ ONLY
/u01/app/oracle/oradata/readwrite01.dbf 7 4341997 ONLINE READ WRITE
我们先记录下当前状态下两个表空间数据文件的CHECKPOINT_CHANGE#号,这个号表示表空间数据文件在Oracle数据库运行时某个时间点的状态。CHECKPOINT_CHANGE#是Oracle里面的一个序号,用来标识一个先后顺序,通常用于保护数据块的完整性或者一致性的查询。当数据块做了修改,它的CHECKPOINT_CHANGE#值就会发生相应的改变。
SQL> alter system checkpoint;
System altered.
我们发出一个CHECKPOINT命令,这个命令实际上是将内存中的脏数据块写入到磁盘上的文件中,并更新文件头部信息,以保证数据块中数据的一致性。
SQL> select name,file#,checkpoint_change#,status,enabled from v$datafile where name like '%read%';
NAME FILE# CHECKPOINT_CHANGE# status enabled
--------------------------------------------- ---------- -------------
/u01/app/oracle/oradata/readonly01.dbf 6 4342263 ONLINE READ ONLY
/u01/app/oracle/oradata/readwrite01.dbf 7 4343696 ONLINE READ WRITE
我们看到,执行了CHECKPOINT命令之后,READWRITE表空间数据文件的checkpoint_change#号发生了变化,这说明这个表空间相比之前的状态,它的数据文件已经产生了变化。
尽管我们没有对这个表空间做任何操作,但不能保证Oracle不这样做(实际上,这里是表空间数据文件的文件头数据块产生了变化)。我们知道,只要数据文件的checkpoint_change#号发生了变化,Oracle就需要进行恢复;而这里,READONLY的checkpoint_change#号并没有变化,看起来就像静止在那里一样。
这就是说,如果此时Oracle数据库出现问题,比如DOWN掉了,在数据库重新OPEN时,READONLY表空间是不需要恢复的,因为它的状态依然保持在将它置于READ-ONLY那一刻,那一刻数据库是好的。
而READWRITE表空间就不同了,如果此时数据库DOWN掉了,它就需要进行恢复,因为这个表空间上的数据块状态是持续更新的,它需要通过联机日志(或者归档日志)将它恢复到最后Oracle数据库DOWN掉时的状态。
我们继续来看,现在将这两个表空间的状态改为离线。
SQL> alter tablespace readonly offline;
Tablespace altered.
SQL> alter tablespace readwrite offline;
Tablespace altered.
SQL> select name,file#,checkpoint_change#,status,enabled from v$datafile where name like '%read%';
NAME FILE# CHECKPOINT_CHANGE# status enabled
--------------------------------------------- ---------- -------------
/u01/app/oracle/oradata/readonly01.dbf 6 4342263 OFFLINE READ ONLY
/u01/app/oracle/oradata/readwrite01.dbf 7 4351566 OFFLINE READ WRITE
我们看到,READONLY表空间的checkpoint_change#号依然保持不变。
SQL> alter system checkpoint;
System altered.
SQL> select name,file#,checkpoint_change#,status,enabled from v$datafile where name like '%read%';
NAME FILE# CHECKPOINT_CHANGE# status enabled
--------------------------------------------- ---------- -------------
/u01/app/oracle/oradata/readonly01.dbf 6 4342263 OFFLINE READ ONLY
/u01/app/oracle/oradata/readwrite01.dbf 7 4351566 OFFLINE READ WRITE
当数据文件状态为离线时,不论之前它是只读还是读写表空间,它的状态都不再改变。
现在,我们把这两个表空间的状态重新改为在线。
SQL> alter tablespace readonly online;
Tablespace altered.
SQL> alter tablespace readwrite online;
Tablespace altered.
SQL> select name,file#,checkpoint_change#,status,enabled from v$datafile where name like '%read%';
NAME FILE# CHECKPOINT_CHANGE# status enabled
--------------------------------------------- ---------- -------------
/u01/app/oracle/oradata/readonly01.dbf 6 4342263 OFFLINE READ ONLY
/u01/app/oracle/oradata/readwrite01.dbf 7 4351660 OFFLINE READ WRITE
我们看到,READWRITE表空间的checkpoint_change#号再次改变了。实际上,在把READWRITE表空间的状态改为在线时,Oracle对它进行了恢复操作,使它的状态和数据库当前状态一致;而READONLY表空间依然静止不动地保持着它最初的状态,和数据库的变化毫无关系。
这样看来,在备份和恢复上,对只读表空间备份一次就够了;而对其他的读写表空间的备份,可能需要定期做全备份或者增量备份,同时还需要备份恢复时所需要的归档日志。这些备份集不但需要大量的磁盘空间,而且恢复时也可能会相当耗时。
二,只读表空间可以防止数据被意外删除和修改
----创建一个jack表空间----
SQL> create tablespace jack datafile '/u01/app/oracle/oradata/jack01.dbf' size 500m;
Tablespace created.
SQL> show user;
USER is "JACK"
----创建一张表jack----
SQL> create table jack tablespace jack as select * from dba_objects;
Table created.
----将表空间状态设置为只读----
SQL> alter tablespace jack read only;
Tablespace altered.
----做一些修改数据的操作,无法进行DELETE操作----
SQL> delete from jack;
delete from jack
*
ERROR at line 1:
ORA-00372: file 6 cannot be modified at this time
ORA-01110: data file 6: '/u01/app/oracle/oradata/jack01.dbf'
----无法进行UPDATE操作----
SQL> update jack set object_id=object_id*10;
update jack set object_id=object_id*10
*
ERROR at line 1:
ORA-00372: file 6 cannot be modified at this time
ORA-01110: data file 6: '/u01/app/oracle/oradata/jack01.dbf'
----无法进行INSERT操作,也就是说,对于只读表空间上的数据,无法进行DML操作。----
SQL> insert into jack select * from dba_objects;
insert into jack select * from dba_objects
*
ERROR at line 1:
ORA-00372: file 6 cannot be modified at this time
ORA-01110: data file 6: '/u01/app/oracle/oradata/jack01.dbf'
----也无法进行TRUNCATE操作,说明在只读表空间上,对数据(说的是对象里面的数据)的所有操作都是不允许的,看起来数据还是比较安全的----
SQL> truncate table jack;
truncate table jack
*
ERROR at line 1:
ORA-00372: file 6 cannot be modified at this time
ORA-01110: data file 6: '/u01/app/oracle/oradata/jack01.dbf'
----当表空间处于只读的时候,我们可以对表进行其他的修改,给表增加字段----
SQL> alter table jack add new_col varchar2(10);
Table altered.
SQL> alter table jack modify object_name varchar2(2000);
Table altered.
----在这里我们可以看到新的字段NEW_COL已经增加,OBJECT_NAME的属性已经修改成VARCHAR2(2000)----
SQL> desc jack;
Name Null? Type
--------------------- -------- ----------------------------
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(2000)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
NAMESPACE NUMBER
EDITION_NAME VARCHAR2(30)
NEW_COL VARCHAR2(10)
----无法删除字段----
SQL> alter table jack drop column new_col;
alter table jack drop column new_col
*
ERROR at line 1:
ORA-12985: tablespace 'JACK' is read only, cannot drop column
----可以删除索引和表----
SQL> alter tablespace jack read write;
Tablespace altered.
SQL> create index jack on jack(object_id);
Index created.
SQL> alter tablespace jack read only;
Tablespace altered.
SQL> drop index jack;
Index dropped.
SQL> create table persons(
PERSON_ID NUMBER(8) NOT NULL,
FIRST_NAME VARCHAR2(32) NOT NULL,
LAST_NAME VARCHAR2(32) NOT NULL
) tablespace jack;
Table created.
SQL> drop table persons;
Table dropped.
总结:
凡是要对表空间上的数据进行修改的操作都不允许。比如:
INSERT UPDATE DELETE TRUNCATE
实际上,只读表空间上的数据块连Oracle都不会修改(checkpoint_change#号从来都不会改变),这些修改数据的操作自然不被允许的。
那么,创建空表和给表增加字段或者修改字段的属性操作为什么就可以呢?因为此操作根本就不需要去触碰这个只读表空间,我们只要修改Oracle字典表中的信息就可以了(Oracle的对象属性是存储在数据字典中的,而字典表是存储在SYSTEM表空间上的),因此,这样的操作是被允许的。
同样的,删除一个字段,不仅仅要修改数据字典中表的相关信息,还涉及将该字段上的数据内容从表上抹掉,需要修改表空间上的数据块,因此,不被允许。
这样就清晰了:
凡是需要修改表空间数据块的操作,都不被允许。反之,则可以。
最后,删除这个表以及表上的索引是允许的,因为Oracle只需要从数据字典中将它的所有信息抹去就可以了。
表空间设置成只读之后,只需要执行一次备份操作即可,在后续备份时不再需要考虑这些表空间的备份。原因很容易理解,这些表空间中的数据已经不再改变,存储在表空间中的数据状态始终保持在表空间设置为Read-Only那一刻,Oracle也不需要对它们进行额外的恢复工作,比如应用归档。
我们创建两个表空间,一个是只读(Read-Only)的,一个是常规的(Read-Write),下面来比较这两个表空间数据文件的变化情况。
SQL> create tablespace readonly datafile '/u01/app/oracle/oradata/readonly01.dbf' size 10m;
Tablespace created.
SQL> create tablespace readwrite datafile '/u01/app/oracle/oradata/readwrite01.dbf' size 10m;
Tablespace created.
SQL> alter tablespace readonly read only;
Tablespace altered.
这样,我们就创建了两个表空间readonly和readwrite,并把表空间readonly的状态设置为只读。
SQL> select name,file#,checkpoint_change#,status,enabled from v$datafile where name like '%read%';
NAME FILE# CHECKPOINT_CHANGE# status enabled
--------------------------------------------- ---------- -------------
/u01/app/oracle/oradata/readonly01.dbf 6 4342263 ONLINE READ ONLY
/u01/app/oracle/oradata/readwrite01.dbf 7 4341997 ONLINE READ WRITE
我们先记录下当前状态下两个表空间数据文件的CHECKPOINT_CHANGE#号,这个号表示表空间数据文件在Oracle数据库运行时某个时间点的状态。CHECKPOINT_CHANGE#是Oracle里面的一个序号,用来标识一个先后顺序,通常用于保护数据块的完整性或者一致性的查询。当数据块做了修改,它的CHECKPOINT_CHANGE#值就会发生相应的改变。
SQL> alter system checkpoint;
System altered.
我们发出一个CHECKPOINT命令,这个命令实际上是将内存中的脏数据块写入到磁盘上的文件中,并更新文件头部信息,以保证数据块中数据的一致性。
SQL> select name,file#,checkpoint_change#,status,enabled from v$datafile where name like '%read%';
NAME FILE# CHECKPOINT_CHANGE# status enabled
--------------------------------------------- ---------- -------------
/u01/app/oracle/oradata/readonly01.dbf 6 4342263 ONLINE READ ONLY
/u01/app/oracle/oradata/readwrite01.dbf 7 4343696 ONLINE READ WRITE
我们看到,执行了CHECKPOINT命令之后,READWRITE表空间数据文件的checkpoint_change#号发生了变化,这说明这个表空间相比之前的状态,它的数据文件已经产生了变化。
尽管我们没有对这个表空间做任何操作,但不能保证Oracle不这样做(实际上,这里是表空间数据文件的文件头数据块产生了变化)。我们知道,只要数据文件的checkpoint_change#号发生了变化,Oracle就需要进行恢复;而这里,READONLY的checkpoint_change#号并没有变化,看起来就像静止在那里一样。
这就是说,如果此时Oracle数据库出现问题,比如DOWN掉了,在数据库重新OPEN时,READONLY表空间是不需要恢复的,因为它的状态依然保持在将它置于READ-ONLY那一刻,那一刻数据库是好的。
而READWRITE表空间就不同了,如果此时数据库DOWN掉了,它就需要进行恢复,因为这个表空间上的数据块状态是持续更新的,它需要通过联机日志(或者归档日志)将它恢复到最后Oracle数据库DOWN掉时的状态。
我们继续来看,现在将这两个表空间的状态改为离线。
SQL> alter tablespace readonly offline;
Tablespace altered.
SQL> alter tablespace readwrite offline;
Tablespace altered.
SQL> select name,file#,checkpoint_change#,status,enabled from v$datafile where name like '%read%';
NAME FILE# CHECKPOINT_CHANGE# status enabled
--------------------------------------------- ---------- -------------
/u01/app/oracle/oradata/readonly01.dbf 6 4342263 OFFLINE READ ONLY
/u01/app/oracle/oradata/readwrite01.dbf 7 4351566 OFFLINE READ WRITE
我们看到,READONLY表空间的checkpoint_change#号依然保持不变。
SQL> alter system checkpoint;
System altered.
SQL> select name,file#,checkpoint_change#,status,enabled from v$datafile where name like '%read%';
NAME FILE# CHECKPOINT_CHANGE# status enabled
--------------------------------------------- ---------- -------------
/u01/app/oracle/oradata/readonly01.dbf 6 4342263 OFFLINE READ ONLY
/u01/app/oracle/oradata/readwrite01.dbf 7 4351566 OFFLINE READ WRITE
当数据文件状态为离线时,不论之前它是只读还是读写表空间,它的状态都不再改变。
现在,我们把这两个表空间的状态重新改为在线。
SQL> alter tablespace readonly online;
Tablespace altered.
SQL> alter tablespace readwrite online;
Tablespace altered.
SQL> select name,file#,checkpoint_change#,status,enabled from v$datafile where name like '%read%';
NAME FILE# CHECKPOINT_CHANGE# status enabled
--------------------------------------------- ---------- -------------
/u01/app/oracle/oradata/readonly01.dbf 6 4342263 OFFLINE READ ONLY
/u01/app/oracle/oradata/readwrite01.dbf 7 4351660 OFFLINE READ WRITE
我们看到,READWRITE表空间的checkpoint_change#号再次改变了。实际上,在把READWRITE表空间的状态改为在线时,Oracle对它进行了恢复操作,使它的状态和数据库当前状态一致;而READONLY表空间依然静止不动地保持着它最初的状态,和数据库的变化毫无关系。
这样看来,在备份和恢复上,对只读表空间备份一次就够了;而对其他的读写表空间的备份,可能需要定期做全备份或者增量备份,同时还需要备份恢复时所需要的归档日志。这些备份集不但需要大量的磁盘空间,而且恢复时也可能会相当耗时。
二,只读表空间可以防止数据被意外删除和修改
----创建一个jack表空间----
SQL> create tablespace jack datafile '/u01/app/oracle/oradata/jack01.dbf' size 500m;
Tablespace created.
SQL> show user;
USER is "JACK"
----创建一张表jack----
SQL> create table jack tablespace jack as select * from dba_objects;
Table created.
----将表空间状态设置为只读----
SQL> alter tablespace jack read only;
Tablespace altered.
----做一些修改数据的操作,无法进行DELETE操作----
SQL> delete from jack;
delete from jack
*
ERROR at line 1:
ORA-00372: file 6 cannot be modified at this time
ORA-01110: data file 6: '/u01/app/oracle/oradata/jack01.dbf'
----无法进行UPDATE操作----
SQL> update jack set object_id=object_id*10;
update jack set object_id=object_id*10
*
ERROR at line 1:
ORA-00372: file 6 cannot be modified at this time
ORA-01110: data file 6: '/u01/app/oracle/oradata/jack01.dbf'
----无法进行INSERT操作,也就是说,对于只读表空间上的数据,无法进行DML操作。----
SQL> insert into jack select * from dba_objects;
insert into jack select * from dba_objects
*
ERROR at line 1:
ORA-00372: file 6 cannot be modified at this time
ORA-01110: data file 6: '/u01/app/oracle/oradata/jack01.dbf'
----也无法进行TRUNCATE操作,说明在只读表空间上,对数据(说的是对象里面的数据)的所有操作都是不允许的,看起来数据还是比较安全的----
SQL> truncate table jack;
truncate table jack
*
ERROR at line 1:
ORA-00372: file 6 cannot be modified at this time
ORA-01110: data file 6: '/u01/app/oracle/oradata/jack01.dbf'
----当表空间处于只读的时候,我们可以对表进行其他的修改,给表增加字段----
SQL> alter table jack add new_col varchar2(10);
Table altered.
SQL> alter table jack modify object_name varchar2(2000);
Table altered.
----在这里我们可以看到新的字段NEW_COL已经增加,OBJECT_NAME的属性已经修改成VARCHAR2(2000)----
SQL> desc jack;
Name Null? Type
--------------------- -------- ----------------------------
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(2000)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
NAMESPACE NUMBER
EDITION_NAME VARCHAR2(30)
NEW_COL VARCHAR2(10)
----无法删除字段----
SQL> alter table jack drop column new_col;
alter table jack drop column new_col
*
ERROR at line 1:
ORA-12985: tablespace 'JACK' is read only, cannot drop column
----可以删除索引和表----
SQL> alter tablespace jack read write;
Tablespace altered.
SQL> create index jack on jack(object_id);
Index created.
SQL> alter tablespace jack read only;
Tablespace altered.
SQL> drop index jack;
Index dropped.
SQL> create table persons(
PERSON_ID NUMBER(8) NOT NULL,
FIRST_NAME VARCHAR2(32) NOT NULL,
LAST_NAME VARCHAR2(32) NOT NULL
) tablespace jack;
Table created.
SQL> drop table persons;
Table dropped.
总结:
凡是要对表空间上的数据进行修改的操作都不允许。比如:
INSERT UPDATE DELETE TRUNCATE
实际上,只读表空间上的数据块连Oracle都不会修改(checkpoint_change#号从来都不会改变),这些修改数据的操作自然不被允许的。
那么,创建空表和给表增加字段或者修改字段的属性操作为什么就可以呢?因为此操作根本就不需要去触碰这个只读表空间,我们只要修改Oracle字典表中的信息就可以了(Oracle的对象属性是存储在数据字典中的,而字典表是存储在SYSTEM表空间上的),因此,这样的操作是被允许的。
同样的,删除一个字段,不仅仅要修改数据字典中表的相关信息,还涉及将该字段上的数据内容从表上抹掉,需要修改表空间上的数据块,因此,不被允许。
这样就清晰了:
凡是需要修改表空间数据块的操作,都不被允许。反之,则可以。
最后,删除这个表以及表上的索引是允许的,因为Oracle只需要从数据字典中将它的所有信息抹去就可以了。
发表评论
-
Oracle的三种高可用集群方案
2015-05-18 15:14 9481. RAC(Real Application Cluster ... -
Oracle 执行计划介绍
2013-08-09 15:22 929优化定义: 是选择最有效的执行计划来执行SQL语句的过 ... -
Oracle 优化器介绍
2013-08-08 17:51 7292种类型的优化器:基于规则的优化器与基于代价的优化器。 基于 ... -
Oracle SQL 语句的处理过程详解
2013-08-08 17:24 1029SQL语句: 1 数据查询语言DQL:select查询语句 ... -
Oracle SQL性能优化深入浅出 3
2013-08-08 16:29 826用EXPLAIN PLAN 分析SQL语句 ... -
Oracle 索引介绍
2013-08-07 15:26 935Oracle 创建索引要做到三 ... -
Oracle普通视图和实体化视图比较
2013-07-29 15:54 8796相对于普通的视图来说,实体化视图的不同之处在于实体化视图管理存 ... -
Oracle 实体化视图
2013-07-29 14:28 1706简介: MView中文名称为 ... -
Oracle 存储过程读文件
2013-05-02 19:01 1389create or replace PROCEDURE PR_ ... -
Oracle Alter 语句
2013-03-28 14:40 1030oracle怎样修改表名、列名、字段类型、添加表列、删除表列: ... -
Oracle SQL性能优化总结
2013-03-22 11:21 1010Oracle数据库技术的两大基石是:索引和表连接 1.能不写 ... -
Oracle SQL 分析工具
2013-02-22 15:09 1026用EXPLAIN PLAN 分析SQL语句: EXPLAIN ... -
Oracle SQL性能优化深入浅出 0
2013-02-22 14:38 772随着软件技术的不断发展,系统性能越来越重要。 系统性能主要用 ... -
Oracle 数据库介绍
2013-02-20 17:43 1796概要: 1、 ORACLE ... -
Oracle Tkprof(Trace Kernel Profile)工具
2013-02-20 13:37 1353TKPROF介绍 Tkprof:分析ORACLE跟踪文件并且 ... -
Oracle分区技术介绍
2013-03-25 14:09 997Oracle的分区技术基本原理 分而治之: Oracle分区表 ... -
Oracle SQL性能优化深入浅出 2
2013-01-25 10:47 936SQL 语句的编写原则: 1. ... -
Oracle SQL性能优化深入浅出 1
2013-01-25 09:53 1199ORACLE将执行过的SQL语句存放在内存的共享池(share ... -
Oracle 触发器详解 5
2012-12-21 09:20 9978.6 数据库触发器的应用实例 用户可以使用数据库触发器实 ... -
Oracle 触发器详解 4
2012-12-21 09:17 9508.5 数据库触发器的应用举例 例1:创建一个DML语句 ...
相关推荐
本文详细介绍和阐述了 Oracle 用户(user)和表空间(tablespace)的概念和使用方法等内容,并对用户和表空间使用过程中的注意事项、关键知识点等进行了重点标注和详尽解析,以便于读者进行深入学习和理解。...
/*第1步:创建临时表空间 */ create temporary tablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; ...
Oracle_create_tablespace语法详解.docx
详细介绍如何正常删除Oracle 数据库表空间数据文件,OFFLINE和OFFLINE DROP的区别,OS级别删除了数据文件后的恢复,删除数据库表空间数据文件演示示例
- 删除临时表空间及文件 DROP TABLESPACE ELWY_TEMP INCLUDING CONTENTS AND DATAFILES; -- 创建临时表空间 CREATE TEMPORARY TABLESPACE ELWY_TEMP TEMPFILE 'E:\DataBase\Oracle\ELWY_TEMP.DBF' SIZE 100m ...
9 default tablespace 表空间名 --默认表空间名 10 temporary tablespace temp --临时表空间为temp 11 profile default --受profile文件的限制 12 quota unlimited on 表空间名; --在表空间下面建表不受限制 4....
Oracle_tablespace_(表空间)的创建、删除、修改、扩展及检查等
ALTER TABLESPACE 8-25 为表空间的创建设置 ORACLE 管理文件(OMF) 8-27 使用 OMF 创建表空间 8-28 获得表空间的信息 8-29 小结 8-29 9 储存结构与关系 目标 9-2 概述 9-3 段的类型 9-4 储存子句的优先次序 9-7 片的...
描述了oracle数据库表空间巡检的步骤: 1:查看表空间 SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.tablespace_...
select b.tablespace_name 表空间, c.owner 用户, c.segment_name 表名, b.file_name 物理文件名, sum(nvl(b.bytes, 0)) / 1024 / 1024 总共大小M, round((sum(nvl(b.bytes, 0)) - sum(nvl(a.bytes, 0))) ...
Mysql innodb tablespace 表空间实践
oracle扩展表空间sql语句 oracle表空间查询、硬性扩展和自动扩展
oracle数据库导入、导出数据、创建表空间、创建用户、用户授权等操作
default tablespace 表空间名 --默认表空间名 temporary tablespace temp --临时表空间为temp profile default --受profile文件的限制 quota unlimited on 表空间名; --在表空间下面建表不受限制 4.创建角色...
oracle 创建表空间脚本 create tablespace
oracleDBA表空间管理 表空间管理 表空间管理
drop user oldoa cascade create tablespace tbsoa ...如果想在删除表空间的同时也删除掉对应的数据文件,那就在上面的语句最后加上 and datafiles 成为 drop tablespace mytbs01 including contents and datafiles;
DBA在日常工作中,最重要的一点就是查看表空间的使用情况,去了解是否有表空间满了的情况出现。 具体方法和步骤如下所示: 第一步:打开PLSQL 第二步:新建一个SQL窗口 第三步:输入代码: select a.tablespace_...
利用DBMS_SPACE包对Oracle 表碎片进行监控与清理,
oracle数据库建表空间、分配权限 create temporary tablespace cppa_w_temp tempfile 'd:\oracle\datafile\cppa_w_temp.dbf' size 200m autoextend on next 100m maxsize 500m extent management local;