目前在弄Oracle dataguard做异地容灾。
一切配置按照文档来,没出什么问题。
但是其他同事创建的时候发现备库无法和主库同步,备库却可以处于正常的mount状态。
查看primary数据库的alert.log
其中有错误
Errors in file /opt/app/oracle/diag/rdbms/xxx/trace/xxx_arc2_18107.trc:
ORA-16012: database identifier mismatch
查看文件xxx_arc2_18107.trc,其中有错误信息
OCISessionBegin failed -1
.. Detailed OCI error val is 1017 and errmsg is 'ORA-01017: invalid username/password; logon denied
'
OCISessionBegin failed. Error -1
.. Detailed OCI error val is 1031 and errmsg is 'ORA-01031: insufficient privileges
'
OCISessionBegin failed. Error -1
.. Detailed OCI error val is 1031 and errmsg is 'ORA-01031: insufficient privileges
主库远程访问备库时需要密码文件登入备库,估计是备库密码文件创建问题,重建密码文件,拷贝到备库dbs目录,ORA-01031错误消失。
但仍然不能同步,ORA-16012: database identifier mismatch错误继续出现,在trc文件中,出现下面的内容
Logged on to standby successfully
Client logon and security negotiation successful!
Error 16012 attaching RFS server to standby instance at host 'emadbdg'
Error 16012 attaching to destination LOG_ARCHIVE_DEST_2 standby host 'emadbdg'
ORA-16012: database identifier mismatch
暂时对这个ORA-16012没什么头绪,没有查到对应的措施,但说明前面主库向备库登录的验证已经过了。
继续检查standby数据库的alert.log,发现standby库在mount过程就抛出数据文件的错误。
检查primary数据库alert.log
Mon May 16 10:53:10 2011
alter database create standby controlfile as '/var/tmp/dg/control01.ctl'
ORA-1580 signalled during: alter database create standby controlfile as '/var/tmp/dg/control01.ctl'...
发现在创建备库的ctl控制文件就出现了问题,这是个疑点。
同事回忆发现原来直接拷贝了/var/tmp/dg/中上次创建的ctl文件,这个文件由于创建失败没有覆盖老的,这样造成数据文件和ctl控制文件的时间版本不一致。
重新拷贝数据文件,创建ctl文件,复制,错误消除。
在创建主库数据文件备份后要立刻创建备库的控制文件
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/control01.ctl';
因为控制文件会包含数据文件的checkpoint scn,系统 checkpoint的SCN,数据文件stop scn,数据库在正常运行的情况下要和数据文件的start scn要保持一致。
如果备份主库数据文件之后,数据库被open,再创建ctl文件,则此时的ctl文件与备份的数据文件不同步,用来创建dataguard便会导致问题。
分享到:
相关推荐
将之前创建的 `standby.ctl` 和 `standby.ora` 文件以及所有数据文件 `.dbf` 复制到从库的相应目录中。 #### 四、进一步配置 - **初始化从库**:使用从主库复制过来的 `standby.ctl` 和 `standby.ora` 初始化从库。...
根据提供的文件信息,本文将详细解释Oracle Standby数据库的相关知识点,包括如何设置和管理Oracle Standby数据库,以及在Oracle 9i环境下配置Data Guard的基本步骤。 ### Oracle Standby数据库概念 Oracle ...
将备份的控制文件、数据文件、参数文件以及新的standby.ctl和init.ora文件复制到dbsrv2。同时,清理备用服务器的ARCHIVE目录。确保在拷贝文件时,主备数据库均处于关闭状态。 5. **编辑备用服务器的init.ora文件** ...
定期检查Data Guard的状态,确保standby数据库与主数据库同步,并在需要时进行故障切换。 总之,配置Oracle 10G物理standby数据库涉及多个步骤,包括设置数据库模式、拷贝数据文件、创建standby控制文件、配置初始...
Data Guard 是 Oracle 数据库的一个特性,它提供了一种高可用性和灾难恢复解决方案,通过创建和维护一个或多个备用数据库(standby databases)来保护主数据库(primary database)。在这个过程中,主数据库的操作...
Data Guard是Oracle数据库的一个高可用性解决方案,它通过提供对生产数据库(即主数据库)的数据保护来确保业务连续性。Data Guard支持多种配置模式,包括物理备用库、逻辑备用库以及快照备用库等。本例中我们将重点...
Oracle Data Guard是一种高可用性和灾难恢复解决方案,它能够实现在多个地理位置之间对Oracle数据库进行保护,确保数据的完整性和连续性。通过使用Data Guard,可以实现主备数据库之间的实时同步,确保在主数据库...
通过在主数据库(Primary Database)与备数据库(Standby Database)之间进行实时的数据保护,Data Guard不仅能够帮助组织实现灾难恢复策略,还能够在数据丢失或硬件故障的情况下迅速恢复业务运行。本文将详细介绍...
- 使用SQL查询获取主库数据文件路径`SELECT NAME FROM v$datafile;` - 获取临时文件路径`SELECT * FROM v$tempfile;` - 将数据文件直接拷贝至备库相同目录下 - 控制文件和redo日志无需手动拷贝,备库启动时会...
将备份文件 `backup_%T.bak`、备库控制文件 `stdby_control01/02/03.ctl` 和初始化参数文件 `initPHYSTDBY.ora` 拷贝到备库所在的主机。 #### 三、建立备库 在完成了主库的所有准备工作之后,接下来需要建立备库。 ...
- **作用**:此命令用于强制数据库的所有事务都进行完全日志记录,这对于实现 Data Guard 的数据保护功能至关重要。 2. **设置归档模式** - **检查归档模式**:`ARCHIVELOG LIST;` - **关闭数据库**:`SHUTDOWN ...
Oracle Data Guard 是 Oracle 提供的一种高可用性解决方案,它通过在主数据库(Primary Database)和辅助数据库(Standby Database)之间实现数据的实时复制来提高系统的可靠性和可用性。当主数据库发生故障时,可以...
- 为了确保主数据库和备用数据库之间的一致性,需要修改参数文件(`initorcl.ora`)来调整各种参数。例如,增加缓存大小、设置日志归档配置等。 ```bash [oracle@localhost dbs]$ vi initorcl.ora orcl.__db_...
- 将主数据库的文件(控制文件、数据文件等)复制到备用数据库服务器。 - 使用 `nomount` 模式启动备用数据库,并进行文件复制。 ```sql alter database nomount; ``` 4. **参数文件处理**: - 创建参数文件...
- **说明**:开启归档模式后,数据库将自动将重做日志文件归档到指定位置,这些文件对于Data Guard的备用数据库同步至关重要。 ##### 3. **添加“备用联机日志文件”** - **目的**:备用联机日志文件是在主...
根据提供的信息,我们可以总结出以下关于Oracle Data Guard的相关...通过以上步骤,我们可以成功地配置和启动Oracle Data Guard环境,确保主数据库与备用数据库之间的数据同步以及提高系统的高可用性和灾难恢复能力。