用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
liweiah的公告
文章分类
存档

原创  克隆db_name相同的数据库 收藏

我们在一台主机上可以克隆出两个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的数据库了。

发表于 @ 2009年07月09日 16:08:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:Solaris 10 关闭ftp、telnet、sendmail | 新一篇:Oracle数据库的访问

  • 发表评论
  • 评论内容:
  •  
Copyright © liweiah
Powered by CSDN Blog