【使用rman複製資料庫10g--clone-1】,rman10g--clone-1

來源:互聯網
上載者:User

【使用rman複製資料庫10g--clone-1】,rman10g--clone-1

目標資料庫:jadl0g

複製的結果資料庫:d10g

注意:****目標庫與clone結果文件庫在同一台機子上****

1.vi /u01/oracle/10g/network/admin/tnsnames.ora

D10G =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle.db.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = d10g)
    )
    (failover = on)
  )

2.vi /u01/oracle/10g/network/admin/listener.ora

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME=jadl10g)
      (SID_NAME = jadl10g)
      (ORACLE_HOME = /u01/oracle/10g)
    )
   (SID_DESC =
      (GLOBAL_DBNAME=d10g)
      (SID_NAME = d10g)
      (ORACLE_HOME = /u01/oracle/10g)
    )
  )

3.重啟監聽

lsnrctl stop
lsnrctl start
tnsping d10g
tnsping jadl10g

4.建立密碼檔案和參數檔案

[oracle@oracle ~]$ cd /u01/oracle/10g/dbs/
[oracle@oracle dbs]$ orapwd file=orapwd10g password=oracle
[oracle@oracle dbs]$ strings spfilejadl10g.ora > initd10g.ora
[oracle@oracle dbs]$ vi initd10g.ora
:1,$ s/jadl10g/d10g/g---執行該命令

[oracle@oracle dbs]$ grep u01 initd10g.ora
*.audit_file_dest='/u01/oracle/admin/d10g/adump'
*.background_dump_dest='/u01/oracle/admin/d10g/bdump'
*.control_files='/u01/oracle/oradata/d10g/control01.ctl','/u01/oracle/flash_recovery_area/d10g/control02.ctl'#Restore Controlfile
*.core_dump_dest='/u01/oracle/admin/d10g/cdump'
*.db_recovery_file_dest='/u01/oracle/flash_recovery_area'
*.user_dump_dest='/u01/oracle/admin/d10g/udump'

5.建立相應的檔案
[oracle@oracle dbs]$ mkdir /u01/oracle/admin/d10g/adump -p
[oracle@oracle dbs]$ mkdir /u01/oracle/admin/d10g/bdump -p
[oracle@oracle dbs]$ mkdir /u01/oracle/admin/d10g/cdump -p
[oracle@oracle dbs]$ mkdir /u01/oracle/admin/d10g/udump -p
[oracle@oracle dbs]$ mkdir /u01/oracle/oradata/d10g
[oracle@oracle dbs]$ export ORACLE_SID=d10g
[oracle@oracle dbs]$ rman target /
Recovery Manager: Release 10.2.0.5.0 - Production on Fri Nov 7 12:59:20 2014
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
connected to target database (not started)
RMAN> startup nomount
Oracle instance started
Total System Global Area     599785472 bytes
Fixed Size                     2098112 bytes
Variable Size                171969600 bytes
Database Buffers             419430400 bytes
Redo Buffers                   6287360 bytes
RMAN> exit
Recovery Manager complete.
[oracle@oracle dbs]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Fri Nov 7 13:00:15 2014
Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining Scoring Engine
and Real Application Testing options

SQL> create spfile from pfile;
File created.

SQL> shutdown
ORA-01507: database not mounted
ORACLE instance shut down.


SQL> startup nomount
ORACLE instance started.
Total System Global Area  599785472 bytes
Fixed Size                  2098112 bytes
Variable Size             171969600 bytes
Database Buffers          419430400 bytes
Redo Buffers                6287360 bytes
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining Scoring Engine
and Real Application Testing options

****************************
[oracle@oracle dbs]$ rman target sys/oracle@jadl10g auxiliary sys/oracle@d10g
Recovery Manager: Release 10.2.0.5.0 - Production on Fri Nov 7 13:26:11 2014
Copyright (c) 1982, 2007, Oracle.  All rights reserved.


RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04005: error from target database:
ORA-01031: insufficient privileges
這個錯誤是由於我的目標資料庫沒有密碼檔案造成的。
解決方案就是建立密碼檔案
[oracle@oracle dbs]$ orapwd file=orapwjadl10g password=oracle
****************************
[oracle@oracle dbs]$ rman target sys/oracle@jadl10g auxiliary sys/oracle@d10g
Recovery Manager: Release 10.2.0.5.0 - Production on Fri Nov 7 13:34:12 2014
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
connected to target database: JADL10G (DBID=2011530396)
connected to auxiliary database: D10G (not mounted)
執行如下命令(注意必須是遠程和本地的順序):
RMAN> duplicate target database to "D10G" nofilenamecheck
2> db_file_name_convert('/u01/oracle/oradata/jadl10g/','/u01/oracle/oradata/d10g/')
3> logfile '/u01/oracle/oradata/d10g/redo01.log' size 10m,
4> '/u01/oracle/oradata/d10g/redo02.log' size 10m;

Starting Duplicate Db at 07-NOV-14
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: sid=156 devtype=DISK

contents of Memory Script:
{
   set until scn  556591;
   set newname for datafile  1 to
 "/u01/oracle/oradata/d10g/system01.dbf";
   set newname for datafile  2 to
 "/u01/oracle/oradata/d10g/undotbs01.dbf";
   set newname for datafile  3 to
 "/u01/oracle/oradata/d10g/sysaux01.dbf";
   set newname for datafile  4 to
 "/u01/oracle/oradata/d10g/users01.dbf";
   set newname for datafile  5 to
 "/u01/oracle/oradata/d10g/example01.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
executing command: SET NEWNAME

Starting restore at 07-NOV-14
using channel ORA_AUX_DISK_1

skipping datafile 1; already restored to file /u01/oracle/oradata/d10g/system01.dbf
skipping datafile 2; already restored to file /u01/oracle/oradata/d10g/undotbs01.dbf
skipping datafile 3; already restored to file /u01/oracle/oradata/d10g/sysaux01.dbf
skipping datafile 4; already restored to file /u01/oracle/oradata/d10g/users01.dbf
skipping datafile 5; already restored to file /u01/oracle/oradata/d10g/example01.dbf
restore not done; all files readonly, offline, or already restored
Finished restore at 07-NOV-14
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "D10G" RESETLOGS ARCHIVELOG
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP  1 '/u01/oracle/oradata/d10g/redo01.log' SIZE 10 M ,
  GROUP  2 '/u01/oracle/oradata/d10g/redo02.log' SIZE 10 M
 DATAFILE
  '/u01/oracle/oradata/d10g/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=863013896 filename=/u01/oracle/oradata/d10g/undotbs01.dbf
datafile 3 switched to datafile copy
input datafile copy recid=2 stamp=863013896 filename=/u01/oracle/oradata/d10g/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy recid=3 stamp=863013896 filename=/u01/oracle/oradata/d10g/users01.dbf
datafile 5 switched to datafile copy
input datafile copy recid=4 stamp=863013896 filename=/u01/oracle/oradata/d10g/example01.dbf

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

executing command: SET until clause

Starting recover at 07-NOV-14
using channel ORA_AUX_DISK_1

starting media recovery

archive log thread 1 sequence 1 is already on disk as file /u01/oracle/flash_recovery_area/JADL10G/archivelog/2014_11_07/o1_mf_1_1_b5qkpgh1_.arc
archive log thread 1 sequence 2 is already on disk as file /u01/oracle/flash_recovery_area/JADL10G/archivelog/2014_11_07/o1_mf_1_2_b5qkpk0o_.arc
archive log thread 1 sequence 1 is already on disk as file /u01/oracle/flash_recovery_area/JADL10G/archivelog/2014_11_07/o1_mf_1_1_b5rqvjwq_.arc
archive log thread 1 sequence 2 is already on disk as file /u01/oracle/flash_recovery_area/JADL10G/archivelog/2014_11_07/o1_mf_1_2_b5rqvmxf_.arc
archive log filename=/u01/oracle/flash_recovery_area/JADL10G/archivelog/2014_11_07/o1_mf_1_1_b5qkpgh1_.arc thread=1 sequence=1
archive log filename=/u01/oracle/flash_recovery_area/JADL10G/archivelog/2014_11_07/o1_mf_1_2_b5qkpk0o_.arc thread=1 sequence=2
media recovery complete, elapsed time: 00:00:23
Finished recover at 07-NOV-14

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     599785472 bytes

Fixed Size                     2098112 bytes
Variable Size                171969600 bytes
Database Buffers             419430400 bytes
Redo Buffers                   6287360 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "D10G" RESETLOGS ARCHIVELOG
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP  1 '/u01/oracle/oradata/d10g/redo01.log' SIZE 10 M ,
  GROUP  2 '/u01/oracle/oradata/d10g/redo02.log' SIZE 10 M
 DATAFILE
  '/u01/oracle/oradata/d10g/system01.dbf'
 CHARACTER SET AL32UTF8

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

executing command: SET NEWNAME

renamed temporary file 1 to /u01/oracle/oradata/d10g/temp01.dbf in control file

cataloged datafile copy
datafile copy filename=/u01/oracle/oradata/d10g/undotbs01.dbf recid=1 stamp=863013929

cataloged datafile copy
datafile copy filename=/u01/oracle/oradata/d10g/sysaux01.dbf recid=2 stamp=863013929

cataloged datafile copy
datafile copy filename=/u01/oracle/oradata/d10g/users01.dbf recid=3 stamp=863013929

cataloged datafile copy
datafile copy filename=/u01/oracle/oradata/d10g/example01.dbf recid=4 stamp=863013929

datafile 2 switched to datafile copy
input datafile copy recid=1 stamp=863013929 filename=/u01/oracle/oradata/d10g/undotbs01.dbf
datafile 3 switched to datafile copy
input datafile copy recid=2 stamp=863013929 filename=/u01/oracle/oradata/d10g/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy recid=3 stamp=863013929 filename=/u01/oracle/oradata/d10g/users01.dbf
datafile 5 switched to datafile copy
input datafile copy recid=4 stamp=863013929 filename=/u01/oracle/oradata/d10g/example01.dbf

contents of Memory Script:
{
   Alter clone database open resetlogs;
}
executing Memory Script
database opened
Finished Duplicate Db at 07-NOV-14
RMAN> exit
Recovery Manager complete.
驗證是否clone成功:
[oracle@oracle dbs]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Fri Nov 7 14:21:20 2014
Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining Scoring Engine
and Real Application Testing options

SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
d10g


1.密碼檔案問題
2.網路問題
3.參數問題
4.rman語句 db_file_name_convert 在同一個伺服器設定文法有問題
5.注意必須要有備份,遠端話需要copy備份到目標庫

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.