热备份
来源:互联网 发布:centos 6.5网卡安装 编辑:程序博客网 时间:2024/06/09 16:08
热备是基于用户管理备份恢复的一种方式,也是除了RMAN备份之外较为常用的一种备份方式。
一、热备的过程
冻结块头-->控制SCN在备份时不发生变化
进行物理拷贝
解冻块头-->让SCN可以变化(当对SCN解冻后,系统会自动更新SCN至最新的状态)
二、基于数据库的热备
alter databasebegin backup;
拷贝所有的datafile到备份目录
alter databaseend backup;
三、基于表空间的热备
alter tablespace tablespace_name begin backup;
拷贝tablespace_name表空间的数据文件到备份目录
alter tablespace tablespace_name end backup;
alter tablespace tablespace_name begin backup时完成的任务
检查点事件发生,检查点通知DBWn将该表空间上所有的脏数据被写入到磁盘
在数据文件头部冻结当前检查点事件发生时的SCN号
所有发生变化数据块的完整镜像(修改前后)被写入到redolog中
允许该表空间内数据的正常读写
建议使用基于表空间的热备,这样将尽可能的减少对系统性能的影响
四、控制文件的热备
alter databasebackup controlfile to'<dir>' [reuse]; --控制文件的完整备份
alter databasebackup controlfile to traceas '<dir>' --用于创建控制文件的语句,丢失了部分信息
控制文件发生变化情况
alter database [add |drop] logfile
alter database [add |drop] logfile member
alter database [add |drop] logfilegroup
alter database [archivelog |noarchivelog]
alter database renamefile
create tablespace
alter tablespace [add | rename] datafile
alter tablespace [read write | read only]
drop tablespace
更多关于控制文件请参考:Oracle控制文件
五、参数文件的热备
create pfile from spfile;
create pfile ='<dir>' from spfile;
更多关于参数文件请参考:Oracle参数文件
六、临时表空间的数据文件、日志文件不需要备份
--查看临时表空间
SQL> select tablespace_namefrom dba_temp_files;
TABLESPACE_NAME
------------------------------
TEMP
--查看临时表空间的数据文件
SQL> selectname from v$tempfile;
NAME
------------------------------------------------------
/u01/app/oracle/oradata/orcl/temp01.dbf
--将临时表空间置为备份模式,收到了错误的提示
SQL> alter tablespace tempbegin backup;
alter tablespace temp begin backup
*
ERROR at line 1:
ORA-03217: invalidoption for alter of TEMPORARY TABLESPACE
--将临时表空间置为备份模式,收到了错误的提示
SQL> alter temporary tablespace tempbegin backup;
alter temporary tablespace temp begin backup
*
ERROR at line 1:
ORA-00940: invalidALTER command
七、热备脚本
1.基于数据库热备的脚本
SQL> ho cat /tmp/tmphotbak.sql;
set feedback off
set heading off
set verify off
set trimspool off
set pagesize 0
set linesize 200
define dir = '/u01/app/oracle/hotbak'
define script = '/tmp/hotbak.sql'
spool &script
select 'ho cp '||name|| ' &dir' from v$datafile;
spool off
alter databasebegin backup;
start &script
alter databaseend backup;
alter databasebackup controlfile to'&dir/controlbak.ctl';
create pfile ='&dir/initorcl.ora' from spfile;
SQL> start /tmp/tmphotbak.sql; --执行该脚本即可对数据库进行热备
2.基于表空间热备的脚本
SQL> ho cat /tmp/tmphotbak_tb.sql
set feedback off
set heading off
set verify off
set trimspool off
set pagesize 0
set linesize 200
define dir = '/u01/app/oracle/hotbak'
define script = '/tmp/hotbak_tb.sql'
ho rm &script
ho rm &dir/*
spool &script
select 'alter tablespace '|| tablespace_name||' begin backup ;'||
chr(10)||'ho cp '|| file_name || ' &dir ' ||
chr(10)||'alter tablespace '|| tablespace_name|| ' end backup;'
from dba_data_filesorder by tablespace_name;
spool off
start &script
alter databasebackup controlfile to'&dir/controlbak.ctl';
create pfile ='&dir/initorcl.ora' from spfile;
SQL> start /tmp/tmphotbak.sql; --执行该脚本即可对数据库基于表空间进行热备
八、备份的相关视图
v$backup
SQL> desc v$backup;
Name Null? Type
----------------------------------------- -------- ---------------------
FILE# NUMBER
STATUS VARCHAR2(18)
CHANGE# NUMBER --记录备份时的SCN号
TIME DATE
SQL> select* from v$backup; --状态为NOT ACTIVE ,此时没有任何数据处于备份状态
FILE# STATUS CHANGE#TIME
---------- ------------------ ---------- ---------
1 NOT ACTIVE 1006747 16-AUG-10
2 NOT ACTIVE 1006793 16-AUG-10
3 NOT ACTIVE 1006729 16-AUG-10
4 NOT ACTIVE 1006807 16-AUG-10
5 NOT ACTIVE 1006717 16-AUG-10
SQL> alter tablespace usersbegin backup; --对表空间users进行热备
Tablespace altered.
SQL> select* from v$backup; --对应的file#为的处于ACTIVE状态
FILE# STATUS CHANGE#TIME
---------- ------------------ ---------- ---------
1 NOT ACTIVE 1006747 16-AUG-10
2 NOT ACTIVE 1006793 16-AUG-10
3 NOT ACTIVE 1006729 16-AUG-10
4 ACTIVE 1006852 16-AUG-10
5 NOT ACTIVE 1006717 16-AUG-10
--备份时发生断电或意外故障的恢复
--假定users表空间目前置于begin bakup模式,系统断电
SQL> alter tablespace usersbegin backup;
Tablespace altered.
--在另一个会话中强制关闭数据库
SQL> shutdown abort;
ORACLE instance shut down.
--启动后收到错误提示
SQL> startup
ORACLE instance started.
Total System Global Area 469762048 bytes
Fixed Size 1220048 bytes
Variable Size 92275248 bytes
Database Buffers 373293056 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-01113:file 4 needs media recovery
ORA-01110: datafile 4: '/u01/app/oracle/oradata/orcl/users01.dbf'
--查看备份视图,文件此时处于活动状态
SQL> select* from v$backup;
FILE# STATUS CHANGE#TIME
---------- ------------------ ---------- ---------
1 NOT ACTIVE 1006958 16-AUG-10
2 NOT ACTIVE 1006983 16-AUG-10
3 NOT ACTIVE 1006943 16-AUG-10
4 ACTIVE 1007072 16-AUG-10
5 NOT ACTIVE 1006931 16-AUG-10
--使用end backup来终止备份
SQL> alterdatabase datafile 4 endbackup; --此处也可以使用recover datafile 4来完成恢复
Database altered.
SQL> alterdatabase open;
Database altered.
SQL> select* from dual;
D
-
X
- 热备份
- 热备份和冷备份
- MySQL实施热备份
- mysql双机热备份
- oracle 双机热备份
- mysql 热备份
- 冷、热备份
- oracle热备份
- 双机热备份技术
- ORACLE--热备份篇
- mysql 热备份问题
- Oracle 热备份
- RMAN热备份
- 配置热备份
- sqlserver2005创建热备份
- oracle双机热备份
- Mysql 数据库热备份
- oracle 热备份测试
- 冷备份
- C++ 对象模型---构造函数篇
- 【leetcode】Binary Tree Level Order Traversal
- Linux文件系统学习记录
- 【LeetCode】Pascal's Triangle (杨辉三角)
- 热备份
- golismero之CheetSheet
- mongodb数据导入导出以及备份恢复
- 解决IIS下localhost访问需要输入用户名和密码的问题
- iPhone 4S版本查看
- RMQ算法与应用.
- 备份与恢复的笼统介绍
- 华夏互联弘文庐新颜且寄美人榻-欢迎各界朋友欣赏
- 源串修改为目标串共操作的次数以及最长公共子串