oracle 手动备份请教

[复制链接]
查看11 | 回复5 | 2007-9-26 18:42:10 | 显示全部楼层 |阅读模式
步骤:
1:我执行联机备份
2:我创建了用户和表
3:我插入一条语句,并且查询SCN(我又插入一条数据,并且查询SCN)
4:我关闭数据库,用备份的数据文件覆盖数据库目前的数据文件
5:数据库启动到mount状态
6:recover database until change 293016;
7:无法恢复我又执行如下的步骤
我想知道用这种方式可以成功恢复表中插入的第一条数据吗?
小弟初学oracle,望各位指教
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\SYSTEM01.DBF
F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\UNDOTBS01.DBF
F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\SYSAUX01.DBF
F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\USERS01.DBF
SQL> create user test identified by test;
用户已创建。
SQL> grant dba to test;
授权成功。
SQL> conn test/test;
已连接。
SQL> conn /as sysdba
已连接。
SQL> alter database begin backup;
数据库已更改。
SQL> host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\SYSTEM01.DBF f:\backup\
已复制 1 个文件。
SQL> host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\UNDOTBS01.DBF f:\backup
已复制 1 个文件。
SQL> host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\SYSAUX01.DBF f:\backup
已复制 1 个文件。
SQL> host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\USERS01.DBF f:\backup
已复制 1 个文件。
SQL> conn test/test
已连接。
SQL> create table test
2(id int);
表已创建。
SQL> insert into test values(1);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select current_SCN from v$database;
CURRENT_SCN
-----------
293016
SQL> insert into test values(2);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select current_SCN from v$database;
CURRENT_SCN
-----------
293024
SQL> shutdown immediate
ORA-01031: 权限不足
SQL> conn /as sysdba
已连接。
SQL> shutdown immediate
ORA-01149: 无法关闭 - 文件 1 设置了联机备份
ORA-01110: 数据文件 1: 'F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\SYSTEM01.DBF'
SQL> alter database end backup;
数据库已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area171966464 bytes
Fixed Size
787988 bytes
Variable Size
145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers
524288 bytes
数据库装载完毕。
SQL> recover database until change293016;
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01195: 文件 1 的联机备份需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\SYSTEM01.DBF'

SQL> recover datafile 1 ;
完成介质恢复。
SQL> recover database;
完成介质恢复。
SQL> alter database resetlogs;
alter database resetlogs

*
第 1 行出现错误:
ORA-02231: ALTER DATABASE 选项缺失或无效

SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效

SQL> recover database until change293016;
完成介质恢复。
SQL> alter database open resetlogs;
数据库已更改。
SQL> conn test/test
已连接。
SQL> select * from person;
select * from person

*
第 1 行出现错误:
ORA-00942: 表或视图不存在

SQL>
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
你前面建立的表 是test
后面为什么
select * from person;
?
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
呵呵,好仔细啊
我测试的时候都用这个表,习惯了
我刚刚有查询了一下,全都恢复,应该是我执行了recover database这个结果
我想向您请教如果我备份的数据文件是不一致,可以进行不完整恢复吗?我原来用一致的数据文件恢复成功过?
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
不一致是指哪个不一致?哪些文件。
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
数据文件的头信息啊,我进行的是联机备份
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
我自己顶一下,我刚才找了半天的帖子才看到,怎么itpub同步更新的速度这么慢啊
居然这里有聚集这么多高手
很迷惑
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行