一、实验环境:
1. 虚拟机:VMware Server Console 1.0.7 build-108231
2. 数据库:oracle10g R2
3. 操作系统:windows2003Enterprise32bit
4. 数据库环境:主数据库—ORCL、复制数据库----TEST
二、创建并启动辅助(复制)数据库实例
2.1创建口令文件
在cmd下输入创建密码文件的命令如下:
C:\Documents and Settings\Administrator>orapwd file=D:\oracle\product\10.2.0\db_
1\database\PWDtest.ora password=licheng entries=30;
C:\Documents and Settings\Administrator>
2.2创建辅助数据库实例
C:\Documents and Settings\Administrator>oradim -new -sid test
实例已创建。
2.3配置监听程序
为我们的两个数据库配置好监听程序,编辑
D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora:
# listener.ora Network Configuration File: d:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
(SID_NAME = orcl)
)
(SID_DESC =
(GLOBAL_DBNAME = test)
(ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
(SID_NAME = test)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = data680)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora:
# tnsnames.ora Network Configuration File: d:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.135)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.135)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test)
)
)
配置完以后使用lsnrctl stop:lsnrctl start来重新启动监听程序。
2.4创建辅助(复制)数据库的相关目录
创建告警日志目录,创建数据文件目录:
D:\>md D:\oracle\product\10.2.0\admin\test
D:\>cd D:\oracle\product\10.2.0\admin\test
D:\oracle\product\10.2.0\admin\test>md adump bdump cdump dpdump pfile udump
D:\oracle\product\10.2.0\admin\test>md D:\oracle\product\10.2.0\oradata\test
2.5创建辅助(复制)数据库的参数文件
创建一个文件形式的参数文件,命令如下:
C:\Documents and Settings\Administrator>set oracle_sid=orcl
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 11月 2 16:17:10 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
已连接。
SQL> create pfile='D:\test.ora' from spfile;
需要修改的参数如下:
Adump、bdump、cdump、udump、ddump、db_name和控制文件路径。
还需要添加两个参数:
db_file_name_convert=(¨c:\oracle\product\10.2.0\oradata\orcl¨,¨c:\oracle\product\10.2.0\oradata\test2¨)
log_file_name_convert=(¨c:\oracle\product\10.2.0\oradata\orcl¨,¨c:\oracle\product\10.2.0\oradata\test2¨)
解释:上面两个参数括号里面的第一个参数代表原数据库的数据目录,第二个参数代表复制数据库的数据目录(即复制的目标地址)。
注意:一定不要去修改db_block_size的大小。
修改test.ora后的内容为:
test.__db_cache_size=83886080
test.__java_pool_size=4194304
test.__large_pool_size=4194304
test.__shared_pool_size=71303168
test.__streams_pool_size=0
*.audit_file_dest='d:\oracle\product\10.2.0/admin/test/adump'
*.background_dump_dest='d:\oracle\product\10.2.0/admin/test/bdump'
*.compatible='10.2.0.1.0'
*.control_files='d:\oracle\product\10.2.0/oradata/test/control01.ctl','d:\oracle\product\10.2.0/oradata/test/control02.ctl','d:\oracle\product\10.2.0/oradata/test/control03.ctl'
*.core_dump_dest='d:\oracle\product\10.2.0/admin/test/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='test'
*.db_recovery_file_dest='d:\oracle\product\10.2.0/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='d:\oracle\product\10.2.0/admin/test/udump'
*.db_file_name_convert=('D:\oracle\product\10.2.0\oradata\orcl','D:\oracle\product\10.2.0\oradata\test')
*.log_file_name_convert=('D:\oracle\product\10.2.0\oradata\orcl','D:\oracle\product\10.2.0\oradata\test')
完成以上步骤后我们可以开始创建我们真正想要的参数文件:
SQL>create spfile='d:\oracle\product\10.2.0\db_1\database\spfiletest.ora' from pfile='d:\test.ora';
2.6启动辅助实例
打开CMD窗口:启动辅助实例到nomount状态下。
C:\Documents and Settings\Administrator>set oracle_sid=test
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 11月 2 16:28:20 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
已连接到空闲例程。
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 79693156 bytes
Database Buffers 83886080 bytes
Redo Buffers 2945024 bytes
SQL>
三、复制数据库
3.1开启原数据库到归档模式
注意:如果你不打开归档模式等下在复制的时候会提示找不到相应的数据文件。
C:\Documents and Settings\Administrator>set oracle_sid=orcl
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 11月 2 16:32:11 200
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
已连接。
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 1
当前日志序列 3
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 79693156 bytes
Database Buffers 83886080 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL>
3.2使用RMAN完全备份原数据库
全库备份(包括数据库,控制文件,归档日志)
C:\Documents and Settings\Administrator>set oracle_sid=orcl
C:\Documents and Settings\Administrator>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期一 11月 2 16:36:15 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1229663348)
RMAN> run {
2> backup full database format 'd:\rmanbak\full_%U.bak';
3> backup archivelog all format 'd:\rmanback\arc_%U.bak' ;
4> copy current controlfile to 'd:\rmanbak\control_bak.ctl';
5> }
我们可以使用RMAN>list backup;来查看我们的备份详细信息。
3.3复制数据库到辅助数据库上
打开CMD输入如下命令:
Set oracle_sid=orcl -----其实这一步也可以不做,因为系统默认的sid就是我们的第一个数据库。当然你也可以去注册表里面修改它。
C:\Documents and Settings\Administrator>set oracle_sid=orcl
C:\Documents and Settings\Administrator>rman target / auxiliarysys/licheng@test
恢复管理器: Release 10.2.0.1.0 - Production on 星期一 11月 2 16:40:03 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1229663348)
已连接到辅助数据库: TEST (未装载)
RMAN>Duplicate target database to "test";-------这里的复制目标数据库一定要用双引号。
3.4启动辅助(复制)数据库
C:\Documents and Settings\Administrator>set oracle_sid=test
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 11月 2 16:44:49 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
已连接。
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
test OPEN
SQL>
1. 虚拟机:VMware Server Console 1.0.7 build-108231
2. 数据库:oracle10g R2
3. 操作系统:windows2003Enterprise32bit
4. 数据库环境:主数据库—ORCL、复制数据库----TEST
二、创建并启动辅助(复制)数据库实例
2.1创建口令文件
在cmd下输入创建密码文件的命令如下:
C:\Documents and Settings\Administrator>orapwd file=D:\oracle\product\10.2.0\db_
1\database\PWDtest.ora password=licheng entries=30;
C:\Documents and Settings\Administrator>
2.2创建辅助数据库实例
C:\Documents and Settings\Administrator>oradim -new -sid test
实例已创建。
2.3配置监听程序
为我们的两个数据库配置好监听程序,编辑
D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora:
# listener.ora Network Configuration File: d:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
(SID_NAME = orcl)
)
(SID_DESC =
(GLOBAL_DBNAME = test)
(ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
(SID_NAME = test)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = data680)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora:
# tnsnames.ora Network Configuration File: d:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.135)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.135)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test)
)
)
配置完以后使用lsnrctl stop:lsnrctl start来重新启动监听程序。
2.4创建辅助(复制)数据库的相关目录
创建告警日志目录,创建数据文件目录:
D:\>md D:\oracle\product\10.2.0\admin\test
D:\>cd D:\oracle\product\10.2.0\admin\test
D:\oracle\product\10.2.0\admin\test>md adump bdump cdump dpdump pfile udump
D:\oracle\product\10.2.0\admin\test>md D:\oracle\product\10.2.0\oradata\test
2.5创建辅助(复制)数据库的参数文件
创建一个文件形式的参数文件,命令如下:
C:\Documents and Settings\Administrator>set oracle_sid=orcl
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 11月 2 16:17:10 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
已连接。
SQL> create pfile='D:\test.ora' from spfile;
需要修改的参数如下:
Adump、bdump、cdump、udump、ddump、db_name和控制文件路径。
还需要添加两个参数:
db_file_name_convert=(¨c:\oracle\product\10.2.0\oradata\orcl¨,¨c:\oracle\product\10.2.0\oradata\test2¨)
log_file_name_convert=(¨c:\oracle\product\10.2.0\oradata\orcl¨,¨c:\oracle\product\10.2.0\oradata\test2¨)
解释:上面两个参数括号里面的第一个参数代表原数据库的数据目录,第二个参数代表复制数据库的数据目录(即复制的目标地址)。
注意:一定不要去修改db_block_size的大小。
修改test.ora后的内容为:
test.__db_cache_size=83886080
test.__java_pool_size=4194304
test.__large_pool_size=4194304
test.__shared_pool_size=71303168
test.__streams_pool_size=0
*.audit_file_dest='d:\oracle\product\10.2.0/admin/test/adump'
*.background_dump_dest='d:\oracle\product\10.2.0/admin/test/bdump'
*.compatible='10.2.0.1.0'
*.control_files='d:\oracle\product\10.2.0/oradata/test/control01.ctl','d:\oracle\product\10.2.0/oradata/test/control02.ctl','d:\oracle\product\10.2.0/oradata/test/control03.ctl'
*.core_dump_dest='d:\oracle\product\10.2.0/admin/test/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='test'
*.db_recovery_file_dest='d:\oracle\product\10.2.0/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='d:\oracle\product\10.2.0/admin/test/udump'
*.db_file_name_convert=('D:\oracle\product\10.2.0\oradata\orcl','D:\oracle\product\10.2.0\oradata\test')
*.log_file_name_convert=('D:\oracle\product\10.2.0\oradata\orcl','D:\oracle\product\10.2.0\oradata\test')
完成以上步骤后我们可以开始创建我们真正想要的参数文件:
SQL>create spfile='d:\oracle\product\10.2.0\db_1\database\spfiletest.ora' from pfile='d:\test.ora';
2.6启动辅助实例
打开CMD窗口:启动辅助实例到nomount状态下。
C:\Documents and Settings\Administrator>set oracle_sid=test
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 11月 2 16:28:20 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
已连接到空闲例程。
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 79693156 bytes
Database Buffers 83886080 bytes
Redo Buffers 2945024 bytes
SQL>
三、复制数据库
3.1开启原数据库到归档模式
注意:如果你不打开归档模式等下在复制的时候会提示找不到相应的数据文件。
C:\Documents and Settings\Administrator>set oracle_sid=orcl
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 11月 2 16:32:11 200
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
已连接。
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 1
当前日志序列 3
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 79693156 bytes
Database Buffers 83886080 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL>
3.2使用RMAN完全备份原数据库
全库备份(包括数据库,控制文件,归档日志)
C:\Documents and Settings\Administrator>set oracle_sid=orcl
C:\Documents and Settings\Administrator>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期一 11月 2 16:36:15 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1229663348)
RMAN> run {
2> backup full database format 'd:\rmanbak\full_%U.bak';
3> backup archivelog all format 'd:\rmanback\arc_%U.bak' ;
4> copy current controlfile to 'd:\rmanbak\control_bak.ctl';
5> }
我们可以使用RMAN>list backup;来查看我们的备份详细信息。
3.3复制数据库到辅助数据库上
打开CMD输入如下命令:
Set oracle_sid=orcl -----其实这一步也可以不做,因为系统默认的sid就是我们的第一个数据库。当然你也可以去注册表里面修改它。
C:\Documents and Settings\Administrator>set oracle_sid=orcl
C:\Documents and Settings\Administrator>rman target / auxiliarysys/licheng@test
恢复管理器: Release 10.2.0.1.0 - Production on 星期一 11月 2 16:40:03 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1229663348)
已连接到辅助数据库: TEST (未装载)
RMAN>Duplicate target database to "test";-------这里的复制目标数据库一定要用双引号。
3.4启动辅助(复制)数据库
C:\Documents and Settings\Administrator>set oracle_sid=test
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 11月 2 16:44:49 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
已连接。
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
test OPEN
SQL>