oracle复制数据库文件,Oracle备份与恢复系列(四)复制数据库 使用原有的控制文件...
克隆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(介绍数据库编程接口及数据库访问抽象层概念)
摘要 本人最近完成了一个封装数据库访问抽象层的项目.我们开发的数据库访问抽象层作为分布式集群基础平台的一个组件.可以支持不同数据库编程接口(OCI.mysql.ODBC.pgsql)等.本系列博客主要 ...
- oracle 删除已备份归档,通过RMAN联机全库备份,包括控制文件,归档日志文件,备份成功后,删除已备份的归档日志。...
RMAN> backup as backupset full database format '/u01/app/backup/db_%U.rmn' include current contro ...
- 数据库原理及应用【四】数据库管理系统
查询优化 数据库管理系统中非常重要的一部分. 代数优化 按照一定的规则将语句变化成关系代数以后进行优化 操作优化 对代数优化后的查询树使用比较好的方法进行查询. 主要是对连接运算进行优化 嵌套循环 归 ...
- oracle11gr2查看数据库状态,Oracle 11gR2数据库文件丢失后的恢复测试
一.测试环境 数据库版本是Oracle 11gR2,在做完一份完全备份之后,关机,做一份快照,每一次开机之后都执行数次alter system switch logfile以产生归档日志. 之后的测试 ...
- oracle某个表丢失,丢失一个控制文件并恢复数据库
只丢失或损坏一个控制文件的情况下来恢复数据库,相对来说简单一点.一般来说,控制文件都需要形成 一个多路径冗余策略,来提高数据库的安全性.这样的话只需将完好的控制文件复制一个副本放到丢失或者 损坏了的控 ...
- Oracle备份与恢复案例(四)
6. 检查数据 Database altered. SQL> select * from test; A -------------------- ...
- 复用Oracle数据文件,Oracle 多元复用数据库文件
为尽量降低丢失控制文件或重做日志文件的可能性,数据库文件的多元复用(multiplexing)可减少或消除由于介质故障而造成的数据丢失问题.使用从Oracle 10g 开始引入的ASM 实例可在某种程 ...
- oracle数据库激活控制文件位置,Oracle数据库之Oracle 重建控制文件一例
本文主要向大家介绍了Oracle数据库之Oracle 重建控制文件一例,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 环境:OEL 5.7 + Oracle 10.2.0.5 ...
- oracle怎么恢复删除数据库数据库文件,Oracle只有数据文件恢复数据库
Oracle只有数据文件恢复数据库 恢复前准备工作 1备份数据文件,文件路径为%ORACLE_NOME%/oradata/xxxx(xxxx为数据库实例) 2备份ORACLE安装路径下的D:\app\ ...
- 在数据库使用期间创建OMF(Oracle Managed Files,Oracle管理的文件)
在数据库使用期间,可以按照以下步骤使用OMF为表空间创建数据文件,为临时表空间创建临时文件,创建控制文件,创建redo日志文件和归档日志. 1.使用OMF为表空间创建数据文件 当某些条件满足时,下面的 ...
最新文章
- char几个字节java_java中的char占几个字节实例分析
- 快速查询ABAP transport request lock status
- .NET Core接入ElasticSearch 7.5
- [react] 在React中你有遇到过安全问题吗?怎么解决?
- springboot——概述
- 数据科学 IPython 笔记本 8.5 简单的散点图
- collins词典第八版mdx_英语词典选择
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_1_递归概念分类注意事项...
- 杰控连接mysql_杰控组态手册22.数据库连接.pdf
- 自建服务器解网络锁,掌握iPhone1-4代刷机技巧
- 全国行政区划代码到行政村_行政任务
- 分辨率、帧率、码率之间的关系
- 双柱状图与双折线图混合
- 使用QSS美化PyQt5界面,分享4套超赞皮肤和QSS专用编辑器!
- Windows 下Apache服务器搭建
- Spring中Bean的生命周期以及IOC与AOP加载过程
- 支持javascript的ppt软件_javascript制作幻灯片
- 【C++新手教程】C++ 循环
- 前程无忧亚信java面试题_亚信科技面试题及参考答案
- 【堆排序C/C++】