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
现在你说这么久了日志没了怎么恢复
(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)检查数据是否恢复 --已经恢复