- 浏览: 557753 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (340)
- Spring (4)
- Hibernate (2)
- Linux (34)
- Oracle (145)
- Eclipse (1)
- UML (1)
- HTML&&JAVASCRIPT (11)
- JAVA (33)
- 设计模式 (1)
- 版本控制 (1)
- wrap框架 (3)
- IBATIS (5)
- Ruby (1)
- DWR (1)
- MINA (11)
- JBPM (2)
- 缓存技术 (4)
- 网络 (3)
- 应用服务器 (1)
- GWT (5)
- 杂谈 (2)
- ICE (4)
- XML (2)
- ArcGis (2)
- Flex (8)
- junit单元测试 (1)
- SNMP (1)
- 存储 (1)
- office (1)
- MongoDB (0)
- Greenplum (3)
- 管理点滴 (1)
- C++ (6)
- 网络入门 (3)
- Tomcat (7)
- JMX (0)
- webservice (1)
- Oracle的10046事件 (1)
- Library cache内部机制详解 (1)
- expdp通过dblink来导入 (1)
最新评论
-
yuanliangding:
有没有关于mock的更多知识。
基于mock对象和JUnit框架简化Spring Web组件单元测试 -
saup007:
ssh端口不是22,怎么搞呢?
Greenplum 学习笔记 -
springmvc-freemarker:
java开源项目源码实例下载
Apache上全部JAVA开源项目简介 -
bobbell:
哇塞,你真厉害,整理的非常全面。我是一个java barcod ...
Greenplum 学习笔记 -
wsj55133245513324:
这不是bug,你将日志级别从debug提升到INFO 就好了 ...
Spring,smppapi,apache mina, ssl快速实现安全的smpp(5)
什么是oracle Data guard?
1. Data guard 为 Oracle 数据库提供灾难恢复解决方案
2. Data gurad 是oracle数据库企业版(EE)的特性
3.自动创建和维护生产数据库(或主数据库primary database)的一个或多个事务一致的副本(备用数据库 standby database,事务一致的意思是数据一致)
4.如果主数据库(因灾难、维护)不可用,那么可用激活一个备用数据库并使之承担主数据库的角色
5.要求主服务器和备用服务器上的Oracle数据库和操作系统的版本相同
primary database 到 standby database是通过redo log来进行保持一致的。
物理备用数据库,它是直接拷贝redo log,根据它的redo log来生成 datafile .还可以把它写到磁带上,用来备份和恢复
逻辑备份数据库,它是把redo log拷贝回来以后,把它转换成SQL语句,然后执行SQL语句,去改变备库里的数据,从而达到备库里的数据和主库里的数据一致.(逻辑上于生成库一致,数据一致,但是存储结构和方式上可能与生成库不一致)
物理备库和逻辑备库的目的不一致:
物理备库可以用来做备份,写到磁带里去。
逻辑备库因为逻辑一致,一方面可以不断接受生产库的数据,一方面可以对外开放,可以提供查询操作
保护模式 | 数据丢失保护 | 重做传输 |
最高保护 |
零数据丢失 双重故障保护 |
LGWR SYNC-将重做 同步传输至两个站点 |
最高可用性 |
零数据丢失 单重故障保护 |
LGWR SYNC-将重做 同步传输 |
最高性能 | 最少的数据丢失 |
LGWR SYNC-将重做 异步传输 |
这三种模式的切换,可以通过一条命令来完成:
ALTER DATABASE SET STANDBY TO MAXIMIZE PROTECTION;
一些Data Guard 的效果
1. Data Guard 同步传输对于LAN, 甚至对于MAN(~300英里/10毫秒 RTT)都是可行的
1.零数据丢失
2.对主系统的吞吐量影响最小(在测试中小于3%)
2.异步传输对于所有类型的网络都可行
1.美国大西洋到太平洋的部署(~2600英里/80毫秒 RTT)对性能几乎没有影响(在测试中小于1%),并且在出现灾难的情况下,潜在的平均事务丢失为1秒
3.异步模式下,在WAN上使用SSH压缩可使网络的流量减少35%-60%
4.转换可以在1分钟内完成,故障切换在短短的15秒内即可完成
Data Guard技术特点:
1.网络效率 (只传输重做数据)
2.更适于WAN(广域网)--无需协议转换器,基于标准的TCP/IP
3.更好的数据保护----保持写顺序的一致性,避免逻辑损坏和物理损坏
4. 功能 --全面的DR解决方案
5.灵活性--底层存储器对供应商没有限制
6.ROI--从DR投资中提取价值,与数据库本地集成
===================================================================================
具体步骤如下:
一、主库操作
1、修改主库属性:
alter system force logging;
##查看状态
select FORCE_LOGGING from v$database;
2、修改数据库为归档模式:
archive log list;
shutdown immediate;
startup mount;
alter database archivelog;(alter database noarchivelog;关掉归档模式)
archive log list;
3、添加standby logfile(也可以不加)
为主数据库添加"备用联机日志文件",这里要保证备日志文件与主库联机日志文件相同大小。
添加备用日志文件是规则:
备用日志最少应该比redo log 多一个。推荐的备重做日志数依赖于主数据库上的线程数。
(每线程日志文件最大数目 + 1 ) * 线程数
alter database add standby logfile
group 4 ('/oracle2/app/oracle/oradata/std_redo04a.log','/oracle2/app/oracle/oradata/std_redo04b.log') size 50m,
group 5 ('/oracle2/app/oracle/oradata/std_redo05a.log','/oracle2/app/oracle/oradata/std_redo05b.log') size 50m,
group 6 ('/oracle2/app/oracle/oradata/std_redo06a.log','/oracle2/app/oracle/oradata/std_redo06b.log') size 50m,
group 7 ('/oracle2/app/oracle/oradata/std_redo07a.log','/oracle2/app/oracle/oradata/std_redo08b.dbf') size 50m;
否则备库在应用时报如下信息:
RFS[1]: No standby redo logfiles created
RFS[1]: Archived Log: '/oracle2/arch/1_30_633287861.dbf'
在主库添加完standby logfile后,当主库切换后备库后会自动使用备库的redo logfile,具体应用信息如下:
RFS[1]: Successfully opened standby log 4: '/oracle2/app/oracle/oradata/10g/redo04.log'
RFS[1]: Successfully opened standby log 4: '/oracle2/app/oracle/oradata/10g/redo04.log'
4、修改主库参数文件:
10g.__db_cache_size=1207959552
10g.__java_pool_size=16777216
10g.__large_pool_size=16777216
10g.__shared_pool_size=352321536
10g.__streams_pool_size=0
*.audit_file_dest='/oracle2/app/oracle/admin/10g/adump'
*.background_dump_dest='/oracle2/app/oracle/admin/10g/bdump'
*.compatible='10.2.0.3.0'
*.control_files='/oracle2/app/oracle/oradata/10g/control01.ctl','/oracle2/app/oracle/oradata/10g/control02.ctl','/oracle2/app/oracle/oradata/10g/control03.ctl'
*.core_dump_dest='/oracle2/app/oracle/admin/10g/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='10g'
*.DB_UNIQUE_NAME='10gpri' ###必须 定义每个数据库的唯一标识
*.log_archive_config='DG_CONFIG=(10gpri,10gstandby)' ###必须
*.log_archive_dest_1='location=/oracle2/arch/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES)' DB_UNIQUE_NAME='10gpri' ###必须 本地的归档路径
*.LOG_ARCHIVE_DEST_2='SERVICE=10gstandby arch ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=10gstandby' ###必须(远程服务器端的归档日志)
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.FAL_SERVER=10gpri ### 定义FAL服务器的Oracle Net服务的名称*.FAL_CLIENT=10gstandby ### 定义备数据库的Oracle Net服务名 (这两个参数在主库可有可无,但备库必须有。ORACLE 老外工程师说这个必须有^_^)
*.db_recovery_file_dest='/oracle2/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=10gXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=1707081728
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=1610612736
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/oracle2/app/oracle/admin/10g/udump'
*.STANDBY_FILE_MANAGEMENT=AUTO ###设置为AUTO,使得当数据文件添加到主数据库或者从主数据库删除的时候,对应的修改能够在备用数据库中自动执行.
5、用pfile启动,再重新创建spfile.
shutdown immediate;
startup pfile='./pfile.pra';
create spfile from pfile='./pfile.ora';
shutdown immediate;
startup;
6、在主库创建密码文件、以及控制文件。
orapwd file=orapw10gstandby.ora password=change_on_install entries=10
alter database create standby database controlfile '/tmp/standby.ctl';
7、TNS信息如下:
主库
10g=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.169.1.204)(PORT = 1921))
)
(CONNECT_DATA =
(SID = 10g)
)
)
10gpri=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.169.1.224)(PORT = 1921))
)
(CONNECT_DATA =
(SID = 10g)
)
)
10gstandby =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.169.1.204)(PORT = 1921))
)
(CONNECT_DATA =
(SID = 10g)
)
)
8、对主库进行全库备份
run {
allocate channel t1 type disk;
allocate channel t2 type disk;
backup database format '/tmp/full_%s';
release channel t1;
release channel t2;
}
==========================================================================================
二、备库操作如下:
1、依照主库的数据文件位置,在备库上创建相应的目录结构(最好与主库一致);
mkdir -p /oracle/app/oracle/oradata/....
2、通过FTP把在主库创建的密码文件、standby controlfile、full backup database文件到备库主机上。
3、备份的参数文件内容:
10g.__db_cache_size=1207959552
10g.__java_pool_size=16777216
10g.__large_pool_size=16777216
10g.__shared_pool_size=352321536
10g.__streams_pool_size=0
*.audit_file_dest='/oracle2/app/oracle/admin/10g/adump'
*.background_dump_dest='/oracle2/app/oracle/admin/10g/bdump'
*.compatible='10.2.0.3.0'
*.control_files='/oracle2/app/oracle/oradata/10g/control01.ctl','/oracle2/app/oracle/oradata/10g/control02.ctl','/oracle2/app/oracle/oradata/10g/control03.ctl'
*.core_dump_dest='/oracle2/app/oracle/admin/10g/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='10g'
*.DB_UNIQUE_NAME='10gstandby' ##
*.log_archive_config='DG_CONFIG=(10gpri,10gstandby)' ##
*.log_archive_dest_1='location=/oracle2/arch/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES)' DB_UNIQUE_NAME='10gstandby' ##
*.LOG_ARCHIVE_DEST_2='SERVICE=10gpri arch ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=10gpri' ##
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.FAL_SERVER=10gstandby ##
*.FAL_CLIENT=10gpri ##*.db_recovery_file_dest='/oracle2/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=10gXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=1707081728
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=1610612736
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/oracle2/app/oracle/admin/10g/udump'
*.STANDBY_FILE_MANAGEMENT=AUTO ##
4、分别对备库进行全库恢复,并启动到standby database mount状态下。
用PFILE文件起动到nomount状态下,恢复控制文件;起动到mount状态下,然后再恢复全库。
5、TNS信息如下:
10g=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.169.1.204)(PORT = 1921))
)
(CONNECT_DATA =
(SID = 10g)
)
)
10gpri=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.169.1.224)(PORT = 1921))
)
(CONNECT_DATA =
(SID = 10g)
)
)
10gstandby =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.169.1.204)(PORT = 1921))
)
(CONNECT_DATA =
(SID = 10g)
)
)
用TNSPING 对方是否通。
6、修改备库处于应用归档状态
alter database recover managed standby database disconnect from session;
如果主库从不过来归档,可以通过在主库侧手工修改参数如下:
ALTER SYSTEM SET log_archive_dest_state_2='DEFER' SCOPE=MEMORY;
ALTER SYSTEM SET log_archive_dest_state_2='ENABLE' SCOPE=MEMORY;
7、测试
通过在主库执行alter system switch logfile;切换日志可以观察到备库会自动应用通过主库传过来的日志。
三、切换测试
1、在主库端
select switchover_stats from v$database;
如果是to standby 表可以正常切换.
直接执行 ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
否则执行: ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
shutdown immediate;
startup nomount;
alter database mount standby database;
2、在备库
在备库
SELECT SWITCHOVER_STATUS FROM V$DATABASE;
如果是to_primary 表可以正常切换.
执行:ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
否则执行: ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
shutdown immediate;
startup;
然后观察主备库日志,如果正常的话会看到备库会自动应用日志.
发表评论
-
expdp通过dblink来导入
2011-12-14 15:01 1789create.sql: spo create.log rem ... -
Library cache内部机制详解
2011-12-14 14:55 891Library cache内部机制详解 http://www ... -
Oracle的10046事件
2011-12-14 14:53 2098Oracle的10046事件,可以跟踪应用程序所执行的SQL语 ... -
REDO LOG MEMBER STATUS 和 REDO LOG GROUP STATUS
2011-12-14 14:51 928V$LOG 中列出的是REDO LOG GROUP STA ... -
oracle的exp/imp使用方法学习(转)
2011-08-30 08:54 964exp/imp两个命令可以说是oracle中最常用的命令了 ... -
oracle几个awr报告
2011-08-09 14:25 900工作中,碰到的数据库慢的几个awr报告 -
Oracle Profile 使用详解
2011-06-21 14:41 972一、目的: Oracle系统中的profile可以用来对 ... -
ORA-27013
2011-04-13 14:25 1516很新的一个bug,看下你的 memory_target是不是& ... -
ACLE表连接方式分析及常见用法
2011-03-23 09:14 1115摘要: 针对在数据仓库 ... -
ORACLE 外部表应用
2011-03-09 14:58 1068SQL> create or replace direc ... -
How to convert a 32-bit database to 64-bit database on Linux
2011-02-18 14:09 1216How to convert a 32-bit databas ... -
expdp impdp 数据库导入导出命令详解
2011-02-16 09:10 1956一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最 ... -
Oracle手工解/锁表
2011-01-25 14:15 2507手工锁表:lock table tbl_t1 in row ... -
oracle动态性能视图
2011-01-22 10:47 862Oracle动态性能视图个人整理 -
RBO规则介绍
2011-01-17 16:45 1080•无条件使用索引•使用内置的优先级别决定访问路径•比较难以 ... -
关于排序、sort_area_size、临时表空间
2011-01-13 15:30 1120简单陈述一下:针对每 ... -
创建索引ORACLE 需要做的工作
2011-01-13 14:53 1324一. 先来看一下创建索引要做哪些操作:1. 把inde ... -
表之间的连接
2011-01-13 10:42 798Join是一种试图将两个表结合在一起的谓词,一次只能连接2 ... -
重建索引的条件
2011-01-12 16:43 955如果索引存在碎片,那每个索引数据块上的索引数据就更少,会导致我 ... -
TKPROF使用学习
2011-01-10 17:38 725Tkprof工具可用来格式化sql trace产生的文件, ...
相关推荐
Oracle是世界上最广泛使用的数据库管理系统之一...以上就是根据给定文件名推测的Oracle学习笔记资料可能涵盖的主要知识点。通过深入学习和实践,可以掌握Oracle数据库的使用和管理,从而在IT领域中提升自己的专业能力。
Oracle学习笔记是一个全面涵盖Oracle数据库管理系统知识的资源,适合初学者和有经验的DBA(数据库管理员)深入学习。Oracle是世界上最广泛使用的数据库系统之一,以其高性能、高可用性和安全性著称。以下是一些关键...
以下是对"Oracle学习笔记"的详细解读: 1. **Oracle基础知识** - 数据库概念:Oracle数据库是一种存储和管理结构化数据的系统,它通过SQL(结构化查询语言)进行操作。 - 数据模型:Oracle支持关系型数据模型,...
### DAVE Oracle DG 学习笔记 #### DataGuard架构与背景 Oracle Data Guard(简称DG)是一种用于构建高可用性和灾难恢复解决方案的技术。它通过在主数据库(Primary Database)和辅助数据库(Standby Database)...
本学习笔记涵盖了Oracle 10g Data Guard的基础知识,包括其核心组件、配置过程、保护模式,以及如何管理和操作Standby数据库。 1.3. DataGuard配置 配置Data Guard涉及以下几个主要步骤: 1. 创建和配置主数据库。...
2012.9.Oracle三思笔记合集,供大家下载学习。压缩包里共32个PDF或DOC文件,都是整理版的,非常好阅读,谁下谁知道。 [三思笔记]drbd入门与应用.pdf [三思笔记]Linux5版本安装Oracle11gR2.pdf [三思笔记]Linux平台...
本"Oracle十八天学习笔记"涵盖了Oracle数据库的基础到高级概念,旨在帮助初学者和有一定经验的开发者深入理解Oracle的核心技术和应用。 第1天:Oracle简介与安装配置 在第一天的学习中,我们将了解Oracle的历史背景...
三思oracle笔记包 包含: Linux5版本安装Oracle11gR2 ORACLE 10gR2 RAC环境增加及删除节点 Oracle+RAC数据库配置DataGuard RMAN管理ORACLE_RAC数据库的备份与恢复 全面学习MySQL+Proxy特性 全面学习分区表及分区索引...
本"Oracle学习资料大全PDF"集合了多种资源,旨在帮助初学者和经验丰富的DBA(数据库管理员)深入理解Oracle的核心概念和技术。 首先,"Oracle10gR1.Step.By.Step.by.Kamus.pdf"是一本逐步指南,详细介绍了Oracle 10...
本系列是一个一般初学者学习过程的记录,其中的概念可能解释的略显初级,其中的过程可能演示的略显 生疏,其中的操作可能表现的略显繁琐,但,它记录了一种...帮助你走的更平坦:[三思笔记]之一步一步学DataGuard~~~~
《涂抹Oracle—三思笔记》是一本详尽的Oracle学习指南,由刘Liu撰写,出版于2010年美国。本书旨在为读者提供一套系统化的Oracle学习路径,覆盖了Oracle的基础到高级应用,特别强调了数据加载、保护、传输以及备份与...
通过以上内容的学习,我们可以对Oracle DataGuard有一个全面而深入的理解,这对于提高企业的数据可用性和灾备能力至关重要。希望每位学习者都能够顺利掌握DataGuard的核心技术,为企业数据安全保驾护航。
在这个“Oracle学习笔记.rar”压缩包中,我们可以期待找到关于以下几个Oracle关键知识点的详细文档: 1. **SQL基础**:Oracle SQL是用于访问和操作Oracle数据库的标准查询语言。它包括数据查询、数据插入、更新和...
【数据库学习资料...综上,这份Oracle学习资料包覆盖了Oracle的各个方面,从基础语法到高级特性,从理论知识到实践经验,是全面学习和提升Oracle技能的宝贵资源。无论是初学者还是有经验的DBA,都能从中受益匪浅。
通过深入学习《[三思笔记]一步一步学DataGuard.pdf》,你可以掌握如何配置和管理DataGuard环境,了解如何处理各种故障场景,以及如何利用DataGuard来提升系统的稳定性和可靠性。该文档会详细讲解DataGuard的各个组件...
对于数据库管理,Oracle Certified Professional (OCP)证书是一个很好的起点,它提供了一个系统的Oracle学习路径。进一步深入,可以阅读《Oracle Concepts》和官方在线文档,这些资源能帮助你深入了解Oracle的原理。...
通过这些内容的学习,读者可以更好地理解如何使用RMAN来管理和维护Oracle数据库的安全性。无论是对于初学者还是有经验的DBA来说,熟悉这些操作都是至关重要的。希望本文能帮助大家更好地掌握RMAN的相关知识和技术。
了解以上知识点后,结合《[三思笔记]一步一步学DataGuard.pdf》这本书,读者将能够深入理解Data Guard的工作原理,以及如何通过调整Data Guard配置来进一步提升Oracle数据库的性能检测和故障恢复能力。这本书可能会...