oracle异机复制,通过RMAN 异机克隆数据库

平台准备:

OracleLinux  +  Oracle 11G

目标库:

ORACLE_HOME=/uoracle/app

ORACLE_BASE=/orabase

ORACLE_SID= orcl

IP : 192.168.0.45

辅助库:

ORACLE_HOME=/uoracle/app

ORACLE_BASE=/orabase

ORACLE_SID=orcl

IP : 192.168.0.46

操作步骤(异机和同机复制,步骤基本一样):

1:运行辅助实例的服务器需要先安装好相应的oracle客户端,且ORACLE_BASE 和ORACLE_HOME目录和目标库相同;

2:构建辅助数据库目录结构;

3:创建参数文件,复制过来,并进行相应修改;

4:创建辅助实例口令文件,orapwd

5:配置监听及tnsname文件

6:目标库进行备份,并拷贝到辅助实例服务其上,或同NFS挂载过去;

7:使用pfile启动辅助实例到nomount,并退出会话;

8:duplicate命令复制数据库;

9: 创建spfile

具体实现:

1:安装客户端

2:构建辅助数据库目录结构(根据参数文件中涉及到的目录来构建辅助库的目录结构)

[oracle@orclA ~]$ echo $ORACLE_BASE

/orabase

[oracle@orclA ~]$ cd /orabase

[oracle@orclA orabase]$ mkdir ./oradata/orcl -p

[oracle@orclA orabase]$mkdir ./fast_recovery_area/orcl -p # 重新构建控制文件,存放控制文件

[oracle@orclA orabase]$ pwd

/orabase

[oracle@orclA orabase]$ mkdir ./admin/orcl -p

[oracle@orclA orabase]$ cd ./admin/orcl/

[oracle@orclA orcl]$ mkdir {a,b,c,d,u}dump

[oracle@orclA orcl]$ mkdir pfile

3:创建参数文件,复制过来,并进行相应修改

3.1: 目标库上创建pfile,并拷贝到辅助库上 ?/dbs 目录下(必须是$ORACLE_HOME/dbs 目录下,否则识别不到)

SQL> create pfile='/tmp/initorcl.ora' from spfile;

SQL> scp  /tmp/initorcl.ora  192.168.0.46:/oracle/home/dbs

3.2: 对参数文件进行相应修改

由于这里是进行异机复制,目录结构及实例名都一样,所以没有进行修改

3.3: 使用pfile启动数据库到nomount 状态,进行测试,并创建spfile

SQL> startup pfile='/uoracle/app/dbs/initorcl.ora'>ORACLE instance started.

Total System Global Area 1.0055E+10 bytes

Fixed Size                  2237008 bytes

Variable Size            3154120112 bytes

Database Buffers         6878658560 bytes

Redo Buffers               19767296 bytes

Database mounted.

Database opened.

SQL> create spfile from pfile;

File created.

4:为辅助实例创建口令文件,密码与源库一致

[oracle@orclA bin]$ pwd

/uoracle/app/bin

[oracle@orclA bin]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=admin123;

[oracle@orclA bin]$

[oracle@orclA bin]$ ls /uoracle/app/dbs/orapworcl

/uoracle/app/dbs/orapworcl

5:配置监听及tnsname文件

源库上:

[root@bzdb ~]# cat /uoracle/app/network/admin/listener.ora

# listener.ora Network Configuration File: /uoracle/app/network/admin/listener.ora

# Generated by Oracle configuration tools.

orcl =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.45)(PORT = 1521))

)

)

ADR_BASE_LISTENER = /orabase

[root@bzdb ~]# cat /uoracle/app/network/admin/tnsnames.ora

# tnsnames.ora Network Configuration File: /uoracle/app/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

ORCL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.0.45)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

AUXORCL =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.46)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

辅助库上:

TARGETORCL =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.45)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)

ORCL =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.78)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)

6:目标库进行备份,并拷贝到辅助实例服务其上,或同NFS挂载过去;

RMAN> RUN {

2>  allocate channel c1 type disk;

3> allocate channel c2 type disk;

4> backup database format '/backup/orcl_%U_%T' skip inaccessible filesperset 5 tag orcl_bak;

5> sql 'alter system archive log current';

6> backup archivelog all delete input  format '/backup/arch_%U_%T'  skip inaccessible filesperset 5;

7> backup current controlfile format '/backup/ctl_%U_%T'  tag='ctl_BAK';

8> backup  spfile format '/backup/orcl_spfile_%U_%T' tag='spfile';

9> release channel c2;

10> release channel c1;

11> }

注: 因为这里使用的是nocatalog备份方式,备份信息会写入到控制文件中,所以,控制文件要单独备份

目标库上:

[root@bzdb ~]# cat /etc/exports

/backup  192.168.0.78(rw,async)

[root@bzdb ~]# /etc/init.d/nfs start

Starting NFS services: [  OK  ]

Starting NFS mountd: [  OK  ]

Stopping RPC idmapd: [  OK  ]

Starting RPC idmapd: [  OK  ]

Starting NFS daemon: [  OK  ]

辅助库上:

# 建立与目标库上相同的目录

mkdir   /backup

chown oracle.oinstall   /backup  -R

chmod 775   /backup

showmount -e 192.168.0.45

mount -t nfs 192.168.0.45:/backup   /bakup

7:使用pfile启动辅助实例到nomount,并退出会话;

SQL> startup nomount pfile='/uoracle/app/dbs/initorcl.ora'

ORACLE instance started.

Total System Global Area 1.0055E+10 bytes

Fixed Size                  2237008 bytes

Variable Size            3154120112 bytes

Database Buffers         6878658560 bytes

Redo Buffers               19767296 bytes

SQL> exit

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Oracle Label Security, OLAP, Data Mining,

Oracle Database Vault and Real Application Testing options

8:duplicate命令复制数据库;

目标库上:

[oracle@bzdb ~]$ rman target sys/admin123@orcl auxiliary sys/admin123@auxorcl;

Recovery Manager: Release 10.2.0.1.0 - Production on Sun Jul 18 20:41:19 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

connected to target database: ORCL (DBID=1248423599)

connected to auxiliary database: ORCL (not mounted)

RMAN> duplicate target database to ORCL nofilenamecheck

logfile

'/orabase/oradata/orcl/redo01.log' size 100M,

'/orabase/oradata/orcl/redo02.log' size 100M,

'/orabase/oradata/orcl/redo03.log' size 100M;

9:创建spfile,并重新启动

create spfile from pfile;

shutdown immeidate;

startup

验证数据库是否复制成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值