oracle里的常用命令

[不指定 2007/03/21 17:32 | by ipaddr ]
第一章:日志管理

1.forcing log switches
sql> alter system switch logfile;

2.forcing checkpoints
sql> alter system checkpoint;

3.adding online redo log groups
sql> alter database add logfile [group 4]
sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo') size 1m;

NTop安装摘要

[不指定 2007/03/21 15:10 | by ipaddr ]
NTop安装摘要

首先,需安装好GD库和GD-devel

1.安装
useradd ntop
download
./cofigure
make
make install

start:
chown -R ntop.ntop /usr/local/var/ntop/
chown -R ntop.ntop /usr/local/share/ntop/
reboot
/usr/local/bin/ntop -A
设置管理员密码(WEB管理时需要)
/usr/local/bin/ntop -u ntop -w portnum -c -d
(Ipaddr提醒:需要带上-c参数,否则,ntop只统计当前活跃的主机的流量)


2.配置NetFlow
http://host:port/
Plugins->NetFlow->Active 激活NetFlow
Plugins->NetFlow->Configure 配置网口,新增一个设备,端口默认是9996
Plugins->NetFlow->Statistics NetFlow状态

3.
如果Cisco Router是做NAT的话,Router本身会有两个IP,需要将Router的两个口的IP都设置为LocalIP:
假设外网IP是10.0.1.X,内网IP是192.168.1.X,则在Plugins->NetFlow->Configure设置内网IP为
192.168.1.X,同时,修改启动参数,带上-m 10.0.1.0/255.255.255.0(可以WEB界面配置)
1、查看表空间的名称及大小
  select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size

  from dba_tablespaces t, dba_data_files d

  where t.tablespace_name = d.tablespace_name

  group by t.tablespace_name;

  2、查看表空间物理文件的名称及大小

  select tablespace_name, file_id, file_name,

  round(bytes/(1024*1024),0) total_space

  from dba_data_files

  order by tablespace_name;

  3、查看回滚段名称及大小

  select segment_name, tablespace_name, r.status,

  (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,

  max_extents, v.curext CurExtent

  From dba_rollback_segs r, v$rollstat v

  Where r.segment_id = v.usn(+)

  order by segment_name ;

  4、查看控制文件

  select name from v$controlfile;

  5、查看日志文件

  select member from v$logfile;

  6、查看表空间的使用情况

  select sum(bytes)/(1024*1024) as free_space,tablespace_name

  from dba_free_space

  group by tablespace_name;

  SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,

  (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"

  FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C

  WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;

  7、查看数据库库对象

  select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;

  8、查看数据库的版本

  Select version FROM Product_component_version

  Where SUBSTR(PRODUCT,1,6)='Oracle';

  9、查看数据库的创建日期和归档方式

  Select Created, Log_Mode, Log_Mode From V$Database;

  10、捕捉运行很久的SQL

  column username format a12

  column opname format a16

  column progress format a8

  select username,sid,opname,

  round(sofar*100 / totalwork,0) || '%' as progress,

  time_remaining,sql_text

  from v$session_longops , v$sql

  where time_remaining <> 0

  and sql_address = address

  and sql_hash_value = hash_value

SQL*Plus中缓冲区命令列表

[不指定 2007/03/20 18:34 | by ipaddr ]
格式:
命令-------缩写-------作用
append 文本-------A 文本-------添加文本到当前行尾
change/旧文本/新文本-------C/旧文本/新文本-------在当前行用新的文本替换旧的文本
change/文本-------C/文本-------从当前行删除文本
del-------无-------删除当前行
del n-------无-------删除第n行
del n m-------无-------删除第n到m行
del n *-------无-------删除第n到当前行
del n last-------无-------删除第n行到最后一行
del *-------无-------删除当前行
Del * n-------无-------删除当前行到第n行
Del * last-------无-------删除当前行到最后一行
Del last-------无-------删除最后一行
input-------I-------在当前行之后添加多行,input会提示输入每一行
input 文本-------i 文本-------在当前行之后添加一行
List-------L-------显示缓冲区中所有行
List n-------L n-------显示缓冲区中第n行
List n m-------L n m-------显示缓冲区中第n到第m行
List n *-------L n *-------显示缓冲区中第n行到当前行
List n last-------L n last-------显示缓冲区中第n行到最后一行
List *-------L *-------显示缓冲区中当前行
List * n-------L * n-------显示缓冲区中当前行到第n行
List * last-------L * last-------显示缓冲区中当前行到最后一行
List last-------L last-------显示缓冲区中最后一行
Run-------R-------显示并执行当前缓冲区的命令,并使缓冲区的最后一行成为当前行
/-------无-------执行当前缓冲区的命令,不显示缓冲区命令
行号-------无-------设置缓冲区的某一行为当前行
      Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。
  我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。
  除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。
  下面就介绍一下一些常用的sql*plus命令:

有以下几种启动方式:
1、startup nomount
  非安装启动,这种方式启动下可执行:重建控制文件、重建数据库

  读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
 

2、startup mount dbname
  安装启动,这种方式启动下可执行:
  数据库日志归档、
  数据库介质恢复、
  使数据文件联机或脱机,
  重新定位数据文件、重做日志文件。

  执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,
  但此时不对数据文件和日志文件进行校验检查。


3、startup open dbname
  先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,
  这种方式下可访问数据库中的数据。


4、startup,等于以下三个命令
  startup nomount
  alter database mount
  alter database open


5、startup restrict
  约束方式启动
  这种方式能够启动数据库,但只允许具有一定特权的用户访问
  非特权用户访问时,会出现以下提示:
  ERROR:
  ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用


6、startup force
  强制启动方式
  当不能关闭数据库时,可以用startup force来完成数据库的关闭
  先关闭数据库,再执行正常启动数据库命令


7、startup pfile=参数文件名
  带初始化参数文件的启动方式
  先读取参数文件,再按参数文件中的设置启动数据库
  例:startup pfile=E:\Oracle\admin\oradb\pfile\init.ora


8、startup EXCLUSIVE
============================================
有三种启动方式:
1、shutdown normal
  正常方式关闭数据库。


2、shutdown immediate
  立即方式关闭数据库。
  在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,
  而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),
  当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。


3、shutdown abort
  直接关闭数据库,正在访问数据库的会话会被突然终止,
  如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。

  白云:天也不好了,房也不少了,还没抛的趁早了,小心别让人给套牢了。

  老根:结婚的要翻倍,生孩子的不能受罪,再过两年还有奥运会,我看买房呀,还得排队!

  白云:买房不是自住,总想一夜暴富,按说赚点就该止步,奈何贪心总是无度。小心房崩了你藏身无处,本钱赔光了要先走一步。

  老根:这年头,撑死胆大的,饿死胆小的,赔的是自住的,赚的是恶炒的。哪怕你伤天害理无恶不作,给俩钱儿,就有给你叫好的!

  白云:这日子没法过了,我那儿子啊,平日里能言善辩,最近却十分心烦,为娘的看着他的苦脸,心里头相当地难过不堪!

  老根:大妹子,干啥愁眉苦脸的?

  白云:大哥,别提了,我那儿子,书没少念,钱不少赚,娶个老婆柳眉杏眼,生个儿子粉皮嫩脸,一家人生活是其乐无边。上半年买套房子一百多万,全家人勒紧了裤子偿还贷款,谁曾想世事难料,风云突变,单位里效益不好,又要裁员,全家老小要看病吃饭,这边银行跟着屁股催款。我那儿子已经是不思茶饭,我瞧着这把老骨头还能动弹,想赚点小钱给儿子分担。大哥,你本事可大了,你给俺找个活干吧?

  老根:年轻时对她无比暗恋,怎奈她对我瞧不上眼,如今阿蒙已非当年,炒房子让我挺直腰杆,下决心我要雪中送炭,再咋样也要露露老脸。大妹子,你别客气。你说说,你想做啥样工作,看看我给你介绍一个。

  白云:大哥,我那点啥你还不知道啊。想当年啊,我那张脸是沉鱼落雁,往人堆里一站那是金光闪闪(老根:那是鱼鳞!)。放在过去,做个明星啥的都十分扎眼。唉,现如今你看搁哪做个迎宾啥的我也不嫌!

  老根:拉倒吧,就你这张脸啊,还迎宾呢?你瞅你一脸褶子,比松针还密,你搁那一站就一迎客松!

  白云:大哥,你咋能这样说话呢?伤自尊了,走了!

  老根:大妹子,别,我不是成心的。你再说说,你还能干点别的啥?

  白云:别的,想想,对了,大哥,你还记得不,想当年啊,我除了拥有美丽的外表,还有着深刻的内涵,一张三寸不烂之舌更是能说会辩,你看我当个公关啥的合适不?

  老根:初恋情人眼下落难,大忽悠本该施恩行善,这念头在脑子里打了两转,结果是想法有所改变。大妹子,这样吧,你联络一下你那些老姐妹们,吃完饭没事去××门口排队买房。一天一个人50块钱。

  白云:大哥,还买房啊?我们家儿子买的一套房都要了我老命了,还能买啊?大哥,你拿我开心啊?

  老根:大妹子啊,让你们去是滥竽充数,为的是把买房人吓唬,碰见谁都说买了自住,还要说房价涨势不能止步,在最后就说是消息来自内部!

  白云:大哥,这不就是托儿吗?这不是坑人吗?咋能这样不厚道呢?

  老根:大妹子,你瞧瞧你,要我说啊,你思想落伍,做人那不能这样忠厚。大哥我给你指条明路,上套了就要把别人拖住。找机会抛了房子赶紧跑路,骗别人买房是第一步!

  白云:没想到啊,没想到(老根:咋的?),你变了,你咋变成这样了呢?想当年你是多么正直的一个好青年啊,虽然你我相识晚了一步,可多少年来你的高大形象总在我梦里散步,儿子小时候我就给他讲,我说你赵叔啊,虽说是鞋拔子脸老太太步,可他是学识渊博正直忠厚,他就是你思想上的教父!可你,你是让我相当地失望!这是为了啥啊?唉,罢了,罢了,你美好的形象在我脑海里转眼就消失得无影无踪,它轻轻地走了,不带走一片头皮!

  老根:大妹子,大妹子……心黑总是简单,从善太难,不是你的就别再勉强。继续忽悠!

checkdnsrr and getmxrr for windows

[不指定 2007/03/12 16:30 | by ipaddr ]
checkdnsrr and getmxrr do not work on windows making resolution of email address a pain in the bum. Use these functions instead and you'll get the same functionality.

[code]
<?php
/******************************************************

These functions can be used on WindowsNT to replace
their built-in counterparts that do not work as
expected.

checkdnsrr_winNT() works just the same, returning true
or false

getmxrr_winNT() returns true or false and provides a
list of MX hosts in order of preference.

*******************************************************/

function checkdnsrr_winNT( $host, $type = '' )
{
  if( !empty( $host ) )
  {
      # Set Default Type:
      if( $type == '' ) $type = "MX";
      @exec( "nslookup -type=$type $host", $output );
      while( list( $k, $line ) = each( $output ) )
      {
          # Valid records begin with host name:
          if( eregi( "^$host", $line ) )
          {
              # record found:
              return true;
          }
      }
      return false;
  }
}

function getmxrr_winNT( $hostname, &$mxhosts )
{
  if( !is_array( $mxhosts ) ) $mxhosts = array();
  if( !empty( $hostname ) )
  {
      @exec( "nslookup -type=MX $hostname", $output, $ret );
      while( list( $k, $line ) = each( $output ) )
      {
          # Valid records begin with hostname:
          if( ereg( "^$hostname\tMX preference = ([0-9]+), mail exchanger = (.*)$", $line, $parts ) )
          {
              $mxhosts[ $parts[1] ] = $parts[2];
          }
      }
      if( count( $mxhosts ) )
      {
          reset( $mxhosts );
          ksort( $mxhosts );
          $i = 0;
          while( list( $pref, $host ) = each( $mxhosts ) )
          {
              $mxhosts2[$i] = $host;
              $i++;
          }
          $mxhosts = $mxhosts2;
          return true;
      }
      else
      {
          return false;
      }
  }
}

?>[/code]
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]