oracle dataguard

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:
运行 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\PRIMARY\udump' 
*.standby_file_management=AUTO 
*.remote_archive_enable=TRUE 
*.lock_name_space='standby' 
*.fal_server='primary' 
*.fal_client='standby' 
*.standby_archive_dest='e:\oracle\ora92\database\Archive' 
*.control_files='e:\oracle\oradata\primary\STANDBY.CTL' 
17
、进入 sqlplus standby.ora 创建成从库的 spfile   Sql>create spfile from pfile='e:\standby.ora'; 
18
、启动从库的实例,并且将从库设置成 standby 模式:  Sql>startup nomount; Sql>alter database mount standby database; 
19
、在从库启动日志应用服务:  Sql>alter database recover managed standby database disconnect from session; 
20
、转到主库,启动到物理从库的归档:  Sql>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=PRIMARY' SCOPE=BOTH; Sql>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH; 
21
、校验 Data Guard 的运转:  
主库,归档当前日志:  SQL> ALTER SYSTEM ARCHIVE LOG CURRENT; 
从库,校验归档日志是否正常接收:  SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; 
从库,查看新的归档日志是否正常用于恢复:  
SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; 
SEQUENCE# APP --------- --- 
8 YES 
9 YES 
10 YES 
11 YES 
如果都是像以上那样的内容,都是 YES 的话,那就成功了。也可以分别查看主从库的 E:\oracle\ora92\database\archive 文件夹里面的内容,如果从库的和主库的内容一致,就算 data guard 配置成功了。  
22
、这个时候从库只是将日志文件拿过来存放起来,但并没有执行日志文件,所以在主库上所做的操作无法在从库上得到结果,即无法在从库上查询数据。要在从库上查询数据,要执行以下语句:在从库上用 sysdba  用户连接     Sql>alter database recover managed standby database disconnect from session ; Sql>alter database recover managed standby database cancel ; Sql>alter database open read only ;  查询数据即可。查询完成以后,需要恢复从库为恢复模式     Sql>alter database recover managed standby database disconnect from session ;  这个功能的可以用来查询前一天(或者前若干时间)以前的数据,比如报表之类的,因为今天只能查询昨天以前的报表,对数据的同步性的要求不是那么严格。查询完后一定要将从库设回恢复模式。  









本文转自 jxwpx 51CTO博客,原文链接:http://blog.51cto.com/jxwpx/205251,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
Oracle 关系型数据库 数据库
手把手教你Oracle DataGuard主备切换(switchover)
手把手教你Oracle DataGuard主备切换(switchover)
546 4
|
6月前
|
运维 Oracle 容灾
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
|
3月前
|
Oracle 网络协议 安全
Oracle 11g DataGuard搭建保姆级教程
Oracle 11g DataGuard搭建保姆级教程
221 4
|
3月前
|
Oracle 网络协议 关系型数据库
Oracle DataGuard主备切换之自动切换
Oracle DataGuard主备切换之自动切换
168 2
|
6月前
|
Oracle 关系型数据库
oracle 19c 搭建dataguard 简要命令
通过service 完成dg 搭建。
159 0
|
Oracle 关系型数据库 数据库
Flink CDC中oracle dataguard模式下,有没有cdc备库的方案?
Flink CDC中oracle dataguard模式下,有没有cdc备库的方案?
188 1
|
Oracle 网络协议 关系型数据库
Oracle11g DataGuard部署与维护
DataGuard是Oracle高可用必备技能。
|
Oracle 网络协议 关系型数据库
oracle 11g dataguard 配置步骤
oracle 11g dataguard 配置步骤
221 0
|
Oracle 关系型数据库