调查 ESXi/ESX 上的虚拟机文件锁定 (10051)
调查 ESXi/ESX 上的虚拟机文件锁定 (10051)
Last Updated: 11/28/2016Categories: Troubleshooting
1
Details
- 打开虚拟机电源失败。
- 无法打开虚拟机电源。
- 将现有虚拟机磁盘 (VMDK) 添加到已打开电源的虚拟机失败
- 显示错误:
无法添加磁盘 scsi0:1。无法打开 scsi0:1 的电源
(Failed to add disk scsi0:1. Failed to power on scsi0:1) - 打开虚拟机电源时,出现下列错误之一:
- 无法打开交换文件 (Unable to open Swap File)
- 文件已锁定,无法访问 (Unable to access a file since it is locked)
- 文件 <filename> 已锁定,无法访问 (Unable to access a file <filename> since it is locked)
- 无法访问虚拟机配置 (Unable to access Virtual machine configuration)
- 在 /var/log/vmkernel 日志文件中,您会看到类似以下内容的条目:
WARNING:World:VM xxxx:xxx:Failed to open swap file <path>:Lock was not free
WARNING:World:VM xxxx:xxx:Failed to initialize swap file <path> - 打开虚拟机控制台时,可能会收到以下错误:
连接到 <path><virtual machine>.vmx 时出错,因为该 VMX 未启动
(Error connecting to <path><virtual machine>.vmx because the VMX is not started) - 打开虚拟机电源导致打开电源任务始终停留在 95%。
- 从模板部署虚拟机后无法打开其电源。
- 虚拟机报告 vCenter Server 和 ESXi/ESX 主机控制台的电源状态存在冲突。
- 尝试通过文本编辑器(例如 cat 或 vi)查看或打开 .vmx 文件时报告类似于以下内容的错误:
cat:无法打开“[虚拟机名称].vmx”:参数无效
(cat:can't open '[name of vm].vmx':Invalid argument)
null
Solution
文件锁定的目的
注意:有关在升级到 VMware ESXi 5.5 Patch 5 之后查找锁定所有者的详细信息,请参见 在 VMware ESXi 5.5 P05 中查找 VMFS 数据存储上的 VMDK 或文件的锁定所有者 (2125544)。
为了防止并行更改关键虚拟机文件和文件系统,ESXi/ESX 主机对这些文件建立了锁定。在某些情况下,当关闭虚拟机电源后,这些锁定可能不会解除。文件锁定后,服务器将无法访问这些文件,并且将无法打开虚拟机的电源。
如下虚拟机文件会在运行时期间锁定:
- VMNAME.vswp
- DISKNAME-flat.vmdk
- DISKNAME-ITERATION-delta.vmdk
- VMNAME.vmx
- VMNAME.vmxf
- vmware.log
初始快速测试
要使关键虚拟机运行,请执行以下操作:
- 将虚拟机迁移至已知上次在其上运行的主机,并尝试打开电源。
- 如果不成功,请继续尝试在群集中的其他主机上打开虚拟机的电源。
如果遇到持有文件锁定的主机,当相应文件锁定有效时,应该可以打开虚拟机电源。 - 如果仍无法打开虚拟机电源,请继续执行以下步骤来调查更多详细信息。
要标识和释放文件上的锁定,请执行以下与您 ESXi 版本相关的步骤。
</u>
ESXi 故障排除步骤
确定锁定的文件
要确定锁定的文件,请尝试打开虚拟机电源。在打开电源过程中,可能会显示错误后有错误信息写入虚拟机日志。该错误和日志条目确定了虚拟机和文件:
- 如果适用,打开 vSphere 或 VMware Infrastructure (VI)Client 并将其连接到对应的 ESXi 主机、VirtualCenter Server 或者 vCenter Server 主机名或 IP 地址。
- 找到受影响的虚拟机,并尝试打开其电源。
- 打开虚拟机的远程控制台窗口。
- 如果虚拟机无法开机,远程控制台屏幕上会显示一条包含受影响文件名称的错误消息。
注意:如果错误未显示,请继续执行以下步骤来查看虚拟机的 vmware.log 文件:- 使用 SSH 客户端以 root 身份登录 ESXi 主机。
- 确认已在服务器上注册虚拟机,并运行以下命令获取虚拟机的完整路径:
# vim-cmd vmsvc/getallvms
输出会返回已在 ESXi 主机上注册的虚拟机列表。每行都包含虚拟机 .vmx 文件中的数据存储和位置。您会看到类似于以下内容的输出:
[datastore] VMDIR/VMNAME.vmx
确定该列表上是否有受影响的虚拟机。如果未列出,说明该虚拟机未在此 ESXi 主机上注册。通常在其上注册虚拟机的主机持有该锁定。确保已连接至正确的主机,然后再继续操作。
- 移至虚拟机目录:
# cd /vmfs/volumes/datastore/VMDIR
- 使用文本查看器读取 vmware.log 文件的内容。在该文件末尾,查找标示出受影响文件的错误消息。
找到锁定并将其移除
虚拟机可以在主机之间移动,正因如此,虚拟机当前在其中注册的主机可能不是保持文件锁定的主机。必须由拥有锁定的 ESX/ESXi 主机来释放锁定。此主机由主管理 vmkernel 接口的 MAC 地址标识。
注意:文件遭到锁定还可能是因为备份程序在备份虚拟机期间一直在锁定文件而导致的。如果备份存在任何问题,都可能会导致无法正确将锁定解除。在某些情况下,可能需要禁用备份应用程序或重新引导备份服务器来清除挂起的备份。
此锁定可能由任何连接到同一存储的主机的 VMkernel 所保持。
先确定 VMkernel 在锁定文件的服务器。
要确定该服务器,请执行以下操作:
- 通过运行以下命令报告锁定持有者的 MAC 地址(NFS 卷上除外):
# vmkfstools -D /vmfs/volumes/UUID/VMDIR/LOCKEDFILE.xxx
注意:在所有通常锁定的虚拟机文件(如 Solution Section 开头所列)中运行此命令以确保确认所有锁定的文件。
- 对于 ESXi 4.1 之前的服务器,上述命令会把其输出写入系统日志。自 ESXi 4.1 起,输出还会显示在屏幕上。任何正在锁定 .vmdk 文件的主机的 MAC 地址都会包括在此输出中。要查找此信息,可以查看 /var/log/messages。
查找类似于以下内容的行:
Hostname vmkernel:17:00:38:46.977 cpu1:1033)Lock [type 10c00001 offset 13058048 v 20, hb offset 3499520
Hostname vmkernel:gen 532, mode 1, owner xxxxxxxx-xxxxxxxx-xxxx-xxxxxxxxxxxx mtime xxxxxxxxxx]
Hostname vmkernel:17:00:38:46.977 cpu1:1033)Addr <4, 136, 2>, gen 19, links 1, type reg, flags 0x0, uid 0, gid 0, mode 600
Hostname vmkernel:17:00:38:46.977 cpu1:1033)len 297795584, nb 142 tbz 0, zla 1, bs 2097152
Hostname vmkernel:17:00:38:46.977 cpu1:1033)FS3:132: <END supp167-w2k3-VC-a3112729.vswp>第二行(以粗体显示)owner 一词后显示的是 MAC 地址。在此示例中,无效 ESXi 主机的管理 vmkernel 接口的 MAC 地址为 xx:xx:xx:xx:xx:xx。登录服务器之后,可分析保持锁定的进程。
ESXi 4.0 U3、4.1 U1 或更高版本提供了一个新字段,可确定只读锁定所有者或多写入器锁定所有者。
您会看到类似以下内容的输出:
[root@test-esx1 testvm]# vmkfstools -D test-000008-delta.vmdk
Lock [type 10c00001 offset 45842432 v 33232, hb offset 4116480
gen 2397, mode 2, owner 00000000-00000000-0000- 000000000000mtime 5436998]<-------------- MAC address of lock owner
RO Owner[0]HB offset 3293184 xxxxxxxx-xxxxxxxx-xxxx- xxxxxxxxxxxx <------------------------------ MAC address of read-only lock owner
Addr <4, 80, 160>, gen 33179, links 1, type reg, flags 0, uid 0, gid 0, mode 100600
len 738242560, nb 353 tbz 0, cow 0, zla 3, bs 2097152- 如果“vmkfstools -D test-000008-delta.vmdk”命令在顶部字段中未返回有效的 MAC 地址(返回的全是 零)。请检查该字段下面的字段(其下的 RO Owner 行),查看对文件拥有只读/多写入器锁定的 MAC 地址。在前述示例中,导致问题的 MAC 地址为:xx:xx:xx:xx:xx:xx。
- 在某些情况下,这有可能是NFS 锁定或者是可以使用或读取 VMFS 文件系统的其他系统或产品生成的锁定。文件由 VMkernel 子项或 cartel 域锁定,必须重新引导正在运行该进程/域的导致问题的主机才能清除该锁定。
- 找出锁定文件的主机或备份工具(拥有该 MAC 的计算机)后,关闭其电源或停止导致锁定的服务,然后在运行虚拟机的主机上重新启动管理代理以解除锁定。
- 要确定 MAC 地址是否与当前登录的主机相对应,请参见 Identifying the ESX Service Console MAC address (1001167)。如果不对应,则必须与拥有此虚拟机文件访问权限的每个主机建立控制台或 SSH 连接。
- 确定持有该锁定的主机后,从该主机取消虚拟机注册。
注意:如果在 vCenter Server 的主机清单中未找到该虚拟机,请打开直接指向 ESXi 主机的 vSphere 或 VI Client 连接。检查清单中是否存在标记为未知虚拟机的任何条目。如果找到了未知虚拟机,则从清单中移除。
- 从清单中成功移除虚拟机后,将其注册到持有锁定的主机,然后尝试打开该虚拟机电源。可能需要将 DRS 设置为手动,以确保在正确的主机上打开虚拟机电源。
如果虚拟机仍无法打开电源,请在登录到导致问题的主机后完成以下步骤。
注意:如果已确定文件上的 VMkernel 锁定,请跳过本部分其余内容并转到本文的进一步故障排除的步骤部分。
- 检查虚拟机是否仍拥有为其分配的域 ID:
对于 ESXi 4.x,请在所有 ESXi 主机上运行以下命令:
# cd /tmp
# vm-support -x您会看到类似以下内容的输出:
Available worlds to debug:
wid=world_id name_of_VM_with_locked_file如果相关虚拟机仍在 ESXi 4.x 主机上运行,请终止该虚拟机。这会释放文件上的锁定。要终止虚拟机,请运行以下命令:
# vm-support -X world_id
其中 world_id 为含锁定文件的虚拟机的域 ID。
注意:此命令需要花费 5 到 10 分钟才能完成。看到是否可包括虚拟机的屏幕截图消息时,请回答否;对于所有后续问题,请回答是。
在停止进程后,可以打开虚拟机电源或访问文件/资源。
对于 ESXi 5.x 和更高版本,可以在本地或远程使用 esxcli 命令行实用程序来列出当前正在主机上运行的虚拟机列表。
使用以下命令列出所有正在运行的虚拟机,包括虚拟机的域 ID、Cartel ID、显示名称和 .vmx 配置文件路径:
# esxcli vm process list
您会看到类似以下内容的输出:
VirtualMachineName
World ID:1268395
Process ID:0
VMX Cartel ID:1264298
UUID:ab cd ef ...
Display Name:VirtualMachineName
Config File:/path/VirtualMachineName.vmx这里列出了两个域。第一个域编号(在此示例中为 1268395)为 vCPU 0 的虚拟机监控器 (VMM)。第二个域编号(在此示例中为 1264298)为虚拟机 Cartel ID。
如果相关虚拟机仍在 ESXi 5.x 及更高版本主机上运行,请终止该虚拟机。这会释放文件上的锁定。要终止虚拟机,请运行以下命令:
# esxcli vm process kill --type=soft --world-id=1268395
有关其他信息,请参见 Mapping a virtual machine world number to a virtual machine name (1001101)。
- 在 ESXi 4.1/5.x/6.x 中,要查找虚拟机锁定文件的所有者,请运行以下命令:
# vmkvsitools lsof | grep Virtual_Machine_Name
您会看到类似以下内容的输出:
11773 vmx 12 46 /vmfs/volumes/Datastore_Name/VirtualMachineName/ VirtualMachineName-flat.vmdk
然后可以运行以下命令来获取虚拟机进程的 PID:
ps | grep Virtual_Machine_name
可以使用以下命令终止进程:
kill -9 PID
要在终止正在运行(但挂起且无响应)的虚拟机后生成核心转储,请使用 kill -6 PID 或 kill -11 PID 命令。
注意:在 ESXi 4.1、ESXi 5.x 和 ESXi 6.x 中,可以使用 esxtop 中的 k 命令向正在运行的虚拟机进程发送信号并终止该进程。在 ESXi 控制台上,进入技术支持模式并以 root 用户身份登录。有关详细信息,请参见 Tech Support Mode for Emergency Support (1003677)。
- 使用 esxtop 命令运行 esxtop 实用程序。
- 按 c 以切换到 CPU 资源利用率屏幕。
- 按 Shift+f 以显示字段列表。
- 按 c 以添加 Learder World ID 列。
- 通过目标虚拟机的名称和 Learder World ID (LWID) 来确定目标虚拟机。
- 按 k。
- 在 World to kill 提示符中,键入从步骤 6 得到的 Learder World ID,然后按 Enter。
- 等待 30 秒后验证该进程是否已不再列出。
确定文件是否正在由正在运行的虚拟机使用
如果文件正在由运行的虚拟机访问,则无法强夺或移除该锁定。可能持有该锁定的主机正在运行虚拟机且变得无响应,或者另一台正在运行的虚拟机在尝试打开电源前错误地将磁盘添加到了其配置中。
要确定虚拟机进程是否正在运行,请执行以下操作:
- 确定是否已在主机上注册虚拟机,为此请以 root 用户身份运行以下命令:
# vim-cmd vmsvc/getallvms
注意:输出内容会列出每个已注册虚拟机的 vmid。请记录此信息,因为在 ESXi 服务器上此过程的其余部分将需要此信息。
- 评估虚拟机当前在主机上的状态,运行以下命令:
# vim-cmd vmsvc/power.getstate vmid
- 要停止虚拟机进程,请参见 Powering off an unresponsive virtual machine on an ESX host (1004340)。
</u>
进一步的故障排除步骤</u>
确保备份设备未锁定虚拟磁盘
备份设备可能会锁定虚拟磁盘。首先,确保当前并未执行备份。通过 VMware vSphere Client 或 vSphere Web Client,从备份设备的“编辑设置”卸载虚拟磁盘。有关详细信息,请参见 Unable to delete the virtual machine snapshot due to locked files (2017072)。
使用 touch 实用程序来确定文件是否已锁定
touch 实用程序用于更新特定文件或目录的访问权限和时间戳修改。同样,该命令可用于测试 VMFS 文件系统中的文件和目录锁定机制,对于锁定的文件,此过程预计会失败。虽然还可以使用如 head -c 0 等的其他命令,但使用 touch 是首选方法,因为它对资源的更改最少。
注意:必须在群集中的每台主机上运行 touch 命令。该命令在持有文件锁定的主机上会成功,在其他所有主机上则会失败。之后可以调查该主机上的哪个进程在锁定文件。
要测试文件或目录锁定功能,请运行以下命令:
# touch filename
注意:执行 touch * 命令会对当前目录中的所有文件执行相关操作。
touch * 命令会产生以下结果:
- 如果 touch * 命令成功,则该命令会成功更改日期/时间戳,并验证文件可以并且已经锁定(然后解锁)。此时,重试虚拟机的打开电源操作来查看是否成功。
- 如果 touch * 命令失败,并显示 device or resource busy 消息,则表明某个进程正对文件或目录保持锁定。这种情况可能出现在具有该文件访问权限的任一 ESXi/ESX 主机中,但不会在保持锁定的主机上。如果报告该消息,则继续下一部分。
- 如果报告其他错误消息,则可能表明与 VMFS 上的文件或目录锁定相关的元数据可能无效或损坏。如果是这种情况,请收集 ESXi/ESX 主机诊断信息并提交支持请求。有关详细信息,请参见 Collecting diagnostic information for VMware products (1008524) 和 How to Submit a Support Request。
移除 .lck 文件(仅限 NFS)
虚拟机上的文件可通过 NFS 存储锁定。通过文件名末尾以 .lck-####(其中 #### 是 fileid 字段从锁定文件的 GETATTR 请求返回的值)表示的文件便可确定。这是 NFS 文件锁定,并且仅当使用 ls -la 命令时才会列出,因为它是隐藏文件(在 5.x 之前的 ESX/ESXi 版本中)。有关详细信息,请参见 Powering on a virtual machine on NFS or trying to remove an NFS Datastore fails with errors "Unable to access a file since it is locked" or "Resource is in use" (1012685)。
有关 NFS 文件锁定的详细信息,请参见 VMware NFS Best Practices Whitepaper。
警告:仅当虚拟机未运行时,才能安全地移除这些文件。
注意:VMFS 卷没有 .lck 文件。VMFS 卷的锁定机制是在卷上的 VMFS 元数据中进行处理。
确定 .vmdk 文件是否正在由其他虚拟机使用
.vmdk 文件上的锁定会导致虚拟机无法启动。但是,由于虚拟机磁盘文件可进行配置,让任何虚拟机使用,因此文件可能会由当前正在运行的其他虚拟机锁定。
要确定虚拟机磁盘文件是否配置为在多个虚拟机上使用,请运行以下命令:
# egrep -i DISKNAME.vmdk /vmfs/volumes/*/*/*.vmx
注意:
- 此命令会尝试在 ESX/ESXi 主机可见的虚拟机的所有 .vmx 配置文件中查找特定磁盘名称。将会为每个正在运行但尚未注册到此 ESX 主机的虚拟机显示 Device or resource busy 消息。必须在基础架构中的每个 ESX/ESXi 主机上运行此命令,或专门在对包含虚拟机文件的存储具有访问权限的主机上运行此命令。
- 如果配置了任何其他虚拟机使用该磁盘,请确定这些虚拟机当前是否正在运行。关闭使用磁盘文件的其他虚拟机的电源可释放锁定。必须先确定哪些虚拟机应该具有文件的所有权,然后重新配置虚拟机以防止再次发生此错误。
- 在操作过程中,许多虚拟机备份解决方案会将虚拟机的 .vmdk 文件附加到其自身。在这种情况下,如果备份失败和/或主机关闭,备份虚拟机可能仍会附加其他虚拟机的 .vmdk 文件。如果出现这种情况,通常会先打开其他虚拟机电源,这样,随后在备份虚拟机尝试打开电源时就会产生文件锁定状况。使用备份解决方案虚拟机上的编辑设置进行检查,查看该虚拟机是否附加了属于其他虚拟机的磁盘。如果有,则关闭备份虚拟机电源,选择相应的磁盘并选择移除,把该磁盘从虚拟机中移除。
警告:请勿删除磁盘中的文件。
如果 .vmdk 文件未由其他虚拟机使用,请确认没有任何 VMkernel 进程在锁定文件。操作时,请按上面部分中所述查找文件锁定并将其移除。如果可以确定主机但无法标识是哪个特定的 VMkernel 子进程 ID 导致了问题,则必须重新引导服务器以清除锁定。
注意:还可以尝试把虚拟机迁移到其他主机后再打开电源。如果该 ESX 主机拥有虚拟机的锁定,则会允许您打开其电源。
重新引导锁定文件的 ESX/ESXi 主机
到此阶段为止,您已对确认保持所需文件锁定的 VMkernel 进程进行了调查,但仍有未确定的子进程保持该锁定。在之前的步骤中,您已通过 vmkfstools -D 命令确定了服务器,lsof 实用程序(仅限 ESX)未显示任何异常进程,并且其他虚拟机没有锁定文件。
此时应重新启动服务器以允许再次打开虚拟机电源。
注意:如果希望通过 VMware 技术支持的分析更进一步调查相关问题,请在重新引导之前收集诊断信息。
使用以下步骤从服务器迁移虚拟机并重新启动服务器:
- 将所有虚拟机从主机迁移或 vMotion 到备用主机。
- 如果已撤出虚拟机,请将主机置于维护模式下并重新引导主机。
注意:如果只有一个 ESX/ESXi 主机或无法执行 vMotion 或迁移虚拟机,则必须在重新引导之前调度受影响虚拟机的停机时间。重新引导主机后,再次启动受影响的虚拟机。
检查虚拟机配置文件 (.vmx) 的完整性
有关检查虚拟机配置文件完整性的详细信息,请参见 Verifying ESX/ESXi virtual machine file integrity (1003743)。
注意:如果虚拟机未打开电源,则可能会在 .vmx 文件中指向两个磁盘。从虚拟机中移除其中一个磁盘,然后再次尝试打开电源。
注意:如需了解相关信息,请参见 Cannot power on a virtual machine because the virtual disk cannot be opened (1004232)。
开启支持请求
如果完成本文中的步骤后问题仍然存在,请执行以下操作:
- 收集诊断信息。有关详细信息,请参见 Collecting diagnostic information for VMware products (1008524)。
- 向 VMware 支持部门提出支持请求,并在问题描述中注明此知识库文章 ID (10051)。有关详细信息,请参见 How to Submit a Support Request。
调查 ESXi/ESX 上的虚拟机文件锁定 (10051)相关推荐
- ESXI上的vm虚拟机文件被锁定无法POWER ON的问题处理
一台生产业务的虚拟机假死,强行关机后无法POWER ON.在启动时报虚拟机文件被锁定,错误信息如下: 此时对虚机进行迁移.快照等,发现操作不可用.查看虚机状态,发现其在集群内的三台物理主机上来回飘. ...
- 在ESXi主机上关闭无响应的虚拟机
适用情况 该方法适用于以下情况: ESXi主机上的虚拟机不能关闭. 虚拟机无响应且不能停止. 目的 这篇文章描述在ESXi环境中如何正确的关闭一台无响应的虚拟机. 注意: 这篇文章只适用于ESXi主机 ...
- 虚拟机文件上传至dsm服务器,ESXi虚拟机搭建私有云NAS-黑群晖DSM
系统环境: ESXI 6.5(安装过程略过,版本号6.5.0,Build 4564106) 黑群6.1引导由xpenology的大神Jun提供(这边已经转化成vmdk模式)6.1引导点击下载 6.2引 ...
- 服务器开启虚拟机就死机,解决ESXi服务器上磁盘锁导致虚拟机卡死的问题
解决ESXi服务器上磁盘锁导致虚拟机卡死的问题 解决ESXi/ESX服务器上磁盘锁导致虚拟机假死.卡死的问题 当虚拟机被卡死或假死时,在文件夹里面只有如下内容信息: 1. .vswp 2. -flat ...
- converter 迁移xen server 上的虚拟机 到 wmware esxi
本文分为两个部分,第一部分为 使用 vmware converter 工具迁移虚拟机,第二部分为将迁移的 xen server 虚拟机更新内核,更改系统配置文件等等,否则 vmware esxi 下 ...
- citrix创建虚拟机服务器,在 ESXi 服务器上安装并配置 Citrix SD-WAN Center
在 ESXi 服务器上安装并配置 Citrix SD-WAN Center April 13, 2021 贡献者: C 安装 VMware vSphere 客户端 以下是下载和安装用于创建和部署 Ci ...
- 转:怎样在VMware ESXi上 克隆虚拟机
Cloning virtual machines on VMware ESXi 翻译自http://www.dedoimedo.com/computers/vmware-esxi-clone-mach ...
- VMware虚拟机提示“锁定文件失败 打不开磁盘”解决方法
有用户在打开VMware虚拟机时提示"锁定文件失败 打不开磁盘或它所依赖的某个快照磁盘.模块启动失败.未能启动虚拟机."遇到这个问题该怎么办呢?出现这个问题是由于虚拟机磁盘保护机制 ...
- 在ESXi上部署虚拟机
我们安装VMwarevSphere的目的就是在一台物理ESX主机上安装很多很多的虚拟机,我们可以通过VMwarevSphereClient直接管理VMwarevSphere服务器,也可以通过对VMwa ...
- 服务器u盘拷虚拟机文件,虚拟机文件拷到u盘上
虚拟机文件拷到u盘上 内容精选 换一换 本节操作介绍华为云上云服务器的跨账号跨区域迁移,建议采用镜像迁移方式.服务器迁移的常见场景与常用的迁移方式请参考迁移的背景知识.跨账号跨区域迁移的方法请参考方案 ...
最新文章
- [洛谷P4626]一道水题 II
- 20172303 2017-2018-2 《程序设计与数据结构》第4周学习总结
- 升级鸿蒙系统的手机名单,倒计时2天!首批鸿蒙OS适配名单确定,你的手机在列吗?...
- HDUOJ----剪花布条
- 作者:郑勇,山东省农业信息中心副主任、高级工程师。
- 单值二叉树:如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回 true;否则返回 false。
- Firefox 新版本发布,Cookie 可真不好吃
- AutoIt:工具栏中没有其它工具,eg,Koda
- Jenkins教程(自动化部署)
- caj是什么格式的文件
- 现在90后程序员有必要考证吗?
- FOI对象中显示labels --Oracle Map
- java异常以及处理
- 文献检索(学术搜索)
- 关于APP抓包,Mac就不配拥有姓名吗?
- 电力系统非线性控制_第二届电气,控制,自动化和机器人国际学术会议 (ECAR2020)...
- 基于微信理共享停车位预约小程序系统设计与实现 开题报告
- rono在oracle的作用_Oracle中存储过程的作用和用法
- Windows Server 2008 R2 安装Oracle 10g 提示“程序异常终止”问题
- VMware虚拟机安装Window10系统