JavaScript is required to for searching.
跳过导航链接
退出打印视图
解决 Oracle Solaris 11.1 中的典型问题     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

1.  管理系统故障转储信息(任务)

管理系统故障转储信息中的新增内容

savecore 行为的更改

系统崩溃(概述)

系统故障转储文件

保存故障转储

使用 dumpadm 命令管理系统故障转储信息

dumpadm 命令的工作原理

管理系统故障转储信息

管理系统故障转储信息(任务列表)

如何显示当前的故障转储配置

如何修改故障转储配置

如何检查故障转储信息

如何从完整的故障转储目录中恢复(可选的)

如何禁用或启用故障转储的保存

2.  管理核心文件(任务)

3.  系统和软件问题的故障排除(任务)

4.  其他系统和软件问题的故障排除(任务)

索引

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

管理系统故障转储信息

本节介绍有关管理系统故障转储信息的任务。

管理系统故障转储信息(任务列表)

任务
说明
参考
1. 显示当前的故障转储配置。
使用 dumpadm 命令显示当前的故障转储配置。
2. 修改故障转储配置。
使用 dumpadm 命令指定要转储的数据类型、系统是否使用专用转储设备和用于保存故障转储文件的目录,以及在写入故障转储文件后必须保持可用的空间量。
3. 检查故障转储文件。
使用 mdb 命令查看故障转储文件。
4.(可选的)从完整的故障转储目录中恢复。
系统崩溃,但 savecore 目录中没有可用空间,并且您需要保存一些关键的系统故障转储信息。
5.(可选的)禁用或启用故障转储文件的保存。
使用 dumpadm 命令禁用或启用故障转储文件的保存。缺省情况下,会启用故障转储文件的保存。

如何显示当前的故障转储配置

  1. 承担 root 角色。

    请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 显示当前的故障转储配置。
    # dumpadm
     Dump content: kernel pages
           Dump device: /dev/zvol/dsk/rpool/dump (dedicated)
    Savecore directory: /var/crash
      Savecore enabled: yes
       Save compressed: on

    前面的示例输出表明:

    • 转储内容是内核内存页面。

    • 内核内存将在专用转储设备 /dev/zvol/dsk/rpool/dump 上进行转储。

    • 系统故障转储文件将写入 /var/crash/ 目录。

    • 已启用故障转储文件的保存。

    • 以压缩格式保存故障转储。

如何修改故障转储配置

  1. 承担 root 角色。

    请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 确定当前的故障转储配置。
    # dumpadm
     Dump content: kernel pages
           Dump device: /dev/zvol/dsk/rpool/dump (dedicated)
    Savecore directory: /var/crash
      Savecore enabled: yes
       Save compressed: on

    此输出标识了运行 Oracle Solaris 11 发行版的系统的缺省转储配置。

  3. 修改故障转储配置。
    #  /usr/sbin/dumpadm  [-nuy] [-c content-type] [-d dump-device] [-m mink | minm | min%]
    [-s savecore-dir] [-r root-dir] [-z on | off]
    -c content

    指定要转储的数据类型。使用 kernel 转储所有内核内存,使用 all 转储所有内存,或使用 curproc 转储内核内存以及在发生崩溃时其线程正在执行的进程的内存页面。缺省转储内容是内核内存。

    -d dump-device

    指定在系统崩溃时临时存储转储数据的设备。主转储设备即为缺省转储设备。

    -m nnnk | nnnm | nnn%

    通过在当前的 savecore 目录中创建 minfree 文件,指定用于保存故障转储文件的最小空闲磁盘空间。可以 KB (nnnk)、MB (nnnm) 或文件系统大小百分比 (nnn%) 的形式指定此参数。savecore 命令会在写入故障转储文件之前访问此文件。如果写入故障转储文件(根据大小)会减少空闲空间量并使其低于 minfree 阈值,则不写入转储文件,并记录一条错误消息。有关从此情况中恢复的信息,请参见如何从完整的故障转储目录中恢复(可选的)

    -n

    指定重新引导系统时不应运行 savecore。不推荐使用此转储配置。如果已将系统故障转储信息写入交换设备并且未启用 savecore,则系统开始交换时将覆盖故障转储信息。

    -s

    指定用于存储故障转储文件的备用目录。在 Oracle Solaris 11 中,缺省目录是 /var/crash

    -u

    强制更新基于 /etc/dumpadm.conf 文件内容的内核转储配置。

    -y

    修改转储配置以在重新引导时自动执行 savecore 命令,即此转储设置的缺省值。

    -z on | off

    修改转储配置以控制重新引导时 savecore 命令的操作。on 设置允许以压缩格式保存核心文件。off 设置会自动解压缩故障转储文件。由于故障转储文件可能非常大,而以压缩格式保存需要的文件系统空间较少,因此缺省值为 on

示例 1-1 修改故障转储配置

在此示例中,所有内存都将转储到专用转储设备 /dev/zvol/dsk/rpool/dump,在保存故障转储文件后可用的最小空闲空间必须为 10% 的文件系统空间。

# dumpadm
      Dump content: kernel pages
       Dump device: /dev/zvol/dsk/rpool/dump (dedicated)
Savecore directory: /var/crash
  Savecore enabled: yes
   Save compressed: on

# dumpadm -c all -d /dev/zvol/dsk/rpool/dump -m 10%
       Dump content: all pages
       Dump device: /dev/zvol/dsk/rpool/dump (dedicated)
Savecore directory: /var/crash (minfree = 5697105KB)
  Savecore enabled: yes
   Save compressed: on

如何检查故障转储信息

  1. 承担 root 角色。

    请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 转至保存故障转储信息的目录。例如:
    # cd /var/crash

    如果您不确定故障转储的位置,请使用 dumpadm 命令来确定系统中配置为存储内核故障转储文件的位置。例如:

    # /usr/sbin/dumpadm
          Dump content: kernel pages
           Dump device: /dev/zvol/dsk/rpool/dump (dedicated)
    Savecore directory: /var/crash
      Savecore enabled: yes
       Save compressed: on
  3. 通过使用模块调试器实用程序 (mdb) 来检查故障转储。
    # /usr/bin/mdb [-k] crashdump-file
    -k

    通过假定文件为操作系统故障转储文件来指定内核调试模式。

    crashdump-file

    指定操作系统故障转储文件。

    例如:

    # /usr/bin/mdb -K vmcore.0

    或者,可以按如下所示指定命令:

    # /usr/bin/mdb -k 0
  4. 显示系统崩溃状态,如下所示:
    > ::status
       .
       .
       .
    > ::system
       .
       .
       .

    要在检查内核故障转储时使用 ::system dcmd 命令,核心文件必须为内核故障转储文件,且必须在启动 mdb 实用程序时指定了 -k 选项。

  5. 退出 mdb 实用程序。
    > $quit

示例 1-2 检查故障转储信息

以下示例显示 mdb 实用程序的样例输出,其中包括系统信息,并列出在此系统的 /etc/system 文件中设置的可调参数。

# cd /var/crash
# /usr/bin/mdb -k unix.0 
Loading modules: [ unix krtld genunix ip nfs ipc ptm ]
> ::status
debugging crash dump /dev/mem (64-bit) from ozlo
operating system: 5.10 Generic sun4v
> ::system
set ufs_ninode=0x9c40 [0t40000]
set ncsize=0x4e20 [0t20000]
set pt_cnt=0x400 [0t1024]
> $q

如何从完整的故障转储目录中恢复(可选的)

在此情况下,系统崩溃,但 savecore 目录中没有任何可用空间,并且您要保存一些关键的系统故障转储信息。

  1. 系统重新引导后,以 root 角色身份登录。
  2. 通过删除已发送给服务提供商的现有故障转储文件来清除 savecore 目录(通常为 /var/crash/)。
    • 或者,手动运行 savecore 命令以指定拥有足够磁盘空间的备用目录。
      # savecore [ directory ]

如何禁用或启用故障转储的保存

  1. 承担 root 角色。

    请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 在系统中禁用或启用故障转储的保存。
    # dumpadm -n | -y

示例 1-3 禁用故障转储的保存

此示例说明如何在系统中禁用故障转储的保存。

# Dump content: all pages
       Dump device: /dev/zvol/dsk/rpool/dump (dedicated)
Savecore directory: /var/crash (minfree = 5697105KB)
  Savecore enabled: no
   Save compressed: on

示例 1-4 启用故障转储的保存

此示例说明如何在系统中启用故障转储的保存。

# dumpadm -y
      Dump content: all pages
       Dump device: /dev/zvol/dsk/rpool/dump (dedicated)
Savecore directory: /var/crash (minfree = 5697105KB)
  Savecore enabled: yes
   Save compressed: on