Maison > base de données > tutoriel mysql > 使用手工方法Clone异名数据库实验

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

WBOY
Libérer: 2016-06-07 16:49:10
original
1179 Les gens l'ont consulté

搭建数据库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

;

 

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal