Oracle―用户管理的备份(二)(一)

2014-11-24 16:22:23 · 作者: · 浏览: 0
Oracle—用户管理的备份(二)
一.如果在表空间在备份模式下,主机发生了异常关闭,会出现什么情况?
打开第一个会话窗口,以sys用户登录,把表空间users置于备份模式。
SQL> alter tablespace users begin backup;
Tablespace altered.
打开第二个会话窗口,以sys用户登录,用shutdown abort命令模拟断电。
SQL> shutdown abort;
ORACLE instance shut down.
在第一个会话窗口,重新启动。
SQL> startup
ORACLE instance started.
Total System Global Area 146472960 bytes
Fixed Size 1335080 bytes
Variable Size 92274904 bytes
Database Buffers 50331648 bytes
Redo Buffers 2531328 bytes
Database mounted.
ORA-10873: file 4 needs to be either taken out of backup mode or media
recovered
ORA-01110: data file 4: '/u01/oradata/wilson/users01.dbf'
可以看到 数据库打不开,只能处于mount状态;
解决办法:
SQL> select * from v$backup;(v$backup可以看到哪些文件置于备份状态)
FILE# STATUS CHANGE# TIME
---------- ------------------ --------- ---------
1 UNKNOWN ERROR 2794785 23-AUG-13
2 UNKNOWN ERROR 2794785 23-AUG-13
3 UNKNOWN ERROR 2794785 23-AUG-13
4 ACTIVE 2805598 23-AUG-13
5 NOT ACTIVE 2794785 23-AUG-13
6 NOT ACTIVE 2794785 23-AUG-13
7 NOT ACTIVE 2794785 23-AUG-13
8 NOT ACTIVE 2794785 23-AUG-13
9 NOT ACTIVE 2794785 23-AUG-13
10 NOT ACTIVE 2794785 23-AUG-13
11 NOT ACTIVE 2794785 23-AUG-13
11 rows selected.
可以看到文件4是active的,它处于备份状态,为了正常启动,必须关闭备份状态;
SQL> alter database end backup;
Database altered.
这样就可以把所有表空间的备份状态关闭。
也可以用alter database datafile 4 end backup;
再查看视图,可以看到所有的文件已经在非备份状态了;
SQL> select * from v$backup;
FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- ---------
1 NOT ACTIVE 2794785 23-AUG-13
2 NOT ACTIVE 2794785 23-AUG-13
3 NOT ACTIVE 2794785 23-AUG-13
4 NOT ACTIVE 2805598 23-AUG-13
5 NOT ACTIVE 2794785 23-AUG-13
6 NOT ACTIVE 2794785 23-AUG-13
7 NOT ACTIVE 2794785 23-AUG-13
8 NOT ACTIVE 2794785 23-AUG-13
9 NOT ACTIVE 2794785 23-AUG-13
10 NOT ACTIVE 2794785 23-AUG-13
11 NOT ACTIVE 2794785 23-AUG-13
11 rows selected.
打开数据库
SQL> alter database open;
Database altered.
二.只读表空间备份
把example表空间改为只读表空间,
SQL> alter tablespace example read only;
Tablespace altered.
然后用!cp命令把它复制到别的地方即可,但是有个问题就是在把example改为只读表空间时,控制文件发生了改变,所以要备份控制文件!
1.只读表空间只要备份一次就可以了,因为它不能被修改。
2.当把只读表空间改为可读可写表空间时,是否一定要备份?不用备份,保存好归档日志文件即可,不过最好备份。
3.当控制文件发生改变时必须备份。
三.当大量的数据导入或者导出时,把数据库置于nologging下,这样就尽可能的不产生redo log信息,提高性能,等到操作完成后备份一下即可。
四.DBverify
1. 它可以用来检查数据文件的块是否损坏,无论是数据文件是在online状态还是off状态或者是备份的数据文件都可以检查,不能检查联机重做日志文件和控制文件的块。
在操作系统下,输入dbv可以看到有关参数,
[oracle@oracle11g ~]$ dbv
DBVERIFY: Release 11.2.0.1.0 - Production on Fri Aug 23 12:32:17 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Keyword Description (Default)
------------ ------------------ ----------------------
FILE File to Verify (NONE)
START Start Block (First Block of File)
END End Blo