所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级

FusionCloud 6.3.1 故障处理 06

评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
数据库备节点实例复制状态异常

数据库备节点实例复制状态异常

异常现象

现象说明

数据库主节点实例正常,数据库备节点实例复制状态异常。

注意事项
  • 请在《维护指南》 的“数据库缺省用户信息”中获取MySQL的dbuser密码。
  • 输入密码时,支持直接输入和交互式输入两种方式。直接输入密码有可能存在密码泄露的风险。请执行命令时以交互式方式输入密码。
  • 数据库备节点实例恢复时,系统运维管理界面“更多 > 数据库管理 > 关系数据库”里“状态”显示
操作说明
  • 在前台界面正常且配置有远程备份策略的情况下优选“方法一”;
  • 在仅配置了远程备份策略的情况下选择“方法二”;
  • “方法三”适用于所有场景,但操作较繁琐。

    当需要采用“方法一”或者“方法二”执行修复,但没有配置远程备份策略时,请参考《备份恢复》“备份MySQL”章节,配置并给实例绑定远程备份策略。

异常确认
  1. dbuser用户在数据库实例的主节点上,执行以下命令登录数据库主实例。

    /opt/mysql/bin/mysql -h{数据库实例的主节点IP} -udbuser -p -P{数据库主实例的端口号}

    Enter password:

  2. 执行如下命令查询数据库主实例的状态。

    mysql> show slave status\G

    出现如下输出结果说明主实例正常:

    Empty set (0.00 sec)

  3. dbuser用户在数据库实例的主节点上,执行以下命令登录数据库备实例。

    /opt/mysql/bin/mysql -h{数据库实例的备节点IP} -udbuser -p -P{数据库备实例的端口号}

    Enter password:

  4. 执行如下命令查询数据库备实例状态。

    mysql> show slave status\G

    输出如下:

    *************************** 1. row ***************************
    Slave_IO_State: Waiting for master to send event
    Master_Host: 10.137.60.229
    Master_User: rplUser
    Master_Port: 32084
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000004
    Read_Master_Log_Pos: 318564325
    Relay_Log_File: relay_bin.000011
    Relay_Log_Pos: 318564535
    Relay_Master_Log_File: mysql-bin.000004
    Slave_IO_Running: No
    Slave_SQL_Running: Yes
    Replicate_Do_DB:
    Replicate_Ignore_DB:
    Replicate_Do_Table:
    Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
    Replicate_Wild_Ignore_Table:
    Last_Errno: 0
    Last_Error:
    Skip_Counter: 0
    Exec_Master_Log_Pos: 318564325
    Relay_Log_Space: 318564820
    Until_Condition: None
    Until_Log_File:
    Until_Log_Pos: 0
    Master_SSL_Allowed: No
    Master_SSL_CA_File:
    Master_SSL_CA_Path:
    Master_SSL_Cert:
    Master_SSL_Cipher:
    Master_SSL_Key:
    Seconds_Behind_Master: 0
    Master_SSL_Verify_Server_Cert: No
    Last_IO_Errno: 0
    Last_IO_Error:
    Last_SQL_Errno: 0
    Last_SQL_Error:
    Replicate_Ignore_Server_Ids:
    Master_Server_Id: 461
    Master_UUID: 46c2f330-dd27-11e5-afa0-286ed488c6f5
    Master_Info_File: /opt/mysql/data/apmdbsvr-10_90_73_178-21/master.info
    SQL_Delay: 0
    SQL_Remaining_Delay: NULL
    Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
    Master_Retry_Count: 86400
    Master_Bind:
    Last_IO_Error_Timestamp:
    Last_SQL_Error_Timestamp:
    Master_SSL_Crl:
    Master_SSL_Crlpath:
    Retrieved_Gtid_Set: 46c2f330-dd27-11e5-afa0-286ed488c6f5:1-2708554
    Executed_Gtid_Set: 46c2f330-dd27-11e5-afa0-286ed488c6f5:1-2708554
    Auto_Position: 1
    1 row in set (0.00 sec)

    若输出结果中加粗的两项中有任意一个或两个显示为No,或加粗的两项没有值,表明数据库备实例复制状态异常。

(方法一)界面重建数据库备节点实例

背景信息

界面重建数据库备节点实例支持界面操作,简化了(方法三)重建数据库备节点实例

操作步骤
  1. 暂停故障倒换,请参考暂停故障倒换功能
  2. 使用浏览器,登录ManageOne运维面。

    • 登录地址:https://ManageOne运维面主页的访问地址:31943。例如,https://oc.type.com:31943。
    • 默认帐号:admin,默认密码:Huawei12#$

  3. 在页面上方的导航栏中选择“运维地图”,在“运维地图”页面,单击“快速访问”下的“应用云管理系统”链接,跳转到ServiceStage运维管理域界面。
  4. 选择“更多 > 数据库管理 > 关系数据库”。查看是否存在远程备份策略,如果不存在,请参考《运维域操作指南》的“设置备份策略”章节进行创建备份策略。
  5. 修改数据库实例的备份策略为远程备份策略。

    1. 勾选对应数据库。
    2. 单击“修改备份策略”。
    3. 在“修改备份策略”窗口中选择对应的远程备份策略。
    4. 单击“确定”。

  6. 勾选复制关系异常的备数据库实例,单击“操作 > 手工修复”,实现备数据库实例修复。
  7. 修复成功后,恢复故障倒换功能,请参考恢复故障倒换功能

(方法二)一键式重建数据库备节点实例

背景信息

一键式重建数据库备节点实例,通过使用命令操作,简化了(方法三)重建数据库备节点实例

操作步骤
  1. 暂停故障倒换,请参考暂停故障倒换功能
  2. 使用PuTTY,登录om_core1_ip节点。

    默认帐号:paas,默认密码:QAZ2wsx@123!

  3. 查询datamgmtservice 服务所在的节点。

    kubectl get pod -nom -oyaml `kubectl get pod -nom | grep datamgmtservice | awk '{print $1}'` | grep hostIP

  4. paas用户登录步骤 3查询到的节点
  5. 进入dbsvc_adm工具所在路径。

    cd /opt/paas/oss/manager/apps/DBAgent/bin

  6. 执行如下命令,重建数据库备节点实例。

    ./dbsvc_adm -cmd repair-db-instance -instid ossdbsvr-10_90_73_178-21@10_90_73_179-21 -slave ossdbsvr-10_90_73_179-21 -name remotepolicy -force true

    显示如下:

    Beginning repair db instance task.
    说明:

    查看是否存在远程备份策略,如果不存在,请参考《运维域操作指南》的“设置备份策略”章节进行创建备份策略。

    remotepolicy为远程备份策略。

  7. 使用PuTTY,登录恢复实例的数据库备节点。

    默认帐号:paas,默认密码:QAZ2wsx@123!

  8. 执行以下命令,查看恢复结果。

    tail -f /var/log/paas/oss/manager/DeployAgent/oss.dbrepair.trace |grep success

    回显如下:

    2017-05-28 17:32:21.232(28646|140520325105408)[common:118]Slave replication status is ok, dbInstanceId:ossdbsvr-10_90_73_178-21@10_90_73_179-21, targetDC:ossdbsvr-10_90_73_179-21
    2017-05-28 17:32:21.233(28646|140520325105408)[common:118]Finished waiting for rebuilding the replication relationship of the slave database instance, dbInstanceId:wcptestsvr05171134-10_8_41_65-25@10_8_41_66-25, targetDC:ossdbsvr-10_90_73_179-21
    2017-05-28 17:32:21.233(28646|140520325105408)[common:118]repairSlave success, dbInstanceId:ossdbsvr-10_90_73_178-21@10_90_73_179-21, targetDC:ossdbsvr-10_90_73_179-21
    2017-05-28 17:32:21.254(28646|140520325105408)[proc:370]runCommand result=0

    日志中显示“repairSlave success”,表示恢复成功。如果恢复失败请联系技术支持工程师。

  9. 修复成功后,恢复故障倒换功能,请参考恢复故障倒换功能

(方法三)重建数据库备节点实例

以如下假设为前提,举例说明恢复步骤:

  • 数据库主备节点实例的DBInstanceId为apmdbsvr-10_90_73_178-21@10_90_73_179-21
  • 主数据库实例名为apmdbsvr-10_90_73_178-21,服务端IP地址为10.90.73.178,端口号为32080,节点ID为10_90_73_178。
  • 备数据库实例名为apmdbsvr-10_90_73_179-21,服务端IP地址为10.90.73.179,端口号为32080,节点ID为10_90_73_179。
暂停故障倒换功能
背景信息

为了避免在异常恢复过程中发生数据库倒换,需要暂停故障倒换功能。暂停故障倒换功能期间,数据库主备节点的实例不会发生倒换。

操作步骤
  1. 使用PuTTY,登录om_core1_ip节点。

    默认帐号:paas,默认密码:QAZ2wsx@123!

  2. 执行以下命令,获取DBHASwitchService对应的pod。

    kubectl get pod -n om | grep dbhaswitch | grep Running | awk '{ print $1 }'

    回显如下:

    dbhaswitchservice-3302270813-1n452
    dbhaswitchservice-3302270813-cp154

  3. 执行如下命令进入DBHASwitchService所在的容器。

    kubectl exec dbhaswitchservice-3302270813-1n452 -n om -it sh

    说明:

    dbhaswitchservice-3302270813-1n452步骤 2查询出的结果。pod的值若有多个,任选其中一个值即可。

  4. 执行以下命令,进入倒换工具安装目录。

    cd /opt/apps/DBHASwitchService/bin

  5. 执行如下命令,暂停异常数据库实例主备节点的故障倒换功能。

    ./switchtool.sh -cmd set-ignore-nodes -nodes 10_90_73_178,10_90_73_179

    输出如下表示执行成功:

    Successful
    说明:

    -nodes:异常数据库实例主备节点的ID。

重置master
背景信息

重置数据库主节点实例的二进制日志文件的起始位置。

操作步骤
  1. 使用PuTTY,登录manage_db1_ip节点。

    默认帐号:paas,默认密码:QAZ2wsx@123!

  2. 执行以下命令,切换至dbuser用户。

    su - root

    password:用户密码

    su - dbuser

  3. 执行如下命令连接数据库主节点实例,并重置master

    /opt/mysql/bin/mysql -u dbuser -p -P32080 -h 10.90.73.178

    Enter password:

    mysql> reset master;

    显示如下表示执行成功:

    Query OK, 0 rows affected (0.00 sec)
    说明:
    • 输入密码时,支持直接输入和交互式输入两种方式。直接输入密码有可能存在密码泄露的风险。请执行命令时以交互式方式输入密码。
    • -u:数据库实例用户。
    • -P:异常数据库主实例端口。
    • -h:异常数据库主实例IP。

备份数据库主节点实例
背景信息

备份数据库主节点实例的数据,用于后续重建数据库备节点实例。

前提条件

请确保备份空间不小于待备份数据库实例大小。具体操作请参考《备份恢复》的“查看备份空间大小”章节。数据库实例大小可执行如下步骤查看:

  1. 使用PuTTY,登录数据库实例的主节点

    默认帐号:paas,默认密码:QAZ2wsx@123!

  2. 切换到dbuser用户 。

    su - root

    password:用户密码

    su - dbuser

  3. 以apmdbsvr-10_90_73_178-21为例,执行以下命令初步查看数据库实例大小。

    cd /opt/mysql/data/apmdbsvr-10_90_73_178-21

    du -sch *

    回显如下:

    524K alsconfigdb
    4.0K apmdbsvr-10_120_175_218-25.pid
    0    apmdbsvr-10_120_175_218-25.sock
    9.2M audit.log
    ……
    743M mysql-bin.000001
    ……
    1.9G

    查询的空间大小为1.9G。

    说明:

    由于mysql-bin日志不进行备份,因此数据库实例最终大小为上述值减去mysql-bin的大小,请根据实例情况预留备份空间。

操作步骤
  1. 使用PuTTY,登录manage_db1_ip节点。

    默认帐号:paas,默认密码:QAZ2wsx@123!

  2. 执行以下命令进行物理备份。

    cd /opt/paas/oss/manager/apps/DBAgent/bin

    ./dbsvc_tool -cmd backup-db-instance -instid apmdbsvr-10_90_73_178-21@10_90_73_179-21 -method physical
    说明:
    • 当数据库备实例状态异常,或者复制关系异常时,备份的是主实例。
    • 在当前备份场景下,本地备份默认备份在数据库实例主节点的/opt/pub/backup_local。
    • apmdbsvr-10_90_73_178-21@10_90_73_179-21:实例名,请根据实际情况替换为待备份的实例名。

    显示如下:

    Check database status, and try login. Login database apmdbsvr-0-999 success. Check database status finish. CheckDB success, instid:apmdbsvr-10_90_73_178-21@10_90_73_179-21, method:physical Begin backup database. Backup success, instid:apmdbsvr-10_90_73_178-21@10_90_73_179-21, method:physical Compress backup file to apmdbsvr-10_90_73_178-21@10_90_73_179-21_abatest-0-999_20170303105515_manual_full_day_physical.tar.gz... Compress success, instid:apmdbsvr-10_90_73_178-21@10_90_73_179-21, method:physical Sign backup files... Signing file for instanceUnit sign file is apmdbsvr-10_90_73_178-21@10_90_73_179-21_20170303105515_manual_full_day_physical.tar.gzsigning file error code is 0 . SignFiles success, instid:apmdbsvr-10_90_73_178-21@10_90_73_179-21, method:physical SaveBackupFiles success, instid:apmdbsvr-10_90_73_178-21@10_90_73_179-21, method:physical Count backup files number. Count backup files number. CountBackup success, instid:apmdbsvr-10_90_73_178-21@10_90_73_179-21, method:physical Check backup file permission. CheckPermission success, instid:apmdbsvr-10_90_73_178-21@10_90_73_179-21, method:physical CleanTempFiles success, instid:apmdbsvr-10_90_73_178-21@10_90_73_179-21, method:physical

复制备份文件到数据库实例备节点
背景信息

将数据库主节点实例的备份文件复制到数据库实例的备节点,为重建备数据库实例做好准备。

操作步骤
  1. 使用PuTTY,登录数据库实例的备节点。

    默认帐号:paas,默认密码:QAZ2wsx@123!

  2. 执行以下命令,切换至root用户。

    su - root

    password:用户密码

  3. 将数据库实例的主节点的备份文件、及备份文件的签名文件复制到数据库实例的备节点的/opt/pub/backup_local。

    scp dbuser@<数据库实例的主节点IP>:/opt/pub/backup_local/apmdbsvr-10_90_73_178-21@10_90_73_179-21_apmdbsvr-10_90_73_179-21_20150709115845_manual_full_day_physical.tar.gz* /opt/pub/backup_local

    说明:

    如果环境进行了安全加固导致scp命令不可用,请将文件通过其他方法拷贝到上述目录下。

  4. 执行如下命令,将该备份文件的权限修改为600,文件的属主和属组修改为dbuser:dbgroup。

    chown dbuser:dbgroup /opt/pub/backup_local/apmdbsvr-10_90_73_178-21@10_90_73_179-21_20150709115845_manual_full_day_physical_full.tar.gz*

    chmod 600 /opt/pub/backup_local/apmdbsvr-10_90_73_178-21@10_90_73_179-21_apmdbsvr-10_90_73_179-21_20150709115845_manual_full_day_physical.tar.gz*

重建备数据库实例
背景信息

重新建立数据库备节点实例,用于恢复数据库备节点实例的复制状态。

操作步骤
  1. 使用PuTTY,登录数据库实例的备节点。

    默认帐号:paas,默认密码:QAZ2wsx@123!

  2. 进入dbsvc_tool工具的安装目录。

    cd /opt/paas/oss/manager/apps/DBAgent/bin/

  3. 执行如下命令,重建数据库备节点实例。

    ./dbsvc_tool -cmd repair-db-instance -method rebuild -instid apmdbsvr-10_90_73_178-21@10_90_73_179-21 -newmaster apmdbsvr-10_90_73_178-21 -masterfile /opt/pub/backup_local/apmdbsvr-10_90_73_178-21@10_90_73_179-21_apmdbsvr-10_90_73_179-21_20150709115845_manual_full_day_physical.tar.gz

    输出如下表示执行成功:

    [2017-04-25 20:20:18] [14247] 1 Uncompress apmdbsvr-10_90_73_178-21@10_90_73_179-21_apmdbsvr-10_90_73_179-21_20150709115845_manual_full_day_physical.tar.gz to temp dir ...
    [2017-04-25 20:20:18] [14247] 2 Stopping local db instance apmdbsvr-10_90_73_178-21 ...
    [2017-04-25 20:20:22] [14247] 3 Restoring local db ...
    [2017-04-25 20:20:34] [14247] 4 Restarting local db ... make it read only
    [2017-04-25 20:20:44] [14247] 5 Repairing GTID ...
    [2017-04-25 20:20:44] [14247] execute reset slave all success, dbInstanceId:apmdbsvr-10_90_73_178-21@10_90_73_179-21, targetDC:apmdbsvr-10_90_73_178-21
    [2017-04-25 20:20:44] [14247] Rebuild local db Successful!

    屏幕输出可能随版本不同而不同,请以实际为准,这里只需要关注是否输出“Rebuild local db Successful!”。

删除数据库实例备节点上的备份文件
背景信息

数据库备节点实例重建后,备份文件已经使用完毕,需删除。

操作步骤
  1. 使用PuTTY,登录数据库实例的备节点。

    默认帐号:paas,默认密码:QAZ2wsx@123!

  2. 执行以下命令,切换至dbuser用户。

    su - root
    password:用户密码

    su - dbuser

  3. 执行如下命令删除复制过来的备份文件。

    rm /opt/pub/backup_local/apmdbsvr-10_90_73_178-21@10_90_73_179-21_apmdbsvr-10_90_73_179-21_20150709115845_manual_full_day_physical.tar.gz*

恢复故障倒换功能
背景信息

为了恢复主备数据库的正常倒换功能,需要取消暂停故障倒换功能,以保证数据库的高可靠性。

操作步骤
  1. 使用PuTTY,登录om_core1_ip节点。

    默认帐号:paas,默认密码:QAZ2wsx@123!

  2. 执行以下命令,获取DBHASwitchService对应的pod。

    kubectl get pod -n om | grep dbhaswitch | grep Running | awk '{ print $1 }'

    回显如下:

    dbhaswitchservice-3302270813-1n452
    dbhaswitchservice-3302270813-cp154

  3. 执行如下命令进入DBHASwitchService所在的容器。

    kubectl exec dbhaswitchservice-3302270813-1n452 -n om -it sh

    说明:

    dbhaswitchservice-3302270813-1n452为上一步骤查询出的结果。pod的值若有多个,任选其中一个值即可。

  4. 执行以下命令,进入倒换工具路径。

    cd /opt/apps/DBHASwitchService/bin

  5. 执行如下命令,恢复故障倒换功能。

    ./switchtool.sh -cmd del-ignore-nodes

    显示如下表示执行成功:

    Successful.

  6. 等待主备数据库实例复制状态回归正常。可用paas登录数据库节点,执行如下命令查看复制状态。

    . /opt/paas/oss/manager/bin/engr_profile.sh

    bash /opt/paas/oss/manager/apps/DBAgent/bin/dbsvc_adm -cmd query-db-instance

    回显信息如下:

    DBInstanceId  Service Name NodeId IP Port DBType RoleRpl Status
    apmdbsvr-10_90_73_178-21@10_90_73_179-21 apmdbsvr-10_90_73_178-21 10_90_73_178 10.90.73.178 32080 mysql Master Normal
    apmdbsvr-10_90_73_178-21@10_90_73_179-21 apmdbsvr-10_90_73_179-21 10_90_73_179 10.90.73.179 32080 mysql Slave Normal
    说明:
    • 回显信息仅摘取部分字段,以实际执行命令回显为准。
    • 回显结果中,Rpl Status说明:Normal,复制状态正常;Abnormal,复制状态异常。
    • 如果是因为主备实例数据冲突导致的数据库异常,半个小时之内不允许触发故障倒换。

恢复后检查

  1. 使用PuTTY,登录om_core1_ip节点。

    默认帐号:paas,默认密码:QAZ2wsx@123!

  2. 执行以下命令检查数据库信息。

    cd /opt/paas/oss/manager/apps/DBAgent/bin

    ./dbsvc_adm -cmd query-db-instance | grep mysql

    回显如下:

    DBInstanceId                             ClassId  Service Name               Region        Tenant Stage    IP          Port   State   DBType  Version  Role  Rpl Status   MasterID   
    apmdbsvr-10_90_73_163-3@10_90_73_164-3   primary  apmdbsvr-10_90_73_164-3    cn-global-1   om     Product 10.90.73.164 32082  Up      mysql   5.6.35   Master  Normal       apmdbsvr-10_90_73_163-3   
    apmdbsvr-10_90_73_178-21@10_90_73_179-21 primary  apmdbsvr-10_90_73_179-21   cn-global-1   om     Product 10.90.73.179 32080  Up      mysql   5.6.35   Slave Normal       apmdbsvr-10_90_73_178-21

    屏幕输出这里只需要关注“Rpl Status”的值。

    Master 和 Slave 状态为Normal表示恢复正常。

    如果异常,请联系技术支持工程师。

翻译
下载文档
更新时间:2019-08-19

文档编号:EDOC1100043088

浏览量:19246

下载量:447

平均得分:
本文档适用于这些产品
相关版本
相关文档
Share
上一页 下一页