gp 挂载 oracle 外部表,Oracle 使用外部表访问跟踪文件

通过Create Directory命令创建相应的Directory之后,可以将目录的访问权限授予其他用户,这样其他用户就能通过外部表访问很多主机上的文件,而不需要登录到数据库服务器。这对很多开发人员也极为方便。

来看一下使用外部表访问跟踪文件的例子(这个例子是用SYS用户来完成的)。

首先创建一个指向跟踪文件路径的Directory:

SQL> show parameter user_dump

NAME TYPE VALUE

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

user_dump_dest string /opt/oracle/admin/eygle/udump

SQL> create or replace directory udump

2 as '/opt/oracle/admin/eygle/udump';

Directory created.

SQL> select * from dba_directories;

OWNER DIRECTORY_NAME DIRECTORY_PATH

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

SYS BDUMP /opt/oracle/admin/eygle/bdump

SYS UDUMP /opt/oracle/admin/eygle/udump

如果某些操作需要生成跟踪文件:

SQL> alter session set sql_trace=true;

Session altered.

SQL> select count(*) from dba_users;

COUNT(*)

----------

7

SQL> alter session set sql_trace=false;

Session altered.

通过简单的脚本可以获得跟踪文件的名称:

SQL> @gettrcname

TRACE_FILE_NAME

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

/opt/oracle/admin/eygle/udump/eygle_ora_29731.trc

然后可以创建外部表用以访问这个跟踪文件:

SQL> create table eygle_ora_29731 ( text varchar2(400) )

2 organization external (

3 type oracle_loader

4 default directory UDUMP

5 access parameters (

6 records delimited by newline

7 nobadfile

8 nodiscardfile

9 nologfile

10 )

11 location('eygle_ora_29731.trc')

12 ) reject limit unlimited

13 /

Table created.

最后,就可以很容易地使用外部表访问和查询这个跟踪文件的内容:

SQL> set pagesize 100

SQL> select * from eygle_ora_29731;

TEXT

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

/opt/oracle/admin/eygle/udump/eygle_ora_29731.trc

Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production

With the Partitioning option

JServer Release 9.2.0.4.0 - Production

ORACLE_HOME = /opt/oracle/product/9.2.0

System name: Linux

Node name: jumper.hurray.com.cn

Release: 2.4.21-15.EL

Version: #1 Thu Apr 22 00:27:41 EDT 2004

Machine: i686

Instance name: eygle

Redo thread mounted by this instance: 1

Oracle process number: 8

Unix process pid: 29731

*** 2006-10-17 22:15:50.310

*** SESSION ID:(7.141) 2006-10-17 22:15:50.310

APPNAME mod='sqlplus@jumper.hurray.com.cn (TNS V1-V3)' mh=0 act='' ah=0

=====================

PARSING IN CURSOR #1 len=32 dep=0 uid=0 oct=42 lid=0 tim=1133881396787772 hv=3943786303 ad='5ac609d4'

alter session set sql_trace=true

END OF STMT

EXEC #1:c=0

=====================

PARSING IN CURSOR #3 len=37 dep=1 uid=0 oct=3 lid=0 tim=1133881402205250 hv=3468666020 ad='5adae2d8'

select text from view$ where rowid=:1

END OF STMT

PARSE #3:c=0

EXEC #3:c=0

FETCH #3:c=0

………………

84 rows selected.

外部表极大地简化了很多繁琐的管理工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值