Oracle

阅读 / 问答 / 标签

关于oracle导出时的query用法

貌似不能是用双引号把比如"""1"""

oracle开启flashback功能失败,错误信息:ORA-00439: 未启用功能: Flashback Database;

要企业版才行

如何将oracle数据库 设置为归档模式

修改oracle为归档模式1,查看是否为归档模式SQL> archive log list;Database log mode No Archive ModeAutomatic archival DisabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 31Current log sequence 332,关闭数据库SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.3,启动数据库到mount模式SQL> startup mount;ORACLE instance started.Total System Global Area 1224736768 bytesFixed Size 2020384 bytesVariable Size 318770144 bytesDatabase Buffers 889192448 bytesRedo Buffers 14753792 bytesDatabase mounted.4,修改数据库为归档模式SQL> alter database archivelog;Database altered.5,打开数据库库SQL> alter database open;SQL> SELECT NAME,created,log_mode FROM v$database;NAME CREATED LOG_MODE--------- --------- ------------ORCL 04-JUN-12 ARCHIVELOGDatabase altered.6,查看归档日志的路径和目录SQL> show parameter db_recovery_file_dest;NAME TYPE VALUE------------------------------------ ----------- ------------------------------db_recovery_file_dest string /data/app/oracle/flash_recovery_areadb_recovery_file_dest_size big integer 2G修改方法:SQL> alter system set db_recovery_file_dest_size=20g;SQL> alter system set db_recovery_file_dest="/app/arc";

oracle 怎么生成归档日志文件

  oracle 归档日志  归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中.当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库.  日志操作模式:ARCHIVELOG NOARCHIVELOG  1,改变日志操作模式:  检查当前日志操作模式  SELECT log_mode from v$database;  关闭数据库,然后装载数据库  SHUTDOWN IMMEDIATE  STARTUP MOUNT  改变日志操作模式,然后打开数据库  ALTER DATABASE ARCHIVELOG;  ALTER DATABASE OPEN;  2,执行手工归档  从oracle database 10g开始,当将日志操作模式转变未ARCHIVELOG模式时,oracle会自动启动ARCH进程.如果要使用手工归档.那么在改变日志操作模式时必须使用命令ALTER DATABASE ARCHIVELOG MANUAL.  需要注意,使用手工归档方式,数据库管理员必须手工执行归档命令.如果没有执行手工归档命令,日志组的原有内容将不能被覆盖.ALTER DATABASE ARCHIVELOG MANUAL 命令是为了与先前的版本兼容而保留的,.将来的oracle版本会淘汰该命令,使用手工归档方式是,数据库管理员可以执行以下命令归档重做日志:  ALTER SYSTEM ARCHIVELOG ALL;  3,配置归档进程  初始化参数LOG_ARCHIVE_MAX_PROCESSES用于指定例程初始启动的最大归档进程个数,当将数据库转变为ARCHIVELOG模式时,默认情况下oracle会自动启动两个归档进程.通过改变初始化参数LOG_ARCHIVE_MAX_PROCESS的值,可以动态地增加或降低归档进程的个数:  ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3;配置归档位置和文件格式  当数据库处于ARCHIVELOG模式时,如果进行日志切换,后台进程将自动生成归档日志,归档日志的默认位置为%oracle_home%rdbms,在oracle database 10g中,归档日志的默认文件格式为ARC%S_%R.%T.为了改变归档日志的位置和名称格式,必须改变相应的初始化参数,1,初始化参数LOG_ARCHIVE_FORMAT用于指定归档日志的文件名格式,设置该初始化参数时,可以指定以下匹配符:  %s: 日志序列号:  %S: 日志序列号(带有前导0)  %t: 重做线程编号.  %T: 重做线程编号(带有前导0)  %a: 活动ID号  %d: 数据库ID号  %r RESETLOGS的ID值.  从10g开始,配置归档日志文件格式时,必须带有%s,%t和%r匹配符,配置了归档文件格式后,必须重启数据库.  2,使用LOG_ARCHIVE_DEST配置归档位置  如果不使用备用数据库,只需要将归档日志存放到本地目录.配置本地归档位置可以使用初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST,其中,第一个参数用于设置第一个归档位置,第二个参数用于指定第二个归档位置.  ALTER SYSTEM SET log_archive_dest="d:demoarchive1";ALTER SYSTEM SET log_archive_duplex_dest="d:demoarchive2";3,使用LOG_ARCHIVE_DEST_n配置多个归档位置.  初始化参数LOG_ARCHIVE_DEST_n用于指定多个归档位置,该参数最多可以指定10个归档位置.通过使用初始化参数LOG_ARCHIVE_DEST_n,不仅可以配置本地归档位置,还可以配置远程归档位置.  如果既要在主节点上生成归档日志,又要将归档日志传递到备用节点,那么必须使用参数LOG_ARCHIVE_DEST_n.该参数与LOG_ARCHIVE_DEST具有如下区别;初始化参数LOG_ARCHIVE_DEST_n可以配置本地归档位置和远程归档位置,而初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST只能配置本地归档位置.  初始化参数LOG_ARCHIVE_DEST_n可以配置多达10个归档位置,而初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST最多只能配置两个归档位置.  初始化参数LOG_ARCHIVE_DEST_n 不能与初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同时使用.  因为初始化参数LOG_ARCHIVE_DEST_n不能与初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同时使用,所以必须禁用初始化参数LOG_ARCHVE_DEST和LOG_ARCHIVE_DUPLEX_DEST.当使用初始化参数LOG_ARCHIVE_DEST_n配置本地归档位置时,需要指定LOCALTION选项.当配置远程归档位置时,需要指定SERVICE选项.  示例如下:  ALTER SYSTEM SET log_archive_duplex_dest="";ALTER SYSTEM SET log_archive_dest="";  ALTER SYSTEM SET log_archive_dest_1="location=d:demoarchive1";ALTER SYSTEM SET log_archive_dest_2="location=d:demoarchive2";ALTER SYSTEM SET log_archive_dest_3="location=d:demoarchive3";ALTER SYSTEM SET log_archive_dest_4="service=standby";配置远程归档位置时,SERVICE选项需要指定远程数据库的网络服务名(在tnsnames.ora文件中配置)4,使用LOG_ARCHIVE_DEST_n选项  使用初始化参数LOG_ARCHIVE_DEST_n配置归档位置时,可以在归档位置上指定OPTIONAL或MANDATORY选项.指定MANDATORY选项时,可以设置REOPEN属性.  OPTIONAL:该选项是默认选项.使用该选项时,无论归档是否成功,都可以覆盖重做日志.  MANDATORY:强制归档.使用该选项时,只有在归档成功之后,重做日志才能被覆盖.  REOPEN:该属性用于指定重新归档的时间间隔,默认值为300秒,必须跟在MANDATORY后.  例:  Alter system set log_archive_dest_1="location=d:demoarchive1 mandatory";Alter system set log_archive_dest_2="location=d:demoarchive2 mandatory reopen=500";Alter system set log_archive_dest_3="location=d:demoarchive3 optional";5,控制本地归档成功的最小个数.  使用初始化参数LOG_ARCHIVE_MIN_SUCCEED_DEST控制本地归档的最小成功个数Alter system set log_archive_min_succeed_dest=2;6,使用初始化参数LOG_ARCHIVE_DEST_STATE_n控制归档位置的可用性.设置该参数为ENABLE(默认值),表示会激活相应的归档位置;设置该参数为DEFER,表示禁用相应归档位置.当归档日志所在磁盘损坏或填满时,DBA需要暂时禁用该归档位置.  Alter system set log_archive_dest_state_3=defer;(禁用)Alter system set log_archive_dest_state_3=enable;(启用)显示归档日志信息  1,使用ARCHIVE LOG LIST命令可以显示日志操作模式,归档位置,自动归档机器要归档的日志序列号等信息.  2显示日志操作模式  SELECT name,log_mode FROM v$database;  3,显示归档日志信息.  Col name format a46  Select name, swquence#, first_change# FROM v$archived_log;Name用于表示归档日志文件名,sequence#用于表示归档日志对应的日志序列号,firs_change#用于标识归档日志的起始SCN值.  4、执行介质恢复时,需要使用归档日志文件,此四必须准确定位归档日志的存放位置.通过查询动态性能视图v$archive_dest可以取得归档日志所在目录.  SELECT destination FROM v$archive dest;  5,显示日志历史信息  SELECT * FROM v$loghist;  THREAD#用于标识重做线程号,SEQUNCE#用于标识日志序列号,FIRST_CHANGE#用于标识日志序列号对应的起始SCN值,FIRST_TIME用于标识起始SCN的发生时间.SWICTH_CHANGE#用于标识日志切换的SCN值.  6.显示归档进程信息.  进行日志切换时,ARCH进程会自动将重做日志内容复制到归档日志中,为了加快归档速度,应该启用多个ARCH进程.通过查询动态性能视图V$ARCHIVE_PROCESSES可以显示所有归档进程的信息!  SELECT * FROM v$archive_processes;  Porcess用于标识ARCH进程的编号,status用于标识ARCH进程的状态(ACTIVE:活动,STOPPED:未启动),log_sequence用于标识正在进行归档的日志序列号,state用于标识ARCH进程的工作状态==========================================用Oracle归档日志进行恢复的方法  用Oracle归档日志进行恢复的方法  联机重演日志没有丢失应使用完成恢复,如联机重演日志损坏,而又没有备份,就只能进行不完全恢复。  一、完全恢复:  1.使用命令“svrmgrl”调用行方式服务器管理;2.输入命令“connect internal”,然后输入命令“startup mount";3.输入命令“recover database;”  4.按下ENTER,接受默认值。  5.然后输入命令“alter database open;”完成数据库恢复。  二、不完全恢复  警告:  应用不完成恢复前,必须将数据库做一次完全冷备份,因为应用不完全恢复后,联机重演日志将重置,以前的所有日志不可用。  如果恢复不成功,数据库就不能使用了。再次强调,做完全冷备份后再应用不完全恢复。  1).基于变化的恢复(change-based recovery)要执行基于变化的恢复,需要知道丢失日志之前的系统写入归档重演日志的最大的变化号(SCN),然后可以启动恢复语句恢复数据库直到改变scn_number,其中比scn_number是写到已归档重演日志文件顺序号386的SCN(即,小于丢失日志顺序号387的SCN)。可以从V$log_history视图中得到SCN信息。  select first_change# from v$log_history where sequence#=387;其中387为最后一个有效的日志文件号加1,该例是查找386.  知道了SCN后,使用下述步骤完成恢复  1.使用命令“svrmgrl”调用行方式服务器管理;2.输入命令“connect internal”,然后输入命令“startup mount";3.输入命令“recover database until change 9999;”  4.在回答Oracle第一个归档重演日志建议信息时,输入“auto”,Oracle在找到第387号重演日志之前停止恢复。  5.用命令“alter database open resetlogs;”打开数据库。(应用该命令前请确认数据库已备份,如打开失败,日志将不可用)2).基于停止的恢复(cancel-based recovery)  1.使用命令“svrmgrl”调用行方式服务器管理;2.输入命令“connect internal”,然后输入命令“startup mount";3.输入命令“recover database until cancel;”,Oracle提示需要的第一个归档重演日志文件名.按下ENTER键接受缺省文件名,并且—路ENTER直到询问顺序号387的日志。输入“cancel”,停止恢复操作。  4.用命令“alter database open resetlogs;”打开数据库。(应用该命令前请确认数据库已备份,如打开失败,日志将不可用)3).基于时间的恢复(time-based recovery)  为使用基于时间的恢复,必须知道记录在V$log_history归档重演日志序号387(丢失重演日志)的时间,通过执行查询语句“select time from v$log_history where sequence#=387;”得到。本例得到的时间是:2002-06-23 14:42:04现在开始实施恢复。  1.使用命令“svrmgrl”调用行方式服务器管理;2.输入命令“connect internal”,然后输入命令“startup mount";3.输入命令“recover database until time "2002/06/23 14:42:04";”,Oracle提示需要的第一个归档重演日志文件名,输入“auto”,Oracle恢复归档重演日志直到序号为387的日志,停止恢复操作。  4.用命令“alter database open resetlogs;”打开数据库。(应用该命令前请确认已数据库已备份,如打开失败,日志将不可用)提示: 使用基于时间的恢复,时间的格式是YYYY/MM/DD HH24:MI:SS,并且用单引号括起。  附:如何启用Oracle的归档方式  1.参照以下内容编辑init.ora文件:  log_archive_start = true  log_archive_dest_1 = " LOCATION=D:OracleoradataORCLarchive "og_archive_format = %%ORACLE_SID%%T%TS%S.ARC2.关闭数据库  svrmgrl> connect internal  svrmgrl> shutdown normal  3.然后启动实例并安装该数据库,但不打开数据库。  svrmgrl> startup mount  4.接着,发布下列更改数据库的命令。  Svrmgrl> alter database archivelog;  5.现在,数据库已经更改为归档方式,您可以打开数据库。  svrmgrl> alter database open;  提示:也可以使用DBA studio工具启用数据库的归档方式,操作很简单=============================================================ORACLE归档模式的设置  在ORACLE 数据库的开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大量的消耗。但在系统上线,成为生产环境时,将其设置为日志模式并自动归档就相当重要了,因为,这是保证系统的安全性,有效预防灾难的重要措施。这样,通过定时备份数据库和在两次备份间隔之间的日志文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多时候挽回或最大可能的减少数据丢失。  一、 要使OARCLE 数据库进行日志的自动归档,需要做两方面的事情;1.是数据库日志模式的设置(可为Archive Mode 和No Archive Mode);2.就是自动归档模式设置(Automatic archival,可为Enabled 和Disabled)。  二、 如何查看数据库的现行日志和自动归档模式的设置可用archive log list 命令来查看。  运行在日志自动归档模式下的数据库系统查看结果如下(一般是生产环境):  SQL> archive log list  Database log mode Archive Mode  Automatic archival Enabled  Archive destination /backup/archivelog  Oldest online log sequence 2131  Next log sequence to archive 2133  Current log sequence 2133  没有启动数据库日志模式和自动归档的数据库系统查看结果如下(一般是测试环境):  SQL> archive log list  Database log mode No Archive Mode  Automatic archival Disabled  Archive destination /u01/app/oracle/product/8.1.7/dbs/archOldest online log sequence 194  Current log sequence 196  三. 数据库日志模式的设置  在创建数据库时,可以在CREATE DATABASE 语句中指定数据库的日志模式。假如没有指明,则缺省为NOARCHIVELOG 模式。由于如果在创建数据库时指明是Archive Mode的话,会增加约20%的创建时间,而在以后启动INSTANCE 时再设置的话,一般只用去几秒的时间,所以一般在创建数据库时是不设置为ARCHIVE MODE 的。  将数据库的日志模式设置切换(Archive Mode 和No Archive Mode 之间的切换)的步骤和操作如下:  1. 关闭运行的数据库实例  SQL> shutdown  在进行日志模式切换之前,必须将运行的数据库正常关闭。  2. 备份数据库  该备份跟以后产生的日志一起用于将来的灾难恢复(很重要,如要改为归档日志模式,没有这个数据库备份,仅有日志文件是无法从该时间点恢复的)。  3. 启动数据库实例到mount 状态,但不要打开。  SQL> startup mount  4. 切换数据库日志模式。  SQL> alter database archivelog;(设置数据库为归档日志模式)或SQL> alter database noarchivelog;(设置数据库为非归档日志模式)5. 打开数据库  SQL> alter database open;  6. 确认数据库现在处于归档日志模式。  SQL> archive log list;  Database log mode Archive Mode  Automatic archival Enabled  Archive destination for example: $ORACLE_HOME/dbs/archOldest on-line log sequence 275  Next log sequence 277  Current log sequence 278  7. 将这个时间点的redo logs 归档  SQL> archive log all;  8. 确认新产生的日志文件已在相应的归档目录下面。  四. 自动归档模式设置(Automatic archival,可为Enabled 和Disabled)。  在该模式下,数据库启动一个arch 进程,专门负责将redo logs 写到系统归档设备的相应目录下。在数据库的参数文件中设置参数(一般是在$ORACLE_HOME/dbs/init*.ora 文件中):  LOG_ARCHIVE_START=  LOG_ARCHIVE_DEST=  LOG_ARCHIVE_FORMAT=  LOG_ARCHIVE_START:  

oracle如何将表的历史数据归档

归档日志(ArchiveLog)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中.当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库. 日志操作模式:ARCHIVELOGNOARCHIVELOG 1,改变日志操作模式: 检查当前日志操作模式 SELECTlog_modefromv$database; 关闭数据库,然后装载数据库 SHUTDOWNIMMEDIATE STARTUPMOUNT 改变日志操作模式,然后打开数据库 ALTERDATABASEARCHIVELOG; ALTERDATABASEOPEN; 2,执行手工归档 从oracledatabase10g开始,当将日志操作模式转变未ARCHIVELOG模式时,oracle会自动启动ARCH进程.如果要使用手工归档.那么在改变日志操作模式时必须使用命令ALTERDATABASEARCHIVELOGMANUAL. 需要注意,使用手工归档方式,数据库管理员必须手工执行归档命令.如果没有执行手工归档命令,日志组的原有内容将不能被覆盖.ALTERDATABASEARCHIVELOGMANUAL命令是为了与先前的版本兼容而保留的,.将来的oracle版本会淘汰该命令,使用手工归档方式是,数据库管理员可以执行以下命令归档重做日志: SLTERSYSTEMARCHIVELOGALL; 3,配置归档进程 初始化参数LOG_ARCHIVE_MAX_PROCESSES用于指定例程初始启动的最大归档进程个数,当将数据库转变为ARCHIVELOG模式时,默认情况下oracle会自动启动两个归档进程.通过改变初始化参数LOG_ARCHIVE_MAX_PROCESS的值,可以动态地增加或降低归档进程的个数: ALTERSYSTEMSETLOG_ARCHIVE_MAX_PROCESSES=3; 配置归档位置和文件格式 当数据库处于ARCHIVELOG模式时,如果进行日志切换,后台进程将自动生成归档日志,归档日志的默认位置为%oracle_home%rdbms,在oracledatabase10g中,归档日志的默认文件格式为ARC%S_%R.%T.为了改变归档日志的位置和名称格式,必须改变相应的初始化参数, 1,初始化参数LOG_ARCHIVE_FORMAT用于指定归档日志的文件名格式,设置该初始化参数时,可以指定以下匹配符: %s:日志序列号: %S:日志序列号(带有前导0) %t:重做线程编号. %T:重做线程编号(带有前导0) %a:活动ID号 %d:数据库ID号 %rRESETLOGS的ID值. 从10g开始,配置归档日志文件格式时,必须带有%s,%t和%r匹配符,配置了归档文件格式后,必须重启数据库. 2,使用LOG_ARCHIVE_DEST配置归档位置 如果不使用备用数据库,只需要将归档日志存放到本地目录.配置本地归档位置可以使用初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST,其中,第一个参数用于设置第一个归档位置,第二个参数用于指定第二个归档位置. ALTERSYSTEMSETlog_archive_dest="d:demoarchive1"; ALTERSYSTEMSETlog_archive_duplex_dest="d:demoarchive2"; 3,使用LOG_ARCHIVE_DEST_n配置多个归档位置. 初始化参数LOG_ARCHIVE_DEST_n用于指定多个归档位置,该参数最多可以指定10个归档位置.通过使用初始化参数LOG_ARCHIVE_DEST_n,不仅可以配置本地归档位置,还可以配置远程归档位置. 如果既要在主节点上生成归档日志,又要将归档日志传递到备用节点,那么必须使用参数LOG_ARCHIVE_DEST_n.该参数与LOG_ARCHIVE_DEST具有如下区别; 初始化参数LOG_ARCHIVE_DEST_n可以配置本地归档位置和远程归档位置,而初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST只能配置本地归档位置. 初始化参数LOG_ARCHIVE_DEST_n可以配置多达10个归档位置,而初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST最多只能配置两个归档位置. 初始化参数LOG_ARCHIVE_DEST_n不能与初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同时使用. 因为初始化参数LOG_ARCHIVE_DEST_n不能与初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同时使用,所以必须禁用初始化参数LOG_ARCHVE_DEST和LOG_ARCHIVE_DUPLEX_DEST.当使用初始化参数LOG_ARCHIVE_DEST_n配置本地归档位置时,需要指定LOCALTION选项.当配置远程归档位置时,需要指定SERVICE选项. 示例如下: ALTERSYSTEMSETlog_archive_duplex_dest=""; ALTERSYSTEMSETlog_archive_dest=""; ALTERSYSTEMSETlog_archive_dest_1="location=d:demoarchive1"; ALTERSYSTEMSETlog_archive_dest_2="location=d:demoarchive2"; ALTERSYSTEMSETlog_archive_dest_3="location=d:demoarchive3"; ALTERSYSTEMSETlog_archive_dest_4="service=standby"; 配置远程归档位置时,SERVICE选项需要指定远程数据库的网络服务名(在tnsnames.ora文件中配置) 4,使用LOG_ARCHIVE_DEST_n选项 使用初始化参数LOG_ARCHIVE_DEST_n配置归档位置时,可以在归档位置上指定OPTIONAL或MANDATORY选项.指定MANDATORY选项时,可以设置REOPEN属性. OPTIONAL:该选项是默认选项.使用该选项时,无论归档是否成功,都可以覆盖重做日志. MANDATORY:强制归档.使用该选项时,只有在归档成功之后,重做日志才能被覆盖. REOPEN:该属性用于指定重新归档的时间间隔,默认值为300秒,必须跟在MANDATORY后. 例: Altersystemsetlog_archive_dest_1="location=d:demoarchive1mandatory"; Altersystemsetlog_archive_dest_2="location=d:demoarchive2mandatoryreopen=500"; Altersystemsetlog_archive_dest_3="location=d:demoarchive3optional"; 5,控制本地归档成功的最小个数. 使用初始化参数LOG_ARCHIVE_MIN_SUCCEED_DEST控制本地归档的最小成功个数 Altersystemsetlog_archive_min_succeed_dest=2; 6,使用初始化参数LOG_ARCHIVE_DEST_STATE_n控制归档位置的可用性.设置该参数为ENABLE(默认值),表示会激活相应的归档位置;设置该参数为DEFER,表示禁用相应归档位置.当归档日志所在磁盘损坏或填满时,DBA需要暂时禁用该归档位置. Altersystemsetlog_archive_dest_state_3=defer;(禁用) Altersystemsetlog_archive_dest_state_3=enable;(启用) 显示归档日志信息 1,使用ARCHIVELOGLIST命令可以显示日志操作模式,归档位置,自动归档机器要归档的日志序列号等信息. 2显示日志操作模式 SELECTname,log_modeFROMv$database; 3,显示归档日志信息. Colnameformata40 Selectname,swquence#,first_change#FROMv$archived_log; Name用于表示归档日志文件名,sequence#用于表示归档日志对应的日志序列号,firs_change#用于标识归档日志的起始SCN值. 4执行介质恢复时,需要使用归档日志文件,此四必须准确定位归档日志的存放位置.通过查询动态性能视图v$archive_dest可以取得归档日志所在目录. SELECTdestinationFROMv$archivedest; 5,显示日志历史信息 SELECT*FROMv$loghist; THREAD#用于标识重做线程号,SEQUNCE#用于标识日志序列号,FIRST_CHANGE#用于标识日志序列号对应的起始SCN值,FIRST_TIME用于标识起始SCN的发生时间.SWICTH_CHANGE#用于标识日志切换的SCN值. 6.显示归档进程信息. 进行日志切换时,ARCH进程会自动将重做日志内容复制到归档日志中,为了加快归档速度,应该启用多个ARCH进程.通过查询动态性能视图V$ARCHIVE_PROCESSES可以显示所有归档进程的信息! SELECT*FROMv$archive_processes; Porcess用于标识ARCH进程的编号,status用于标识ARCH进程的状态(ACTIVE:活动,STOPPED:未启动),log_sequence用于标识正在进行归档的日志序列号,state用于标识ARCH进程的工作状态

Oracle空间操作函数SDO_RELATE和SDO_GEOM.RELATE的关系和区别是什么?

  目前,采用数据库管理空间数据已经成为主流技术,其优点在于能够实现空间数据与属性数据的无缝集成,这种数据库也称为空间数据库。空间数据库利用数据库的管理机制可以保证空间数据的完整性和安全性,对空间数据进行备份和恢复以及控制用户的并发访问等。  Oracle的空间数据选件(Oracle Spatial)可以把复杂的地图对象(包括空间数据和属性数据)存入一个表中,同时建立空间数据索引,从而实现空间数据和属性数据的一体化存储和管理。Oracle Spatial还提供空间算子,结合SQL语句实现对空间数据的查询和其它复杂空间分析。  MapX是MapInfo公司的地图控件,用户可以在自己的程序中引入MapX控件,实现带地图功能的应用,同时可以选择用户熟悉的开发工具,如VB、VC、PowerBuilder、Delphi等。  用MapX访问Oracle的空间数据是通过Oracle提供给Mapinfo的底层数据库接口OCI(Oracle Call Interface)。  Mapinfo提供EasyLoader工具,用来将用户制作的Mapinfo地图数据上载到Oracle数据库中。如果将来地图数据发生了变更,也只需要通过EasyLoader的刷新表功能,即可将发生变化的地图数据在Oracle数据库中更新。  摘 要:采用数据库管理空间数据是当前的发展趋势,文中总结了Oracle数据库中空间数据的上载和存储机制,探讨了应用程序对Oracle数据库中空间数据的访问,并给出应用实例。  关键词:空间数据库;Oracle数据库;MapX  中图分类号:TP311;P285.3文献标识码:A  Accessing Spatial Data in Oracle Using MapXAbstract:Spatial data managed by database is development trend currently. This paper summarizes spatial data uploaded to Oracle database and its storage,discusses accessing spatial data in Oracle database and gives an application instance.  Key words:spatial database;Oracle database;MapX本文着重探讨用VC、MapX开发带地图的应用程序,Oracle中空间数据的存储和管理以及如何在应用程序中访问存储Oracle中的空间数据。工作环境如下:Visual C++ 6.0,Mapinfo6.5,MapX4.5,EasyLoader for Oracle 81116,Oracle81116。Mapinfo6.5用来进行地图的编辑和属性数据的编辑,EasyLoader for Oracle8.1.6将地图数据上载到Oracle中,Visual C++6.0与MapX4.5相结合开发实现Oracle中空间数据访问的应用程序。  1 空间数据的准备和管理  1.1 空间数据存储的配置  首先创建数据库,然后进行空间数据存储的配置,主要涉及以下两个方面的配置:  1)为存储空间数据创建新的表空间  每个Oracle的数据库至少有一个SYSTEM表空间,为了提高运行效率和管理的需要,最好使用其他表空间来划分用户和应用程序,因此为访问空间数据的用户和应用程序创建新的表空间,设表空间名为GISTEST,并配置GISTEST的初始大小、增量大小等参数。  2)创建有权访问空间数据的用户  Oracle中可以为用户设定特定的表空间作为他的缺省表空间,创建用户GISTESTuser的缺省表空间为GISTEST,则该用户便具有访问空间数据的权利,同时还要为用户GISTESTuser设定合适的角色、系统权限和对象权限。  1.2 Mapinfo地图的上载  地图用Mapinfo编辑完成,再用EasyLoader forOracle81116将编辑好的Mapinfo的地图上载到Oracle中。要将地图上载到GISTEST表空间中,需要以用户GISTESTuser的身份登录到Oracle。通过Oracle的身份验证后,才可以上载Map-info地图。第一次上载Mapinfo地图到Oracle时,EasyLoader会自动创建一个名为mapinfo的用户,该用户的缺省口令为逗mapinfo地,缺省表空间和临时表空间都是SYSTEM,同时会在该用户下创建一个名为MAPINFO-MAPCATALOG的表,这个表用来记录所有上载到Oracle中的Mapinfo地图的信息,如:地图的存储和索引形式、地图的名称、地图的所有者、存储地图空间数据的列名、地图的坐标系、地图的边界、地图中点线面的样式信息等。  1.3 Mapinfo地图在Oracle中的存储和管理方式Oracle为管理空间数据提供了对象管理模式SDO(Spatial Data Object),同时提供优秀的空间索引机制。  MDSYS是Oracle Spatial的管理用户,MDSYS方案规定几何数据的存储方式、语法形式和语义。MDSYS方案中,表SDOGEOM-METADATA-TABLE存储所有上载到Oracle中的Mapinfo地图的信息,表SDO-INDEX-METADATA-TABLE存储与索引相关的信息,如:被索引的列名,索引的方式,索引的级别,索引的所有者等。MDSYS方案中还有与空间数据及其索引相关的视图:ALL-SDO-GEOM-METADATA,ALL-SDO-INDEXMETA DATA,DBA-SDO-GEOM-METADATA,DBA-SDO-INDEXMET ADATA,USER-SDO-GEOM-METADATA,USER-SDOINDEX-METADATA。  上载到Oracle中的每一个地图由两个表表示,一个是与该地图空间索引方式相关的表,叫做索引表,另一个用来存储地图属性数据和空间数据,叫数据表。例如:一个名为ShangHaiMap的地图上载到Oracle,创建两个表:数据表ShangHaiMap和索引表ShangHaiMap-SX-FL6$。Oracle为了有效的管理和存储Mapinfo地图,在数据表ShangHaiMap中新增加两列:一列是类型为NUMBER的逗MI-PRINX地,它是唯一性索引字段,一列是类型为SDO-GEOMETRY的逗GEOLOC地,用来存储空间数据。SDO-GEOMETRY是Oracle中存储地图数据的空间数据类型。  2 应用程序的开发  在VC下,引入MapX控件开发带地图的应用程序。MapX控件一般自动打开在系统中注册的缺省.GST文件,其路径位于注册表HKEY-LOCAL-MACHINESoftwareMapInfoMapX4.0下,注册键SearchPaths下是缺省的数据目录,定位3.gst文件。3.gst文件是MapX可以访问的地图文件,由MapX的实用程序GeoSet Manager创建,它是将多个Mapinfo的地图文件(3.tab)集中在一起,这样打开一个3.gst文件,即可将一个包含多层的地图打开。此外还有注册键GeoDicionary,用来定位3.dct文件。3.dct文件由MapX的另一个实用程序Geodictionary Manager生成,Geodictionary Manager默认的3.dct文件为自带的GeoDict.dct,用户可以根据需要,建立自己的3.dct文件。  应用程序采用客户/服务器结构,通过OCI接口,实现应用程序对Oracle中空间数据的访问,如图1所示。  MapX应用程序结构  2.1 应用程序开发中的关键技术  在VC的工程项目中加入MapX.cpp和MapX.h两个文件,这两个文件中定义了有关MapX控件的类和访问方法。开发过程中,有如下几个关键技术:  1)访问用户自己的GST文件  在应用程序中,如果用户要访问自己的GST文件,改变MapX控件缺省打开的3.gst文件,就必须对类CMapX进行设置,指定要打开的3.gst文件。方法如下:  CMapX m_MapX;  //指明用户要访问的.GST文件替代缺省设置  m-MapX.SetGeoSet(". oads oads.gst");  2)访问Oracle空间数据库  MapX控件有两种方式访问Oracle中的空间数据,一种为ODBC方式,一种为OCI方式。ODBC方式的缺点是通用接口,速度慢,需要配置数据源DNS。OCI方式的优点是底层接口,速度快。现以OCI方式实现在应用程序中与Oracle的连接并访问Oracle中的空间数据。  通过OCI访问空间数据相当于从服务器端下载相关的空间数据,并在客户端进行显示。客户端显示空间数据的方式就是在原有地图上增加一层新的地图,而与图层相关的类为CmapX2LayerInfo,有两个重要的方法SetType()和AddParameter()。前者用来设置图层的类型,后者为连接数据库设置参数。  图2所示为连接Oracle空间数据库的流程。  连接Oracle空间数据库的流程图  类CmapXLayerInfo是类ColeDispatchDriv2er的继承类,创建类CmapXLayerInfo的方法,即为创建新图层的方法。方法如下:  CMapXLayerInfo LayerInfoObject;  if (!LayerInfoObject.CreateDispatch(LayerInfoObject.GetClsid())){  TRACE0("Failed to Createobject");  return;  }  图层类型为miLayerInfoTypeServer时,连接Oracle数据库需要设置连接字符串、连接方式、是否设置缓存、是否设置最小边界矩形查询、新建图层名称、查询空间数据的SQL语句等参数。下面给出设置连接字符串的VC语句。  VARIANT s;  CString str;  str="SRVR=GISTEST;UID=GISTESTuser;PWD=GISTESTuser";s.vt = VT-BSTR;  s.bstrVal = str.AllocSysString();  LayerInfoObject.AddParameter("CONNECTSTRING",s);查询结果的显示通过类CmapXLayers的Add()方法实现,具体示例如下:  m_MapX.GetLayers().Add(LayerInfoObject,1);3)Oracle Spatial的空间函数  Oracle Spatial提供了适合于空间数据操作的空间函数,如比较常用的用于相交查询的SDO-FILTER,SDORELATE,SDO-WITHIN-DISTANCE;用于缓冲区分析的SDO-GEOM.SDO-BUFFER;用于面积、长度计算函数的SDO-GEOM.AREA,SDO-GEOM.LENGTH等。下面给出用于面积计算的SQL语句示例:  update aTable set aTable.AREA=  mdsys.sdo-geom.sdo-area(GEOLOC,(select sdo-diminfofrom mdsys.sdo-geom-metadata-table where sdo-geommetadata-table.sdo-table-name = "aTable" and sdo-geommetadata-table.sdo-column-name= "GEOLOC"))  其中aTable表示一个空间数据表,它存储空间数据的列名为逗GEOLOC地,列AREA存放计算出的面积值,SDOAREA计算二维多边形的面积,并将计算结果存放到列AREA中保存。  2.2 应用程序示例  应用程序通过与空间数据库的接口来实现对数据库中存储的属性数据和空间数据的访问,同时根据实际情况的需要对数据进行查询,并用地图等直观的形式反应查询结果。  图3中的地图基本数据来源于北大方正MapInfo事业部,基于实验目的,增添了道路长度字段,并设定各个道路的长度,其查询SQL语句为:  SELECT 3 FROM Shanghai-thirdr  WHERE Shanghai-thirdr.RoadLength > 10  基于道路长度属性的查询  文章只是对空间数据库的访问方面做了一些有益的探索,还有很多工作需要做。随着面向空间数据库的应用,基于空间数据库的空间数据挖掘以及将空间数据应用于各行各业的研究将会不断展开。  参考文献  [1] 本丛书编委会.Oracle8.1.6管理员指南[M]. 北京:北京希望电子出版社,2000.  [2] 修文群,池天河,等. 城市地理信息系统[M]. 北京:北京希望电子出版社,1999.  [3] Oracle8.Oracle Spatial User"s Guide and Reference Release 8.1.6[DB/CD].

oracle sql怎么查看blob字段

打开表的数据窗口。BLOB单元将被命名为(BLOB)。右键单击该单元格。您将看到一个铅笔< / strong>图标。单击它。它将打开一个blob编辑器窗口。

如何往oracle中的blob字段写入照片数据

往oracle里面类型为blob写入时,必须先插入一个empty_blob,实行update……具体java里面写入blob的代码如下:public class applyPhotoBLOB { final static String sDBDriver = "oracle.jdbc.driver.OracleDriver";public static void main(String[] args) { // TODO Auto-generated method stub Connection connSDC = null; Connection conn = null; String sConnStr = "jdbc:oracle:thin:@127 0.0 1 1521:sledu"; String sConnStrSDC = "jdbc:oracle:thin:@10 10 8.12:1521:rac2"; String sDBUid = "test"; String sDBPwd = "test"; String sDBUidSDC = "sdcmanager"; String sDBPwdSdc = "sdcmanager_888"; try { applyPhotoBLOB apply = new applyPhotoBLOB(); connSDC = apply.getConn(sConnStrSDC,sDBUidSDC,sDBPwdSdc); if(connSDC!=null) { apply.testBOLB(connSDC); } System.out.println("处理完成!"); } catch(Exception e) { System.out.println(e.getMessage()); } finally { try { if(conn!=null) conn.close(); if(connSDC!=null) connSDC.close(); } catch(Exception e) { System.out.println(e.getMessage()); } } } public void testBOLB(Connection conn) throws Exception { String strSQL = "Insert Into BKS_XSZPXX(XH,ZPLXM,ZP) Values("3071801040","1",empty_blob())"; updateTable1(strSQL,conn); conn.setAutoCommit(false); strSQL = "Select ZP from BKS_XSZPXX where XH="3071801040" For Update"; Statement stmt = null; ResultSet rs = null; stmt = conn.createStatement(); rs = stmt.executeQuery(strSQL); rs.next(); BLOB blob = (BLOB) rs.getBlob("ZP"); OutputStream os = blob.getBinaryOutputStream();// 建立输出流 BufferedOutputStream output = new BufferedOutputStream(os); BufferedInputStream input = new BufferedInputStream(new File("F:/3071801040.jpg").toURL().openStream()); byte[] buff = new byte[2048000]; //用做文件写入的缓冲 int bytesRead; while(-1 != (bytesRead = input.read(buff, 0, buff.length))) { output.write(buff, 0, bytesRead); //System.out.println(bytesRead); } output.close(); input.close(); rs.close(); conn.commit(); conn.setAutoCommit(true); stmt.close(); } private int updateTable1(String strSQL,Connection conn) throws Exception { PreparedStatement stmt = null; int result = 0; try { stmt = conn.prepareStatement(strSQL); result = stmt.executeUpdate(); } catch(Exception e) { throw new Exception(e.getMessage()); } finally { stmt.close(); } return result ; } public Connection getConn(String StrConn,String uid,String pwd) throws Exception { Connection conn = null; try { Class.forName(sDBDriver); conn = DriverManager.getConnection(StrConn,uid,pwd); } catch (Exception e) { throw new Exception(e.getMessage()); } return conn; }}另外:放入business里面的时候,其zp最好定义为InputStream转载,仅供参考。

Oracle中关于blob数的处理

blob是以二进制的形式存储大型数据,如图片、视频、文本 一般blob数据长度会很大,oracle缓冲区最大支持长度为2000,所以需要将原文分段转化

oracle中blob,clob,nclob,Bfile主要区别是什么? .

他们的最大存储大小都为4gbBFILE 二进制文件,存储在数据库外的操作系统文件,只读的。把此文件当二进制处理。(类似于long类型)BLOB 二进制大对象。存储在数据库里的大对象,一般是图像声音等文件。 (类似于row和long row)CLOB 字符型大对象。一般存储大数量文本信息。存储单字节,固定宽度的数据。NCLOB 字节字符大对象。存储单字节大块,多字节固定宽度Bfile和clob,nclob,blob是不同的。Bfile是外部的lob类型,其他三个是oracle内部的lob类型,它们至少有三点主要不同的地方:1. bfile的值是存在操作系统的文件中,而不是数据库中。2. bfile不参与数据库事务操作。也就是改变bifle不能commit或rollback。但是改变bfile的locator可以commit或rollback。3. bfile在plsql和oracle中是只读的,不允许写。

oracle中Blob和Clob类型的区别

blob 存储大的二进制Clob 存储大的文本如果是纯文本,可以使用Clob所有文件,都可以使用blob

Oracle中Blob和Clob的作用?

blob:二进制lob,为二进制数据,最长可达4GB,存贮在数据库中。 clob:字符lob,字符数据,最长可以达到4GB,存贮在数据库中。

oracle中blob,clob,nclob主要区别是什么?

一、指代不同1、blob:是指图像中的一块连通区域,Blob分析就是对前景/背景分离后的二值图像。2、clob:是内置类型,将字符大对象 (Character Large Object) 存储为数据库表某一行中的一个列值。3、nclob:长度可变的字符大对象。二、特点不同1、blob:对运动目标在图像平面上的轨迹进行估计的问题。2、clob:CLOB 对象包含一个指向 SQL CLOB 数据的逻辑指针而不是数据本身。Clob 对象在被创建的事务处理期间有效。3、nclob:大小可变的CLOB 对象,指向 SQL CLOB 数据的逻辑指针。三、数据保存方式不同1、blob:就是使用二进制保存数据。2、clob:CLOB使用CHAR来保存数据。3、nclob:使用NCHAR来保存数据。参考资料来源:百度百科-CLOB参考资料来源:百度百科-blo

如何把 上传的文件 转成二进制存入oracle中的BLOB字段上,恳请高手们指导一下

用hex函数么

如何给oracle导入blob和clob字段

  例:假设给oracle数据库导入blob类型的图片,图片放在目录G:images下。 1.先创建一个目录directory,命名为IMAGES; CREATE OR REPLACE DIRE,TORY IMAGES AS "G: est";或者直接在PlSql Directories目录下新建目录; 2.创建一个存储过程,批量导入blob create or replace procedure img_insert asbeginDECLARE f_lob bfile;--文件类型b_lobblob; --用来存储图片的名称filenamevarchar2(400);begin --循环的初始值for i in 1 .. 100 loop --找出每一列的文件名,因为文件名和图片名称是一样的 select t.flnm into filename from ZS_GC_SNIMDT t where t.id =i; --查找到之后,执行update操作,插入空的blob (注意IMAGES一定要大写) update ZS_GC_SNIMDT set brfl = empty_blob()whereid = i return brfl into b_lob; --获取指定目录下的文件 f_lob := bfilename("IMAGES", filename); -- 以只读的方式打开文件 dbms_lob.fileopen(f_lob, dbms_lob.file_readonly);--传递对象 dbms_lob.loadfromfile(b_lob, f_lob, dbms_lob.getlength(f_lob)); --关闭原始文件

如何把ORACLE数据从CLOB类型转化为BLOB类型

先删除后建立。前提:我的report_data 字段类型是CLOBalterer table REC_DOWNLOAD_LIST drop column report_data ;alterer table REC_DOWNLOAD_LIST add report_data BLOB;

oracle中Blob和Clob类型的区别是什么?

BLOB是按二进制来存储的,而CLOB是可以直接存储文字的。1、BLOB和CLOB都是大字段类型2、BLOB是按二进制来存储的3、CLOB是可以直接存储文字的4、两个是可以互换的的,或者可以直接用LOB字段代替这两个。5、但是为了更好的管理ORACLE数据库,通常像图片、文件、音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去。6、像文章或者是较长的文字,就用CLOB存储,这样对以后的查询更新存储等操作都提供很大的方便。7、CLOB全称为字符大型对象(Character Large Object)。8、它与LONG数据类型类似,只不过CLOB用于存储数据库中的大型单字节字符数据块,不支持宽度不等的字符集。9、可存储的最大大小为4G字节10、NCLOB 基于国家语言字符集的NCLOB数据类型用于存储数据库中的固定宽度单字节或多字节字符的大型数据块11、不支持宽度不等的字符集12、可存储的最大大小为4G字节13、BFILE 当大型二进制对象的大小大与4G字节时,BFILE数据类型用于将其存储在数据库外的操作系统文件中14、当其大小不足4G字节时,则将其存储在数据库内部的操作系统文件中,BFILE列存储文件定位程序,此定位程序指向服务器上的大型二进制文件

为啥oracle的blob中存的是16进制而不是二进制

更新数据的时候,写insert语句的时候,不更新blob字段,blob字段对应的数据用 empty_blob() 代替就行。(注意:在执行上面那个 sql 之前,一定要把 connection 设置成不自动提交: conn.setAutoCommit(false); )最后单独出来blob字段://把 blob 字段取出来String sql = "select ANNEX from market_info_collect_t where info_id=""+ infoId + "" for update ";Statement stt=null;stt = conn.createStatement();rs = stt.executeQuery(sql);if (rs.next()) {blob = (oracle.sql.BLOB) rs.getBlob("ANNEX");outStream = blob.getBinaryOutputStream();instream = myFile.getContentStream();byte[] data = new byte[instream.available()];instream.read(data);outStream.write(data, 0, data.length);}instream.close();outStream.flush();outStream.close();上面这段是我以前写过的代码中的一部分,你看一下,希望对你能有帮助。。。

如何读取Oracle的BLOB字段里的文件

不知道你用的编程语言是什么 若是java 的话 直接从数据库里面拿(如果有hibernate支持)那就domain.getBlob()。然后用流去将blob转换成string 具体怎么做 百度。存值的时候是将表单的string转换成blob再塞进数据库。newSerialBlob(String对象的.getBytes())

oracle中blob,clob,nclob,Bfile主要区别是什么? .

他们的最大存储大小都为4gbBFILE二进制文件,存储在数据库外的操作系统文件,只读的。把此文件当二进制处理。(类似于long类型)BLOB二进制大对象。存储在数据库里的大对象,一般是图像声音等文件。(类似于row和longrow)CLOB字符型大对象。一般存储大数量文本信息。存储单字节,固定宽度的数据。NCLOB字节字符大对象。存储单字节大块,多字节固定宽度Bfile和clob,nclob,blob是不同的。Bfile是外部的lob类型,其他三个是oracle内部的lob类型,它们至少有三点主要不同的地方:1.bfile的值是存在操作系统的文件中,而不是数据库中。2.bfile不参与数据库事务操作。也就是改变bifle不能commit或rollback。但是改变bfile的locator可以commit或rollback。3.bfile在plsql和oracle中是只读的,不允许写。

oracle中blob,clob,nclob主要区别是什么?

BLOB全称为二进制大型对象(Binary Large Object)。它用于存储数据库中的大型二进制对象。可存储的最大大小为4G字节 CLOB CLOB全称为字符大型对象(Character Large Object)。它与LONG数据类型类似,只不过CLOB用于存储数据库中的大型单字节字符数据块,不支持宽度不等的字符集。可存储的最大大小为4G字节 NCLOB 基于国家语言字符集的NCLOB数据类型用于存储数据库中的固定宽度单字节或多字节字符的大型数据块,不支持宽度不等的字符集。可存储的最大大小为4G字节 BFILE 当大型二进制对象的大小大与4G字节时,BFILE数据类型用于将其存储在数据库外的操作系统文件中;当其大小不足4G字节时,则将其存储在数据库内部的操作系统文件中,BFILE列存储文件定位程序,此定位程序指向服务器上的大型二进制文件。

ORACLE ORA-8103错误要如何解决

ORA-8103是我们Database Consultant 经常要遇到的一个问题,了解ORA-8103的成因非常重要。【数据恢复】利用构造ROWID实现无备份情况下绕过ORA-1578、ORA-8103、ORA-1410等逻辑/物理坏块问题简单来说ORA-8103 的主要成因有2类:数据块的 block type 类型 是 无效的 或者读出来的块类型与Oracle期望的不一致。 例如 Oracle 认为该数据块的类型为data(type=6),但实际却不是。数据块中的data_object_id 和 数据字典中的data_object_id不匹配针对ORA-8103问题 我们优先推荐一些措施:ORA-08103问题的诊断最好是能生成8103错误的ERROR STACK TRACE, 在TRACE中会记录具体引发8103的对象的OBJ和OBJD,这便于我们定位可能存在corruption的对象。问题在于往往前台进程遇到ORA-08103错误不会在后台生成TRACE文件,这需要我们手动设置8103 触发ERRORSTACK的EVENTS:ALTER SYSTEM SET EVENTS "8103 TRACE NAME ERRORSTACK LEVEL 3′;解决思路包括:1. 通过OBJD和DBA定位到具体的表名和块号2. 有条件的情况下对该表做一个analyze .. validate structure3. 有条件的情况下对该表所在tablespace做一个 dbms_space_admin.ASSM_TABLESPACE_VERIFY4. 有条件的情况下move这张表或者相关的分区,尝试绕过该问题5. 有条件的情况下降该表或分区移动到MSSM表空间上,绕过该问题execute dbms_space_admin.tablespace_verify(‘&tablespace_name")oradebug setmypidoradebug tracefile_nameexecute dbms_space_admin.assm_tablespace_verify(‘&tablespace_name",dbms_space_admin.TS_VERIFY_BITMAPS)oradebug setmypidoradebug tracefile_name针对不同的 analyze validate structure 后得到的结果 , 我们可以得到一些初步的结论:如果执行 flush buffer cache之后再次analyze validate structure不再报ORA-8103错误则说明:可能是完全正常的现象,之前的ORA-8103正是也因为对象正在被DROP/TRUNCATE而导致SELECT报ORA-8103。一般来说Call Stack会显示进程正尝试访问该段的segment header。 更多信息可以参考BUG 7441661也可能该问题仅仅发生在buffer cache层,而没有发生在DISK上。通过flush buffer_cache若能解决,则一般是这种情况,往往是Buffer Cache管理的BUG 。如果执行 flush buffer cache之后再次analyze validate structure再次报ORA-8103错误则说明:如果dump对应的数据块发现 该块在逻辑上是完整一致的(也可以用bbed/dbv工具验证), 则有可能是Lost Write,则不是被其他对象重格式化使用了。这里判断Lost Write的一个重要手段是 对块做recover/blockrecover,如果recover能修复该块,则说明是因为Lost Write引起了本ORA-8103问题,如果不是则说明99%的可能性是BUG引起的。常见的一种现象是 使用第三方工具在数据库打开的情况下copy 数据库,这些工具的BUG可能导致copy 老的版本的block到目标新库中。另一种可能是 extent盘区级别的不一致。 同一个数据块/extent 可能 同时属于 2个数据段segment,这导致其中的一个被后者覆盖。 通过recover的方式是无法修复这种场景的, 因为这种逻辑的讹误发生在表空间级别的extent信息上。 可以检查dba_extents/dba_segments/dba_free_space这些视图来确定问题数据块到底是否同时属于多个对象, 或者 一个数据块 同时出现在dba_extents/dba_segments/dba_free_space 三个视图中, 因为 used extent 不该出现在dba_free_space中,而free extent不该在dba_extents,当然要排除recyclebin中对象的影响。 绝大多数情况下这种extent逻辑不一致的现象, 被称作extent overlap , 通常是Oracle Space Management空间管理层面的BUG。在对ORA-8103问题的诊断过程中 定位问题的OBJD异常重要。应当说准确地将ORA-8103错误与BUG定位起来是有难度的,因为这往往需要涉及到redo dump以发现到底是哪些opcode造成了后续的objd 或 block type 不一致。在一些BUG中我们发现,由于可能的变量陈旧,造成objd的结构未合理清除, 之后就发现block上的objd是错的了,可能遇到ORA-8103也可能是ORA-1410, 这引起了后续其他的逻辑讹误,以至于很难通过TRACE/REDO LOG DUMP来定位原始问题所在。 这也是为什么虽然在例如版本10.2.0.4上有几个ORA-8103的bug Note, 但这些BUG最终未被close为real software bug即真的软件BUG , 大多都是不了了之,因为在用户现场的TRACE和REDO DUMP都未必能真实定位到问题所在,这也是为什么我们要说逻辑讹误的分析和处理原要比物理讹误来的复杂。Maclean的经验是 在有大量Oracle DB的环境下 一年出个几次的逻辑/物理坏块是很正常的事情, 对于物理讹误 我们只要切实备份即可99%得解决。 而对于逻辑坏块可做的 事情不多, 打最新的补丁 开 db_block_checking、db_block_checksum几件事情而已。值得一说的是 如果去读一下ORA-8103的一些Bug Note,可以发现使用 LOB、APPEND INSERT、PARALLEL INSERT、exchange partition 、Split partition、advanced compression、HCC 混合列压缩往往是引起ORA-8103的高危操作 , 但实际我们又不可能放弃上述操作。如果自己搞不定可以找ASKMACLEAN专业数据库修复团队成员帮您恢复!

ORACLE数据库 ORA-00600 [ktubko_1] 错误,请问如何解决。

建议你参考http://www.xifenfei.com/3336.html

oracle expdp导出报错“字符串缓冲区太小”

你没有ORACLE账户吧,你公司要是买了付费ORACLE会给账号的,你去要一个,我把里面关于这个的文章粘给你,不给你翻译了挺长的。你看看Symptoms应该是你这个问题,在你的11.2.0.1.0是可以发生的。后面有SolutionSymptomsAll of a sudden, your data pump export jobs all fail with the following bunch of errors:Export: Release 11.2.0.3.0 - Production on Sunday, Apr 28, 22:00:26 2013Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,Data Mining and Real Application Testing optionsORA-31626: Job does not existORA-31638: cannot attach to job Your_JOBNAME for user SYSTEMORA-06512: at "SYS.DBMS_SYS_ERROR", line 95ORA-06512: at "SYS.KUPV$FT_INT", line 428ORA-39077: unable to subscribe agent KUPC$A_4_220050709685000 to queue "KUPC$C_4_20130428220032"ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95ORA-06512: at "SYS.KUPC$QUE_INT", line 250ORA-06502: PL/SQL: numeric or value error: character string buffer too smallSolutionInitially, Oracle Development built a fix under Patch 16473783.We found out that the fix was incomplete and needed to be re-written.This is under progress and monitored via unpublished Bug 16928674.After encountering this symptom, this is not resolved unless recreating of datapump like followings. @$ORACLE_HOME/rdbms/admin/catdph.sql @$ORACLE_HOME/rdbms/admin/prvtdtde.plb @$ORACLE_HOME/rdbms/admin/catdpb.sql @$ORACLE_HOME/rdbms/admin/dbmspump.sql @$ORACLE_HOME/rdbms/admin/utlrp.sqlGenerally speaking, we can recreate the datapump objects in 11g by calling;1. Catproc.sql SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql2. To recompile invalid objects, if any SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sqlThis is described in Note 430221.1 How To Reload Datapump Utility EXPDP/IMPDP

有关于ORACLE中自定义字段类型--CREATE TYPE--高级专题

然后呢,有什么问题

如何将照片存储在oracle中

在开发过程中,经常会遇到oracle中存图片的情况,下面就为您想介绍一个可以轻松在oracle中存图片的方法,希望对您能有所帮助。一个存储图片文件的过程,任何开发工具都可以通过调用过程把图片文存储到数据库中。oracle中存图片的详细步骤:SQL> connect chanet/chanet@oradb; 已连接。SQL> CREATE TABLE IMAGE_LOB (T_ID VARCHAR2 (5) NOT NULL,T_IMAGE BLOB NOT NULL); 表已创建。SQL> CREATE OR REPLACE DIRECTORY IMAGES AS "C:Oracle"; --图片目录目录已创建。SQL> CREATE OR REPLACE PROCEDURE IMG_INSERT (TID VARCHAR2,FILENAME VARCHAR2) AS F_LOB BFILE; B_LOB BLOB; BEGIN INSERT INTO IMAGE_LOB (T_ID, T_IMAGE) VALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB; F_LOB:= BFILENAME ("IMAGES", FILENAME); DBMS_LOB.FILEOPEN (F_LOB, DBMS_LOB.FILE_READONLY); DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB, DBMS_LOB.GETLENGTH (F_LOB)); DBMS_LOB.FILECLOSE (F_LOB); COMMIT; END; / 过程已创建。SQL> EXEC IMG_INSERT("1","f_TEST.jpg"); PL/SQL 过程已成功完成。

如何将照片存储在oracle中

将照片base64加、密后,把密文保存到数据库中,需要用到时,从数据库中取出来,base64解、密,然后解析为图片。又或者将图片保存到指定目录下,在Oracle的表中存一下图片的路径,通过查询图片路径,显示图片

oracle listener reload 和重起的区别

reload

怎样用c#.net制作水晶报表并且连接Oracle数据库

你是制作报表由问题,还是连接oracle数据库有问题

oracle多个order by

楼上正解,order by name ,age 优先name排序,name相同的以age排序...

oracle怎么用order by按自己规定的字符串排序?

你可以增加一个数字类型字段,按照你想要的排序赋值,然后order by这个字段就行。

oracle sql语句中 先执行where还是order by

order by 最后执行

ORACLE安装光碟怎么一分为三

用damon 4.7+UltraISO结合方式刻录超过容量规定的光盘,可以参阅一下 1.用UltraISO打开VISTA_DVD安装盘镜像,提取install.wim镜像到本地磁盘上,如:f:vistasourcesinstall.wim 2.安装WAIK软件。如果在XP下安装需先安装某些软件,至于什么软件,安装WAIK时,缺少什么软件,安装过程中会自动提示的。如果在VISTA下,直接安装就可以了。 3.开始==>所有程序==>Microsoft Windows AIK==>Windows PE工具命令(VISTA下操作需以管理员方式运行),打开之后,切换到c:Program FilesWindows AIKToolsx86,如果是在VISTA下,没必要切换了,直接按第四步来操作即可。 4.拆分镜像。在CMD内,输入以下命令,如: imagex /split f:vistasourcesinstall.wim f: empinstall.swm 380 ,解释一下, f:vistasourcesinstall.wim是要拆分的映像文件的名称和位置,f: empinstall.swm是拆分的 .wim 文件的目标名称和位置 380是每个拆分后的文件大小,以M为单位。之所以设置为380M的大小,主要考虑了CD1的大小,为了使CD1不超过700M,必须得控制好输出文件的大小。 5.打包。用UltraISO软件打开VISTA_DVD安装盘镜像,从中删除install.wim,然后把拆分得来的install.swm文件替换进去。另存为到本地磁盘,即成为CD1 6.创建CD2、CD3、CD4、CD5镜像。打开UltraISO,然后在其上面新建一个文件夹,名为:sources 然后单击SOURCES文件夹,把install2.swm、install3.swm、install4.swm、install5.swm放进去,分别建立起CD2、CD3、CD4、CD5。除了CD1,后面的镜像不用做成可启动光盘了。 7、刻盘。完成以上工作后,就可以刻盘用了。 注:所有镜像必须放到sources文件夹内,否则安装程序就无法访问到了。控制好输出大小,可以节省CD 参考: http://iask.sina.com.cn/b/9465128.html?from=related http://soft.deepin.org/simple/index.php?t710072.html

oracle 分组完的数据 怎么求总和

当然可以啊

我想用hibernate连接oracle数据库, 这个参数

<property name="connection.url">jdbc:oracle:thin:@192.168.1.108:1521:orcl</property>

rehat 安装oracle 11 出现的问题

楼上正解

ORACLE字符型的默认值怎么设置

如果表已经存在,用如下方法设置默认值。1alter table 表名 modify 字段名 default 默认值;如test表中设置age字段为30,可用如下语句:1alter table test modify age default 30;测试:添加一条记录:1insert into test (name) values ("du小智");结果:这里可以看到du小智的默认age则为30。

如何正确配置基于 oracle 数据库的 wps v6.12 集群应用系统

本文描述了远程消息传递和远程支持集群环境的搭建配置过程。这个集群环境由三个集群组成,具体的拓扑结构是:  应用程序集群,不但为应用程序提供工作负载管理以及URL和EJB 请求故障转移功能,而且还部署了BPC和HTM 容器,提供了对长业务流程和人工业务流程的应用程序的支持。  远程消息集群,运行WPS默认提供的四个总线(SCA应用,SCA系统,BPC和CEI)提供独立的高效的消息引擎。  远程支持集群,部署通用事件体系结构和业务规则管理等其他应用程序,提供异步的事件查询。  这三个集群配置在两台机器的不同的节点上,即三个集群的成员水平部署在两台机器上。在一个集群中的两个成员是该集群中完全相同的副本。消息传递引擎、业务支持和业务流程应用程序分别位于不同的集群上,所以可以根据实际业务负载和硬件环境,灵活调配所需的资源。这种模式,也称为黄金拓扑,是 WPS 中最复杂的拓扑结构,是大多数企业集成应用用户的首选

简述Oracle数据仓库的体系结构

Oracle数据仓库的体系结构可以分成三个层次:数据获取层:Oracle Database Enterprise ETL Option + Oracle Database Data Quality Option 在Oracle Database 10g 同一个软件中实现了从数据模型设计,数据质量管理,ETL 流程设计和元数据管理的全部功能。所有的 ETL 过程可以通过Oracle数据仓库中提供的工具: Oracle Warehouse Builder 生成的ETL 脚本存储在Oracle 10g 数据库中执行,按照数据仓库系统的要求,定时地完成数据的抽取并加载到数据仓库系统中。由于ETL 的执行是在Oracle 10g 数据库中,可以充分利用Oracle 10g 数据库提供的强大并行处理能力,保证数据获取的高效、可靠执行。数据存储层:Oracle 10g数据库实现对数据仓库系统各种类型数据的集中存储和管理,包括各种结构化数据 和非结构化数据。Oracle 10g数据库内置OLAP和数据挖掘功能,不需要进行复杂的数据迁移,就可以直接 在关系数据库中完成复杂的统计分析功能。Oracle 10g数据库通过使用分区技术可以支持海量数据的存储,一个数据库最大数据量为8,000 PB(1PB=1024TB)。Oracle 10g提供强大的并行处理能力,满足数据仓库系统 对于性能和扩展性方面的要求。而且系统通过网格控制台(Grid Control)进行数据仓库统一管理。数据展现层:Oracle提供全新的商务智能解决方案Oracle BI EE、OLAP分析开发工具(JDeveloper+BI Beans)和 数据挖掘工具(Oracle Data Miner),将统计分析的结果通过各种方式展现。Oracle的数据展现方案使用Java 和 HTML两种方式实现,基于标准的J2EE平台。由于使用统一的元数据库,不需要进行元数据的交换,能够 最大限度地减少系统的维护工作。同时,Oracle的数据展现方案提供具有强大分析功能和非常易用的分析 仪表板, 并支持通过门户(Portal)技术进行集成,为不同类型的用户提供一致的访问界面。相关阅读数据仓库是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,它用于支持企业或组织的决策分析处理。数据仓库,英文名称为Data Warehouse,可简写为DW。数据仓库之父Bill Inmon在1991年出版的“Building the Data Warehouse”一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。

ORACLE CLIENT有什么用

lus功能更强大就可以了建议使用toad但是在sqlplus下也要经常使用,因为如果换了工作环境,而无法使用toad或plsql developer这样的工具的话。还可以用sqlplus来完成工作 对,toad就是通过client与oracle连接了,只要有toad,在相应的配置下tnsnames.ora,保持网络正常就可以管理。

ORACLE CLIENT有什么用?

Client当然是客户端程序,ORACLE 9I+PLSQL是服务器端程序。但是日常管理你不可能每次都登录到服务器吧,Client就是可以让你不用登录服务器就可以远程管理的,那个PLSQL就是远程管理程序可以装在服务器,也可以装在客户端。个人学习如果是在本机使用,这些你就不需要担心。oracle安装在别的服务器的时候,需要远程操作该数据库的时候可以在本地安装客户端。你说的ORACLE 9I是oracle服务器,如果你在本地装了这个,相当与你在本地安装了一个oracle服务器版本,你可以在本地数据库上创建实例。当然装了ORACLE 9I后,你不用安装ORACLE CLIENT也可以对远端的数据库服务器进行操作了。

Oracle中的cluster是什么意思,它有什么作用?

第104回段家庄重招新女婿房山寨双并旧强人

oracle中column命令有哪些

COL命令:主要格式化列的显示形式。 该命令有许多选项,具体如下: COL[UMN] [{ column|expr} [ option ...]] Option选项可以是如下的子句: ALI[AS] alias CLE[AR] FOLD_A[FTER] FOLD_B[EFORE] FOR[MAT] format HEA[DING] text JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]} LIKE { expr|alias} NEWL[INE] NEW_V[ALUE] variable NOPRI[NT]|PRI[NT] NUL[L] text OLD_V[ALUE] variable ON|OFF WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]

oracle中column是什么意思啊

字段名

数据库ORA-28547 :connection to server failed,probable Oracle Net admin error

第一个方法解决方案: listener.ora是服务器端的配置oracle的文件。后来将listener.ora的这一行注释掉,就行了,, (PROGRAM = extproc)修改为:SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = prod) (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)# (PROGRAM = extproc) ) )LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.8)(PORT = 1522)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) ) 第二种解决方案如下:参考路径:https://forums.oracle.com/forums/message.jspa?messageID=693607整理如下:客户端的配置文件sqlnet.ora中配置如下:将#SQLNET.AUTHENTICATION_SERVICES= (NTS)注释掉,改成如下即可!如下:SQLNET.AUTHENTICATION_SERVICES= (NONE)同时修改监听器配置文件,具体做法是: 在oracle安装目录下搜索listener.ora文件,一般在$/NETWORK/ADMIN目录下,把主机名用ip地址代替,例如(ADDRESS = (PROTOCOL = TCP)(HOST = HBONLINE1)(PORT = 1523))改为(ADDRESS = (PROTOCOL = TCP)(HOST = 168.168.168.42)(PORT = 1523))。

oracle写sql,将数字范围,例如:1-10拆分为10个数字:1,2,3,4,5,6,7,8,9,10

判断字符串中全是数字,很多办法,自己写函数循环判断,正则表达式判断,我自己觉得这个可能效率比较高length(replace("023232","0123456789",""))=0,不过你得测一下

linux怎么查看oracle版本

输入数据库任意用户的用户名和密码,进行登陆。登陆成功后,就可以看到Oracle的版本信息了

linux怎么查看oracle版本

[oracle@ceglnx01 bin]$ sqlplus -vSQL*Plus: Release 10.2.0.4.0 - Production1:使用file命令查看32位还是64位客户端。Oracle Client 32 bit[oracle@db-server-01 ~]$ which sqlplus/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus[oracle@db-server-01 ~]$ file /u01/app/oracle/product/10.2.0/db_1/bin/sqlplus/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not strippedOracle Client 64 bit[oracle@db-server-02 ~]$ which sqlplus/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus[oracle@db-server-02 ~]$ file /u01/app/oracle/product/10.2.0/db_1/bin/sqlplus/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped或者Oracle Client 32 bit[oracle@db-server-01 logs]$ cd /u01/app/oracle/product/10.2.0/db_1/bin[oracle@db-server-01 bin]$ file oracleoracle: setuid setgid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not strippedOracle Client 64 bit[oracle@db-server-02 ~]$ cd /u01/app/oracle/product/10.2.0/db_1/bin[oracle@db-server-02 bin]$ file oracleoracle: setuid setgid ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped2: 通过查看$ORACLE_HOME下的lib或lib32目录,如果两个目录都存成,则为64位,如果只有lib目录.则为32位客户端。[oracle@db-server-01 db_1]$ ls -d liblib[oracle@db-server-01 db_1]$ ls -d lib*lib lib32输入数据库任意用户的用户名和密码,进行登陆。登陆成功后,就可以看到Oracle的版本信息了关于更多Linux的学习,请查阅书籍《linux就该这么学》。

Oracle 数据库启动 startup和startup force的区别

startup force 是强制启动,只有一般性真心有时候起不来才会用。 不对吧? 你是用shutdown immediate 的吗?一般启动流程是装载实例 startup mount 装载数据库开启数据库 alter database open;

怎么在linux下安装oracle数据库

在linux下安装oracle数据库步骤:1、下载oracle安装文件一、检查必要条件1.1、检查内存及交换分区Oracle要求2GB以上的内存#查看内存大小grep MemTotal /proc/meminfo#查看交换区大小grep SwapTotal /proc/meminfo#也可以使用下面的命令查看内存大小free -m1234567交换分区要求内存大小交换分区要求1GB~2GB 内存的1.5倍 2GB~16GB 和内存大小相等 大于16GB 16GB 1.2、确认操作系统位数[root@FSWWOA /]# uname -mx86_6412x86_64:表示用的是Intel的处理器,并且操作系统是64位的 i386:表示是32位1.3、检查硬盘空间#查看临时目录空间[root@FSWWOA /]# df -h /tmp#查看硬盘总空间[root@FSWWOA /]# df -h1234Oracle安装是要求/tmp目录要有至少1GB的空间。 以下是Oracle各个版本安装是所需的空间版本所需空间Enterprise Edition(企业版) 4.7GB Standard Edition(标准版) 4.6GB 二、安装必要软件首先需要检查系统版本,然后从Oracle官方文档中找到对应的Linux版本。[root@FSWWOA /]# cat /proc/versionLinux version 2.6.32-71.el6.x86_64 (root@CentOS6064.localdomain) (gcc version 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) ) #1 SMP Wed Feb 29 15:21:16 CST 201212Oracle官方文档中对应的版本如下On Red Hat Enterprise Linux 6 2.6.32-71.el6.x86_64 or later然后根据Linux版本找到其必要安装的软件,如下The following or later version of packages for Oracle Linux 6, Red Hat Enterprise Linux 6, and Asianux Server 4 must be installed:binutils-2.20.51.0.2-5.11.el6 (x86_64)compat-libcap1-1.10-1 (x86_64)compat-libstdc++-33-3.2.3-69.el6 (x86_64)compat-libstdc++-33-3.2.3-69.el6.i686gcc-4.4.4-13.el6 (x86_64)gcc-c++-4.4.4-13.el6 (x86_64)glibc-2.12-1.7.el6 (i686)glibc-2.12-1.7.el6 (x86_64)glibc-devel-2.12-1.7.el6 (x86_64)glibc-devel-2.12-1.7.el6.i686kshlibgcc-4.4.4-13.el6 (i686)libgcc-4.4.4-13.el6 (x86_64)libstdc++-4.4.4-13.el6 (x86_64)libstdc++-4.4.4-13.el6.i686libstdc++-devel-4.4.4-13.el6 (x86_64)libstdc++-devel-4.4.4-13.el6.i686libaio-0.3.107-10.el6 (x86_64)libaio-0.3.107-10.el6.i686libaio-devel-0.3.107-10.el6 (x86_64)libaio-devel-0.3.107-10.el6.i686make-3.81-19.el6sysstat-9.0.4-11.el6 (x86_64)1234567891011121314151617181920212223检查系统是否安装以上的软件,如果没有安装则安装这些软件yum install -y binutils.x86_64 binutils-devel.x86_64yum install -y compat-libcap1.x86_64yum install -y compat-libstdc++-33.x86_64yum install -y compat-libstdc++-33.i386yum install -y gcc.x86_64 gcc-c++.x86_64yum install -y glibc.x86_64 glibc.i686 glibc-devel.x86_64 glibc-devel.i386yum install -y ksh.x86_64yum install -y libgcc.i386 libgcc.x86_64yum install -y libstdc++.i386 libstdc++.x86_64 libstdc++-devel.i386 libstdc++-devel.x86_64yum install -y libaio libaio-develyum install -y make.x86_64yum install -y sysstat.x86_64yum install -y pdksh.x86_64/*-------------------------------------*/yum install -y unixODBC.x86_64 unixODBC.i386 unixODBC-devel.i386 unixODBC-devel.x86_64123456789101112131415三、创建Oracle用户和组[root@FSWWOA /]# groupadd dba[root@FSWWOA /]# groupadd oinstall#添加用户[root@FSWWOA /]# useradd -g oinstall -G dba oracle#设置Oracle的密码[root@FSWWOA /]# pwd oracle oracle#这里密码使用:oracle12345678四、修改系统参数4.1、修改用户的SHELL的限制修改/etc/security/limits.conf文件vi /etc/security/limits.conf1然后在文件中添加如下内容oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 6553612344.2、修改/etc/pam.d/login 文件vi /etc/pam.d/login1然后在文件中添加如下内容session required /lib/security/pam_limits.sosession required pam_limits.so124.3、修改系统核心参数修改/etc/sysctl.conf文件vi /etc/sysctl.conf,然后在文件中加入fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 536870912kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 10485761234567891011执行sysctl -p是配置立刻生效。使用sysctl -a查看所有系统参数。五、创建Oracle安装目录5.1创建Oracle安装目录cd /u01mkdir -p app/oracle/product/11.2.0/dbhome_1mkdir app/oradata1235.2修改目录所有者[root@FSWWOA u01]# chown -R oracle:oinstall app[root@FSWWOA u01]# ll总用量 20drwxr-xr-x. 4 oracle oinstall 4096 11月 25 08:46 appdrwx------. 2 root root 16384 11月 24 14:29 lost+found12345六、修改系统环境变量使用vi ~/.bash_profile打开环境变量配置文件。加入如下内容export ORACLE_BASE=/u01/appexport ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1export ORACLE_SID=orclexport PATH=$PATH:$HOME/bin:$ORACLE_HOME/binexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/libexport NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 123456然后使用source ~/.bash_profile是配置立即生效。使用env | grep ORACLE可以查看环境变量配置。七、安装Oracle7.1解压Oracle安装文件将Oracle拷贝至Linux服务器上,然后解压unzip linux.x64_11gR2_database_1of2.zipunzip linux.x64_11gR2_database_2of2.zip12如果使用光盘安装,则使用mount -t iso9660 /dev/dvd /mnt/dvd挂载光盘7.2设置安装环境如果Linux系统字符编码是中文的,在安装过程中Oracle安装界面会全部乱码。可使用export LANG=en_US,将会话的字符集改为英文字符集,然后再安装就不会出现乱码。另外,Oracle安装时需要图形界面的支持。剩余部分见PDF文档(后续图片太多不再一一上传),剩余部分如下: 7.3开始安装Oracle 八、测试安装结果 九、修改防火墙配置,将Oracle端口添加到例外 十、将Oracle设置自启动 十一、设置Oracle用户名密码不区分大小写关于更多Linux的学习,请查阅书籍《linux就该这么学》。

怎么在linux下安装oracle数据库

非常全面,建议你去看看http://jingyan.baidu.com/article/11c17a2c7c0c69f446e39d06.html

linux怎么安装oracle

安装ORACLE 需要提前装需要安装oracle配置的包,之后才能安装oracle,这个网上找的到的,或者你上oracle官网上看看。

在Linux平台下 怎样搭建Oracle数据库 ? 越详细越好 紧急 还望高手指点?

与linux和oracle版本有关

linux下安装oracle 依赖包哪里下载?

首先这些包一定要装。其次linux的安装盘中就能找到所需要的包。

linux下怎么安装oracle ?

我写过一篇完整的图文教程,需要的话给我邮箱,我发给你

linux 安装oracle出现怪事

在哪找的这些包哦...我建议用linux的自动更新功能自动安装那些你每安装的包....如果吧行就用命令强制安装具体方法...网上很多的,当年我装rac的时候就是为了装296这个版本...用强制安装才搞定的..实在不行那么就把系统全装过...安装包的时候选择全选...以后装oracle 也不用装什么系统包了多舒服

安装Oracle VM VirtualBox后打开出错,请问是什么原因?

VirtualBox - Error In supR3HardenedWinReSpawn---------------------------<html><b>Error relaunching VirtualBox VM process: 5<br>Command line: "60eaff78-4bdd-042d-2e72-669728efd737-suplib-3rdchild --comment winxp --startvm 499b2a36-d9f9-47ea-b041-aba372dccb3c --no-startvm-errormsgbox --sup-hardening-log=D:windowswinxpLogsVBoxHardening.log" (rc=-104)</b><br/><br/>Please try reinstalling VirtualBox.<br><br><!--EOM-->where: supR3HardenedWinReSpawnwhat: 5VERR_INVALID_NAME (-104) - Invalid (malformed) file/path name.</html>---------------------------OK ---------------------------

怎样在Oracle中拼接字符串

DECLAREv_select VARCHAR2(1000);v_result VARCHAR2(1000);v_c VARCHAR2(1000);BEGIN v_result := "where t.fast =";v_c := "测试4";v_select := "select * from fast t "||v_result || 4 || " and t.snow = """||v_c||""""; dbms_output.put_line(v_select);END;最终结果:select * from fast t where t.fast =4 and t.snow = "测试4"

oracle中用concat语句这样用不对吗? select concat(empno,ename,job)as employees from emp;

和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样。 比如执行下面的SQL语句: SELECT "工号为"||FNumber||"的员工姓名为"||FName FROM T_Employee WHERE FName IS NOT NULL 除了“||”,Oracle还支持使用CONCAT()函数进行字符串拼接,比如执行下面的SQL语句: SELECT CONCAT("工号:",FNumber) FROM T_Employee 如果CONCAT中连接的值不是字符串,Oracle会尝试将其转换为字符串,比如执行下面的SQL语句: SELECT CONCAT("年龄:",FAge) FROM T_Employee 与MYSQL的CONCAT()函数不同,Oracle的CONCAT()函数只支持两个参数,不支持两个以上字符串的拼接,比如下面的SQL语句在Oracle中是错误的: SELECT CONCAT("工号为",FNumber,"的员工姓名为",FName) FROM T_Employee WHERE FName IS NOT NULL 运行以后Oracle会报出下面的错误信息: 参数个数无效 如果要进行多个字符串的拼接的话,可以使用多个CONCAT()函数嵌套使用,上面的SQL可以如下改写: 代码如下:SELECT CONCAT(CONCAT(CONCAT("工号为",FNumber),"的员工姓名为"),FName) FROM T_Employee WHERE FName IS NOT NULL

oracle的concat方法连接两个字符串时,想给中间加个空格

select concat("aa"||" ","bb") from dual

oracle concat用法

可以这样处理: SELECT "man" || "jia" || "hua" FROM DUAL;或者多写几个 concat 函数。

Oracle数据库中Kill session的研究

  我们知道 在Oracle数据库中 可以通过kill session的方式来终止一个进程 其基本语法结构为:    alter system kill session sid serial# ;     被kill掉的session 状态会被标记为killed Oracle会在该用户下一次touch时清除该进程     我们发现当一个session被kill掉以后 该session的paddr被修改 如果有多个session被kill 那么多个session的paddr都被更改为相同的进程地址:    SQL> select saddr sid serial# paddr username status from v$session where username is not null;    SADDR      SID  SERIAL# PADDR  USERNAME            STATUS      E E C          B E EYGLE             INACTIVE   E           B D SYS              ACTIVE      SQL> alter system kill session ;    System altered     SQL> select saddr sid serial# paddr username status from v$session where username is not null;    SADDR      SID  SERIAL# PADDR  USERNAME            STATUS      E E C          D BD EYGLE             KILLED   E           B D SYS              ACTIVE      SQL> select saddr sid serial# paddr username status from v$session where username is not null;    SADDR      SID  SERIAL# PADDR  USERNAME            STATUS      E E C          D BD EYGLE             KILLED   E AA           B EQSP              INACTIVE   E           B D SYS              ACTIVE    SQL> alter system kill session ;    System altered     SQL> select saddr sid serial# paddr username status from v$session where username is not null;    SADDR      SID  SERIAL# PADDR  USERNAME            STATUS      E E C          D BD EYGLE             KILLED   E AA           D BD EQSP              KILLED   E           B D SYS              ACTIVE        在这种情况下 很多时候 资源是无法释放的 我们需要查询spid 在操作系统级来kill这些进程     但是由于此时v$session paddr已经改变 我们无法通过v$session和v$process关联来获得spid    那还可以怎么办呢?    我们来看一下下面的查询:     SQL> SELECT s username s status      x ADDR x KSLLAPSC x KSLLAPSN x KSLLASPO x KSLLID R x KSLLRTYP      decode(bitand (x ksuprflg ) null )     FROM x$ksupr x v$session s     WHERE s paddr(+)=x addr     and bitand(ksspaflg )!= ;    USERNAME            STATUS  ADDR    KSLLAPSC  KSLLAPSN KSLLASPO    KSLLID R KS D                          B A                                           ACTIVE  B                                          ACTIVE  B C                                         ACTIVE  B FB                                          ACTIVE  B                                         ACTIVE  B                                         ACTIVE  B AC                                          ACTIVE  B E                                         ACTIVE  B                                         ACTIVE  B D                                          ACTIVE  B                            USERNAME            STATUS  ADDR    KSLLAPSC  KSLLAPSN KSLLASPO    KSLLID R KS D     SYS              ACTIVE  B D                                             B E                    EV                       B                    EV  SYS              INACTIVE B                           SYS              INACTIVE B BF                    EV     rows selected     简化一点 其实就是如下概念:    SQL> select p addr from v$process p where pid < > minus select s paddr from v$session s;  ADDR      B E    B     现在我们获得了进程地址 就可以在v$process中找到spid 然后可以使用Kill或者orakill在系统级来杀掉这些进程     当在Oracle中kill session以后 Oracle只是简单的把相关session的paddr 指向同一个虚拟地址     此时v$process和v$session失去关联 进程就此中断     然后Oracle就等待PMON去清除这些Session 所以通常等待一个被标记为Killed的Session退出需要花费很长的时间     如果此时被Kill的process 重新尝试执行任务 那么马上会收到进程中断的提示 process退出 此时Oracle会立即启动PMON来清除该session 这被作为一次异常中断处理 lishixinzhi/Article/program/Oracle/201311/11195

oracle 复制数据到其他 schema

开发中经常遇到复制数据的需求,比如有开发环境,测试环境,模拟生产环境等;又或者同一项目服务不同的客户。 比如现有schema user1,将它的数据复制到 schema user2 中。 这一步一般没有问题,然后将数据导入到 user2。 请使用 user2 作为登录用户,如果使用 user1,则需要 dba 权限: 还可能遇到如下问题: 这是服务器端编码和客户端编码不一致造成的,可将客户端编码设置为何服务器端一致,如下:

oracle中的schema在哪个动态视图中可以查询到相关的信息?

方案(Schema)是数据库对象的集合,每个用户都对应一个方案。用户是各种对象的所有者,方案是对象的组织形式。用户与方案是一一对应的,而且名字也完全相同。因此,查询schema就是查询Username。查询数据字典视图:DBA_USERS、ALL_USERS 、USER_USERS

如何永久修改Oracle某用户的schema

Oracle 10G,已有生产用户X,拥有schema X,现在出于安全起见, 以前用X用户连接的部分用户要替换为用户Y(并且Y用户要用于创建DBLink), Y需要访问的对象已授权, 但目前的一个问题是: 以前X用户下select * from aaa的写法, 在Y用户下需要写成select * from X.aaa, 这个批量修改几无可能; alter session set current_schema= X 倒是能解决问题,但这总不是个永久的解决方案;网上找到个解决方案,在after log on事件上做触发器执行上面的语句; create or replace trigger set_default_schema after logon on Y.schema beginexecute immediate "alter session set current_schema=X";

如何查询oracle中所有的schema名以及各个schema下的所有表名

selects.username"schema名",t.table_name"表名"fromsys.dba_userssleftjoinsys.dba_tablestons.username=t.owner--selectusernamefromsys.dba_users可以查出所有的schema--selecttable_namefromdba_tableswhereowner="schema名称";可以查出来schema对应的表名。

ORACLE多个实例和多个SCHEMA哪种方式好

多个SCHEMA 方式好;省资源,好管理 如果跨字符集,不能用多个SCHEMA的,只能多实例了

oracle中schema指的是什么

对于初学者 , 你可以理解schmea就是user用户

oracle schema是什么意思

oracle schema的中文翻译oracle schema Oracle架构

如何查询oracle中所有的schema名以及各个schema下的所有表名

不知道怎么有一下子全查出来 。查 方案:应该是每个用户一个方案, select username from dba_users;查表名:select table_name from dba_tables where owner="X";

oracle中schema指的是什么

官方文档中关于schema是这样解释的:  “A schema is a collection of database objects. A schema is owned by a database user and has the same name as that user. Schema objects are the logical structures that directly refer to the database"s data. Schema objects include structures like tables, views, and indexes.(There is no relationship between a tablespace and a schema. Objects in the same schema can be in different tablespaces, and a tablespace can hold objects from different schemas.)”  官方文档里面说得比较明白,schema是数据对象的集合,包括像表、视图、索引、同义词等等都可以说是schema的对象。下面通过具体的例子来加深对user和schema两者区别的认识:  第一步,以sys用户登陆SQL并建立普通用户storm和penguin:  $ sqlplus / as sysdba  SQL> create user storm identified by storm;  User created.  SQL> create user penguin identified by penguin;  User created.  第二步,赋予一些基本的权限给新建的用户storm和penguin:  SQL> grant connect,create table,resource to storm,penguin;  Grant succeeded.  第三步,以storm用户登陆,创建一张表并插入数据:  SQL> conn storm/storm  Connected.  SQL> create table t (id int);  Table created.  SQL> insert into t values(1);  1 row created.  SQL> commit;  Commit complete.  第四步,以penguin用户登陆,看能否查询storm用户所建表里面的数据:  SQL> conn penguin/penguin  Connected.  SQL> select table_name from user_tables;  no rows selected  SQL> show user;  USER is "PENGUIN"  SQL> select * from storm.t;  select * from storm.t  *  ERROR at line 1:  ORA-00942: table or view does not exist  从以上结果可以看出,用户 penguin无法查看用户storm所建表里面的内容,甚至被告知没有这张表。  第五步,修改当前schema为storm,并继续查询:  SQL> alter session set current_schema=storm;  Session altered.  SQL> show user;  USER is "PENGUIN"  SQL> select * from storm.t;  select * from storm.t  *  ERROR at line 1:  ORA-00942: table or view does not exist  仍然不能查看。  第六步,以storm用户登陆,赋予penguin用户查看t表的权限:  SQL> conn storm/storm  Connected.  SQL> grant select on t to penguin;  Grant succeeded.  第七步,以penguin用户登陆,查看storm用户的t表:  SQL> conn penguin/penguin  Connected.  SQL> select * from storm.t;  ID  ----------  1  更简单的,将当前schema更改为storm,可以简化查询过程:  SQL> alter session set current_schema=storm;  Session altered.  SQL> select * from t;  ID  ----------  1

oracle中schema指的是什么

模式是数据库对象的集合。模式对象是数据库数据的逻辑结构。(把数据库对象用模式分开成不同的逻辑结构)。oracle11g及以前版本中 模式(schema) 和用户是一个概念(12c还没有搞明白)。所以:scott.table1中scott 是模式名,也是用户名。模式,应该是一组对象的集合,比如表、视图、存储过程。角色,是一组权限的集合。可以把角色,授权给用户。在最新的数据库结构中(比如sqlserver2008),用户和模式是分离的。可以把模式,即一组对象 指定给用户。

在oracle中创建schemal是指什么

是对象

oracle中schema指的是什么

官方文档中关于schema是这样解释的:  “A schema is a collection of database objects. A schema is owned by a database user and has the same name as that user. Schema objects are the logical structures that directly refer to the database"s data. Schema objects include structures like tables, views, and indexes.(There is no relationship between a tablespace and a schema. Objects in the same schema can be in different tablespaces, and a tablespace can hold objects from different schemas.)”  官方文档里面说得比较明白,schema是数据对象的集合,包括像表、视图、索引、同义词等等都可以说是schema的对象。下面通过具体的例子来加深对user和schema两者区别的认识:  第一步,以sys用户登陆SQL并建立普通用户storm和penguin:  $ sqlplus / as sysdba  SQL> create user storm identified by storm;  User created.  SQL> create user penguin identified by penguin;  User created.  第二步,赋予一些基本的权限给新建的用户storm和penguin:  SQL> grant connect,create table,resource to storm,penguin;  Grant succeeded.  第三步,以storm用户登陆,创建一张表并插入数据:  SQL> conn storm/storm  Connected.  SQL> create table t (id int);  Table created.  SQL> insert into t values(1);  1 row created.  SQL> commit;  Commit complete.  第四步,以penguin用户登陆,看能否查询storm用户所建表里面的数据:  SQL> conn penguin/penguin  Connected.  SQL> select table_name from user_tables;  no rows selected  SQL> show user;  USER is "PENGUIN"  SQL> select * from storm.t;  select * from storm.t  *  ERROR at line 1:  ORA-00942: table or view does not exist  从以上结果可以看出,用户 penguin无法查看用户storm所建表里面的内容,甚至被告知没有这张表。  第五步,修改当前schema为storm,并继续查询:  SQL> alter session set current_schema=storm;  Session altered.  SQL> show user;  USER is "PENGUIN"  SQL> select * from storm.t;  select * from storm.t  *  ERROR at line 1:  ORA-00942: table or view does not exist  仍然不能查看。  第六步,以storm用户登陆,赋予penguin用户查看t表的权限:  SQL> conn storm/storm  Connected.  SQL> grant select on t to penguin;  Grant succeeded.  第七步,以penguin用户登陆,查看storm用户的t表:  SQL> conn penguin/penguin  Connected.  SQL> select * from storm.t;  ID  ----------  1  更简单的,将当前schema更改为storm,可以简化查询过程:  SQL> alter session set current_schema=storm;  Session altered.  SQL> select * from t;  ID  ----------  1

oracle中schema指的是什么

Schema,即XML Schema,XSD (XML Schema Definition)是W3C于2001年5月发布的推荐标准,指出如何形式描述XML文档的元素。XSD是许多XML Schema 语言中的一支。XSD是首先分离于XML本身的schema语言,故获取W3C的推荐地位。像所有XML Schema 语言一样,XSD用来描述一组规则──一个XML文件必须遵守这些规则,才能根据该schema‘合法(Valid)"。扩展资料:发展历程在官方文档的参考附录里,XSD标准承认受到[文件类型描述|DTD]]和其他早期XML schema 语言的影响,如DDML、SOX、XML-Data、以及XDR。XSD从中吸收了一些特性,然而也在这些特性中有所折衷。这些早期schema 语言中的XDR与SOX在XML Schema发布后仍继续使用了一段时间。不少微软的产品支持XDR直到2006年十二月MSXML6.0的发布(MSXML 6.0抛弃了XDR改用XSD)。Commerce One, Inc支持它自己的SOX schema 语言直到该公司于2004年末破产。2004年十二月,Novell, Inc.购买了该公司,包括那些与SOX相关的专利,据报导是尽力防止被某些不相关的、以打专利相关官司为生的公司剥削图利。参考资料来源:百度百科-Schema

oracle中schema指的是什么

schema是一个逻辑概念,逻辑上把相关的所有对象(表、视图、索引,过程、包等)组织成一个集体。一般来说schema的名称和负责这个schema的用户名称是一致的。在这里给你举个例子,说明schema和用户名、以及用户下面的表、索引的关系。一个楼房相当于一个数据库一个楼房内有2家住户,用户A,用户B。当用户A进入自己的屋子(schema)后,就可以再自己的屋子里添加桌子(表),椅子(视图),沙发(索引)等。当然用户B也可以在自己的屋子(schema)里添加不一样的桌子,椅子,沙发。那么我们知道了A用户和B用户的屋子(schema)是不同的,所以一般我们会直接说A用户或者B用户,这样就能区别他们不同的桌子和椅子,但是严格来说,我们应该说A用户的屋子(schema)和B用户的屋子(schema)不一样。所以说这里面我们一般就说用户A,其实就直接代表了A这个schema。

oracle触发器错误:PLS-00103: 出现符号 ""在需要下列之一时:

好像 代码里面, 好多的空格,是全角字符的空格. 换成半角的看看?

oracle 触发器为什么编译不通过 大家帮忙看看。

声明变量时不用加@吗?

oracle数据库,触发器有什么用途,请用实例说明一下。

触发器和sequence 的使用建表:create table prd (id number not null primary key, name varchar2(20) , spec varchar2(30) )建sequencecreate sequence prd_seqincrement by 1start with 1nomaxvaluenocyclenocache建触发器create or replace trigger prd_trig before insert on prd for each rowwhen(new.id is null) beginselect mgssfcs.prd_seq.nextval into :new.id from dual; select sysdate into :new.datetime from dual; --不能直接用update或insert语句输入 end;作用:对某一个表或数据库进行操作时,触发器内的代码开始执行:可以为本表自动输入其它字段的值,也可以对别的表进行新增,删除,更新等各种操作。

oracle bucket.trc是什么trace文件

Oracle数据库诊断文件(日志)查看 Diagnostic File(诊断文件)1:诊断文件的作用Diagnostic files :包含了后台遇见重大事件的信息。被用于解析问题,被用于日常管理日志文件。2:诊断文件日志的分类分为两类: 1: alterSID.log -----background trace files (后台进程跟踪文件) 2: trace files --- -----user trace file (用户trace 文件) 1:对于Background trace files文件的命名:命名方式: SID_processname_PID.trc 对应解释 SID_进程名_进程号.trc 2: 对于user trace files 的文件命名为:SID_ora_PID.trc 解释: SID_ora_进程号.trc 3:对于 alertSID.log 说明: 这个文件是为了记录: 1:记录一些操作命令 2:记录主要事件的结果 3:以及日常的操作信息 4:被用于诊断数据库错误每一个entry 都有一个time stamp(时间戳)和它关联该文件必须被ORACLE DBA管理这个文件的位置在: BACKGROUND_DUMP_DEST通过 show parameter dump 查看这个文件的位置: 这个文件中也包含数据库的启动信息相当于pfile或者spfile的内容。用管理员登录: 2:下面是实战操作:首先用sysdba登录后执行:[sql] SQL> show parameter dump NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ background_core_dump string partial background_dump_dest string d:app opwqpdiag dbmsorcl orcl race core_dump_dest string d:app opwqpdiag dbmsorcl orclcdump max_dump_file_size string unlimited shadow_core_dump string none user_dump_dest string d:app opwqpdiag dbmsorcl orcl race 可以看到这些文件的路径信息。根据显式的信息我找到我的文件位置:目录结构如下:下面说一下如何才能记录信息到这些日志文件,需要一些开关,如果不开,记录的只是一点点信息而已:两种方式 能够让用户tracing1:session 级别的:使用如下命令:ALTER SESSSION SET SQL_TRACE = TRUE第二种是执行如下存储过程:dbms_system.SET_SQL_TRACE_IN_SESSION第二个方式是 instance级别的:设置初始化参数: SQL_TRACE = TRUE一般采用session级别的。因为设置instance级别的容易造成log文件过大;可以通过alterSID.log文件中的信息制作pfile 或者spfile文件启动数据库。 下面采用session级别的修改sql_trace为true即可在user_dump_dest中对应文件中看到相应的信息。[sql] SQL> conn /as sysdba 已连接。 SQL> alter session set sql_trace = true; 会话已更改。 执行过后:查看orcl_ora_7188.trc文件信息 PS:如果不知道哪个文件就把这个目录下的全部删除,再执行sql就会看到生成的文件:查看这个文件信息如下:很详细的执行信息:比如一个语句为:select * from dual这个文件中会生成如下信息:[plain] *** 2013-06-13 22:58:20.776 ===================== PARSING IN CURSOR #1 len=18 dep=0 uid=0 oct=3 lid=0 tim=9184375464 hv=942515969 ad="232363f8" sqlid="a5ks9fhw2v9s1" select * from dual END OF STMT PARSE #1:c=0,e=32,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=9184375458 EXEC #1:c=0,e=50,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=9184376205 FETCH #1:c=0,e=109,p=0,cr=3,cu=0,mis=0,r=1,dep=0,og=1,tim=9184376423 STAT #1 id=1 cnt=1 pid=0 pos=1 obj=115 op="TABLE ACCESS FULL DUAL (cr=3 pr=0 pw=0 time=0 us cost=2 size=2 card=1)" FETCH #1:c=0,e=2,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,tim=9184376893 是对这个sql的执行的详细解读分析 下面贴上今天的部分执行的信息:[plain] *** 2013-06-13 22:58:20.776 ===================== PARSING IN CURSOR #1 len=18 dep=0 uid=0 oct=3 lid=0 tim=9184375464 hv=942515969 ad="232363f8" sqlid="a5ks9fhw2v9s1" select * from dual END OF STMT PARSE #1:c=0,e=32,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=9184375458 EXEC #1:c=0,e=50,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=9184376205 FETCH #1:c=0,e=109,p=0,cr=3,cu=0,mis=0,r=1,dep=0,og=1,tim=9184376423 STAT #1 id=1 cnt=1 pid=0 pos=1 obj=115 op="TABLE ACCESS FULL DUAL (cr=3 pr=0 pw=0 time=0 us cost=2 size=2 card=1)" FETCH #1:c=0,e=2,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,tim=9184376893 *** 2013-06-13 23:15:15.474 ===================== PARSING IN CURSOR #1 len=289 dep=0 uid=0 oct=3 lid=0 tim=10199053291 hv=2462394820 ad="232017e0" sqlid="7cfz5wy9caaf4" SELECT NAME NAME_COL_PLUS_SHOW_PARAM,DECODE(TYPE,1,"boolean",2,"string",3,"integer",4,"file",5,"number", 6,"big integer", "unknown") TYPE,DISPLAY_VALUE VALUE_COL_PLUS_SHOW_PARAM FROM V$PARAMETER WHERE UPPER(NAME) LIKE UPPER(:NMBIND_SHOW_OBJ) ORDER BY NAME_COL_PLUS_SHOW_PARAM,ROWNUM END OF STMT PARSE #1:c=0,e=438,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=10199053285 ===================== PARSING IN CURSOR #2 len=210 dep=1 uid=0 oct=3 lid=0 tim=10199056088 hv=864012087 ad="29162590" sqlid="96g93hntrzjtr" select /*+ rule */ bucket_cnt, row_cnt, cache_cnt, null_cnt, timestamp#, sample_size, minimum, maximum, distcnt, lowval, hival, density, col#, spare1, spare2, avgcln from hist_head$ where obj#=:1 and intcol#=:2 END OF STMT PARSE #2:c=0,e=568,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=3,tim=10199056084 EXEC #2:c=0,e=1024,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=3,tim=10199057412 FETCH #2:c=0,e=30,p=0,cr=2,cu=0,mis=0,r=0,dep=1,og=3,tim=10199057533 STAT #2 id=1 cnt=0 pid=0 pos=1 obj=411 op="TABLE ACCESS BY INDEX ROWID HIST_HEAD$ (cr=2 pr=0 pw=0 time=0 us)" STAT #2 id=2 cnt=0 pid=1 pos=1 obj=413 op="INDEX RANGE SCAN I_HH_OBJ#_INTCOL# (cr=2 pr=0 pw=0 time=0 us)" ===================== PARSING IN CURSOR #2 len=210 dep=1 uid=0 oct=3 lid=0 tim=10199057848 hv=864012087 ad="29162590" sqlid="96g93hntrzjtr" select /*+ rule */ bucket_cnt, row_cnt, cache_cnt, null_cnt, timestamp#, sample_size, minimum, maximum, distcnt, lowval, hival, density, col#, spare1, spare2, avgcln from hist_head$ where obj#=:1 and intcol#=:2 END OF STMT EXEC #2:c=0,e=25,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=3,tim=10199057844 FETCH #2:c=0,e=13,p=0,cr=2,cu=0,mis=0,r=0,dep=1,og=3,tim=10199058128 EXEC #1:c=0,e=7034,p=0,cr=4,cu=0,mis=1,r=0,dep=0,og=1,tim=10199060756 FETCH #1:c=15600,e=13882,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=1,tim=10199075783 FETCH #1:c=0,e=21,p=0,cr=0,cu=0,mis=0,r=5,dep=0,og=1,tim=10199076326 STAT #1 id=1 cnt=6 pid=0 pos=1 obj=0 op="SORT ORDER BY (cr=0 pr=0 pw=0 time=0 us cost=2 size=2115 card=1)" STAT #1 id=2 cnt=6 pid=1 pos=1 obj=0 op="COUNT (cr=0 pr=0 pw=0 time=8 us)" STAT #1 id=3 cnt=6 pid=2 pos=1 obj=0 op="HASH JOIN (cr=0 pr=0 pw=0 time=6 us cost=1 size=2115 card=1)" STAT #1 id=4 cnt=35 pid=3 pos=1 obj=0 op="FIXED TABLE FULL X$KSPPI (cr=0 pr=0 pw=0 time=70 us cost=0 size=81 card=1)" STAT #1 id=5 cnt=1915 pid=3 pos=2 obj=0 op="FIXED TABLE FULL X$KSPPCV (cr=0 pr=0 pw=0 time=19 us cost=0 size=203400 card=100)" 关于alter_SID.log中的内容如下: 今天的:注意这个文件中包含Oracle启动的参数信息:可以利用这些信息配置spfile或者pfile文件尝试用这个配置的文件启动数据库也可以的[plain] Thu Jun 13 22:13:43 2013 Starting ORACLE instance (normal) LICENSE_MAX_SESSION = 0 LICENSE_SESSIONS_WARNING = 0 Picked latch-free SCN scheme 2 Using LOG_ARCHIVE_DEST_1 parameter default value as D:app opwqpproduct11.1.0db_1RDBMS Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST Autotune of undo retention is turned on. IMODE=BR ILAT =18 LICENSE_MAX_USERS = 0 SYS auditing is disabled Starting up ORACLE RDBMS Version: 11.1.0.6.0. Using parameter settings in server-side spfile D:APPTOPWQPPRODUCT11.1.0DB_1DATABASESPFILEORCL.ORA System parameters with non-default values: processes = 150 memory_target = 412M control_files = "D:APPTOPWQPORADATAORCLCONTROL01.CTL" control_files = "D:APPTOPWQPORADATAORCLCONTROL02.CTL" control_files = "D:APPTOPWQPORADATAORCLCONTROL03.CTL" db_block_size = 8192 compatible = "11.1.0.0.0" db_recovery_file_dest = "D:app opwqpflash_recovery_area" db_recovery_file_dest_size= 2G fast_start_mttr_target = 0 undo_tablespace = "UNDOTBS1" remote_login_passwordfile= "EXCLUSIVE" db_domain = "" dispatchers = "(PROTOCOL=TCP) (SERVICE=orclXDB)" audit_file_dest = "D:APPTOPWQPADMINORCLADUMP" audit_trail = "DB" db_name = "orcl" open_cursors = 300 diagnostic_dest = "D:APPTOPWQP" Thu Jun 13 22:13:46 2013 PMON started with pid=2, OS id=1888 Thu Jun 13 22:13:46 2013 VKTM started with pid=3, OS id=4296 at elevated priority Thu Jun 13 22:13:46 2013 DIAG started with pid=4, OS id=6804 VKTM running at (20)ms precision Thu Jun 13 22:13:46 2013
 首页 上一页  11 12 13 14 15 16 17  下一页  尾页