克隆db_name相同的数据库

本文介绍如何在同一台主机上克隆相同db_name的Oracle数据库,并详细解释了修改控制文件信息、创建克隆数据库控制文件的过程。

我们在一台主机上可以克隆出两个db_name相同的数据库,而将两个数据库同时启动起来。

我们要做的是将原有的数据库文件复制一份,由于文件的位置改变了,重点是要修改控制文件里的信息。

首先,我们打开已经存在的数据库,将获得控制文件创建的脚本文件:

SQL> alter database backup controlfile to trace as 'ctlbak';

如果转储整个控制文件,使用

SQL> alter database backup controlfile to ‘ctlfile.bak’;

 

获得的控制文件的创建脚本在$ORACLE_HOME/dbs目录下找到,打开这个文件我们可以看到创建控制文件的SQL语句,这个脚本文件我们要在创建克隆数据库的控制文件时候使用。

关闭原有的数据库。

 

$ORACLE_HOME/dbs目录下创建克隆数据库的密码文件和参数文件。

bash-3.00$ orapwd file=orapwzxnm password=netnumen entries=5

bash-3.00$ cp spfileuep4x.ora spfilezxnm.ora

 

启动克隆数据库到nomount状态:

bash-3.00$ export ORACLE_SID=zxnm

bash-3.00$ sqlplus "/ as sysdba"

 

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 9 12:06:51 2009

 

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

 

Connected to an idle instance.

 

SQL> startup nomount;

ORACLE instance started.

 

Total System Global Area 2550136832 bytes

Fixed Size                  1980808 bytes

Variable Size             536872568 bytes

Database Buffers         1996488704 bytes

Redo Buffers               14794752 bytes

 

我们查看一下再参数文件里记录的控制文件和位置的信息,然后改成克隆数据库的控制文件的位置。

SQL> show parameter control_file

 

NAME                                 TYPE

------------------------------------ ----------------------

VALUE

------------------------------

control_file_record_keep_time        integer

7

control_files                        string

/export/home/oracle/oradata/ue

p4x/control01.ctl, /export/hom

e/oracle/oradata/uep4x/control

02.ctl, /export/home/oracle/or

adata/uep4x/control03.ctl

 

SQL> alter system set control_files='/export/home/oracle/oradata/zxnm/control01.ctl' scope=spfile;

 

System altered.

 

下面我们要修改克隆数据库的db_unique_name(在9i中是lock­_name_space)。

SQL> alter system set db_unique_name=zxnm scope=spfile;

 

System altered.

 

关闭数据库,重新打开数据库,再查看一下控制文件的信息。

SQL> show parameter control_file

 

NAME                                 TYPE

------------------------------------ ----------------------

VALUE

------------------------------

control_file_record_keep_time        integer

7

control_files                        string

/export/home/oracle/oradata/zx

nm/control01.ctl

 

我们看到,控制文件的位置已经更改过了。然后,我们根据刚才创建控制文件的脚本新建一个控制文件。

SQL> CREATE CONTROLFILE REUSE DATABASE "UEP4X" NORESETLOGS  NOARCHIVELOG    MAXLOGFILES 16   

MAXLOGMEMBERS 3   

MAXDATAFILES 100   

MAXINSTANCES 8   

MAXLOGHISTORY 292

LOGFILE 

GROUP 1 '/export/home/oracle/oradata/zxnm/redo01.log'  SIZE 50M, 

GROUP 2 '/export/home/oracle/oradata/zxnm/redo02.log'  SIZE 50M, 

GROUP 3 '/export/home/oracle/oradata/zxnm/redo03.log'  SIZE 50M

DATAFILE 

'/export/home/oracle/oradata/zxnm/system01.dbf',  '/export/home/oracle/oradata/zxnm/undotbs01.dbf',  '/export/home/oracle/oradata/zxnm/sysaux01.dbf',  '/export/home/oracle/oradata/zxnm/users01.dbf',

'/export/home/oracle/oradata/zxnm/example01.dbf',  '/export/home/oracle/oradata/zxnm/uep.dbf',  '/export/home/oracle/oradata/zxnm/UEP_CAF_FM.dbf',  '/export/home/oracle/oradata/zxnm/UEP_PM.dbf',

'/export/home/oracle/oradata/zxnm/n3common.dbf',  '/export/home/oracle/oradata/zxnm/IP_CM.dbf',  '/export/home/oracle/oradata/zxnm/IP_PM.dbf',  '/export/home/oracle/oradata/zxnm/IP_PM_INDEX.dbf'

CHARACTER SET ZHS16GBK;

 

Control file created.

我们可以看出,控制文件主要记录了日志文件和数据文件的信息。

 

然后就可以打开ORACLE_SIDzxnmuep4x的数据库了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值