ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RMAN duplicate迁移数据库(不同目录)

RMAN duplicate迁移数据库(不同目录)

原创 Linux操作系统 作者:hjianping 时间:2011-04-24 15:34:23 0 删除 编辑

备份主数据库
----------------------------------------------------------------------------
run {
      configure retention policy to redundancy 2;
      allocate channel ch1 type disk;
      backup database
      format '/software/backup/%d_dbfile_%I_%T_%s'
      include current controlfile
      plus archivelog format='/software/backup/%d_arcfile_%I_%T_%s' delete input;
      delete noprompt obsolete;
      release channel ch1;
    }
----------------------------------------------------------------------------

配置监听(参考双实例监听设置)
listener.ora 文件
----------------------------------------------------------------------------
    (SID_DESC =
        (GLOBAL_DBNAME = oratest)
        (ORACLE_HOME = /u01/oracle/app/product)  
        (SID_NAME = oratest)
     )
    
    (SID_DESC =
        (GLOBAL_DBNAME = test)
        (ORACLE_HOME = /u01/oracle/app/product)  
        (SID_NAME = test)
     )
----------------------------------------------------------------------------

tnsnames.ora 文件
----------------------------------------------------------------------------
oratest =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.130)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oratest)
    )
  )

test =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.130)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = test)
    )
  )
----------------------------------------------------------------------------

根据主数据库的参数文件创建辅助数据库参数文件
$ cat inittest.ora
----------------------------------------------------------------------------
test.__db_cache_size=92274688
test.__java_pool_size=4194304
test.__large_pool_size=4194304
test.__shared_pool_size=62914560
test.__streams_pool_size=0
*.audit_file_dest='/software/oracle/app2/admin/test/adump'
*.background_dump_dest='/software/oracle/app2/admin/test/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/software/oracle/app2/oradata/test/control01.ctl','/software/oracle/app2/oradata/test/control02.ctl','/software/oracle/app2/oradata/test/control03.ctl'
*.core_dump_dest='/software/oracle/app2/admin/test/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='test'
*.db_recovery_file_dest='/software/oracle/app2/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)'
*.job_queue_processes=10
*.log_archive_format='%t_%s_%r.dbf'
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/software/oracle/app2/admin/test/udump'
----------------------------------------------------------------------------

创建密码文件及相关目录
----------------------------------------------------------------------------
orapwd file=/u01/oracle/app/product/dbs/orapwtest password=password entries=3

mkdir -p /software/oracle/app2/oradata/test/
mkdir -p /software/oracle/app2/admin/test/adump
mkdir -p /software/oracle/app2/admin/test/bdump
mkdir -p /software/oracle/app2/admin/test/cdump
mkdir -p /software/oracle/app2/admin/test/udump
mkdir -p /software/oracle/app2/flash_recovery_area
----------------------------------------------------------------------------

查询主数据库控制文件、数据文件和临时表空间数据文件
-----------------------------------------------------
select name from v$controlfile;
select file#,name from v$datafile;
select file_id,file_name from dba_temp_files;
-----------------------------------------------------

启动建辅助数据库到nomount状态
-----------------------------------------------------------------
export ORACLE_SID=test
sqlplus / as sysdba
startup nomount pfile='/u01/oracle/app/product/dbs/inittest.ora'
exit;
-----------------------------------------------------------------

复制数据库
-----------------------------------------------------------------------------------------
export ORACLE_SID=test
rman target sys/password@oratest auxiliary sys/password@test
run {
 allocate auxiliary channel d1 type disk;
 set newname for datafile 1 to '/software/oracle/app2/oradata/test/system01.dbf';
 set newname for datafile 2 to '/software/oracle/app2/oradata/test/undotbs01.dbf';
 set newname for datafile 3 to '/software/oracle/app2/oradata/test/sysaux01.dbf';
 set newname for datafile 4 to '/software/oracle/app2/oradata/test/users01.dbf';
 set newname for tempfile 1 to '/software/oracle/app2/oradata/test/temp01.dbf';
 duplicate target database to "test"
 logfile
  '/software/oracle/app2/oradata/test/redo01.log' size 50M,
  '/software/oracle/app2/oradata/test/redo02.log' size 50M,
  '/software/oracle/app2/oradata/test/redo03.log' size 50M;
     }
-----------------------------------------------------------------------------------------

 

 

 


=========================================================================================
using target database control file instead of recovery catalog
allocated channel: d1
channel d1: sid=155 devtype=DISK

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting Duplicate Db at 15-APR-11

contents of Memory Script.:
{
   set until scn  483372;
   set newname for datafile  1 to
 "/software/oracle/app2/oradata/test/system01.dbf";
   set newname for datafile  2 to
 "/software/oracle/app2/oradata/test/undotbs01.dbf";
   set newname for datafile  3 to
 "/software/oracle/app2/oradata/test/sysaux01.dbf";
   set newname for datafile  4 to
 "/software/oracle/app2/oradata/test/users01.dbf";
   restore
   check readonly
   clone database
   ;
}
executing Memory Script

executing command: SET until clause

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 15-APR-11

channel d1: starting datafile backupset restore
channel d1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /software/oracle/app2/oradata/test/system01.dbf
restoring datafile 00002 to /software/oracle/app2/oradata/test/undotbs01.dbf
restoring datafile 00003 to /software/oracle/app2/oradata/test/sysaux01.dbf
restoring datafile 00004 to /software/oracle/app2/oradata/test/users01.dbf
channel d1: reading from backup piece /software/backup/ORATEST_dbfile_3283858622_20110414_2
channel d1: restored backup piece 1
piece handle=/software/backup/ORATEST_dbfile_3283858622_20110414_2 tag=TAG20110414T230617
channel d1: restore complete, elapsed time: 00:00:36
Finished restore at 15-APR-11
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "TEST" RESETLOGS ARCHIVELOG
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP  1 '/software/oracle/app2/oradata/test/redo01.log' SIZE 50 M ,
  GROUP  2 '/software/oracle/app2/oradata/test/redo02.log' SIZE 50 M ,
  GROUP  3 '/software/oracle/app2/oradata/test/redo03.log' SIZE 50 M
 DATAFILE
  '/software/oracle/app2/oradata/test/system01.dbf'
 CHARACTER SET AL32UTF8


contents of Memory Script.:
{
   switch clone datafile all;
}
executing Memory Script

datafile 2 switched to datafile copy
input datafile copy recid=1 stamp=748508360 filename=/software/oracle/app2/oradata/test/undotbs01.dbf
datafile 3 switched to datafile copy
input datafile copy recid=2 stamp=748508360 filename=/software/oracle/app2/oradata/test/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy recid=3 stamp=748508360 filename=/software/oracle/app2/oradata/test/users01.dbf

contents of Memory Script.:
{
   set until scn  483372;
   recover
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 15-APR-11

starting media recovery

archive log thread 1 sequence 4 is already on disk as file /u01/oracle/app/flash_recovery_area/ORATEST/archivelog/2011_04_15/o1_mf_1_4_6tgyvyw1_.arc
channel d1: starting archive log restore to default destination
channel d1: restoring archive log
archive log thread=1 sequence=3
channel d1: reading from backup piece /software/backup/ORATEST_arcfile_3283858622_20110414_4
channel d1: restored backup piece 1
piece handle=/software/backup/ORATEST_arcfile_3283858622_20110414_4 tag=TAG20110414T230731
channel d1: restore complete, elapsed time: 00:00:01
archive log filename=/software/oracle/app2/flash_recovery_area/TEST/archivelog/2011_04_15/o1_mf_1_3_6tgz2944_.arc thread=1 sequence=3
channel clone_default: deleting archive log(s)
archive log filename=/software/oracle/app2/flash_recovery_area/TEST/archivelog/2011_04_15/o1_mf_1_3_6tgz2944_.arc recid=1 stamp=748508361
archive log filename=/u01/oracle/app/flash_recovery_area/ORATEST/archivelog/2011_04_15/o1_mf_1_4_6tgyvyw1_.arc thread=1 sequence=4
media recovery complete, elapsed time: 00:00:07
Finished recover at 15-APR-11

contents of Memory Script.:
{
   shutdown clone;
   startup clone nomount ;
}
executing Memory Script

database dismounted
Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     167772160 bytes

Fixed Size                     1218316 bytes
Variable Size                 71305460 bytes
Database Buffers              92274688 bytes
Redo Buffers                   2973696 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "TEST" RESETLOGS ARCHIVELOG
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP  1 '/software/oracle/app2/oradata/test/redo01.log' SIZE 50 M ,
  GROUP  2 '/software/oracle/app2/oradata/test/redo02.log' SIZE 50 M ,
  GROUP  3 '/software/oracle/app2/oradata/test/redo03.log' SIZE 50 M
 DATAFILE
  '/software/oracle/app2/oradata/test/system01.dbf'
 CHARACTER SET AL32UTF8


contents of Memory Script.:
{
   set newname for tempfile  1 to
 "/software/oracle/app2/oradata/test/temp01.dbf";
   switch clone tempfile all;
   catalog clone datafilecopy  "/software/oracle/app2/oradata/test/undotbs01.dbf";
   catalog clone datafilecopy  "/software/oracle/app2/oradata/test/sysaux01.dbf";
   catalog clone datafilecopy  "/software/oracle/app2/oradata/test/users01.dbf";
   switch clone datafile all;
}
executing Memory Script

executing command: SET NEWNAME

renamed temporary file 1 to /software/oracle/app2/oradata/test/temp01.dbf in control file

cataloged datafile copy
datafile copy filename=/software/oracle/app2/oradata/test/undotbs01.dbf recid=1 stamp=748508640

cataloged datafile copy
datafile copy filename=/software/oracle/app2/oradata/test/sysaux01.dbf recid=2 stamp=748508641

cataloged datafile copy
datafile copy filename=/software/oracle/app2/oradata/test/users01.dbf recid=3 stamp=748508641

datafile 2 switched to datafile copy
input datafile copy recid=1 stamp=748508640 filename=/software/oracle/app2/oradata/test/undotbs01.dbf
datafile 3 switched to datafile copy
input datafile copy recid=2 stamp=748508641 filename=/software/oracle/app2/oradata/test/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy recid=3 stamp=748508641 filename=/software/oracle/app2/oradata/test/users01.dbf

contents of Memory Script.:
{
   Alter clone database open resetlogs;
}
executing Memory Script

database opened
Finished Duplicate Db at 15-APR-11

RMAN>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17012874/viewspace-693306/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-04-24

  • 博文量
    80
  • 访问量
    72864