1

我有两个数据库,一个主数据库和一个辅助数据库,并且在两者之间配置了一个数据保护,我重新启动了 suse linux 但是在启动数据库时,复制没有完成,我想我用错误的方式启动备用数据库......不,它刚刚安装,我在备用间隙表中无法检测到间隙,并且备用数据库中出现“未指定 FAL 服务器”问题,可能是什么问题?

    From Primary:
    System parameters with non-default values:
    processes                = 1200
    nls_date_format          = "MM/DD/YYYY HH24:MI:SS"
    memory_target            = 8000M
    memory_max_target        = 8G
    control_files            = "/oracle/app/oradata/ora11g/control01.ctl"
    control_files            = "/oracle/app/oradata/ora11g/control02.ctl"
    control_files            = "/oracle/app/oradata/ora11g/control03.ctl"
    db_block_size            = 8192
    compatible               = "11.1.0.0.0"
    log_archive_start        = TRUE
    log_archive_dest_1       = "LOCATION=/home/oracle/archive"
    log_archive_format       = "%t_%s_%r.dbf"
    db_recovery_file_dest    = "/oracle/app/flash_recovery_area"
    db_recovery_file_dest_size= 2G
    undo_tablespace          = "UNDOTBS1"
    sec_case_sensitive_logon = FALSE
    remote_login_passwordfile= "EXCLUSIVE"
    db_domain                = ""
    dispatchers              = "(PROTOCOL=TCP) (SERVICE=ora11gXDB)"
    local_listener           = ""
    remote_listener          = ""
    session_cached_cursors   = 450
    cursor_sharing           = "FORCE"
    audit_file_dest          = "/oracle/app/admin/ora11g/adump"
    audit_trail              = "NONE"
    db_name                  = "ora11g"
    open_cursors             = 300
    diagnostic_dest          = "/oracle/app"

从备用数据库警报日志:

    Thu Feb 13 17:16:02 2014
    Starting ORACLE instance (normal)
    LICENSE_MAX_SESSION = 0
    LICENSE_SESSIONS_WARNING = 0
    Picked latch-free SCN scheme 3
    Autotune of undo retention is turned on.
    IMODE=BR
    ILAT =145
    LICENSE_MAX_USERS = 0
    SYS auditing is disabled
    Starting up ORACLE RDBMS Version: 11.1.0.7.0.
    Using parameter settings in server-side spfile        
    /oracle/app/product/11g/db/dbs/spfileora11g.ora
    System parameters with non-default values:
    processes                = 1200
    nls_date_format          = "MM/DD/YYYY HH24:MI:SS"
    memory_target            = 8000M 
    memory_max_target        = 8G
    control_files            = "/oracle/app/oradata/ora11g/control01.ctl"
    control_files            = "/oracle/app/oradata/ora11g/control02.ctl"
    control_files            = "/oracle/app/oradata/ora11g/control03.ctl"
    db_block_size            = 8192
    compatible               = "11.1.0.0.0"
    log_archive_start        = TRUE
    log_archive_dest_1       = "LOCATION=/home/oracle/archive"
    log_archive_format       = "%t_%s_%r.dbf"
    db_recovery_file_dest    = "/oracle/app/flash_recovery_area"
    db_recovery_file_dest_size= 2G
    undo_tablespace          = "UNDOTBS1"
    sec_case_sensitive_logon = FALSE
    remote_login_passwordfile= "EXCLUSIVE"
    db_domain                = ""
    dispatchers              = "(PROTOCOL=TCP) (SERVICE=ora11gXDB)"
    local_listener           = ""
    remote_listener          = ""
    session_cached_cursors   = 450
    cursor_sharing           = "FORCE"
    audit_file_dest          = "/oracle/app/admin/ora11g/adump"
    audit_trail              = "NONE"
    db_name                  = "ora11g"
    open_cursors             = 300
    diagnostic_dest          = "/oracle/app"
    Deprecated system parameters with specified values:
    log_archive_start
    End of deprecated system parameter listing
    Thu Feb 13 17:16:04 2014
    .
    .
    .
    starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)   (PROTOCOL=TCP))'...
    Thu Feb 13 17:16:04 2014
    MMNL started with pid=15, OS id=10039
    starting up 1 shared server(s) ...
    ORACLE_BASE from environment = /oracle/app
    Thu Feb 13 17:16:04 2014
    ALTER DATABASE   MOUNT
    Setting recovery target incarnation to 2
    ARCH: STARTING ARCH PROCESSES
    Thu Feb 13 17:16:09 2014
    ARC0 started with pid=19, OS id=10272
    Thu Feb 13 17:16:09 2014
    ARC1 started with pid=20, OS id=10274
    Thu Feb 13 17:16:09 2014
    ARC2 started with pid=21, OS id=10276
    ARC0: Archival started
    ARC1: Archival started
    ARC2: Archival started
    Thu Feb 13 17:16:09 2014
    ARC3 started with pid=22, OS id=10278
    ARC3: Archival started
    ARCH: STARTING ARCH PROCESSES COMPLETE
    ARC0: Becoming the 'no FAL' ARCH
    ARC0: Becoming the 'no SRL' ARCH
    ARC0: Thread not mounted
    ARC1: Becoming the heartbeat ARCH
    ARC2: Thread not mounted
    ARC1: Thread not mounted
    ARC3: Thread not mounted
    Successful mount of redo thread 1, with mount id 4235628820
    Physical Standby Database mounted.
    Lost write protection disabled
    Completed: ALTER DATABASE   MOUNT
    FAL[client]: Error fetching gap sequence, no FAL server specified

基本的

    SQL> select max(sequence#) from v$log_history;
    MAX(SEQUENCE#)
    --------------
    1606


    SQL> SELECT name FROM v$archived_log WHERE thread# = 1 AND dest_id = 1 AND sequence#         BETWEEN 1591 and 1606;
    /home/oracle/archive/1_1606_792822090.dbf
    16 rows selected.

    SQL>  SELECT GROUP#, BYTES FROM V$LOG;
    GROUP#      BYTES
    ---------- ----------
     1   52428800
     2   52428800
     3   52428800

中学

    SQL> select max(sequence#) from v$log_history;
    MAX(SEQUENCE#)
    --------------
    1591



    SQL>select process, thread#, sequence#, status from v$managed_standby where   process='MRP0';
    no rows selected


    SQL> SELECT GROUP#, BYTES FROM V$STANDBY_LOG;
    no rows selected
4

2 回答 2

1

需要在init文件或者spfile(sqlplus)中设置参数

在主数据库中:

FAL_SERVER='standby_database'
FAL_CLIENT='primary_database'

在备用数据库中:

FAL_SERVER='primary_database'
FAL_CLIENT='standby_database'

获取归档日志文件需要这两个参数(FAL 表示 Fetch ArchiveLog)。

希望我能帮助你。

种类

于 2014-10-01T10:16:10.700 回答
0

这个问题已经有5年了,但我觉得还没有完全回答。

首先oracle如何解决差距:

MRP 流程是触发 GAP 请求的流程。该过程是这样打开的: 没有备用重做日志:alter database recovery managed standby database disconnect;使用备用重做:alter database 使用当前日志文件断开连接恢复托管备用数据库;

如果你的主库只有一个备库,那么 fal_server 和 fal_client 参数实际上是不需要配置的。

如果 fal_server 丢失,oracle 将从 log_archive_dest_n 中获取该信息。

这意味着还需要在备用数据库上配置 log_archive_dest_2。

那么如何解决 GAP 分辨率问题:

  1. 确保在主备库中都设置了 log_archive_dest_n
  2. 确保 log_archive_dest_n 的“服务”值没有拼写错误。
  3. 确保服务值引用 tnsnames.ora 中的有效 tns 条目
  4. 确保在主集群和备用集群的所有节点上使用相同的密码文件。
  5. 确保您可以从主数据库和备用数据库连接 sqlplus "sys/syspassword@primary as sysdba" 和 sqlplus "sys/syspassword@standby as sysdba"。列表项

MRP 流程每隔一段时间发送一次 GAP 解决请求。如果您想立即获取它以确保它正常工作: SQL>alter database recovery managed standby database cancel; SQL>alter database 使用当前日志文件恢复托管备用数据库;(使用备用重做日志,它在备用时更快地应用日志)


如果要设置级联备用设置,则 fal_server 和 fal_client 参数实际上存在。

主数据库 A 将归档日志发送到备用 B 如果备用 B 成为主数据库,则将归档日志发送到备用 C。

11.2 上的 FAL 行为(文档 ID 1394472.1)

从 11.2 开始,无需提及 FAL_CLIENT 主服务器将从 log_archive_dest_n(接收 FAL 请求的远程目标备用服务器)服务获取它。

级联待机的 FAL_SERVER 和 FAL_CLIENT 设置(文档 ID 358767.1)

于 2019-05-15T16:38:38.943 回答