在同一台数据库服务器上,我们可以启动多个具有相同db_name的数据库。
不过想同时打开具有相同db_name的数据库,还需要设置一个参数,db_unique_name(在ORACLE 10g中是db_unique_name,在9i中是lock_name_space)
我们现在从服务器上原有的数据库orcl 克隆出一个数据库HMX
1.将orcl文件夹的内容复制到HMX文件夹中
[oracle@localhost oradata]$ cp -R orcl HMX
[oracle@localhost oradata]$ ll -l
total 8
drwxr-x--- 2 oracle oinstall 4096 Mar 19 22:16 HMX
drwxr-x--- 2 oracle oinstall 4096 Mar 19 19:56 orcl
[oracle@localhost oradata]$ cd orcl
[oracle@localhost orcl]$ ll -l
total 1343464
-rw-r----- 1 oracle oinstall 7389184 Mar 19 21:19 control01.ctl
-rw-r----- 1 oracle oinstall 7389184 Mar 17 15:35 control01.ctl.bak
-rw-r----- 1 oracle oinstall 7389184 Mar 19 21:19 control02.ctl
-rw-r----- 1 oracle oinstall 7389184 Mar 19 21:19 control03.ctl
-rw-r----- 1 oracle oinstall 104865792 Mar 19 20:53 example01.dbf
-rw-r----- 1 oracle oinstall 52429312 Mar 19 20:53 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Mar 19 20:38 redo02.log
-rw-r----- 1 oracle oinstall 52429312 Mar 19 20:38 redo03.log
-rw-r----- 1 oracle oinstall 304095232 Mar 19 20:53 sysaux01.dbf
-rw-r----- 1 oracle oinstall 513810432 Mar 19 20:53 system01.dbf
-rw-r----- 1 oracle oinstall 20979712 Mar 17 14:08 temp01.dbf
-rw-r----- 1 oracle oinstall 157294592 Mar 19 20:53 undotbs01.dbf
-rw-r----- 1 oracle oinstall 106176512 Mar 19 20:53 users01.dbf
[oracle@localhost oradata]$ cd HMX
[oracle@localhost HMX]$ ll -l
total 1343460
-rw-r----- 1 oracle oinstall 7389184 Mar 19 22:15 control01.ctl
-rw-r----- 1 oracle oinstall 7389184 Mar 19 22:13 control01.ctl.bak
-rw-r----- 1 oracle oinstall 7389184 Mar 19 22:13 control02.ctl
-rw-r----- 1 oracle oinstall 7389184 Mar 19 22:13 control03.ctl
-rw-r----- 1 oracle oinstall 104865792 Mar 19 22:15 example01.dbf
-rw-r----- 1 oracle oinstall 52429312 Mar 19 22:14 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Mar 19 22:15 redo02.log
-rw-r----- 1 oracle oinstall 52429312 Mar 19 22:13 redo03.log
-rw-r----- 1 oracle oinstall 304095232 Mar 19 22:16 sysaux01.dbf
-rw-r----- 1 oracle oinstall 513810432 Mar 19 22:17 system01.dbf
-rw-r----- 1 oracle oinstall 20979712 Mar 19 22:15 temp01.dbf
-rw-r----- 1 oracle oinstall 157294592 Mar 19 22:13 undotbs01.dbf
-rw-r----- 1 oracle oinstall 106176512 Mar 19 22:14 users01.dbf
2.为HMX数据库创建参数文件,口令文件
[oracle@localhost dbs]$ ll *orcl*
-rw-r----- 1 oracle oinstall 992 Feb 29 16:03 initorcl.ora
-rw-r----- 1 oracle oinstall 2048 Mar 12 19:00 orapwdorcl
-rw-r----- 1 oracle oinstall 3584 Mar 19 21:17 spfileorcl.ora
复制orcl数据库的参数文件
[oracle@localhost dbs]$ cp spfileorcl.ora spfileHMX.ora
重建口令文件
[oracle@localhost dbs]$ orapwd file=orapwHMX password=123 entries=5 force=y;
[oracle@localhost dbs]$ ll *HMX*
-rw-r----- 1 oracle oinstall 2048 Mar 19 22:21 orapwHMX
-rw-r----- 1 oracle oinstall 3584 Mar 19 22:17 spfileHMX.ora
3.数据库到nomount状态,修改参数
[oracle@localhost udump]$ export ORACLE_SID=HMX
[oracle@localhost udump]$ sqlplus / as sysdba
SQL> startup nomount
SQL> alter system set control_files='/opt/app/oracle/oradata/HMX/control01.ctl';
alter system set control_files='/opt/app/oracle/oradata/HMX/control01.ctl'
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL> alter system set control_files='/opt/app/oracle/oradata/HMX/control01.ctl' scope=spfile;
System altered.
SQL> alter system set db_unique_name=HMX scope=spfile;
System altered.
关闭数据库
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
4.重新创建控制文件
SQL> startup nomount
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 92276304 bytes
Database Buffers 188743680 bytes
Redo Buffers 2973696 bytes
SQL>CREATE CONTROLFILE REUSE DATABASE "orcl" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
2 3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
GROUP 1 '/opt/app/oracle/oradata/HMX/redo01.log' SIZE 50M,
-- STANDBY LOGFILE
GROUP 2 '/opt/app/oracle/oradata/HMX/redo02.log' SIZE 50M,
GROUP 3 '/opt/app/oracle/oradata/HMX/redo03.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/opt/app/oracle/oradata/HMX/system01.dbf',
14 '/opt/app/oracle/oradata/HMX/undotbs01.dbf',
15 '/opt/app/oracle/oradata/HMX/sysaux01.dbf',
16 '/opt/app/oracle/oradata/HMX/users01.dbf',
17 '/opt/app/oracle/oradata/HMX/example01.dbf'
18 CHARACTER SET WE8ISO8859P1;
Control file created.
打开数据库HMX
SQL> alter database open;
Database altered.
好了,我们现在已经克隆好了一个数据库HMX
下面我们打开orcl数据库看看
[oracle@localhost udump]$ export ORACLE_SID=orcl
[oracle@localhost udump]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Mar 19 22:36:22 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> alter system set db_unique_name=orcl scope=spfile;
System altered.
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 79693392 bytes
Database Buffers 201326592 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
我们再同时打开HMX数据库
[oracle@localhost udump]$ export ORACLE_SID=HMX
[oracle@localhost udump]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Mar 19 22:38:11 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SP2-0158: unknown SET option "set"
SQL> startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 79693392 bytes
Database Buffers 201326592 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
我们现在在同一台数据库服务器上建立了两个db_name相同数据库