致命的db_unique_name笔误引发的悲剧

简介:

故障现象:ORACLE DATAGUARD环境搭建完成后启动主库报告如下错误:

Wed Feb  8 23:12:38 2012
LGWR: Error 16047 creating archivelog file 'standby'
Wed Feb  8 23:12:38 2012
Errors in file /home/oracle/admin/port/bdump/port_lns1_1131.trc:
ORA-16047: DGID mismatch between destination setting and standby
Wed Feb  8 23:12:38 2012
FAL[server, ARC1]: Error 16047 creating remote archivelog file 'standby'
FAL[server, ARC1]: FAL archive failed, see trace file.
Wed Feb  8 23:12:38 2012
Errors in file /home/oracle/admin/port/bdump/port_arc1_1125.trc:
ORA-16055: FAL request rejected
ARCH: FAL archive failed. Archiver continuing
经过分析是主库和从库db_unique_name设置不一致引发,
通过show parameter name发现从库的db_unique_name果然和主库预想值不一致,
要求是standby,而实际是port.

主库的参数设置:
ALTER DATABASE FORCE LOGGING;
ALTER SYSTEM SET DB_UNIQUE_NAME=port scope=spfile;
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(port,standby)' scope=both;
--主库归档目的地
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/archivelog/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=port' scope=both;
--当该库充当主库角色时,设置物理备库redo data的传输目的地
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=standby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby' scope=spfile;
--许redo传输服务传输数据到目的地,默认是enable
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=spfile;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=spfile;
--exclusive or shared,所有库sys密码要一致,默认是exclusive
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE scope=spfile;
--
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' scope=spfile;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=4 scope=spfile;
--配置网络服务名,fal_server拷贝丢失的归档文件到这里
ALTER SYSTEM SET FAL_CLIENT=port SCOPE=SPFILE;
--配置网络服务名,假如转换为备库角色时,从这里获取丢失的归档文件
ALTER SYSTEM SET FAL_SERVER=STANDBY SCOPE=SPFILE;
--auto后当主库的datafiles增删时备库也同样自动操作,且会把日志传送到备库standby_archive_dest参数指定的目录下,
--确保该目录存在,如果你的存储采用文件系统没有问题,但是如果采用了裸设备,你就必须将该参数设置为manual
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SCOPE=SPFILE; 
--前为切换后的主库路径,后为切换后的备库路径,如果主备库目录结构完全一样,则无需设定
ALTER SYSTEM SET DB_FILE_NAME_CONVERT='/u01/oracle/oradata/port/','/u01/oracle/oradata/port/' SCOPE=SPFILE;
--同上,这两个名字转换参数是主备库的路径映射关系,可能会是路径全名,看情况而定
ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='/u01/oracle/oradata/port/','/u01/oracle/oradata/port/' SCOPE=SPFILE;
--一般和LOG_ARCHIVE_DEST_1的位置一样,如果备库采用ARCH传输方式,那么主库会把归档日志传到该目录下
ALTER SYSTEM SET STANDBY_ARCHIVE_DEST='/home/oracle/archivelog/' scope=spfile;

从库的PFILE设置
port.__db_cache_size=1644167168
port.__java_pool_size=167772160
port.__large_pool_size=16777216
port.__shared_pool_size=301989888
port.__streams_pool_size=0
*.audit_file_dest='/home/oracle/admin/port/adump'
*.background_dump_dest='/home/oracle/admin/port/bdump'
*.compatible='10.2.0.4.0'
*.control_files='/u01/oracle/oradata/port/control01.ctl','/u01/oracle/oradata/port/control02.ctl','/u01/oracle/oradata/port/control03.ctl'
*.core_dump_dest='/home/oracle/admin/port/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=32
*.db_file_name_convert='/u01/oracle/oradata/port/','/u01/oracle/oradata/port/'
*.db_name='port'
*.db_unique_name='standby'----------------------------这一句漏了,导致默认成了PORT
*.db_recovery_file_dest='/home/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=portXDB)'
*.java_pool_size=157286400
*.job_queue_processes=10
*.log_archive_config='DG_CONFIG=(port,standby)'
*.log_archive_dest_1='LOCATION=/home/oracle/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=standby'
*.log_archive_dest_2='service=port lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=port'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_max_processes=4
*.log_file_name_convert='/u01/oracle/oradata/port/','/u01/oracle/oradata/port/'
*.open_cursors=450
*.pga_aggregate_target=823132160
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=2147483648
*.shared_pool_size=157286400
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/home/oracle/admin/port/udump'

由于db_unique_name成了'port'导致主库和从库无法对应,主库报如下错误:


处理方法:
修改备库参数文件/home/oracle/product/10.2.0/db_1/dbs/initport.ora后
create pfile = '/home/oracle/product/10.2.0/db_1/dbs/initport.ora' from spfile;
然后启动DG
SQL>shutdown immediate;
SQL>startup nomount;
SQL>alter database mount standby database;
SQL>alter database recover managed standby database disconnect from session;


本文转自zylhsy 51CTO博客,原文链接:http://blog.51cto.com/yunlongzheng/775123,如需转载请自行联系原作者
相关文章
|
机器学习/深度学习 存储 人工智能
量子计算与人工智能:探索两大前沿技术的结合
当谈到两个最令人兴奋的领域时,量子计算和人工智能都毫无疑问地处于前沿。这两个领域的结合潜力巨大,为解决一些传统计算难题和推动智能系统的发展带来了新的可能性。本文将探讨量子计算与人工智能的结合,并提供一个简单的代码案例来演示这种融合的潜力。
727 0
|
JavaScript 前端开发 API
探索后端技术:Node.js的优势和实际应用
【10月更文挑战第6天】 在当今数字化时代,后端开发是任何成功软件应用的关键组成部分。本文将深入探讨一种流行的后端技术——Node.js,通过分析其核心优势和实际应用案例,揭示其在现代软件开发中的重要性和潜力。
657 2
|
存储 编译器 C语言
C语言:数组名作为类型、作为地址、对数组名取地址的区别
在C语言中,数组名可以作为类型、地址和取地址使用。数组名本身代表数组的首地址,作为地址时可以直接使用;作为类型时,用于声明指针或函数参数;取地址时,使用取地址符 (&),得到的是整个数组的地址,类型为指向该类型的指针。
1083 4
|
JavaScript 前端开发
什么是 for 循环?
什么是 for 循环?
372 0
|
边缘计算 监控 算法
边缘计算的挑战和机遇
讨论了边缘计算面临的挑战和机遇,包括数据安全、网络稳定性、实时性能、异构性兼容性问题,并探索了其在不同应用场景中的潜力和商业模式创新。
628 0
|
网络协议 安全 网络虚拟化
"揭秘!网工爱不释手的Wireshark八大绝技,让复杂网络问题无所遁形,你掌握了吗?"
【8月更文挑战第19天】Wireshark是网络工程师不可或缺的工具,以其卓越的抓包与分析能力闻名,在网络故障排除、性能优化和安全审查方面作用显著。本文精选八大实用技巧,包括精准数据包过滤、序列号排序、时间格式调整、数据包解码、混杂模式使用、数据包标记与导出、自定义显示列以及过滤器的高效应用,助您在网络分析中得心应手,成为解决复杂问题的高手。
546 0
|
存储 弹性计算 Cloud Native
阿里云产品免费试用规则介绍及可试用云产品整理
阿里云免费试用活动是阿里云为新手用户提供的免费体验的权益,包括免费云服务器、免费云存储、免费数据库以及AI试用等,旨在为新手开发者提供0成本高质量的上云体验服务,打造开放,敏捷的开发者环境,让企业和个人轻松享受云服务。本文为大家详细介绍下阿里云产品免费试用活动规则及可试用云产品整理,以供参考。
2411 2
阿里云产品免费试用规则介绍及可试用云产品整理
|
运维 监控 容灾
建设强大系统:提升高可用、可靠性和稳定性的秘诀
建设强大系统:提升高可用、可靠性和稳定性的秘诀
1773 0
|
移动开发 监控 API
阿里云优惠口令大全(域名优惠口令对照表)
2023阿里云优惠口令大全(域名优惠口令对照表),阿里云域名优惠口令用于域名注册购买、域名续费及域名转入时使用,阿里云com域名续费优惠口令“商标优选即买即用”,cn域名续费优惠口令“商标智能在线检索”,com域名注册优惠口令和cn域名注册优惠口令
|
SQL 存储 人工智能
华为高斯认证(opengauss)HCIA
华为高斯认证(opengauss)HCIA
2910 0