发布新日志

  • 【转】Xmanager连接Redhat ES5.1配置

    2010-05-25 15:00:21

    转自:http://space.itpub.net/?uid-23675032-action-viewspace-itemid-659492

    当用Xmanager连接Redhat ES5.1时,需在服务器上作如下设置,就可以在Xbrowser中自动显示出服务器。
    1、vim /usr/share/gdm/defaults.conf
    2、在[Xdmcp]标识下修改如下行
    enable=true
    displayperhost=10
    port=177
    3、wq!强制保存。
    4、/etc/inittab里把默认级别改为5

    id:5:initdefault:

        再在这个文件里加一句:

    x:5:respawn:/usr/bin/gdm

    5、然后重启系统。然后在windows系统上运行xmanager里的Xbrowser程序,就可以发现。
     
    1) 重启后生效
    开启: chkconfig iptables on
    关闭: chkconfig iptables off

    2) 即时生效,重启后失效
    开启: service iptables start
    关闭: service iptables stop

    需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
     
    在开启了防火墙时,做如下设置,开启相关端口,
    修改/etc/sysconfig/iptables 文件,添加以下内容:
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
  • 【转】Cisco网络设备的SNMP及Syslog配置参考实例

    2010-05-13 15:26:56

    简单网络管理协议(SNMP)对于每个网络管理员来说说都是必需的。通过几个简单的命令,我们就可以对其进行配置。目前SNMP仍然是监视网络设备(包括Cisco路由器和交换机)性能的流行方法。通过SNMP管理站点,管理员可以查看网络设备性能的图表。另外,Cisco网简单网络管理协议(SNMP)对于每个网络管理员来说说都是必需的。通过几个简单的命令,我们就可以对其进行配置。
        目前SNMP仍然是监视网络设备(包括Cisco路由器和交换机)性能的流行方法。通过SNMP管理站点,管理员可以查看网络设备性能的图表。另外,Cisco网络设备还会将报警信息 (称作 traps)发送到管理站点。

    什么是SNMP?

    SNMP分为三个版本:v1, v2, 和 v3.其功能是依次递增的。很多网络管理员喜欢用V2版,但是V3版本可以提供更多的安全特性。

    那么SNMP是怎么工作的呢? SNMP设备包含了一个配制好的SNMP代理。网络管理系统(NMS)会与每个网络设备上的SNMP代理进行对话。

    NMS可以是一个很大的系统,比如HP OpenView,也可以是一个小巧的工具软件,比如PRTG.

    SNMP如何帮助我?

    SNMP可做的工作很多,比如以下几类:

    ◆以图表的方式显示 Cisco路由器/交换机的带宽使用情况,可以按端口,数据流向等分类。

    ◆以图形方式显示网络错误(比如CRC错误)。

    ◆某个端口出现问题时可以发送警告信息给管理员。

    是否需要NMS?

    作为管理员,一定要有一个NMS来帮助实现SNMP的功能。配置SNMP 本身并不会让你获得任何信息,你需要配置一个NMS系统来接收,并显示出SNMP的信息。

    如何配置SNMP监视?

    要配置SNMP,我建议首先查看一下设备的信息。比如下面这些:

    Router(config)# snmp-server contact David Davis - Network Admin - 555-1212
    Router(config)# snmp-server location Dallas, Texas, USA
    Router(config)# snmp-server chassis-id Cisco2610-Router


    接下来我们要配置SNMP以便 NMS可以监视它。配置SNMP的方法很多。这里我们只介绍一点配置Cisco路由器和交换机的方法。

    首先,我们需要建立一个识别字符串。识别字符串其实就是访问网络设备的密码。设立一个良好的识别字符串可以让我们更好的读写网络设备,比如:

    Router(config)# snmp-server community MyCommunity972 RW


    现在我们的NMS,不论在网络的什么节点,都可以读取(view)以及写入(change)设备的配置和状态。(对于高级的NMS,我们可以使用SNMP修改设备上的配置,但是这并不是SNMP的主要功能)

    在本例中,我们将网络设备设置为 MyCommunity972 .

    如何配置SNMP发送警报信息?

    在这方面,我们可以使用诸如PRTG等NMS来图形化路由器或者交换机端口的带宽使用情况。但是直接配置的方式也是管理员应该知道的。因此我们就先介 绍一下如何配置路由器和交换机在端口关闭或开启时发警报信息给NMS.首先,我们可以选择一款免费的开源NMS,如OpenNMS ,或者商业NMS,如Ipswitch的 WhatsUp .

    在本例中,我们设置路由器或交换机发送SNMP报文到192.168.1.23主机(NMS),并带有设备的识别字符串,以便我们知道是那个设备出现问题了。我们希望设备端口开启或关闭时,或者有人重新启动设备时发送信息给NMS.以下是设置命令:

    Router(config)# snmp-server host 192.168.1.23 version 2c MyCommunity972
    Router(config)# snmp-server enable traps snmp linkdown linkup coldstart warmstart


    在Cisco IOS 12.0到12.3版本中,存在SNMP漏洞,因此大家要注意不要使用这些版本的Cisco IOS.尽可能在安全的前提下进行配置。

     

     

    ◆◆Cisco snmp配置 ◆◆

    在IOS的Enable状态下,敲入
    config terminal 进入全局配置状态
    Cdp run 启用CDP
    snmp-server community gsunion ro 配置本路由器的只读字串为gsunion
    snmp-server community gsunion rw 配置本路由器的读写字串为gsunion
    snmp-server enable traps 允许路由器将所有 类型SNMP Trap发送出去
    snmp-server host IP-address-server traps trapcomm 指定路由器SNMP Trap的接收者为10.238.18.17,发送Trap时采用trapcomm作为字串
    snmp-server trap-source loopback0 将loopback接口的IP地址作为SNMP Trap的发送源地址
    show running
    copy running start或write terminal 显示并检查配置
    保存配置

    配置Cisco设备的SNMP代理

    配置Cisco设备上的SNMP代理的步骤如下:

    启用SNMP:

    configure terminal

    snmp-server community rw/ro (example: snmp-server community public ro)

    end

    copy running-configstartup-config
    启用陷阱:

    configure terminal

    snmp-server enable traps snmp authentication

    end

    copy running-configstartup-config

    配置snmp
    #conf t
    #snmp-server community cisco ro(只读) ;配置只读通信字符串
    #snmp-server community secret rw(读写) ;配置读写通信字符串
    #snmp-server enable traps ;配置网关SNMP TRAP
    #snmp-server host 10.254.190.1 rw ;配置网关工作站地址

  • 【转】Cisco网络设备的SNMP及Syslog配置参考实例

    2010-05-13 15:24:59

    IOS设备

    在IOS的Enable状态下,敲入
    config terminal 进入全局配置状态

    SNMP配置
    Cdp run 启用CDP
    snmp-server community gsunion ro 配置本路由器的只读字串为gsunion
    snmp-server community gsunion rw 配置本路由器的读写字串为gsunion
    snmp-server enable traps 允许路由器将所有类型SNMP Trap发送出去
    snmp-server host IP-address-server traps trapcomm 指定路由器SNMP Trap的接收者为10.238.18.17,发送Trap时采用trapcomm作为字串
    snmp-server trap-source loopback0 将loopback接口的IP地址作为SNMP Trap的发送源地址


    syslog配置
    1. 必配,配置将日志信息发送到指定服务器(监视服务器)
    logging on 起动log机制
    logging IP-address-server 将log记录发送到10.238.18.17 (CW2K安装机器的IP地址)上的syslog server
    2. 选配,设置日志发送的高级属性
    logging facility local7 将记录事件类型定义为local7
    logging trap warning 将记录事件严重级别定义为从warningl开始,一直到最紧急级别的事件全部记录到前边指定的syslog server.
    logging source-interface loopback0 指定记录事件的发送源地址为loopback0的IP地址
    service timestamps log datetime 发送记录事件的时候包含时间标记
    enable password ******
    line tty 0 4
    password ******
    login local 设置Enable口令和Telnet口令
    show running
    copy running start或write terminal 显示并检查配置
    保存配置

    -------------------------------------------------------------------------------------------------

    logging trap level //指定日志消息的级别

    (0:紧急(Emergencies)
    1:告警(Alerts)
    2:严重的(Critical)
    3:错误(Errors)
    4:警告(Warnings)
    5:通知(Notifications)
    6:信息(Informational)
    7:调试(Debugging))
    logging trap 7 //把调试信息设置为Debug级,记录FTP命令和WWW的URL

    另外可用logging facility命令更改设备号,PIX默认为local4(20)

    //facility标识, RFC3164 规定的本地设备标识为 local0 - local7
    这个是对设备的重要性进行标识而已,跟日志本身没有关系,用默认的local7即可.

    syslog要考虑的主要是哪些日志需要发送到日志服务器上,即日志等级,使用如下命令:
    device(config)#logging trap warning //日志记录级别,可用"?"查看详细内容
    • emergency—Logs only emergency events.
    • alert—Logs alert and more severe events.
    • critical—Logs critical and more severe events.
    • error—Logs error and more severe events.
    • warning—Logs warning and more severe events.
    • notice—Logs notice and more severe events.
    • informational—Logs informational and more severe events.
    • debug—Logs all events, including debug events.
    为了防止日志量太大,一般设置成warning就行了。
    ---------------------------------------------------------------------------------------------------------------


    CatOS设备
    在CatOS的Enable状态下,敲入

    SNMP配置
    set interface sc0 VLAN ID IP address 配置交换机本地管理接口所在VLAN ID,IP地址,子网掩码
    Set cdp enable all 启用CDP
    set snmp community read-only gsunion 配置本交换机的只读字串为public
    set snmp community read-write-all gsunion 配置本交换机的读写字串为private
    set snmp trap server-ip gsunion 指定交换机SNMP Trap的接收者为网管服务器,发送Trap时采用gsunion作为字串
    set snmp trap enable all 将全部类型的SNMP Trap发送出去
    set snmp rmon enable 激活交换机的SNMP RMON功能

    syslog配置
    set logging server IP-address-server 将log记录发送到网管服务器的IP (CW2K安装机器的IP地址)上的syslog server
    set logging level 6 将记录事件严重级别定义为从informational开始,一直到最紧急级别的事件全部记录到前边指定的syslog server
    set logging server facility local7 将记录事件类型定义为local7
    set logging timestamp 发送记录事件的时候包含时间标记
    set logging enable 起动log机制
    set password ******
    set enablepass ******
    设置Enable口令和Telnet口令
    show running
    write terminal 显示并检查配置
    保存配置

    PIX设备

    Logging on 在PIX上面启用日志记录
    Snmp-server community gsunion 为PIX设备配置共同体串gsunion
    Snmp-server enable traps 配置PIX设备将SNMP消息发送到网管服务器
    Snmp-server host server-ip 在PIX设备上面配置SNMP网管服务器
    Logging history warning
    为PIX设备SNMP系统日志消息设置warning级别。

    log信息到一台Syslog服务器

    第一步:指定一台主机接收log信息
      logging host [interface] ip_address [tcp[/port] | udp[/port]] [format emblem]
      例子
      logging host dmz1 192.168.1.5
      可以指定多台服务器来接收log信息,这样当一台服务器不在线的时候其它的服务器仍可以接收信息。
    第二步:设置log级别。
      logging trap severity_level (1-7)
    第三步:如果想在信息中包含设备的ID使用如下命令
      logging device-id {hostname | ipaddress if_name | string text}
      包含特定设备的ID(设备的名字,和特定接口的IP或者一个字串)


    log信息发送到SNMP管理机

    第一步:设置SNMP管理机的IP地址
      snmp-server host [if_name] ip_addr
    第二步:设备其它SNMP服务器的设置,也是必需的
      snmp-server location text
      snmp-server contact text
      snmp-server community key

    通过下面的设置来配置发送log信息到SNMP服务器上。
    第一步
      snmp-server enable traps
    第二步:设置log级别:
      logging history severity_level (1-7)
    第三步:关闭syslog捕获用下面的命令:
      no snmp-server enable traps

    Cisco PIX Syslog 配置说明
    一:启动log服务
    第一步:启动log            
       logging on
      注:By de fault, the logging level is set to 3 (error).
      默认log的级别为3(error)

    第二步:设置log级别     
    logging trap severity_level (1-7)
    第三步:检查log设置     
    show logging

    二:测试log输出
      通过下面几个步骤测试log信息输出:
     第一步:log信息发送到console口。
      logging console 7
      quit
      这个测试会产生下面的syslog信息
      111005: nobody End configuration: OK
      这个信息显示已经退出configureation mode.”111005”是该信息标识号。“nobody”指出你是通过console口登录PIX的。
     第二步:停止输送log信息到console
      no logging console 7
      quit
    三、发送syslog信息到缓存
     第一步:保存显示的信息
      logging buffered severity_level (1-7)
     第二步:查看console口上的信息
      show logging
    第三步:清除缓存中的信息以便接收查看新的信息
      clear logging
     第四步:停止发送log信息到缓存
      no logging buffered
      新的信息到列表的尾部。
    四、把log信息发送到一个telnet会话
     第一步:在PIX的内部配置一个host允许telnet到PIX
      a. 输入下面的命令:
      telnet ip_address [subnet_mask] [if_name]
      For example, if a host has the IP address 192.168.1.2, the command is:
      telnet 192.168.1.2 255.255.255.255
      b.设置一个telnet会话的空闲时间,默认为5分钟,建议值15分钟。
      telnet timeout 15
     第二步:启动一个telnet会话
     第三步:进行configuration模式
      enable
      (Enter your password at the prompt)
      configure terminal
     第四步:开始log设置
      logging monitor severity_level (1-7)
     第五步:发送log信息到该tetlnet会话
      terminal monitor
      该命令功能只发送log信息到当前telnet会话。“Logging monitor”设置所有的telnet会话参数,执行该命令后,log信息发送到每一个单独的telnet会话。
     第六步:使用像ping,web访问等应用触发产生syslog信息发送到telnet 会话窗口。
     第八步:
      terminal no monitor
      no logging monitor

     

  • 【转】HTTP错误及含义

    2010-05-12 09:45:31

    转自:

    http://www.51testing.com/?uid-194313-action-viewspace-itemid-213714

    1xx - 信息提示

    这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。

    100 - 继续。
    101 - 切换协议。
    2xx - 成功

    这类状态代码表明服务器成功地接受了客户端请求。
    200 - 确定。客户端请求已成功。
    201 - 已创建。
    202 - 已接受。
    203 - 非权威性信息。
    204 - 无内容。
    205 - 重置内容。
    206 - 部分内容。
    3xx - 重定向

    客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。
    302 - 对象已移动。
    304 - 未修改。
    307 - 临时重定向。
    4xx - 客户端错误

    发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。
    400 - 错误的请求。
    401 - 访问被拒绝。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示:
    401.1 - 登录失败。
    401.2 - 服务器配置导致登录失败。
    401.3 - 由于 ACL 对资源的限制而未获得授权。
    401.4 - 筛选器授权失败。
    401.5 - ISAPI/CGI 应用程序授权失败。
    401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。
    403 - 禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因:
    403.1 - 执行访问被禁止。
    403.2 - 读访问被禁止。
    403.3 - 写访问被禁止。
    403.4 - 要求 SSL。
    403.5 - 要求 SSL 128。
    403.6 - IP 地址被拒绝。
    403.7 - 要求客户端证书。
    403.8 - 站点访问被拒绝。
    403.9 - 用户数过多。
    403.10 - 配置无效。
    403.11 - 密码更改。
    403.12 - 拒绝访问映射表。
    403.13 - 客户端证书被吊销。
    403.14 - 拒绝目录列表。
    403.15 - 超出客户端访问许可。
    403.16 - 客户端证书不受信任或无效。
    403.17 - 客户端证书已过期或尚未生效。
    403.18 - 在当前的应用程序池中不能执行所请求的 URL。这个错误代码为 IIS 6.0 所专用。
    403.19 - 不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0 所专用。
    403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专用。
    404 - 未找到。
    404.0 -(无) – 没有找到文件或目录。
    404.1 - 无法在所请求的端口上访问 Web 站点。
    404.2 - Web 服务扩展锁定策略阻止本请求。
    404.3 - MIME 映射策略阻止本请求。
    405 - 用来访问本页面的 HTTP 谓词不被允许(方法不被允许)
    406 - 客户端浏览器不接受所请求页面的 MIME 类型。
    407 - 要求进行代理身份验证。
    412 - 前提条件失败。
    413 – 请求实体太大。
    414 - 请求 URI 太长。
    415 – 不支持的媒体类型。
    416 – 所请求的范围无法满足。
    417 – 执行失败。
    423 – 锁定的错误。
    5xx - 服务器错误

    服务器由于遇到错误而不能完成该请求。
    500 - 内部服务器错误。
    500.12 - 应用程序正忙于在 Web 服务器上重新启动。
    500.13 - Web 服务器太忙。
    500.15 - 不允许直接请求 Global.asa。
    500.16 – UNC 授权凭据不正确。这个错误代码为 IIS 6.0 所专用。
    500.18 – URL 授权存储不能打开。这个错误代码为 IIS 6.0 所专用。
    500.100 - 内部 ASP 错误。
    501 - 页眉值指定了未实现的配置。
    502 - Web 服务器用作网关或代理服务器时收到了无效响应。
    502.1 - CGI 应用程序超时。
    502.2 - CGI 应用程序出错。application.
    503 - 服务不可用。这个错误代码为 IIS 6.0 所专用。
    504 - 网关超时。
    505 - HTTP 版本不受支持。

    常见的 HTTP 状态代码及其原因

    200 - 成功。 此状态代码表示 IIS 已成功处理请求。
    304 - 未修改。 客户端请求的文档已在其缓存中,文档自缓存以来尚未被修改过。客户端使用文档的缓存副本,而不从服务器下载文档。
    401.1 - 登录失败。 登录尝试不成功,可能因为用户名或密码无效。
    401.3 - 由于 ACL 对资源的限制而未获得授权。 这表示存在 NTFS 权限问题。即使您对试图访问的文件具备相应的权限,也可能发生此错误。例如,如果 IUSR 帐户无权访问 C:\Winnt\System32\Inetsrv 目录,您会看到这个错误。 有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    187506 (http://support.microsoft.com/kb/187506/) INFO: IIS 4.0 的基础 NTFS 权限
    403.1 - 执行访问被禁止。 下面是导致此错误信息的两个常见原因:
    您没有足够的执行许可。例如,如果试图访问的 ASP 页所在的目录权限设为“无”,或者,试图执行的 CGI 脚本所在的目录权限为“只允许脚本”,将出现此错误信息。若要修改执行权限,请在 Microsoft 管理控制台 (MMC) 中右击目录,然后依次单击属性目录选项卡,确保为试图访问的内容设置适当的执行权限
    您没有将试图执行的文件类型的脚本映射设置为识别所使用的谓词(例如,GET 或 POST)。若要验证这一点,请在 MMC 中右击目录,依次单击属性目录选项卡和配置,然后验证相应文件类型的脚本映射是否设置为允许所使用的谓词。
    403.2 - 读访问被禁止。验证是否已将 IIS 设置为允许对目录进行读访问。另外,如果您正在使用默认文件,请验证该文件是否存在。 有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    247677 (http://support.microsoft.com/kb/247677/) 错误信息:403.2 Forbidden:Read Access Forbidden(403.2 禁止访问:读访问被禁止)
    403.3 - 写访问被禁止。 验证 IIS 权限和 NTFS 权限是否已设置以便向该目录授予写访问权。有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    248072 (http://support.microsoft.com/kb/248072/) 错误信息:403.3 Forbidden:Write Access Forbidden(403.3 禁止访问:写访问被禁止)
    403.4 - 要求 SSL。禁用要求安全通道选项,或使用 HTTPS 代替 HTTP 来访问该页面。如果没有安装证书的 Web 站点出现此错误,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    224389 (http://support.microsoft.com/kb/224389/) 错误信息:HTTP 错误 403、403.4、403.5 禁止访问:要求 SSL
    403.5 - 要求 SSL 128。禁用要求 128 位加密选项,或使用支持 128 位加密的浏览器以查看该页面。如果没有安装证书的 Web 站点出现此错误,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    224389 (http://support.microsoft.com/kb/224389/) 错误信息:HTTP 错误 403、403.4、403.5 禁止访问:要求 SSL
    403.6 - IP 地址被拒绝。您已把您的服务器配置为拒绝访问您目前的 IP 地址。 有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    248043 (http://support.microsoft.com/kb/248043/) 错误信息:403.6 - Forbidden:IP Address Rejected(403.6 - 不可用:IP 地址被拒绝)
    403.7 - 要求客户端证书。您已把您的服务器配置为要求客户端身份验证证书,但您未安装有效的客户端证书。 有关其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    190004 (http://support.microsoft.com/kb/190004/) 错误 403.7 或“Connection to Server Could Not Be Established”(无法建立与服务器的连接)
    186812 (http://support.microsoft.com/kb/186812/) PRB:错误信息:403.7 Forbidden:Client Certificate Required(403.7 禁止访问:要求客户端证书)
    403.8 - 站点访问被拒绝。您已为您用来访问服务器的域设置了域名限制。有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    248032 (http://support.microsoft.com/kb/248032/) 错误信息:Forbidden:Site Access Denied 403.8(禁止访问:站点访问被拒绝 403.8)
    403.9 - 用户数过多。与该服务器连接的用户数量超过了您设置的连接限制。 有关如何更改此限制的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    248074 (http://support.microsoft.com/kb/248074/) 错误信息:Access Forbidden:Too Many Users Are Connected 403.9(禁止访问:连接的用户太多 403.9)
    注意:Microsoft Windows 2000 Professional 和 Microsoft Windows XP Professional 自动设置了在 IIS 上最多 10 个连接的限制。您无法更改此限制。
    403.12 - 拒绝访问映射表。 您要访问的页面要求提供客户端证书,但映射到您的客户端证书的用户 ID 已被拒绝访问该文件。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    248075 (http://support.microsoft.com/kb/248075/) 错误信息:HTTP 403.12 - Access Forbidden:Mapper Denied Access(HTTP 403.12 - 禁止访问:映射表拒绝访问)
    404 - 未找到。 发生此错误的原因是您试图访问的文件已被移走或删除。如果在安装 URLScan 工具之后,试图访问带有有限扩展名的文件,也会发生此错误。这种情况下,该请求的日志文件项中将出现“Rejected by URLScan”的字样。
    500 - 内部服务器错误。 很多服务器端的错误都可能导致该错误信息。事件查看器日志包含更详细的错误原因。此外,您可以禁用友好 HTTP 错误信息以便收到详细的错误说明。 有关如何禁用友好 HTTP 错误信息的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    294807 (http://support.microsoft.com/kb/294807/) 如何在服务器端禁用 Internet Explorer 5 的“显示友好 HTTP 错误信息”功能
    500.12 - 应用程序正在重新启动。 这表示您在 IIS 重新启动应用程序的过程中试图加载 ASP 页。刷新页面后,此信息即会消失。如果刷新页面后,此信息再次出现,可能是防病毒软件正在扫描 Global.asa 文件。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    248013 (http://support.microsoft.com/kb/248013/) 错误信息:HTTP Error 500-12 Application Restarting(HTTP 错误 500-12 应用程序正在重新启动)
    500-100.ASP - ASP 错误。 如果试图加载的 ASP 页中含有错误代码,将出现此错误信息。若要获得更确切的错误信息,请禁用友好 HTTP 错误信息。默认情况下,只会在默认 Web 站点上启用此错误信息。有关如何在非默认的 Web 站点上看到此错误信息的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    261200 (http://support.microsoft.com/kb/261200/) 显示 HTTP 500 错误信息,而不显示 500-100.asp 的 ASP 错误信息
    502 - 网关错误。 如果试图运行的 CGI 脚本不返回有效的 HTTP 标头集,将出现此错误信息。


     

  • my dream

    2010-05-04 21:22:35

       我的小小梦想---开一家服装小店,呵呵~这是自己一直以来的心愿,目前开实体店条件还不具备,之前一直都想在淘宝上开店,一直都没有付诸实践。

       5.1 3天小长假,终于把开店的事情提上日程,放假第一天3点就起床了,大概5点左右到达传说中的四季青,很紧张很激动很兴奋~~以下省略100字~ 3天长假都是在忙碌中度过,没怎么休息,很忙很累但是很幸福~呵呵~这应该就是传说中的--做自己喜欢的事情,永远都不会觉得累!

       借机发挥,推广一下自己的小店,专营日韩系外贸YY~~ http://yangmei19851215.taobao.com

  • 【转】snmpwalk命令常用方法

    2010-04-26 16:37:47

    在日常监控中,经常会用到snmp服务,而snmpwalk命令则是测试系统各种信息最有效的方法,命令格式:

    snmpwalk  -c SNMP读密码 -v 1或2(代表SNMP版本) 交换机或路由器IP地址 OID(对象标示符)

    现总结一些常用的方法如下:

    1、snmpwalk -v 2c -c public 10.103.33.1 .1.3.6.1.2.1.25.1    得到取得windows端的系统进程用户数等

    其中-v是指版本,-c 是指密钥,也就是客户端snmp.conf里面所设置的,下面类同.

    2、snmpwalk -v 2c -c public 10.103.33.1 .1.3.6.1.2.1.25.2.2  取得系统总内存

    3、snmpwalk -v 2c -c public 10.103.33.1 hrSystemNumUsers  取得系统用户数

    4、snmpwalk -v 2c -c public 10.103.33.1 .1.3.6.1.2.1.4.20    取得IP信息

    5、snmpwalk -v 2c -c public 10.103.33.1 system   查看系统信息

    6、snmpwalk -v 2c -c public 10.103.33.1 ifDescr 获取网卡信息

    以上只是一些常用的信息,snmpwalk功能很多,可以获取系统各种信息,只要更改后面的信息类型即可.如果不知道什么类型,也可以不指定,这样所有系统信息都获取到:

    snmpwalk -v 2c -c public 10.103.33.1

  • 【总结】IP地址、子网掩码、网关、DNS(二)

    2010-04-23 17:23:12

  • 【总结】IP地址、子网掩码、网关、DNS(一)

    2010-04-23 17:21:23

  • 【转】IP地址、子网掩码、网关、DNS的关系

    2010-04-23 17:10:26

  • 创建表空间

    2010-04-23 13:40:47

  • 【转】网络管理员必备的网管工具

    2010-04-22 10:56:30

  • 【转】bit与byte的区别(总结分享)

    2010-04-22 10:42:30

  • 【转】Oracle日志文件使用小结

    2010-04-22 09:56:42

  • 【转】Oracle 重要文件系统解释

    2010-04-22 09:53:02

  • 【转】通过v$sqlarea,v$sql查询最占用资源的查询

    2010-04-21 14:52:40

  • 【转】Oracle 10g 常见问题处理

    2010-04-21 14:50:09

  • 【转】ORACLE的索引和约束详解

    2010-04-20 22:35:58

    Oracle的约束

    * 如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约束,但如果某个约束作用于多个字段,
    必须在表级定义约束
    * 在定义约束时可以通过CONSTRAINT关键字为约束命名,如果没有指定,ORACLE将自动为约束建立默认的名称

    定义primary key约束(单个字段)
    create table employees (empno number(5) primary key,...)

    指定约束名
    create table employees (empno number(5) constraint emp_pk primary key,...)

    定义primary key约束(多个字段,在表级定义约束)
    create table employees
    (empno number(5),
    deptno number(3) not null,
    constraint emp_pk primary key(empno,deptno)
    using index tablespace indx
    storage (initial 64K
    next 64K
    )
    )

    ORACLE自动会为具有PRIMARY KEY约束的字段(主码字段)建立一个唯一索引和一个NOT NULL约束,定义PRIMARY KEY约束时可以为它的索引
    指定存储位置和存储参数

    alter table employees add primary key (empno)
    alter table employees add constraint emp_pk primary key (empno)
    alter table employees add constraint emp_pk primary key (empno,deptno)

    not null约束(只能在字段级定义NOT NULL约束,在同一个表中可以定义多个NOT NULL约束)
    alter table employees modify deptno not null/null

    unique约束
    create table employees
    ( empno number(5),
    ename varchar2(15),
    phone varchar2(15),
    email varchar2(30) unique,
    deptno number(3) not null,
    constraint emp_ename_phone_uk unique (ename,phone)
    )

    alter table employees
    add constraint emp_uk unique(ename,phone)
    using index tablespace indx

    定义了UNIQUE约束的字段中不能包含重复值,可以为一个或多个字段定义UNIQUE约束,因此,UNIQUE即可以在字段级也可以在表级定义,
    在UNIQUED约束的字段上可以包含空值.

    foreign key约束

    * 定义为FOREIGN KEY约束的字段中只能包含相应的其它表中的引用码字段的值或者NULL值
    * 可以为一个或者多个字段的组合定义FOREIGN KEY约束
    * 定义了FOREIGN KEY约束的外部码字段和相应的引用码字段可以存在于同一个表中,这种情况称为"自引用"
    * 对同一个字段可以同时定义FOREIGN KEY约束和NOT NULL约束

    定义了FOREIGN KEY约束的字段称为"外部码字段",被FORGIEN KEY约束引用的字段称为"引用码字段",引用码必须是主码或唯一码,包含外部码的表称为子表,
    包含引用码的表称为父表.

    A:
    create table employees
    (.....,
    deptno number(3) NOT NULL,
    constraint emp_deptno_fk foreign key (deptno)
    references dept (deptno)
    )

    如果子表中的外部码与主表中的引用码具有相同的名称,可以写成:
    B:
    create table employees
    (.....,
    deptno number(3) NOT NULL
    constraint emp_deptno_fk references dept
    )

    注意:
    上面的例子(B)中not null后面没有加逗号,因为这一句的contraint是跟在那一列deptno后面的,属于列定义,所以都无需指明列。而A例中的是表定义,需要指明那一列,所以要加逗号,不能在列后面定义,还可以写成:

    create table employees
    (empno char(4),
    deptno char(2) not null constraint emp_deptno_fk references dept,
    ename varchar2(10)
    )
    表定义contraint的只能写在最后,再看两个例子:

    create table employees
    (empno number(5),
    ename varchar2(10),
    deptno char(2) not null constraint emp_deptno_fk references dept,
    constraint emp_pk primary key(empno,ename)
    )

    create table employees
    ( empno number(5),
    ename varchar2(15),
    phone varchar2(15),
    email varchar2(30) unique,
    deptno number(3) not null,
    constraint emp_pk primary key(empno,ename),
    constraint emp_phone_uk unique (phone)
    )

    添加foreign key约束(多字段/表级)
    alter table employees
    add constraint emp_jobs_fk foreign key (job,deptno)
    references jobs (jobid,deptno)
    on delete cascade

    更改foreign key约束定义的引用行为(delete cascade/delete set null/delete no action),默认是delete on action

    引用行为(当主表中一条记录被删除时,确定如何处理字表中的外部码字段):
    delete cascade : 删除子表中所有的相关记录
    delete set null : 将所有相关记录的外部码字段值设置为NULL
    delete no action: 不做任何操作

    先删除原来的外键约束,再添加约束
    ALTER TABLE employees DROP CONSTRAINT emp_deptno_fk;
    ALTER TABLE employees ADD CONSTRAINT emp_deptno_fk FOREIGN KEY(deptno) REFERENCES dept(deptno) ON DELETE CASCADE;

    check约束
    * 在CHECK约束的表达式中必须引用到表中的一个或多个字段,并且表达式的计算结果必须是一个布尔值
    * 可以在表级或字段级定义
    * 对同一个字段可以定义多个CHECK约束,同时也可以定义NOT NULL约束
     
    create table employees
    (sal number(7,2)
    constraint emp_sal_ck1 check (sal > 0)
    )

    alter table employees
    add constraint emp_sal_ck2 check (sal < 20000)

    删除约束

    alter table dept drop unique (dname,loc) --指定约束的定义内容
    alter table dept drop constraint dept_dname_loc_uk --指定约束名

    删除约束时,默认将同时删除约束所对应的索引,如果要保留索引,用KEEP INDEX关键字
    alter table employees drop primary key keep index

    如果要删除的约束正在被其它约束引用,通过ALTER TABLE..DROP语句中指定CASCADE关键字能够同时删除引用它的约束

    利用下面的语句在删除DEPT表中的PRIMARY KEY约束时,同时将删除其它表中引用这个约束的FOREIGN KEY约束:
    alter table dept drop primary key cascade

    禁用/激活约束(禁用/激活约束会引起删除和重建索引的操作)
    alter table employees disable/enable unique email
    alter table employees disable/enable constraint emp_ename_pk
    alter tabel employees modify constraint emp_pk disable/enable
    alter tabel employees modify constraint emp_ename_phone_uk disable/enable

    如果有FOREIGN KEY约束正在引用UNIQUE或PRIMARY KEY约束,则无法禁用这些UNIQUE或PRIMARY KEY约束,
    这时可以先禁用FOREIGN KEY约束,然后再禁用UNIQUE或PRIMARY KEY约束;或者可以在ALTER TABLE...DISABLE
    语句中指定CASCADE关键字,这样将在禁用UNIQUE或PRIMARY KEY约束的同时禁用那些引用它们的FOREIGN KEY约束,如:
    alter table employees disable primary key cascade

    约束数据字典
    all_constraints/dba_constraints/user_constraints 约束的基本信息,包括约束的名称,类型,状态
    (约束类型:C(CHECK约束),P(主码约束),R(外部码约束),U(唯一码约束))
    all_cons_columns/dba/user 约束对应的字段信息
    Oracle的索引
        索引和对应的表应该位于不同的表空间中,oracle能够并行读取位于不同硬盘上的数据,可以避免产生I/O冲突
    B树索引:在B树的叶节点中存储索引字段的值与ROWID。
    唯一索引和不唯一索引都只是针对B树索引而言.
    Oracle最多允许包含32个字段的复合索引

    索引创建策略
    1.导入数据后再创建索引
    2.不需要为很小的表创建索引
    3.对于取值范围很小的字段(比如性别字段)应当建立位图索引
    4.限制表中的索引的数目
    5.为索引设置合适的PCTFREE值
    6.存储索引的表空间最好单独设定

    创建不唯一索引
    create index emp_ename on employees(ename)
    tablespace users
    storage(......)
    pctfree 0;

    创建唯一索引
    create unique index emp_email on employees(email)
    tablespace users;

    创建位图索引
    create bitmap index emp_sex on employees(sex)
    tablespace users;

    创建反序索引
    create unique index order_reinx on orders(order_num,order_date)
    tablespace users
    reverse;

    创建函数索引(函数索引即可以是普通的B树索引,也可以是位图索引)
    create index emp_substr_empno
    on employees(substr(empno,1,2))
    tablespace users;

    修改索引存储参数(与表类似,INITIAL和MINEXTENTS参数在索引建立以后不能再改变)
    alter index emp_ename storage(pctincrease 50);

    由于定义约束时由oracle自动建立的索引通常是不知道名称的,对这类索引的修改经常是利用alter table ..using index语句进行的,而不是alter index语句

    利用下面的语句将employees表中primary key约束对应的索引的PCTFREE参数修改为5
    alter table employees enable primary key using index pctfree 5;

    清理索引碎片
    1.合并索引(只是简单的将B树叶结点中的存储碎片合并在一起,并不会改变索引的物理组织结构)
    alter index emp_pk coalesce;

    2.重建索引(不仅能够消除存储碎片,还可以改变索引的全部存储参数设置,并且可以将索引移动到其它的表空间中,重建索引
    实际上就是再指定的表空间中重新建立一个新的索引,然后删除原来的索引)
    alter index emp_pk rebuild;

    删除索引
    drop index emp_ename;

    如果索引中包含损坏的数据块,或者包含过多的存储碎片,需要首先删除这个索引,然后再重建它.
    如果索引是在创建约束时由oracle自动产生的,可以通过禁用约束或删除约束的方法来删除对应的索引.
    在删除一个表时,oracle会自动删除所有与该表相关的索引.

    索引数据字典
    all_indexes/dba_indexes/user_indexes 索引的基本信息
    all_ind_columns/dba_ind_columns/user_ind_columns 索引对应的字段信息

  • 【转】循序渐进学习Oracle

    2010-04-20 15:41:26

  • 【转】SNMP介绍,OID及MIB库

    2010-04-20 14:24:16

    1.1. SNMP概览
    SNMP的基本知识介绍
    简单网络管理协议(SNMP-Simple Network Management Protocol)是一个与网络设备交互的简单方法。该规范是由IETF在1990年五月发布的RFC 1157中定义的。SNMP通常被认为相当难懂,并且过于复杂,其可用的API似乎在本来非常简单的东西外面封装了大量的东西。现在关于SNMP的书籍又往往只是把它更加复杂化了,而没有解释清楚。
    SNMP对于任何程序设计人员来说是特别易于理解的。总体的简化能够很好地把这个系统简化。一个网络设备以守护进程的方式运行SNMP代理,该守护进程能够响应来自网络的各种请求信息。该SNMP代理提供大量的对象标识符(OID-Object Identifiers)。一个OID是一个唯一的键值对。该代理存放这些值并让它们可用。一个SNMP管理器(客户)可以向代理查询键值对中的特定信息。从程序员的角度看,这和导入大量的全局变量没有多少区别。SNMP的OID是可读或可写的。尽管向一个SNMP设备写入信息的情况非常少,但它是各种管理应用程序用来控制设备的方法(例如针对交换机的可管理GUI)。SNMP中有一个基本的认证框架,能够让管理员发送公共名来对OID读取或写入的认证。绝大多数的设备使用不安全的公共名 "public" 。 SNMP协议通过UDP端口161和162进行通信的。
    注意,我还没有提到MIB!MIB的重要性被大大地夸大了。刚开始时,MIB显得非常复杂,但是它们其实非常简单。OID是数字的和全局的键值对。一个OID看起来和一个IPv6的地址很象,并且不同的厂商有不同的前缀等信息。OID都非常长,使得人们难以记住,或者对他非常感冒。因此,人们就设计了一种将数字OID翻译为人们可读的格式。这种翻译映射被保存在一个被称为 “管理信息基础"(Management Infomation Base) 或MIB的、可传递的无格式文本文件里。使用SNMP或者向SNMP设备查询,你不需要使用MIB,但是,如果没有MIB,你就得猜测你正在查看的数据是什么。某些情况下,不使用MIB也非常简单,例如查看主机名、磁盘使用率数字,或者端口状态信息。其他情况下,就非常困难了,这个时候使用MIB就非常有帮助。对于准备编写的应用程序来说,为了让用户避免妥当安装MIB带来的麻烦,而严格使用数字OID是并不是很少见的。安装一个MIB的动作,只是将他放置到你的SNMP客户端应用软件能够搜索到并进行上述翻译映射工作的某个位置而已。
    SNMP可以按照两种方式来使用:轮询和陷阱。轮询就是说你编写一个应用程序能够设置一个发送给一个SNMP代理查看某些值的SNMP GET请求。这种方法非常有用,因为如果该设备响应了请求,你就得到了你需要的信息,如果该设备没有响应请求,你就能够知道存在某些问题。轮询是网络监控的一种主动形式。另一方面,SNMP陷阱能够被用来进行被动形式的网络监控。SNMP陷阱是通过配置SNMP设备的代理,让他在某些动作发生时联系另一个SNMP代理来实现的
    备,可以配置为在某些事件发生时发送SNMP陷阱。例如,你可以配置Cisco的IOS在某个独立事件(例如链路断开)发生时,或者在任何定义的陷阱事件发生时,发送SNMP陷阱。(IOS:snmp服务器开启了链路断开的snmp陷阱)。当陷阱事件发生时,设备中的snmp代理会发送该陷阱到一个预先配置好的通常成为陷阱主机的目标上。陷阱主机会运行有自己的SNMP代理,该代理能够接受并处理传入的陷阱。这些陷阱的处理由陷阱处理器来完成。陷阱处理器可以用任何语言编写,并且可以通过STDIN(标准输入)传入的来自发送陷阱的信息。该处理器之后可以根据陷阱进行任何想作的事情,例如发送邮件或者你想要的任何事情。
    SNMP被广泛应用在NMS网络管理系统中(Network Management System)。知名的NMS包括BMC的Patrol、CA的Unicenter、Sun Mangegement控制台、IBM的Tivoli Netview、以及全球著名的HP Openview。NMS的目标是提供一个监控和管理所有开启SNMP功能的设备的单一入口。通过配置你的设备代理来接受写访问,你可以从一个应用程序中处理你的网络环境。如果你的整个环境围拢NMS解决方案架构你的环境,你就能无限制地控制、查看你的整个网络。尽管Net-SNMP提供了可用来构建你自己的NMS网管系统的所有工具,我们不会再进一步讨论关于NMS的话题。不过请记住,如果你认为你的SNMP设备厂商没有提供SNMP代理方面的详细信息,很可能是因为他们希望你购买他们的NMS网络管理系统,或者购买能够在另一个NMS平台上使用的插件。
    1.2. SNMP的三大版本
    SNMP的常用版本有三个:SNMPv1、SNMPv2、SNMPv3
    Three different version of SNMP exist: SNMPv1 (RFC’s 1155, 1157, and 1212), SNMPv2c (RFC’s 1901 through 1908), and SNMPv3 (RFC’s 3411 though 3418). The co-existence of all three versions are detailed in RFC 3584.SNMP有三个不同的版本:SNMPv1(RFC 1155、RFC 1157、RFC 1212),SNMPv2c (RFC 1901、1908)以及 SNMPv3 (RFC 3411 - 3418). RFC 3584中详细说明了这三种版本同时共存方面的信息。
    SNMPv1 is the original standard for community based management. SNMPv2 was derived from the SNMPv1 framework but had no message definition, which was later revamped aa SNMPv2c, a community based version of SNMPv2 with a message format similar to SNMPv1. SNMPv2 added several new datatypes (Counter32, Counter64, Gauge32, UInteger32, NsapAdress, and BIT STRING), as well as enhancements to OID tables and the setting of OID values. SNMPv3 is an extensable SNMPv2 framework with a new message format, ACL and security abilities, and remote configuration of SNMP parameters.
    SNMPv1是为基于公共管理的初始标准。SNMPv2是SNMPv1框架下衍生出来的,但是没有定义信息,其后修订为SNMPv2c,一个带有于SNMPv1类似信息格式的给予公共管理的版本。SNMPv2添加了几个新的数据类型(Counter32、Counter64、Gauge32、UInteger32、NsapAdress 以及BIT STRING),以及对OID表和OID值的设置的增强。SNMPv3是一个带有新的信息格式、ACL、安全功能和远处SNMP参数配置的、扩展了SNMPv2框架的版本。
    SNMP is based on several other standards including the Abstract Syntax Notation 1 Basic Encoding Rules (ASN.1 BER) which defines the SNMP used Datatypes and the Structure of Management Information (SMI) which details the grammar used by SNMP MIBs. SMI comes in two varieties: SMIv1 (RFC 1155) and SMIv2 (RFC 2578). SMIv1 is now obsolete and should not be used. If you choose to modify MIBs at some point you’ll need to learn SMIv2 and ASN.1 syntax, but otherwise they are interesting but unnecessary to learn.
    SNMP是基于几个其他规范的,包括定义给予SNMP的数据类型的ASN.1 BER(Abstract Syntax Notation 1 Basic Encoding Rules), 以及详细描述有SNMP MIB使用的语法的管理信息结构(SMI)。SMIv1目前被独立出来,不应当再被使用。如果你选择修改MIB的某些东西,你需要学习SMIv2和ASN.1语法,不过其他情况下你只需要在兴趣时看看他,而不必学习他。
    To this day, SNMPv1 and SNMPv2c are the most commonly used, however due to the insecurity inherent to these protocols read-only access is typical. In general, don’t bother with SNMPv3 unless you really need the added security features.
    现在,SNMPv1和SNMPv2被广泛应用,但是由于这些协议的不安全特性,通常只使用只读访问。通常,除非你确实需要附加安全特性,否则你不需要过多地关注SNMPv3。SNMPv3是具有安全性的通信协议。
    1.3. 本文不涉及的话题
    本文中不会涉及如何编写代理、MIB模块等方面的话题。
    There are several subject we will not be discussing in this paper. These topics include writing agents or sub-agents, writing MIB modules, trap generation and trap sending, synchronous vs asynchronous SNMP coding, and MIB parsing.
    本文中,有几个主题我们不会讨论。这些主题包括编写代理或子代理,编写MIB模块、陷阱生成以及陷阱发送、同步和一步SNMP代码编写,以及MIB解释器。
    Something that scares new or inexperienced coders away from the Net-SNMP documentation is the seemingly constant reference to synchronous and asynchronous applications. Don’t be afraid, thats referring to applications that can’t afford to sit and wait for a response. If your application needs a non-blocking method of handling SNMP traffic, use the asynchronous interface (eg: GUIs, Threads, Forking, etc). Otherwise, just stick with the synchronous interfaces for typical use.
    Net-SNMP中关于同步和异步应用程序的文档,常常会把没有经验的编码新手给吓唬住。别担心,那只是指无法坐等响应的应用程序。如果你的应用程序需要以非阻塞方式处理SNMP数据流,就使用一步接口(例如GUI、线程、forking等)。否则,只需要使用同步接口就可以了。
    Lastly, this document addresses the use of Net-SNMP on UNIX systems only. Please refer to the Net-SNMP website for information regarding development on Win32.
    本文中的后面会针对Unix系统中使用的问题,请参考Net-SNMP网站了解关于在Win32中开发的信息。

    2. MIB和OID
    OID(对象标识符),是SNMP代理提供的具有唯一标识的键值。MIB(管理信息基)提供数字化OID到可读文本的映射。
    2.1. OID
    OID的编写规则和习惯
    SNMP OIDs are laid out in a hierarchy forming unique addresses into a tree similar to the DNS hierarchy. Like many other forms of addressing, OIDs can be used in 2 forms: fully qualified and relative (sometimes called ”relevant”).
    SNMP OID是用一种按照层次化格式组织的、树状结构中的唯一地址来表示的,它与DNS层次相似。与其他格式的寻址方式类型,OID以两种格式加以应用:全名和先对名(有时称为“相关”)
    The fully qualified form. starts from the root and moves outward to the individual value on a device. An example of a fully qualified address is:
    完全验证格式从root根开始,并且向外移到某个设备的独立的质上。例如一个完整验证的地址为:
    This OID could be rewritten in human readable form. as:
    该OID可用人们可读的方式重写为:
    All fully qualified OIDs will begin with .iso.org.dod.internet.private represented numerically as .1.3.6.1.4. Almost all OIDs will then be followed by enterprises (.1) and a unique number for the vendor as assigned by the Internet Assigned Numbers Authority (IANA). In the example OID 789 represents the vendor ID for the Network Appliance Corporation (NetApp). Everything beyond the vendor ID is based on the vendors implementation and may vary between implementations. Please note the prefixing dot before iso. Similar to the trailing dot in DNS, properly qualified IODs begin with a dot representing the root.
    所有完全验证OID都有 .iso.org.dod.internet.private 开始,数字表达为: .1.3.6.1.4. 。几乎所有的OID都会跟上企业(.1)和由IANA(互联网编号分配中心分配的)唯一的厂商标号。例如OID 789表示Network Appliance格式的厂商编号( NetApp )。厂商编号后面的是基于厂商实现的功能,并且各不相同。请注意,在iso.前面的 . ` ,与DNS中的后点相似,正确验证的OID是有一个表示根的前缀 `. 开始的。
    The complete list of enterprise assignments can be found at the IANA website: http://www.iana.org/assignments/enterprise-numbers
    IANA网站上找到企业分配完整的清单 : http://www.iana.org/assignmenets/enterprise-numbers
    The relative form. of an OID, on the other hand, begins from the enterprises value and leaves all the implied addressing off. So we can use the relative form. of the above OID as enterprises.netapp.netapp1.raid.diskSummary.diskSpareCount.0 or numerically as .1.789.1.6.4.8.0 .
    OID的相对格式,从企业值开始,略过所有的隐含地址。因此,我们可以用相对地址 enterprises.netapp.netappl.raid.diskSUmmary.diskSpaceCount.0 来表示上述的OID,或者用数字格式 .1.789.6.4.8.0 .
    A common form. of writing OIDs is by the name of the MIB and a unique key defined within the MIB. For instance, we could rewrite the above OID into the condensed form. NETWORK-APPLIANCE-MIB::diskSpareCount.0 . This condensed form. follows the convention of MIB Name::Unique Key.instance. Some keys, while unique, can be represented by multiple instances of that key, and thus all OIDs end with an instance value. This is why you’ll notice that most OIDs end with a .0 .
    写OID的常用格式是用MIB名称和在MIB中定义的唯一键值。例如,我们可以用简写的格式重写上述OID:
    NETWORK-APPLIANCE-MIB::diskSpareCount.0
    MIB中OID的书写格式规则为::MIB Name::唯一键值.instance.
    某些唯一键值,可用多个实例表示,这样所有的OID都以实例值结尾。这就是为什么你得注意到大多数OID都是以一个 .0 结尾的。

    2.2. MIB
    MIB介绍
    The structure of a MIBs internals are a little strange and foreign at first, but it’s structured well enough that you can poke through it pretty intelligently without really knowing what your doing. The structure of a MIB comes from the Structure of Management Information (SMI) standard detailed in IETF RFC 1155 and 2578. If you choose to modify or write your own MIBs you’ll benefit from understanding SMI before hacking much on MIBs.
    MIB的内部结构刚开始时会让人感觉有些奇怪和不好理解,不过它的结构非常好,你可以在不懂的情况下一个一个看进去。MIB的结构来源于IETF RFC1155和2578定义的管理信息结构。如果你想要修改或编写自己的MIB,在动手前理解SMI非常有帮助。
    Lets look at the header of a MIB to get a better idea of how they work:
    为了更好地理解他们是怎样工作的,我们先来看看MIB的头:
    -- PowerNet-MIB {iso org(3) dod(6) internet(1) private(4)
    -- enterprises(1) apc(318) }

    PowerNet-MIB DEFINITIONS ::= BEGIN

    IMPORTS
    enterprises, IpAddress, Gauge, TimeTicks FROM RFC1155-SMI
    DisplayString FROM RFC1213-MIB
    OBJECT-TYPE FROM RFC-1212
    TRAP-TYPE FROM RFC-1215;

    apc OBJECT IDENTIFIER ::= { enterprises 318 }
    products OBJECT IDENTIFIER ::= { apc 1 }
    apcmgmt OBJECT IDENTIFIER ::= { apc 2 }

    Comments can be inserted into a MIB by prepending them with two dashes. In the header the declaration BEGIN starts off the MIB. Imports can be used to pull information from other MIBs, typically those mandated by the MIB-II standard.
    可以用行开头为 -- 的方法在MIB中加入注释
    头部用 BEGIN`声明来开始MIB的定义
    `Imports 可用来从其他MIB中提取信息,通常用它来提取MIB-II规范要求的内容
    The MIB lays out the structure of OID addresses starting from the enterprises value. Here the enterprise value 318 maps to ”apc” (relative address .1.318). Typically then several categories are defined. Here we see 2 categories: products (.1.318.1) and apcmgmt (.1.318.2). Notice that in the curly braces two values are specified, its parent address followed by its address. So the products identifier is parented by the apc identifier which is parented by the enterprises identifier, so on and so forth. This type of categorization and subcategorizing will typically continue on in the header of the MIB for awhile segmenting the available keys into tight subgroupings. By segmenting values out in this way it makes the available keys easier to navigate.
    MIB放置从enterprise值开始的OID地址的结构。在此,enterprise值是318, 对应 "apc" (相对地址为 .1.318)。 通常之后会定义几个类别。注意在花括号间定义的两个值,其父地址后面跟一个它自己的地址。因此产品标识符有apc标识符表示,其父为enterprise标识符,以此类推。类别和自类别的类型通常跟在MIB头的后面,并且把有用的键值分割为子组。通过分段,各种值分别被列出,这样可用的值更容易浏览。
    The real meat of the MIB is in the description of object types. Here’s an example of a integer key:
    MIB的真正好处在于对象类型的描述。以下是一个整形键值的例子:
    1. upsBasicOutputStatus OBJECT-TYPE
    2. SYNTAX INTEGER {
    3.    unknown(1),
    4.    onLine(2),
    5.    onBattery(3),
    6.    onSmartBoost(4),
    7.    timedSleeping(5),
    8.    softwareBypass(6),
    9.    off(7),
    10.    rebooting(8),
    11.    switchedBypass(9),
    12.    hardwareFailureBypass(10),
    13.    sleepingUntilPowerReturn(11),
    14.    onSmartTrim(12)
    15. }
    16. ACCESS read-only
    17. STATUS mandatory
    18. DESCRIPTION
    19.    "The current state of the UPS. If the UPS is unable
    20.     to determine the state of the UPS this variable is set
    21.     to unknown(1)."
    22. ::= { upsBasicOutput 1 }
    复制代码
    Here is defined the upsBasicOutputStatus key with a return type of INTEGER. The returned integer maps to one of 12 different return values as listed. Notice that in the MIB a description of the key is provided. These descriptions can be extremely useful in determining which objects can best provide the data you want, especially if you don’t have MIB documentation supplied by the vendor.
    在此定义了一个具有整型返回值的upsBasicOutputStatus键值。返回的整型对应到列出的12个不同的数值中的一个。注意在MIB中,提供了该键值的描述。在确定那个对象能够提供最好地你需要的数据时,特别有帮助,特别是当厂商没有提供MIB文档的情况下。
    Notice also that the last line of the object type description includes the numeric value 1 with upsBasicOutput as the parent. If we follow this parenting backwards in the MIB we’d find that upsBasicOutput has the value 1 and is parented by upsOutput which has the value 4 and is parented by ups which has a value of 1, which is parented by hardware which has a value of 1, which is parented by products with a value of 1 which is parented by apc with a value of 318, which is parented by enterprises with a value of 1. So, if we put all that mapping together we get a relative address for the key upsBasicOutputStatus of .1.318.1.1.1.4.1.1.0. Remember that the trailing .0 represents the first instance of the key. Applications called MIB Browsers can easily parse a MIB and make navigation much quicker than flipping through the file in vim, but don’t be fooled into thinking it’s difficult without such a tool.
    注意对象类型描述的最后一行包括有数值1,其父为数字为1的upsBasicOutput。如果我们按照这个父节点返推,我们会发现upsBasicOutput的值为1,并且其父节点是值为4的upsOutput, upsOutput的父节点是值为1的ups,upsOutput的父节点是值为1的hardware, hardware的父节点是值为1的products,products的父节点是值为318的apc,apc的父节点的是值为1的enterprise。因此,如果我们我们把所有的对应关系合起来,我们就得到 .1.319.1.1.1.4.1.1.0的upsBasicOutputStatus键值的相对地址。记住末尾的.0表示该键值的第一个实例。MIB浏览器这样的应用程序可以简化MIB解析,它能够比通过vim浏览文件的方式更加快捷地浏览,不过不要以为没有这样的工具就非常困难了。
    So, whats really important to notice here is that the MIB is really just providing us with a road map of the OIDs available on the agent we wish to get values from. A MIB describes both where to find a value and what it returns. We can still interface with a device without the MIB, it’s just much easier when you get a return of ”Up” instead of ”1”. By leveraging the options of the Net- SNMP CLI tools you can decide just how you wish to return output which will be different if your just using the tool from the command line (where ”Up” is preferable) or if your calling the tool from a script. (where ”1” is preferable).
    因此,在这里真正需要注意的是,MIB其实只是提供给我们一张我们想从某个SNMP代理中获得的可用OID的各种值的地图。一个MIB描述了在哪里找某个值、以及返回结果是什么。我们可以不用MIB与设备进行交互,只不过在理获得'Up'的返回值,要比‘1’的返回值要简单的多。通过利用Net-SNMP命令行工具,你可以决定你希望返回结果的输出样式(这种方式下使用“Up"这样的格式更好),或者你用脚本调用工具时(这种方式下使用”1“的格式就更好)。

    2.3. OID数据类型
    SMI定义的OID返回值的数据类型。
    SMI defines a fixed number of datatypes which are returned by OIDs. These datatypes include:
    SMI定义了一定数量的OID返回的数据类型。这些数据类型包括:
    Integer 整型
    Signed 32bit Integer (values between -2147483648 and 2147483647). 有符号32位整数(值范围: -2147483648 - +2147483648)
    Integer32
    Same as Integer. 与Integer相同。
    UInteger32
    Unsigned 32bit Integer (values between 0 and 4294967295). 无符号32位整数(值范围:0-4294967295).
    Octet String
    Arbitrary binary or textual data, typically limited to 255 characters in length. 任意二进制或文本数据,通常长度限制在255个字符内。
    Object Identifier
    An OID. 一个OID。
    Bit String
    Represents an enumeration of named bits. This is an unsigned datatype. 表示取名的位的枚举。这是一个无符号的数据类型。
    IpAddress
    An IP address. 一个IP地址。
    Counter32
    Represents a non-negative integer which monotonically increases until it reaches a maximum value of 32bits-1 (4294967295 dec), when it wraps around and starts increasing again from zero. 表示一个非负的整数(可递增到32位最大值-1),然后恢复并从0开始递增。
    Counter64
    Same as Counter32 but has a maximum value of 64bits-1. 与Counter32相同,最大值为64位的最大值-1。
    Gauge32
    Represents an unsigned integer, which may increase or decrease, but shall never exceed a maximum value. 表示无符号整数,可增加或减少,但是不超过最大值。
    TimeTicks
    Represents an unsigned integer which represents the time, modulo 2ˆ32 (4294967296 dec), in hundredths of a second between two epochs. 表示代表数据的一个无符号整数,2^32取模(4294967296),两个值之间为百分之一秒。
    Opaque
    Provided solely for backward-compatibility, its no longer used. 提供向下兼容,不再使用的数据类型
    NsapAddress
    Represents an OSI address as a variable-length OCTET STRING. 表示一个用变长八进制字符窗表示的OSI地址。

    Net-SNMP tools will report the datatype when returning an OID unless you otherwise disregard it. As an example of that you’ll see:
    Net-SNMP工具在返回一个OID时会包括其数据类型,除非你不想要他。以下是一个例子:
    SNMPv2-MIB::sysContact.0 = STRING: Ben Rockwood
    IF-MIB::ifPhysAddress.1 = STRING: 0:c0:b7:63:ca:4c
    SNMPv2-MIB::sysUpTime.0 = Timeticks: (47372422) 5 days, 11:35:24.22
    IF-MIB::ifAdminStatus.1 = INTEGER: up(1)
    SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.318.1.3.7
    RFC1213-MIB::atPhysAddress.1.1.10.10.1.1 = Hex-STRING: 00 50 73 28 47 A0
    RFC1213-MIB::atNetAddress.1.1.10.10.1.1 = Network Address: 0A:0A:01:01
    IF-MIB::ifSpeed.1 = Gauge32: 10000000
    SNMPv2-MIB::snmpInPkts.0 = Counter32: 316
    SNMPv2-MIB::snmpOutPkts.0 = Counter32: 314

    This is a fairly typical spread of datatypes returned by Net-SNMP tools. Notice that some values are being automatically interpreted by Net-SNMP, such as the sysUpTime and ifAdminStatus. The MIB was used when these values were returned and Net-SNMP was nice enough to find the return value in the MIB and give us the textual representation of the value.
    这是一个相当典型的由Net-SNMP工具返回的数据类型表单。注意有些值已经由Net-SNMP自动解释了,比如sysUpTime和ifAdminStatus。这些值返回时使用到MIB,Net-SNMP会在MIBzhong找到返回值,并且为我们提供该值的文本表示。

    2.4. MIB II
    MIB II
    IETF RFC 1213 ”defines the second version of the Management Information Base (MIB-II) for use with network management protocols in TCP/IP-based internets.” All SNMP agent and tool distributions should include MIBs that will comply with MIB-II and all devices should at the very least return values that comply with the MIB-II standard.
    Within the MIB-II standard several OID groups are defined, including:
    The System Group
    Basic system identification and information OIDs such as sysDescr, sysContact, sysName, SysLocation, etc. (Reported by Net-SNMP in SNMPv2-MIB)
    The Interfaces Group
    Network Interface information such as ifDescr, ifType,ifSpeed, ifAdminStatus, etc. (Reported by Net-SNMP in IF-MIB)
    The Address Translation Group
    Address Translation (AT) information mapping Physical to Logical addressing such as atNetAddress, atPhysAddress,etc. (Reported by Net-SNMP in RFC1213-MIB)
    The IP Group
    IP stats and settings such as ipInReceives, ipForwarding, ip-InAddrErrors, etc. (Reported by Net-SNMP in IP-MIB)
    The ICMP Group
    ICMP stats and settings such as icmpInMsgs, icmpIn-Errors, icmpInRedirects, etc. (Reported by Net-SNMP in IP-MIB)
    The TCP Group
    TCP stats and settings such as tcpActiveOpens, tcpPassiveOpens,tcpInErrs, etc. (Reported by Net-SNMP in TCP-MIB)
    The UDP Group
    UDP stats and settings such as udpInDatagrams, udpIn-Errors, etc. (Reported by Net-SNMP in UDP-MIB)
    The EGP Group
    EGP stats and settings (if the device support EGP) such as egpNeighAs, egpNeighMode, etc (Reported by Net-SNMP in RFC1213-MIB)
    The Transmission Group
    Device specific media transmition stats and settings(Reported by Net-SNMP in RFC1213-MIB or your vendor MIB)
    The SNMP Group
    SNMP stats and settings such as snmpInPkts, snmp-InASNParseErrs, snmpInTraps, etc. (Reported by Net-SNMP in SNMPv2-MIB)
    If you do a default walk of an SNMP device the MIB-II data should be returned. All data with the exception of the EGP and Transmission groups are requirements of the standard. For most networking devices such as routers this information is usually sufficient to provide most of the information you could want.
    2.5. 为Net-SNMP添加MIB
    如何为Net-SNMP添加MIB信息
    Additional MIBs can be added to your Net-SNMP installation by simply copying them into the $(PREFIX)/share/snmp/mibs directory. MIBs should be (re)named to follow the convention (MIB NAME).txt for clarity. You can find the MIBs proper name on the first uncommented line of the MIB (eg: Name- MIB DEFINITIONS ::= BEGIN).
    For example, if you downloaded MIB for the JetDirect Management Card found on HP LaserJet printers it might have been named something like ”hpjetdirect. mib”. The header of the MIB looks like the following:
    -- (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1997.
    -- LaserJet 5Si Printer Model Specific MIB.
    --
    LaserJet5Si-MIB DEFINITIONS ::= BEGIN

    This MIB should be renamed to ”LaserJet5Si-MIB.txt” and copied into the Net-SNMP mibs/ directory.
    By following this convention it assures greater clarity when utilizing the various MIBs and a consistency with all other installed MIBs.
    MIBs can be specified by a command line tool using the -m argument or the MIBS environmental variable for libsnmp applications including the PERL module. MIBs can be referenced locally by supplying a proper path (ie: - m ”./MY MIB.txt”) or globally by supplying the MIB name without the .txt suffix (ie: -m ”MY MIB”) if it’s located in the Net-SNMP MIBs directory.
  • 【转】释放临时表空间实例

    2010-04-16 16:38:05

    转自:

    http://blog.csdn.net/47522341/archive/2009/02/05/3864171.aspx

    临时表空间作用
    Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。

    重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。

    网上有人猜测在磁盘空间的分配上,oracle使用的是贪心算法,如果上次磁盘空间消耗达到1GB,那么临时表空间就是1GB。也就是说当前临时表空间文件的大小是历史上使用临时表空间最大的大小。

    临时表空间的主要作用:

    索引create或rebuild

    Order by 或 group by

    Distinct 操作

    Union 或 intersect 或 minus

    Sort-merge joins

    analyze

    查看临时表空间大小
    查看临时表文件大小和已使用空间

    select t1."Tablespace" "Tablespace",
    t1."Total (G)" "Total (G)",
    nvl(t2."Used (G)", 0) "Used(G)",
    t1."Total (G)" - nvl(t2."Used (G)", 0) "Free (G)"
    from
    (
    select tablespace_name "Tablespace", to_char((sum(bytes/1024/1024/1024)),'99,999,990.900') "Total (G)"
    from dba_temp_files
    group by tablespace_name
    union
    select tablespace_name "Tablespace", to_char((sum(bytes/1024/1024/1024)),'99,999,990.900') "Total (G)"
    from dba_data_files
    where tablespace_name like 'TEMP%'
    group by tablespace_name
    ) t1,
    (
    select tablespace, round(sum(blocks)*8/1024) "Used (G)" from v$sort_usage
    group by tablespace
    ) t2
    where t1."Tablespace"=t2.tablespace(+)

     

    查看当前临死表使用空间大小与正在占用临时表空间的sql语句

    select sess.SID,  segtype, blocks*8/1000 "MB" ,sql_text
    from v$sort_usage sort, v$session sess,v$sql sql
     where sort.SESSION_ADDR = sess.SADDR
     and sql.ADDRESS = sess.SQL_ADDRESS
      order by blocks desc;

     

    select 'the ' || name || ' temp tablespaces ' || tablespace_name ||
           ' idle ' ||
           round(100 - (s.tot_used_blocks / s.total_blocks) * 100, 3) ||
           '% at ' || to_char(sysdate, 'yyyymmddhh24miss')
      from (select d.tablespace_name tablespace_name,
                   nvl(sum(used_blocks), 0) tot_used_blocks,
                   sum(blocks) total_blocks
              from v$sort_segment v, dba_temp_files d
             where d.tablespace_name = v.tablespace_name(+)
             group by d.tablespace_name) s,
           v$database;

    修改临时文件大小
    select 'ALTER database TEMPFILE  ' || file_name || ' resize 100M ;'
      from dba_temp_files
     where tablespace_name = 'ONLYDWTEMP';

     

    ALTER database TEMPFILE  '/oradata/ONLYDWTEMP06.dbf' resize 100M ;

    ALTER database TEMPFILE  '/oradata/ONLYDWTEMP07.dbf' resize 100M ;

    ALTER database TEMPFILE  '/oradata/ONLYDWTEMP08.dbf' resize 100M ;

    ALTER database TEMPFILE  '/oradata/ONLYDWTEMP09.dbf' resize 100M ;

    ALTER database TEMPFILE  '/oradata/ONLYDWTEMP10.dbf' resize 100M ;

    ALTER database TEMPFILE  '/oradata/ONLYDWTEMP01.dbf' resize 100M ;

    ALTER database TEMPFILE  '/oradata/ONLYDWTEMP02.dbf' resize 100M ;

    ALTER database TEMPFILE  '/oradata/ONLYDWTEMP03.dbf' resize 100M ;

    ALTER database TEMPFILE  '/oradata/ONLYDWTEMP04.dbf' resize 100M ;

    ALTER database TEMPFILE  '/oradata/ONLYDWTEMP05.dbf' resize 100M ;

     

    SQL> ALTER database TEMPFILE  '/oradata/ONLYDWTEMP09.dbf' resize 100M ;

     

    ALTER database TEMPFILE  '/oradata/ONLYDWTEMP09.dbf' resize 100M

     

    ORA-03297: file contains used data beyond requested RESIZE value

    创建新的临时表空间
    SQL> create temporary tablespace TEMP1 TEMPFILE '/oradata/TEMP1_01.dbf' size 100M;

     

    Tablespace created

     

    SQL> create temporary tablespace TEMP2 TEMPFILE '/oradata/TEMP2_01.dbf' size 100M;

     

    Tablespace created

    将当前临时表空间指定为新的临时表空间
    SQL> alter database default temporary tablespace TEMP1;

     

    Database altered

    删除旧的临时表空间
    SQL> drop tablespace ONLYDWTEMP including contents and datafiles;

     

    Tablespace dropped

    检查当前用户的临时表空间
    9i之前,如果一个数据库用户没有被指定默认临时表空间,那么oracle就会使用system表空间作为该用户的临时表空间,这是很危险的。在9i里边,database可以被指定一个默认临时表空间。这样如果数据库用户没有被明确指定临时表空间,oracle9i就会自动指定database的默认临时表空间作为该用户的临时表空间。

    我们可以通过下面的语句来查询数据库的默认临时表空间。

    select * from database_properties where property_name = 'DEFAULT_TEMP_TABLESPACE';

    如下语句可以查询数据库用户的临时表空间。

    select username,default_tablespace,temporary_tablespace from dba_users

    如果删除了用户的临时表空间,而这个临时表空间又不是默认临时表空间(如果是数据库的默认临时表空间是删不掉的),用户的临时表空间不会自动转换到数据库的默认临时表空间上。这时如果使用该用户登陆,并执行查询用到临时空间,就会报错。解决方式就是将用户的临时表空间修改过来。

     

    SQL> alter user CTL temporary tablespace TEMP1;

     

    User altered

     

    SQL> alter user ODS temporary tablespace TEMP2;

     

    User altered

     

    select username,default_tablespace,temporary_tablespace from dba_users

    user
     tablespace
     temporary tablespace
     
    SCOTT
     SYSTEM
     ONLYDWTEMP
     
    CTL
     CTL
     TEMP1
     
    ODS
     ODSD
     TEMP2
     

     

    SQL> drop tablespace TEMP2 including contents and datafiles;

     

    Tablespace dropped

     

    select username,default_tablespace,temporary_tablespace from dba_users

    user
     tablespace
     temporary tablespace
     
    SCOTT
     SYSTEM
     ONLYDWTEMP
     
    CTL
     CTL
     TEMP1
     
    ODS
     ODSD
     TEMP2
     

     

    SQL> conn ods/ods@test_BI_DW

    Connected to Oracle9i Enterprise Edition Release 9.2.0.8.0

    Connected as ods

     

    SQL> select  do.object_name from dba_objects do, dba_objects db order by 1;

    Tablespace TEMP2 not found

     

     

    SQL> alter user ODS temporary tablespace TEMP1;

     

    User altered

     

    以上的方法只是暂时释放了临时表空间的磁盘,是治标但不是治本的方法。真正的治本方法是找出数据库中消耗资源比较大的sql语句,然后对其进行优化处理。

    Select se.username,
           se.sid,
           su.extents,
           su.blocks * to_number(rtrim(p.value)) as Space,
           tablespace,
           segtype,
           sql_text
      from v$sort_usage su, v$parameter p, v$session se, v$sql s
     where p.name = 'db_block_size'
       and su.session_addr = se.saddr
       and s.hash_value = su.sqlhash
       and s.address = su.sqladdr
     order by se.username, se.sid

     

Open Toolbar