AI 助理
备案 控制台
文档
产品文档

RDS PostgreSQL大版本升级和跨版本升级

更新时间:
一键部署
产品详情
相关技术圈
我的收藏

随着PostgreSQL社区对低版本(如9.4、10)实例的停止维护,继续使用低版本实例将存在风险,如果您需要将低版本的RDS PostgreSQL实例升级到更高版本,或者希望使用高版本的新特性,建议您进行大版本升级操作。

背景信息

PostgreSQL社区会定期发布一个大版本,大版本通常带来功能、性能等方面的提升,而较低数据库大版本社区将陆续不再提供支持,性能和安全的风险也将逐渐增加。为了让您享受PostgreSQL新的大版本带来的功能、性能提升,同时降低升级风险,RDS PostgreSQL提供大版本升级功能。

升级流程

  1. 升级前检查

    为确保升级顺利,需要在大版本升级前检查当前主实例是否支持大版本升级,RDS PostgreSQL提供检查结果和检查报告,检查报告异常时不允许升级。处理完异常后才能进行大版本升级。

  2. (可选)大版本升级兼容性测试

    大版本升级可能会出现与现有应用的兼容性问题,因此建议大版本进行升级时,选择不割接创建一个新版本的测试实例进行业务测试及确保兼容性。

  3. 正式升级

    在原实例上再次执行大版本升级,选择割接将数据流量切换至新版实例。割接时的升级模式包括本地升级和蓝绿部署,请根据实际情况进行评估选择。

    • 本地升级:大版本升级任务将在原实例上进行,不会创建新版本实例。升级后的原实例大版本提升,并将继承原有的订单、实例名称、标签、云监控报警规则及备份规则。

    • 蓝绿部署:大版本升级会保留原实例,并创建一个新版本的实例,新实例在创建中不收费,创建成功后将会产生费用,并且计费方式可能会发生变化。升级完成后,原实例和新实例将同时产生费用,且新实例暂不享受原实例的优惠。

      原实例计费方式

      新实例计费方式

      包年包月/按量付费

      按量付费

      Serverless

      Serverless

割接和不割接说明

大版本升级时,该参数用于控制是否将流量切换到高版本实例。

割接方式

说明

影响

不割接

实例连接地址不自动切换。此选项一般用于正式升级之前测试当前业务在新版本中的兼容性。建议第一次执行时选择不割接,应用层完全测试验证通过后, 释放实例并重复升级大版本操作,选择割接开始正式升级。

  • 迁移过程中,原实例的业务不会受到影响。

  • 如需通过不割接升级实例,需在迁移完成后把应用程序中的数据库连接地址改为新实例的连接地址。如何查看连接地址,请参见 查看或修改连接地址和端口。

  • 如果原实例中创建了只读实例,可通过不割接创建高版本测试实例,但原只读实例不会被克隆。升级完成后,您需要在新版本实例中另行 创建PostgreSQL只读实例。

割接

蓝绿部署

实例连接地址自动切换。割接结束后原有数据库连接地址会自动转移到新实例,您无需更改应用程序里的数据库连接地址。此选项一般用于在确认业务可以稳定运行在新版本之后执行正式升级。

  • 切割后无法回退,请谨慎选择。

  • 切换过程中,原实例的业务将无法进行写入操作,请务必在业务低峰期进行。

  • 选择本地升级时,会在升级前后进行常规备份。如果需要获得低版本实例及数据,可以使用最新的低版本备份集克隆实例。

本地升级

在本地升级时,仅会对原实例进行升级,不会产生新实例与订单。当实例升级到更高版本后,将会继承原实例的设定,您无需更改应用程序里的数据库连接地址。此选项一般用于在确认业务可以稳定运行在新版本之后执行正式升级。

功能特点

  • 支持跨版本升级:例如直接从PostgreSQL 10.0升级到PostgreSQL 13.0。

  • 支持升级演练:通过不割接的方式,可以在不影响原实例的情况下,验证整个升级流程。

  • 支持平滑升级

    • 无需修改应用:通过割接方式升级,您无需修改应用中已配置的数据库连接地址。割接结束后,蓝绿部署将会自动交换原实例与新实例的连接地址,而本地部署将保持原实例的连接地址不变。

      说明
      • 对于本地升级,不会修改虚拟IP(Virtual IP Address)。

      • 对于蓝绿部署,升级后新实例的虚拟IP(Virtual IP Address)与原实例不同,如果您在应用程序中配置了虚拟IP,则需要修改应用,因此,建议您在应用程序中配置实例连接地址,如何获取实例连接地址,请参见 查看或修改连接地址和端口。

    • 无需停机:升级时原实例无需停机,而是暂时变为只读状态(持续时长为分钟级),降低业务中断带来的风险。

    • 保留实例设置

      • 升级后保留原实例的白名单、参数设置、插件(新版本不支持的插件和参数除外)。

      • 加密实例升级大版本后仍为加密实例,加密Key保持不变。

升级费用

  • 本地升级不会造成费用的变化,也不会产生订单。

  • 蓝绿部署:

    • 升级后生成的新实例的计费方式可能会发生变化。因此在升级前,请确保账户余额大于等于100元。

      原实例计费方式

      新实例计费方式

      包年包月/按量付费

      按量付费

      Serverless

      Serverless

    • 升级完成后,原实例和新实例将同时产生费用。在确保业务在新实例中稳定运行后,您可以将新实例 转成包年包月,将原实例 释放或退订,但需要注意以下情况:

      • 如果您的原实例计费方式为包年包月且尚未到期,新实例无法继承原实例包月剩余时长,释放原实例可能存在费用损失。具体退订规则请参见 退款说明。

      • 如果您的原实例购买时使用了优惠,升级后新实例将不会继承此优惠,请进入实例退订页面查看具体退款金额后,再评估是否升级。

      • 包年包月退款金额退款时间以实际退订账单为准,非实时到账。

前提条件

升级大版本前需要满足以下前提条件:

  • 版本:PostgreSQL 16或以下版本

    说明

    PostgreSQL 9.4最高仅支持直接升级到PostgreSQL 14,如果您需要升级到PostgreSQL 15或以上版本,则请先升级到PostgreSQL 10、11、12、13或14,然后再升级到PostgreSQL 15或以上版本。

  • 网络类型:专有网络。

    如果网络类型为经典网络,您需要将网络类型切换为专有网络,并且切换时不选择保留原经典网络。如何查看或切换网络类型,请参见 更改网络类型。

    说明

    切换为专有网络时,如果您选择了保留原经典网络,则需要等待经典网络保留时间结束后,才能启动大版本升级任务。

  • 实例不是 只读实例或 专属集群实例。

  • 实例ID不是以pg-cn开头。

  • 实例未启用Babelfish,即小版本号后缀不带babelfish

  • 如果原实例中创建了只读实例,则无法选择割接升级。如果需要进行割接升级,请参见 具有只读实例的主实例如何升级大版本。

升级影响

升级大版本将会造成以下影响:

  • 如果选择了割接方式升级,在割接过程中,原实例将会被设置为只读,并会造成分钟级业务闪断,请在业务低峰期进行升级。如果选择不割接方式进行升级,则不受影响。

    说明
    • 原实例被设置只读时间的长短与数据库对象数量相关,实例数据库对象数越多,只读时间越长,当数据库对象数达到百万级别时,只读时间可能达到十分钟级甚至小时级。您可以使用SELECT count(1) FROM pg_class;命令查看数据库的对象数。

    • 具体的闪断时长取决于DNS缓存刷新时间。您可以尝试 切换虚拟交换机,通过业务闪断时长来评估客户端的DNS缓存刷新时间。

    • 升级过程的时间长短与实例的数据量和数据库对象数量相关,实例数据量越大,数据库对象数越多,升级时间越长。

    • 对于蓝绿部署,在割接后,如果不希望原实例被设置为只读,请在升级后将参数rds_force_trans_ro_non_sup设置为off,详情请参见 设置实例参数。

  • 如果原实例使用了新版本不支持的参数,在新版本中该参数会被自动删除,如果低版本的参数取值不在高版本对应参数的合法区间,在新版本中该参数会被置为高版本参数模板的默认值。

  • 对于蓝绿部署,新实例不继承原实例的实例名称、 标签、 云监控报警规则以及 备份数据。

  • 对于蓝绿部署,自建的只读节点和逻辑复制槽在升级后仍然保留在原实例下,不会自动转移到高版本实例,需要在升级后进行重建。

  • 对于本地升级,自建只读节点的主备关系以及逻辑复制槽在升级后会丢失,请依照实际情况谨慎选择升级模式。

  • 如果待升级的实例作为数据传输服务(DTS)的源实例或目标实例,则升级后需要重建DTS任务。创建DTS任务详见 DTS产品文档

  • 当待升级的实例中存在Replication Slots的订阅端,升级可能出现复制槽抢占导致的数据不同步问题。需要执行如下操作防止出现数据不同步的情况。对于本地升级,建议升级前关闭源实例的订阅。

    如何避免在升级过程中出现复制槽抢占导致的数据不同步问题

    • 如果您需要将订阅数据保留在源端(低版本实例),那么在升级的过程中,确保源端不会因负载过大而导致宕机。否则,可能导致复制槽被目标端(高版本实例)抢占,从而出现数据不一致的情况。

      升级完成后,请使用以下SQL语句在目标端的数据库关闭订阅。

      \c your_database
      ALTER SUBSCRIPTION your_subscription_name DISABLE;
    • 如果您需要将订阅数据保存在目标端,请在升级前关闭源端的订阅,再进行大版本升级,升级完成后打开目标端的订阅。SQL示例如下:

      • 在源端关闭订阅。

        \c your_database
        ALTER SUBSCRIPTION your_subscription_name DISABLE;
      • 在目标端开启订阅。

        \c your_database
        ALTER SUBSCRIPTION your_subscription_name ENABLE;
    说明
    • 使用复制槽进行数据订阅请参见 逻辑订阅和 数据订阅。

    • 如果未按照上述操作进行处理,可能导致您的订阅数据不一致,请参照 如何处理升级后订阅数据不一致的问题?进行处理,以确保订阅数据的一致性。

  • 当待升级的实例中创建了只读实例时,则无法直接进行升级,需要在升级前后进行以下操作:

    具有只读实例的主实例如何升级大版本

    1. 将应用程序中配置的只读实例连接地址修改为主实例连接地址。

      说明

      为保证业务稳定,建议在业务低峰期修改应用连接地址。

    2. 删除只读实例。

    3. 升级大版本。

    4. 升级完成后,在高版本实例上重新 创建PostgreSQL只读实例。

    5. 在应用程序中,将升级前修改的实例连接地址修改为新的只读实例连接地址。

  • 升级大版本将会使用最新的内核小版本,可能遇到插件兼容性问题,具体请参见 升级内核小版本。

  • 具体升级时间取决于数据量,无法准确预估,大版本升级时您可以在任务中心查看任务进度,具体请参见 任务管理。

  • 升级后暂不支持进行大版本降级操作,如需降级,请购买低版本实例后,使用DTS迁移,将实例迁移至低版本中。

升级大版本

  1. 如果待升级的实例中创建了只读实例,需在升级前执行以下步骤:

    1. 将应用程序中配置的只读实例连接地址修改为主实例连接地址。

      说明

      为保证业务稳定,建议在业务低峰期修改应用连接地址。

    2. 删除只读实例。

  2. 进入大版本升级页面。

    1. 访问 RDS实例列表,在上方选择地域,然后单击目标实例ID。

    2. 在左侧导航栏单击大版本升级

      说明

      如果您在控制台中未看到大版本升级,请检查您的RDS PostgreSQL实例版本及系列等配置,具体请参见 前提条件。

  3. 升级检查页签中,选择目标升级版本,然后单击创建升级检查报告,并等待数分钟。

    说明
    • 为确保升级能顺利完成,请确保升级检查报告的检查结果为成功时,再进行后续升级步骤。

    • 升级检查成功后,如果对主实例执行了CREATE EXTENSION操作,需重新执行检查。

    当升级检查报告的检查结果为失败时,可单击查看信息查看报告详细内容,常见的报错及原因请参见 解读RDS PostgreSQL大版本升级检查报告。

  4. 单击升级实例页签,阅读警告内容,然后选择升级版本,并单击继续创建升级实例

  5. 在弹出的窗口中确认注意事项,单击确定,并设置参数(以下仅列举重点参数):

    配置

    说明

    存储类型

    选择实例的存储类型。

    说明

    升级模式本地部署无需配置该参数。

    大版本升级功能基于云盘快照,当前升级后支持选择如下存储类型。

    • 通用云盘

    • ESSD PL1云盘

    • ESSD PL2 云盘

    • ESSD PL3 云盘

    目标主可用区

    系统支持升级后将新的主备实例配置到其他可用区。

    说明

    升级模式本地部署无需配置该参数。

    目标备可用区

    目标主实例交换机

    目标备实例交换机

    割接配置

    根据实际需求选择是否将流量切换到新版本实例上。

    • 不割接:不自动切换。此选项一般用于正式升级之前测试当前业务在新版本中的兼容性。建议第一次执行时选择不割接,应用层完全测试验证通过后, 释放实例并重复 升级大版本操作,选择割接开始正式升级。

      说明
      • 迁移过程中,原实例的业务不会受到影响。

      • 如需通过不割接升级实例,需在迁移完成后把应用程序中的数据库连接地址改为新实例的连接地址。如何查看连接地址,请参见 查看或修改连接地址和端口。

    • 割接:自动切换。此选项一般用于在确认业务可以稳定运行在新版本之后执行正式升级。

      • 本地升级:不会产生新实例,原实例继承升级前的设定,您无需更改应用程序里的数据库连接地址。

      • 蓝绿部署:割接结束会自动连接到新实例,您无需更改应用程序里的数据库连接地址。

      说明
      • 割接后无法回退,请谨慎选择。

      • 切换过程中,原实例会被变为只读,业务无法写入,请务必在业务低峰期进行。

      • 如果原实例中创建了只读实例,则无法选择割接。只能通过不割接升级实例,且原只读实例不会被克隆。升级完成后,您需要在高版本实例中另行 创建PostgreSQL只读实例。

    割接时间

    迁移完成后,业务切换至新实例的时间。

    • 立刻:迁移完成后立即切换。

    • 实例可运维时间:在 可运维时间段内切换。

    说明

    仅当割接配置割接时需要配置该参数。

    升级模式

    选择升级模式。

    说明

    仅当割接配置割接时需要配置该参数。

    • 本地升级:大版本升级任务将在原实例上进行,不会创建新版本实例。升级后的原实例大版本提升,并将继承原有的订单、实例名称、标签、云监控报警规则及备份规则。

    • 蓝绿部署:大版本升级会保留原实例,并创建一个新版本的实例,新实例在创建中不收费,创建成功后将会产生费用,并且计费方式可能会发生变化。升级完成后,原实例和新实例将同时产生费用,且新实例暂不享受原实例的优惠。

    统计信息收集模式

    选择在哪个时间点对数据库执行统计信息收集。

    • 割接前收集:可以保证业务稳定性。如果实例数据量太大可能会导致升级时间较久。

    • 割接后收集:实例升级速度较快。升级后访问未生成统计信息的表可能导致执行计划不准确,业务高峰期还可能导致数据库宕机。

    说明

    对于不割接场景,割接前收集表示新实例开放读写前收集,割接后收集表示新实例开放读写后收集。

    存储空间

    选择新版本实例的存储空间大小。

    说明

    升级模式本地部署无需配置该参数。

    本地盘实例升级大版本时,支持存储空间缩容。可选择的最小存储空间需满足以下条件:

    • 以下两者中的最小值:

      • 原实例已使用存储空间 × 120%,如果计算结果(单位需计算为GB)不是5的倍数,则向上凑为5的倍数。

        说明

        原实例已使用存储空间,可通过监控与报警功能查看监控项磁盘空间 (MB),具体方法,请参见 查看增强监控。

      • 原实例存储空间。

    • 大于等于ESSD云盘可购买的最小值,不足时以如下值作为可购买最小值:

      • ESSD PL1云盘:20 GB。

      • ESSD PL2云盘:500 GB。

      • ESSD PL3云盘:1500 GB。

    说明

    例如:

    • 原实例存储空间为100 GB,已使用70 GB,升级大版本时,存储类型选择为ESSD PL1云盘。

      计算方法:70 × 120% = 84 GB,向上凑为5的倍数85 GB。因此,可购买的最小存储空间为85 GB。

    • 原实例存储空间为700 GB,已使用350 GB,升级大版本时,存储类型选择为ESSD PL2云盘。

      计算方法:350 × 120% = 420,420 GB小于ESSD PL2云盘可购买的最小值500 GB,因此,可购买的最小存储空间为500 GB。

    实例规格

    选择新版本实例的规格。有关实例规格的更多详情,请参见 主实例规格列表。

    说明

    升级模式本地部署无需配置该参数。

  6. 单击立即创建

    选择升级模式蓝绿部署时,此时原实例状态变更为迁移中,并且实例列表中会多出一个状态为创建中的新实例。当两个实例的状态变更为运行中即代表创建或升级完成。具体时间取决于数据量,请耐心等待。

    说明
    • 升级任务创建后不支持修改或删除。

    • 原实例状态为迁移中时,实例不支持修改参数、重启、释放等运维操作。

    • 如果单击立即创建时,提示资源不足,请切换目标主实例可用区

  7. 如果在 步骤一中删除了只读实例,则在升级后,还需执行以下步骤:

    1. 在新实例上重新 创建PostgreSQL只读实例。

    2. 在应用程序中,将 步骤一中修改的实例连接地址修改为新的只读实例连接地址。

后续步骤

  1. 对于蓝绿部署,确认业务已在新实例中稳定运行后,将新实例 转成包年包月。

  2. 对于蓝绿部署, 释放原实例。

    说明
    • 如果您的原实例计费方式为包年包月且尚未到期,释放实例可能存在费用损失。具体退订规则请参见 退款说明。

    • 如果您的原实例购买时使用了优惠,升级后新实例将不会继承此优惠,原实例退订请以实际退订页为准。

    • 包年包月退款金额退款时间以实际退订账单为准,非实时到账。

  3. 新实例不包含只读实例,您可以按需 创建PostgreSQL只读实例。

相关文档

  • 解读RDS PostgreSQL大版本升级检查报告

  • 查看或修改连接地址和端口

  • 主实例规格列表

  • 释放实例

  • 按量付费转包年包月

  • 您还可以使用API进行大版本升级,相关API如下:

    API

    描述

    UpgradeDBInstanceMajorVersionPrecheck

    RDS PostgreSQL实例大版本升级检查

    DescribeUpgradeMajorVersionPrecheckTask

    查询RDS PostgreSQL实例大版本升级检查报告

    UpgradeDBInstanceMajorVersion

    RDS PostgreSQL实例升级数据库大版本

    DescribeUpgradeMajorVersionTask

    查询RDS PostgreSQL实例大版本升级历史任务

常见问题

大版本升级期间,是否能变更实例?比如变更实例规格?

大版本升级期间不支持变更实例,必须在大版本升级完成后,才可以进行其他操作。

大版本是否支持自动升级?

暂不支持自动升级数据库大版本。

升级数据库大版本后,在新实例中创建raster_overviews视图时,提示raster_overviews冲突,如何处理?

如果PostGIS版本小于2.5.2且RDS PostgreSQL内核版本为10或11,升级插件后,再升级数据库大版本到PostgreSQL12,在新实例中创建raster_overviews视图可能会出现raster_overviews冲突的问题。

解决方法如下:

  1. 在原实例中升级PostGIS插件版本。

    如下命令需执行两遍,以确保成功。

    SELECT PostGIS_Extensions_Upgrade();
    SELECT PostGIS_Extensions_Upgrade();
  2. 根据业务判断是否使用了PostGIS Raster插件,选择对应的升级方法。

    使用了PostGIS Raster插件
    1. 在原实例中执行如下命令,修改raster_overviews视图。

      ALTER EXTENSION PostGIS_Raster DROP VIEW raster_overviews;
      CREATE OR REPLACE VIEW raster_overviews AS SELECT 1;
    2. 对PostgreSQL实例进行大版本升级,至少升级到PostgreSQL 12或以上版本。

    3. 升级完成后,在新实例中重新创建视图。

      CREATE 
      OR REPLACE VIEW raster_overviews AS 
      SELECT 
        current_database() AS o_table_catalog, 
        n.nspname AS o_table_schema, 
        c.relname AS o_table_name, 
        a.attname AS o_raster_column, 
        current_database() AS r_table_catalog, 
        split_part(
          split_part(s.consrc, '''::name', 1), 
          '''', 
          2
        ): :name AS r_table_schema, 
        split_part(
          split_part(s.consrc, '''::name', 2), 
          '''', 
          2
        ): :name AS r_table_name, 
        split_part(
          split_part(s.consrc, '''::name', 3), 
          '''', 
          2
        ): :name AS r_raster_column, 
        trim(
          both 
          from 
            split_part(s.consrc, ',', 2)
        ): :integer AS overview_factor 
      FROM 
        pg_class c, 
        pg_attribute a, 
        pg_type t, 
        pg_namespace n, 
        (
          SELECT 
            connamespace, 
            conrelid, 
            conkey, 
            pg_get_constraintdef(oid) As consrc 
          FROM 
            pg_constraint
        ) AS s 
      WHERE 
        t.typname = 'raster' : :name 
        AND a.attisdropped = false 
        AND a.atttypid = t.oid 
        AND a.attrelid = c.oid 
        AND c.relnamespace = n.oid 
        AND c.relkind = ANY(
          ARRAY[ 'r' : :char, 'v' : :char, 'm' : :char, 
          'f' : :char ]
        ) 
        AND s.connamespace = n.oid 
        AND s.conrelid = c.oid 
        AND s.consrc LIKE '%_overview_constraint(%' 
        AND NOT pg_is_other_temp_schema(c.relnamespace) 
        AND has_table_privilege(c.oid, 'SELECT' : :text); ALTER EXTENSION PostGIS_Raster 
      ADD 
        VIEW raster_overviews;
    未使用PostGIS Raster插件
    1. 在原实例中执行如下命令删除插件。

      DROP EXTENSION PostGIS_Raster;
    2. 对PostgreSQL实例进行大版本升级,至少升级到PostgreSQL 12或以上版本。

如何处理升级后订阅数据不一致的问题?

  1. 升级成功后,清空目标端(高版本实例)表数据,重新创建订阅并设置copy_data=true。详情请参见 ALTER SUBSCRIPTION。

  2. 使用CONFLICT关键字将源端(低版本实例)消费的数据导入到目标端,示例如下。

    CREATE TABLE my_tbl(id INT PRIMARY KEY, t TIMESTAMP, val TEXT);
    
    INSERT INTO my_tbl VALUES (1, CURRENT_TIMESTAMP, 'a');
    INSERT INTO my_tbl VALUES (2, CURRENT_TIMESTAMP, 'b');
    INSERT INTO my_tbl VALUES (3, CURRENT_TIMESTAMP, 'c');
    
    -- in case with newer timestamp: do update
    INSERT INTO my_tbl VALUES (1, CURRENT_TIMESTAMP, 'd') ON CONFLICT(id) DO UPDATE
    	SET t = excluded.t,
    		val = excluded.val
    	WHERE my_tbl.t < excluded.t;
    
    -- in case with older timestamp: do nothing
    INSERT INTO my_tbl VALUES (2, CURRENT_TIMESTAMP - '10 hours'::interval, 'e') ON CONFLICT(id) DO UPDATE
    	SET t = excluded.t,
    		val = excluded.val
    	WHERE my_tbl.t < excluded.t;
    
    -- in case with new val: just insert
    INSERT INTO my_tbl VALUES (5, CURRENT_TIMESTAMP - '10 hours'::interval, 'f') ON CONFLICT(id) DO UPDATE
    	SET t = excluded.t,
    		val = excluded.val
    	WHERE my_tbl.t < excluded.t;

上一篇:PostgreSQL基础系列或高可用系列升级集群系列 下一篇:解读RDS PostgreSQL大版本升级检查报告

    深圳坪山网站建设公司湖南网站关键词排名优化靠谱优化公司网站出色火4星站长工具怎样优化网站惠民外贸英文网站优化开发网站快速排名优化方式收费情况阳江网站排名优化价格深圳教育网站优化软件吉安网站优化公司网站优化技术分享优化网站推广营销方案洛阳网站优化公司济南网站优化 鹊起科技网站优化咨询客服哪家好益阳网站优化哪家值得信赖东莞市网站seo优化排名网站权重优化案例网站优化的体会网站怎样优化seo钦州网站优化多少钱运城网站的优化巩义网站优化上海网站优化营商上海网站优化电话网站排名优化到需火20星厦门网站优化对策东营网站优化哪家便宜罗定企业网站seo优化兰州网站建设优化如何优化网站里择火3星福州网站优化加时时在网络香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

    深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化