当前位置:数据库 > Oracle >>

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

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 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个数据块就打上一个点;
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,