热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

使用手工方法Clone异名数据库实验

搭建数据库Clone对象是我们经常遇到的日常运维需求。在实际开发测试过程中,经常需要快速拷贝一份包含业务数据的数据库环境。之前

搭建数据库Clone对象是我们经常遇到的日常运维需求。在实际开发测试过程中,经常需要快速拷贝一份包含业务数据的数据库环境。之前

搭建数据库Clone对象是我们经常遇到的日常运维需求。在实际开发测试过程中,经常需要快速拷贝一份包含业务数据的数据库环境。之前,我们已经介绍过如果使用RMAN Duplicate功能进行相关操作。本篇一起来讨论如何使用传统的SQL Plus工具进行创建克隆数据库。

推荐阅读:

RMAN 配置归档日志删除策略

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

1、环境介绍和实验目标

我们选择Oracle 11gR2进行测试,运行操作系统为Linux 5.3。

SQL> select * from v$version;

BANNER

----------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production

PL/SQL Release 11.2.0.3.0 - Production

CORE 11.2.0.3.0 Production

TNS for Linux: Version 11.2.0.3.0 - Production

NLSRTL Version 11.2.0.3.0 - Production

数据库实例名为ora11g,相关环境变量如下:

[oracle@SimpleLinux ~]$ env | grep ORA

ORACLE_SID=ora11g

ORACLE_BASE=/u01/app

ORACLE_HOME=/u01/app/oracle

数据库参数文件、控制文件、数据文件均遵守OFA规范,文件名称策略为OMF。

实验目标是建立数据库ora11cl,内容和ora11g完全相同(clone)。但是数据库名称要求不同。由于环境原因,笔者采用相同host进行文件复制,如果是不同host克隆数据库,操作完全相同。注意:异地克隆数据库,,最好Oracle软件版本或者补丁完全相同。这样做可以防止由于版本原因造成的异常。

2、原理分析和准备

Oracle数据库运行三大文件:数据文件、控制文件和日志文件(online+archived)。需要进行数据库复制要将实现:参数文件启动一个全新的实例,采用一个新的实例名;控制文件重建并且识别日志和数据文件;如果不完全关闭情况下,还要考虑归档日志的应用补全。

一般情况下,如果是完全关闭数据库,我们是可以避免归档日志apply过程的。使用pfile可以实现新数据库实例的创建。在进入nomount之后,可以尝试重新建立control file,来修改置换文件头的各种信息。

确定当前控制文件目录:

SQL> select name from v$controlfile;

NAME

--------------------------------------------------------------------------------

/u01/app/oradata/ORA11G/controlfile/o1_mf_92t72zkf_.ctl

/u01/app/fast_recovery_area/ORA11G/controlfile/o1_mf_92t72zyj_.ctl

如果新数据库依然遵守OFA策略,对应的ORA11CL目录需要创建,包括数据目录和日志目录。准备cp命令脚本。

SQL> select 'cp '||file_name||' '||replace(file_name,'ORA11G','ORA11CL') from dba_data_files;

cp /u01/app/oradata/ORA11G/datafile/o1_mf_users_92t6zl83_.dbf /u01/app/oradata/ORA11CL/datafile/o1_mf_users_92t6zl83_.dbf

cp /u01/app/oradata/ORA11G/datafile/o1_mf_undotbs1_92t6zl6d_.dbf /u01/app/oradata/ORA11CL/datafile/o1_mf_undotbs1_92t6zl6d_.dbf

cp /u01/app/oradata/ORA11G/datafile/o1_mf_sysaux_92t6zl5k_.dbf /u01/app/oradata/ORA11CL/datafile/o1_mf_sysaux_92t6zl5k_.dbf

cp /u01/app/oradata/ORA11G/datafile/o1_mf_system_92t6zl2m_.dbf /u01/app/oradata/ORA11CL/datafile/o1_mf_system_92t6zl2m_.dbf

cp /u01/app/oradata/ORA11G/datafile/o1_mf_example_92t74b1f_.dbf /u01/app/oradata/ORA11CL/datafile/o1_mf_example_92t74b1f_.dbf

cp /u01/app/oradata/ORA11G/datafile/o1_mf_trcatbl_96mlzz0j_.dbf /u01/app/oradata/ORA11CL/datafile/o1_mf_trcatbl_96mlzz0j_.dbf

cp /u01/app/oradata/ORA11G/datafile/o1_mf_testtbl_9j2sxn9r_.dbf /u01/app/oradata/ORA11CL/datafile/o1_mf_testtbl_9j2sxn9r_.dbf

cp /u01/app/oradata/ORA11G/datafile/o1_mf_awp_9khloyod_.dbf /u01/app/oradata/ORA11CLO/datafile/o1_mf_awp_9khloyod_.dbf

8 rows selected

控制文件dump备份有很多方法,因为本次试验希望使用Create control file的策略,所以备份到平面flat text文件。

SQL> set heading on;

SQL> select value from v$diag_info where;

VALUE

----------------------------------------------

/u01/app/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_3577.trc

SQL> alter database backup controlfile to trace;

Database altered

打开trace文件,定位了脚本位置,选择resetlogs模式创建。

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "ORA11G" RESETLOGS ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 1248

LOGFILE

GROUP 1 (

'/u01/app/oradata/ORA11G/onlinelog/o1_mf_1_94hvy8pw_.log',

'/u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_1_94hvy9kk_.log'

) SIZE 50M BLOCKSIZE 512,

GROUP 2 (

'/u01/app/oradata/ORA11G/onlinelog/o1_mf_2_94hvyc26_.log',

'/u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_2_94hvydb6_.log'

) SIZE 50M BLOCKSIZE 512,

GROUP 3 (

'/u01/app/oradata/ORA11G/onlinelog/o1_mf_3_94hvyfvx_.log',

'/u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_3_94hvyh9v_.log'

) SIZE 50M BLOCKSIZE 512

-- STANDBY LOGFILE

DATAFILE

'/u01/app/oradata/ORA11G/datafile/o1_mf_system_92t6zl2m_.dbf',

'/u01/app/oradata/ORA11G/datafile/o1_mf_sysaux_92t6zl5k_.dbf',

'/u01/app/oradata/ORA11G/datafile/o1_mf_undotbs1_92t6zl6d_.dbf',

'/u01/app/oradata/ORA11G/datafile/o1_mf_users_92t6zl83_.dbf',

'/u01/app/oradata/ORA11G/datafile/o1_mf_example_92t74b1f_.dbf',

'/u01/app/oradata/ORA11G/datafile/o1_mf_trcatbl_96mlzz0j_.dbf',

'/u01/app/oradata/ORA11G/datafile/o1_mf_testtbl_9j2sxn9r_.dbf',

'/u01/app/oradata/ORA11G/datafile/o1_mf_awp_9khloyod_.dbf'

CHARACTER SET AL32UTF8

;

推荐阅读
  • 大数据领域的职业路径与角色解析
    本文将深入探讨大数据领域的各种职业和工作角色,帮助读者全面了解大数据行业的需求、市场趋势,以及从入门到高级专业人士的职业发展路径。文章还将详细介绍不同公司对大数据人才的需求,并解析各岗位的具体职责、所需技能和经验。 ... [详细]
  • 一关于t1表和testtb的索引设计二把主键放到二级索引的后面,会否占据更多的物理空间?三InnoDB的主键该如何选择,业务ID和自增 ... [详细]
  • 本文为初学者提供了一条清晰的学习路线,帮助他们逐步成长为优秀的Web开发人员。通过十个关键步骤,涵盖从基础到高级的各个方面,确保每位学习者都能找到适合自己的学习方向。 ... [详细]
  • 本文介绍 DB2 中的基本概念,重点解释事务单元(UOW)和事务的概念。事务单元是指作为单个原子操作执行的一个或多个 SQL 查询。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文介绍了 Oracle SQL 中的集合运算、子查询、数据处理、表的创建与管理等内容。包括查询部门号为10和20的员工信息、使用集合运算、子查询的注意事项、数据插入与删除、表的创建与修改等。 ... [详细]
  • 本文介绍了如何使用 Google Colab 的免费 GPU 资源进行深度学习应用开发。Google Colab 是一个无需配置即可使用的云端 Jupyter 笔记本环境,支持多种深度学习框架,并且提供免费的 GPU 计算资源。 ... [详细]
  • malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ... [详细]
  • 优化虎牙直播体验的插件
    近期在观看虎牙直播时,发现广告和一些低质量直播间频繁出现,严重影响了观看体验。为此,我开发了一款插件,帮助用户屏蔽这些不想要的内容。以下是插件的介绍和使用方法。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • 在Linux系统中,find和grep是两个常用的命令,用于文件和文本的查找。本文将详细介绍这两个命令的区别及其常见用法。 ... [详细]
  • 本文介绍了多种开源数据库及其核心数据结构和算法,包括MySQL的B+树、MVCC和WAL,MongoDB的tokuDB和cola,boltDB的追加仅树和mmap,levelDB的LSM树,以及内存缓存中的一致性哈希。 ... [详细]
  • Python多线程详解与示例
    本文介绍了Python中的多线程编程,包括僵尸进程和孤儿进程的概念,并提供了具体的代码示例。同时,详细解释了0号进程和1号进程在系统中的作用。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 一个初秋的雨夜,我独自漫步在校园的小道上,心中突然涌起对理想爱情的憧憬。这篇文章将分享我对理想伴侣的期望,以及与他共度美好时光的愿景。 ... [详细]
author-avatar
usx7054252
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有