RMAN实现数据库的复制:
测试环境:
Windows XP Oracle 版本 (不过忘记了怎么去查询数据的版本和运行平台的语句了)
Version: select version from v$instance;
开始设置:
1,备份主数据库
Run{
Delete noprompt copy;
Delete nopormpt backup;
Backup database format=’D:\backup\%d_%s.bak’;
Sql ‘alter system archive log current’ ;
}
2,创建实例
(1) oradim –new –sid dupdb intpwd oracle 创建oracle instance named dupdb with password oracle; 如果是linux平台则可以用以下命令实现 ORAPWD FILE=< FILENAME > PASSWORD =< PASSWORD > ENTRIES=
(2)连接到主数据库,建立文本参数文件,即pfile文件
Create pfile=’%oracle_home%\database\initdupdb.ora’ from spfile;
(3)编辑文本参数文件initdupdb.ora 必须修改如下参数,db_name,instance_name,service_names,control_files,*_dest的参数文件
*.audit_file_dest='E:\oracle\product\10.2.0/admin/romlong/adump'
*.background_dump_dest='E:\dupdb\bdump'
*.compatible='10.2.0.1.0'
*.control_files='E:\dupdb\control01.ctl'
*.core_dump_dest='E:\oracle\product\10.2.0/admin/romlong/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='dupdb'
*.instance_name='dupdb'
*.service_names='dupdb'
*.log_archive_dest_1='location=E:\dupdb\archive'
*.db_recovery_file_dest='E:\oracle\product\10.2.0/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=romlongXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=95420416
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=287309824
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='E:\dupdb\udump'
*.lock_name_space=CLONE
*.db_file_name_convert='E:\oracle\product\10.2.0\oradata\romlong\','E:\dupdb\'
*.log_file_name_convert='E:\oracle\product\10.2.0\oradata\romlong\','E:\dupdb\'
转变数据文件和日志文件的目录
(4)启动数据库 set oracle_sid=dumpd
Sqlplus sys/oracle as sysdba;
Startup pfile=’%oracle_home%\database\initdupdb.ora’ nomount;
3,配置监听,在启动rman的时候有可能会出现无法找到监听的错误 打开文件
Oracle_home/network/admin/listener.ora文件和 Oracle_home/network/admin/tnsname.ora
修改为;
#listener.ora NetworkConfiguration File: E:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = romlong)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
)
(SID_DESC =
(SID_NAME = rman)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
)
(SID_DESC =
(SID_NAME = dupdb)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DNA)(PORT = 1521))
)
)
# tnsnames.ora Network Configuration File: E:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ROMLONG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DNA)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = romlong)
)
)
RMAN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DNA)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rman)
)
)
DUPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DNA)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dupdb)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
类似的问题也可以用上述方法解决。
可以重新启动监听程序,lsnrctl reload
4,启动 rman开始复制
Rman target sys/lijing@romlong auxiliary sys/oracle@dupdb
进入rman
执行 duplicate target database to dupdb
……耐心的等待 ,出现任何错误提示,请查看
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10574250/viewspace-428148/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10574250/viewspace-428148/