oracle user-managed backups
今天介绍用户管理备份,先明白几个概念:
整库备份:
1.一致性备份(冷备),也就是在数据库干净关闭的以后做备份,因为干净关闭数据文件头和控制文件SCN是一致的
这里由于redo都已经被应用了,所以只要备份数据文件和控制文件即可,当然也可以备份日志文件和口令文件。
2.不一致性备份(热备),也就是数据库是打开的,可以读写,数据文件和控制文件SCN不一致,当然shutdown abort关闭也是不一致的
不一致性备份可以通过恢复让数据库一致,我们的数据库服务应该都是7*24,则只能用不一致性备份,而且只能对归档模式的库进行不一致性备份
局部备份:
表空间备份:对表空间所组成的数据文件进行备份,注意只有开启了归档模式的表空间备份才有效,在非归档模式下,我们只能对只读或者OFFLINE表空间进行备份
注意:系统表空间和有活动的UNDO表空间不可以OFFLINE
数据文件的备份:在归档模式下,我们可以对单个的数据文件进行备份,在非归档模式下,可以对只读和OFFLINE的数据文件进行备份,注意数据文件OFFLINE不做检查点
控制文件备份:控制文件都知道是很重要的,管理这数据库的一致性,可以通过RMAN进行备份,也可以通过命令进行备份alter database backup controlfile to 'xxxxxx';
还可以to trace,这样备份出来的是创建控制文件的脚本命令 ,as可以指定路径,默认在USER_DUMP_DEST指定的目录下。
介绍完相关的几个概念,接下来看几个视图:
v$datafile
v$controlfile
v$logfile
v$tablespace
这几个视图应该都比较清楚,不清楚的自己熟悉一下,用户管理备份恢复这几个是常查的
一致性备份(冷备)步骤:
1.查出需要备份的文件
2.干净关闭数据库
3.用系统命令拷贝所有的文件做备份
4.打开数据库
不一致性备份(热备)步骤:
1.进入数据发出 alter tablespace xxxx begin backup;
2.用系统命令拷贝需要备份的文件
3.进入数据库发出alter tablespace xxx end backup;
4.归档重做日志,恢复的时候会用 alter system archive log current;
并行热备:将所有的表空间设置为begin backup,备份后,再把所有的表空间end backup
串行热备:只对一个表空间进行热备,完了再下一个
冷备和热备比较简单,个人认为没有试验必要,想试验的同学参考以上的步骤
如果大家只是做试验,当然库越小越快,可以删除之前比较大的表空间:
SQL> drop tablespace TBS_YYPT including contents and datafiles;
drop tablespace TBS_YYPT including contents and datafiles
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-02429: cannot drop index used for enforcement of unique/primary key
SQL> select 'alter table '||owner||'.'||table_name||' drop constraint '||constraint_name||' ;'
2 from dba_constraints
3 where constraint_type in ('U', 'P')
4 and (index_owner, index_name) in
5 (select owner, segment_name
6 from dba_segments
7 where tablespace_name = upper('tbs_yypt'));
'ALTERTABLE'||OWNER||'.'||TA
--------------------------------------------------------------------------------------------------------------------------------------------
alter table SF.A_ORDER_ITEM drop constraint A_ORDER_ITEM_PRI ;
SQL> alter table SF.A_ORDER_ITEM drop constraint A_ORDER_ITEM_PRI ;
Table altered.
SQL> drop tablespace TBS_YYPT including contents and datafiles;
Tablespace dropped.
最后再介绍一下DBV命令,这个是oracle自带的验证数据文件完整性的工具,注意是数据文件,不是日志文件和控制文件
dbv file=/database/oradata/skyread/sf01.dbf logfile=/home/oracle/sf01.log
DBVERIFY - Verification starting : FILE = /database/oradata/skyread/sf01.dbf
DBVERIFY - Verification complete
Total Pages Examined : 131072
Total Pages Processed (Data) : 30634
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 36107
Total Pages Failing (Index): 0
Total Pages Processed (Other): 1909
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 62422
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Highest block SCN : 2430315751 (28.2430315751)
可以看下帮助:
dbv help=y
DBVERIFY: Release 10.2.0.4.0 - Production on Thu Apr 25 13:59:48 2013
Copyright (c) 1982, 2007, Oracle. 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)