热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

给客户搭建RAC-DG时碰到的一些问题总结

昨天去某客户那里搭建RAC-DG的物理备库,这里把大致流程再列举一下,为不涉及泄露隐私,主要参数已替换名称,具体路径也不一致。由于客户那边的环境不允许本机用网络连接内网,因此无法截下故障时各种报警日志和trace文件的截图,只能凭回忆大致写出。1.主库

昨天去某客户那里搭建RAC-DG的物理备库,这里把大致流程再列举一下,为不涉及泄露隐私,主要参数已替换名称,具体路径也不一致。由于客户那边的环境不允许本机用网络连接内网,因此无法截下故障时各种报警日志和trace文件的截图,只能凭回忆大致写出。 1.主库

昨天去某客户那里搭建RAC-DG的物理备库,这里把大致流程再列举一下,为不涉及泄露隐私,主要参数已替换名称,具体路径也不一致。由于客户那边的环境不允许本机用网络连接内网,因此无法截下故障时各种报警日志和trace文件的截图,只能凭回忆大致写出。

1.主库在线修改spfile参数

alter database force logging;

alter system set log_archive_cOnfig='DG_COnFIG=(dg,dgdg)';
alter system set log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg';
alter system set log_archive_dest_2='SERVICE=dgdg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dgdg';
alter system set log_archive_dest_state_1='ENABLE';
alter system set log_archive_dest_state_2='ENABLE';
alter system set standby_file_management='AUTO';

alter system set fal_server='DGDG';

需重启参数:

alter system set db_file_name_cOnvert='C:\app\administrator\oradata\dg','+data/dg/datafile' scope=spfile;
alter system set log_file_name_cOnvert='C:\app\administrator\oradata\dg','+data/dg/onlinelog' scope=spfile;

2.创建pfile

SQL> create pfile from spfile;

3.修改备库用的pfile

*.__db_cache_size=0

*.__java_pool_size=0
*.__large_pool_size=0
*.__oracle_base='C:\app\administrator'#ORACLE_BASE set from environment
*.__pga_aggregate_target=0
*.__sga_target=0
*.__shared_io_pool_size=0
*.__shared_pool_size=0
*.__streams_pool_size=0
*.audit_file_dest='C:\app\administrator\admin\dg\adump'
*.audit_trail='db'
*.cluster_database=false --说明是单实例数据库,否则启动会报错
*.compatible='11.2.0.0.0'
*.control_files='C:\app\administrator\oradata\dg\control01.ctl','C:\app\administrator\oradata\dg\control02.ctl'
*.db_block_size=8192
*.db_create_file_dest='C:\app\administrator\oradata'
*.db_domain=''
*.db_name='dg'
*.db_recovery_file_dest='C:\app\administrator\flash_recovery_area'
*.db_recovery_file_dest_size=3908042752
*.diagnostic_dest='C:\app\administrator'
*.dispadghers='(PROTOCOL=TCP) (SERVICE=DGXDB)'
*.fal_server='dg'
*.instance_number=1
*.log_archive_cOnfig='DG_COnFIG=(dg,dgdg)'
*.log_archive_dest_1='LOCATION=c:\archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dgdg'
*.log_archive_dest_2='SERVICE=dg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dg'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='ARC%S_%R.%T'
*.memory_target=8577351680
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='exclusive'
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.db_file_name_cOnvert='+data/dg/datafile','C:\app\administrator\oradata\dg'
*.log_file_name_cOnvert='+data/dg/onlinelog','C:\app\administrator\oradata\dg'
*.db_unique_name=dgdg --复制过来的pfile如果不设置这个参数,默认的值是dg

4.修改tnsnamesl.ora

# tnsnames.ora Network Configuration File: C:\app\administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora

# Generated by Oracle configuration tools.

dg =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg-cluster-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dg)
)
)


DGDG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = dgP)(HOST = dgdg)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dg)
)
)

5.修改listener.ora(只给备库用,主库可以不配置静态监听)

# listener.ora Network Configuration File: C:\app\administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = dg)
(ORACLE_HOME = C:\app\administrator\product\11.2.0\dbhome_1)
(SID_NAME = dg)
)
)

LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dgdg)(PORT = 1521))
)

ADR_BASE_LISTENER = C:\app\administrator\product\11.2.0\dbhome_1\log

6.备库创建相关目录

c:\archivelog --指定一个本地归档路径,备库接收到的归档日志和自己生成的归档日志都放在这里
c:\app\administrator\admin\dg\adump
c:\app\administrator\admin\dg\dpdump
c:\app\administrator\admin\dg\hdump
c:\app\administrator\admin\dg\pfile
c:\app\administrator\flash_recovery_area
c:\app\administrator\oradata\dg

7.主库做rman全备

RMAN> backup as compressed backupset full database format 'c:\bak\full_%d_%I_%T_%U'

8.主库创建备库控制文件

SQL> alter database create standby controlfile as 'c:\control01.ctl';
SQL> alter database create standby controlfile as 'c:\control02.ctl';

9.复制备份文件、密码文件、pfile文件、tnsnames.ora、listener.ora到备库相应位置

10.备库创建实例

oradim -new -sid dg -startmode manual -spfile;

11.启动监听

lsntrctl start

12.启动实例到mount

set oracle_sid=dg
sqlplus / as sysdba
SQL> startup mount

13.恢复数据库

RMAN> catalog start with 'd:\bak'; --不指定会提示无法恢复数据库
RMAN> restore database;

14.备库添加standby redo logfile

SQL> alter database add standby logfile 'C:\app\administrator\oradata\dg\std_05.log' size 50m;
SQL> alter database add standby logfile 'C:\app\administrator\oradata\dg\std_06.log' size 50m;
SQL> alter database add standby logfile 'C:\app\administrator\oradata\dg\std_07.log' size 50m;
SQL> alter database add standby logfile 'C:\app\administrator\oradata\dg\std_08.log' size 50m;
SQL> alter database add standby logfile 'C:\app\administrator\oradata\dg\std_09.log' size 50m;

15.启用redo apply

SQL> alter database recover managed standby database disconnect from session;

16.给备库创建spfile(可选)

SQL> create spfile from pfile;

下面记录几个在整个配置过程中遇到的问题:

1.用opatch apply命令无法打patch

出现原因:11.2.0.3默认装完后的opatch版本是11.2.0.1.7,我要打的patch 27需要在这个版本之上才可以

解决方法:解压高版本的opatch安装包后覆盖原opatch目录

2.备库alert.log报警提示无法找到控制文件自动备份路径

出现原因:RAC主库之前部署过自动RMAN备份脚本,指定了控制文件自动备份路径,但备库并没有此路径

解决方法:进入RMAN,修改该项参数为备库存在的目录

3.参数设置错误而引起GAP,导致自动备份脚本停止运行

出现原因:之前在设置参数时,把主库的log_archive_dest_1参数设置了本地路径归档,如:
alter system set log_archive_dest_1='LOCATION=C:\archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg';

作为RAC,归档路径在本地的话,其他节点就无法读取,发现后重新设置为USE_DB_RECOVERY_FILE_DEST后,那些在本地的归档日志就成为GAP而无法传递到备库

解决方法:手工复制所有提示缺失的xxx归档到指定位置,再手动执行RMAN自动备份脚本

说明:由于RMAN自动备份脚本里配置了冗余7份,而之搭建DG时手动执行了全库备份,这些手动备份也是算在7份冗余之内的,为了不占用正常备份的配额,DG搭建完成后建议物理删除,然后再crossecheck并清理掉

4.主、备库的alert.log经常会出现TNS错误

fatal NI connect error 12547

TNS-12547 TNS : 丢失连接
ns secondary err code : 12560
ns main err code : 517

TNS-00517 TNS : 丢失连接
nt secondary err code : 54
nt OS err code : 0

出现原因:节点2没有配置tnsnames.ora,造成thread 2的归档日志无法传递到备库,同时也会造成主库日志能传递过去,但无法应用。

解决方法: 把节点1的tnsnames.ora直接复制一个到节点2

说明:其实这个也是造成备库应用出现GAP的最大原因,由于节点2日志传递不到备库,虽然之前的几个归档日志序列相应的applied列的属性值都是YES,但是会造成节点1的日志也不应用,哪怕在节点1切了很多次归档,applied列始终会显示NO,但日志都是可以正常传递过去的
推荐阅读
  • 面对众多的数据分析工具,如何选择最适合自己的那一个?对于初学者而言,了解并掌握几种核心工具是快速入门的关键。本文将从数据处理的不同阶段出发,推荐三种广泛使用的数据分析工具。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • ACM经典书籍推荐
    本文介绍了几本在算法和计算机科学领域具有重要影响力的书籍,包括由Donald E. Knuth编著的《计算机程序设计艺术》第一卷,以及潘氏兄弟的数论经典教材等。这些书籍不仅是学习相关领域的宝贵资源,也是专业人士不可或缺的参考书。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • 本文深入探讨了MySQL中的高级特性,包括索引机制、锁的使用及管理、以及如何利用慢查询日志优化性能。适合有一定MySQL基础的读者进一步提升技能。 ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
  • 在使用mybatis进行mapper.xml测试的时候发生必须为元素类型“mapper”声明属性“namespace”的错误项目目录结构UserMapper和UserMappe ... [详细]
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • Java连接MySQL数据库的方法及测试示例
    本文详细介绍了如何安装MySQL数据库,并通过Java编程语言实现与MySQL数据库的连接,包括环境搭建、数据库创建以及简单的查询操作。 ... [详细]
  • 本文详细介绍了如何使用SQL*Plus连接Oracle数据库以及使用MySQL客户端连接MySQL数据库的方法,包括基本命令和具体操作步骤。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 本文探讨了如何在SQL Server Reporting Services (SSRS)中利用TOP N功能来筛选和展示数据集中的前N条记录。通过正确的配置图表属性中的筛选器设置,可以轻松实现这一目标。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • 本文详细介绍了MySQL InnoDB存储引擎中的Redo Log和Undo Log,探讨了它们的工作原理、存储方式及其在事务处理中的关键作用。 ... [详细]
  • MVC模式下的电子取证技术初探
    本文探讨了在MVC(模型-视图-控制器)架构下进行电子取证的技术方法,通过实际案例分析,提供了详细的取证步骤和技术要点。 ... [详细]
author-avatar
我们的生活小窍门
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有