Oracle—用户管理的备份(二)

在用户管理的备份(一)中(详见:Oracle—用户管理的备份)对用户管理备份几种情况进行了说明;接下来说明几种特别情况和DBverify的使用。

一.如果在表空间在备份模式下,主机发生了异常关闭,会出现什么情况?

打开第一个会话窗口,以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.

二.只读表空间备份Oracle—用户管理的备份(二)

把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 Block                      (Last Block of File)

BLOCKSIZE   Logical Block Size             (8192)

LOGFILE     Output Log                     (NONE)

FEEDBACK    Display Progress               (0)

PARFILE     Parameter File                 (NONE)

USERID      Username/Password              (NONE)

SEGMENT_ID  Segment ID (tsn.relfile.block) (NONE)

HIGH_SCN    Highest Block SCN To Verify    (NONE)

(scn_wrap.scn_base OR scn)

检查数据文件system01.dbf,feedback=100表示检查每100个数据块就打上一个点;默认情况下,检查从一个块开始到最后一个结束;使用logfile可以把检查的结果信息放到一个文件中。 如下:

如[oracle@oracle11g wilson]$ dbv file=system01.dbf  feedback=100

DBVERIFY: Release 11.2.0.1.0 - Production on Fri Aug 23 12:37:43 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

DBVERIFY - Verification starting : FILE = /u01/oradata/wilson/system01.dbf

................................................................................

................................................................................

.

DBVERIFY - Verification complete

Total Pages Examined         : 97280

Total Pages Processed (Data) : 66872

Total Pages Failing   (Data) : 0

Total Pages Processed (Index): 12537

Total Pages Failing   (Index): 0

Total Pages Processed (Other): 3343

Total Pages Processed (Seg)  : 1

Total Pages Failing   (Seg)  : 0

Total Pages Empty            : 14528

Total Pages Marked Corrupt   : 0

Total Pages Influx           : 0

Total Pages Encrypted        : 0

Highest block SCN            : 2828302 (0.2828302)

2.它也可以来用来检查数据文件的一个表或者索引。

在p1用户下有一张表fruit,

SQL> select *  from p1.fruit;

NAME

--------------------------------

two apple

在表sys_dba_segs中找到 Segment ID (tsn.relfile.block) 的数值;

SQL> select segment_name,tablespace_id,header_file,header_block from sys_dba_segs  where  owner='P1';

SEGMENT_NAME    TABLESPACE_ID    HEADER_FILE      HEADER_BLOCK

---------------           --------------- -         -----------                 ------------

FRUIT                  4                   4                        810

然后在操作系统下,使用查到的数值,就可以查到某一个表了。

[oracle@oracle11g ~]$ dbv userid=p1/p1_12345 segment_id=4.4.810

DBVERIFY: Release 11.2.0.1.0 - Production on Fri Aug 23 13:25:50 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

DBVERIFY - Verification starting : SEGMENT_ID = 4.4.810

DBVERIFY - Verification complete

Total Pages Examined         : 8

Total Pages Processed (Data) : 5

Total Pages Failing   (Data) : 0

Total Pages Processed (Index): 0

Total Pages Failing   (Index): 0

Total Pages Processed (Other): 2

Total Pages Processed (Seg)  : 1

Total Pages Failing   (Seg)  : 0

Total Pages Empty            : 0

Total Pages Marked Corrupt   : 0

Total Pages Influx           : 0

Total Pages Encrypted        : 0

Highest block SCN            : 2798211 (0.2798211)

上一篇:UI篇--布局问题


下一篇:Mybaits入门使用