- 浏览: 918310 次
- 性别:
- 来自: 黑龙江
文章分类
- 全部博客 (209)
- struts1 (3)
- hibernate3 (19)
- java (13)
- spring2 (5)
- netBeans (1)
- eclipse (1)
- JSF (1)
- DIV+CSS篇章 (1)
- jFreeChart+Oracle之曲线,柱状及饼状图的实现 (1)
- JSF知识与技巧 (3)
- Oracle数据类型的介绍与比较 (2)
- J2EE (2)
- Ajax技术 (4)
- javaScript技术 (25)
- struts2 (16)
- C/C++程序设计 (1)
- oracle系统学习 (29)
- 算法分析 (0)
- Linux实践 (7)
- extjs开发经验 (13)
- flex开发总结 (1)
- FusionCharts总结 (0)
- 高级数据库总结 (0)
- SVG拓扑图开发总结 (0)
- CSS (1)
- CSS使用简介 (1)
- SVG (0)
- DOJO (0)
- Junit测试 (0)
- lucene (24)
- solr (6)
- tokyo tyrant 技术 (7)
- Html5 (1)
- 算法与数据结构 (0)
- 物联网相关技术学习 (0)
- UI设计 (1)
- webservice (0)
- Android (5)
- hibernate4 (3)
- solrcloud (0)
- dorado5 (0)
- dorado7 (0)
- elasticsearch (0)
- GWT (0)
- node.js (0)
- 并发编程 (1)
- 大数据 (1)
- 项目经验 (5)
最新评论
-
cs261244787:
楼主好人! 平安
struts2,hibernate4,spring3配置时问题汇总及解决办法 -
wxluck666:
我也赞一个 很有用
struts2,hibernate4,spring3配置时问题汇总及解决办法 -
wxluck666:
我也赞一个 很有用
struts2,hibernate4,spring3配置时问题汇总及解决办法 -
xinsiyou:
牛逼,就是样式被搞没了
JS实现选项右移,左移,向上,向下调整顺序 -
unnamed__:
这代码风格就像一坨翔
java获取数据库的列名,类型等信息
1、创建物理standby
详见《测试版-物理standby创建》文档。
最方便的创建逻辑standby的方式就是先创建一个物理standby,然后再将其转换成逻辑standby,因此第一步就是先创建一个物理standby。
注意,在将其转换为逻辑standby前,可以随时启动和应用redo,但是如果你决定将其转换为逻辑standby,就必须先停止该物理standby的redo应用,
以避免提前应用含LogMiner字典的redo数据,造成转换为逻辑standby后,sql应用时logMiner字典数据不足而影响到逻辑standby与primary的正常同步。
SQL>alter database recover managed standby database cancel;
2、设置primary数据库
在前面创建standby时曾经设置过无数个初始化参数用于primary与物理standby的角色切换,同样对于逻辑standby的角色切换,那些参数同样好使。
不过注意,如果希望primary数据库能够正常切换为逻辑standby角色的话,那么你还需要设置相应的log_archive_dest_N,并且valid_for属性,
需要更改成:(STANDBY_LOGFILES,STANDBY_ROLE)。
编辑primary库的pfile文件如下:
service_name=test
db_unique_name=lsnode1
log_archive_dest_1='LOCATION=/oracle/oradata/test/arch valid_for=(all_logfiles,all_roles) db_unique_name=lsnode1'
LOG_ARCHIVE_DEST_2='SERVICE=lsnode2 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lsnode2'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
fal_server=lsnode2
fal_client=lsnode1
standby_file_management=auto
log_archive_dest_3='LOCATION=/oracle/oradata/test/arch1 valid_for=(STANDBY_LOGFILES,STANDBY_ROLE) db_unique_name=lsnode1'
LOG_ARCHIVE_DEST_STATE_3=ENABLE
PARALLEL_MAX_SERVERS=9
UNDO_RETENTION=3600
设置完之后关闭数据库并重新启动,即:
$ sqlplus / as sysdba
SQL>shutdown immediate
SQL>startup
然后需要生成LogMiner字典信息,通过执行下列语句生成(务必执行):
SQL> EXECUTE DBMS_LOGSTDBY.BUILD;
该过程专门用于生成记录的元数据信息到redo log,这样改动才会被传输到逻辑standby,然后才会被逻辑standby进行SQL应用。
提示:
1)该过程会自动启用primary数据库的补充日志(supplemental logging)功能(如果未启用的话)。
2)该过程执行需要等待当前所有事务完成,因此如果当前有较长的事务运行,可能该过程执行也需要多花一些等待时间。
3)该过程是通过闪回查询的方式来获取数据字典的一致性,因此oracle初始化参数UNDO_RETENTION值需要设置的足够大。
3、转换物理standby为逻辑standby
执行下列语句,转换物理standby为逻辑standby:
SQL> alter database recover to logical standby test;(执行这一步的时候有可能报错,可以先关闭数据库然后启动到mount状态再执行)
关于db_name(注意哟,这可不是db_unique_name,不同于物理standby,逻辑standby是一个全新的数据库,因此建议你指定一个唯一的,
与primary不同的数据库名),如果当前使用spfile,则数据库会自动修改其中的相关信息,如果使用的pfile,在下次执行shutdown的时
候oracle会提示你去修改db_name初始化参数的值。
提示:执行该语句前务必确保已经暂停了redo应用,另外转换是单向的,即只能由物理standby向逻辑standby转换,而不能由逻辑standby
转成物理standby。这并不仅仅是因为dbname发生了修改,更主要的原因是逻辑standby仅是数据与primary一致,其它如存储结构,
scn等基于dbid都不一相同。
另外,该语句执行过程中,需要应用全部的LogMiner字典相关的redo数据。这部分操作完全依赖于primary数据库DBMS_LOGSTDBY.BUILD的执行
以及传输到standby后有多少数据需要被应用。如果primary数据库执行DBMS_LOGSTDBY.BUILD失败,则转换操作也不会有结果,这时候你恐怕不得不先
cancel掉它,解决primary数据库的问题之后再尝试执行转换。
个人测试:这里我测试的时候就没按官方文档走,直接还是设置成和主库的db_name一样的名。
4、重建逻辑standby的密码文件
主要是由于转换操作修改了数据库名,因此密码文件也需要重建,这个操作我们做的比较多,这里就不详述了。
$ cd $ORACLE_HOME/dbs
$ orapwd file=orapwtest password=oracle entries=10
注意:在测试中,有一次后期报1130错误,就是主备库的密码文件不一样造成的。所以在此设置的时候,最好创建主库的密码文件,然后再拷贝到备库的相应位置。
5.重启数据库
SQL> SHUTDOWN;
SQL> STARTUP MOUNT;
6、调整逻辑standby初始化参数
之所以要调整初始化参数,一方面是由于此处我们的逻辑standby是从物理standby转换来的,某些参数并不适合甚至可能造成错误,
比如log_archive_dest_n参数的设置。另一方面,由于逻辑standby会有读写操作,因此需要读写本地online redologs及并产生archivelogs,
务必需要注意本地的archivelogs路径不要与应用接收自primary数据库的redo数据生成的archivelogs路径冲突。当然归根结底是因为逻辑standby
是从物理standby转换而来,因此standby的初始化参数就需要第二次调整(第一次是创建物理standby),这里为什么要选择从物理standby转换呢?
很简单,因为前面测试过程中创建了两个standby,所以我觉着直接转换一个当成逻辑standby,操作更省事儿:)
当然我相信,看完这个系列,如果你对于创建的流程能够非常清晰,完全可以跳过先创建物理standby的过程,直接创建逻辑standby。
关于修改初始化参数的方式有多种,通过alter system set也可以,或者先生成pfile修改相关参数,然后再根据修改过的pfile生成spfile也可以。
service_name=test
db_unique_name=lsnode2
log_archive_dest_1='LOCATION=/oracle/oradata/test/arch valid_for=(all_logfiles,all_roles) db_unique_name=lsnode2'
LOG_ARCHIVE_DEST_2='SERVICE=lsnode1 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lsnode1'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
fal_server=lsnode1
fal_client=lsnode2
standby_file_management=auto
log_archive_dest_3='LOCATION=/oracle/oradata/test/arch1 valid_for=(STANDBY_LOGFILES,STANDBY_ROLE) db_unique_name=lsnode2'
LOG_ARCHIVE_DEST_STATE_3=ENABLE
PARALLEL_MAX_SERVERS=9
UNDO_RETENTION=3600
6、打开逻辑standby
由于逻辑standby与primary数据库事务并不一致,因此第一次打开时必须指定resetlogs选择,如下:
SQL> alter database open resetlogs;
然后可以通过执行下列sql命令应用redo数据:
SQL> alter database start logical standby apply immediate;
ORA-16239: IMMEDIATE option not available without standby redo logs
出现这种错误的主要原因是primary没有为standby创建standby resetlogs文件。
可以执行如下命令:
SQL> alter database start logical standby apply;
如果想停止逻辑standby的sql应用,可以通过下列命令:
SQL> alter database stop logical standby apply immediate;
SQL> alter database stop logical standby apply;
详见《测试版-物理standby创建》文档。
最方便的创建逻辑standby的方式就是先创建一个物理standby,然后再将其转换成逻辑standby,因此第一步就是先创建一个物理standby。
注意,在将其转换为逻辑standby前,可以随时启动和应用redo,但是如果你决定将其转换为逻辑standby,就必须先停止该物理standby的redo应用,
以避免提前应用含LogMiner字典的redo数据,造成转换为逻辑standby后,sql应用时logMiner字典数据不足而影响到逻辑standby与primary的正常同步。
SQL>alter database recover managed standby database cancel;
2、设置primary数据库
在前面创建standby时曾经设置过无数个初始化参数用于primary与物理standby的角色切换,同样对于逻辑standby的角色切换,那些参数同样好使。
不过注意,如果希望primary数据库能够正常切换为逻辑standby角色的话,那么你还需要设置相应的log_archive_dest_N,并且valid_for属性,
需要更改成:(STANDBY_LOGFILES,STANDBY_ROLE)。
编辑primary库的pfile文件如下:
service_name=test
db_unique_name=lsnode1
log_archive_dest_1='LOCATION=/oracle/oradata/test/arch valid_for=(all_logfiles,all_roles) db_unique_name=lsnode1'
LOG_ARCHIVE_DEST_2='SERVICE=lsnode2 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lsnode2'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
fal_server=lsnode2
fal_client=lsnode1
standby_file_management=auto
log_archive_dest_3='LOCATION=/oracle/oradata/test/arch1 valid_for=(STANDBY_LOGFILES,STANDBY_ROLE) db_unique_name=lsnode1'
LOG_ARCHIVE_DEST_STATE_3=ENABLE
PARALLEL_MAX_SERVERS=9
UNDO_RETENTION=3600
设置完之后关闭数据库并重新启动,即:
$ sqlplus / as sysdba
SQL>shutdown immediate
SQL>startup
然后需要生成LogMiner字典信息,通过执行下列语句生成(务必执行):
SQL> EXECUTE DBMS_LOGSTDBY.BUILD;
该过程专门用于生成记录的元数据信息到redo log,这样改动才会被传输到逻辑standby,然后才会被逻辑standby进行SQL应用。
提示:
1)该过程会自动启用primary数据库的补充日志(supplemental logging)功能(如果未启用的话)。
2)该过程执行需要等待当前所有事务完成,因此如果当前有较长的事务运行,可能该过程执行也需要多花一些等待时间。
3)该过程是通过闪回查询的方式来获取数据字典的一致性,因此oracle初始化参数UNDO_RETENTION值需要设置的足够大。
3、转换物理standby为逻辑standby
执行下列语句,转换物理standby为逻辑standby:
SQL> alter database recover to logical standby test;(执行这一步的时候有可能报错,可以先关闭数据库然后启动到mount状态再执行)
关于db_name(注意哟,这可不是db_unique_name,不同于物理standby,逻辑standby是一个全新的数据库,因此建议你指定一个唯一的,
与primary不同的数据库名),如果当前使用spfile,则数据库会自动修改其中的相关信息,如果使用的pfile,在下次执行shutdown的时
候oracle会提示你去修改db_name初始化参数的值。
提示:执行该语句前务必确保已经暂停了redo应用,另外转换是单向的,即只能由物理standby向逻辑standby转换,而不能由逻辑standby
转成物理standby。这并不仅仅是因为dbname发生了修改,更主要的原因是逻辑standby仅是数据与primary一致,其它如存储结构,
scn等基于dbid都不一相同。
另外,该语句执行过程中,需要应用全部的LogMiner字典相关的redo数据。这部分操作完全依赖于primary数据库DBMS_LOGSTDBY.BUILD的执行
以及传输到standby后有多少数据需要被应用。如果primary数据库执行DBMS_LOGSTDBY.BUILD失败,则转换操作也不会有结果,这时候你恐怕不得不先
cancel掉它,解决primary数据库的问题之后再尝试执行转换。
个人测试:这里我测试的时候就没按官方文档走,直接还是设置成和主库的db_name一样的名。
4、重建逻辑standby的密码文件
主要是由于转换操作修改了数据库名,因此密码文件也需要重建,这个操作我们做的比较多,这里就不详述了。
$ cd $ORACLE_HOME/dbs
$ orapwd file=orapwtest password=oracle entries=10
注意:在测试中,有一次后期报1130错误,就是主备库的密码文件不一样造成的。所以在此设置的时候,最好创建主库的密码文件,然后再拷贝到备库的相应位置。
5.重启数据库
SQL> SHUTDOWN;
SQL> STARTUP MOUNT;
6、调整逻辑standby初始化参数
之所以要调整初始化参数,一方面是由于此处我们的逻辑standby是从物理standby转换来的,某些参数并不适合甚至可能造成错误,
比如log_archive_dest_n参数的设置。另一方面,由于逻辑standby会有读写操作,因此需要读写本地online redologs及并产生archivelogs,
务必需要注意本地的archivelogs路径不要与应用接收自primary数据库的redo数据生成的archivelogs路径冲突。当然归根结底是因为逻辑standby
是从物理standby转换而来,因此standby的初始化参数就需要第二次调整(第一次是创建物理standby),这里为什么要选择从物理standby转换呢?
很简单,因为前面测试过程中创建了两个standby,所以我觉着直接转换一个当成逻辑standby,操作更省事儿:)
当然我相信,看完这个系列,如果你对于创建的流程能够非常清晰,完全可以跳过先创建物理standby的过程,直接创建逻辑standby。
关于修改初始化参数的方式有多种,通过alter system set也可以,或者先生成pfile修改相关参数,然后再根据修改过的pfile生成spfile也可以。
service_name=test
db_unique_name=lsnode2
log_archive_dest_1='LOCATION=/oracle/oradata/test/arch valid_for=(all_logfiles,all_roles) db_unique_name=lsnode2'
LOG_ARCHIVE_DEST_2='SERVICE=lsnode1 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lsnode1'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
fal_server=lsnode1
fal_client=lsnode2
standby_file_management=auto
log_archive_dest_3='LOCATION=/oracle/oradata/test/arch1 valid_for=(STANDBY_LOGFILES,STANDBY_ROLE) db_unique_name=lsnode2'
LOG_ARCHIVE_DEST_STATE_3=ENABLE
PARALLEL_MAX_SERVERS=9
UNDO_RETENTION=3600
6、打开逻辑standby
由于逻辑standby与primary数据库事务并不一致,因此第一次打开时必须指定resetlogs选择,如下:
SQL> alter database open resetlogs;
然后可以通过执行下列sql命令应用redo数据:
SQL> alter database start logical standby apply immediate;
ORA-16239: IMMEDIATE option not available without standby redo logs
出现这种错误的主要原因是primary没有为standby创建standby resetlogs文件。
可以执行如下命令:
SQL> alter database start logical standby apply;
如果想停止逻辑standby的sql应用,可以通过下列命令:
SQL> alter database stop logical standby apply immediate;
SQL> alter database stop logical standby apply;
发表评论
-
数据表更名语句
2010-04-21 11:08 1238当前数据表名为A,想要更名为B的语句如下: alter tab ... -
ORA-01078 & LRM-00109错误解决方法
2010-03-23 16:40 5522一同事今天刚装完oracle10g后,通过startup命令启 ... -
在线修改redo.log文件的大小
2009-09-02 17:24 59521.查看当前日志组成员: SQL> select mem ... -
怎么确保最终用户在数据库中只有一个会话
2009-08-11 18:47 1512sqlplus / as sysdba create user ... -
测试版-逻辑switchover
2009-07-16 12:41 12571.检查primary数据库是否配置了standby redo ... -
测试版-物理switchover
2009-07-16 12:35 1089注意:standby数据库应该是alter database ... -
测试版-物理standby创建
2009-07-15 17:37 12861.编辑/etc/hosts文件 # vi /etc/ho ... -
dataguard日志传输方式简介
2009-06-26 12:44 53341、两种日志传输方式 Arch:传统的日志传送方式。现在只 ... -
物理standby的failover
2009-06-26 12:40 1224========================物理stand ... -
物理standby的Switchover
2009-06-26 12:39 1270=======================物理st ... -
dataguard保护模式介绍
2009-06-26 12:38 33301、三种保护模式 1).最大性能(maximize per ... -
查看pga和sga值
2009-05-27 01:07 2540--显示正在使用的参数和文本参数值 1)select * fr ... -
设置sga和pga的值
2009-05-27 01:05 2555--设置sga的值 1)alter system set sg ... -
表的创建时间和表的大小空间
2009-05-27 01:04 1358--查看表的创建时间 select created,last_ ... -
设置parallel_automatic_tuning参数之后的错误的解决方法
2009-05-27 01:02 1769--设置并行度 1)alter system set para ... -
HA、RAC、Datagurad的区别
2009-05-10 20:20 2480标题为:HA、RAC、Datagurad的区别 一.HA简介 ... -
通过shell脚本后台创建表空间
2009-05-10 20:16 20871.用oracle用户登陆并创建shell文件: $ vi / ... -
occi库文件替换
2009-05-10 20:08 20981.从官方下载occi_gcc343_x86_64_10203 ... -
oracle10g查看表空间信息
2009-05-10 20:06 3004SELECT UPPER(F.TABLESPACE_NAME) ... -
oracle10g数据库自启动步骤
2009-05-10 20:05 1749oracle10g数据库自启动自启动设置步骤 一.Oracle ...
相关推荐
根据给定的文件信息,以下是对Oracle 10g物理与逻辑standby测试手册的关键知识点进行的详细解析: ### Oracle Dataguard与物理、逻辑Standby数据库 **Oracle Dataguard**是Oracle数据库的一项关键特性,它提供了...
- **逻辑 standby**:逻辑standby数据库则通过SQL重放来更新,允许在standby上执行查询,提供更灵活的数据保护。 2. **Data Guard配置**: - **创建standby数据库**:包括数据库复制、创建控制文件、恢复文件等...
根据同步机制的不同,Data Guard 支持物理 Standby、逻辑 Standby 和 Snapshot Standby 数据库。 #### 二、Oracle Data Guard 架构 Data Guard 的核心架构包含以下几个关键组件: - **Primary Database**:主要负责...
- **备用模式**:DataGuard 支持多种备用模式,如物理备用(Physical Standby)、逻辑备用(Logical Standby)和同步/异步模式,以适应不同级别的保护需求。 - **数据保护模式**:包括最大保护(Maximum Protection...
- Logical Standby:不仅复制物理结构,还能进行逻辑转换,如SQL重播,以适应不同环境。 在实施Oracle10g DataGuard远程容灾技术时,需要注意以下关键步骤: 1. 配置主数据库和备用数据库:包括安装相同版本的...
2. **逻辑 standby数据库**:除了物理standby,Data Guard还支持逻辑standby数据库,它允许在不同的数据格式或SQL语法下进行数据复制。逻辑standby适用于需要进行数据转换或在不同数据库版本间同步的情况。 3. **...
- **逻辑 standby**:备用数据库结构可以不同,通过SQL Apply进行逻辑转换,适用于异构环境。 2. **保护模式** - **最大保护模式**:保证无数据丢失,但可能影响主库性能。 - **最大可用模式**:允许一定量的...
- 详细介绍如何在MDK5中创建新项目,包括设置工程配置、添加源文件等步骤。 **3.3 MDK5使用技巧** - 文本美化、语法检测、代码提示等技巧详解。 **四、下载与调试** **4.1 STM32F4程序下载** - 介绍如何将编译好...
备用数据库可以是逻辑备用数据库或物理备用数据库,物理备用数据库提供几乎实时的数据保护,并且可以用于灾难恢复。 2. Data Guard组件: - 主数据库:作为数据的主源,所有更改都在这里进行。 - 备用数据库:可以...
在Linux环境下,Oracle 11g R2 Data Guard是一种高可用性和灾难恢复解决方案,它通过在不同的物理或逻辑位置维护一个或多个备用数据库,来保护关键业务数据免受硬件故障、自然灾害或其他潜在的数据丢失风险。...
- **创建VG、LV和FS**:创建卷组、逻辑卷和文件系统。 - **修改系统参数**:根据需要调整系统参数以优化性能。 - **重启两台机器**:重启所有参与集群的机器。 - **配置HACMP**:使用`smitty hacmp`命令进行HACMP的...
4. **物理 standby与逻辑 standby**:Oracle的物理standby用于复制整个CDB或PDB的物理结构,而逻辑standby则适用于需要转换或过滤数据的场景。在多租户环境下,物理standby可以是整个CDB或特定PDB,而逻辑standby...
Oracle Data Guard 是一个高可用性解决方案,通过将主数据库(Primary Database)的事务重做日志同步到一个或多个备用数据库(Standby Databases),从而实现数据的复制和保护。备用数据库可以是物理备份、逻辑备份...
- **表空间**:存储数据文件的逻辑单位,理解其创建、扩展和分配机制。 - **段**:如索引段、数据段等,管理数据存储空间。 - **Extent**:空间分配的基本单元,了解其分配策略对性能的影响。 5. **安全与权限**...
7. **高可用性与容错**:掌握 RAC(Real Application Clusters)的基本原理和配置,理解 Data Guard 的概念,以及如何实现逻辑Standby和物理Standby。 8. **数据库升级与迁移**:学习不同版本间的数据库升级方法,...
物理 standby 通过redo应用来更新数据,而逻辑 standby 则通过解析redo日志进行逻辑转换。Data Guard 提供了不同的保护模式,如最大保护、最大性能和最大可用性,以满足不同业务需求。 2. **GoldenGate**:Oracle ...
- **为所有网卡绑定boot或standby的IP地址**:配置网络接口以支持高可用性集群。 - **创建VG、LV和FS**:配置存储资源。 - **修改系统参数**:调整内核参数以优化集群性能。 - **重启两台机器**:确保配置生效。 - *...
11.4.1创建逻辑Standby数据库的前提条件 11.4.2补充日志及日志记录规则 11.4.3验证主数据库唯一标识 11.4.4创建逻辑Standby数据库 11.4.5管理日志应用服务 11.5快照Standby数据库 11.5.1快照Standby数据库的...