[A]怎么样在Oracle中写操作系统文件,如写日志
[Q]可以利用utl_file包,但是,在此之前,要注意设置好Utl_file_dir初始化参数
/**************************************************************************
    parameter:textContext in varchar2  日志内容
    desc: ·写日志,把内容记到服务器指定目录下
          ·必须配置Utl_file_dir初始化参数,并保证日志路径与Utl_file_dir路径一致或者是其中一个
****************************************************************************/ 
CREATE OR REPLACE PROCEDURE sp_Write_log(text_context VARCHAR2)
  IS
    file_handle      utl_file.file_type;
    Write_content    VARCHAR2(1024);
    Write_file_name  VARCHAR2(50);
  BEGIN
    --open file
    write_file_name := 'db_alert.log';
    file_handle    := utl_file.fopen('/u01/logs',write_file_name,'a');
    write_content  := to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss')||'||'||text_context;
    --write file
    IF utl_file.is_open(file_handle) THEN
      utl_file.put_line(file_handle,write_content);
    END IF;
    --close file
    utl_file.fclose(file_handle);
  EXCEPTION
WHEN OTHERS THEN
       BEGIN
          IF utl_file.is_open(file_handle) THEN
            utl_file.fclose(file_handle);
          END IF;
       EXCEPTION
       WHEN OTHERS THEN
             NULL;
       END;
END sp_Write_log;
 
 
 
   
ORACLE之常用FAQ V1.0

版主

that's life

 

精华贴数
15
专家积分
740
技术积分
63484
社区积分
1691
注册时间
2003-2-24
论坛徽章:
65
2#
 
只看该作者
[Q]我创建了数据库的所有用户,我可以删除这些用户吗
[A]ORACLE数据库创建的时候,创建了一系列默认的用户和表空间,以下是他们的列表
·SYS/CHANGE_ON_INSTALL or INTERNAL
系统用户,数据字典所有者,超级权限所有者(SYSDBA)
创建脚本:?/rdbms/admin/sql.bsq and various cat*.sql
建议创建后立即修改密码
此用户不能被删除
·SYSTEM/MANAGER
数据库默认管理用户,拥有DBA角色权限
创建脚本:?/rdbms/admin/sql.bsq
建议创建后立即修改密码
此用户不能被删除
·OUTLN/OUTLN
优化计划的存储大纲用户
创建脚本:?/rdbms/admin/sql.bsq
建议创建后立即修改密码
此用户不能被删除
---------------------------------------------------
·SCOTT/TIGER, ADAMS/WOOD, JONES/STEEL, CLARK/CLOTH and BLAKE/PAPER.
实验、测试用户,含有例表EMP与DEPT
创建脚本:?/rdbms/admin/utlsampl.sql
可以修改密码
用户可以被删除,在产品环境建议删除或锁定
·HR/HR (Human Resources), OE/OE (Order Entry), SH/SH (Sales History).
实验、测试用户,含有例表EMPLOYEES与DEPARTMENTS
创建脚本:?/demo/schema/mksample.sql
可以修改密码
用户可以被删除,在产品环境建议删除或锁定
·DBSNMP/DBSNMP
Oracle Intelligent agent
创建脚本:?/rdbms/admin/catsnmp.sql, called from catalog.sql
可以改变密码--需要放置新密码到snmp_rw.ora文件
如果不需要Intelligent Agents,可以删除
---------------------------------------------------
以下用户都是可选安装用户,如果不需要,就不需要安装
·CTXSYS/CTXSYS
Oracle interMedia (ConText Cartridge)管理用户
创建脚本:?/ctx/admin/dr0csys.sql
·TRACESVR/TRACE
Oracle Trace server
创建脚本:?/rdbms/admin/otrcsvr.sql
·ORDPLUGINS/ORDPLUGINS
Object Relational Data (ORD) User used by Time Series, etc.
创建脚本:?/ord/admin/ordinst.sql
·ORDSYS/ORDSYS
Object Relational Data (ORD) User used by Time Series, etc
创建脚本:?/ord/admin/ordinst.sql
·DSSYS/DSSYS
Oracle Dynamic Services and Syndication Server
创建脚本:?/ds/sql/dssys_init.sql
·MDSYS/MDSYS
Oracle Spatial administrator user
创建脚本:?/ord/admin/ordinst.sql
·AURORA$ORB$UNAUTHENTICATED/INVALID
Used for users who do not authenticate in Aurora/ORB
创建脚本:?/javavm/install/init_orb.sql called from ?/javavm/install/initjvm.sql
·PERFSTAT/PERFSTAT
Oracle Statistics Package (STATSPACK) that supersedes UTLBSTAT/UTLESTAT
创建脚本:?/rdbms/admin/statscre.sql
 
 
 
 
   
ORACLE之常用FAQ V1.0

版主

that's life

 

精华贴数
15
专家积分
740
技术积分
63484
社区积分
1691
注册时间
2003-2-24
论坛徽章:
65
3#
 
只看该作者
[Q]执行execute dbms_logmnr.start_logmnr(DictFileName=>'DictFileName')提示ORA-01843:无效的月份,这个是什么原因
[A]我们分析start_logmnr包
PROCEDURE start_logmnr( 
startScn IN NUMBER default 0 , 
endScn IN NUMBER default 0, 
startTime IN DATE default TO_DATE('01-jan-1988','DD-MON-YYYY'), 
endTime IN DATE default TO_DATE('01-jan-2988','DD-MON-YYYY'), 
DictFileName IN VARCHAR2 default '', 
Options IN BINARY_INTEGER default 0 ); 
可以知道,如果TO_DATE('01-jan-1988','DD-MON-YYYY')失败,将导致以上错误
所以解决办法可以为
1、Alter session set NLS_LANGUAGE=American
2、用类似如下的方法执行
execute dbms_logmnr.start_logmnr (DictFileName=> 'f:\temp2\TESTDICT.ora', starttime => TO_DATE( 
'01-01-1988','DD-MM-YYYY'), endTime=>TO_DATE('01-01-2988','DD-MM-YYYY'));
 
 
 
 
   
ORACLE之常用FAQ V1.0

版主

that's life

 

精华贴数
15
专家积分
740
技术积分
63484
社区积分
1691
注册时间
2003-2-24
论坛徽章:
65
4#
 
只看该作者
使用Statspack: 
         sqlplus perfstat/perfstat
         exec statspack.snap;            -- 进行信息收集统计,每次运行都将产生一个快照号
         -- 获得快照号,必须要有两个以上的快照,才能生成报表
         select SNAP_ID, SNAP_TIME from STATS$SNAPSHOT; 
         @spreport.sql                                -- 输入需要查看的开始快照号与结束快照号
其他相关脚本s: 
spauto.sql - 利用dbms_job提交一个作业,自动的进行STATPACK的信息收集统计 
sppurge.sql - 清除一段范围内的统计信息,需要提供开始快照与结束快照号
sptrunc.sql - 清除(truncate)所有统计信息
 
 
 
 
   
ORACLE之常用FAQ V1.0

版主

that's life

 

精华贴数
15
专家积分
740
技术积分
63484
社区积分
1691
注册时间
2003-2-24
论坛徽章:
65
5#
 
只看该作者
[Q]FTP怎么在脚本中自动上传/下载
[A]可以把FTP写到shell脚本中,如
ftp -n -i  主机IP  <<EOF
user username pass
cd 目标目录
put file
get file
#查询文件
ls 
#退出
bye
EOF

相关文章:

  • 2021-08-02
  • 2022-12-23
  • 2021-05-02
  • 2021-11-21
  • 2021-06-03
  • 2021-08-03
猜你喜欢
  • 2021-07-17
  • 2021-08-01
  • 2021-12-30
  • 2021-09-20
  • 2022-03-10
  • 2021-07-15
相关资源
相似解决方案