联机备份步骤:--需要归档模式
1.使用数据字典dba_data_files找到需要备份的数据文件及与之对应的表空间。
2.使用数据字典v$backup确认数据文件的备份状态——如系统有多个DBA时。
3.用alter tablespace 表空间名 begin backup,将要备份的表空间设置为备份状态,此时表空间对应的所有数据文件的文件头被锁住并产生检查点。
此时可以查询,进行DML操作,但数据无法写到数据文件中,这些数据被写到重做日志文件中。
4.用操作系统复制保住将表空间对应的所有数据文件复制到备份磁盘。
5.用alter tablespace 表空间名 end backup;结束已经成功备份的表空间
6.将当前重做日志文件信息写到归档日志文件中
7,使用数据字典v$backup确认数据文件的备份状态,在操作系统中查看备份文件是否生成。
注意事项:
重做日志缓冲区和重做日志文件需要进行适当设置。
进行联机备份时,每次只备份一个表空间。
在DML操作最少时间段进行联机备份。
C:\Documents and Settings\Administrator\桌面>C:\app\Administrator\product\11.2.0
\dbhome_1\BIN\sqlplus.exe /nolog
SQL*Plus: Release 11.2.0.1.0Production on 星期日 1月 27 19:16:15 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn system/oraclesystem
已连接。
SQL> show user
USER 为 "SYSTEM"
SQL> set pagesize 100
SQL> col file_name for a40
SQL> col tablespace_name for a20
SQL> selectfile_id,file_name,tablespace_name from dba_data_files;
FILE_ID FILE_NAME TABLESPACE_NAME
---------- ------------------------------------------------------------
4 E:\SYSORADATA\USERS01.DBF USERS
3 E:\SYSORADATA\UNDOTBS01.DBF UNDOTBS1
2 E:\SYSORADATA\SYSAUX01.DBF SYSAUX
1 E:\SYSORADATA\SYSTEM01.DBF SYSTEM
SQL> select * from v$backup;
FILE# STATUS CHANGE# TIME
---------- ------------------ ------------------------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
4 NOT ACTIVE 0
#####################################################################################
SQL> altertablespace users begin backup;
表空间已更改。
SQL> host copy E:\SYSORADATA\USERS01.DBFF:\back
已复制 1 个文件。
SQL> select * from v$backup;FILE# STATUS CHANGE# TIME
---------- ------------------ ------------------------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
4 ACTIVE 144779227-1月 -13
SQL> altertablespace users end backup;
表空间已更改。
SQL> select * from v$backup;
FILE# STATUS CHANGE# TIME
---------- ------------------ ------------------------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
4 NOT ACTIVE 144779227-1月 -13
########################################################################################
SQL> host dir f:\back\
驱动器 F 中的卷是新加卷
卷的序列号是 E41A-7002
f:\back 的目录
2013-01-27 20:30 <DIR> .
2013-01-27 20:30 <DIR> ..
2013-01-27 16:38 5,251,072users01.dbf
1 个文件 5,251,072 字节
2 个目录 3,316,699,136 可用字节
查询结果删除了一部分:
SQL> select sequence#,first_change#,to_char(first_time,'yyyy-mm-dd hh24:mm:ss) ftime,next_change#,stamp fromv$log_history;
SEQUENCE# FIRST_CHANGE# FTIME NEXT_CHANGE# STAMP
---------- -------------------------------- ------------ ----------
39 1434213 2013-01-2716:01:45 1442201 805838904
40 1442201 2013-01-2720:01:24 1447482 805840188
已选择40行。
SQL> alter system archive log current;
系统已更改。
SQL> selectsequence#,first_change#,to_char(first_time,'yyyy-mm-dd hh24::ss) ftime,next_change#,stamp fromv$log_history;
SEQUENCE# FIRST_CHANGE# FTIME NEXT_CHANGE# STAMP
---------- -------------------------------- ------------ ----------
39 1434213 2013-01-2716:01:45 1442201 805838904
40 1442201 2013-01-2720:01:24 1447482 805840188
41 1447482 2013-01-2720:01:48 1448935 805840632
SQL> select * from v$backup;
FILE# STATUS CHANGE# TIME
---------- ------------------ ------------------------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
4 NOT ACTIVE 144779227-1月 -13
########################################################################################
只读表空间的备份 较长时间内不变的数据可以设置为只读状态
alter tablespace 表空间名 read only; read write;
设置只读时,ORACLE要进行以下三点:
对表空间所对应每一个数据文件执行检查点操作
将数据文件头以当前SCN号冻结。
此后数据库后台写进程DBWR不再写该表对应的数据文件。
设置只读后,需要对表空间对应数据文件进行物理备份,之前read write状态下的备份已经无用了。
因只读表空间是不变的,这一状态下只需一个备份。例行备份将不需要。
最好此时也备份控制文件,表空间状态改变后控制文件无法识别状态惊变前的表空间