User-Managed Backups 用户管理的备份

来源:互联网 发布:莎莎源码是什么意思 编辑:程序博客网 时间:2024/05/21 08:54
用户管理的备份
Whole database backup 全备<固定,如一个星期一次>
     数据库可能处于open或closed状态,要备份所有的文件
Partial database backups 部分备份
     备份单独的表空间,数据文件,控制文件
Consistent backups 一致性备份
Inconsistent backups 不一致性备份,运行期间各种文件处于不一致状态,需要备份归档日志等
数据库相关文件的数据字典和视图

v$datafile
v$controlfile
v$logfile
dba_data_files
 
Backup Methods
1.非归档模式
  仅冷备:正常关掉数据库<shutdown immediate>,然后拷贝相关文件到指定的目录
  冷备的优点:简单,容易操作
  文件:控制文件,数据文件,日志文件,spfile文件
2.归档模式
  可以冷备和热备
一个冷备份的脚本示例wb.sql,在sql中执行
/**************************************************************
set feeback off heading off verify off trimspool off
set pagesize 0 linesize 200
define dir='/tmp/wb'
define ws='/tmp/ws.sql'
spool &ws
select '! cp ' || name || '&dir' from v$datafile order by 1;
select '! cp ' || member || '&dir' from v$logfile order by 1;
select '! cp ' || name || '&dir' from v$controlfile order by 1;
select '! cp ' || name || '&dir' from v$tempfile order by 1;
spool off
shutdown immediate
@&ws
startup
/**************************************************************
 
热备:Open Database Backup必须处于归档模式
必须备份归档日志,不需要备份重做日志文件
data files+archived log files+control files+password file
 
热备类型
1.备份表空间,推荐一个一个备份,因为进入backup之后会产生大量的redo文件。
ALTER TABLESPACE tbs BEGIN BACKUP;将某个表空间置入备份模式
!cp /..../tb01.dbf /BACKUP/tb01.dbf 拷贝这个表空间的文件到备份目录
ALTER TABLESPACE tbs END BACKUP; 这3步才做要尽可能的快
》》》》》表空间置于BACKUP时做的事情
          a.表空间发生检查点事件,所有数据写入文件
          b.SCN停止增长
          c.如果数据库发生改变,则这个块全部拷贝到redo日志文件中
2.备份数据文件
读取某个文件中的某个块的内容
$ dd if=example01.dbf ibs=8192 skip=1011 count=2 | strings
从文件的skip的位置开始读取2个ibs
v$backup查询哪些文件处于备份模式下
热备的时候数据库崩溃,重启后只能mount状态,不能到open状态,因为v$backup中某文件状态还处于备份状态,要结束备份后才能open。
alter database datafile [file#] end backup;

alter database end backup;
 
只读表空间的备份
alter tablespace qd read only[read write];将表空间置为只读[正常]
直接拷走文件就行,当然要备份控制文件
rm -f * 清空目录
 
***<每次备份都备份控制文件>
控制文件的备份<热备>只要控制文件发生变化就要去备份它。建议每一次都备份这个
1.ALTER DATABASE BACKUP CONTROLFILE TO 'control1.bkp';直接备份二进制文件在user_dump_dest参数代表的目录下
2.ALTER DATABASE BACKUP CONTROLFILE TO TRACE;产生一个trace的文本文件,里面有创建控制文件的脚本,或者alter database backup controlfile to trace as 'd:\oractrl.sql';
 
初始化参数文件的备份
直接拷贝spfile或者创建pfile然后备份pfile
create pfile from spfile;
create pfile='/backup/init.ora' from spfile;
 
DBVERIFY检查数据文件的块有没有损坏等,每次备份完之后检查一下
用法
dbv file=system01.dbf feedback=100 blocksize=8192 注意dbv默认的blocksize可能与文件的blocksize大小不同要指定为文件的block的大小
原创粉丝点击