Data Gurd因参数Standby_file_management=MANUAL导致日志无法应用

该博客主要介绍了由于Oracle数据库Standby_file_management参数设置为MANUAL,导致备库无法自动管理数据文件,从而出现日志应用错误的问题。博主通过查看standby同步情况、告警日志,发现了ORA-01111等错误。解决方案是将参数调整为AUTO,并在备库创建对应的数据文件。通过SQL命令展示了如何调整参数和创建数据文件。

第一步:查看standby同步情况,通过如下语句:select sequence#,applied from v$archived_log order by sequence#;

发现好几天的归档日志都没有应用。

第二步:查看告警日志,显示如下信息:

MRP0: Background Media Recovery process shutdown (kehudb)
Sat May 28 14:10:04 2011
Completed: alter database recover managed standby database disconnect from session
Sat May 28 14:10:13 2011
alter database recover managed standby database disconnect from session
Sat May 28 14:10:13 2011
Attempt to start background Managed Standby Recovery process (kehudb)
MRP0 started with pid=23, OS id=18081
Sat May 28 14:10:13 2011
MRP0: Background Managed Standby Recovery process started (kehudb)
Managed Standby Recovery not using Real Time Apply
MRP0: Background Media Recovery terminated with error 1111
Sat May 28 14:10:18 2011
Errors in file /u01/oracle/admin/kehudb/bdump/kehudb_mrp0_18081.trc:
ORA-01111: name for data file 10 is unknown - rename to correct file
ORA-01110: data file 10: '/u01/oracle/product/10.2.0/db/dbs/UNNAMED00010'
ORA-01157: cannot identify/lock data file 10 - see DBWR trace file
ORA-01111: name for data file 10 is unknown - rename to correct file
ORA-01110: data file 10: '/u01/oracle/product/10.2.0/db/dbs/UNNAMED00010'
Sat May 28 14:10:18 2011
Errors in file /u01/oracle/admin/kehudb/bdump/kehudb_mrp0_18081.trc:
ORA-01111: name for data file 10 is unknown - rename to correct file
ORA-01110: data file 10: '/u01/oracle/product/10.2.0/db/dbs/UNNAMED00010'
ORA-01157: cannot identify/lock data file 10 - see DBWR trace file
ORA-01111: name for data file 10 is unknown - rename to correct file
ORA-01110: data file 10: '/u01/oracle/product/10.2.0/db/dbs/UNNAMED00010'

以上问题主要是因为:Standby_file_management参数设置STANDBY_FILE_MANAGEMENT =MANUAL造成不会自动管理数据文件,比如主库增加了数据文件,备库不会自动增加,若设置为AUTO即可实现自动管理。

可以查看备库一下:

SQL>show parameter  Standby_file_management

 STANDBY_FILE_MANAGEMENT =MANUAL

可以通过如下语句在备库执行:

1)调整standby_file_management参数为AUTO
SQL> alter system set standby_file_management=auto;

第三步:

在这种故障场景下,我们可以通过调整数据文件的方法在备库端进行处理,查看主库和备库数据文件对比一下是否一致。

SQL> select name from v$datafile;

NAME
----------------------------------------------------------------------
/oradata/twwww01.dbf
/oradata/users01.dbf
/oradata/system01.dbf
/oradata/sysaux01.dbf
/u01/oracle/product/10.2.0/db/dbs/UNNAMED00010

通过以上参数设置后,还必须做如下处理才能解决以上问题

SQL> alter database create datafile  '/u01/oracle/product/10.2.0/db/dbs/UNNAMED00010' as '/oradata/twwww03.dbf';

Database altered.

<think>好的,用户需要Oracle 11g Data Guard的搭建步骤指南。首先,我得回忆一下之前学过的Data Guard相关知识。根据用户提供的引用,特别是引用[1]和[3],主备库的搭建涉及到主库和备库的配置,包括参数修改、文件传输、监听设置等步骤。用户可能是在生产环境或者测试环境中需要搭建高可用性解决方案,所以需要详细的步骤。 首先,我应该确认用户的环境是否已经满足前提条件,比如两台服务器都安装了Oracle 11g软件,主库已经创建了数据库实例,备库仅安装软件。然后按照步骤分主库配置和备库配置两部分进行说明。 主库配置方面,需要开启归档模式,这是Data Guard的必要条件。用户可能不太清楚如何检查归档模式,所以需要给出具体的SQL命令,比如“archive log list”。然后修改必要的初始化参数,如db_name、db_unique_name、log_archive_config等。这些参数在引用[3]中提到的db_file_name_convert和log_file_name_convert也需要配置,确保主备库文件路径正确转换。 接下来是创建备用控制文件,这个步骤可能需要使用RMAN,用户可能对RMAN操作不熟悉,所以需要给出具体的命令示例。然后生成密码文件,并确保主备库的密码一致,这也是引用[2]中提到的步骤之一。 网络配置部分,监听和TNSNames的配置是关键,确保主备库之间能够通信。用户可能在这里遇到问题,比如监听器无法启动或者连接不上,需要强调检查监听配置和网络连通性。 备库配置方面,需要将主库的文件传输到备库,包括参数文件、控制文件、数据文件、归档日志等。用户可能不知道如何正确修改备库的参数文件,特别是db_unique_name和control_files的路径。此外,启动备库到nomount状态,然后恢复控制文件,这也是关键步骤,需要详细说明。 最后是启动同步进程,配置日志传输和应用,用户可能需要知道如何验证同步是否正常,比如检查日志应用状态和测试故障切换。引用[1]和[3]提到了参数配置和文件路径转换,这些都需要在步骤中体现。 用户可能还关心常见问题,比如参数配置错误、网络不通、文件权限问题等,所以需要在注意事项中提醒。此外,生成的相关问题可以帮助用户进一步了解Data Guard的验证、参数作用、主备切换等,这些也是搭建后可能遇到的后续步骤。 需要确保回答结构清晰,分步骤说明,并且参考了提供的引用内容,特别是参数设置和文件处理部分。同时,使用中文,避免技术术语错误,保持语言自然,符合用户的理解习惯。</think>### Oracle 11g Data Guard 搭建步骤指南 #### **一、环境准备** 1. **服务器要求** - 两台服务器(主库 Primary,备库 Standby)需安装相同版本的 Oracle 11gR2 软件 - 主库需已创建数据库实例,备库仅安装数据库软件[^1] - 确保主备库网络互通(可通过 `tnsping` 验证) 2. **文件路径规划** - 主备库数据文件路径需通过参数 `db_file_name_convert` 和 `log_file_name_convert` 实现映射[^3] 例如: ```sql ALTER SYSTEM SET db_file_name_convert='/oracle/app/oracle/oradata/orcl_sby', '/oradata/datafile/orcl/' SCOPE=SPFILE; ``` --- #### **二、主库配置** 1. **开启归档模式** ```sql SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN; ``` 2. **修改初始化参数** ```sql ALTER SYSTEM SET log_archive_config='DG_CONFIG=(primary_db, standby_db)'; ALTER SYSTEM SET log_archive_dest_2='SERVICE=standby_db ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby_db'; ALTER SYSTEM SET fal_server=standby_db; ALTER SYSTEM SET db_unique_name=primary_db SCOPE=SPFILE; ``` 3. **创建备用控制文件** 使用 RMAN 生成备用控制文件: ```sql RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY; ``` 4. **生成密码文件并传输** - 使用 `orapwd` 创建密码文件 - 确保主备库 `SYS` 密码一致[^2] --- #### **三、备库配置** 1. **传输主库文件到备库** - 包括参数文件(`pfile`)、控制文件、数据文件、归档日志 - 修改备库参数文件中的 `db_unique_name` 和 `control_files` 路径 2. **启动备库到 nomount 状态** ```sql STARTUP NOMOUNT; ``` 3. **恢复控制文件** ```sql ALTER DATABASE MOUNT STANDBY DATABASE; ``` 4. **配置监听与 TNSNames** - 主备库的 `listener.ora` 和 `tnsnames.ora` 需包含双向服务名解析[^2] 示例: ``` standby_db = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = standby_host)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = orcl)) ) ``` --- #### **四、启动同步进程** 1. **主库启用日志传输** ```sql ALTER SYSTEM ARCHIVE LOG CURRENT; ``` 2. **备库启动日志应用** ```sql ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; ``` --- #### **五、验证同步状态** 1. **检查备库日志应用** ```sql SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY; ``` 2. **测试故障切换** ```sql -- 主库切换为备库 ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY; -- 备库切换为主库 ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY; ``` --- #### **注意事项** - 确保主备库 `COMPATIBLE` 参数一致 - 定期检查归档日志传输延迟 - 主备库时区需同步 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值