logo logo
关于我们

技术分享

技术分享 oracle备份技术之oracle非一致性备份(热备份)

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

2021-08-01

(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备份不一样,只备份已经使用的块。


云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 容灾备份

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载

jia7jia_7
请添加好友
为您提供支持

请拨打电话
为您提供支持

400-9955-698