【使用rman复制数据库10g--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.创建密码文件和参数文件

[[email protected] ~]$ cd /u01/oracle/10g/dbs/

[[email protected] dbs]$ orapwd file=orapwd10g password=oracle

[[email protected] dbs]$ strings spfilejadl10g.ora > initd10g.ora

[[email protected] dbs]$ vi initd10g.ora

:1,$ s/jadl10g/d10g/g---执行该命令

[[email protected] 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.创建相应的文件

[[email protected] dbs]$ mkdir /u01/oracle/admin/d10g/adump -p

[[email protected] dbs]$ mkdir /u01/oracle/admin/d10g/bdump -p

[[email protected]e dbs]$ mkdir /u01/oracle/admin/d10g/cdump -p

[[email protected] dbs]$ mkdir /u01/oracle/admin/d10g/udump -p

[[email protected] dbs]$ mkdir /u01/oracle/oradata/d10g

[[email protected] dbs]$ export ORACLE_SID=d10g

[[email protected] 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.

[[email protected] 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

****************************

[[email protected] dbs]$ rman target sys/[email protected] auxiliary sys/[email protected]

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

这个错误是由于我的目标数据库没有密码文件造成的。

解决方法就是创建密码文件

[[email protected] dbs]$ orapwd file=orapwjadl10g password=oracle

****************************

[[email protected] dbs]$ rman target sys/[email protected] auxiliary sys/[email protected]

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成功:

[[email protected] 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备份到目标库

时间: 2024-08-02 09:59:30

【使用rman复制数据库10g--clone-1】的相关文章

Oracle 使用 RMAN 复制数据库

1.使用 RMAN 创建数据库副本 使用 RMAN 的 DUPLICATE 命令可根据目标数据库备份创建数据库副本. 创建数据库副本: 1.创建辅助实例的 Oracle 口令文件. 2. 建立到辅助实例的 Oracle Net 连接. 3. 创建辅助实例的初始化参数文件. 4.在 NOMOUNT 模式下启动辅助实例. 5. 装载或打开目标数据库. 6.确保备份和归档重做日志文件可用. 7.根据需要分配辅助通道. 8.执行 DUPLICATE 命令. 创建辅助实例的初始化参数文件 : 请按如下方式

Oracle11gR2使用RMAN duplicate复制数据库——Backup-based database duplicate

本实例测试ORACLE 11g使用rman复制数据库.11g的RMAN duplicate 可以通过Active database duplicate和Backup-based duplicate两种方法实现.这里的测试使用的是Backup-based duplicate. 应用场景.基于Active database duplicate参考http://hbxztc.blog.51cto.com/1587495/1872754 1.旧库或网络不可用,但是有备份 实验环境: target db:

[转]Oracle DB 复制数据库

? 列出创建副本数据库的目的 ? 选择用于复制数据库的方法 ? 使用RMAN 复制数据库 ? 使用RMAN 备份复制数据库 ? 基于正在运行的实例复制数据库 使用副本数据库 ? 使用副本数据库可执行以下任务: – 测试备份和恢复过程 – 测试升级到新版本的Oracle数据库– 测试应用程序的变化对数据库性能的影响 – 通过创建导出文件并将对象导入生产数据库来恢复对象 ? 创建副本数据库: – 使用RMAN 的DUPLICATE命令 – 在同一主机上或在不同的主机上 – 包含与源相同的内容或源的子

ORACLE复制数据库【weber出品】

一.概述 在公司中,我们会经常面临着一种情况.我们制定了对数据库的操作方案后,还不可以在真正的数据库上执行,需要在备用数据库进行测试,这个时候就需要备用数据上的数据和真正数据库的数据是一模一样的.我们这里说的数据库不是指RAID1这样的镜像备份.而是指克隆这个数据库然后将数据放到另一个数据库中而已.在备份数据库中我们完成对方案的执行确保万无一失后即可在真机上部署. 二.分类 目前用的比较多的复制数据库的方法有: 1.手工复制数据库 2.RMAN复制数据库 三.环境 VMware:8.0 Linu

Oracle11gR2使用RMAN duplicate复制数据库——active database duplicate

11gR2的RMAN duplicate 个人感觉比10g的先进了很多,10G需要在rman备份的基础上进行复制,使用 RMAN duplicate 创建一个数据完全相同但DBID不同的数据库.而11g的RMAN duplicate 可以通过Active database duplicate和Backup-based duplicate两种方法实现.这里的测试使用的是Active database duplicate,因为Active database duplicate 功能强大,不需要先把目

Oracle 11gR2 使用RMAN Duplicate复制数据库

Oracle 11gR2 使用RMAN Duplicate复制数据库  作者:吴伟龙 PrudentWoo QQ:286507175    前言:     上周刚做完一个项目,用户要求RAC的数据库能够自动备份到另外一个单节点上,单节点能够正常拿起来就能用.当时跟他们讨论的是用ADG来做,但通过描述后,用户觉得如果要人工干预的话太麻烦,它不想做任何的人工干预,实现数据自动到这台单机上来,那只是一台备用的数据库,没事的时候可以登录上去看看历史的数据情况. 这个时候我提出了11g的RMAN Dupl

Oracle 11gR2使用RMAN duplicate复制数据库

11g的RMAN duplicate 个人感觉比10g的先进了很多,10g需在rman备份的基础上进行复制,使用RMAN duplicate创建一个数据完全相同但DBID不同的数据库.而11g的RMAN duplicate 可通过Active database duplicate和Backup-based duplicate两种方法实现.Active database duplicate方式不需要先把目标数据库进行rman备份,只要目标数据库处于归档模式下即可直接通过网络对数据库进行copy,且

11g 使用rman duplicate复制数据库,创建辅助实例

一,创建所需目录 1)创建审计文件目录 [email protected] /dsg/oracle11$ cd $ORACLE_BASE/admin [email protected] /u01/app/oracle/admin$ mkdir -p PROD1/adump 2)创建数据文件目录 mkdir -p /dsg/oracle11/PROD1 二,创建参数文件和密码文件 这里,复制主库的参数文件和密码文件,参数文件稍作修改 [email protected] /dsg$ export O

使用rman中的duplicate复制数据库

目标库和复制库环境: OS: Linux Red Hat AS 4 DB Version: 10.2.0.1 1.目标库和复制库信息 Rman 中的目标库(target database)指的是被复制的库,复制库(duplicate database)是指复制后生成的新库.这里为了测试方便,复制库和目标库的目录结构设置相同. 目标库: IP:192.168.30.37 SID:oracl 复制库: IP:192.168.30.43 SID:oraclbak 2.在复制库上的的操作步骤 执行以下操