Linux下Oracle日志工具Log4plsql的安装配置

本文档详细介绍了Log4plsql的日志框架安装步骤,包括环境变量配置、数据库连接设置、用户角色创建及权限分配等内容,并提供了使用示例。

1、下载Log4plsql

 

# wget http://prdownloads.sourceforge.net/log4plsql/Log4plsql.zip

 2、解压Log4plsql

# unzip Log4plsql.zip

 3、为了便于管理,把Log4plsql移动Oracle安装主目录,在我的机器上是/db/oracle

# mv Log4plsql /db/oracle/

# mv Log4plsql /db/oracle/


 4、配置Log4plsql环境变量




# cd /db/oracle/Log4plsql/cmd/
# vi setVariable.sh

#!/usr/bin/sh

echo initialisation variable

# generique product
export LOG4PLSQL_HOME=/db/oracle/Log4plsql
export ORACLE_HOME=/db/oracle/product/10.2.0
 
# database user
export LOG_SID=orcl
export LOG_USER=ULOG
export LOG_PASSW_USER=ULOG

# system user only use for install. Please, remove this entry after install
export SYS_USER=sys as sysdba
export SYS_PASSW_USER=koonet

# only if you use log4j
export JDK_HOME=/usr/java/jdk1.6

#   other variables is calculate

export ORACLE_USERSYS="$SYS_USER/$SYS_PASSW_USER@$LOG_SID as SYSDBA"
export ORACLE_SID=$LOG_SID
export EXTERNAL_LIB=$LOG4PLSQL_HOME/../WebSiteInvariant/externalProjectLib
export LOG4PLSQL_API=$LOG4PLSQL_HOME/Docs/api
export LOG4PLSQL_SQLDOC=$LOG4PLSQL_HOME/Docs/sql

PATH=$PATH:$JDK_HOME:$EXTERNAL_LIB:$ORACLE_HOME/bin

# Generique Tools
export CLASSPATH=$LOG4PLSQL_HOME/lib/log4j-1.2.jar:$CLASSPATH

# Oraclexmlparser
export CLASSPATH=$ORACLE_HOME/lib/xmlparserv2.jar:$CLASSPATH
export CLASSPATH=$ORACLE_HOME/lib/xmlcomp.jar:$CLASSPATH

# OracleDriver
export CLASSPATH=$ORACLE_HOME/lib/classes12.jar:$CLASSPATH
export CLASSPATH=$ORACLE_HOME/lib/nls_charexport12.jar:$CLASSPATH
export CLASSPATH=$ORACLE_HOME/lib/runtime12.jar:$CLASSPATH

# log4plsql
export CLASSPATH=$LOG4PLSQL_HOME/lib/log4plsql.jar:$CLASSPATH

echo CLASSPATH
echo $CLASSPATH
echo CLASSPATH


 5、运行install.sh安装Log4plsql


# chmod +x *.sh
# ./install.sh

 注意:如果出现以下错误
-bash: ./install.sh: /usr/bin/sh: bad interpreter: 没有那个文件或目录

请编辑install.sh, 把第一行的#!/usr/bin/sh改成#!/bin/sh, 之后执行
# dos2unix install.sh   ---把dos格式脚本转换成unix
# ./install.sh

6、更改数据库连接配置




# cd /db/oracle/Log4plsql/properties/
# vi log4plsql.xml

<database>
    <source>
        <connection>
           <!-- Database connection where log4plsql ase install.
            |   see : JDBC Developer's Guide and Reference / Verifying a JDBC Client Installation
            |         for all installation Oracle driver install
            +-->
          <username>ulog</username>
          <password>ulog</password>
           <!-- jdbc:oracle:thin:@<host_name>:<port_number>:<sid>  -->
          <dburl>jdbc:oracle:thin:@127.0.0.1:1521:orcl</dburl>
        </connection>
           <!-- the default value of pipename is LOG_PIPE
            +-->
        <pipename>LOG_PIPE</pipename>
    </source>
</database>


 7、创建log4plsql用户角色,并赋予日志相关权限。

# su - oracle
$ sqlplus /nolog
SQL> conn / as sysdba
SQL> create role log4plsql;
SQL> grant select on ULOG.VLOG to log4plsql;
SQL> grant select,INSERT,DELETE on ULOG.TLOG to log4plsql;
SQL> grant select on ULOG.TLOGLEVEL to log4plsql;
SQL> grant execute on ULOG.PLOG to log4plsql;
SQL> grant execute on ULOG.PLOGPARAM to log4plsql;
SQL> grant execute on ULOG.PMDC to log4plsql;
SQL> grant select on ULOG.SLOG to log4plsql;

 8、给用户赋予log4plsql角色,让用户具有log4plsql权限.

SQL> grant log4plsql to esms;

 9、使用实例
1)、自定义日志级别:

create or replace procedure testWorkload
  is
    lCtx PLOG.LOG_CTX := PLOG.init ('perTestWithoutlog', PLOG.LINFO);
  begin
    plog.info(lCtx, 'Begin:');
    commit;
    for i in 1..10 loop
         plog.DEBUG (lCtx, 'neverInsertInTable--' || i);
    end loop;
    plog.info(lCtx, 'End:');
    commit;
end;

 2)、系统默认的日志级别是LERROR,可以通过在ULOG.PLOGPARAM修改DEFAULT_LEVEL改变
3)、ULOG.PLOGPARAM定义系统的日志级别。
LLEVEL  LCODE
10  OFF
20  FATAL

<think>我们正在使用PL/SQL Developer工具,但需要明确的是:PL/SQL Developer是一个客户端工具,用于执行SQL和PL/SQL。要查看归档日志目录(即存储路径),实际上是通过执行SQL语句来查询数据库的系统参数或视图。 根据用户之前的问题和回答,我们已经知道可以通过以下SQL查询归档日志存储路径: 1. `archive log list`(需要在SQL*Plus或能执行该命令的工具中运行,但PL/SQL Developer可能不支持此命令) 2. 查询参数:`show parameter log_archive_dest` 或 `show parameter db_recovery_file_dest` 3. 直接查询v$parameter视图 然而,在PL/SQL Developer中,我们可以执行SQL查询来获取这些参数。具体步骤如下: 步骤1:查询归档日志目标参数 我们可以通过以下SQL查询当前设置的归档日志目标: ```sql SELECT name, value FROM v$parameter WHERE name LIKE 'log_archive_dest_%' OR name = 'db_recovery_file_dest'; ``` 步骤2:如果使用快速恢复区(db_recovery_file_dest),那么归档日志可能存储在该目录下。我们可以通过以下查询获取: ```sql SELECT name, value FROM v$parameter WHERE name = 'db_recovery_file_dest'; ``` 步骤3:如果数据库配置了多个归档目标,我们可以查询`log_archive_dest_1`到`log_archive_dest_10`,例如: ```sql SELECT name, value FROM v$parameter WHERE name LIKE 'log_archive_dest_%'; ``` 步骤4:在PL/SQL Developer中执行上述查询,即可看到归档日志目录。 注意:归档日志目录是数据库服务器上的路径,不是客户端路径。 另外,用户之前引用[1]中提到了查询归档日志的方法(按时间筛选),但那是查询归档日志文件本身的信息,而不是存储目录。而引用[2]是关于查看表空间大小的,与归档目录无关。引用[3][4]是关于使用LogMiner分析归档日志,也不是直接查看目录。 因此,在PL/SQL Developer中查看归档日志目录,实际上就是执行上述SQL查询。 示例: 1. 打开PL/SQL Developer,登录到目标数据库。 2. 打开一个新的SQL窗口。 3. 输入并执行以下SQL: ```sql -- 查询所有归档目标参数 SELECT name, value FROM v$parameter WHERE name LIKE 'log_archive_dest_%' OR name = 'db_recovery_file_dest'; ``` 4. 在结果中查看value列,即为归档日志目录。 如果返回的value为空,或者显示为默认值,可能需要检查是否使用了快速恢复区(db_recovery_file_dest)作为归档目标。 另外,还可以通过以下视图查询归档日志文件的信息(括路径): ```sql SELECT name, dest_id, destination FROM v$archive_dest WHERE destination IS NOT NULL; ``` 注意:`v$archive_dest`视图中的destination列显示了归档路径。 总结:在PL/SQL Developer中,我们通过执行SQL查询数据库的系统参数或视图来获取归档日志目录。 相关问题: 1. 如何修改Oracle数据库的归档日志存储路径? 2. 如何确认Oracle数据库是否处于归档模式? 3. 如何查看归档日志文件的具体信息(如生成时间、大小等)?</think>### 在PL/SQL Developer中查看Oracle归档日志目录的方法 在PL/SQL Developer中查看归档日志目录需要通过执行SQL查询实现,以下是具体步骤: #### 方法1:查询归档目标参数(推荐) ```sql -- 查询所有归档路径配置 SELECT name, value FROM v$parameter WHERE name LIKE 'log_archive_dest_%' OR name = 'db_recovery_file_dest'; ``` **结果示例**: ``` NAME | VALUE --------------------------------------- log_archive_dest_1 | location=/u01/oracle/arch db_recovery_file_dest| +FRA ``` #### 方法2:查询归档日志视图 ```sql -- 查看实际归档路径和日志文件 SELECT name, dest_id, destination, status FROM v$archive_dest WHERE destination IS NOT NULL; ``` **结果示例**: ``` NAME | DEST_ID | DESTINATION | STATUS ----------------------------------------------- LOG_ARCH | 1 | /u01/oracle/arch | VALID ``` #### 方法3:检查快速恢复区(如果使用) ```sql SELECT * FROM v$recovery_file_dest; ``` **结果字段**: - `SPACE_LIMIT`:总空间大小 - `SPACE_USED`:已用空间 - `SPACE_RECLAIMABLE`:可回收空间 - `NUMBER_OF_FILES`:文件数量 > **重要提示**: > 1. 归档日志是数据库服务器文件,PL/SQL Developer仅显示路径信息 > 2. 实际文件需在服务器操作系统中查看(如Linux的`/u01/oracle/arch`) > 3. 需要DBA权限用户(如SYS/SYSTEM)执行查询[^1][^3] #### 扩展操作:查询特定时间段归档日志 ```sql -- 查询2016-06-15后的归档日志(引用[1]示例) ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; SELECT thread#, name, completion_time FROM v$archived_log WHERE completion_time > TO_DATE('2016-06-15 10:00:00','YYYY-MM-DD HH24:MI:SS') ORDER BY completion_time; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值