热备份:在oracle正常运转没有shutdown情况下的备份, 两个前提条件 a,archivelog 归档模式打开 b,需要备份的表空间置于备份模式
1,SYS@ncbeta>archive log;
如果不是归档模式,就需要
归档模式-mount下操作
SQL> alter database archivelog;
补充: logfile 日志文件
select GROUP#, STATUS, TYPE, MEMBER from v$logfile; v$archived_log 归档日志
2,为了让表空间置于备份模式,需要查询修改表在那个表空间
>select owner,table_name,tablespace_name from dba_all_tables where taBLe_name='EMP';
或者在scott下
SCOTT@ncbeta>select TABLESPACE_NAME from tabs where TABLE_NAME = 'EMP'; 补充 select tname from tab;--查看用户下的表
3,select * from v$backup;
11个not active的表空间(?)
查看表空间
select STATUS , TABLESPACE_NAME from dba_tablespaces;
12行,并不是和v$backup一一对应
ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE SCOPE=SPFILE;//重启数据库 ?干嘛的
4,将tablespace至于备份状态
SYS@jsce>alter tablespace users begin backup;
此时,file4的v$backup 改变
问:file#4和users 表空间是什么对应关系?
答:file#是数据文件号
SYS@ncbeta>select file#, name from v$datafile;
扩展:使用alter database begin backup;可以一次性将所有tablespace至于备份模式
5,拷贝(备份)上面的数据文件
select * from dba_data_files 可以看到表空间在那个数据文件
6,关闭表空间的归档模式
SYS@jsce>alter tablespace users end backup;
8,让数据库写入归档
>alter system checkpoint; (ALTER SYSTEM SWITCH LOGFILE;//切换日志,使当前日志归档)?另文为什么不是alter
database
9,更新数据
SCOTT@jsce>insert into emp values(1100,'sumsen','account',7902,to_date('2006-06-04','yyyy-mm-dd'),8800,null,20);
是不是我的undo_managerment为manual导致
问:热备份和回滚段、撤销表空间的关系?必须auto?
测试在manual 下将rollback online就可以insert
10,将users表空间脱机之后删除
问:这个时候是不是还要alter system checkpoint;?
为什么这个时候不让我删除USERS01.DBF,还有其他的表(表空间)在这个数据文件?
在shutdown之后的startup mount下删除(mount不访问数据文件)
alter database open ⊙﹏⊙b汗,直接打开了,没有报找不到dbf