eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« Oracle中的不可见字符处理案例一则 | Blog首页 | 功夫熊猫 与 无师自通的领悟 »

使用Linux下script工具记录Oracle输出

在Linux下使用Oracle数据库时,很多时候我们想记录输出信息,当然有很多方法可以选择,但是这里我想说的是script工具。

在Linux下有一个script工具,可以将当前终端会话中的所有输入输出结果捕获到一个指定的文件里。
看一下这个工具的man输出:
[oracle@jumper oracle]$ which script
/usr/bin/script
[oracle@jumper oracle]$ man script
SCRIPT(1)                BSD General Commands Manual                SCRIPT(1)

NAME
    script - make typescript of terminal session

SYNOPSIS
    script [-a] [-f] [-q] [-t] [file]

DESCRIPTION
    Script makes a typescript of everything printed on your terminal.  It is
    useful for students who need a hardcopy record of an interactive session
    as proof of an assignment, as the typescript file can be printed out
    later with lpr(1).

    If the argument file is given, script saves all dialogue in file.  If no
    file name is given, the typescript is saved in the file typescript.

当然最重要的是看一下实际效果。

在记录操作前执行 script 命令开始记录,最后输入 exit 退出记录,中间的所有操作都会被记录下来,以下是一个测试过程,中间步骤被省略:
[oracle@jumper oracle]$ script
Script started, file is typescript
[oracle@jumper oracle]$ sqlplus "/ as sysdba"
<...ignore operation here...>
[oracle@jumper oracle]$ exit
Script done, file is typescript

现在让我们来看看记录文件typescript中记录了什么内容:
[oracle@jumper oracle]$ cat typescript
Script started on Thu 26 Jun 2008 07:56:18 AM CST
[oracle@jumper oracle]$ sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on Thu Jun 26 07:56:24 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production

SQL> set linesize 120
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

Session altered.

SQL> col status for a8
SQL> col group# for 999999
SQL> select * from v$log;

GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS  FIRST_CHANGE# FIRST_TIME
------- ---------- ---------- ---------- ---------- --- -------- ------------- -------------------
      1          1        14    1048576          1 YES INACTIVE    1.9008E+10 2008-06-23 00:42:36
      3          1        15    1048576          1 YES INACTIVE    1.9008E+10 2008-06-25 14:29:37
      4          1        13    1048576          1 YES INACTIVE    1.9008E+10 2008-06-20 14:56:12
      5          1        16    1048576          1 NO  CURRENT    1.9008E+10 2008-06-25 15:58:38

SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production
[oracle@jumper oracle]$
[oracle@jumper oracle]$ exit

Script done on Thu 26 Jun 2008 07:57:38 AM CST

这个工具是不是很有用途呢?
当然还有更强悍的 scriptreplay 工具可以replay script,不过缺省一般不带,不说了。

-The End-


历史上的今天...
    >> 2013-06-26文章:
    >> 2011-06-26文章:
    >> 2009-06-26文章:
    >> 2007-06-26文章:
           摄影习作-小小的太阳
    >> 2006-06-26文章:
           Oracle9iR2 NF:压缩表技术
    >> 2005-06-26文章:
    >> 2004-06-26文章:

无觅

By eygle on 2008-06-26 10:39 | Comments (6) | FAQ | FAQ | 1957 |

6 Comments

typescript 文件默认是当前路径吧?

是,也可以指定输出文件路径的

第一次看到这个命令
又长见识了.

学习!!

aix is the same.

强悍,咱的solaris上居然也有,才知道。


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com