存储 频道

数据库复制【jdhq_db ===> clone_db】

一、克隆数据库准备
    在克隆前需要先复制参数文件修改,并启动到nomount状态。在WINDOWS下面还需要创建对应的服务及配置监听文件。tnsnames.ora文件
    ①.建立新的目录结构
        E:\demo\Clone_db\Archive
        E:\demo\Clone_db\bdump
        E:\demo\Clone_db\cdump
        E:\demo\Clone_db\CtlFile
        E:\demo\Clone_db\Dbfile
        E:\demo\Clone_db\LogFile
        E:\demo\Clone_db\pfile
        E:\demo\Clone_db\udump
    ②.复制启动参数文件,并修改
        #复制参数文件:
        c:\>Copy E:\demo\JDHQ_DB\pfile\initJDHQDB.ora E:\demo\Clone_db\pfile\initClone.ora
        #修改参数文件【E:\demo\Clone_db\pfile\initClone.ora】
        instance_name=CLONEDB
        db_name=CLONE_DB
        control_files=("e:\demo\Clone_db\CtlFile\control01.ctl", "e:\demo\Clone_db\CtlFile\control02.ctl", "e:\demo\Clone_db\CtlFile\control03.ctl")
        background_dump_dest=e:\demo\Clone_DB\bdump
        core_dump_dest=e:\demo\Clone_DB\cdump
        user_dump_dest=e:\demo\Clone_DB\udump
        log_archive_dest_1 = "location=E:\demo\Clone_DB\Archive"
        #使用如下此参数文件,则不必set newname for datafile 文件号 to 'E:\demo\Clone_DB\DBFILE\文件名'的转换
        #注:如果开始时不用DB_FILE_NAME_CONVERT和LOG_FILE_NAME_CONVERT参数,则需要修改set newname,
        #由于数据文件较多,如果手工写set newname脚本会不切实际,可以用以下方法获取set newname
        DB_FILE_NAME_CONVERT =('E:\demo\JDHQ_DB\DBFILE' ,'E:\demo\Clone_DB\DBFILE')
        LOG_FILE_NAME_CONVERT=('E:\demo\JDHQ_DB\LogFile','E:\demo\Clone_DB\LogFile')
    ③.使用oradim创建新的instance
        c:\>oradim -new -sid CLONE -intpwd future -maxusers 5 -startmode a -pfile E:\demo\Clone_db\pfile\initClone.ora
        例程已创建。
    ④.使用orapwd创建password文件
        c:\>orapwd file=D:\oracle\ora92\database\PWDCLONE.ora password=sys entries=10
        增加启动配置文件
        D:\oracle\ora92\database\initClone.ora
        内容为:
        IFILE='E:\demo\Clone_db\pfile\initClone.ora'
    ⑤.配置好监听和tnsnames,然后使用sqlplus测试连接
        # Added to the listener.ora SID_LIST
        (SID_DESC =
           (GLOBAL_DBNAME = CLONE_DB)
           (ORACLE_HOME = d:\oracle\ora92)
           (SID_NAME = CLONE)
        )

        # Added to the tnsnames.ora
        CLONE_DB =
          (DESCRIPTION =
            (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = future-mget)(PORT = 1521))
            )
            (CONNECT_DATA =
              (SERVER = DEDICATED)
              (SERVICE_NAME = CLONE_DB)
            )
          )
         
         #重新启动侦听
         net stop OracleOraHome92TNSListener
         net start OracleOraHome92TNSListener
    ⑥.连接测试数据库
        c:\>set oracle_sid=CLONE
        c:\>sqlplus /nolog
        SQL*Plus: Release 10.1.0.2.0 - Production on 星期日 3月 27 21:01:13 2005
        Copyright (c) 1982, 2004, Oracle.  All rights reserved.
        SQL> conn sys/future as sysdba
        SQL> STARTUP pfile=E:\demo\Clone_db\pfile\initClone.ora nomount;

二、备份目标数据库
    C:\>RMAN
    connect rcvcat rman/rman@rman_db
    connect target sys/change_on_install@jdhq_db
    run {
         allocate channel oem_backup_disk1 type disk ;
         backup tag 'dbfull' format 'D:\dbfull_%d_%s_%p.bck'
         database include current controlfile;
         backup tag 'logfull' format 'D:\logfull_%d_%s_%p.bck' archivelog all;
         release channel oem_backup_disk1;}

0
相关文章