日期:2014-05-16 浏览次数:20593 次
运行Data Guard的条件 
1、 在主库和从库的所有机器上必须安装同一个版本的Oracle企业版。 
2、 主库必须运行在归档模式下。 
3、 主库和从库的操作系统必须一样(允许版本不同),从库可以使用与主库不同的目录结构。 
4、 主从库硬件系统的体系结构必须相同。比如:主库运行在64位的Sun Sparc系统上,如果从库是32位的Linux Intel系统就不允许。主从库硬件的配置可以不同,比如:CPU数量、内存大小、存储配置等。 
5、 主从库可以是单实例的数据库,也可以是多实例的RAC数据库。 
6、 每个主从库必须有它自己的控制文件。 
7、 如果把主从库放在了一个系统里,则必须调整初始化参数。 
8、 只要使用Data Guard就要保持主库是FORCE LOGGING模式,如果在主库上使用了no logging操作不生成日志,因此数据也不会传递到从库。 9、 管理主从库的用户必须具有SYSDBA权限。 
主库:win2003 server ora9i(9.2.0.1.0) 192.168.3.135主机名:data580 SID:PRIMARY 
从库:win2003 server ora9i(9.2.0.1.0) 192.168.3.136 主机名:data380 SID:STANDBY 
1、主库和从库的Oracle 安装的时候都选择相同的安装路径 E:/oracle/ora92 ;并且先不要安装数据库,即在安装过程中“数据库配置”一项下面选择“只安装软件”; 
2、在主库上使用DBCA(Database Configuration Assistant)建一个数据库,SID设为PRIMARY; 
3、
设置主库归档路径为e:/oracle/ora92/database/Archive : Sql>alter system set 
log_archive_dest_1='LOCATION=e:/oracle/ora92/database/Archive MANDATORY'
 scope=both; 
4、将主库实例、数据库关闭,然后启动实例,但不打开数据库,只启动到数据库挂载模式: Sql>shutdown immediate; Sql>startup mount; 
5、将主库设置成归档状态和自动归档模式: Sql>alter database archivelog; Sql>alter system set log_archive_start=true scope=spfile; 
6、在主库上面创建从库的控制文件standby.ctl : Sql>alter database create standby controlfile as 'e:/oracle/oradata/standby.ctl'; 
7、在主库上面创建从库的初始化参数文件standby.ora(将其拷贝回从库后转换成从库的 spfile): Sql>create pfile='e:/oracle/oradata/standby.ora' from spfile; 
8、查看主库的数据文件及其的位置: Sql>select name from v$datafile; 记下查询结果中的数据文件的位置。 
9、关闭实例: Sql>shutdown immediate; 
10、
将第6步中的standby.ctl、第7步中的standby.ora和第8步骤中的数据文件、还有E:/oracle/oradata
/PRIMARY路径下面的联机日志文件(REDO.LOG)、E:/oracle/ora92/database里面的口令文件
PWDPRIMARY.ora备份出来,拷贝到从库中;在从库中创建路径E:/oracle/oradata/PRIMARY 
,存放standby.ctl、数据文件、联机日志文件;创建路径E:/oracle/admin/PRIMARY 
,在里面创建空文件夹bdump、cdump、udump、create、pfile ;将standby.ora 
放到E盘根目录下面;将口令文件PWDPRIMARY.ora更名为PWDSTANDBY.ora 
,放到从库的E:/oracle/ora92/database下面。 
11、回到主库,启动主库实例和数据库: Sql>startup 
12、
转回到从库,手动创建服务OracleServiceSTANDBY: oradim -new -sid STANDBY -startmode 
manual 设置环境变量:在环境变量的“Administrator的用户变量”一栏里面新建一个值,变量名为ORACLE_SID 
,变量值为STANDBY(服务名)。 
13、创建从库监听器OracleOraHome92TNSListener:进入Net 
Configuration Assistant 
,使用“监听程序配置”来创建从库的监听器,同时会在E:/oracle/ora92/network/admin下面生成listener.ora文
件; 
14、配置本地NET服务名:进入Net Configuration Assistant ,使用“本地NET服务名配置”来配置,同时会在E:/oracle/ora92/network/admin下面生成tnsnames.ora文件; 
15、
配置主从库的tnsnames.ora ,都将里面的内容设置成如下内容: STANDBY = (DESCRIPTION = 
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.136)(PORT =
 1521)) ) (CONNECT_DATA = (SERVICE_NAME = PRIMARY) ) ) PRIMARY = 
(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 
192.168.3.135)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = PRIMARY) )
 ) 
16、修改E根目录下面的初始化参数文件standby.ora ,里面的全部内容如下(删除了原来的control_files参数,将instance_name改成了STANDBY,最后面的7行粗体部分是新添加的内容): 
*.aq_tm_processes=1 
*.background_dump_dest='e:/oracle/admin/PRIMARY/bdump' 
*.compatible='9.2.0.0.0' 
*.core_dump_dest='e:/oracle/admin/PRIMARY/cdump' 
*.db_block_size=8192 
*.db_cache_size=728760320 
*.db_domain='' 
*.db_file_multiblock_read_count=16 
*.db_name='PRIMARY' 
*.dispatchers='(PROTOCOL=TCP) (SERVICE=PRIMARYXDB)','(PROTOCOL=TCP)' 
*.fast_start_mttr_target=300 
*.hash_join_enabled=TRUE 
*.instance_name='STANDBY' 
*.java_pool_size=20971520 
*.job_queue_processes=10 
*.large_pool_size=143654912 
*.log_archive_dest_1='LOCATION=e:/oracle/ora92/database/Archive MANDATORY' 
*.log_archive_start=TRUE 
*.open_cursors=300 
*.pga_aggregate_target=324009984 
*.processes=150 
*.query_rewrite_enabled='FALSE' 
*.remote_login_passwordfile='EXCLUSIVE' 
*.shared_pool_size=242221056 
*.sort_area_size=52428800 
*.star_transformation_enabled='FALSE' 
*.timed_statistics=TRUE 
*.undo_management='AUTO' 
*.undo_retention=10800 
*.undo_tablespace='UNDOTBS1' 
*.user_dump_dest='e:/oracle/admin/P