ORACLE DATAGURARD配置手记

经过多次实践,参阅网上N多文章……最后还是配不成,可能本人悟性太低,无法体会高手的笔记。最终还是在前辈的帮助下完成。特用最平实的手法记录下来,以便如吾辈菜鸟能

看得懂。

运行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 ; 
这个功能的可以用来查询前一天(或者前若干时间)以前的数据,比如报表之类的,因为今天只能查询昨天以前的报表,对数据的同步性的要求不是那么严格。查询完后一定要将从库设回恢复模式。

时间: 2024-10-24 02:07:43

ORACLE DATAGURARD配置手记的相关文章

PLSQL Develope连接oracle数据库配置

首先我们在讲PLSQL Develope连接oracle数据库配置之前,先讲下如果不用PLSQL Develope连接oracle数据库,那该怎么办,那就是在本机安装oracle数据库,不过这个对于配置渣的笔记本来说是个挑战,而且界面长时间不操作就会卡死,只能强制关闭,用起来非常不方便,如果笔记本配置高,且不想费力用PLSQL,那可以考虑直接安装oracle客户端. 下面我们来看看如何用PLSQ连接oracle. 1.自行百度下载plsql客户端,个人比较喜欢从CSDN上下载,你们随意.下载好后

python操作oracle数据库环境配置

1. 下载安装cx_oracle安装包 Python操作Oracle数据库,首先需要安装cx_Oracle包,下载地址如下:   http://cx-oracle.sourceforge.net/    http://sourceforge.net/projects/cx-oracle/files/5.1.2/ 本系统采用的是CentOS5.x系列的操作系统,python版本是2.4,于是下载支持python2.4版本的安装包. 2. 下载oracle客户端,是oracle官方网站下载. 下载对

[转]Oracle DB 配置备份设置

? 使用Oracle Enterprise Manager 配置备份设置 ? 启用控制文件自动备份 ? 配置备份目标 ? 为磁带目标分配通道 ? 配置备份优化 ? 创建压缩备份 ? 创建加密备份 配置RMAN 的永久性设置 ? RMAN 有预设的默认配置设置. ? 使用CONFIGURE命令可以: – 配置自动通道 – 指定备份保留策略 – 指定要创建的备份副本数 – 将默认备份类型设置为BACKUPSET或COPY – 限制备份片段的大小 – 在备份中排除表空间 – 启用和禁用备份优化 – 配

php5.6下连接Oracle的配置

php5.6下连接Oracle的配置 2014年09月03日  php开发 暂无评论 阅读460次 首先说明下,我是在windows下,系统是win7 64位 这个升级跨度有点大,一直用apache2.2的,apache2.4发布了很久都没去安装 可能是处女座的缘故,不想安装wamp,xamp之类的集成包,他们很早就出了apache2.4,php5.5这些包了 一直想升级php到新一点的版本的,但一直觉得麻烦,懒,不想动,纠结了好久,终于在今天换了apache2.4,php5.6 都是自己下单独

Oracle如何配置监听

很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server).本文现对监听配置作一简单介绍,并提出一些客户终端无法连接服务器端的解决思路. 一.监听器(LISTENER) 监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求.既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的. 二.本地服务名(Tnsname) Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务

MyEclipse+Weblogic+Oracle+PLSQL配置注意事项

Weblogic配置详情:<Weblogic安装与配置图文详解>Oracle+PLSQL配置详情:<PL/SQL访问远程Oracle服务器(多种方式)>MyEclipse配置:<Eclipse在开发Web项目时的配置优化>,<教你破解MyEclipse到2016年[图文详解]>虽然总结过以上开发环境的配置及优化,但是在使用的过程中依旧出现了或多或少.大大小小的问题,统一记录一下.1.MyEclipse导入工程.File-->Import-->Ge

Oracle数据库配置方式二--使用Net Manager配置数据库

在Oracle安装配置中使用Net Configuration配置了数据库,今天给大家介绍第二种配置方式,Net Manager配置. 先找到我们的Net Manager的快捷方式,如下面截图 这个就是进入Net Manager的界面,点击服务命名,如图, 然后点击最左边的绿色的+ 号 起个网络服务名,就叫 myorcl吧 协议仍然选择TCP/IP,下一步 主机名填:localhost,端口号:1521 要访问的服务名是ORCL,是安装时填写的那个,连接类型如图所示 点击测试,测试一下 测试成功

Oracle安装配置流程

Oracle安装流程 第一次自己动手安装oracle,之前对oracle安装配置一窍不通,最后最终弄好.总结下. 1.  安装oracle10gserver端 2.  安装oracle10gclient. server端和client不一定要安装在同一个机器上. 3.  启动server端的NetConfiguration Assistant,配置监听程序 4.  使用DatabaseConfiguration Assistant向导创建数据库 5.  安装PL/SQLDeveloper. 6.

ThinkPHP pdo连接Oracle的配置写法,提示报错

'DB_TYPE' => 'pdo', // 数据库类型 'DB_USER' => 'user101', // 用户名 'DB_PWD' => '[email protected]#$%', // 密码 'DB_PREFIX' => 'TB_', // 数据库表前缀 'DB_DSN' => 'oci:dbname=127.0.0.1:1158/orcl;charset=utf8', ThinkPHP 3.2.2 连接Oracle 的配置写法,结果提示内容: 由于目前PDO暂时