JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 管理:常见任务     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

关于本书

1.  查找有关 Oracle Solaris 命令的信息

2.  管理用户帐户和组(概述)

3.  管理用户帐户和组(任务)

4.  引导和关闭 Oracle Solaris 系统

5.  使用 Oracle Configuration Manager

6.  管理服务(概述)

7.  管理服务(任务)

8.  使用 Fault Manager

9.  管理系统信息(任务)

10.  管理系统进程(任务)

11.  监视系统性能(任务)

12.  管理软件包(任务)

13.  管理磁盘使用(任务)

14.  调度系统任务(任务)

15.  使用 CUPS 设置和管理打印机(任务)

16.  管理系统控制台、终端设备和电源服务(任务)

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

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

快速故障转储工具

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

系统崩溃(概述)

x86: GRUB 引导环境中的系统崩溃

系统故障转储文件

保存故障转储

dumpadm 命令

dumpadm 命令的工作原理

管理系统故障转储信息

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

如何修改故障转储配置

如何检查故障转储

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

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

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

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

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

索引

管理系统故障转储信息

在处理系统故障转储信息时,请记住以下几点重要内容:

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

  1. 成为 root 角色。
  2. 显示当前的故障转储配置。
    # dumpadm
    Dump content: kernel pages
    Dump device: /dev/dsk/c0t3d0s1 (swap)
    Savecore directory: /var/crash
     Savecore enabled: yes
      Saved compressed: on

    前面的示例输出表明:

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

    • 内核内存将在交换设备 /dev/dsk/c0t3d0s1 中转储。使用 swap -l 命令可以确定所有交换区域。

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

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

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

如何修改故障转储配置

  1. 成为 root 角色。
  2. 确定当前的故障转储配置。
    # dumpadm
          Dump content: kernel pages
           Dump device: /dev/dsk/c0t3d0s1 (swap)
    Savecore directory: /var/crash
     Savecore enabled: yes
         Save commpressed: on

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

  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

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

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

# dumpadm
      Dump content: kernel pages
       Dump device: /dev/dsk/c0t3d0s1 (swap)
Savecore directory: /var/crash
  Savecore enabled: yes
   Save compressed: on
 # dumpadm -c all -d /dev/dsk/c0t1d0s1 -m 10%
      Dump content: all pages
       Dump device: /dev/dsk/c0t1d0s1 (dedicated)
Savecore directory: /var/crash (minfree = 77071KB)
  Savecore enabled: yes
    Save compressed: on

如何检查故障转储

  1. 成为 root 角色。
  2. 使用 mdb 实用程序检查故障转储。
    # /usr/bin/mdb [-k] crashdump-file
    -k

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

    crashdump-file

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

  3. 显示崩溃状态信息。
    # /usr/bin/mdb file-name
    > ::status
       .
       .
       .
    > ::system
       .
       .
       .

示例 17-2 检查故障转储

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

# /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]

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

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

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

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

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

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

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

# dumpadm -n
      Dump content: all pages
       Dump device: /dev/dsk/c0t1d0s1 (dedicated)
Savecore directory: /var/crash (minfree = 77071KB)
  Savecore enabled: no
   Save Compressed: on

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

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

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