克隆Open状态下的PRACTICE数据库

实验目的:在源数据库PRACTICEopen状态下,用alter tablespace .. begin backup 的方式备份全库。 用该备份在一台新的数据库服务器上恢复,验证备份的有效性。为了操作简便,克隆数据库端采用了dbca创建数据库,用源数据库的备份来覆盖所有文件,执行恢复操作来完成此次克隆。

源数据库:  192.168.1.20

克隆数据库:192.168.1.21

此次试验分为5个步骤

1 准备克隆数据库

2 备份打开的PRACTICE数据库

3 从源库复制备份到克隆库

4 恢复克隆的数据库

5 打开克隆的数据库

step1 准备克隆数据库

在克隆数据库主机上创建数据文件、归档日志、备份文件目录

mkdir /oradata

mkdir /archive

mkdir /backup

chown oracle:oinstall /oradata

chown oracle:oinstall /archive

chown oracle:oinstall /backup

dbca建库

step2 备份Open状态下的PRACTICE数据库

该脚本是在源数据库open状态下执行alter tablespace begin backup方式进行的。

@/backup/scripts/open_backup.sql

脚本如下

vi /backup/scripts/open_backup.sql

set feedback off

set pagesize 0

set heading off

set verify off

set linesize 100

set trimspool on

define dir = '/backup/open_backup'

define fil = '/backup/scripts/open_backup_commands.sql'

define spo = '&dir/open_backup_output.lst'

set serveroutput on

spool &fil

prompt spool &spo

prompt archive log list;;

prompt alter system switch logfile;;

prompt alter system archive log all;;

DECLARE

rem不备份临时表空间

CURSOR cur_tablespace IS

SELECT tablespace_name

FROM dba_tablespaces where tablespace_name<>'TEMP';

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 ('host 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 log file;;

rem 注意此处只备份了一个控制文件,需要手工复制一份到快速恢复区/u01/app/oracle/fast_recovery_area/PRACTICE

prompt alter database backup controlfile to '&dir./control01.ctl' REUSE;;

prompt archive log list;;

prompt spool off

spool off;

@&fil

step3 从源库复制备份到克隆库

在源数据库端root用户下执行以下复制操作

复制spfile文件

scp /u01/app/oracle/product/11.2.0/db_1/dbs/spfilePRACTICE.ora 192.168.1.21:/u01/app/oracle/product/11.2.0/db_1/dbs/

复制数据文件、控制文件

scp /backup/open_backup/* 192.168.1.21:/backup/

复制归档日志文件

scp -r /archive/ 192.168.1.21:/

在克隆数据库端修改组属

chown oracle:oinstall /u01/app/oracle/product/11.2.0/db_1/dbs/spfilePRACTICE.ora

chown oracle:oinstall /oradata

chown oracle:oinstall /archive

在克隆数据库端复制一份拷贝过来的控制文件到闪回区

cp /backup/control01.ctl /u01/app/oracle/fast_recovery_area/PRACTICE/control02.ctl

step4 恢复克隆的数据库

recover database until cancel using backup control file;

ORA-00279: change 1304004 generated at 08/02/2014 10:52:46 needed for thread 1

ORA-00289: suggestion : /archive/1_2_854446453.arc

ORA-00280: change 1304004 for thread 1 is in sequence #2

Specify log: {=suggested | filename | AUTO | CANCEL}

ORA-00279: change 1304100 generated at 08/02/2014 10:53:08 needed for thread 1

ORA-00289: suggestion : /archive/1_3_854446453.arc

ORA-00280: change 1304100 for thread 1 is in sequence #3

ORA-00278: log file '/archive/1_2_854446453.arc' no longer needed for this

recovery

Specify log: {=suggested | filename | AUTO | CANCEL}

ORA-00279: change 1304837 generated at 08/02/2014 11:03:41 needed for thread 1

ORA-00289: suggestion : /archive/1_4_854446453.arc

ORA-00280: change 1304837 for thread 1 is in sequence #4

ORA-00278: log file '/archive/1_3_854446453.arc' no longer needed for this

recovery

Specify log: {=suggested | filename | AUTO | CANCEL}

Log applied.

Media recovery complete.

SYS@PRACTICE >

SYS@PRACTICE >

SYS@PRACTICE >alter database open resetlogs;

step5 打开克隆的数据库

alter database open resetlogs;

由于dbca建库包含了temp01.dbf临时表空间文件,所以不需要再次添加了。

oracle复制数据库文件,Oracle备份与恢复系列(四)复制数据库 使用原有的控制文件...相关推荐

  1. 数据库访问抽象层系列-1(介绍数据库编程接口及数据库访问抽象层概念)

    摘要 本人最近完成了一个封装数据库访问抽象层的项目.我们开发的数据库访问抽象层作为分布式集群基础平台的一个组件.可以支持不同数据库编程接口(OCI.mysql.ODBC.pgsql)等.本系列博客主要 ...

  2. oracle 删除已备份归档,通过RMAN联机全库备份,包括控制文件,归档日志文件,备份成功后,删除已备份的归档日志。...

    RMAN> backup as backupset full database format '/u01/app/backup/db_%U.rmn' include current contro ...

  3. 数据库原理及应用【四】数据库管理系统

    查询优化 数据库管理系统中非常重要的一部分. 代数优化 按照一定的规则将语句变化成关系代数以后进行优化 操作优化 对代数优化后的查询树使用比较好的方法进行查询. 主要是对连接运算进行优化 嵌套循环 归 ...

  4. oracle11gr2查看数据库状态,Oracle 11gR2数据库文件丢失后的恢复测试

    一.测试环境 数据库版本是Oracle 11gR2,在做完一份完全备份之后,关机,做一份快照,每一次开机之后都执行数次alter system switch logfile以产生归档日志. 之后的测试 ...

  5. oracle某个表丢失,丢失一个控制文件并恢复数据库

    只丢失或损坏一个控制文件的情况下来恢复数据库,相对来说简单一点.一般来说,控制文件都需要形成 一个多路径冗余策略,来提高数据库的安全性.这样的话只需将完好的控制文件复制一个副本放到丢失或者 损坏了的控 ...

  6. Oracle备份与恢复案例(四)

    6. 检查数据 Database altered. SQL> select * from test;                         A -------------------- ...

  7. 复用Oracle数据文件,Oracle 多元复用数据库文件

    为尽量降低丢失控制文件或重做日志文件的可能性,数据库文件的多元复用(multiplexing)可减少或消除由于介质故障而造成的数据丢失问题.使用从Oracle 10g 开始引入的ASM 实例可在某种程 ...

  8. oracle数据库激活控制文件位置,Oracle数据库之Oracle 重建控制文件一例

    本文主要向大家介绍了Oracle数据库之Oracle 重建控制文件一例,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 环境:OEL 5.7 + Oracle 10.2.0.5 ...

  9. oracle怎么恢复删除数据库数据库文件,Oracle只有数据文件恢复数据库

    Oracle只有数据文件恢复数据库 恢复前准备工作 1备份数据文件,文件路径为%ORACLE_NOME%/oradata/xxxx(xxxx为数据库实例) 2备份ORACLE安装路径下的D:\app\ ...

  10. 在数据库使用期间创建OMF(Oracle Managed Files,Oracle管理的文件)

    在数据库使用期间,可以按照以下步骤使用OMF为表空间创建数据文件,为临时表空间创建临时文件,创建控制文件,创建redo日志文件和归档日志. 1.使用OMF为表空间创建数据文件 当某些条件满足时,下面的 ...

最新文章

  1. char几个字节java_java中的char占几个字节实例分析
  2. 快速查询ABAP transport request lock status
  3. .NET Core接入ElasticSearch 7.5
  4. [react] 在React中你有遇到过安全问题吗?怎么解决?
  5. springboot——概述
  6. 数据科学 IPython 笔记本 8.5 简单的散点图
  7. collins词典第八版mdx_英语词典选择
  8. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_1_递归概念分类注意事项...
  9. 杰控连接mysql_杰控组态手册22.数据库连接.pdf
  10. 自建服务器解网络锁,掌握iPhone1-4代刷机技巧
  11. 全国行政区划代码到行政村_行政任务
  12. 分辨率、帧率、码率之间的关系
  13. 双柱状图与双折线图混合
  14. 使用QSS美化PyQt5界面,分享4套超赞皮肤和QSS专用编辑器!
  15. Windows 下Apache服务器搭建
  16. Spring中Bean的生命周期以及IOC与AOP加载过程
  17. 支持javascript的ppt软件_javascript制作幻灯片
  18. 【C++新手教程】C++ 循环
  19. 前程无忧亚信java面试题_亚信科技面试题及参考答案
  20. 【堆排序C/C++】

热门文章

  1. CSS滤镜(filter)
  2. MySQL双主高可用架构之MMM实战
  3. 2016网络安全犯罪形势预测
  4. jQuery 操作表单
  5. 对话框的数据交换--MFC深入浅出
  6. git 暂存文件操作 stash
  7. json-viewer.js案例
  8. 删除一个空目录的JAVA代码
  9. 编程基本功:工作中,高低境界如何迁就?
  10. 由购物论测试的重要性:桃子测试了,很好;糖没测试,竟然都有虫子