从 Linux 操作系统,有没有办法确定操作系统是否在虚拟化 VMware 环境中作为来宾操作系统运行,而不是直接在非虚拟化/裸机/物理主机上运行?在我的情况下,它要么是 VMware,要么不是,但我也对操作系统是在物理硬件上还是在任何类型的虚拟化硬件上的更普遍的问题感兴趣。
Leigh Riffel's questions
我们在 Windows 服务器上共享一个文件夹,以提供对重要应用程序的访问。更新应用程序时,我们 (DBA) 更改共享上的权限以拒绝对其进行所有访问,然后断开共享上打开的任何文件。在我们完成应用程序更新(对相同文件使用不同的共享)后,我们重新启用对共享的访问。
我们修改共享的方式是使用 MS 管理控制台远程连接到服务器。显然,此功能需要服务器上的管理员访问权限,或者至少需要基础架构团队想要取消的某种级别的权限。
问题是处理应用程序更新的 DBA 如何在服务器上以尽可能少的权限禁用和启用对共享的访问?
我们有几个相对较新(不到 1 周)的 Windows Server 2008 R2 Enterprise 安装,每次打开磁盘管理时都会出现此错误。应用程序名称为 vdsldr.exe,问题事件名称为 BEX64。
windows防火墙被关闭,服务被禁用。虚拟磁盘服务已启动(停止时结果相同)。这些计算机是在 VSphere 上运行的虚拟机,因此这可能是问题的一部分。
奇怪的是,第一次创建 VM 时,磁盘管理器运行良好。
任务管理器似乎也在这些机器上崩溃。这些问题出现在不同物理主机上的多个虚拟机上。
我们在 11.1.0.7 数据库上使用 Oracle 的 ORDCOM 基础架构与 COM 对象进行交互。COM 对象不对数据库做任何事情。这个过程已经运行了好几年。
今天,我创建了一个 Oracle Wallet 并为 sys 添加了凭据,以便我拥有的脚本可以使用“/@coredev as sysdba”登录,而不是以明文形式存储用户名和密码。
问题是,只要我将“SQLNET.WALLET_OVERRIDE = TRUE”行添加到 sqlnet.ora 文件,ORDCOM OACreate 调用就会引发 ORA-28578:从外部过程回调期间的协议错误。我在数据库之外有一个程序可以测试 COM 对象并继续正常工作。一旦我在 sqlnet.ora 中注释掉该行,一切正常,但我当然不能再使用钱包了。
我有一个在 32 位 Windows 上运行的 Oracle 11.1.0.7 数据库。我想升级到 64 位(相同版本的 oracle)并想使用备用数据库进行滚动升级。这可能吗?我可以将备用服务器设为主服务器,这样我就不必再次中断来回滚到主服务器了吗?
我们在 Oracle 11.1.0.7 上使用自动内存管理。上周五,共享池意外地从 ~600MB 增加到 ~850MB。内存来自从 ~400 到 ~150 的缓冲区缓存。毋庸置疑,系统执行的磁盘读取操作比以前要多得多。到目前为止,我还无法证明这是一个不正确的更改,但它在我看来确实不正确。我想知道是什么原因造成的,所以我希望可以扭转它。
我对之前和之后的 AWR 进行了比较,我注意到共享池的增加几乎完全在 sql 区域。我使用如下查询查看了存储在那里的 SQL,但没有发现任何最近会改变的东西:
--Replace anything in quotes and numbers with % so that statements not using
--bind variables group together.
SELECT count(*), Trunc(sum(sharable_mem)/1024/1024) SharableMemory,
regexp_replace(regexp_replace(
sql_text,'.\''.+\''','''%'''),'[0-9]+','%') || ''';' sql
FROM v$sql
GROUP BY regexp_replace(regexp_replace(
sql_text,'.\''.+\''','''%'''),'[0-9]+','%')
HAVING sum(sharable_mem) > 2*1024*1024
ORDER BY Trunc(sum(sharable_mem)/1024/1024) DESC;
我还尝试刷新共享池。系统不会将任何共享池放弃给缓冲区缓存,可能是因为刷新后大小增加得太快。
我还尝试为缓冲区缓存设置最小大小,以强制它放弃共享池中的内存。在我的测试系统上,这种方法允许我将缓冲区缓存增加大约 100MB,但在我的实时系统上,它甚至不会增加 3MB,然后给我一个错误,表明没有足够的内存来执行操作。
警报日志在更改发生的时间附近显示“Sweep Incident[77273]:已完成”。我在metalink上找不到太多关于它的信息。它还显示 DIA0 在那个时间附近重新启动,但我不明白这有什么关系。
这里有几个可能不相关的注释。AWR 显示,库缓存中所有命名空间的 pin 请求数量几乎是问题开始前的两倍。大约一个月前,数据库从 10.2.0.4 升级。问题发生前大约一周,会话数从约 200 次增加到约 250 次。
我将重启实例作为最后的手段,因为我不知道它是否会有所帮助。
任何建议,将不胜感激。
我们有一些自动化软件可以通过 POP3 检查某些 Exchange 2007 邮箱。当客户收到的电子邮件请求已读回执时,Exchange 似乎正在发回未读回执。
Not read: <subject>
Your message was deleted without being read on...
软件发出 POP3 命令的顺序是
USER
PASS
STAT
UIDL
TOP # 0
LIST #
RETR #
TOP # 0
RSET
DELE #
QUIT
我们的交易所管理员已经能够通过 telnet 端口 110 上的原始 POP3 命令复制此问题。他运行的命令很简单
USER
PASS
STAT
RETR #
DELE #
QUIT
Exchange 2007 是否将 POP3 命令转换为读取标志?如果是这样,它应该告诉我已经发出了 RETR 命令来检索消息。这是一个错误吗?有没有办法禁用发送特定邮箱或全局的已读回执?
对于我们的 10g Oracle 数据库,我有一个脚本,它会定期创建批处理文件以在我们所有的数据文件上运行 DBVerify。这样,如果我需要检查损坏情况,我只需要运行批处理文件。升级到 Oracle 11g 后,我的批处理文件不起作用。我将问题追溯到 dbv 本身。这是脚本生成的命令:
dbv FILE=F:\ORACLE\ORADATA\CD\CAMPUSCHURCH1.DBF BLOCKSIZE=4096
LOGFILE='c:\DBVerify_COREDEV\CAMPUSCHURCH1_55.txt'
当我运行它时,它会给出 DBV-00100: Specified FILE (C:\Windows\system32/F:\ORACLE\ORADATA\CD\CAMPUSCHURCH1.DBF) 无法访问。 注意:我所在的文件夹是 C:\Windows\system32。 我可以通过切换到 F:\ 并从我的 dbv 调用中删除 F:\ 来让它工作,但我不喜欢这样,因为我必须在每次 dbv 调用之前更改我的脚本以切换到正确的驱动器。
任何人都可以验证我的发现和/或提供解决方案吗?
默认情况下,Windows 服务控制面板会打开,在左侧显示控制台树,并且在扩展模式下会占用左侧的额外空间。为了查看尽可能多的信息,我要做的第一件事是单击工具栏按钮以隐藏控制台,然后单击底部的标准选项卡并展开名称列。我知道我可以使用宏来做到这一点,但我想知道是否有人知道一种自动执行这些操作的方法,可能是通过注册表更改或命令行参数。
Windows Server 2008 显然允许应用程序以某种方式配置文件夹,以便在文件夹中进行的任何更改都需要管理员级别的访问权限。我使用具有管理员权限的帐户登录,但不是本地管理员帐户。当我这样做时,我发现我无法保存对此文件夹中打开的文件的更改。我知道我可以以管理员身份打开应用程序或将文件移出文件夹,进行更改,然后将其移回,但我希望有更好的方法可以完全禁用保护。有没有办法为我经常编辑的文件删除它?
对于基于 Intel 的系统,保持内核数量不变,两个双核处理器和一个四核处理器之间会有多大差异?我们在两个双核处理器上运行 Oracle OLTP 数据库。由于可用的双核处理器较少,我们可能需要切换到四核,但由于许可问题,我们仅限于四核,因此必须切换到一个处理器。如果我们进行切换,我是否应该期望看到现实世界的处理速度发生变化?