在同一臺數據庫服務器上,我們可以啓動多個具有相同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相同數據庫