oracle 不一致备份,oracle备份技术之oracle非一致性备份(热备份)

(1)编写热备份脚本(双重spool)

set feedback off pagesize 0 heading off verify off linesize 100 trimspool on echo off time off

define bakdir='/disk1/backup/anny/hot_bak'

define bakscp='/disk1/backup/anny/hot_cmd.sql'

define spo='&bakdir/hot_bak.lst'

prompt ***spooling to &bakscp

set serveroutput on

spool &bakscp

prompt spool &spo

prompt alter system switch logfile;;

declare

cursor cur_tablespace is

select tablespace_name from dba_tablespaces where status <>'READ ONLY' and contents  not like '%TEMP%';

cursor  cur_datafile (tn varchar2) is

select file_name from dba_data_files where tablespace_name=tn;

begin

for ct in cur_tablespace loop

dbms_output.put_line('alter tablespace '||ct.tablespace_name ||' begin backup; ');

for cd in cur_datafile(ct.tablespace_name) loop

dbms_output.put_line('host cp '||cd.file_name||' &bakdir');

end loop;

dbms_output.put_line('alter tablespace '||ct.tablespace_name||' end backup;');

end loop;

end;

/

prompt archive log list;;

prompt spool off;;

spool off;

@&bakscp          ——一般先不执行该脚本,要先检查有没有错

(2)执行上面的脚本,会生成一个/disk1/backup/anny/hot_cmd.sql脚本,用来进行冷备份的

[oracle@solaris10 anny]$cat hot_cmd.sql

spool /disk1/backup/anny/hot_bak/hot_bak.lst

alter system switch logfile;

alter tablespace SYSTEM begin backup;

host cp /u01/app/oracle/oradata/anny/system01.dbf /disk1/backup/anny/hot_bak

alter tablespace SYSTEM end backup;

alter tablespace SYSAUX begin backup;

host cp /u01/app/oracle/oradata/anny/sysaux01.dbf /disk1/backup/anny/hot_bak

alter tablespace SYSAUX end backup;

alter tablespace USERS begin backup;

host cp /u01/app/oracle/oradata/anny/user01.dbf /disk1/backup/anny/hot_bak

alter tablespace USERS end backup;

alter tablespace TEXT begin backup;

host cp /u01/app/oracle/oradata/anny/text01.dbf /disk1/backup/anny/hot_bak

alter tablespace TEXT end backup;

alter tablespace LX01 begin backup;

host cp /u01/app/oracle/oradata/anny/lx01.dbf /disk1/backup/anny/hot_bak

alter tablespace LX01 end backup;

alter tablespace UNDOTBS begin backup;

host cp /u01/app/oracle/oradata/anny/undotbs01.dbf /disk1/backup/anny/hot_bak

alter tablespace UNDOTBS end backup;

alter tablespace LX02 begin backup;

host cp /u01/app/oracle/oradata/anny/lx02.dbf /disk1/backup/anny/hot_bak

alter tablespace LX02 end backup;

alter tablespace LX03 begin backup;

host cp /u01/app/oracle/oradata/anny/lx03.dbf /disk1/backup/anny/hot_bak

alter tablespace LX03 end backup;

alter tablespace LX04 begin backup;

host cp /u01/app/oracle/oradata/anny/lx04.dbf /disk1/backup/anny/hot_bak

alter tablespace LX04 end backup;

alter tablespace INDEXES begin backup;

host cp /u01/app/oracle/oradata/anny/index01.dbf /disk1/backup/anny/hot_bak

alter tablespace INDEXES end backup;

archive log list;

spool off;

(3)执行上面的脚本hot_cmd.sql,又会生成一个列表文件hot_bak.lst,以下是列表文件的内容,也就是执行hot_cmd.sql的结果!

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /disk1/arch/anny

Oldest online log sequence     17

Next log sequence to archive   20

Current log sequence           20

***********************************至此,备份成功************************************

——查看原始文件的大小

——手工备份会备份database里datafile的所有数据块

SQL> col name for a50

SQL> select file#,name,bytes/1024/1024 "Size" from v$datafile;

1 /u01/app/oracle/oradata/anny/system01.dbf                 325

2 /u01/app/oracle/oradata/anny/lx02.dbf                      10

3 /u01/app/oracle/oradata/anny/sysaux01.dbf                 325

4 /u01/app/oracle/oradata/anny/user01.dbf                   200

5 /u01/app/oracle/oradata/anny/text01.dbf                   100

6 /u01/app/oracle/oradata/anny/lx01.dbf                      10

7 /u01/app/oracle/oradata/anny/undotbs01.dbf                110

8 /u01/app/oracle/oradata/anny/lx03.dbf                      10

9 /u01/app/oracle/oradata/anny/lx04.dbf                      10

10 /u01/app/oracle/oradata/anny/index01.dbf                  100

——查看备份后文件大小

[oracle@solaris10 hot_bak]$ls -lht

×üêy 2459138

-rw-r--r--   1 oracle   oinstall     243  3   19è  16:32 hot_bak.lst

-rw-r-----   1 oracle   oinstall    100M  3   19è  16:32 index01.dbf

-rw-r-----   1 oracle   oinstall     10M  3   19è  16:32 lx04.dbf

-rw-r-----   1 oracle   oinstall     10M  3   19è  16:32 lx03.dbf

-rw-r-----   1 oracle   oinstall     10M  3   19è  16:32 lx02.dbf

-rw-r-----   1 oracle   oinstall    110M  3   19è  16:32 undotbs01.dbf

-rw-r-----   1 oracle   oinstall     10M  3   19è  16:32 lx01.dbf

-rw-r-----   1 oracle   oinstall    100M  3   19è  16:32 text01.dbf

-rw-r-----   1 oracle   oinstall    200M  3   19è  16:32 user01.dbf

-rw-r-----   1 oracle   oinstall    325M  3   19è  16:32 sysaux01.dbf

-rw-r-----   1 oracle   oinstall    325M  3   19è  16:32 system01.dbf

通过对比,手工备份后大小和原文件大小几乎相等,RMAN备份不一样,只备份已经使用的块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值