`

ORACLE热备份

阅读更多

热备份

对表空间进行备份

1.alter tablespace tbs_test begin backup;
2.对表空间下面的文件进行拷贝
3.alter tablespace tbs_test end backup;
要在线备份数据库,数据库的模式必须是archive 模式

archive log list;(查看)

把noarchive 转换到archive 模式

startup mount

alert database noarchivelog ;
alert database open;

aler database archivelog;

热备份脚本:

set feedback off pagesize 0 heading off verify off linesize 32767 trimspool on termout off serveroutput on remark 备份目录先要建好,并赋予ORACLE用户所有。确保有足够的空间

define dir='/hotbak/colnedb'
define fil='&dir/open_backup_commands.sql'
define spo='&dir/open_backup_output.lst'
spool &fil
prompt connect sys/oracle@clonedb as sysdba;;
prompt alter system switch logfile;;
declare
      cursor cur_tablespace is
             select tablespace_name from dba_tablespaces where status<>'READ ONLY' and contents<> 'TEMPORARY';

      cursor cur_datafile(tn varchar) 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('!cp' || cd.file_name ||' &dir');
                end loop;
             dbms_output.put_line('alter tablespace' || ct.tablespace_name || end backup;');
      end loop;
end;

prompt alter system switch logfile;
prompt alter database backup controlfile to '&dir/backup.ctl' reuse;;
prompt alter database backup controlfile to trace;
spool off;;

remark 写好脚本先别加@&fil执行,看看输出是否正常,确认正常再加上@&fil执行,控制文件的REUSE表示如果目标文件存在则覆盖
spool &spo
@&fil
spool off
remark 备完之后得归档日志,怎么知道要备哪些归档日志的?查看V$backup 找出数据在备份的时候的SCN,再对比v$archived_log 的first_change#.例如 select max(sequence#) from v$archived_log where FIRST_CHANGE# <(select min(CHANGE#) FROM V$backup); 并且确保所有的数据文件都备了。

 

磁盘添加:

pvcreate -v /dev/sdf
vgcreate -h
vgcreate -v orabak /dev/sdf
lvcreate -h
lvcreate -L 7800m -n lv_orabak orabak
mkfs.ext2 -h
mkfs.ext2 /dev/oradbak/lv_orabak

mkdir /orabak
mount /dev/orabak/lv_orabak /orabak
chown -R oracle:dba /orabak
vi /etc/fstab
/dev/orabak/lv_orabak    /orabak   ext2   defaults 0 , 0 (自动挂载磁盘)

磁盘添加结束

rm -rf /hotbak/
ln -s /orabak/  /hotbak  把/orabak目录链接到/hotbak目录下面(hotbak是个虚拟目录)

 


用一个备份的文件来创建一个数据库

1.建文件夹 、密码文件、参数文件
2.备份控制文件到脚本
3.执行脚本生成控制文件
4.打开数据库
5.新建temp文件


1.先备份数据,不移动数据文件。做一个软连接
 ln -s /orabak/clonedb/ /oradata/digoal   /orabak/clonedb/是备份的数据文件所在的目录,而/oradata/digoal是新数据库数据文件存放的地方

2. cp initclonedb.ora initdigoal.ora 把参数文件从复制的数据库拷贝过来

3、vi initdigoal.ora 把该文件中的clonedb替换为digoal 替换命令:
%s/clonedb/digoal

4、常见目录:
   mkdir -p $ORACLE_BASE/admin/digoal/adump
   mkdir -p $ORACLE_BASE/admin/digoal/bdump
   mkdir -p $ORACLE_BASE/admin/digoal/cdump
   mkdir -p $ORACLE_BASE/admin/digoal/udump

在/oradata/digoal/目录下面创建archive目录

5.创建密码文件,密码文件的名称是orapwd+sid

 查看orapwd帮助是  orapwd -h

 useage: orapwd file=<fname> password=<password> entries=<users> force=<y/n>

 entries=maximum number of distinct DBA 最多有多少个DBA

orapwd file=$ORACLE_HOME/dbs/orapwdigoal password= oracle entries=10

export ORACLE_SID=digoal


7.进入数据库

conn / as sysdba

startup mount


控制文件脚本
 
shutdown abort

vi ctlsql.sql这个文件 ,把这个文件中创建数据文件的地方用新的SID进行替换(ctlsql.sql)是在以前的视频教程中创建的

uniread sqlplus / as sysdba (连接到数据库)


startup nomount

@$Home/ctlsql.sql(创建控制文件脚本)

出现一个错误,

CREATE CONTRALFILE REUSE DATABASE 'DIGOAL' RESETLOGS ARCHIVELOG
*
database name COLONEDB in file header does not match given name of DIGOAL

说明数据文件/oradata/digoal/system01.dbf的头部记录了 SID的值

只要在/ctlsql.sql中加入一个set 就能够解决这个文件

vi @$Home/ctlsql.sql
CREATE CONTRALFILE SET REUSE DATABASE 'DIGOAL' RESETLOGS ARCHIVELOG

 

8.恢复数据库

recove database using backup controlfile until cancel;


如果出现错误,按照数据库的提示

/oradata/clonedb/archive/1_8_652237584.dbf
引用归档日志


(
/oradata/clonedb/redo_g1_m1.ora

recove database using backup controlfile until cancel;
/oradata/clonedb/redo_g2_m1.ora


recove database using backup controlfile until cancel;
/oradata/clonedb/redo_g3_m1.ora


到archive目录下面:


recove database using backup controlfile until cancel;

/oradata/clonedb/archive/1_8_652237584.dbf


)

alter database open resetlogs;

SQL> !ipcs (启动了两个实例)

分享到:
评论

相关推荐

    oracle热备份

    oracle热备份,rman备份,增量备份

    oracle热备份原理分析

    oracle热备份原理分析介绍了备份的基本理论及在备份进行时的详细说明以及介绍了备份的几种方式。

    oracle热备份代码

    1、制作日志镜像,以备还原 2、control_files加镜像 3、冷备份(数据会丢失,目录结构也需相同) 4、热备份(前提,开启日志模式)

    Oracle热备份脚本

    Oracle数据库热备份脚本, 可以备份dbf, ora, ctl文件. bat批处理文件, 适用于windows系统, oracle11g测试有效.

    ORACLE热备份恢复手册

    ORACLE热备份恢复手册 为了模拟测试oracle热备份的各种恢复情况,同时给以后工程人员一些实施借鉴,记录各种恢复的情况;

    oracle的备份和冷备份、热备份

    oracle 的备份和 冷备份 热备份, 数据库

    oracle的冷备份和热备份方法介绍

    oracle的冷备份和热备份的优点、缺点以及操作方法的介绍

    ORACLE 基于时间点热备份

    ORACLE 基于时间点热备份 ORACLE 基于时间点热备份

    oracle双机热备份方法

    oracle双机热备份方法oracle双机热备份方法oracle双机热备份方法

    oracle备份

    比如使用export实用程序导出数据库对象、使用Oracle备份数据库、使用Oracle对称复制、使用Oracle并行服务器、使用Oracle冷备份、使用Oracle热备份等各种备份方法都有其优缺点、适用的场合和相应的软硬件要求。...

    oracle数据库热备恢复手册

    为了模拟测试oracle热备份的各种恢复情况,同时给以后工程人员一些实施借鉴,特地整理了本文档,在其中记录各种恢复的情况,以方便恢复时使用。

    oracle数据库备份

    比如使用export实用程序导出数据库对象、使用Oracle备份数据库、使用Oracle对称复制、使用Oracle并行服务器、使用Oracle冷备份、使用Oracle热备份等各种备份方法都有其优缺点、适用的场合和相应的软硬件要求。...

    oracle备份方法

    比如使用export实用程序导出数据库对象、使用Oracle备份数据库、使用Oracle对称复制、使用Oracle并行服务器、使用Oracle冷备份、使用Oracle热备份等各种备份方法都有其优缺点、适用的场合和相应的软硬件要求。...

    Oracle 冷备份与热备份的区别

    物理备份:是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。 逻辑备份:是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。

    oracle的冷热备份

    针对oracle的数据备份进行详细介绍。希望能对大家有所帮助。

    ORACLE备份&恢复案例

    NULL 博文链接:https://yufeng0471.iteye.com/blog/1159309

    oracle备份与还原数据库

    oracle备份与还原数据库Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。

    ORACLE 完全热备份小教程

    ORACLE 完全热备份小教程

Global site tag (gtag.js) - Google Analytics