data guard 实验总结

合集下载

oracle dataguard原理(一)

oracle dataguard原理(一)

oracle dataguard原理(一)Oracle DataGuard原理详解介绍Oracle DataGuard是Oracle数据库提供的一种数据冗余和灾难恢复解决方案。

它通过实时数据复制和自动故障转移来提供数据保护和高可用性。

本文将从浅入深,逐步解释Oracle DataGuard的相关原理。

数据冗余•数据冗余是指将数据库中的数据复制到另一个位置,以保护数据免受硬件故障、自然灾害和人为错误的影响。

•在Oracle DataGuard中,数据冗余是通过将主数据库中的数据异步或同步复制到一个或多个备用数据库实现的。

•备用数据库是主数据库的精确副本,它可以提供故障转移和灾难恢复的能力。

主备同步•主备同步是指主数据库和备用数据库之间的数据复制是实时的并保持同步。

•在Oracle DataGuard中,主备同步有两种模式,即同步模式和异步模式。

•同步模式要求主数据库将数据写入本地磁盘后,等待至少一个备用数据库确认接收并写入数据,确保数据一致性和可靠性。

•异步模式允许主数据库立即提交事务,并异步地将数据发送给备用数据库。

这种模式下,主备数据库之间可能存在一定的数据延迟。

数据传输•数据传输是指主数据库将数据发送给备用数据库的过程。

•在Oracle DataGuard中,数据传输可以通过物理复制或逻辑复制来实现。

•物理复制是将主数据库的物理数据文件复制到备用数据库。

这种复制方式效率高,适用于大型数据库。

•逻辑复制是将主数据库的逻辑数据写入备用数据库。

这种复制方式可以跨不同操作系统平台和数据库版本。

自动故障转移•自动故障转移是指在主数据库发生故障时,备用数据库可以自动接管主数据库的功能。

•Oracle DataGuard提供了故障切换的功能,可以迅速将备用数据库切换为主数据库,实现连续的应用程序可用性。

•故障切换是基于Oracle Grid Infrastructure和Fast-Start Failover技术实现的,它能够在故障发生时自动检测和处理。

DATAGUARD实施和维护总结

DATAGUARD实施和维护总结

DATAGUARD实施和维护总结1、DATAGUARD原理STANDBY一旦创建,DATAGUARD就会通过将主数据库的REDO传递给STANDBY数据库,然后在STANDBY中应用REDO实现数据库的同步。

有两种类型的STANDBY:物理STANDBY和逻辑STANDBY物理STANDBY提供与主数据库完全一样的拷贝(块到块),数据库SCHEMA,包括索引都是一样的。

它是直接应用REDO实现同步的。

逻辑STANDBY则不是这样,在逻辑STANDBY中,逻辑信息是相同的,但物理组织和数据结构可以不同,它和主库保持同步的方法是将接收的REDO转换成SQL语句,然后在STANDBY上执行SQL语句。

逻辑STANDBY除灾难恢复外还有其它用途,比如用于用户进行查询和报表。

DATAGUARD包含三个服务(日志传输、日志应用和角色转换)日志传输服务控制REDO数据的传输(传输日志,实施数据库保护模式)--------------STANDBY上通过起用RFS进程接收REDO数据。

日志应用服务则一方面自动应用日志,另一方面自动检测STANDBY缺少的REDO,并从主数据库或其它STANDBY 中自动查询出丢失的REDO。

DATAGUARD的几种保护模式:最大保护,最大可用,最大性能最大保护是指除非REDO在至少一个STANDBY中可用,否则事务不能提交。

如果在某个STANDBY中不可用,则主数据库的操作被停止。

最大可用是指如果STANDBY不可用,主数据库仍然可以处理事务,只是在问题被纠正后,STANDBY和主数据库进行再同步。

这样的一个问题是:当再同步之前有必要FAILOVER时,有些数据可能会丢失。

最大性能是指主数据库的提交操作不等待STANDBY。

物理STANDBY可能的模式:只读模式(OPEN READONLY)和恢复模式(MANANGED RECOVERY)2、物理DATAGUARD实施主数据库的准备工作:FORCE LOGGING,ENABLE ARCHIVING,一个本地归档目的地。

dataguard 原理

dataguard 原理

dataguard 原理
DataGuard是Oracle数据库提供的一种高可用性和灾难恢复解决方案。

它通过在主数据库和备份数据库之间实时复制和传输归档日志,确保在主数据库故障时可以快速切换到备份数据库并继续工作。

数据保护的原理是基于物理日志文件的持续备份和传输。

在正常运行时,主数据库将产生归档日志,这些日志会被连续地传输到备份数据库。

备份数据库将这些日志应用到自己的副本中,使得备份数据库与主数据库保持同步。

一旦主数据库发生故障,可以通过手动或自动切换到备份数据库。

此时,备份数据库会将主数据库中未完全发送的归档日志自动应用并保持最新状态,保证数据一致性。

DataGuard还包括实时应用备份数据库的模式,以提供实时报告和查询。

此模式下,客户可以从备份数据库读取数据,而不会影响主数据库的性能。

这种架构提供了性能增强和高可用性。

DataGuard通过提供物理级别的数据保护,不仅可以应对硬件故障,还可以应对人为错误、自然灾害和系统故障等各种灾难情况。

它还支持异地灾备,即将备份数据库部署在远离主数据库的地理位置,确保即使发生严重灾难,如地震或洪水,数据库仍然可用。

总之,DataGuard原理是基于实时复制和传输归档日志,使得备份数据库与主数据库保持同步,并通过自动应用归档日志保持数据的一致性。

它提供高可用性和灾难恢复解决方案,可应对各种硬件故障和灾难情况,确保数据库的可用性和数据完整性。

Oracle DG搭建

Oracle DG搭建

*******学院实习报告(课程置换:****实训)姓名:学号:专业:班级:实习单位指导教师:校内指导教师:实习项目:Oracle Data Guard(数据卫士)环境搭建项目实习单位名称:实习起止时间:自年月日至年月日页脚内容目录第一部分实习报告------------------------------------------------------------------------------------- 01.项目描述 ------------------------------------------------------------------------------------------- 01.1 DG的整体配置---------------------------------------------------------------------------- 01.2 DG的相关服务 --------------------------------------------------------------------------- 01.3 DG的数据保护模式--------------------------------------------------------------------- 21.4 DG当中涉及的日志分类 -------------------------------------------------------------- 32.项目实习环境介绍------------------------------------------------------------------------------ 32.1 硬件环境 ---------------------------------------------------------------------------------- 32.2 软件环境 ---------------------------------------------------------------------------------- 42.3 基础要求 ---------------------------------------------------------------------------------- 43.搭建Data Guard ---------------------------------------------------------------------------------- 53.1将数据库改为强制日志模式 -------------------------------------------------------- 53.2创建密码文件 ---------------------------------------------------------------------------- 53.3创建standby redolog日志组 --------------------------------------------------------- 53.4修改主库的pfile参数文件----------------------------------------------------------- 9页脚内容3.5创建spfile --------------------------------------------------------------------------------- 133.6对主库进行RMAN全库备份--------------------------------------------------------- 153.7修改监听文件 --------------------------------------------------------------------------- 173.8在备库上恢复主库之前的准备工作 -------------------------------------------- 223.9利用RMAN在备库上恢复主库 ---------------------------------------------------- 263.10开启备库 ------------------------------------------------------------------------------- 263.11备库启动日志应用------------------------------------------------------------------- 274.Oracle Data Guard 主备切换 ---------------------------------------------------------------- 294.1 Switchover --------------------------------------------------------------------------------- 294.2 Failover ------------------------------------------------------------------------------------ 33第二部分实习总结----------------------------------------------------------------------------------- 37第三部分实习日志----------------------------------------------------------------------------------- 38页脚内容I第一部分实习报告1.项目描述1.1 DG的整体配置DG是一个整体的配置环境,包含一个生产库和一个或者多个备库;在整个DG环境中,众多应用访问的生产库,也称之为primary database即主库;primary database 可以个单实例的数据库,也可以是一个RAC环境;备库是一种主库事务级别的一致性副本;备库的类型有物理备库、逻辑备库和快照备库。

Oracle RAC+ASM+DataGuard配置实验记录+常见问题

Oracle RAC+ASM+DataGuard配置实验记录+常见问题

Oracle RAC+ASM+DataGuard配置实验记录+常见问题Oracle RAC+ASM+DataGuard配置实验记录+常见问题1、环境规划:---RAC环境介绍(primary database)rac1 rac2______________________________________________________public ip 192.168.110.11 192.168.110.12______________________________________________________virtual ip 192.168.110.21 192.168.110.22_____________________________________________________instance racdb1 racdb2______________________________________________________db_name racdb_______________________________________________________storage mode ASM__________________________________________________---单机环境介绍(standby database)数据文件可放至本地,也可以放至ASM上,本实验中先放至本地实验_____________________________________________________________________ _____ip 192.168.110.11 192.168.110.12_____________________________________________________________________ ______instance 192.168.110.13(rac3)_____________________________________________________________________ ______storage mode /oradata/racdb_____________________________________________________________________ ______----hosts文件#Public Network - (eth0)192.168.110.11 rac1192.168.110.12 rac2192.168.110.13 rac3#Private Interconnect - (eth1)10.10.10.11 rac1priv10.10.10.12 rac2priv#Public Virtual IP (VIP) addresses - (eth0)192.168.110.21 rac1vip192.168.110.22 rac2vip--检查环境1)、启动archivelog归档模式SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 54Next log sequence to archive 56Current log sequence 56SQL> show parameter RECOVERYNAME TYPE VALUE------------------------------------ -----------------------------------------db_recovery_file_dest string +DG_RECOVERY db_recovery_file_dest_size big integer 2Grecovery_parallelism integer 02)、启动FORCE_LOGGING模式SQL> alter database FORCE LOGGING;Database altered.SQL> select FORCE_LOGGING from v$database;FOR---YES2、首先配置两个数据库的tnsnames.ora和listener.oratnsnames.ora(两台主机相同)racdb_rac1 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.110.21)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = racdb_s)(SERVICE_NAME = racdb1)))racdb_rac2 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.110.22)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = racdb_s)(SERVICE_NAME = racdb2)))racdb_standby =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.110.13)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = racdb)))standby主机上的listener.oraSID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = racdb)(ORACLE_HOME = /oracle/app/product/10.2.0/db_1)(SID_NAME = racdb))(SID_DESC =(GLOBAL_DBNAME = PLSExtProc)(ORACLE_HOME = /oracle/app/product/10.2.0/db_1)(SID_NAME = PLSExtProc)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.110.13)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))))3、准备参数文件RAC环境下的参数变化增加如下:RAC主库:(注意使用ASM的时候,不要改变db_unique_name参数,否则之后创建的asm文件就会放入至新的db_unique_name目录下面,导致DB_FILE_NAME_CONVERT失效。

oracle 12c 容灾之Active Data Guard 测试报告

oracle 12c 容灾之Active Data Guard 测试报告
场景描述
节点oratest3 为此次dataguard 搭建测试的主机环境,在测试前先安装数据 库软件,然后dbca 创建一个容器数据库为test,并且包含两个pdb 为pdb1 和 pdb2 并配置监听正常后,对新的容器数据库test 进行本机容灾dataguard 的搭 建和配置测试,并为后续的测试准备好测试环境同时验证dataguard 测试环境 是否正常等。
场景一:测试环境 dataguard 搭建测试 .................................... 3 场景描述 .................................................................................. 3 测试过程 .................................................................................. 3 结论 ....................................................................................... 10
ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'control_files=/oracle/db_base/oradata/test/control01.ctl'
7 为备库创建参数文件:
CREATE SPFILE FROM PFILE='/oracle/db_base/product/12.1.0/dbhome_1/dbs/inittestdg.ora' 修改如下:
12c 容灾之 Active Data Guard 测试报告

DATAGUARD实施和维护总结

DATAGUARD实施和维护总结

DATAGUARD实施和维护总结1、DATAGUARD原理STANDBY一旦创建,DATAGUARD就会通过将主数据库的REDO传递给STANDBY数据库,然后在STANDBY中应用REDO实现数据库的同步。

有两种类型的STANDBY:物理STANDBY和逻辑STANDBY物理STANDBY提供与主数据库完全一样的拷贝(块到块),数据库SCHEMA,包括索引都是一样的。

它是直接应用REDO实现同步的。

逻辑STANDBY则不是这样,在逻辑STANDBY中,逻辑信息是相同的,但物理组织和数据结构可以不同,它和主库保持同步的方法是将接收的REDO转换成SQL语句,然后在STANDBY上执行SQL语句。

逻辑STANDBY除灾难恢复外还有其它用途,比如用于用户进行查询和报表。

DATAGUARD包含三个服务(日志传输、日志应用和角色转换)日志传输服务控制REDO数据的传输(传输日志,实施数据库保护模式)--------------STANDBY上通过起用RFS进程接收REDO数据。

日志应用服务则一方面自动应用日志,另一方面自动检测STANDBY缺少的REDO,并从主数据库或其它STANDBY中自动查询出丢失的REDO。

DATAGUARD的几种保护模式:最大保护,最大可用,最大性能最大保护是指除非REDO在至少一个STANDBY中可用,否则事务不能提交。

如果在某个STANDBY中不可用,则主数据库的操作被停止。

最大可用是指如果STANDBY不可用,主数据库仍然可以处理事务,只是在问题被纠正后,STANDBY和主数据库进行再同步。

这样的一个问题是:当再同步之前有必要FAILOVER时,有些数据可能会丢失。

最大性能是指主数据库的提交操作不等待STANDBY。

物理STANDBY可能的模式:只读模式(OPEN READONLY)和恢复模式(MANANGED RECOVERY)2、物理DATAGUARD实施主数据库的准备工作:FORCE LOGGING,ENABLE ARCHIVING,一个本地归档目的地。

dataguard

dataguard

三种保护模式
三种保护模式
1.最大保护 这种模式主备库之间数据是同步的。即主库提交的同时,备库会做相应的恢复。最大限度的保证了数据完整 性。不允许数据的丢失。 如果主备库之间络,或者备库出现问题会直接影响主库操作。导致主库宕机。 2.最大可用性 这种模式和"最大保护"基本上差不多。正常情况下,主备库之间是同步的。 当络或者备库出现问题时,不会影响到主库的宕机,主库会自动转换库"最大性能"模式,等待备库可用时, 将归档传输到备库做恢复。 可以把这种模式理解为"最大保护"和"最大性能"两种模式的中间体。 3.最大性能 这种模式保证主库性能最大化,主备库之间数据是异步传输的。即,主库日志归档以后才会传输到备用库, 在备库上使用归档日志文件做恢复操作。
Hale Waihona Puke 谢谢观看dataguard
甲骨文推出的高可用性数据库方案
01 方案概述
03 服务
目录
02 类型 04 三种保护模式
基本信息
DataGuard是甲骨文推出的一种高可用性数据库方案,在Oracle 8i之前被称为Standby Database。从 Oracle 9i开始,正式更名为Data Guard。它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实 现数据库快速切换与灾难性恢复。Data Guard只是在软件上对数据库进行设置,并不需要额外购买任何组件。用 户能够在对主数据库影响很小的情况下,实现主备数据库的同步。而主备机之间的数据差异只限于在线日志部分, 因此被不少企业用作数据容灾解决方案。
服务
服务
1.重做传输服务 控制重做数据从生产机传输到一个或多个备用库。 2.日志应用服务 2.1生产库上通过ARCH进程生成归档日志文件,然后传输到备用库,备用库再从归档日志中恢复数据 2.2实时模式时,生产库上的操作通过LGWR进程实时反映在备用库的备用日志文件中,备用库从备用日志文 件实时恢复数据。 3.角色切换 主备库用户角色的切换。

利用DATAGUARD迁移大数据量的单实例至RAC环境(附DG之GAP修复)v10-副本26

利用DATAGUARD迁移大数据量的单实例至RAC环境(附DG之GAP修复)v10-副本26

利用Dataguard迁移单实例至RAC环境第一章概述1.0 实验目的本文档以xx局数据质量平台(xx.xx.xx.xx)迁移至RAC环境,通过11g Dataguard 迁移的模拟测试。

并附加测试以xx局在归档缺失下Dataguard Gap修复案例背景的实验(另文档描述)。

拟通过该实验能够更了解整个迁移、修复存在的风险及提出相关的优化建议。

1.1 环境拓扑文档控制序号更改人版本号日期备注1 培植V1.0 2013-04-29 编写第二章DATAGUARD环境迁移2.0 RMAN恢复方式搭建STANDBY2.0.1 主库的备份1、开启归档startup mountalter database archivelog;2、开启强制日志ALTER DATABASE FORCE LOGGING;3、检查日志模式SQL> select name,log_mode,force_logging from gv$database; NAME LOG_MODE FOR--------- ------------ ---ORCL ARCHIVELOG YES4、数据库全库备份run{allocate channel c1 type disk;allocate channel c2 type disk;backup database format '/u01/rmanbak/Full_%U.bak';backup archivelog all format '/u01/rmanbak/ARC_%U.bak';backup device type disk format '/u01/rmanbak/standby_%U.ctl' current controlfile for standby;release channel c1;release channel c2;}5、备份片的生成情况,并拷贝备份集至rac的节点一[oracle@gfs3 ~]$ ls -lrt /u01/rmanbaktotal 1982188-rw-r----- 1 oracle oinstall 510877696 Jan 18 17:38 Full_02oud3b6_1_1.bak-rw-r----- 1 oracle oinstall 660815872 Jan 18 17:38 Full_01oud3b6_1_1.bak-rw-r----- 1 oracle oinstall 98304 Jan 18 17:38 Full_04oud3d9_1_1.bak-rw-r----- 1 oracle oinstall 9830400 Jan 18 17:38 Full_03oud3d8_1_1.bak-rw-r----- 1 oracle oinstall 838291968 Jan 18 17:39 ARC_05oud3dr_1_1.bak-rw-r----- 1 oracle oinstall 9830400 Jan 18 17:40 standby_06oud3fu_1_1.ctl拷贝备份集至RAC节点上:[oracle@gfs3 u01]$ scp -r rmanbak 192.168.1.10:/u012.0.2 Dataguard的配置1、主库参数文件配置(需备份好原来的参数文件)*.compatible='11.2.0.0.0'*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/orad ata/orcl/control02.ctl'*.db_block_size=8192*.db_domain=''*.db_name='orcl'*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'*.db_recovery_file_dest_size=4322230272*.diagnostic_dest='/u01/app/oracle'*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'*.log_archive_format='%t_%s_%r.dbf'*.memory_target=451936256*.open_cursors=300*.processes=300*.remote_login_passwordfile='none'*.service_names='orcl'*.sessions=335*.undo_tablespace='UNDOTBS1'*.FAL_CLIENT='primary'*.FAL_SERVER='standby'*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcl_st)'*.LOG_ARCHIVE_DEST_1='LOCATION=/arch2、备库参数文件的配置(RAC环境需注意标红部分)ol02.ctl'*.db_block_size=8192*.db_create_file_dest='+DATA'*.db_name='orcl'*.db_recovery_file_dest='+DATA'*.db_recovery_file_dest_size=48318382080*.diagnostic_dest='/u01/app/oracle'*.dispatchers='(PROTOCOL=TCP)(SERVICE=orclXDB)' orcl1.instance_number=1orcl2.instance_number=1*.log_archive_format='%t_%s_%r.dbf'*.memory_target=797152000*.nls_language='AMERICAN'*.open_cursors=300*.processes=350*.remote_listener='grid-scan:1521'*.remote_login_passwordfile='exclusive'*.session_cached_cursors=545*.sessions=280orcl1.thread=1orcl2.thread=2*.undo_management='AUTO'orcl2.undo_tablespace='UNDOTBS2'orcl1.undo_tablespace='UNDOTBS1'*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcl_st)'*.LOG_ARCHIVE_DEST_1='LOCATION=/arch1VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl_st'orcl1.LOG_ARCHIVE_DEST_2='SERVICE=primary LGWR ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) DB_UNIQUE_NAME=orcl'*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'*.LOG_ARCHIVE_FORMAT='%t_%s_%r.arc'*.LOG_ARCHIVE_MAX_PROCESSES=6*.LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/orcl/','+DATA/orcl/DATAF ILE/'*.DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/orcl/','+DATA/orcl/DATAFI LE/'*.remote_login_passwordfile='EXCLUSIVE'*.STANDBY_FILE_MANAGEMENT='AUTO'*.FAL_CLIENT='standby'*.FAL_SERVER='primary'3、建立备库的spfile2.0.3 STANDBY的初始化Finished restore at 2014-04-25 22:33:30RMAN>ASMCMD> lscontrol01.ctlcontrol02.ctlcurrent.257.845850809current.258.845850811ASMCMD> pwd+data/orcl/controlfileASMCMD>2、注册备份集RMAN> catalog start with '/home/oracle/rmanbak/';searching for all files that match the pattern /home/oracle/rmanbak/ List of Files Unknown to the Database=====================================File Name: /home/oracle/rmanbak/ARC_05oud3dr_1_1.bakFile Name: /home/oracle/rmanbak/standby_06oud3fu_1_1.ctlFile Name: /home/oracle/rmanbak/Full_04oud3d9_1_1.bakFile Name: /home/oracle/rmanbak/Full_01oud3b6_1_1.bakFile Name: /home/oracle/rmanbak/Full_03oud3d8_1_1.bakFile Name: /home/oracle/rmanbak/Full_02oud3b6_1_1.bakDo you really want to catalog the above files (enter YES or NO)? yes cataloging files...cataloging doneList of Cataloged Files=======================File Name: /home/oracle/rmanbak/ARC_05oud3dr_1_1.bakFile Name: /home/oracle/rmanbak/standby_06oud3fu_1_1.ctlFile Name: /home/oracle/rmanbak/Full_04oud3d9_1_1.bakFile Name: /home/oracle/rmanbak/Full_01oud3b6_1_1.bakFile Name: /home/oracle/rmanbak/Full_03oud3d8_1_1.bakFile Name: /home/oracle/rmanbak/Full_02oud3b6_1_1.bak3、恢复数据文件RMAN>run {allocate channel c1 type disk;allocate channel c2 type disk;restore database;release channel c1;release channel c2;}报错信息如下:原因分析:这里可以看出,单实例和RAC实例存储数据文件的存储方式肯定是不相同的,那我们使用rman 的duplicate功能时,使用log_file_name_convert 和db_file_name_convert 来进行转换才会生效,本次使用的是RMAN的异机恢复,所以只能在restore的时候用set newname来进行转换。

data guard验证方法

data guard验证方法

尊敬的读者:今天我想和大家共享的是有关“data guard验证方法”的话题。

在信息技术领域,数据备份和恢复一直是一个至关重要的问题。

在数据库系统中,Data Guard是一种用于确保数据备份和灾难恢复的技术,因此对其验证方法的探讨具有重要的意义。

我们应该明确Data Guard的基本概念。

Data Guard是Oracle数据库系统提供的一种数据保护和灾难恢复解决方案,它通过创建一个或多个远程备用数据库来确保主数据库的数据备份和灾难恢复。

Data Guard验证方法的研究和实践,可以帮助数据库管理员更好地了解和掌握Data Guard技术,提高数据备份和灾难恢复的可靠性和安全性。

在研究Data Guard验证方法时,我们可以从以下几个方面展开讨论:1. 数据同步验证:在Data Guard的架构中,数据同步是一个关键的环节。

我们需要关注主备数据库之间数据同步的效率和准确性。

可以通过检查主备数据库的日志文件和数据文件,对比数据同步的时间和内容,来验证数据同步的完整性和稳定性。

2. 故障转移验证:当主数据库发生故障时,Data Guard需要能够快速地实现故障转移,将备用数据库切换为主数据库,继续提供数据访问和服务功能。

我们可以通过模拟故障的场景,测试Data Guard的故障转移能力,验证其是否能够在短时间内完成切换,并保证数据的一致性和可用性。

3. 数据完整性验证:数据的完整性是数据库系统的重要特性之一。

在Data Guard环境下,我们需要关注主备数据库之间数据的一致性和完整性。

可以通过差异对比和数据校验的方式,验证主备数据库的数据是否完整和一致,确保数据备份和灾难恢复的有效性。

4. 性能监控验证:数据备份和恢复的性能是衡量备份方案好坏的重要指标。

在研究Data Guard验证方法时,我们可以关注备用数据库的性能监控和优化。

可以通过性能测试和监控工具,对备用数据库的性能进行评估和优化,提高数据备份和灾难恢复的效率和可靠性。

物理Data Guard维护篇(二)

物理Data Guard维护篇(二)

Data Guard维护篇(二)1、创建表空间或者数据文件先看搭建Data Guard时的两个参数:DB_FILE_NAME_CONVERT = ’file1’, ‘file2’LOG_FILE_NAME_CONVERT = ‘file1’, ‘file2’以上两个参数的作用相似,即primary数据库和standby数据库的数据文件或者日志文件的路径可以不相同,通过该参数实现自动装换,file1为转换前文件名,file2为转换后文件名STANDBY_FILE_MANAGEMENT=AUTO/MANUAL该参数作用是设置在数据库数据文件发生修改时,standby数据库数据文件相应的管理方式,AUTO为自动管理,MANNUAL则是需要手动管理通过测试来了解一下:首先将STANDBY_FILE_MANAGEMENT的值置为AUTO(stadnby数据库)standby > alter system set standby_file_management = auto;System altered.standby > show parameter standby_file_management;NAME TYPE V ALUE--------------------------------------------- --------------- ---------------standby_file_management string AUTOprimary数据库创建一个新的表空间primary > create tablespace DG_TEST datafile '/u01/app/oracle/oradata/orcl/dg_test01.dbf' size10m;Tablespace created.primary > col file_name for a45primary > col tablespace_name for a20primary > /FILE_NAME TABLESPACE_NAME--------------------------------------------- - -------------------/u01/app/oracle/oradata/orcl/users01.dbf USERS/u01/app/oracle/oradata/orcl/sysaux01.dbf SYSAUX/u01/app/oracle/oradata/orcl/undotbs01.dbf UNDOTBS1/u01/app/oracle/oradata/orcl/system01.dbf SYSTEM/u01/app/oracle/oradata/orcl/example01.dbf EXAMPLE/u01/app/oracle/oradata/orcl/dg_test01.dbf DG_TEST手动切换一下日志primary > alter system switch logfile;System altered.standby数据库执行REDO应用并查看一下是数据文件信息standby > alter database recover managed standby database disconnect from session;Database altered.standby > alter database recover managed standby database cancel;Database altered.standby > col file_name for a45standby > col tablespace_name for a20standby > select file_name,tablespace_name from dba_data_files;FILE_NAME TABLESPACE_NAME--------------------------------------------- --------------------/u01/app/oracle/oradata/orcl_s/users01.dbf USERS/u01/app/oracle/oradata/orcl_s/sysaux01.dbf SYSAUX/u01/app/oracle/oradata/orcl_s/undotbs01.dbf UNDOTBS1/u01/app/oracle/oradata/orcl_s/system01.dbf SYSTEM/u01/app/oracle/oradata/orcl_s/example01.dbf EXAMPLE/u01/app/oracle/oradata/orcl_s/dg_test01.dbf DG_TEST此时会发现,在primary数据库创建的表空间,已经在standby数据库体现出来,并且根据DB_FILE_CONVERZT参数的设置,将新的数据文件创建在了一个standby指定的路径下将STANDBY_FILE_MANAGEMENT参数设置为MANUALstandby > alter system set standby_file_management = manual;System altered.standby> show parameter standby_file_management;NAME TYPE V ALUE------------------------------------ ----------- ------------------------------standby_file_management string MANUALprimary数据库添加一个新的数据文件primary > alter tablespace DG_TEST add datafile '/u01/app/oracle/oradata/orcl/dg_test02.dbf' size 10m;Tablespace altered.primary > alter system switch logfile;System altered.standby 数据库再次查看结果standby > select status from v$instance;STA TUS------------MOUNTEDstandby > alter database recover managed standby database disconnect from session;Database altered.此时如果取消REDO应用会报错,原因是REDO中指定的新添加的数据文件在standby数据库中没有自动创建SQL> alter database recover managed standby database cancel;alter database recover managed standby database cancel*ERROR at line 1:ORA-16136: Managed Standby Recovery not activeSQL> col name for a45SQL> col file# for 999999SQL> select name,file# from v$datafile;NAME FILE#--------------------------------------------- -------/u01/app/oracle/oradata/orcl_s/system01.dbf 1/u01/app/oracle/oradata/orcl_s/undotbs01.dbf 2/u01/app/oracle/oradata/orcl_s/sysaux01.dbf 3/u01/app/oracle/oradata/orcl_s/users01.dbf 4/u01/app/oracle/oradata/orcl_s/example01.dbf 5/u01/app/oracle/oradata/orcl_s/dg_test01.dbf 6/u01/app/oracle/10.2.0/db_1/dbs/UNNAMED00007 77 rows selected可以看到,这里虽然也多出了一个数据文件,但明显跟我们新添加的数据文件不匹配,这时就需要DBA介入了,修改一下该数据文件的路径standby > alter database create datafile '/u01/app/oracle/10.2.0/db_1/dbs/UNNAMED00007' as'/u01/app/oracle/oradata/orcl_s/dg_test021.dbf';Database altered.再次启动REDO应用并打开数据库查看结果standby > alter database recover managed standby database disconnect;standby > alter database recover managed standby database cancel;Database altered.standby > alter database open;Database altered.standby > col tablespace_name for a20standby > col file_name for a45standby > select tablespace_name,file_name from dba_data_files;TABLESPACE_NAME FILE_NAME-------------------- ---------------------------------------------USERS /u01/app/oracle/oradata/orcl_s/users01.dbfSYSAUX /u01/app/oracle/oradata/orcl_s/sysaux01.dbfUNDOTBS1 /u01/app/oracle/oradata/orcl_s/undotbs01.dbfSYSTEM /u01/app/oracle/oradata/orcl_s/system01.dbfEXAMPLE /u01/app/oracle/oradata/orcl_s/example01.dbfDG_TEST /u01/app/oracle/oradata/orcl_s/dg_test01.dbfDG_TEST /u01/app/oracle/oradata/orcl_s/dg_test021.dbf7 rows selected.2、删除表空间(在删除表空间时也是同样的效果)在参数STANDBY_FILE_MANAGEMENT设置为AUTO的时候无需人为的进行管理,与添加datafile一致,但是当该参数设置为MANUAL时,有一点需要注意:设置standby数据库STANDBY_FILE_MANAGEMENT参数为MANUALSQL> alter system set standby_file_management=manual;System altered.SQL> show parameter standby_file_managementNAME TYPE V ALUE------------------------------------ ----------- ---------------- --------------standby_file_management string MANUALprimary数据库删除一个数据文件SQL> alter tablespace dg_test drop datafile '/u01/app/oracle/oradata/orcl/dg_test02.dbf';SQL> alter system switch logfile;System altered.primary启动REDO,接收数据SQL> alter database recover managed standby database disconnect from session;SQL> alter database recover managed standby database cancel;Database altered.SQL> alter database open;Database altered.SQL> select file_name,tablespace_name from dba_data_files;FILE_NAME TABLESPACE_NAME--------------------------------------------- --------------------/u01/app/oracle/oradata/orcl_s/users01.dbf USERS/u01/app/oracle/oradata/orcl_s/sysaux01.dbf SYSAUX/u01/app/oracle/oradata/orcl_s/undotbs01.dbf UNDOTBS1/u01/app/oracle/oradata/orcl_s/system01.dbf SYSTEM/u01/app/oracle/oradata/orcl_s/example01.dbf EXAMPLE/u01/app/oracle/oradata/orcl_s/dg_test01.dbf DG_TEST表面上dg_test02.dbf数据文件已经被删除,可是在操作系统中并未真正删除该数据文件SQL> !ls /u01/app/oracle/oradata/orcl_s/dg_test01.dbf orcl2control01.ctl redo01.log sysaux01.dbf undotbs01.dbfdg_test02.dbf orcl2control02.ctl redo02.log system01.dbf users01.dbfexample01.dbf orcl2control03.ctl redo03.log temp01.dbf还需手动去删除废弃的数据文件SQL> !rm -rf /u01/app/oracle/oradata/orcl_s/dg_test02.dbf3、重命名数据文件重命名数据文件时,不管STANDBY_FILE_MANGEMENT的值设置AUTO或者是MANUAL,都需要DBA手动的去在DG环境中进行修改standby > show parameter standby_file_management;NAME TYPE V ALUE------------------------------------ ----------- ----------------- -------------standby_file_management string AUTO主库重命名数据文件primary > alter tablespace DG_TEST offline;Tablespace altered.primary > ! mv /u01/app/oracle/oradata/orcl/dg_test_01.dbf/u01/app/oracle/oradata/orcl/dg_test_02.dbfprimary > alter tablespace DG_TEST rename datafile'/u01/app/oracle/oradata/orcl/dg_test_01.dbf' to '/u01/app/oracle/oradata/orcl/dg_test_02.dbf'; Tablespace altered.primary > alter tablespace DG_TEST online;Tablespace altered.primary > select name from v$datafile;NAME----------------------------------------------------/u01/app/oracle/oradata/orcl/system01.dbf/u01/app/oracle/oradata/orcl/undotbs01.dbf/u01/app/oracle/oradata/orcl/sysaux01.dbf/u01/app/oracle/oradata/orcl/users01.dbf/u01/app/oracle/oradata/orcl/example01.dbf/u01/app/oracle/oradata/orcl/dg_test_02.dbf6 rows selected.primary > alter system switch logfile;System altered.standby数据库查看是否有变化standby > alter database recover managed standby database disconnect from session;Database altered.standby > alter database recover managed standby database cancel;Database altered.standby > alter database open;Database altered.standby > select file_name,tablespace_name from dba_data_files;FILE_NAME TABLESPACE_NAME--------------------------------------------- --------------------/u01/app/oracle/oradata/orcl_s/users01.dbf USERS/u01/app/oracle/oradata/orcl_s/sysaux01.dbf SYSAUX/u01/app/oracle/oradata/orcl_s/undotbs01.dbf UNDOTBS1/u01/app/oracle/oradata/orcl_s/system01.dbf SYSTEM/u01/app/oracle/oradata/orcl_s/example01.dbf EXAMPLE/u01/app/oracle/oradata/orcl_s/dg_test_01.dbf DG_TEST6 rows selected.从上面的结果来看,即使是STANDBY_FILE_MANAGEMENT参数设置为AUTO,对数据文件的修改也无法体现到standby数据库手工在standby数据库对数据文件再次重命名(standby数据库无需将表空间置为offline)standby > ! mv /u01/app/oracle/oradata/orcl_s/dg_test_01.dbf/u01/app/oracle/oradata/orcl_s/dg_test_02.dbfstandby > alter database rename file '/u01/app/oracle/oradata/orcl_s/dg_test_01.dbf' to'/u01/app/oracle/oradata/orcl_s/dg_test_02.dbf';alter database rename file '/u01/app/oracle/oradata/orcl_s/dg_test_01.dbf' to'/u01/app/oracle/oradata/orcl_s/dg_test_02.dbf'*ERROR at line 1:ORA-01511: error in renaming log/data filesORA-01275: Operation RENAME is not allowed if standby file management isautomatic.在STANDBY_FILE_MANGEMENT参数设置为AUTO时不允许去重命名文件,将该参数的值改为MANUAL即可standby > alter system set standby_file_management=manual;System alterstandby > alter database rename file '/u01/app/oracle/oradata/orcl_s/dg_test_01.dbf' to'/u01/app/oracle/oradata/orcl_s/dg_test_02.dbf';Database altered.standby > alter database recover managed standby database disconnect from session;Database altered.standby > alter database recover managed standby database cancel;Database altered.standby > alter database open;Database altered.standby > select file_name,tablespace_name from dba_data_files;FILE_NAME TABLESPACE_NAME--------------------------------------------- --------------------/u01/app/oracle/oradata/orcl_s/users01.dbf USERS/u01/app/oracle/oradata/orcl_s/sysaux01.dbf SYSAUX/u01/app/oracle/oradata/orcl_s/undotbs01.dbf UNDOTBS1/u01/app/oracle/oradata/orcl_s/system01.dbf SYSTEM/u01/app/oracle/oradata/orcl_s/example01.dbf EXAMPLE/u01/app/oracle/oradata/orcl_s/dg_test_02.dbf DG_TEST6 rows selected.数据文件已经重命名我们想要的结果4、DG的监控primary > select PROCESS,CLIENT_PROCESS,SEQUENCE#,STATUS fromv$managed_standby;PROCESS CLIENT_P SEQUENCE# STATUS--------- -------- ---------- ------------ARCH ARCH 50 CLOSINGARCH ARCH 50 CLOSINGv$managed_standby视图用于显示standby数据库相关进程的当前状态,以上是常用的几个进程,其中:PROCESS:进程名称,如ARCH,FRS,MRPO等CLIENT_P:对应的primary数据库的进程名称SEQUENCE#:归档序号STA TUS:进程状态,对应的有以下几个值:ALLOCATED:准备连接primary数据库ATTACHED:正在连接primary数据库CONNECTED:已经连接到primary数据库IDLE:空闲中RECEIVING:归档文件接收中OPENING:归档文件处理中CLOSING:归档文件已经处理完毕,结尾中WRITING:REDO数据库写向归档文件中WAIT_FOR_LOG:等待新的REDO数据中WAIT_FOR_GAP:归档有中断,正在等待中断部分的REDO数据APPL YING_LOG:应用REDO数据中查看REDO应用进程primary > selectDEST_NAME,DB_UNIQUE_NAME,ARCHIVED_THREAD#,ARCHIVED_SEQ#,APPLIED_ THREAD#,APPLIED_SEQ# from v$archive_dest_status where status='V ALID';检查归档文件信息primary > select NAME,CREATOR,SEQUENCE#,COMPLETION_TIME from v$archived_log; NAME CREATOR SEQUENCE# COMPLETIO ---------------------------------------- ------- ---------- ---------orcl_s.2_tns ARCH 46 03-MAR-14 /u01/arch/1_47_840520047.dbf ARCH 47 03-MAR-14orcl_s.2_tns ARCH 47 03-MAR-14 /u01/arch/1_48_840520047.dbf ARCH 48 03-MAR-14 orcl_s.2_tns ARCH 4803-MAR-14/u01/arch/1_49_840520047.dbf ARCH 49 03-MAR-14 orcl_s.2_tns ARCH 49 03-MAR-14 /u01/arch/1_50_840520047.dbf ARCH 50 03-MAR-14 orcl_s.2_tns ARCH 50 03-MAR-14物理standby通过V$LOG_HISTORY视图查看归档历史standby > select FIRST_TIME,FIRST_CHANGE#,NEXT_CHANGE#,SEQUENCE# fromv$log_history;FIRST_TIM FIRST_CHANGE# NEXT_CHANGE# SEQUENCE#--------- ------------- ------------ ----------26-FEB-14 446075 474322 126-FEB-14 474322 506399 226-FEB-14 506399 530816 326-FEB-14 530816 570738 427-FEB-14 570738 574176 527-FEB-14 574176 616246 628-FEB-14 616246 648807 728-FEB-14 648807 649453 828-FEB-14 649453 650960 928-FEB-14 650960 652228 1028-FEB-14 652228 672928 11查询当前数据库的信息primary > selectDB_UNIQUE_NAME,DA TABASE_ROLE,OPEN_MODE,PROTECTION_MODE,PROTECTI ON_LEVEL,SWITCHOVER_STA TUS from v$database;查看当前REDO应用和REDO传输状态standby > select process,status,thread#,sequence#,block#,blocks from v$managed_standby; PROCESS STATUS THREAD# SEQUENCE# BLOCK# BLOCKS --------- ------------ ---------- ---------- --------------------ARCH CONNECTED 0 0 0 0 ARCH CONNECTED 0 0 0 0RFS IDLE 0 0 0 0查看是否启用的实时应用primary > select RECOVERY_MODE from v$archive_dest_status where DEST_ID=2;RECOVERY_MODE-----------------------UNKNOWN查看DATA GUARD时间primary > select MESSAGE from v$dataguard_status;MESSAGE------------------------------------------------------------------------------------------------------------------- ARC0: Archival startedARC1: Archival startedARC1: Becoming the 'no FAL' ARCHARC1: Becoming the 'no SRL' ARCHARC2: Archival startedARC0: Becoming the heartbeat ARCHARCH: Possible network disconnect with primary databaseARCH shutting downARC2: Archival stoppedARC0: Attempting destination LOG_ARCHIVE_DEST_2 network reconnect (3113)ARC0: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned。

医院信息系统中Oracle Data Guard部署与实践

医院信息系统中Oracle Data Guard部署与实践
【 摘 要】 目的 : 建立 O r a c l e 1 l g D a t a G u a r d和 角 色转 换 过 程 , 利用D a t a G u a r d根 据 实 际情 况 搭 建 容 灾 环 境 。方 法 : 利用
O r a c l e 1 l g的 新特 性 来 创 建 D a t a G u a r d , 并 采 用 多种 主 、 备 角 色转 换 的 方式 来 实现 数 据库 的容 灾。 结果 : D a t a G u a r d在 有 限 的投 入 下最 小化 了数 据 库 在 计 划和 非计 划 中的 宕机 时 间 , 以更 简便 有 效 的 方式 实现 了 医院信 息 系统 的容 灾。结 论 :
[ 关 键 词】 O r a c l e ; D a t a G u a r d ; 高可用; 容 3 0 9 . 3 [ 文献 标 志 码】 A [ 文 章 编 号] 1 0 0 3 — 8 8 6 8 ( 2 0 1 3 ) 0 5 — 0 6 2 — 0 5
H o s p i t a l D i g i t a l i z a t i o n『 医 院 数 字 化
医院信息系统中 Or a c l e D a t a G u a r d部署与实践
宋 亮
( 河北省保 定 市第一 中心 医院信 息科 , 河北保 定 0 7 1 0 0 0 )
wa y . C O n  ̄
l O l l A s a h i g h — a v a i l a b i l i t y s o l u t i o n o f Or a c l e d a t a b a s e ,D a t a Gu a r d p r o v i d e s a d i s a s t e r r e c o v e r y mo d e w i t h a l o w

大数据监视实验报告(3篇)

大数据监视实验报告(3篇)

第1篇一、实验目的本次实验旨在让学生掌握大数据监视的基本原理和方法,熟悉大数据监视工具的使用,并能根据实际需求设计并实施大数据监视方案。

通过本次实验,学生应能够:1. 了解大数据监视的概念和意义;2. 熟悉大数据监视的基本流程;3. 掌握大数据监视工具的使用;4. 学会设计并实施大数据监视方案。

二、实验环境1. 操作系统:Linux Ubuntu 16.042. 编程语言:Python3.63. 大数据监视工具:Zabbix、Grafana、Kafka4. 数据源:模拟生产环境数据三、实验内容1. 大数据监视基本流程(1)数据采集:通过Zabbix等工具,采集生产环境中的服务器、网络、应用等数据。

(2)数据处理:对采集到的数据进行清洗、过滤、聚合等操作,以便于后续分析。

(3)数据存储:将处理后的数据存储到数据库或时间序列数据库中,如InfluxDB。

(4)数据可视化:利用Grafana等工具,将存储的数据进行可视化展示。

(5)报警与监控:根据预设的阈值和规则,对数据进行实时监控,并触发报警。

2. 实验步骤(1)搭建Zabbix监控系统1. 安装Zabbix服务器和客户端;2. 配置Zabbix服务器,包括创建用户、用户组、监控项、触发器和动作等;3. 安装Zabbix代理,配置监控项和触发器。

(2)搭建Kafka消息队列1. 安装Kafka服务器;2. 创建主题,并配置相应的分区和副本;3. 编写生产者程序,向Kafka主题发送数据;4. 编写消费者程序,从Kafka主题中读取数据。

(3)搭建InfluxDB时间序列数据库1. 安装InfluxDB服务器;2. 创建数据库和用户;3. 编写脚本,将Kafka消息队列中的数据写入InfluxDB数据库。

(4)搭建Grafana可视化平台1. 安装Grafana服务器;2. 配置Grafana,包括创建数据源、仪表板和面板等;3. 利用Grafana可视化展示InfluxDB数据库中的数据。

dataguard 实验过程

dataguard 实验过程

Dataguard 的使用//利用rman 开始对主库进行备份RMAN>RMAN> BACKUP DEVICE TYPE DISK FORMAT '/opt/oracle/stage/%U' DATABASE PLUS ARCHIVELOG;Starting backup at 29-JUN-10current log archivedusing channel ORA_DISK_1channel ORA_DISK_1: starting archive log backupsetchannel ORA_DISK_1: specifying archive log(s) in backup setinput archive log thread=2 sequence=12732 recid=80983 stamp=722945815channel ORA_DISK_1: starting piece 1 at 29-JUN-10channel ORA_DISK_1: finished piece 1 at 29-JUN-10piece handle=/opt/oracle/stage/q4lhehq1_1_1 tag=TAG20100629T101700 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:37Finished backup at 29-JUN-10Starting backup at 29-JUN-10using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backupsetchannel ORA_DISK_1: specifying datafile(s) in backupsetinput datafile fno=00002 name=+DATADG/undotbs01.dbfinput datafile fno=00004 name=+DATADG/undotbs02.dbfinput datafile fno=00007 name=+DATADG/sale01.dbfinput datafile fno=00008 name=+DATADG/cpc01.dbfinput datafile fno=00009 name=+DATADG/cpc_ix01.dbfinput datafile fno=00010 name=+DATADG/sale02.dbfinput datafile fno=00006 name=+DATADG/sale_ix01.dbfinput datafile fno=00011 name=+DATADG/sale_ix02.dbfinput datafile fno=00005 name=+DATADG/users01.dbfinput datafile fno=00003 name=+DATADG/sysaux01.dbfinput datafile fno=00001 name=+DATADG/system01.dbfchannel ORA_DISK_1: starting piece 1 at 29-JUN-10channel ORA_DISK_1: finished piece 1 at 29-JUN-10piece handle=/opt/oracle/stage/q5lhehr6_1_1 tag=TAG20100629T101814 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:03:18Finished backup at 29-JUN-10Starting backup at 29-JUN-10current log archivedusing channel ORA_DISK_1channel ORA_DISK_1: starting archive log backupsetchannel ORA_DISK_1: specifying archive log(s) in backup setinput archive log thread=1 sequence=27832 recid=80986 stamp=722946094input archive log thread=2 sequence=12733 recid=80985 stamp=722946093channel ORA_DISK_1: starting piece 1 at 29-JUN-10channel ORA_DISK_1: finished piece 1 at 29-JUN-10piece handle=/opt/oracle/stage/q6lhei1g_1_1 tag=TAG20100629T102135 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02Finished backup at 29-JUN-10Starting Control File and SPFILE Autobackup at 29-JUN-10piece handle=/home/rmanbak/ctl_c-2325461804-20100629-02 comment=NONEFinished Control File and SPFILE Autobackup at 29-JUN-10// 生成备库所需要的控制文件RMAN>BACKUP DEVICE TYPE DISK FORMAT '/opt/oracle/stage/%U' CURRENT CONTROLFILE FOR STANDBY;Starting backup at 29-JUN-10using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backupsetchannel ORA_DISK_1: specifying datafile(s) in backupsetincluding standby control file in backupsetchannel ORA_DISK_1: starting piece 1 at 29-JUN-10channel ORA_DISK_1: finished piece 1 at 29-JUN-10piece handle=/opt/oracle/stage/q8lhei7h_1_1 tag=TAG20100629T102449 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:04Finished backup at 29-JUN-10Starting Control File and SPFILE Autobackup at 29-JUN-10piece handle=/home/rmanbak/ctl_c-2325461804-20100629-03 comment=NONEFinished Control File and SPFILE Autobackup at 29-JUN-10RMAN> exditRMAN-00571:===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571:===========================================================RMAN-00558: error encountered while parsing input commandsRMAN-01009: syntax error: found "identifier": expecting one of: "allocate, alter, backup, beginline, blockrecover, catalog, change, connect, copy, convert, create, crosscheck, configure, duplicate, debug, delete, drop, exit, endinline, flashback, host, {, library, list, mount, open, print, quit, recover, register, release, replace, report, renormalize, reset, restore, resync, rman, run, rpctest, set, setlimit, sql, switch, spool, startup, shutdown, send, show, test, transport, upgrade, unregister, validate"RMAN-01008: the bad identifier was: exditRMAN-01007: at line 1 column 1 file: standard inputRMAN> exitRecovery Manager complete.[oracle@rac2 ~]$ cd /opt/oracle/stage/[oracle@rac2 stage]$ lsaa q3lhehot_1_1 q4lhehq1_1_1 q5lhehr6_1_1 q6lhei1g_1_1 q8lhei7h_1_1[oracle@rac2 stage]$ ls -alhtotal 19Gdrwxr-xr-x 2 oracle oinstall 4.0K Jun 29 10:24 .drwxr-xr-x 25 root root 4.0K Apr 29 14:12 ..-rw-r--r-- 1 root root 0 Apr 29 14:13 aa-rw-r----- 1 oracle oinstall 2.3G Jun 29 10:17 q3lhehot_1_1-rw-r----- 1 oracle oinstall 2.3G Jun 29 10:18 q4lhehq1_1_1-rw-r----- 1 oracle oinstall 14G Jun 29 10:21 q5lhehr6_1_1-rw-r----- 1 oracle oinstall 3.0M Jun 29 10:21 q6lhei1g_1_1-rw-r----- 1 oracle oinstall 46M Jun 29 10:24 q8lhei7h_1_1[oracle@rac2 stage]$ scp q* 10.1.2.32:/opt/oracle/stage/oracle@10.1.2.32's password:Permission denied, please try again.oracle@10.1.2.32's password:Permission denied, please try again.oracle@10.1.2.32's password:Permission denied (publickey,gssapi-with-mic,password).lost connection// 拷贝主库数据到备库[oracle@rac2 stage]$ scp q* 10.1.2.32:/opt/oracle/stage/oracle@10.1.2.32's password:Permission denied, please try again.oracle@10.1.2.32's password:[oracle@rac2 stage]$ su - rootPassword:su: incorrect password[oracle@rac2 stage]$ exitlogout[root@rac2 rmanbak]# cd /opt/oracle/stage/[root@rac2 stage]# lsaa q3lhehot_1_1 q4lhehq1_1_1 q5lhehr6_1_1 q6lhei1g_1_1 q8lhei7h_1_1[root@rac2 stage]# scp q* 10.1.2.32:/opt/oracle/stage/root@10.1.2.32's password:Permission denied, please try again.root@10.1.2.32's password:Permission denied, please try again.root@10.1.2.32's password:[root@rac2 stage]# scp q* 10.1.2.27:/opt/oracle/stage/[root@standby stage]# su - oracle// 检查备库与主库的tnsname.ora[oracle@standby ~]$ tnsping ldTNS Ping Utility for Linux: Version 10.2.0.4.0 - Production on 29-JUN-2010 10:59:13 Copyright (c) 1997, 2007, Oracle. All rights reserved.Used parameter files:Used TNSNAMES adapter to resolve the aliasAttempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ld)))OK (20 msec)Recovery Manager complete.[oracle@standby ~]$ sqlplus /nologSQL*Plus: Release 10.2.0.4.0 - Production on Tue Jun 29 11:00:23 2010Copyright (c) 1982, 2007, Oracle. All Rights Reserved.SQL> conn /as sysdbaConnected to an idle instance.SQL> startup mountlSP2-0714: invalid combination of STARTUP optionsSQL> startup mount;ORA-32004: obsolete and/or deprecated parameter(s) specifiedORACLE instance started.Total System Global Area 171966464 bytesFixed Size 2082496 bytesVariable Size 113248576 bytesDatabase Buffers 50331648 bytesRedo Buffers 6303744 bytesDatabase mounted.SQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options// 通过rman创建备库[oracle@standby ~]$ rman target sys/111111@ld auxiliary /Recovery Manager: Release 10.2.0.4.0 - Production on Tue Jun 29 11:01:52 2010Copyright (c) 1982, 2007, Oracle. All rights reserved.connected to target database: LD (DBID=2325461804)connected to auxiliary database: LD (not mounted)// 开始复制备库RMAN> DUPLICATE TARGET DATABASE FOR STANDBY nofilenamecheck;---注意如果备份和恢复文件的目录结构不一致的时候,需要重新注册备份文件的目录CA TALOG START WITH '/opt/oracle/stage/';Starting Duplicate Db at 29-JUN-10using target database control file instead of recovery catalogallocated channel: ORA_AUX_DISK_1channel ORA_AUX_DISK_1: sid=36 devtype=DISKcontents of Memory Script:{restore clone standby controlfile;sql clone 'alter database mount standby database';}executing Memory ScriptStarting restore at 29-JUN-10using channel ORA_AUX_DISK_1channel ORA_AUX_DISK_1: starting datafile backupset restorechannel ORA_AUX_DISK_1: restoring control filechannel ORA_AUX_DISK_1: reading from backup piece /opt/oracle/stage/q8lhei7h_1_1 channel ORA_AUX_DISK_1: restored backup piece 1piece handle=/opt/oracle/stage/q8lhei7h_1_1 tag=TAG20100629T102449channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02output filename=/opt/app/oracle/product/10.2.0/db_1/dbs/cntrlsd.dbfFinished restore at 29-JUN-10sql statement: alter database mount standby databasereleased channel: ORA_AUX_DISK_1contents of Memory Script:{set newname for tempfile 1 to"+DA TADG/temp01.dbf";switch clone tempfile all;set newname for datafile 1 to"+DA TADG/system01.dbf";set newname for datafile 2 to"+DA TADG/undotbs01.dbf";set newname for datafile 3 to"+DA TADG/sysaux01.dbf";set newname for datafile 4 to"+DA TADG/undotbs02.dbf";set newname for datafile 5 to"+DA TADG/users01.dbf";set newname for datafile 6 to"+DA TADG/sale_ix01.dbf";set newname for datafile 7 to"+DA TADG/sale01.dbf";set newname for datafile 8 to"+DA TADG/cpc01.dbf";set newname for datafile 9 to"+DA TADG/cpc_ix01.dbf";set newname for datafile 10 to"+DA TADG/sale02.dbf";set newname for datafile 11 to"+DA TADG/sale_ix02.dbf";restorecheck readonlyclone database;}executing Memory Scriptexecuting command: SET NEWNAMErenamed temporary file 1 to +DA TADG/temp01.dbf in control file executing command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEStarting restore at 29-JUN-10allocated channel: ORA_AUX_DISK_1channel ORA_AUX_DISK_1: sid=36 devtype=DISKchannel ORA_AUX_DISK_1: starting datafile backupset restorechannel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set restoring datafile 00001 to +DA TADG/system01.dbfrestoring datafile 00002 to +DA TADG/undotbs01.dbfrestoring datafile 00003 to +DA TADG/sysaux01.dbfrestoring datafile 00004 to +DA TADG/undotbs02.dbfrestoring datafile 00005 to +DA TADG/users01.dbfrestoring datafile 00006 to +DA TADG/sale_ix01.dbfrestoring datafile 00007 to +DA TADG/sale01.dbfrestoring datafile 00008 to +DA TADG/cpc01.dbfrestoring datafile 00009 to +DA TADG/cpc_ix01.dbfrestoring datafile 00010 to +DA TADG/sale02.dbfrestoring datafile 00011 to +DATADG/sale_ix02.dbfchannel ORA_AUX_DISK_1: reading from backup piece /opt/oracle/stage/q5lhehr6_1_1 channel ORA_AUX_DISK_1: restored backup piece 1piece handle=/opt/oracle/stage/q5lhehr6_1_1 tag=TAG20100629T101814channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:18:55Finished restore at 29-JUN-10contents of Memory Script:{switch clone datafile all;}executing Memory Scriptdatafile 1 switched to datafile copyinput datafile copy recid=12 stamp=722949665 filename=+DATADG/system01.dbf datafile 2 switched to datafile copyinput datafile copy recid=13 stamp=722949666 filename=+DATADG/undotbs01.dbf datafile 3 switched to datafile copyinput datafile copy recid=14 stamp=722949666 filename=+DATADG/sysaux01.dbf datafile 4 switched to datafile copyinput datafile copy recid=15 stamp=722949666 filename=+DATADG/undotbs02.dbf datafile 5 switched to datafile copyinput datafile copy recid=16 stamp=722949666 filename=+DATADG/users01.dbf datafile 6 switched to datafile copyinput datafile copy recid=17 stamp=722949666 filename=+DATADG/sale_ix01.dbf datafile 7 switched to datafile copyinput datafile copy recid=18 stamp=722949666 filename=+DATADG/sale01.dbf datafile 8 switched to datafile copyinput datafile copy recid=19 stamp=722949666 filename=+DATADG/cpc01.dbf datafile 9 switched to datafile copyinput datafile copy recid=20 stamp=722949666 filename=+DATADG/cpc_ix01.dbf datafile 10 switched to datafile copyinput datafile copy recid=21 stamp=722949666 filename=+DATADG/sale02.dbf datafile 11 switched to datafile copyinput datafile copy recid=22 stamp=722949666 filename=+DATADG/sale_ix02.dbf Finished Duplicate Db at 29-JUN-10RMAN> exitRecovery Manager complete.[oracle@standby ~]$ sqlplus /nologSQL*Plus: Release 10.2.0.4.0 - Production on Tue Jun 29 11:21:22 2010Copyright (c) 1982, 2007, Oracle. All Rights Reserved.SQL> conn /as sysdbaConnected.//向备库里面添加standby 类型的日志组,用来接收传送过来的redo logSQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 12 GROUP 7 '+datadg/sd/standby07.log' SIZE 100M,3 GROUP 8 '+datadg/sd/standby08.log' SIZE 100M,4 GROUP 9 '+datadg/sd/standby09.log' SIZE 100M,5 GROUP 10 '+datadg/sd/standby10.log' SIZE 100M,6 GROUP 11 '+datadg/sd/standby11.log' SIZE 100M;ALTER DATABASE ADD STANDBY LOGFILE THREAD 2GROUP 12 '+datadg/sd/standby12.log' SIZE 100M,GROUP 13 '+datadg/sd/standby13.log' SIZE 100M,GROUP 14 '+datadg/sd/standby14.log' SIZE 100M,GROUP 15 '+datadg/sd/standby15.log' SIZE 100M,GROUP 16 '+datadg/sd/standby16.log' SIZE 100M;Database altered.SQL> SQL> 2 3 4 5 6// 把备用数据库启动到自动当前日志的恢复模式SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;Database altered.SQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options[oracle@standby ~]$ lsnrctl statusLSNRCTL for Linux: Version 10.2.0.4.0 - Production on 29-JUN-2010 11:22:27Copyright (c) 1991, 2007, Oracle. All rights reserved.Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))STA TUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 10.2.0.4.0 - Production Start Date 08-NOV-2009 00:22:29Uptime 233 days 10 hr. 59 min. 58 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /opt/app/oracle/product/10.2.0/db_1/network/admin/listener.ora Listener Log File /opt/app/oracle/product/10.2.0/db_1/network/log/listener.log Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=standby)(PORT=1521))) Services Summary...Service "+ASM" has 1 instance(s).Instance "+ASM", status BLOCKED, has 1 handler(s) for this service...Service "+ASM_XPT" has 1 instance(s).Instance "+ASM", status BLOCKED, has 1 handler(s) for this service...Service "sd" has 1 instance(s).Instance "sd", status READY, has 1 handler(s) for this service...Service "sd_XPT" has 1 instance(s).Instance "sd", status READY, has 1 handler(s) for this service...The command completed successfully[oracle@standby ~]$ sqlplus /nologSQL*Plus: Release 10.2.0.4.0 - Production on Tue Jun 29 11:23:42 2010Copyright (c) 1982, 2007, Oracle. All Rights Reserved.SQL> conn /as sysdbaConnected.//查看已经传递过来的归档日志SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME2 FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;SEQUENCE# FIRST_TIME NEXT_TIME---------- ------------ ------------12733 29-JUN-10 29-JUN-1012734 29-JUN-10 29-JUN-1012735 29-JUN-10 29-JUN-1012736 29-JUN-10 29-JUN-1027832 29-JUN-10 29-JUN-1027833 29-JUN-10 29-JUN-1027834 29-JUN-10 29-JUN-1027835 29-JUN-10 29-JUN-1027836 29-JUN-10 29-JUN-109 rows selected.//查看备库的日志应用类型SQL> select process,CLIENT_PROCESS from v$managed_standby;PROCESS CLIENT_P--------- --------ARCH ARCHARCH ARCHRFS UNKNOWNRFS UNKNOWNMRP0 N/A//取消备库的恢复功能SQL> alter database recover managed standby database cancel;Database altered.//只读方式打开备库SQL> alter database open read only;Database altered.// 开启备库时时恢复功能SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;Database altered.附录里面为各个需要的配置文件:主库spfile的内容:*.audit_file_dest='/opt/app/oracle/admin/ld/adump'*.audit_sys_operations=TRUE*.audit_trail='DB','EXTENDED'*.compatible='10.2.0.3.0'*.control_files='/oradata/ld/control01.ctl','/oradata/ld/control02.ctl','/oradata/ld/control03.ctl'#Rest ore Controlfile*.core_dump_dest='/opt/app/oracle/admin/ld/cdump'*.db_block_size=8192*.db_domain=''*.db_file_multiblock_read_count=16*.DB_FILE_NAME_CONVERT='sld','ld'*.db_flashback_retention_target=6000*.db_name='ld'*.DB_UNIQUE_NAME='ld'*.dispatchers='(PROTOCOL=TCP) (SERVICE=ldXDB)'*.FAL_CLIENT='pld'*.FAL_SERVER='sld'*.job_queue_processes=10*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(ld,sld)'*.log_archive_dest_1='LOCATION=/oradata/ld/archlog/V ALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ld'*.LOG_ARCHIVE_DEST_2='SERVICE=sld LGWR ASYNC V ALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=sld'*.LOG_ARCHIVE_DEST_STA TE_1='ENABLE'*.LOG_ARCHIVE_DEST_STA TE_2='ENABLE'*.LOG_FILE_NAME_CONVERT='/oradata/sld/arch','/oradata/ld/archlog/'*.open_cursors=1000*.optimizer_index_cost_adj=362*.pga_aggregate_target=471859200*.processes=500*.remote_login_passwordfile='EXCLUSIVE'*.sga_target=3670016000*.STANDBY_FILE_MANAGEMENT='AUTO'*.trace_enabled=TRUE*.undo_management='AUTO'*.undo_retention=860000*.undo_tablespace='UNDOTBS1'*.user_dump_dest='/opt/app/oracle/admin/ld/udump'*.utl_file_dir='/home/data/'备库的pfile内容:[oracle@mjdba ~]$ more ddddd.ora*.audit_file_dest='/opt/app/oracle/admin/sld/adump'*.audit_sys_operations=TRUE*.audit_trail='DB','EXTENDED'*.compatible='10.2.0.3.0'*.control_files='/oradata/sld/control01.ctl','/oradata/sld/control02.ctl','/oradata/sld/control03.ctl'#R estore Controlfile*.core_dump_dest='/opt/app/oracle/admin/sld/cdump'*.db_block_size=8192*.db_domain=''*.db_file_multiblock_read_count=16*.DB_FILE_NAME_CONVERT='ld','sld'*.db_flashback_retention_target=6000*.db_name='ld'*.DB_UNIQUE_NAME='sld'*.dispatchers='(PROTOCOL=TCP) (SERVICE=ldXDB)'*.FAL_CLIENT='sld'*.FAL_SERVER='ld'*.job_queue_processes=10*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(ld,sld)'*.*.log_archive_dest_1='LOCA TION=/oradata/sld/archlog/V ALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=sd'*.LOG_ARCHIVE_DEST_2='SERVICE=ld LGWR ASYNC V ALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ld'*.LOG_ARCHIVE_DEST_STA TE_1='ENABLE'*.LOG_ARCHIVE_DEST_STA TE_2='ENABLE'*.LOG_FILE_NAME_CONVERT='/oradata/ld/arch','/oradata/sld/archlog/'*.open_cursors=1000*.optimizer_index_cost_adj=362*.pga_aggregate_target=471859200*.processes=500*.remote_login_passwordfile='EXCLUSIVE'*.sga_target=3670016000*.STANDBY_FILE_MANAGEMENT='AUTO'*.trace_enabled=TRUE*.undo_management='AUTO'*.undo_retention=860000*.undo_tablespace='UNDOTBS1'*.user_dump_dest='/opt/app/oracle/admin/sld/udump'*.utl_file_dir='/home/data/实验主备库之间的切换// 在primary 上执行P----S的切换SQL*Plus: Release 10.2.0.4.0 - Production on Tue Jun 29 09:38:01 2010Copyright (c) 1982, 2007, Oracle. All Rights Reserved.SQL> conn /as sysdbaSP2-0734: unknown command beginning "coconn /as..." - rest of line ignored.SQL> conn /as sysdbaConnected.SQL> select switchover_status from v$database;SWITCHOVER_STATUS--------------------SESSIONS ACTIVESQL> select process,CLIENT_PROCESS from v$managed_standby;PROCESS CLIENT_P--------- --------ARCH ARCHARCH ARCHLNS LNSSQL> select switchover_status from v$database;SWITCHOVER_STATUS--------------------SESSIONS ACTIVESQL> select * from standby_log;select * from standby_log*ERROR at line 1:ORA-00942: table or view does not existSQL> c/st/v$st1* select * from v$standby_logSQL> l11* select * from v$standby_logSQL> /GROUP# DBID THREAD# SEQUENCE#---------- ---------------------------------------- ---------- ----------BYTES USED ARC STA TUS FIRST_CHANGE# FIRST_TIME LAST_CHANGE#---------- ---------- --- ---------- ------------- ------------ ------------LAST_TIME------------4 UNASSIGNED 1 0 52428800 512 YES UNASSIGNED 0 05 UNASSIGNED 1 0 52428800 512 YES UNASSIGNED 0 0GROUP# DBID THREAD# SEQUENCE#---------- ---------------------------------------- ---------- ----------BYTES USED ARC STA TUS FIRST_CHANGE# FIRST_TIME LAST_CHANGE#---------- ---------- --- ---------- ------------- ------------ ------------LAST_TIME------------6 UNASSIGNED 1 0 52428800 512 YES UNASSIGNED 0 0SQL> c/over/over_status1* select switchover_status from v$databaseSQL> l11* select switchover_status from v$databaseSQL> //// 主库开始切换到备库SWITCHOVER_STATUS--------------------SESSIONS ACTIVESQL> alter database commit to switchover to physical standby with session shutdown;Database altered.SQL> select switchover_status from v$databaseselect switchover_status from v$database*ERROR at line 1:ORA-01507: database not mountedSQL> conn /as sysdbaConnected.SQL> startup mount;ORA-01081: cannot start already-running ORACLE - shut it down firstSQL> shutdown immedaite;SP2-0717: illegal SHUTDOWN optionSQL> shutdown immediate;ORA-01507: database not mountedORACLE instance shut down.SQL> conn /as sysdbaConnected to an idle instance.SQL> startup mount;ORACLE instance started.Total System Global Area 3674210304 bytesFixed Size 2088248 bytesVariable Size 721421000 bytesDatabase Buffers 2936012800 bytesRedo Buffers 14688256 bytesDatabase mounted.//// 以下显示已经代表primary 已经转换成了standby了SQL> select switchover_status from v$database;SWITCHOVER_STATUS--------------------TO PRIMARYSQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options[oracle@ldTest bdump]$ lsalert_ld.log[oracle@ldTest bdump]$ tail -f alert_ld.logPrimary database is in MAXIMUM PERFORMANCE modeTue Jun 29 14:52:26 2010Redo Shipping Client Connected as PUBLIC-- Connected User is ValidRFS[2]: Assigned to RFS process 3030RFS[2]: Identified database type as 'physical standby'Tue Jun 29 14:52:26 2010RFS[1]: Successfully opened standby log 4: '/oradata/ld/standby07.log' Tue Jun 29 14:52:27 2010RFS[2]: Successfully opened standby log 5: '/oradata/ld/standby08.log' Tue Jun 29 14:56:10 2010Primary database is in MAXIMUM PERFORMANCE modeRFS[1]: Successfully opened standby log 5: '/oradata/ld/standby08.log' Tue Jun 29 14:56:22 2010Primary database is in MAXIMUM PERFORMANCE modeRFS[1]: Successfully opened standby log 4: '/oradata/ld/standby07.log' [oracle@ldTest bdump]$--------------------------------standby 转换成primary[oracle@mjdba home]$ sqlplus /nologSQL*Plus: Release 10.2.0.4.0 - Production on Tue Jun 29 14:32:31 2010 Copyright (c) 1982, 2007, Oracle. All Rights Reserved.SQL> conn /as sysdbaConnected.SQL> set wrap offSQL> set linesize 100SQL> show parameter logNAME TYPE V ALUE ------------------------------------ ----------- ------------------------------audit_syslog_level stringdb_create_online_log_dest_1 stringdb_create_online_log_dest_2 stringdb_create_online_log_dest_3 stringdb_create_online_log_dest_4 stringdb_create_online_log_dest_5 stringlog_archive_config string DG_CONFIG=(ld,sld)log_archive_dest stringlog_archive_dest_1 string LOCATION=/oradata/sld/archlog/log_archive_dest_10 stringlog_archive_dest_2 string SERVICE=ld LGWR ASYNC V ALID_FNAME TYPE V ALUE------------------------------------ ----------- ------------------------------log_archive_dest_3 stringlog_archive_dest_4 stringlog_archive_dest_5 stringlog_archive_dest_6 stringlog_archive_dest_7 stringlog_archive_dest_8 stringlog_archive_dest_9 stringlog_archive_dest_state_1 string ENABLElog_archive_dest_state_10 string enablelog_archive_dest_state_2 string ENABLElog_archive_dest_state_3 string enableNAME TYPE V ALUE------------------------------------ ----------- ------------------------------log_archive_dest_state_4 string enablelog_archive_dest_state_5 string enablelog_archive_dest_state_6 string enablelog_archive_dest_state_7 string enablelog_archive_dest_state_8 string enablelog_archive_dest_state_9 string enablelog_archive_duplex_dest stringlog_archive_format string %t_%s_%r.dbflog_archive_local_first boolean TRUElog_archive_max_processes integer 2log_archive_min_succeed_dest integer 1NAME TYPE V ALUE------------------------------------ ----------- ------------------------------log_archive_start boolean FALSElog_archive_trace integer 0log_buffer integer 14242816log_checkpoint_interval integer 0log_checkpoint_timeout integer 1800log_checkpoints_to_alert boolean FALSElog_file_name_convert string /oradata/ld/arch, /oradata/sldlogmnr_max_persistent_sessions integer 1remote_login_passwordfile string EXCLUSIVESQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options[oracle@mjdba home]$ echo $ORACLE_SIDsld[oracle@mjdba home]$ sqlplus /nologSQL*Plus: Release 10.2.0.4.0 - Production on Tue Jun 29 14:34:27 2010Copyright (c) 1982, 2007, Oracle. All Rights Reserved.SQL> conn /as sysdbaConnected.SQL> create pfile ='/home/oracle/ddddd.ora' from spfile;File created.SQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options[oracle@mjdba home]$ cd /home/oracle/[oracle@mjdba ~]$ lsarc_LD_20091209_dvl0fukd_1_1 database Disk1 p6810189_10204_Linux-x86-64.zip README.htmlarc_LD_20091209_e1l0fuoi_1_1 ddddd.ora ORACLE10G_x64_DVD.iso pfilemj.ora[oracle@mjdba ~]$ more ddddd.orasld.__db_cache_size=2936012800sld.__java_pool_size=16777216sld.__large_pool_size=16777216sld.__shared_pool_size=687865856sld.__streams_pool_size=0*.audit_file_dest='/opt/app/oracle/admin/sld/adump'*.audit_sys_operations=TRUE*.audit_trail='DB','EXTENDED'*.background_dump_dest='/opt/app/oracle/admin/sld/bdump'*.compatible='10.2.0.3.0'*.control_files='/oradata/sld/control01.ctl','/oradata/sld/control02.ctl','/oradata/sld/control03.ctl'#R estore Controlfile*.core_dump_dest='/opt/app/oracle/admin/sld/cdump'。

在oracle数据库dataguard两端扩大表空间时可能出现的问题及原因探究

在oracle数据库dataguard两端扩大表空间时可能出现的问题及原因探究

在oracle数据库dataguard两端扩⼤表空间时可能出现的问题及原因探究REGION LNFO 数字地⽅我单位使⽤两台⼩机做成集群,操作系统是AIX5.3,数据库使⽤ORACLE10.2.0.3,数据⽂件采⽤裸设备,这两台⼩机和另⼀处灾备机房的⼀台⼩机组成dataguard。

DataGuard是⼀种数据库级别的HA⽅案,最主要功能是冗灾、数据保护、故障恢复等。

DataGuard是⽣产数据库的“事务⼀致性拷备”,创建时,使⽤⽣产库的物理拷备。

创建完成后,备库会通过⽣产库传输过来的归档⽇志(或重做条⽬)⾃动维护备⽤数据库。

将重做数据应⽤到备⽤库。

随着单位业务的增长,其中⼀个重要的业务表空间使⽤率已经⼤于了90%,在下班后决定扩⼤⼀下这个表空间,⾸先在primary端进⾏操作,先查看/dev下都使⽤了哪些数据⽂件,再查看vg和pv可以使⽤的空间,这些准备⼯作都就绪以后就开始⽤裸设备来创建逻辑卷mklv -t raw -y db_BSEMR_10-U oracle -G oinstall oradatavg 80 hdisk2,因为pps size是256MB,所以就是新建了⼀个20G的逻辑卷,SQL>alter tablespace PORTAL_EMR add datafile '/dev/rdb_BSEMR_10',后查询表空间SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files groupby tablespace_name,发现表空间已经扩⼤了20G,利⽤率也下降到80%,primary端的⼯作已经完成,下⾯在standby端进⾏操作,⾸先也是查看/dev下都使⽤了哪些数据⽂件,再查看vg和pv可以使⽤的空间,这些准备⼯作都就绪以后就开始⽤裸设备来创建逻辑卷mklv-t raw -y db_BSEMR_10 -U oracle -G oinstall dgvg 80hdisk8,根据dataguard的特性,不需要像primary端那样执⾏SQL> alter tablespace PORTAL_EMR add datafile '/dev/rdb_BSEMR_10',可以把standby的数据库打开⼀次,datafile就会⾃动应⽤,但在执⾏sql>alter databaserecover managed standby database cancel;时报错,ORA-在oracle数据库dataguard两端扩⼤表空间时可能出现的问题及原因探究◆⽩清⽟ 肖津安 吴 华摘要:在oracle数据库dataguard两端扩⼤表空间由于忽略了操作顺序⽽导致报错,通过⽇志找到报错的⽂件后⼿动创建,系统恢复正常。

数据保持实验实验报告

数据保持实验实验报告

一、实验目的1. 了解数据保持实验的基本原理和方法。

2. 掌握数据保持实验的实验步骤和操作技巧。

3. 通过实验验证数据保持方法的有效性。

二、实验原理数据保持实验是一种通过对比不同数据保持方法,分析数据保持效果的方法。

实验的基本原理是通过对比实验前后数据的变化,来评估数据保持方法的有效性。

常用的数据保持方法有:数据备份、数据压缩、数据加密等。

三、实验材料1. 实验数据:一组随机生成的数据集,包含10000个数据项。

2. 实验工具:计算机、数据备份软件、数据压缩软件、数据加密软件。

四、实验步骤1. 准备实验数据:生成一组随机数据集,包含10000个数据项。

2. 数据备份实验:a. 使用数据备份软件对实验数据进行备份;b. 模拟数据丢失,删除原始数据;c. 从备份中恢复数据,计算恢复数据的完整性和准确性。

3. 数据压缩实验:a. 使用数据压缩软件对实验数据进行压缩;b. 解压缩数据,计算压缩前后的数据差异;c. 评估数据压缩效果。

4. 数据加密实验:a. 使用数据加密软件对实验数据进行加密;b. 解密数据,计算解密数据的完整性和准确性;c. 评估数据加密效果。

五、实验结果与分析1. 数据备份实验结果:a. 数据备份软件成功备份实验数据;b. 模拟数据丢失后,成功从备份中恢复数据;c. 恢复数据的完整性和准确性达到100%。

2. 数据压缩实验结果:a. 数据压缩软件成功压缩实验数据;b. 解压缩数据后,数据差异极小;c. 数据压缩效果明显,压缩率约为70%。

3. 数据加密实验结果:a. 数据加密软件成功加密实验数据;b. 解密数据后,数据完整性和准确性达到100%;c. 数据加密效果良好,安全性较高。

六、实验结论1. 数据备份方法能够有效地保持数据的完整性和准确性,是数据保持实验中的一种可靠方法。

2. 数据压缩方法可以显著减小数据存储空间,提高数据存储效率,但在解压缩过程中可能会产生一定的数据差异。

3. 数据加密方法能够提高数据的安全性,但在加密和解密过程中可能会增加数据处理的复杂度。

数据安全防护建模实训报告

数据安全防护建模实训报告

随着信息技术的飞速发展,数据已经成为企业、国家和社会的重要资产。

然而,数据安全威胁也随之增加,数据泄露、篡改、滥用等问题日益严重。

为了提高数据安全防护能力,培养具备数据安全防护建模能力的专业人才,我国开展了数据安全防护建模实训。

本报告将介绍实训的背景、目的、内容、过程及成果。

二、实训目的1. 了解数据安全防护的基本概念、原则和策略。

2. 掌握数据安全防护建模的方法和工具。

3. 培养学生具备数据安全防护意识和实践能力。

4. 提高学生在实际工作中解决数据安全问题的能力。

三、实训内容1. 数据安全基础知识(1)数据安全的概念、原则和策略(2)数据安全法律法规及政策(3)数据安全风险评估方法2. 数据安全防护建模(1)数据安全防护体系构建(2)数据安全防护策略制定(3)数据安全防护技术手段(4)数据安全防护案例分析3. 实践操作(1)数据安全防护工具使用(2)数据安全防护方案设计(3)数据安全防护项目实施1. 理论学习实训初期,学生通过自学和教师授课,掌握数据安全基础知识,为后续实训打下坚实基础。

2. 案例分析教师选取典型数据安全案例,引导学生分析案例中存在的安全隐患、原因及应对措施,提高学生对数据安全问题的认识。

3. 实践操作(1)数据安全防护工具使用:学生使用常见的数据安全防护工具,如数据加密、访问控制、入侵检测等,提高实际操作能力。

(2)数据安全防护方案设计:学生根据实际需求,设计数据安全防护方案,并撰写方案报告。

(3)数据安全防护项目实施:学生分组进行数据安全防护项目实施,锻炼团队合作能力。

4. 交流与总结实训过程中,学生通过小组讨论、教师点评等形式,分享经验、交流心得,不断提高数据安全防护能力。

五、实训成果1. 学生对数据安全防护有了更深入的认识,具备数据安全防护意识和实践能力。

2. 学生掌握了数据安全防护建模的方法和工具,能够独立完成数据安全防护方案设计。

3. 学生在实训过程中,提高了团队合作能力和沟通能力。

数据库保护实验报告

数据库保护实验报告

一、实验背景随着信息化时代的到来,数据库已经成为各类组织和企业中重要的信息资源。

然而,数据库的安全问题日益凸显,数据泄露、篡改、丢失等风险不断增大。

为了确保数据库的安全性和可靠性,本实验针对数据库保护技术进行了深入研究,旨在掌握数据库保护的基本原理和方法。

二、实验目的1. 了解数据库保护的基本概念和原理;2. 掌握数据库加密、备份、恢复等保护技术;3. 学会使用数据库保护工具进行实际操作;4. 提高数据库安全意识和防护能力。

三、实验内容1. 数据库加密(1)实验目的:了解数据库加密技术,掌握使用数据库加密工具进行数据加密和解密的方法。

(2)实验步骤:① 安装并配置数据库加密工具;② 创建加密密钥;③ 选择加密算法;④ 对数据库进行加密和解密操作;⑤ 验证加密效果。

2. 数据库备份(1)实验目的:了解数据库备份的重要性,掌握使用数据库备份工具进行数据库备份和恢复的方法。

(2)实验步骤:① 安装并配置数据库备份工具;② 选择备份类型(全备份、增量备份、差异备份);③ 设置备份策略(定时备份、按需备份);④ 进行数据库备份和恢复操作;⑤ 验证备份和恢复效果。

3. 数据库恢复(1)实验目的:了解数据库恢复的基本原理,掌握使用数据库恢复工具进行数据恢复的方法。

(2)实验步骤:① 安装并配置数据库恢复工具;② 选择恢复类型(全恢复、部分恢复);③ 设置恢复策略(自动恢复、手动恢复);④ 进行数据库恢复操作;⑤ 验证恢复效果。

4. 数据库安全审计(1)实验目的:了解数据库安全审计的重要性,掌握使用数据库安全审计工具进行安全审计的方法。

(2)实验步骤:① 安装并配置数据库安全审计工具;② 设置审计策略(审计对象、审计内容、审计时间);③ 进行数据库安全审计操作;④ 分析审计结果,发现安全隐患;⑤ 针对安全隐患提出改进措施。

四、实验结果与分析1. 数据库加密:通过使用数据库加密工具,成功对数据库进行加密和解密操作,验证了加密效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DATA GUARD: (3)物理STANDBY实验: (3)1、准备阶段; (3)1.1 prepare check (3)1.2 add standby log file: (3)2、参数修改 (4)2.1 tnsnames.ora 和listener.ora 参数修改 (4)2.2 重建远程口令文件 (5)2.3 primary 和standby host 在/etc/hosts 中互相添加对方的hostname 和IP (6)3、主备库参数文件修改 (6)3.1 primary 参数修改 (6)3.2 standby 参数修改 (6)4、备份primary全库; (7)4.1 备份控制文件for standby (7)4.2 拷贝备份控制文件到指定路径 (7)4.3 备份控制文件for standby database(failover 后恢复原primary database ) (8)5、duplicate target database recover for standby database (8)5.1 步骤4中的备份文件到standby host的相同路径下 (8)5.2 duplicate target database (8)5.3 保护模式更改:最大性能到最大可用 (8)6 角色转换 (9)6.1 failover (9)6.2 switchover orles (10)逻辑STANDBY实验 (13)1. 逻辑standby转换之前首先检查一下是否存在无唯一逻辑标识的表;该视图显示所有即没主键也没唯一索引的表 (13)1.1 没有主键的表补充日志 (13)1.2 补充主键日志 (14)1.3 补充唯一列日志 (14)1.4 查看主键、唯一列是否补充日志 (14)2. 主库执行dbms_logstdby.build,生成logminer字典 (14)3.参数修改 (14)3.1 primary 参数修改 (14)3.2 物理standby 转化为logical standby (15)3.3 logical standby 参数修改 (15)4. logical standby 启动 (16)4.1 停止logical standby database (16)4.2 mount 数据库 (16)4.3 resetlogs 打开数据库 (16)4.4 应用redo数据 (16)5. 角色转换switchover (16)5.1 转换前确认primary 状态 (17)5.2 准备转换primary为逻辑standby (17)5.3 查看primary 状态 (17)5.4 prepare 将logical standby 转换为primary (17)5.5 确认logcial standby 状态 (17)5.6 转换primary 为logical standby; (18)5.7 转换logical standby 为primary (18)5.8 新的standby上重新应用sql数据 (18)总结: (19)1、logical standby 检查日志是否同步并应用: (19)1.1 首先检查primary database 当前归档日志序号与logical standby 日志号是否相同 (19)1.2 检查待转换逻辑standby 的日志应用情况 (20)2、logical standby failover角色转换 (20)3、logical standby 日志同步; (20)3.1 logical standby 数据库注册指定standby logfile,在foreign_archivelog 路径下; (20)DATA GUARD:物理standby实验:1、准备阶段;1.1 prepare checkSQL> alter database no force logging;Database altered.SQL> alter database force logging;Database altered.1.2 add standby log file:SQL> desc v$logfileName Null? Type----------------------------------------- -------- ----------------------------GROUP# NUMBER STATUS VARCHAR2(7) TYPE VARCHAR2(7) MEMBER VARCHAR2(257) IS_RECOVERY_DEST_FILE VARCHAR2(3)SQL> select member from v$logfile;MEMBER--------------------------------------------------------------------------------/oracle/app/oracle/ORCL/onlinelog/o1_mf_3_9q870t6q_.log/oracle/app/oracle/fast_recovery_area/ORCL/onlinelog/o1_mf_3_9q870tv8_.log/oracle/app/oracle/ORCL/onlinelog/o1_mf_2_9q870rqj_.log/oracle/app/oracle/fast_recovery_area/ORCL/onlinelog/o1_mf_2_9q870sfz_.log/oracle/app/oracle/ORCL/onlinelog/o1_mf_1_9q870q0g_.log/oracle/app/oracle/fast_recovery_area/ORCL/onlinelog/o1_mf_1_9q870qrp_.log6 rows selected.SQL> alter database add standby logfile group 4 '/oracle/app/oracle/ORCL/onlinelog/sredo4.dbf' size 60M;Database altered.SQL> alter database add standby logfile group 5 '/oracle/app/oracle/ORCL/onlinelog/sredo5.dbf' size 60M;Database altered.SQL> alter database add standby logfile group 6 '/oracle/app/oracle/ORCL/onlinelog/sredo6.dbf' size 60M;Database altered.SQL> alter database add standby logfile group 7 '/oracle/app/oracle/ORCL/onlinelog/sredo7.dbf' size 60M;Database altered.SQL> alter database drop standby logfile group X;//X为日志组号Database altered.2、参数修改2.1 tnsnames.ora 和listener.ora 参数修改primary host tnsnames.ora 增加:ORCLDG =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.51.197.144)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ORCLDG)))standby host tnsnames.ora 增加:ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =10.51.197.129 )(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))同时standby host listener.ora 增加:(SID_DESC =(GLOBAL_DBNAME = orcldg)(ORACLE_HOME = /oracle/app/oracle/dbhome_1)(SID_NAME = orcldg))2.2 重建远程口令文件注意:physical standby 与logical standby 都需要重建orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=5 force=y ignorecase=y;2.3 primary 和standby host 在/etc/hosts 中互相添加对方的hostname 和IP保证primary 和standby 数据库能够相互访问3、主备库参数文件修改3.1 primary 参数修改*.DB_UNIQUE_NAME='orcl'*.FAL_SERVER=orcldg*.FAL_CLIENT=orcl*.DB_FILE_NAME_CONVERT='/oracle/app/oracle/ORCLDG/datafile','/oracle/app/oracle/ORCL/da tafile'*.LOG_FILE_NAME_CONVERT='/oracle/app/oracle/ORCLDG/onlinelog','/oracle/app/oracle/ORCL/ onlinelog'*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcldg)'*.LOG_ARCHIVE_DEST_1= 'LOCATION=/oracle/app/oracle/oradata/ORCL VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl'*.LOG_ARCHIVE_DEST_2= 'SERVICE=orcldg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcldg'*.LOG_ARCHIVE_DEST_STATE_1=ENABLE*.LOG_ARCHIVE_DEST_STATE_2=ENABLE*.LOG_ARCHIVE_FORMAT=%t_%s_%r.arc*.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE*.STANDBY_FILE_MANAGEMENT=AUTO3.2 standby 参数修改*.DB_UNIQUE_NAME='orcldg'*.FAL_SERVER='orcl'*.DB_FILE_NAME_CONVERT='/oracle/app/oracle/ORCL/datafile','/oracle/app/oracle/ORCLDG/da tafile'*.LOG_FILE_NAME_CONVERT='/oracle/app/oracle/ORCL/onlinelog','/oracle/app/oracle/ORCLDG/ onlinelog'*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcldg)'*.LOG_ARCHIVE_DEST_1='LOCATION=/oracle/app/oracle/oradata/ORCLDGVALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcldg'*.LOG_ARCHIVE_DEST_2='SERVICE=orcl LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl'*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'*.LOG_ARCHIVE_FORMAT='%t_%s_%r.arc'*.REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE'*.STANDBY_FILE_MANAGEMENT='AUTO'4、备份primary全库;RMAN> backup device type disk format '$ORACLE_BASE/backup/db_%U' database plus archivelog;4.1 备份控制文件for standbyRMAN> backup device type disk format '$ORACLE_BASE/backup/control_%U' current controlfile for standby;4.2 拷贝备份控制文件到指定路径RMAN> copy current controlfile for standby to '/oracle/app/oracle/ORCLDG/controlfile/ctlstdorcl.ctl';4.3 备份控制文件for standby database(failover 后恢复原primary database )SQL> alter database create standby controlfile as '$ORACLE_BASE/backup/ctlstdorcl.ctl';5、duplicate target database recover for standby database 5.1 步骤4中的备份文件到standby host的相同路径下同步方法:rcp scp ftp 等;5.2 duplicate target database[oracle@tddems1 /oracle/app/oracle/ORCLDG/controlfile]#rman target sys/oracle@orcl auxiliary /Recovery Manager: Release 11.2.0.3.0 - Production on Thu May 15 17:56:46 2014Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.connected to target database: ORCL (DBID=1375403427)connected to auxiliary database: ORCL (not mounted)//相同路径时使用nofilenamecheck 选项RMAN> duplicate target database for standby nofilenamecheck;5.3 保护模式更改:最大性能到最大可用5.3.1 primary database modifySQL> alter system set log_archive_dest_2='SERVICE=orcldg LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcldg' SCOPE = SPFILE;SQL> alter database set standby database to maximize availability;Database altered.5.3.2 standby database modifySQL> alter system set log_archive_dest_2='SERVICE=orcl LGWR SYNC AFFIRM REOPEN=300 MAXFAILURE=3 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCL';Database altered.6 角色转换6.1 failover//所有操作都在原standby 下执行SQL> alter database recover managed standby database finish;Database altered.SQL> alter database commit to switchover to primary;Database altered.SQL> alter database open;Database altered.SQL> select database_role,switchover_status from v$database;DATABASE_ROLE SWITCHOVER_STATUS---------------- --------------------PRIMARY FAILED DESTINATION6.2 switchover orles6.2.1 切换前确认切换状态,primary and standby 都执行SQL> select SWITCHOVER_STATUS from v$database;6.2.2 确认可以切换后进行角色转换6.2.2.1 execute on primary databaseSQL> alter database commit to switchover to physical standby;alter database commit to switchover to physical standby*ERROR at line 1:ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected//如果有以上错误信息,需待with session shutdown 选项,如下所示:SQL> alter database commit to switchover to physical standby with session shutdown; Database altered.SQL> shutdown immediate;SQL> exit;SQL> sqlplus "/ as sysdba"SQL*Plus: Release 11.2.0.3.0 Production on Wed May 28 10:39:26 2014Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to an idle instance.SQL>SQL> startup mount;ORACLE instance started.Total System Global Area 1.9909E+10 bytesFixed Size 2230024 bytesVariable Size 2483030264 bytesDatabase Buffers 1.7381E+10 bytesRedo Buffers 42696704 bytesDatabase mounted.//应用redo 数据SQL> alter database recover managed standby database disconnect from session; Database altered.6.2.2.2 execute on standbySQL> alter database commit to switchover to primary;Database altered.SQL> alter database open;Database altered.6.2.3 角色转换后确认primary and standby 日志是否同步6.2.3.1 查询standby 数据库归档文件的一些附加信息SQL> select name,creator,sequence#,applied,completion_time,registrar from v$archived_log;6.2.3.2 确认日志是否同步execute on primary and standbySQL> select max(sequence#) from v$archived_log;MAX(SEQUENCE#)--------------2306.2.3.3 确认是否有日志缺失execute on primary and standby; SQL> select * from v$archive_gap;no rows selected6.2.4 附加信息6.2.4.1 确认当前日志状态;SQL> select GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS from v$log;GROUP# THREAD# SEQUENCE# ARCHIV STATUS---------- ---------- ---------- ------ --------------------------------1 1 565 YES INACTIVE2 1 566 YES INACTIVE3 1 567 NO CURRENTSQL> select GROUP#,STATUS,TYPE,MEMBER from v$logfile;GROUP# STATUS TYPE---------- ------- -------MEMBER--------------------------------------------------------------------------------3 ONLINE/oracle/app/oracle/oradata/orcl/redo03.log2 ONLINE/oracle/app/oracle/oradata/orcl/redo02.log1 ONLINE/oracle/app/oracle/oradata/orcl/redo01.log逻辑standby实验1. 逻辑standby转换之前首先检查一下是否存在无唯一逻辑标识的表;该视图显示所有即没主键也没唯一索引的表SQL> select count(*) from dba_logstdby_not_unique;COUNT(*)----------12//dba_logstdby_not_unique该视图显示所有即没主键也没唯一索引的表//检查sql 应用能否唯一识别表列,找出不被支持的表SQL> select owner,table_name from dba_logstdby_not_unique where (owner,table_name) not in (select distinct owner,table_name from dba_logstdby_unsupported ) and bad_column = 'Y';no rows selectedSQL> alter table zhb.zhbtest1 add primary key (id) rely disable;Table altered.1.1 没有主键的表补充日志SQL> alter database add supplemental log data;Database altered.1.2 补充主键日志SQL> alter database add supplemental log data (primary key) columns;Database altered.1.3 补充唯一列日志SQL> alter database add supplemental log data ( unique ) columns;Database altered.1.4 查看主键、唯一列是否补充日志SQL> select supplemental_log_data_pk,supplemental_log_data_ui from v$database;SUP SUP--- ---YES YES2. 主库执行dbms_logstdby.build,生成logminer字典SQL> execute dbms_logstdby.build;PL/SQL procedure successfully completed.3.参数修改3.1 primary 参数修改SQL> alter system set log_archive_dest_1='LOCATION=/oracle/app/oracle/oradata/orcl VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl' scope = both;System altered.SQL> alter system set log_archive_dest_3= 'location=/oracle/app/oracle/oradata/stdVALID_FOR=(standby_logfiles,standby_role) db_unique_name=orcl' scope = both;System altered.SQL> alter system set log_archive_dest_state_3=enable;System altered.3.2 物理standby 转化为logical standbySQL> alter database recover to logical standby orclldg;Database altered.3.3 logical standby 参数修改SQL> alter system set log_archive_dest_1='LOCATION=/oracle/app/oracle/oradata/orcldg VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcldg' scope = both;System altered.或SQL> alter system set log_archive_dest_1='location=use_db_recovery_file_dest DB_UNIQUE_NAME=orcldg' scope=both;System altered.SQL> alter system set log_archive_dest_3= 'location=/oracle/app/oracle/oradata/std VALID_FOR=(standby_logfiles,standby_role) db_unique_name=orcldg' scope = both;System altered.SQL> alter system set log_archive_dest_state_3=enable scope=both;System altered.4. logical standby 启动4.1 停止logical standby databaseSQL> shutdown immediate;ORA-01507: database not mountedORACLE instance shut down.4.2 mount 数据库SQL> startup mount;ORACLE instance started.Total System Global Area 3140026368 bytesFixed Size 2225608 bytesVariable Size 654314040 bytes Database Buffers 2466250752 bytesRedo Buffers 17235968 bytes Database mounted.4.3 resetlogs 打开数据库SQL> alter database open resetlogs;Database altered.4.4 应用redo数据SQL> alter database start logical standby apply immediate; Database altered.5. 角色转换switchover5.1 转换前确认primary 状态SQL> select switchover_status from v$database;SWITCHOVER_STATUS--------------------TO STANDBY5.2 准备转换primary为逻辑standbySQL> alter database prepare to switchover to logical standby; Database altered.5.3 查看primary 状态SQL> select switchover_status from v$database;SWITCHOVER_STATUS--------------------PREPARING SWITCHOVER5.4 prepare 将logical standby 转换为primarySQL> alter database prepare to switchover to primary;Database altered.5.5 确认logcial standby 状态SQL> select switchover_status from v$database;SWITCHOVER_STATUS--------------------PREPARING SWITCHOVER此时primary 状态为:SQL> select switchover_status from v$database;SWITCHOVER_STATUS--------------------TO LOGICAL STANDBY5.6 转换primary 为logical standby;SQL> alter database commit to switchover to logical standby; Database altered.5.7 转换logical standby 为primary//转换前确认logical standby 状态SQL> select switchover_status from v$database;SWITCHOVER_STATUS--------------------TO PRIMARY//转换为primarySQL> alter database commit to switchover to primary;Database altered.5.8 新的standby上重新应用sql数据SQL> alter database start logical standby apply;Database altered.总结:1、logical standby 检查日志是否同步并应用:1.1 首先检查primary database 当前归档日志序号与logical standby 日志号是否相同//在当前primary database上执行SQL> select max(sequence#) from v$archived_log;MAX(SEQUENCE#)--------------69//在当前logical standby 上执行SQL> select max(SEQUENCE#) from dba_logstdby_log;MAX(SEQUENCE#)--------------69//确认所有归档日志是否应用;SQL> select sequence#,applied from dba_logstdby_log;如果存在未应用的日志,需检查当前logical standby 是否启用了sql 应用;如果存在primary database 与logical standby 归档日志序列号不同的,需手工拷贝归档日志到standby端;然后手工注册:SQL> ALTER DATABASE REGISTER LOGICAL LOGFILE;1.2 检查待转换逻辑standby 的日志应用情况SQL> select applied_scn,latest_scn from v$logstdby_progress;APPLIED_SCN LATEST_SCN----------- ----------1636408 16377362、logical standby failover角色转换//转换standby 角色为primary//该语句主要是停止待转换的逻辑standby 中RFS 进程,并应用完当前所有已接收但并未应用的redo 数据,然后停止sql应用,将数据库转换成primary 角色SQL> alter database activate logical standby database finish apply;3、logical standby 日志同步;3.1 logical standby 数据库注册指定standby logfile,在foreign_archivelog 路径下;/oracle/app/oracle/fast_recovery_area/ORCLDG/foreign_archivelog;sql数据应用过程还需要深入;。

相关文档
最新文档