WEB开发网
开发学院数据库Oracle Oracle数据库备份与恢复(3):OS备份和用户管理 阅读

Oracle数据库备份与恢复(3):OS备份和用户管理

 2008-11-05 11:58:34 来源:WEB开发网   
核心提示: 3.3 ARCHIVELOG 模式 3.3.1 脱机冷备与恢复 同 NONARCHIVELOG模式 3.3.2 联机热备 联机热备是在数据库运行的情况下进行备份的方法,热备份要求数据库在 Archivelog方式下操作,Oracle数据库备份与恢复(3):OS备份和用户管理(3),并需要大量的档案空间,

  3.3 ARCHIVELOG 模式

   3.3.1  脱机冷备与恢复

   同 NONARCHIVELOG模式

   3.3.2  联机热备

   联机热备是在数据库运行的情况下进行备份的方法。热备份要求数据库在 Archivelog方式下操作,并需要大量的档案空间。

   热备份的优点:

   1.可在表空间或数据文件级备份,备份时间短。

   2.备份时数据库仍可使用,支持 24*7不间断运行。

   3.可达到秒级恢复(恢复到某一时间点上)。

   4.可对几乎所有数据库实体作恢复。

   5.恢复是快速的,在大多数情况下在数据库仍工作时恢复。

   热备份的不足是:

   1.不能出错,否则后果严重。

   2.若热备份不成功,所得结果不可用于时间点的恢复。

   3.因难于维护,所以要特别仔细小心,不允许“以失败而告终”。

   注意:在热备过程中系统会生成更多的重做日志和回滚数据。所以必须在数据库较空闲时才进行备份。

   备份内容:(1)  数据文件:  一个表空间一个表空间地备份 sql> alter tablespace users begin backup; sql> $copy '/xx/xx.dbf ''/yy/yy.dbf' ; sql> alter tablespace users end backup; sql> alter system checkpoint;(只读表空间直接拷贝,不用begin backup)

   (2)  备份归档 log文件

   (1)临时停止归档进程   log_archive_max_processes=0

   (2)log下那些在 archive redo log 目标目录中的文件

   (3)重新启动 archive 进程

   (4)备份归档的 redo log  文件

   (3) 备份联机的控制文件:sql> alter database backup controlfile to '/xx/xx.ctl';

   (4)  备份初始化文件  配置文件  等:sql> $copy   …… …… ;

   热备脚本:hotback.sql

   Rem  热备份脚本 for Linux

   Rem  执行该脚本必须保证数据库处于归档模式

   Rem db.dw.dm@gmail.com 2007-03-17

   Rem

   Rem  设置 SQL*Plus环境参数

   Rem

   set feedback off

   set pagesize 0

   set heading off

   set verify off

   set linesize 100

   set trimspool on

   Rem  设置备份相关的路径   For Linux

   Rem  设置数据文件备份路径

   define datafile_dir   = '/u05/oracle/hotback/datafile'

   Rem  设置归档日志文件备份路径

   define archlog_dir = '/u05/oracle/hotback/archlog'

   Rem  设置控制文件备份路径

   define controlfile_dir = '/u05/oracle/hotback/controlfile'

   Rem  设置生成的备份脚本名

   define hotback   = '/u05/oracle/hotback/open_hot_backup.sql'

   define spoolfile = '/u05/oracle/hotback/spool.tmp'

   define cpy = 'cp' prompt *** Spooling to &hotback

   Rem  产生备份数据文件、归档日志文件的命令

   set serveroutput on size 1000000

   spool &hotback

   prompt spool &spoolfile

   prompt archive log list;;

   prompt alter system switch logfile;;

   prompt alter system archive log all;;

   DECLARE

   CURSOR cur_tablespace IS

   SELECT tablespace_name

   FROM dba_tablespaces

   ORDER BY tablespace_name;

   CURSOR cur_datafile (tn VARCHAR) IS

   SELECT file_name

   FROM dba_data_files

   WHERE tablespace_name = tn

   ORDER BY file_name;

   CURSOR cur_arch_dest IS

   SELECT value

   FROM v$parameter

   WHERE   name = 'log_archive_dest';

   BEGIN

   FOR ct IN cur_tablespace LOOP

   IF ct.tablespace_name!='TEMP' then

   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 y '||cd.file_name||' &datafile_dir');

   END LOOP;

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

   end if;

   END LOOP;

   FOR dest IN cur_arch_dest LOOP

   dbms_output.put_line ('host &cpy '|| dest.value || '/* &archlog_dir ');

   END LOOP;

   END;/ Rem  产生备份控制文件的命令

   prompt alter system archive log current;;

   prompt alter database backup controlfile to trace;;

   prompt alter database backup controlfile to '&controlfile_dir/control.bak' REUSE;;

   prompt archive log list;;

   prompt prompt ***Hot Backup Finish***;

   prompt spool off spool off;

   host rm -f &spoolfile

   Rem  执行生成的脚本文件

   Rem @&hotback

   Rem host del &hotback

上一页  1 2 3 4 5  下一页

Tags:Oracle 数据库 备份

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接