SUMSEN

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

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

热备份:在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

 

问老师

 

此后,关闭数据库,从之前移动的users01 dbf复原,然后startuup 没有报错

1.9号 更新

在undo management为auto下

在scott下的users tablespace创建表

打算移走的时候不让offline

end backup归档模式之后可以了

新建表插入之后,alter system checkpoint,copy走dbf数据文件,再insert 一条数据

关闭数据库,删除USERS01.DBF,启动数据库,报错

这个时候关闭数据库,将备份的dbf复制到数据库,startup

提示需要数据文件4(即是刚才删掉的数据文件,DATA FILE 4只是 个代号,也有可能是DATA FILE 1,DATA FILE 2)

恢复只需使用recover datafile 4

查询时候报错,说数据库没有打开

使用alter database open

 

查询 有了五条信息,完全恢复

 

 

posted on 2013-01-08 22:39  sumsen  阅读(596)  评论(0编辑  收藏  举报