oracle 备份恢复 02手工备份

1、备份分类:
    物理备份
        手工备份,RMAN
    逻辑备份
2、手工备份
    归档模式:冷备,热备,彻底恢复,不彻底恢复
    非归档模式:冷备,彻底恢复
    冷备:关库-拷贝控制文件-数据文件
    热备:..begin backup;-拷贝(数据文件处于可操做状态)-end backup;
1.块分裂:begin backup会锁定数据文件的头部SCN,标志恢复的起点,由于oracle块包含多个OS块,拷贝过程当中可
能会使oracle块内的SCN不一致。将块内容镜像到redolog,end backup重作恢复使得SCN一致同时解锁SCN。
2.dbv file=/u01/app/oracle/oradata/ipemsdb/datafile/o1_mf_example_bv77pklo_.dbf
  对数据文件进行检查,是否存在坏块,直接执行,不用登录oracle
3.备份相关set命令
    set echo off        #用在脚本中,开关命令执行的结果和命令自己
    set trimspool off   #行之间的行距
    set heading off     #开关表头信息
    set feedback off    #开关查询后的行数统计
    set verify off      #开关新旧值
    set time off        #开关>前的时间
    set pagesize 0      #不分页
    set linesize 200    #行宽
3、备份脚本
1.冷备份:
    当数据库的全部可读写的物理文件具备相同的系统改变号(SCN)时进行的备份,这个状态的惟一方法是数据库正常关闭,
因此也叫一致性备份。使用于归档和非归档模式;
    优势:快速简单(拷贝);容易恢复到备份的时间点上;低度维护高度安全
    缺点:备份时数据库必须关闭;只能恢复到备份时间点;
冷备cold_bak.sql
    set echo off trimspool off  heading off  feedback off  verify off  time off 
    set pagesize 0 linesize 200
    define bakdir='/u01/app/backdir/cold_bak'
    define bakscp='/u01/app/backdir/cold_bak/cold_cmd.sql'
    spool &bakscp
        select 'host cp '|| name||'  &bakdir' name from v$datafile order by 1;
        select 'host cp '|| name||'  &bakdir' name from v$controlfile order by 1;
    spool off
    shutdown immediate
    @ &bakscp
    startup
平常手动冷备时须要备份的文件:
    数据文件,控制文件,联机日志文件(select member from v$logfile;),参数文件,密码文件
2.热备hot_back.sql
    set echo off trimspool off  heading off  feedback off  verify off  time off 
    set pagesize 0 linesize 200
    define bakdir='/u01/app/backdir/hot_bak'
    define bakscp='/u01/app/backdir/hot_bak/hot_cmd.sql'
    set serveroutput on
    spool &bakscp
    prompt alter system switch logfile;;
    declare
       cursor cu_tablespaces is
          select tablespace_name  from dba_tablespaces where contents not like 'TEMP%' and status ='ONLINE';
        cursor cu_datafiles(name varchar2) is
           select file_name from dba_data_files where tablespace_name=name;
    begin
        for i in cu_tablespaces loop
            dbms_output.put_line('alter tablespace  '||i.tablespace_name||' begin backup ;');
            for j in cu_datafiles(i.tablespace_name) loop
                dbms_output.put_line('host cp  '||j.file_name||'  &bakdir ');            
            end loop;
            dbms_output.put_line('alter tablespace  '||i.tablespace_name||' end backup ;');
        end loop;
        dbms_output.put_line('alter database  backup controlfile to trace;');
        dbms_output.put_line('alter database  backup controlfile to ''&bakdir/controlfile.ctl'';');
    end;
    /
    spool off
    @ &bakscpsql

热备还能够    
alter database begin backup;
alter database end backup;数据库

相关文章
相关标签/搜索