SUMSEN

Oracle&Sql爱好者,用友NC管理员

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1 创建一个表空间TEST(TEST.dbf 10M)并设置其块大小为4k
create tablespace test datafile 'c:\test\test.dbf' size 10m blocksize 4k;

首先是报错


2 向TEST表空间增加一个10M的数据文件(TEST1.DBF),将TEST.DBF修改为15M

alter tablespace users add datafile 'C:\APP\DELL\ORADATA\NCBETA\USERS02.DBF' SIZE 50m;

增加表空间大小

1。增大现在表空间数据文件的大小.alter database datafile 'XXX' resize XXXXM; --不需要重启oracle
2。给这个表空间增加数据文件:alter  tablespace XXX add datifile 'XXX' size XXXM autoextend on next XXM maxsize XXXXM;

疑问:

更改数据文件大小和直接更改表空间大小关系?

ALTER DATABASE
DATAFILE '/u03/oradata/userdata02.dbf'
RESIZE 200M;

 

结论:一个表空间可以有多个数据文件,一个数据文件只能属于一个表空间,表空间在备份模式激活后v$backup对应的两个数据文件全部变为active

查看表、表空间、数据文件关系

select f.FILE_name, f.tablespace_name, T.table_name
  from dba_DATA_FILEs f, dba_all_tables t
 where f.tablespace_name = t.tablespace_name
   and t.table_name = 'EMP';

3 移动TEST1.DBF

方式一:Moving Data Files:ALTER TABLESPACE

• The tablespace must be offline.
• The target data files must exist.

将D:\TBS.DBF移动到D:\SENDB\步骤

SYS@sen>alter tablespace tbs offline;

表空间已更改。--手工复制D:\TBS.DBF到D:\SENDB\

SYS@sen>alter tablespace tbs rename datafile 'D:\TBS.DBF' to 'd:\sendb\TBS.DBF';

表空间已更改。

之后alter tablespace tbs online;

Moving Data Files:ALTER DATABASE

• The database must be mounted.
• The target data file must exist.

shutdown 之后startup mount (mount下不读数据文件)之后剪接到指定目录,比如这里复原

SYS@sen>alter database rename file 'D:\SENDB\TBS.DBF' to 'D:\TBS.DBF';

数据库已更改。

SYS@sen>alter database open;

数据库已更改。


4 在TEST表空间内创建一张表TABLE1(insert)
5 将TEST表空间改为READ ONLY
6 删除表TABLE1
7 将表空间改为READ WRITE
8 删除TEST表空间
检查数据文件是否被删除?
9 使用OMF创建表空间
检查数据文件是否被删除?
10 创建一个撤消表空间UNDOTBS2,并把它设置为系统当前的撤消表空间
11 创建一个临时表空间temp2,并把它设置为系统默认的临时表空间

SQL> create temporary tablespace temp2 tempfile 'e:\temp2.dbf' size 200m;
SQL> alter database default temporary tablespace temp2;

12 没有备份的恢复

(1)创建一个表空间TBS1(TBS1.DBF)

 
 
(2) 在TBS1表空间内创建一张表T1(INSERT INTO)

SYS@ncbeta>create table t2(id int) tablespace tbs;
表已创建。

SYS@ncbeta>insert into t2 values(2);

已创建 1 行。
(3) SHUTDOWN IMMEDIATE
(4)手工删除表空间TBS1的数据文件

已删除
(5)STARTUP

你想这么久了redolog里面关于老的数据文件的信息早被重写了
现在你说这么久了日志没了怎么恢复

(6)将数据文件TBS1.DBF脱机

alter database datafile 'D:\tbs1.dbf' offline; --启动的时候没有成功,自动mount状态



(7) ALTER DATABASE OPEN;
数据库已更改。


(8)ALTER DATABASE CREATE DATAFILE 'D:\tbs1.dbf';


(9)recover datafile 'D:\tbs1.dbf';

  完成介质恢复。
(10)将数据文件TBS1.DBF联机

SYS@ncbeta>alter database datafile 'D:\tbs1.dbf' online;


(11)检查数据是否恢复 --已经恢复

posted on 2012-12-21 00:04  sumsen  阅读(354)  评论(0编辑  收藏  举报