CLE

阅读 / 问答 / 标签

SAP和Oracle的区别是什么?

是一个erp系统,sap公司的SAP是一个领先的ERP软件.Systems,Application,andProctsinDataprocessingSAPR/3软件具备以下功能和主要特点:功能性:R/3以模块化的形式提供了一整套业务措施,其中的模块囊括了全部所需要的业务功能并把用户与技术性应用软件相联而形成一个总括的系统,用于公司或企业战略上和运用上的管理。集成化:R/3把逻辑上相关联的部分连接在一起。重复工作和多余数据被完全取消,规程被优化,集成化的业务处理取代了传统的人工操作。灵活性:R/3系统中方便的裁剪方法使之具有灵活的适应性,从而能满足各种用户的需要和特定行业的要求。R/3还配备有适当的界面来集成用户自己的软件或外来的软件。开放性:R/3的体系结构符合国际公认的标准,使客户得以突破专用硬件平台及专用系统技术的局限。同时,SAP提供的开放性接口,可以方便地将第三方软件产品有效地集成到R/3系统中来。用户友好:图标与图形符号简化了人机交互时的操作。统一设计的用户界面确保了工作人员能够运用同样的熟悉的技术从事不通的工作。模块化:R/3的模块结构使用户既可以一个一个的选用新的实用程序,也可以完全转入一个新的组织结构体系。可靠:作为用户的商业伙伴SAP始终不断地为集成化软件的质量设立越来越多的国际标准。低成本高效益:信息处理是取得竞争优势的要点之一。当竞争加剧时,企业必须更加努力地获取其市场占有量。这就要使用高度集成化的数据处理软件,而R/3正是这种软件的优秀典范。国际适用:R/3支持多种语言,而且是为跨国界操作而设计的。R/3可以灵活地适应各国的货币及税物要求。服务:R/3系统实施过程中,用户将得到SAP技术专家的全面支持与服务,包括组织结构方面与技术方面的咨询,项目计划与实施方面的协助,以及培训课程。1972年,德国,曼海姆的IBM公司。任职销售顾问的HassoPlattner在等待着公司对自己建议的回复。他的建议就是开发财务软件包,用现成的软件包取代昂贵的定制应用。当IBM公司回绝了他的建议之后,他和4名做软件工程师的同事离开了IBM,白手起家创办SAP软件公司。而今,每天早上,世界500强中80%的公司都会进入由SAP公司提供的管理和协同商务平台,进行高效率的工作。一向好斗、性格倔强、勇于接受挑战的SAP联合主席兼首席执行官Plattner在经历了SAP的诸多风浪之后,当他看到SAP在软件市场低迷的情况下,2001年第三季度仍旧实现了赢利预期,前三个月的收入达到50亿欧元,收入增长率为23%,高兴地评论道:“虽然近来软件市场,特别是美国市场有巨大的变化,客户纷纷推迟软件的购买计划,但对于现在最有效的解决方案,企业还是愿意投资的。越来越多的企业转向SAP,因为他们相信SAP能给他们带来更高的投资回报率、更优秀的功能和便捷的集成。”这家总部位于德国沃尔多夫市,号称“全球最大的企业管理解决方案供应商、全球第三大独立软件供应商、全球领先的协同电子商务解决方案供应商”的软件巨人目前在全球的120多个国家和地区拥有1.65多万家客户,向全球提供基于“五大支柱”战略的产品,这就是mySAPSCM(供应链管理)、mySAPPLM(产品生命周期管理)、mySAPCRM(客户关系管理)、SAPPortals的EnterprisePortals(企业门户)和SAPMarkets的Exchanges(交易集市)。在全球,SAP拥有员工2.5万多名,在总部,SAP的开发人员有5000多名,而SAP的开发实验室和开发中心更是遍布全球多个角落。下面是他的某一个版本的介绍=========================SAPR/3软件具备以下功能和主要特点:功能性:R/3以模块化的形式提供了一整套业务措施,其中的模块囊括了全部所需要的业务功能并把用户与技术性应用软件相联而形成一个总括的系统,用于公司或企业战略上和运用上的管理。集成化:R/3把逻辑上相关联的部分连接在一起。重复工作和多余数据被完全取消,规程被优化,集成化的业务处理取代了传统的人工操作。灵活性:R/3系统中方便的裁剪方法使之具有灵活的适应性,从而能满足各种用户的需要和特定行业的要求。R/3还配备有适当的界面来集成用户自己的软件或外来的软件。开放性:R/3的体系结构符合国际公认的标准,使客户得以突破专用硬件平台及专用系统技术的局限。同时,SAP提供的开放性接口,可以方便地将第三方软件产品有效地集成到R/3系统中来。用户友好:图标与图形符号简化了人机交互时的操作。统一设计的用户界面确保了工作人员能够运用同样的熟悉的技术从事不通的工作。模块化:R/3的模块结构使用户既可以一个一个的选用新的实用程序,也可以完全转入一个新的组织结构体系。可靠:作为用户的商业伙伴SAP始终不断地为集成化软件的质量设立越来越多的国际标准。低成本高效益:信息处理是取得竞争优势的要点之一。当竞争加剧时,企业必须更加努力地获取其市场占有量。这就要使用高度集成化的数据处理软件,而R/3正是这种软件的优秀典范。国际适用:R/3支持多种语言,而且是为跨国界操作而设计的。R/3可以灵活地适应各国的货币及税物要求。服务:R/3系统实施过程中,用户将得到SAP技术专家的全面支持与服务,包括组织结构方面与技术方面的咨询,项目计划与实施方面的协助,以及培训课程。★生产计划和控制★销售与分销★物料管理★财务会计★管理会计★资产管理★系统技术基础

数据库软件的Oracle

oracle以前是用C,现在出的都是java开发的。MS sqlsever是用VC开发的。

如何查看Oracle数据库版本

查看办法如下:sqlplus,cmd---plsql,登陆用户,建议用sysdba权限的账户登陆。proct_component_version,SQL> select * from proct_component_version。即可查询到版本,例如:Oracle 9.0.1.1.2。9:版本号 0:新特性版本号 1(第一个):维护版本号 1(第二个):普通的补丁设置号码 2:非凡的平台补丁设置号码拓展资料:oracle 在英语里面是 “甲骨文” 的意思。在 IT 业里面 oracle 是美国一家著名的软件公司, 其核心产生品是 Oracle 数据库,这是最著名是用范围很广泛的大型关系型数据库。因而很多公司或计算机岗位要求具有 ORACLE 数据库的使用、维护或开发技术。精通 oracle 数据库,并取得 oracle 公司的官方认证(如 OCP) 的人在 IT业里很抢手,找份好的工作很容易,是金饭碗。

Oracle 体系架构--Oracle存储

一,表空间 tablespace系统表空间 一定要online辅助表空间回滚表空间 一定要online临时表空间应用表空间SELECT * FROM Database_Properties 记录db级的一些参数的缺省值如缺省表空间,缺省临时表空间,缺省表空间类型1,创建表空间:create tablespace ts datafile "/u1/oradata/a/ts.dbf" size 10Mextent management local autoallocate 也可为unifom size 1Msegment space management auto; 也可为manual创建临时表空间:create temporary tablespace mytemp tempfile "/u1/oradata/a/mytemp.dbf" size 10Mextent management local uniform size 1Msegment space management manual;临时表空间只可以用uniform size 和 manual设定表空间为DB的默认表空间alter database default tablespace ts设定某临时表空间为DB的默认表空间alter database temporary tablespace mytemp查 Database_Properties发现默认表空间改变2,临时表空间组 (10g新特性)用于解决同一用户多个会话表空间争用问题创建临时表空间组(添加组员):alter tablespace mytemp tablespace group g1;alter tablespace mytemp2 tablespace group g1;产生一个组后产生一个数据字典:SELECT * FROM Dba_Tablespace_Groups 可查将用户的临时表空间设置成该临时表空间组alter user scott temporary tablespace g1将DB默认的临时表空间设为该临时表空间alter database default temporary tablespace g1;将临时表空间成员从临时表空间组中删除alter tablespace mytemp tablespace group "";v$tempfile 和 dba_temp_files区别?v$tempfile 在控制文件中,mount状态可读。dba_temp_files在数据文件中设计这两个功能相近的数据字典是为了恢复方便3,辅助表空间,SELECT * FROM v$sysaux_occupants; 可查看辅助表空间有哪些工具二,数据块标准块:大小和db_block_size一样的块非标准块:大小和db_block_size不一样的块块的大小块小:每一块中的记录少,并发概率小,但是块比较多,查询速度慢块大:并发概率大,但是查询速度快若建表是块大小已经比较大了,事后发现并发量太大如和做?调整pct_free复合型:在内存中每个块的缓冲区大小show parameter cache_size可查若内存中默认cache_size 为8k有一个表的块大小是16k,则需要在内存中开辟一段空间,器cache_size为16k。所以 cache中既有8k的空间又有16k的空间,所以称为复合型alter system set db_32k_cache_size=20M 把32k的cache设置为20M大小可用dump oracle最底层剖析来分析三,对象管理1,表:分类:a,normal 对表b,分区表(方便维护,可以提高性能)c,索引组织表(IOT)d,簇表 会减少链接的代价:当需要两个表连接时会生成一个簇表,查询时减少链接代价表的属性: SELECT * FROM Dba_Tables;logging :默认写日志,参照表空间的属性initextent:不指定默认和表空间一致pct_freepct_usedini_trans 事务槽的初始长度max_trans 事务槽的最大长度事务槽位于块头下面,当块中记录被修改了事务槽就记录一条,如事务槽最大长度为200那么当修改第201次记录且之前事务都没结束时会报错创建表时指定事务槽大小:create table aaa(a int) max_trans=3;rowid 逻辑地址:rowid是不存在任何块中,存在索引中前6位:对象ID(表或索引) Dba_Objects7-9位:对象所在文件ID Dba_Data_Files v$datafile10-15位:数据块ID,针对数据文件的16-18位:块内行号SELECT dbms_rowid.rowid_object(ROWID) AS obj#,dbms_rowid.rowid_relative_fno(ROWID) AS file#,dbms_rowid.rowid_block_number(ROWID) AS block#,dbms_rowid.rowid_row_number(ROWID) AS row#FROM scott.dept;查dept表中所有记录的rowidrowid 如何映射到块内的行的?通过查询索引,查到要查信息的rowid。通过rowid的信息查找到块以及块内的行号,若块中那行记录曾经alter并且新记录没有记录在原来的部位,则原来的部位会记录一个偏移量,从而找到该记录的新位置消除碎片的方法:(1)move (8i,9i)alter table ts move TBSNAME;show parameter user_segment 可查注意:move时全表锁,做完后重建索引(2)shink (10g新特性)原理:先排序后释放空间要先让表有行移动的功能:alter table test1 enable row movement排序:alter table test1 shink space compact释放空间:alter table test1 shink spaceshink过程不会引发行级触发器,但索引要重建(3)exp imp 备份恢复技术面试题:如何清空一个大表?若delete from 要写日志若truncate 只在数据字典中标记,并不删除数据释放区间;所以要删除一个大表应该先回落HWL在系统空闲的时候在释放空间:所以先truncate然后系统空闲时 alter table scott.tab1 deallocate unused keep 100m 释放到还剩100malter table scott.tab1 deallocate unused keep 0m 完全释放建表时设定不记录日志:create table scott.tab as select * from dba.objects nologging;删除表并释放空间:truncate table scott.tab1 reuse storage2,索引:在无索引的情况下:要查找empno=7369的人的name时,要全表扫描,即使找到一个还是要继续扫描全表有索引的情况下

Oracle的数据字典

首先,Oracle的字典表和视图基本上可以分为三个层次。1.1 X$表这一部分表是Oracle数据库的运行基础,在数据库启动时由Oracle应用程序动态创建。这部分表对数据库来说至关重要,所以Oracle不允许SYSDBA之外的用户直接访问,显示授权不被允许。如果显示授权你会收到如下错误: SQL grant select on x$ksppi to eygle;grant select on x$ksppi to eygle*ERROR at line 1:ORA-02030: can only select from fixed tables/views1.2 GV$和V$视图从Oracle8开始,GV$视图开始被引入,其含义为Global V$.除了一些特例以外,每个V$视图都有一个对应的GV$视图存在。GV$视图的产生是为了满足OPS环境的需要,在OPS环境中,查询GV$视图返回所有实例信息,而每个V$视图基于GV$视图,增加了INST_ID列判断后建立,只包含当前连接实例信息。注意,每个V$视图都包含类似语句:where inst_id = USERENV("Instance")用于限制返回当前实例信息。我们从GV$FIXED_TABLE和V$FIXED_TABLE开始SQL select view_definition from v_$fixed_view_definitionwhere view_name="V$FIXED_TABLE";VIEW_DEFINITION----------------------------------------------------------select NAME , OBJECT_ID , TYPE , TABLE_NUM from GV$FIXED_TABLEwhere inst_id = USERENV("Instance")这里我们看到V$FIXED_TABLE基于GV$FIXED_TABLE创建。SQL select view_definition from v_$fixed_view_definitionwhere view_name="GV$FIXED_TABLE";VIEW_DEFINITION-----------------------------------------------------------select inst_id,kqftanam, kqftaobj, "TABLE", indx from x$kqftaunion allselect inst_id,kqfvinam, kqfviobj, "VIEW", 65537 from x$kqfviunion allselect inst_id,kqfdtnam, kqfdtobj, "TABLE", 65537 from x$kqfdt这样我们找到了GV$FIXED_TABLE视图的创建语句,该视图基于X$表创建。1.3 GV_$,V_$视图和V$,GV$同义词这些视图是通过catalog.ql创建。当catalog.sql运行时:create or replace view v_$fixed_table as select * from v$fixed_table;create or replace public synonym v$fixed_table for v_$fixed_table;create or replace view gv_$fixed_table as select * from gv$fixed_table;create or replace public synonym gv$fixed_table for gv_$fixed_table;我们注意到,第一个视图V_$和GV_$首先被创建,v_$和gv_$两个视图。然后基于V_$视图的同义词被创建。所以,实际上通常我们访问的V$视图,其实是指向V_$视图的同义词。而V_$视图是基于真正的V$视图(这个视图是基于X$表建立的)。而v$fixed_view_definition视图是我们研究Oracle对象关系的一个入口,仔细理解Oracle的数据字典机制,有助于深入了解和学习Oracle数据库知识。1.4 再进一步1.4.1 X$表关于X$表,其创建信息我们也可以从数据字典中一窥究竟。首先我们考察bootstrap$表,该表中记录了数据库启动的基本及驱动信息。 SQL select * from bootstrap$;LINE# OBJ# SQL_TEXT-------------------------------------------------------------------1 -1 8.0.0.0.00 0 CREATE ROLLBACK SEGMENT SYSTEM STORAGE ( INITIAL 112K NEXT 1024KMINEXTENTS 1 M8 8 CREATE CLUSTER C_FILE#_BLOCK#("TS#" NUMBER,"SEGFILE#" NUMBER,"SEGBLOCK#" NUMBER)9 9 CREATE INDEX I_FILE#_BLOCK# ON CLUSTER C_FILE#_BLOCK# PCTFREE 10INITRANS 2 MAXT14 14 CREATE TABLE SEG$("FILE#" NUMBER NOT NULL,"BLOCK#" NUMBER NOTNULL,"TYPE#" NUMBE5 5 CREATE TABLE CLU$("OBJ#" NUMBER NOT NULL,"DATAOBJ#" NUMBER,"TS#"NUMBER NOT NULL6 6 CREATE CLUSTER C_TS#("TS#" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS2 MAXTRANS 2557 7 CREATE INDEX I_TS# ON CLUSTER C_TS# PCTFREE 10 INITRANS 2 MAXTRANS255 STORAGE (这部分信息,在数据库启动时最先被加载,跟踪数据库的启动过程,我们发现数据库启动的第一个动作就是: create table bootstrap$ ( line# number not null, obj# number not null,sql_text varchar2(4000) not null) storage (initial 50K objno 56 extents(file 1 block 377))这部分代码是写在Oracle应用程序中的,在内存中创建了bootstrap$以后,Oracle就可以从file 1,block 377上读取其他信息,创建重要的数据库对象。从而根据这一部分信息启动数据库,这就实现了数据库的引导,类似于操作系统的初始化。X$表由此建立。这一部分表可以从v$fixed_table中查到: SQL select count(*) from v$fixed_table where name like "X$%";COUNT(*)----------394共有394个X$对象被记录。1.4.2 GV$和V$视图X$表建立以后,基于X$表的GV$和V$视图得以创建。这部分视图我们也可以通过查询V$FIXED_TABLE得到。 SQL select count(*) from v$fixed_table where name like "GV$%";COUNT(*)----------259这一部分共259个对象。 SQL select count(*) from v$fixed_table where name like "V$%";COUNT(*)----------259同样是259个对象。v$fixed_table共记录了394 + 259 + 259 共 912 个对象。我们通过V$PARAMETER视图来追踪一下数据库的架构: SQL select view_definition from v$fixed_view_definition a wherea.VIEW_NAME="V$PARAMETER";VIEW_DEFINITION-------------------------------------------------------------------select NUM , NAME , TYPE , VALUE , ISDEFAULT , ISSES_MODIFIABLE ,ISSYS_MODIFIABLE , ISMODIFIED , ISADJUSTED , DESCRIPTION, UPDATE_COMMENT fromGV$PARAMETER where inst_id = USERENV("Instance")我们看到V$PARAMETER是由GV$PARAMETER创建的。 SQL select view_definition from v$fixed_view_definition a wherea.VIEW_NAME="GV$PARAMETER";VIEW_DEFINITION-------------------------------------------------------------------select x.inst_id,x.indx+1,ksppinm,ksppity,ksppstvl,ksppstdf, decode(bitand(ksppiflg/256,1),1,"TRUE","FALSE"), decode(bitand(ksppiflg/65536,3),1,"IMMEDIATE",2,"DEFERRED", 3,"IMMEDIATE","FALSE"), decode(bit and(ksppstvf,7),1,"MODIFIED",4,"SYSTEM_MOD","FALSE"), decode(bitand(ksppstvf,2,2,"TRUE","FALSE"), ksppdesc, ksppstcmnt from x$ksppi x, x$ksppcvy where (x.indx = y.indx) and ((translate(ksppinm,"_","#") notlike "#%") or (ksppstdf = "FALSE"))在这里我们看到GV$PARAMETER来源于x$ksppi,x$ksppcv两个X$表。 x$ksppi,x$ksppcv 基本上包含所有数据库可调整参数,v$parameter展现的是不包含"_"开头的参数。以"_"开头的参数我们通常称为隐含参数,一般不建议修改,但很多因为功能强大经常使用而广为人知。

oracle数据库怎么建

有两种方式(1)图形化创建:DBCA,然后根据图形化提示一步一步的区创建(2)静默创建,也就是语句创建create database语句,这个语句很长,很麻烦,要写的内容很多,很多地方都有相关例子,这里就不赘述了。下面还有一种不算是创建数据库的建立方法:复制数据库或者导入数据库:将数据库整体复制或者导出,然后再新的地方导入。只是复制和导出时也要考虑一些配置文件与参数文件。

oracle怎么查看服务器配置?

1、如果本机测试,可以不配置监听和连接串,直接使用用户名和密码就可以连接当然也可以使用按远程服务器配置一样使用NetConfigurationAssistant来配置连接串。2、通过命令来查看,如用户权限,表名,存储位置,版本等等。3、如果这些都安装了,你去配置一下监听文件tnsnames.ora即可。里面配置一下别名,IP,以及SID就可以。4、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。在命令行下输入shell指令:whereisoracle。最后,按下回车键执行shell指令,此时会看到数据库oracle的具体位置被打印了出来。5、察看本机oracle安装目录下的tns配置。HOME/network/admin/tnsnames.ora。6、oracle查看服务器IP方法。工具:plsql步骤:打开plsql,登录到指定数据库。

如何自学oracle数据库

你想学oracle干嘛用,oracle数据库可是大型数据库,不说一般,就是中型企业也支付不起一年几千万的使用费。初学者可以先学mysql数据库。mysql和oracle一样都支持sql语法,都是关系型数据库。不同的是存储过程不一样,权限管理不一样。mysql现在是中小型企业的主流。你可以考虑一下。你可以想想一个oracle数据库工程师的要求,即使你达到了,企业也不敢用年轻人。所以先主要已mysql入手。最好买一本适合初学者的书,买别的书估计初学者看不懂。再结合网上的教程,资料。如何纯粹是为了好玩,那就随心所欲吧。首先学习什么是关系型数据库,关系型数据库的特点和数据是如何查询的这些都有助于你今后对数据库的理解。作为一个能写出高效的sql语句的程序员来说这个必须要理解。然后学习sql语句,sql语句主要是对表的操作。查询,删除,修改,添加等操作。然后再学习触发器,存储过程,视图,控制器。学到这里就有一定的基础了,接下来可以选择学习方向,你可以深入学习数据库权限管理,你可以学习更多的数据库函数来写出高效的sql语句。

oracle数据库安装在什么地方

默认安装在磁盘空间最大的那个盘里面,在磁盘的根目录下面创建名为oracle的文件夹中。安装方法:虚拟光驱快速装载——选择你的Oracle数据库镜像——打开。点击setup。选择创建和配置数据库——点击下一步。首先解压下载下来的安装包,解压完成后,到相应路径下,找到【setup.exe】,双击运行,开始安装Oracle11g。这一步可将自己的电子邮件地址填写进去(也可以不填写,填了只会收到一些没什么用的邮件)。在安装的时候。oracle会默认存储在一个剩余空间较大的盘符下,同时一般不会在C盘,在安装的时候,第一个界面就是这个路径修改(仅限于windows安装,linux安装没有用过),还有就是当安装完成后。

Oracle数据库系统使用经验

oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用。1.having 子句的用法having 子句对 group by 子句所确定的行组进行控制,having 子句条件中只允许涉及常量,聚组函数或group by 子句中的列。2.外部联接"+"的用法外部联接"+"按其在"="的左边或右边分左联接和右联接。若不带"+"运算符的表中的一个行不直接匹配于带"+"预算符的表中的任何行,则前者的行与后者中的一个空行相匹配并被返回。若二者均不带?+?,则二者中无法匹配的均被返回。利用外部联接"+",可以替代效率十分低下的 not in 运算,大大提高运行速度。例如,下面这条命令执行起来很慢select a.empno from emp a where a.empno not in(select empno from emp1 where job=?SALE?);倘若利用外部联接,改写命令如下:select a.empno from emp a ,emp1 bwhere a.empno=b.empno(+)and b.empno is nulland b.job=?SALE?;可以发现,运行速度明显提高。3.删除表内重复记录的方法可以利用这样的命令来删除表内重复记录:delete from table_name awhere rowid (select max(rowid) from table_namewhere column1=a.column1 and column2=a.column2and colum3=a.colum3 and );不过,当表比较大(例如50万条以上)时,这个方法的效率之差令人无法忍受,需要另想办法(可参看拙文《电信计费中长途重复话单的技术处理》,《计算机与通信》,1999-07)。4.set transaction 命令的用法在执行大事务时,有时oracle会报出如下的错误:ORA-01555:snapshot too old (rollback segment too small)这说明oracle给此事务随机分配的回滚段太小了,这时可以为它指定一个足够大的回滚段,以确保这个事务的成功执行。例如set transaction use rollback segment roll_abc;delete from table_name where commit;回滚段roll_abc被指定给这个delete事务,commit命令则在事务结束之后取消了回滚段的指定。5.使用索引的注意事项select,update,delete 语句中的子查询应当有规律地查找少于20%的表行。如果一个语句查找的行数超过总行数的20%,它将不能通过使用索引获得性能上的提高。索引可能产生碎片,因为记录从表中删除时,相应也从表的索引中删除。表释放的空间可以再用,而索引释放的空间却不能再用。频繁进行删除操作的被索引的表,应当阶段性地重建索引,以避免在索引中造成空间碎片,影响性能。在许可的条件下,也可以阶段性地truncate表,truncate命令删除表中所有记录,也删除索引碎片。6.数据库重建应注意的问题在利用import进行数据库重建过程中,有些视图可能会带来问题,因为结构输入的顺序可能造成视图的输入先于它低层次表的输入,这样建立视图就会失败。要解决这一问题,可采取分两步走的方法:首先输入结构,然后输入数据。命令举例如下 (uesrname:jfcl,password:hfjf,host sting:ora1,数据文件:expdata.dmp):imp jfcl/hfjf@ora1 file=empdata.dmp rows=Nimp jfcl/hfjf@ora1 file=empdata.dmp full=Y buffer=64000commit=Y ignore=Y第一条命令输入所有数据库结构,但无记录。第二次输入结构和数据,64000字节提交一次。ignore=Y选项保证第二次输入既使对象存在的情况下也能成功。以上六条小经验是从平时的工作中总结出来的,拿出来与大家分享,希望能帮到大家。

Oracle数据库是什么

  Oracle是一种适用于大型、中型和微型计算机的关系数据库管理系统,它使用SQL作为它的数据库语言。   1、Oracle主要包括数据定义、数据操纵和数据控制等三方面功能。   2、Oracle数据库由三种类型的文件组成:数据库文件、日志文件和控制文件。   3、Oracle本身也要利用数据库字典来管理和控制整个数据库。   4、Oracle产品覆盖了大、中、小型机等几十种机型,Oracle数据库成为世界上使用最广泛的关系数据系统之一。

Oracle属于什么软件?

Oracle是系统软件。Oracle系统,即是以Oracle关系数据库为数据存储和管理作为构架基础,构建出的数据库管理系统。Oracle,世界第一个支持SQL语言的商业数据库,定位于高端工作站,以及作为服务器的小型计算机,如IBMP系列服务器、HP的Integraty服务器、SunFire服务器。Oracle公司的整个产品线包括数据库服务器、企业商务应用套件、应用开发和决策支持工具

如何查看oracle的安装目录?

1、首先,用XSell工具连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。在linux命令行下输入shell指令:whereisoracle。2、windows下可以通过注册表查找ORACLE_HOMElinux或者unix,通过命令env|grepORACLE查看ORACLE_HOME变了对应的路径。拓展:OracleDatabase,又名OracleRDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。3、虚拟光驱快速装载——选择你的Oracle数据库镜像——打开。点击setup。选择创建和配置数据库——点击下一步。选择桌面类——点击下一步。设置密码——点击下一步。点击完成。正在安装和配置。4、在桌面上找到计算机,右键管理,点击服务和应用程序,双击服务,找到oracle;点击电脑左下角的开始--运行,输入sqlplus,回车。5、su-oracle切换至oracle用户,set查看环境变量找到ORACLE_HOME或者ORACLE_BASE(oracle的家目录和基目录)su-oracle切换至oracle用户,whichsqlplus查看sqlplus命令的位置。

浅谈应该如何理解Oracle的架构知识

1、物理结构Oracle物理结构由控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件组成一个数据库中的数据存储在磁盘上物理文件,被使用时,调入内存。其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志(trace files,alert files)属于数据库文件;参数文件(parameter file)口令文件(password file)是非数据库文件。 数据文件:存储数据的文件.数据文件典型地代表了根据他们使用的磁盘空间和数量所决定的一个Oracle数据库的容积。由于性能原因,每一种类型的数据放在相应的一个或一系列文件中,将这些文件放在不同的磁盘中。types:.data dictionary .data.redo data .index.temporary data 等等 控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件.控制文件内容◆数据库名◆表空间信息◆所有数据文件的名字和位置◆所有redo日志文件的名字和位置◆当前的日志序列号◆检查点信息◆关于redo日志和归档的当前状态信息控制文件的使用过程控制文件把Oracle引导到数据库文件的其它部分。启动一个实例时,Oracle 从参数文件中读取控制文件的名字和位置。安装数据库时,Oracle 打开控制文件。最终打开数据库时,Oracle 从控制文件中读取数据文件的列表并打开其中的每个文件。重做日志文件含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件.跟踪文件及警告日志(Trace Files and Alert Files)在instance 中运行的每一个后台进程都有一个跟踪文件(trace file)与之相连。Trace file 记载后台进程所遇到的重大事件的信息。 警告日志( Alert Log)是一种特殊的跟踪文件,每个数据库都有一个跟踪文件,同步记载数据库的消息和错误. 参数文件:包括大量影响Oracle数据库实例功能的设定,如以下设定:◆数据库控制文件的定位◆Oracle用来缓存从磁盘上读取的数据的内存数量◆默认的优化程序的选择.和数据库文件相关,执行两个重要的功能1〉为数据库指出控制文件2〉为数据库指出归档日志的目标 归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。 口令文件:认证哪些用户有权限启动和关闭Oracle例程.2、逻辑结构(表空间、段、区、块)表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。段:是对象在数据库中占用的空间.区:是为数据一次性预留的一个较大的存储空间.块:ORACLE最基本的存储单位,在建立数据库的时候指定.3、内存分配(SGA和PGA)SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反,PGA 是只被一个进程使用的区域,PGA 在创建进程时分配,在终止进程时回收.4、后台进程包括数据写进程(Database Writer,DBWR)、日志写进程(Log Writer,LGWR)、系统监控(System Monitor,SMON)、进程监控(Process Monitor,PMON)、检查点进程(Checkpoint Process,CKPT)、归档进程、服务进程、用户进程)数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复进程监控:负责在一个Oracle 进程失败时清理资源检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。该进程在检查点出现时,对全部数据文件的标题进行修改,指示该检查点。在通常的情况下,该任务由LGWR执行。然而,如果检查点明显地降低系统性能时,可使CKPT进程运行,将原来由LGWR进程执行的检查点的工作分离出来,由CKPT进程实现。对于许多应用情况,CKPT进程是不必要的。只有当数据库有许多数据文件,LGWR在检查点时明显地降低性能才使CKPT运行。CKPT进程不将块写入磁盘,该工作是由DBWR完成的。 init.ora文件中 CHECKPOINT_PROCESS 参数控制CKPT进程的使能或使不能。缺省时为FALSE,即为使不能。归档进程:在每次日志切换时把已满的日志组进行备份或归档服务进程:用户进程服务。用户进程:在客户端,负责将用户的SQL语句传递给服务进程,并从服务器段拿回查询数据。5、SCN(System ChangeNumber):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。

Oracle数据库安全

导读:随着计算机的普及以及网络的发展,数据库已经不再仅仅是那些程序员所专有的话题,更是被很多人所熟悉的,数据安全已经不再是以前的“老生长谈”,也更不是以前书本上那些“可望不可及”的条条框框。同时,安全问题也是现今最为热门的话题,也是企业比较关心的问题,可见安全问题的重要性,那就大家一起来探讨一下Oracle数据库安全问题。以下就数据库系统不被非法用户侵入这个问题作进一步的阐述。一、组和安全性:在操作系统下建立用户组也是保证数据库安全性的一种有效方法。Oracle程序为了安全性目的一般分为两类:一类所有的用户都可执行,另一类只DBA可执行。在Unix环境下组设置的配置文件是/etc/group,关于这个文件如何配置,请参阅Unix的有关手册,以下是保证安全性的几种方法:(1)在安装Oracle Server前,创建数据库管理员组(DBA)而且分配root和Oracle软件拥有者的用户ID给这个组。DBA能执行的程序只有710权限。在安装过程中SQL*DBA系统权限命令被自动分配给DBA组。(2)允许一部分Unix用户有限制地访问Oracle服务器系统,增加一个由授权用户组的Oracle组,确保给Oracle服务器实用例程Oracle组ID,公用的可执行程序,比如SQL*Plus,SQL*forms等,应该可被这组执行,然后该这个实用例程的权限为710,它将允许同组的用户执行,而其他用户不能。(3)改那些不会影响数据库安全性的程序的权限为711。(注:在我们的系统中为了安装和调试的方便,Oracle数据库中的两个具有DBA权限的用户Sys和System的缺省密码是manager。为了您数据库系统的安全,我们强烈建议您该掉这两个用户的密码,具体操作如下:在SQL*DBA下键入:alter user sys indentified by password;alter user system indentified by password;其中password为您为用户设置的密码。二、Oracle服务器实用例程的安全性:以下是保护Oracle服务器不被非法用户使用的几条建议:(1) 确保$ORACLE_HOME/bin目录下的所有程序的拥有权归Oracle软件拥有者所有;(2) 给所有用户实用便程(sqiplus,sqiforms,exp,imp等)711权限,使服务器上所有的用户都可访问Oracle服务器;(3) 给所有的DBA实用例程(比如SQL*DBA)700权限。Oracle服务器和Unix组当访问本地的服务时,您可以通过在操作系统下把Oracle服务器的角色映射到Unix的组的方式来使用Unix管理服务器的安全性,这种方法适应于本地访问。在Unix中指定Oracle服务器角色的格式如下:ora_sid_role[_dla]其中 sid 是您Oracle数据库的oracle_sid;role 是Oracle服务器中角色的名字;d (可选)表示这个角色是缺省值;a (可选)表示这个角色带有WITH ADMIN选项,您只可以把这个角色授予其他角色,不能是其他用户。以下是在/etc/group文件中设置的例子:ora_test_osoper_d:NONE:1:jim,narry,scottora_test_osdba_a:NONE:3:patora_test_role1:NONE:4:bob,jane,tom,mary,jimbin: NONE:5:root,oracle,dbaroot:NONE:7:root词组“ora_test_osoper_d”表示组的名字;词组“NONE”表示这个组的密码;数字1表示这个组的ID;接下来的是这个组的成员。前两行是Oracle服务器角色的例子,使用test作为sid,osoper和osdba作为Oracle服务器角色的名字。osoper是分配给用户的缺省角色,osdba带有WITH ADMIN选项。为了使这些数据库角色起作用,您必须shutdown您的数据库系统,设置Oracle数据库参数文件initORACLE_SID.ora中os_roles参数为True,然后重新启动您的数据库。如果您想让这些角色有connect internal权限,运行orapwd为这些角色设置密码。当您尝试connect internal时,您键入的密码表示了角色所对应的权限。SQL*DBA命令的安全性:如果您没有SQL*PLUS应用程序,您也可以使用SQL*DBA作SQL查权限相关的命令只能分配给Oracle软件拥有者和DBA组的用户,因为这些命令被授予了特殊的系统权限。(1) startup(2) shutdown(3) connect internal数据库文件的安全性:Oracle软件的拥有者应该这些数据库文件($ORACLE_HOME/dbs/*.dbf)设置这些文件的使用权限为0600:文件的拥有者可读可写,同组的和其他组的用户没有写的权限。Oracle软件的拥有者应该拥有包含数据库文件的目录,为了增加安全性,建议收回同组和其他组用户对这些文件的可读权限。网络安全性:当处理网络安全性时,以下是额外要考虑的几个问题。(1) 在网络上使用密码在网上的远端用户可以通过加密或不加密方式键入密码,当您用不加密方式键入密码时,您的密码很有可能被非法用户截获,导致破坏了系统的安全性。(2) 网络上的DBA权限控制您可以通过下列两种方式对网络上的DBA权限进行控制:A 设置成拒绝远程DBA访问;B 通过orapwd给DBA设置特殊的密码。[nextpage]三、建立安全性策略:系统安全性策略(1)管理数据库用户:数据库用户是访问Oracle数据库信息的途径,因此,应该很好地维护管理数据库用户的安全性。按照数据库系统的大小和管理数据库用户所需的工作量,数据库安全性管理者可能只是拥有create,alter,或drop数据库用户的一个特殊用户,或者是拥有这些权限的一组用户,应注意的是,只有那些值得信任的个人才应该有管理数据库用户的权限。(2) 用户身份确认:数据库用户可以通过操作系统,网络服务,或数据库进行身份确认,通过主机操作系统进行用户身份认证的优点有:A 用户能更快,更方便地联入数据库;B 通过操作系统对用户身份确认进行集中控制:如果操作系统与数据库用户信息一致,Oracle无须存储和管理用户名以及密码;C 用户进入数据库和操作系统审计信息一致。(3) 操作系统安全性A 数据库管理员必须有create和delete文件的操作系统权限;B 一般数据库用户不应该有create或delete与数据库相关文件的操作系统权限;C 如果操作系统能为数据库用户分配角色,那么安全性管理者必须有修改操作系统帐户安全性区域的操作系统权限。数据的安全性策略:数据的生考虑应基于数据的重要性。如果数据不是很重要,那么数据的安全性策略可以稍稍放松一些。然而,如果数据很重要,那么应该有一谨慎的安全性策略,用它来维护对数据对象访问的有效控制。用户安全性策略:(1) 一般用户的安全性:A 密码的安全性:如果用户是通过数据库进行用户身份的确认,那么建议使用密码加密的方式与数据库进行连接。这种方式的设置方法如下:在客户端的oracle.ini文件中设置ora_encrypt_login数为true;在服务器端的initORACLE_SID.ora文件中设置dbling_encypt_login参数为true。B 权限管理:对于那些用户很多,应用程序和数据对象很丰富的数据库,应充分利用“角色”这个机制所带的方便性对权限进行有效管理。对于复杂的系统环境,“角色”能大大地简化权限的理。(2) 终端用户的安全性:您必须针对终端用户制定安全性策略。例如,对于一个有很多用户的大规模数据库,安全性管理者可以决定用户组分类为这些用户组创建用户角色,把所需的权限和应用程序角色授予每一个用户角色,以及为用户分配相应的用户角色。当处理特殊的应用要求时,安全性管理者也必须明确地把一些特定的权限要求授予给用户。您可以使用“角色”对终端用户进行权限管理。数据库管理者安全性策略:(1) 保护作为sys和system用户的连接:当数据库创建好以后,立即更改有管理权限的sys和system用户的密码,防止非法用户访问数据库。当作为sys和system用户连入数据库后,用户有强大的权限用各种方式对数据库进行改动。(2) 保护管理者与数据库的连接:应该只有数据库管理者能用管理权限连入数据库,当以sysdba或startup,shutdown,和recover或数据库对象(例如create,drop,和delete等)进行没有任何限制的操作。(3) 使用角色对管理者权限进行管理应用程序开发者的安全性策略:(1) 应用程序开发者和他们的权限数据库应用程序开发者是唯一一类需要特殊权限组完成自己工作的数据库用户。开发者需要诸如create table,create,procedure等系统权限,然而,为了限制开发者对数据库的操作,只应该把一些特定的系统权限授予开发者。(2) 应用程序开发者的环境:A 程序开发者不应与终端用户竞争数据库资源;B 用程序开发者不能损害数据库其他应用产品。(3) free和controlled应用程序开发应用程序开发者有一下两种权限:A free development应用程序开发者允许创建新的模式对象,包括table,index,procedure,package等,它允许应用程序开发者开发独立于其他对象的应用程序。B controlled development应用程序开发者不允许创建新的模式对象。所有需要table,indes procedure等都由数据库管理者创建,它保证了数据库管理者能完全控制数据空间的使用以及访问数据库信息的途径。但有时应用程序开发者也需这两种权限的混和。(4) 应用程序开发者的角色和权限数据库安全性管理者能创建角色来管理典型的应用程序开发者的权限要求。A create系统权限常常授予给应用程序开发者,以至于他们能创建他的数据对象。B 数据对象角色几乎不会授予给应用程序开发者使用的角色。(5) 加强应用程序开发者的空间限制作为数据库安全性管理者,您应该特别地为每个应用程序开发者设置以下的一些限制:A 开发者可以创建table或index的表空间;B 在每一个表空间中,开发者所拥有的空间份额。应用程序管理者的安全在有许多数据库应用程序的数据库系统中,您可能需要一应用程序管理者,应用程序管理者应负责起以下的任务:a)为每一个应用程序创建角色以及管理每一个应用程序的角色;b)创建和管理数据库应用程序使用的数据对象;c)需要的话,维护和更新应用程序代码和Oracle的存储过程和程序包。我相信有了以上的这些建议,作为一个Oracle的管理者绝对可以做好他本职的工作了。可是,我们再怎么努力,都始终得面对这样一个现实,那就是Oracle毕竟是其他人开发的,而我们却在使用。所以,Oracle到底有多少漏洞--我想这个不是你和我所能解决的。不过既然作为一篇讨论Oracle数据安全的文章,我认为有必要把漏洞这一块也写进去,毕竟这也是“安全”必不可少的一部分。呵呵!所以Oracle漏洞举例:1.Oracle9iAS Web Cache远程拒绝服务攻击漏洞(2002-10-28)2.Oracle 8.1.6的oidldapd中的漏洞3.Oracle 9iAS OracleJSP 泄漏JSP文件信息漏洞4.Linux ORACLE 8.1.5漏洞总而言之一句话--“Oracle数据安全是一个博大而又精深的话题;如果你没有耐心,就永远不会得到它的精髓之所在。”希望大家能深入的去学习这篇文章,学好了也是百一而无一害。

Oracle学习的一些建议

学习Oracle是一个漫长艰辛的过程。如果没有兴趣,只是被迫学习,那么是很难学好的。学习到一定程度的时候,要想进一步提高,就不得不接触很多Oracle之外的东西,如Unix,如网络、存储等。因此,要真的决心学好Oracle,就一定要有兴趣。有了兴趣,就会一切变得简单快乐起来。简单总结一下,那就是:兴趣、学习、实践。如何入门是许多初学者最头疼的事情。Oracle涉及的方面太多了:SQL、管理、优化、备份恢复那么从哪开始学好呢?如果在大学期间学过数据库理论,或有一定的数据库基础自然很好;如果没有的话,真的是个大问题。我个人认为还是应该从SQL语句学起。比较好的教材是Oracle OCP认证的《SQL and PL/SQL》。学习SQL的时候,尽可能坚持使用Oracle自带的工具:SQLPLUS。有了一定的SQL基础后,就要尽可能的了解Oracle的体系结构,这就涉及到了Oracle管理的内容了。我学习的时候,机械工业出版社的《Oracle9i DBA手册》这本书对我的帮助挺大。或许现在都出11g版本的了吧。Oracle公司的《Oracle Concepts》是非常棒的书,对了解Oracle体系结构很有好处。每个Oracle版本都有对应的版本,可以认真多读几次,每次都会有新的收获。公司的产品现在几乎都采用Oracle了,我们做维护的时候,备份与恢复是不得不接触的内容。数据量少的,比如20、30多个G,还可以考虑用exp/imp来备份与恢复,但数据量大了,这种方法就根本不适合了。于是学习Oracle备份与恢复技术也是必然的事情。大数据量情况下,Oracle建议用RMAN来进行数据的备份与恢复。目前市场上有很多数据库备份恢复软件,其实好多也是后台调用RMAN。清华大学出版社出版的《Oracle 9i RMAN 备份与恢复技术》是一本非常不错的介绍RMAN的书。有了以上的基础,可以说已经入门了,对遇到的一些初级Oracle问题将不再束手无策。然而我们的学习之路仍然还很漫长。我们的用户可能经常抱怨数据库运行缓慢。这时,如果有一定的优化知识,那就好办了。有时你会看到优化前需要运行几个小时的作业,优化后也许几秒钟就能完成!Oracle9i的性能诊断工具包statspack、Oracle10g/11g的自动工作符合存储库AWR都是调优的好帮手。机械工业出版社出版的《Oracle9i STATSPACK高性能调整》是学习statspack不错的书。在数据库体系结构、编程优化方面,有一本书非常棒,这就是世界顶级的Oracle专家Thomas Kyte编写的《Oracle9i10g编程艺术》(英文名为“Expert Oracle Database Architecture”)。Tom以前还写了一本叫做《Expert One-on-One Oracle》的书,也非常的经典。这两本书被很多Oracle学习者视为宝典,如果想在Oracle上深入学习的话,强烈建议认真研读。掌握了以上内容,或者基本掌握以上内容,那么你在很多人的眼里也是Oracle的高手了,解决公司产品中的数据库问题应该不成问题。不过Oracle还有很多高级内容可以进一步学习。这里列举一些,仅供感兴趣的同仁参考。1. 高级复制技术2. Oracle Real Application Cluster (RAC)3. Data Guard4. Oracle Stream5. 数据仓库6. Proc、OCI编程以上列举的这些高级内容,参考资料主要是Oracle公司的电子文档。实话实说,上面的列的数据仓库、Proc、OCI编程,我一点也不熟悉。在学习Oracle过程中,充分利用网络资源可以起到事半功倍的作用。总之,Oracle最大的问题是复杂,复杂是Oracle的最大魅力。让我们为了驾驭Oracle而共同努力吧!

Oracle调优(入门及提高篇)

在过去的十年中, Oracle 已经成为世界上最专业的数据库之一。对于 IT 专家来说,就是要确保利用 Oracle 的强大特性来提高他们公司的生产力。最有效的方法之一是通过 Oracle 调优。它有大量的调整参数和技术来改进你的 Oracle 数据库的性能。Oracle 调优是一个复杂的主题。关于调优可以写整整一本书,不过,为了改善 Oracle 数据库的性能,有一些基本的概念是每个 Oracle DBA 都应该遵从的。在这篇简介中,我们将简要地介绍以下的 Oracle 主题:-- 外部调整:我们应该记住 Oracle 并不是单独运行的。因此我们将查看一下通过调整 Oracle 服务器以得到高的性能。--Row re-sequencing 以减少磁盘 I/O :我们应该懂得 Oracle 调优最重要的目标是减少 I/O 。--Oracle SQL 调整。 Oracle SQL 调整是 Oracle 调整中最重要的领域之一,只要通过一些简单的 SQL 调优规则就可以大幅度地提升 SQL 语句的性能,这是一点都不奇怪的。-- 调整 Oracle 排序:排序对于 Oracle 性能也是有很大影响的。-- 调整 Oracle 的竞争:表和索引的参数设置对于 UPDATE 和 INSERT 的性能有很大的影响。我们首先从调整 Oracle 外部的环境开始。如果内存和 CPU 的资源不足的话,任何的 Oracle 调整都是没有帮助的。外部的性能问题Oracle 并不是单独运行的。 Oracle 数据库的性能和外部的环境有很大的关系。这些外部的条件包括有:. CPU--CPU 资源的不足令查询变慢。当查询超过了 Oracle 服务器的 CPU 性能时,你的数据库性能就受到 CPU 的限制。.内存 -- 可用于 Oralce 的内存数量也会影响 SQL 的性能,特别是在数据缓冲和内存排序方面。.网络 -- 大量的 Net8 通信令 SQL 的性能变慢。许多新手都错误的认为应该首先调整 Oracle 数据库,而不是先确认外部资源是否足够。实际上,如果外部环境出现瓶颈,再多的 Oracle 调整都是没有帮助的。在检查 Oracle 的外部环境时,有两个方面是需要注意的:1 、当运行队列的数目超过服务器的 CPU 数量时,服务器的性能就会受到 CPU 的限制。补救的方法是为服务器增加额外的 CPU 或者关闭需要很多处理资源的组件,例如 Oracle Parallel Query 。2 、内存分页。当内存分页时,内存容量已经不足,而内存页是与磁盘上的交换区进行交互的。补救的方法是增加更多的内存,减少 Oracle SGA 的大小,或者关闭 Oracle 的多线程服务器。可以使用各种标准的服务器工具来得到服务器的统计数据,例如 vmstat,glance,top 和 sar 。 DBA 的目标是确保数据库服务器拥有足够的 CPU 和内存资源来处理 Oracle 的请求。以下让我们来看一下 Oracle 的 row-resequencing 是如何能够极大地减少磁盘 I/O 的。Row-resequencing (行的重新排序)就象我们上面提到的,有经验的 Oracle DBA 都知道 I/O 是响应时间的最大组成部分。其中磁盘 I/O 特别厉害,因为当 Oracle 由磁盘上的一个数据文件得到一个数据块时,读的进程就必须等待物理 I/O 操作完成。磁盘操作要比数据缓冲慢 10,000 倍。因此,如果可以令 I/O 最小化,或者减少由于磁盘上的文件竞争而带来的瓶颈,就可以大大地改善 Oracle 数据库的性能。如果系统响应很慢,通过减少磁盘 I/O 就可以有一个很快的改善。如果在一个事务中通过按一定的范围搜索 primary-key 索引来访问表,那么重新以 CTAS 的方法组织表将是你减少 I/O 的首要策略。通过在物理上将行排序为和 primary-key 索引一样的顺序,就可以加快获得数据的速度。就象磁盘的负载平衡一样,行的重新排序也是很简单的,而且也很快。通过与其它的 DBA 管理技巧一起使用,就可以在高 I/O 的系统中大大地减少响应的时间。在高容量的在线事务处理环境中( online transaction processing , OLTP ),数据是由一个 primary 索引得到的,重新排序表格的行就可以令连续块的顺序和它们的 primary 索引一样,这样就可以在索引驱动的表格查询中,减少物理 I/O 并且改善响应时间。这个技巧仅在应用选择多行的时候有用,或者在使用索引范围搜索和应用发出多个查询来得到连续的 key 时有效。对于随机的唯一 primary-key (主键)的访问将不会由行重新排序中得到好处。让我们看一下它是如何工作的。考虑以下的一个 SQL 的查询,它使用一个索引来得到 100 行:selectsalaryfromemployeewherelast_name like "B%";这个查询将会使用 last_name_index ,搜索其中的每一行来得到目标行。这个查询将会至少使用 100 次物理磁盘的读取,因为 employee 的行存放在不同的数据块中。不过,如果表中的行已经重新排序为和 last_name_index 的一样,同样的查询又会怎样处理呢?我们可以看到这个查询只需要三次的磁盘 I/O 就读完全部 100 个员工的资料(一次用作索引的读取,两次用作数据块的读取),减少了 97 次的块读取。重新排序带来的性能改善的程度在于在你开始的时候行的乱序性如何,以及你需要由序列中访问多少行。至于一个表中的行与索引的排序键的匹配程度,可以查看数据字典中的 dba_indexes 和 dba_tables 视图得到。在 dba_indexes 的视图中,查看 clustering_factor 列。如果 clustering_factor 的值和表中的块数目大致一样,那么你的表和索引的顺序是一样的。不过,如果 clustering_factor 的值接近表中的行数目,那就表明表格中的行和索引的顺序是不一样的。行重新排序的作用是不可以小看的。在需要进行大范围的索引搜索的大表中,行重新排序可以令查询的性能提高三倍。一旦你已经决定重新排序表中的行,你可以使用以下的工具之一来重新组织表格。. 使用 Oracle 的 Create Table As Select (CTAS) 语法来拷贝表格. Oracle9i 自带的表格重新组织工具以下,我们来看以下 SQL 语句的调优。SQL 调优Oracle 的 SQL 调优是一个复杂的主题,甚至是需要整本书来介绍 Oracle SQL 调优的细微差别。不过有一些基本的规则是每个 Oracle DBA 都需要跟从的,这些规则可以改善他们系统的性能。 SQL 调优的目标是简单的:. 消除不必要的大表全表搜索:不必要的全表搜索导致大量不必要的 I/O ,从而拖慢整个数据库的性能。调优专家首先会根据查询返回的行数目来评价 SQL 。在一个有序的表中,如果查询返回少于 40% 的行,或者在一个无序的表中,返回少于 7% 的行,那么这个查询都可以调整为使用一个索引来代替全表搜索。对于不必要的全表搜索来说,最常见的调优方法是增加索引。可以在表中加入标准的 B 树索引,也可以加入 bitmap 和基于函数的索引。要决定是否消除一个全表搜索,你可以仔细检查索引搜索的 I/O 开销和全表搜索的开销,它们的开销和数据块的读取和可能的并行执行有关,并将两者作对比。在一些情况下,一些不必要的全表搜索的消除可以通过强制使用一个 index 来达到,只需要在 SQL 语句中加入一个索引的提示就可以了。. 在全表搜索是一个最快的访问方法时,将小表的全表搜索放到缓存中,调优专家应该确保有一个专门的数据缓冲用作行缓冲。在 Oracle7 中,你可以使用 alter table xxx cache 语句,在 Oracle8 或以上,小表可以被强制为放到 KEEP 池中缓冲。. 确保最优的索引使用 :对于改善查询的速度,这是特别重要的。有时 Oracle 可以选择多个索引来进行查询,调优专家必须检查每个索引并且确保 Oracle 使用正确的索引。它还包括 bitmap 和基于函数的索引的使用。. 确保最优的 JOIN 操作:有些查询使用 NESTED LOOP join 快一些,有些则是 HASH join 快一些,另外一些则是 sort-merge join 更快。这些规则看来简单,不过它们占 SQL 调优任务的 90% ,并且它们也无需完全懂得 Oracle SQL 的内部运作。以下我们来简单概览以下 Oracle SQL 的优化。我们首先简要查看 Oracle 的排序,并且看一看排序操作是如何影响性能的。调整 Oracle 的排序操作排序是 SQL 语法中一个小的方面,但很重要,在 Oracle 的调整中,它常常被忽略。当使用 create index 、 ORDER BY 或者 GROUP BY 的语句时, Oracle 数据库将会自动执行排序的操作。通常,在以下的情况下 Oracle 会进行排序的操作:使用 Order by 的 SQL 语句使用 Group by 的 SQL 语句在创建索引的时候进行 table join 时,由于现有索引的不足而导致 SQL 优化器调用 MERGE SORT当与 Oracle 建立起一个 session 时,在内存中就会为该 session 分配一个私有的排序区域。如果该连接是一个专用的连接 (dedicated connection) ,那么就会根据 init.ora 中 sort_area_size 参数的大小在内存中分配一个 Program Global Area (PGA) 。如果连接是通过多线程服务器建立的,那么排序的空间就在 large_pool 中分配。不幸的是,对于所有的 session ,用做排序的内存量都必须是一样的,我们不能为需要更大排序的操作分配额外的排序区域。因此,设计者必须作出一个平衡,在分配足够的排序区域以避免发生大的排序任务时出现磁盘排序( disk sorts )的同时,对于那些并不需要进行很大排序的任务,就会出现一些浪费。当然,当排序的空间需求超出了 sort_area_size 的大小时,这时将会在 TEMP 表空间中分页进行磁盘排序。磁盘排序要比内存排序大概慢 14,000 倍。上面我们已经提到,私有排序区域的大小是有 init.ora 中的 sort_area_size 参数决定的。每个排序所占用的大小由 init.ora 中的 sort_area_retained_size 参数决定。当排序不能在分配的空间中完成时,就会使用磁盘排序的方式,即在 Oracle 实例中的临时表空间中进行。磁盘排序的开销是很大的,有几个方面的原因。首先,和内存排序相比较,它们特别慢;而且磁盘排序会消耗临时表空间中的资源。 Oracle 还必须分配缓冲池块来保持临时表空间中的块。无论什么时候,内存排序都比磁盘排序好,磁盘排序将会令任务变慢,并且会影响 Oracle 实例的当前任务的执行。还有,过多的磁盘排序将会令 free buffer waits 的值变高,从而令其它任务的数据块由缓冲中移走。接着,让我们看一下 Oracle 的竞争,并且看一下表的存储参数的设置是如何影响 SQL UPDATE 和 INSERT 语句的性能的。调整 Oracle 的竞争Oracle 的其中一个优点时它可以管理每个表空间中的自由空间。 Oracle 负责处理表和索引的空间管理,这样就可以让我们无需懂得 Oracle 的表和索引的内部运作。不过,对于有经验的 Oracle 调优专家来说,他需要懂得 Oracle 是如何管理表的 extent 和空闲的数据块。对于调整拥有高的 insert 或者 update 的系统来说,这是非常重要的。要精通对象的调整,你需要懂得 freelists 和 freelist 组的行为,它们和 pctfree 及 pctused 参数的值有关。这些知识对于企业资源计划( ERP )的应用是特别重要的,因为在这些应用中,不正确的表设置通常是 DML 语句执行慢的原因。对于初学者来说,最常见的错误是认为默认的 Oracle 参数对于所有的对象都是最佳的。除非磁盘的消耗不是一个问题,否则在设置表的 pctfree 和 pctused 参数时,就必须考虑平均的行长和数据库的块大小,这样空的块才会被有效地放到 freelists 中。当这些设置不正确时,那些得到的 freelists 也是 "dead" 块,因为它们没有足够的空间来存储一行,这样将会导致明显的处理延迟。Freelists 对于有效地重新使用 Oracle 表空间中的空间是很重要的,它和 pctfree 及 pctused 这两个存储参数的设置直接相关。通过将 pctused 设置为一个高的值,这时数据库就会尽快地重新使用块。不过,高性能和有效地重新使用表的块是对立的。在调整 Oracle 的表格和索引时,需要认真考虑究竟需要高性能还是有效的空间重用,并且据此来设置表的参数。以下我们来看一下这些 freelists 是如何影响 Oracle 的性能的。当有一个请求需要插入一行到表格中时, Oracle 就会到 freelist 中寻找一个有足够的空间来容纳一行的块。你也许知道, freelist 串是放在表格或者索引的第一个块中,这个块也被称为段头( segment header )。 pctfree 和 pctused 参数的唯一目的就是为了控制块如何在 freelists 中进出。虽然 freelist link 和 unlink 是简单的 Oracle 功能,不过设置 freelist link (pctused) 和 unlink (pctfree) 对 Oracle 的性能确实有影响。由 DBA 的基本知识知道, pctfree 参数是控制 freelist un-links 的(即将块由 freelists 中移除)。设置 pctfree=10 意味着每个块都保留 10% 的空间用作行扩展。 pctused 参数是控制 freelist re-links 的。设置 pctused=40 意味着只有在块的使用低于 40% 时才会回到表格的 freelists 中。许多新手对于一个块重新回到 freelists 后的处理都有些误解。其实,一旦由于一个删除的操作而令块被重新加入到 freelist 中,它将会一直保留在 freelist 中即使空间的使用超过了 60% ,只有在到达 pctfree 时才会将数据块由 freelist 中移走。表格和索引存储参数设置的要求总结以下的一些规则是用来设置 freelists, freelist groups, pctfree 和 pctused 存储参数的。你也知道, pctused 和 pctfree 的值是可以很容易地通过 alter table 命令修改的,一个好的 DBA 应该知道如何设置这些参数的最佳值。有效地使用空间和高性能之间是有矛盾的,而表格的存储参数就是控制这个方面的矛盾:. 对于需要有效地重新使用空间,可以设置一个高的 pctused 值,不过副作用是需要额外的 I/O 。一个高的 pctused 值意味着相对满的块都会放到 freelist 中。因此,这些块在再次满之前只可以接受几行记录,从而导致更多的 I/O 。. 追求高性能的话,可以将 pctused 设置为一个低的值,这意味着 Oracle 不会将数据块放到 freelists 中直到它几乎是空的。那么块将可以在满之前接收更多的行,因此可以减少插入操作的 I/O 。要记住 Oracle 扩展新块的性能要比重新使用现有的块高。对于 Oracle 来说,扩展一个表比管理 freelists 消耗更少的资源。让我们来回顾一下设置对象存储参数的一些常见规则:.经常将 pctused 设置为可以接收一条新行。对于不能接受一行的 free blocks 对于我们来说是没有用的。如果这样做,将会令 Oracle 的性能变慢,因为 Oracle 将在扩展表来得到一个空的块之前,企图读取 5 个 "dead" 的 free block 。.表格中 chained rows 的出现意味着 pctfree 太低或者是 db_block_size 太少。在很多情况下, RAW 和 LONG RAW 列都很巨大,以至超过了 Oracle 的最大块的大小,这时 chained rows 是不可以避免的。.如果一个表有同时插入的 SQL 语句,那么它需要有同时删除的语句。运行单一个一个清除的工作将会把全部的空闲块放到一个 freelist 中,而没有其它包含有任何空闲块的 freelists 出现。. freelist 参数应该设置为表格同时更新的最大值。例如,如果在任何时候,某个表最多有 20 个用户执行插入的操作,那么该表的参数应该设置为 freelists=20 。应记住的是 freelist groups 参数的值只是对于 Oracle Parallel Server 和 Real Application Clusters 才是有用的。对于这类 Oracle , freelist groups 应该设置为访问该表格的 Oracle Parallel Server 实例的数目。

Oracle数据库的一些基本常识

Oracle数据库的一些基本常识一、Oracle所包含的组件:在Oracle,数据库是指整个 Oracle RDBMS 环境,它包括以下组件:1.Oracle 数据库进程和缓冲(实例)。2.SYSTEM 表空间包含一个集中系统类目,它可以由一个或多个数据文件构成。3.其它由数据库管理员 (DBA)(可选)定义的表空间,每个都由一个或多个数据文件构成。4.两个以上的联机恢复日志。5.归档恢复日志(可选)。6.其它文件(控制文件、Init.ora、Config.ora 等)。每个 Oracle 数据库都在一个中央系统类目和数据字典上运行,它位于SYSTEM 表空间。二、关于“日志”Oracle数据库使用几种结构来保护数据:数据库后备、日志、回滚段和控制文件。下面我们将大体上了解一下作为主要结构之一的“日志”:每一个Oracle数据库实例都提供日志,记录数据库中所作的全部修改。每一个运行的Oracle数据库实例相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,立即记录该实例所作的全部修改。归档(离线)日志是可选择的,一个Oracle数据库实例一旦在线日志填满后,可形成在线日志归档文件。归档的在线日志文件被唯一标识并合并成归档日志。关于在线日志:一个Oracle数据库的每一实例有一个相关联的在线日志。一个在线日志由多个在线日志文件组成。在线日志文件(online redo log file)填入日志项(redo entry),日志项记录的数据用于重构对数据库所作的全部修改。关于归档日志:Oracle要将填满的在线日志文件组归档时,则要建立归档日志(archived redo log)。其对数据库备份和恢复有下列用处:1数据库后备以及在线和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事物可被恢复。2在数据库打开和正常系统使用下,如果归档日志是永久保存,在线后备可以进行和使用。数据库可运行在两种不同方式下:NOARCHIVELOG方式或ARCHIVELOG 方式。数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档。如果数据库在ARCHIVELOG方式下运行,可实施在线日志的归档。三、物理和逻辑存储结构:Oracle RDBMS是由表空间组成的,而表空间又是由数据文件组成的。表空间数据文件被格式化为内部的块单位。块的大小,是由DBA在Oracle第一次创建的时候设置的,可以在512到8192个字节的范围内变动。当一个对象在Oracle表空间中创建的时候,用户用叫做长度的单位(初始长度((initial extent)、下一个长度(next extent)、最小长度(min extents)、以及最大长度(max extents))来标明该对象的空间大小。一个Oracle长度的大小可以变化,但是要包含一个由至少五个连续的块构成的链。4.Oracle与Microsoft SQL Server比较下的联网协议:

ORACLE实例和ORACLE数据库详解

导读:oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。不过,一般的中小型企业都比较喜欢用mysql, SQL server等数据库系统,它的操作很简单,功能也非常齐全。只是比较oracle数据库而言,在处理大量数据方面有些不如。一、ORACLE实例1、ORACLE 实例——包括内存结构与后台进程System Global Area(SGA) 和 Background Process 称为数据库的实例。2、ORACLE 数据库——物理操作系统文件的集合一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等)3、系统全局共享区System Global Area(SGA)System Global Area是一块巨大的共享内存区域,他被看做是Oracle数据库的一个大缓冲池,这里的数据可以被ORACLE的各个进程共用。其大小可以通过如下语句查看:SQL select * from v$sga;NAME VALUE-Fixed Size 39816Variable Size 259812784Database Buffers 1.049E+09Redo Buffers 327680更详细的信息可以参考V$sgastat、V$buffer_pool主要包括以下几个部分:a、 共享池(Shared pool)共享池是SGA中最关键的内存片段,特别是在性能和可伸缩性上。一个太小的共享池会扼杀性能,使系统停止,太大的共享池也会有同样的效果,将会消耗大量的CPU来管理这个共享池。不正确的使用共享池只会带来灾难。共享池主要又可以分为以下两个部分:SQL语句缓冲(Library Cache)当一个用户提交一个SQL语句,Oracle会将这句SQL进行分析(parse),这个过程类似于编译,会耗费相对较多的时间。在分析完这个SQL,Oracle会把他的分析结果给保存在Sharedpool的LibraryCache中,当数据库第二次执行该SQL时,Oracle自动跳过这个分析过程,从而减少了系统运行的时间。这也是为什么第一次运行的SQL比第二次运行的SQL要慢一点的原因。下面举例说明parse的时间SQL select count(*) fromscpass ;COUNT(*)--243Elapsed: 00:00:00.08这是在Share_pool 和Data buffer 都没有数据缓冲区的情况下所用的时间SQL alter system flush SHARED_POOL;System altered.清空Share_pool,保留Data bufferSQL select count(*) from scpass ;COUNT(*)--243Elapsed: 00:00:00.02SQL select count(*) from scpass ;COUNT(*)--243Elapsed: 00:00:00.00从两句SQL 的时间差上可以看出该SQL 的Parse 时间约为00:00:00.02对于保存在共享池中的SQL语句,可以从V$Sqltext、v$Sqlarea中查询到,对于编程者来说,要尽量提高语句的重用率,减少语句的分析时间。一个设计的差的应用程序可以毁掉整个数据库的Sharepool,提高SQL语句的重用率必须先养成良好的变成习惯,尽量使用Bind变量。数据字典缓冲区(Data Dictionary Cache)显而易见,数据字典缓冲区是ORACLE特地为数据字典准备的一块缓冲池,供ORACLE内部使用,没有什么可以说的。上文的内容相对来说还是很基础的,所以对于刚刚入门的初学者来说,学习初期,好好的研究一下本文中介绍的内容,相信对大家的入门学习会很有帮助的。

数据库oracle简介

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。特点1、完整的数据管理功能:[2] 1)数据的大量性2)数据的保存的持久性3)数据的共享性4)数据的可靠性2、完备关系的产品:1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;2)保证访问的准则3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化4)数据物理性和逻辑性独立准则3、分布式处理功能:ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成。4、用ORACLE能轻松的实现数据仓库的操作。这是一个技术发展的趋势,不在这里讨论。优点■ 可用性强■ 可扩展性强■ 数据安全性强■ 稳定性强

Oracle数据库体系架构概要

Oracle数据库系统是一个复杂的软件系统。所谓Oracle的体系架构,是指Oracle数据库管理系统的的组成部分和这些组成部分之间的相互关系,包括内存结构、后台进程、物理与逻辑结构等。下图为Oracle数据库体系总体图:Oracle数据库的体系很复杂,复杂的原因在于它最大限度的节约内存,从上图可以看出,它在整体上分实例和数据库文件两部分。一、实例(Instance):指数据库服务器的内存及相关处理程序,它是Oracle的心脏。与Oracle性能关系最大的是SGA(System Global Area,即系统全局区活共享内存区),SGA包含三个部分:1、数据缓冲区,可避免重复读取常用的数据;2、日志缓冲区,提升了数据增删改的速度,减少磁盘的读写而加快速度;3、共享池,使相同的SQL语句不再编译,提升了SQL的执行速度。二、数据库文件,由操作系统内的各种文件组组成。1、Oracle数据库逻辑结构:1)。表空间,数据库的基本逻辑结构,是一系列数据文件的集合;2)。段,不同类型数据在数据库中占用的空间,有许多区组合而成;3)。区,目的是为数据一次性预留一个较大的空间;4)。块,最小的存储单位,在创建数据库时指定。2、Oracle数据库物理结构:1)。数据文件(Data File),存储数据的文件;2)。重做日志文件(Redo Log File),负责记录数据库内任何数据的处理情况,可用于数据的恢复;3)。控制文件(Control File),控制和记录数据库的实体结构;4)。初始化参数文件(Initialization Parameter File),配置内存空间的依据;5)。口令文件(Password File),认证用户启动和关闭Oracle例程的权限。

ORA-123456:TNS:权限被拒 ,安装oracle出现这个错误,怎么解决啊,在线等。。。。。

1、应该是在Windows 7之下进行安装,如果是在Windows 7之下安装,需要设置一下。2、控制面板--》系统和安全--》用户账户控制--》选择不通知。3、然后右键安装程序,选择“以管理员身份运行”,进行安装。4、如果还是不行的话,右键--》属性--》然后在安全里面选择Windows xp模式,或者是Windows xp package2,或者是Windows xp package3,或者是windowsfor visita。 如果还有错误,就贴出来!再问。 oracle 10g中针对win7的版本有for visita 版本可以使用,如果你用的一般的10g估计够呛!不要做无谓的劳作。

oracle中,还是不甚明白order by和group by的用法

一个排序 一个分组 怎么不明白呀 不是一个意义呀一个是用来改结果集的顺序的一个是用来统计某些字段信息的group by 不带排序功能你可以group by了之后 order by 1,2

oracle中在in子查询语句中order by排序能否用?

SELECT * FROM (SELECT ORG_ID,ORG_NAME,ORG_PARENT_ID FROM ORG_MASTER WHERE ORG_PARENT_ID=1 ORDER BY ORG_ORDER) AND ROWNUM <=30;你是想查询出县的数据排序并取前30条对吧~!使用上述语句~!

oracle使用order by和rownum效率很慢,有没有提升的办法

这2个有什么关系,rownum是伪列,不是用户设计的,oracle自动添加的一串字符串,用户select *是看不到了,除非select rownum才行,是用来标识这行的数据块位置,order by是排序,后面跟的是表的实际列,就是更用户自己设计的字段。

oracle中,还是不甚明白order by和group by的用法

一个排序 一个分组 怎么不明白呀 不是一个意义呀一个是用来改结果集的顺序的一个是用来统计某些字段信息的group by 不带排序功能你可以group by了之后 order by 1,2

organicletters属于acs数据库吗

organicletters属于acs数据库。根据查询相关信息显示,acs化学全文数据库美国电子书AmericanChemicalSocietyPublications美国化学学会,全文数据库MosttrustedMostcitedMostread,成立于1876年。

organicletters上有综述吗

organicletters上有综述。organicletters分全文和综述。后来有了OrganicLetters成为它的通讯,JOC则以全文为主。现在也发些notes。

clear和class他们的c读音一样吗?

是的,一样的

oracle中使用rownum分页,请教一下数据的顺序会变吗?

第一次的rownum是oracle中的一个虚拟列你说的rn是给这个rownum起的别名,也就是在子查询中的别名要在外查询中调用oracle中的分页查询不止是只有rownum还可以用row_number等函数(不过这个是根据某个字段排序后的排名,这个在数据量较大的情况下很影响查询效率),不过这个的调用方式也跟上边的那个类似,并且,这个row_number函数在sqlserver中也是可以使用的,具体的你可以搜索一下

oracle 多字段查询数据排重,除了row_number()over(partition by )还能怎么实现

select 字段1,字段2 from table_nam where X like "%X%" or X like "%Y%" or X like "%Z%"--这个是把只要包含X或Y或Z的数据都查出来select 字段1,字段2 from table_nam where X like "%X%" and X like "%Y%" and X like "%Z%"--这个是把包含X而且包含Y而且包含Z的数据都查出来了select 字段1,字段2 from table_nam where X like "%X%Y%Z%"--不过这个XYZ是有顺序的 http://zhidao.baidu.com/question/117157851百度上找的,看合适不?

请问oracle的行标识符rowid与行号rownum有什么区别?

ROWID 是全库唯一的 对应 对象号,文件号,块号 ,行号 准确找到物理位置ROWNUM只是表中的行号 1,2,3,4,5........ 比如你想SELECT * FROM t WHERE rownum <4 就是限制返回行数,

oracle按某个字段的大小排序,然后得到这个字段在这个表中的位置,rownumber有的时候不准确

外面套一层select

sql中有没有类似于oracle中rownum的函数

rownum是oracle的东西,其他数据库没这玩意。如果是局部分页的用到的话,建议你考虑重写分页语句。mysql有limit换起来也还不麻烦,sqlserver的话就比较麻烦了网上也有这语句我就不拿来献丑了,如果是不想写,建议你在表里补一个rownum字段设为子增长,定期重置此字段的排序

oracle 分页用row_number()效率高吗

分页最佳实践:http://www.askmaclean.com/archives/topn-pagination-pattern.html

如何限制oracle数据库表的输出记录条数

ROWNUM<你想要输出的数目,写在where后

sql中有没有类似于oracle中rownum的函数

Oracle row_number()函数用法row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪劣rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码。 row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开始排序)。 rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内) dense_rank()也是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的。 oracle 分析函数 row_number(),返回一个整数值(>=1); 语法格式: row_number() over (order by col_1[,col_2 ...]) 作用:按照col_1[,col_2 ...]排序,返回排序后的结果集。

oracle中row_number查重用法

查重不是用group by吗?和row_number有啥关系?

excle 如何实现 row_number() over 函数?

在B2输入公式(下面一整行,包括开头的等号):=COUNTIF(C$2:C2,C2)回车后下拉

oracle中row_number查重用法

1u3001selectuser_name,count(1)row_numberfromcustomergroupbyuser_namehavingcount(user_name)>1;2u3001selectcid,count(1)fromCONFIGgroupbycidhavingcount(1)>150orderbycount(1);3u3001selecta.message_id,row_number()over(partitionbyv_name,v_phoneorderbyvst_name)asnfrommessageawhereid=440;4u3001deletefrommessagewheremessage_idin(selectmessage_idfrom(selecta.message_id,row_number()over(partitionbyvst_name,vst_phoneorderbyvst_name)asnfrommessageawhereid=440wheren>1);

Oracle中row_number() over(partition by xxx order by xxx)的用法

row_number() over(partition by a order by b) 上面的意思就是将查询结果按照a字段分组(partition),然后组内按照b字段排序,至于asc还是desc,可自行选择,然后为每行记录返回一个rownumber用于标记顺序 如同上面这张表的内容,按照deptid分组的,组内按照salary降序排序的,rank就是返回的rownumber号 这个就是按照deptid=10分组了,组内有两个记录,salary降序排序,后面rank自然就是1,2了

Oracle数据库rownum和row_number的不同点

明确对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是二,以此类推,这个为字段可以用于限制查询的返回的总行数,因为rownum总是从1开始,但是1以上的自然数在rownum做等于判断时都认为是false条件,所以无法查到rownum=n(n》1的自然数),所以查找第二行以后的记录可以用子查询方法来解决,给子查询中的rownum取别名;对于小于某个值的情况两种方法都差不多,但是对于某个不等于一的值或者求某个值到某个值之间的情况,用row_number()别名获得排名,比用rownum伪列要简单方便的多;因为伪列总是从一开始查找;具体用法和区别参见以下代码; --取出工资最高的前5位selectempno,ename,sal,rownumfromemp;select*from(select*fromemporderbysaldesc)whererownum<=5;select*from(selectename,sal,row_number()over(orderbysaldesc)asnumfromemp)wherenum<=5;select*from(selectename,sal,row_number()over(orderbysaldesc)fromemp)whererownum<=5--工资的前3名select*fromempwheresal>=any(select*from(selectsalfromemporderbysaldesc)whererownum<=3);select*from(select*fromemporderbysaldesc)whererownum<4;select*from(selectename,sal,empno,deptno,row_number()over(orderbysaldesc)fromemp)whererownum<4;select*from(selectename,sal,empno,deptno,row_number()over(orderbysaldesc)asnumfromemp)wherenum<4--按照工资排序,取出第6名到第10名--使用伪列获得select*from(selectename,sal,rownumrfrom(select*fromemporderbysaldesc)whererownum<=10)wherer>5;--使用排名函数获得select*from(selectename,sal,row_number()over(orderbysaldesc)asnumfromemp)wherenum>5andnum<=10;-------按工资从高到低获得工资排名第四的员工select*from(selectename,sal,row_number()over(orderbysaldesc)asnumfromemp)wherenum=4;select*from(selectename,sal,rownumrfrom(select*fromemporderbysaldesc)whererownum<=4)wherer=4;总结oracle中rownum和row_number()的区别row_number()是分析函数,基本语法为row_number()over(partitionby字段orderby字段)rownum是一个伪列select*fromdeptwhererownum<=3;select*fromdeptwhererownumbetween2and3;这儿会出错,因为rownum的特性(没有1就不会有2,没有3)决定的SELECT*FROM(SELECTA.*,ROWNUNFROMDEPTA)T1WHERET1.ROWNUMBETWEEN2AND3;这么写不对,要这样写SELECT*FROM(SELECTA.*,ROWNUMRNFROMDEPTA)T1WHERET1.RNBETWEEN2AND3;他们的主要区别是:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而函数row_number()在包含排序从句后是先排序再计算行号码。

oracle中rowid和rownumber的区别

rownum和rowid都是伪列,但是两者的根本是不同的,rownum是根据sql查询出的结果给每行分配一个逻辑编号,所以你的sql不同也就会导致最终rownum不同,但是rowid是物理结构上的,在每条记录insert到数据库中时,都会有一个唯一的物理记录,例如AAAMgzAAEAAAAAgAAB7499ALLENSALESMAN76981981/2/201600.00300.0030这里的AAAMgzAAEAAAAAgAAB物理位置对应了这条记录,这个记录是不会随着sql的改变而改变。因此,这就导致了他们的使用场景不同了,通常在sql分页时或是查找某一范围内的记录时,我们会使用rownum。1、rownum例如:查找2到10范围内的记录(这里包括2和10的记录)select*from(selectrownumrn,a.*fromempa)twheret.rnbetween2and10;查找前三名的记录select*fromempawhererownum<3;这里我们要注意,直接用rownum查找的范围必须要包含1;因为rownum是从1开始记录的,当然你可以把rownum查出来后放在一个虚表中作为这个虚表的字段再根据条件查询。例如:select*from(selectrownumrn,a.*fromempa)twheret.rn>2;这就可以了2、rowid我们在处理一张表中重复记录时经常用到他,当然你也可以用一个很原始的方法,就是将有重复记录的表中的数据导到另外一张表中,最后再倒回去。SQL>createtablestu_tmpasselectdistinct*fromstu;SQL>truncatetablesut;//清空表记录SQL>insertintostuselect*fromstu_tmp;//将临时表中的数据添加回原表但是要是stu的表数据是百万级或是更大的千万级的,那这样的方法显然是不明智的,因此我们可以根据rowid来处理,rowid具有唯一性,查询时效率是很高的,例如,学生表中的姓名会有重复的情况,但是学生的学号是不会重复的,如果我们要删除学生表中姓名重复只留学号最大的学生的记录,怎么办呢?deletefromstuawhererowidnotin(selectmax(rowid)fromstubwherea.name=b.nameanda.stno<b.stno);这样就可以了。

Oracle分析函数之排序 row_number() & rank()

对于排序分析,应用的业务分析场景很多,例如所有销售大区的TOP5、按具体规则对数据集进行重新排序编号等,这些业务场景采用分析函数中排序函数,将很方便简单。 当前常用的排序类分析函数包括:row_number()、rank()、dense_rank(),这三个函数都可应用在排序场景中,但 又有些许不同。 特点:对分组后的排序结果进行递增编号,出现同值的也是递增处理。 rank()特点:按分组后的排序结果进行递增编号,如出现相同值则序号一致,但相邻出现的不同值序号将从rown+N开始(rown为前一个值的序号,N为前一个值相同的个数)。 dense_rank()特点:和rank()相似,按分组后的排序结果进行递增编号,如出现相同值则序号一致,但相邻出现的不同值序号将从rown+1开始。 1.row_number()应用于 不区分同值排序 的业务场景; 2.rank()&dense_rank()应用于 区分同值排序 的业务场景,至于用rank和dense_rank,则要看对同值排序后对序号递增方式的具体要求来定。 有了上述三个函数,对于日常公司分析大区销售排名、销售代表排名、部门费用项排名等等,将会非常的方便快捷。

如何去掉Oracle的大小写敏感

oracle数据库大小写敏感设置将sec_case_sensitive_logon初始化参数设置为false后就不区分密码大小写了。 sql> show parameter sec_case_sensitive_logon  name type value  ------------------------------------ ----------- ------------------------------  sec_case_sensitive_logon boolean true  sql>  sql> alter system set sec_case_sensitive_logon = false;  system altered.  sql>conn / as sysdba  alter system set sec_case_sensitive_logon = false;  sql> conn test2/test2  connected.  sql> conn test2/test2  connected.  sql>  需要记住的是,即使大小写敏感密码参数没有启用,在保存密码时也是区分了大小写的,以便以后在启用大小写敏感参数时有效,下面的代码先禁用了大小写敏感密码,然后创建了一个包含大小写字符密码的用户。  

Ubuntu linux 安装oracle 11G 问题

你保证oracle这个压缩包都解开了吗,su root了吗,安装前先看一下readme文件,应该有说怎么做installation的。

登录oracle的时候提示01017

是不是用户密码不对呀。 或者是没有这个用户,或是用户没有权限

clear test report是什么意思

clear test report是清除测试报告的意思

我有一件正品的moncler羽绒服,穿了一个冬天看着好像不怎么脏,但是还是想清洗一下收起来,大家知道怎么处

我觉得仔细擦一下就OK吧 因为好羽绒服都是有压缩羽绒技术在里面的 我们普通的羽绒服不太脏擦一下就好了呢 不然可以去卖处或者咨询一下喽……

在Magic Circle和美国前5律所都工作过是一种什么体验

厚颜无耻的来回答一下这个问题... 这个夏天我在Clifford Chance的新加坡办公室做HR/Paralegal Intern,虽然说不是做vacation scheme对他们具体做的法律工作没有第一手接触,但是对公司的结构和员工的管理还是有比较深刻的认识。Clifford Chance的global hiring pratice是一致的,都是在前一年的暑假招募penultimate law students来做vacation scheme,然后再从这个feeder program当中选出人来签两年的training contract。和美国white shoe law firm里first year associate就能享受$15W左右工资(不加bonus)的情况不同,在Magic Circle里做两年Trainee期间工资大概只有8W。Trainee在这两年时间中要做四个seat rotation,其中一个seat大多在国外的一个办公室。主要的pratice area有Banking&Finance, Capital Markets,Corporate,Litigation,Tax和Antitrust。不过像新加坡这种比较小的办公室就只有四个Practice Area。在Training Contract结束后,Trainee将在他/她Rotate的四个pratice area中选择一个qualify(具体需要参加的法律考试在各个jurisdiction各不相同)。Qualify之后如果能拿到公司的return offer就正式成为了junior associate。公司由低到高的律师等级是Junior Associate - Senior Associate - Counsel - Non-equity Partner - Partner - Managing Partner。从最低的Junior Associate做到Partner一般至少需要12年时间 (12年面朝黄土的奋斗时间)。另外随症Seniority的增加除了所做的法律工作的难度和复杂程度逐渐上升之外,你也会被要求做更多Business Development (BD) 方面的工作,通俗的来讲就是为公司招揽生意。要想成为Partner的话BD是不可或缺的一部分,因为如果你不能给公司带来更多的利润的话每个Partner所得到的利润就会被稀释,而成为Partner需要得到现有Partner们的大多数赞成票。 当然了,大部分人都不会做到Partner级别,而一般会在做到Senior Associate后转为in-house lawyer,就是转入一个非法律公司的内部法律部门。两者相对比的话,虽然in-house lawyer的收入一般而言会比律所的律师少一些,但是工作强度会小得多,相当于是Trade-off。所以除了能力有限的原因外,很多人会因为Work/Life Balance转为in-house。下面谈一谈工作强度问题。Magic Circle Firm的target billale hours一般在1700小时左右,而white shoe law firm一般在2000小时以上。在我新加坡实习期间个人感受Clifford Chance大部分律师日常office schedule是9:30 am - 9 pm左右,另外在closing deal或者准备pitch的前一星期几乎是一天只有4个小时的睡眠。但就billable hours来看的话white shoe law firm的工作强度应该会更大。大多数的Magic Circle Law Firms的规模都比美国的顶尖律所大得多(Wachtell只有纽约的一个办公司而Clifford Chance在全球有36个办公司)。尽管如此,white shoe law firm的profits per partner(PPP)普遍比magic circle law firm高,而且业界人士也大多认为美国的white shoe firms的专业水平更高。好咯,就说到这里。

I meet uncle last month. 这句话对吗?

应该是I met uncle last month

oracle里面的包(package) 有什么用啊?

类似自定义函数,oracle都写好了,直接用就行了

Oracle中的package 怎么用

Oracle中的package 怎么用在调用时应该这么写,包名.方法名(入参,出参)

oracle触发器同一个表操作,报错

你可以分别在多个表上定义触发器。oracle的存储过程和函数区别不大,可以在函数中进行数据的insert、update、delete等操作;而一般数据库来说,函数只能进行查询、计算等,不能进行insert、update、delete等操作;存储过程则不受此限制。如果是单值函数,可以在select 列表 中使用

请教screening,investigation,clearance,check之间区别。

screening来自于screen,作名词时表示电影银幕,电视机(电脑)荧屏,筛子,电磁屏蔽等,作动词表示.筛选、筛查、遮蔽、检查,screening就来自screen的动词用法,表示:筛选、筛查、放映的意思。比如从一批产品中筛查出不合格的产品来。investigation最接近于中文的调查研究的意思,即既有研究的意思,但还有调查的意思,和research的研究有些区别。clearance的意思是:间隙;清除;净空;清理。它和其他三个单词应该同义的成分不大,如果说是clear,那么还有点清理的意思,但关系也不是很大。check基本意思是检查;查看;检验;核查,也比较明确,如果容易和他意思相近的单词倒不是screening,investigation,而是inspection(检验)、examination(考核)、detection(监测)等。供参考》

Oracle翻译

先知 哲人 神谕

clearimmigration是什么意思

clear immigration办理移民手续1Her uncle took four hours to clear immigration.她叔叔花了4个小时去办理移民手续。2The tour is arranged so that passengers don"t have to clear immigration& theairport retains passports so passengers don"t run off.由于是机场安排,因此旅客不需要办理入境手续,机场扣留护照以防旅客逃跑。

oracle 如何将数据作为列名显示并总和

select * from all_tab_columns where table_name = "xxx " and owner = "xxx "; 或者 select * from user_tab_columns where table_name = "xxx "

Oracle应用也能跑在Azure上了!微软、甲骨文签定云互通协议

在许多业务上水火不容的微软与甲骨文周三宣布云端互通的合作协议,让彼此的用户能无碍在Microsoft Azure和Oracle Cloud两个环境下搬移资料和作业,企业客户甚至能将Oracle ERP及底层Oracle Database分别跑在Azure及Oracle Cloud上。 双方合作包括Azure和Oracle Cloud直接的网络 互连 及身份验证系统整合,确保高速而稳定的网络连线及应用顺畅执行。在这项合作下,企业的Analytics和AI等Azure服务,都可无缝整合Oracle Cloud服务,例如Autonomous Database,或是将一部份作业丢到Azure上,另一 部份 置于Oracle Cloud上执行。除了各自云端应用的兼容执行,还能有创新部署,像是Oracle E-Business Suite放在Azure,但底层Oracle Database仍然跑在Oracle Cloud的Exadata基础架构上。双方并表示,Azure和Oracle Cloud的互通也为企业客户提供一站购足的平台,取得所有业务营运所需的云端服务和应用。甲骨文云端基础架构(Oracle Cloud Infrastructure,OCI)执行副总裁Don Johnson指出,Oracle Cloud提供完整的行销、服务、销售、人资、财务、供应链管理及制造应用,以及Oracle Autonomous Database等第二代基础架构软件,双方合作将可使共同客户将现有应用搬上云端环境,而无需重新架构,有助于节省现有投资。目前已经有GAP及油田业者Halliburton采用双方新的服务。 Oracle Cloud提供企业级的软件即服务(Software as a Service)及云端数据库,而微软Azure则提供SaaS及底层平台即服务(Platform as a Service)。一向竞争的两大软件公司此番携手合作,一来可让微软接触到更多甲骨文企业客户,而云端服务比起AWS、Microsoft Azure较弱的甲骨文,则能满足企业用户采用云端架构的需求。 即日起,Oracle Cloud在北美维吉尼亚州Ashburn市及Microsoft Azure美东区(US East)的资料中心将启动网络 互连 ,预计未来再扩展到其他区域资料中心,可使企业本地(on- premise)资料中心扩展到二朵云上。此外,双方透过单一 签入 及自动化的用户部署(user provisioning),实现统一身份与存取管理,以便于灵活管理Azure和Oracle Cloud上的资源。双方今天也释出预览版本,使Oracle应用系统可以Azure Active Directory管理用户身份及存取权限。 两大云端整合可支持的部署情境包括:在Azure上执行Oracle应用产品(JD Edwards EnterpriseOne、E-Business Suite、PeopleSoft、Oracle Retail、Hyperion)而Oracle资料(RAC、Exadata、Autonomous Database)跑在Oracle Cloud上。这些应用程式也将取得相应的认证。另一方面Windows Server及Oracle Linux版本Oracle Database仍然维持Azure认证。双方也提供协同支持,以协助企业部署新的跨云系统。

uitrasonic cleaner是什么意思

应该是ultrasonic吧...如果是ultrasonic cleaner的话,是“超声波清洗器”之类的东西

oracle user lock怎么查看

  ORA-28000: the account is locked”,如是也没多想,直接操作  SQL>conn /as sysdba  SQL>alter user test account unlock;  SQL>conn test/test  还是报同样的错误,这就奇怪了。看看dba_users中该用户的状态等信息  SQL>select account_status,lock_date,profile from dba_users where username="TEST";  发现就是今天才锁定的,帐号状态为“LOCKED(TIMED)”,不明白这个TIMED什么意思,搜了一把,原来是密码错误次数超过了系统设置的允许最大次数。  查看现在设置的最大次数  SELECT resource_name,resource_type,limit FROM dba_profiles WHERE profile="DEFAULT";  找到  FAILED_LOGIN_ATTEMPTS PASSWORD 10  也就是说,原来允许的最大密码错误次数为10次,超过10次自动锁定帐号。难怪我怎么alter unlock都没用,看来还得先把这限制放宽才行。  把限制参数 FAILED_LOGIN_ATTEMPTS 修改成:unlimited  sql> alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;  或 修改成比较大次数:100000  sql>alter profile default limit FAILED_LOGIN_ATTEMPTS 100000;  再执行如下  SQL>alter user test account unlock;  SQL>conn test/test  就可以正常登录了。  下面,就看看dba_users中的account_status运行的各种状态以及对应的说明。  DBA_USERS中的ACCOUNT_STATUS的值有  OPEN  EXPIRED  EXPIRED(GRACE)  LOCKED(TIMED)  LOCKED  EXPIRED & LOCKED(TIMED)  EXPIRED(GRACE) & LOCKED(TIMED)  EXPIRED & LOCKED  EXPIRED(GRACE) & LOCKED  下面分别解释一下open.locked,expired,EXPIRED(GRACE) ,LOCKED(TIMED) ,其余几个概念就是这几个状态的组合。  1. open 当前用户是开放的可以使用的.  SQL> select username,account_status from dba_users where username = "TONGJW";  USERNAME ACCOUNT_STATUS  ------------------------------ --------------------------------  TONGJW OPEN  SQL> conn tongjw  Enter password: *******  Connected.  2. expired 表示用户已经过期, 登录的时候, 如果密码输入正确,系统会提示重新输入密码的.  SQL> conn jfdata/jf  Connected.  SQL> alter user tongjw account unlock;  User altered.  SQL> alter user tongjw password expire;  User altered.  SQL> conn tongjw  Enter password: *******  ERROR:  ORA-28001: the password has expired  Changing password for tongjw  New password: *******  Retype new password: *******  Password changed  Connected.  3. locked 表明当前帐户被锁了, 不可以登录的.  SQL> conn jfdata/jf  Connected.  SQL> alter user tongjw account lock;  User altered.  SQL> conn tongjw  Enter password: *******  ERROR:  ORA-28000: the account is locked  Warning: You are no longer connected to ORACLE.  expired (grace) 与 locked (timed) 是有系统的profile来进行控制的.  4. expired (grace) 指定一个期限, 到达这个期限的时候,系统会给出一个警告并且允许登录(grace), 如果过了这段期限, 对应的密码就会自动过期, 相当于我们的密码过期提醒.  PASSWORD_GRACE_TIME  PASSWORD_LIFE_TIME  Specify the number of days after the grace period begins during which a warning is issued and login is allowed. If the password is not changed during the grace period, the password expires.  SQL> select username,account_status,profile from dba_users where username = "TONGJW";  USERNAME ACCOUNT_STATUS PROFILE  ------------------------------ -------------------------------- ------------------------------  TONGJW OPEN DEFAULT  SQL> create profile test limit  2 password_life_time 5 password_grace_time 5;  Profile created.  SQL> alter user tongjw profile test;  User altered.  SQL> select username,account_status,profile from dba_users where username = "TONGJW";  USERNAME ACCOUNT_STATUS PROFILE  ------------------------------ -------------------------------- ------------------------------  TONGJW OPEN TEST  SQL> conn tongjw/playboy  Connected.  SQL> /  这时我们修改系统时间, 将日期往后修改几天  [oracle@TzDbTzcenter2 ]$ su  Password:  [root@TzDbTzcenter2 ]# date  Tue Mar 22 18:42:26 CST 2005  [root@TzDbTzcenter2 ]# date "03281842"  Mon Mar 28 18:42:00 CST 2005  [root@TzDbTzcenter2 ]# exit  [oracle@TzDbTzcenter2 ]$ sqlplus tongjw/tongjw  SQL*Plus: Release 9.2.0.4.0 - Production on Mon Mar 28 18:42:01 2005  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.  ERROR:  ORA-28002: the password will expire within 5 days  Connected to:  Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production  With the Partitioning, OLAP and Oracle Data Mining options  JServer Release 9.2.0.4.0 - Production  SQL> conn jfdata/jf  Connected.  SQL> select username,account_status,profile from dba_users where username = "TONGJW";  USERNAME ACCOUNT_STATUS PROFILE  ------------------------------ -------------------------------- ------------------------------  TONGJW EXPIRED(GRACE) TEST  SQL>  再将日期向后修改几天, 我们可以看到此时用户的状态已经改为Expired  [oracle@TzDbTzcenter2 ]$ sqlplus tongjw/tongjw  SQL*Plus: Release 9.2.0.4.0 - Production on Tue Apr 5 18:44:02 2005  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.  ERROR:  ORA-28001: the password has expired  Changing password for tongjw  New password:  Retype new password:  ERROR:  ORA-00988: missing or invalid password(s)  Password unchanged  Enter user-name: jfdata/jf  Connected to:  Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production  With the Partitioning, OLAP and Oracle Data Mining options  JServer Release 9.2.0.4.0 - Production  SQL> select username,account_status,profile from dba_users where username = "TONGJW";  USERNAME ACCOUNT_STATUS PROFILE  ------------------------------ -------------------------------- ------------------------------  TONGJW EXPIRED TEST  5. locked(timed)  PASSWORD_LOCK_TIME  Specify the number of days an account will be locked after the specified number of consecutive failed login attempts.  FAILED_LOGIN_ATTEMPTS  Specify the number of failed attempts to log in to the user account before the account is locked.  设定相关的profile属性^_^.  SQL> alter user tongjw profile default;  User altered.  SQL> drop profile test;  Profile dropped.  SQL> create profile test limit  2 password_lock_time 5 failed_login_attempts 3;  Profile created.  SQL> alter user tongjw profile test;  User altered.  修改系统的时间信息.  [root@TzDbTzcenter2 ]# date  Tue Mar 22 18:55:42 CST 2005  [root@TzDbTzcenter2 ]# date "03281855"  Mon Mar 28 18:55:00 CST 2005  [root@TzDbTzcenter2 ]# exit  [oracle@TzDbTzcenter2 ]$ sqlplus jfdata/jf  SQL*Plus: Release 9.2.0.4.0 - Production on Mon Mar 28 18:55:02 2005  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.  Connected to:  Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production  With the Partitioning, OLAP and Oracle Data Mining options  JServer Release 9.2.0.4.0 - Production  SQL> conn tongjw/tongjw  Connected.  SQL> conn tongjw/tongj1  ERROR:  ORA-01017: invalid username/password; logon denied  Warning: You are no longer connected to ORACLE.  SQL> conn tongjw/tongj2  ERROR:  ORA-01017: invalid username/password; logon denied  SQL> conn tongjw/tongj3  ERROR:  ORA-01017: invalid username/password; logon denied  SQL> conn tongjw/tongj4  ERROR:  ORA-28000: the account is locked  SQL> conn tongjw/tongjw  ERROR:  ORA-28000: the account is locked  SQL> conn jfdata/jf  Connected.  SQL> select username,account_status,profile from dba_users where username = "TONGJW";  USERNAME ACCOUNT_STATUS PROFILE  ------------------------------ -------------------------------- ------------------------------  TONGJW LOCKED(TIMED) TEST  SQL>

oracle两个select单独使用都好使,但是放在一起就不好使了

从同一个表中取数据,条件不同结果当然就不同了

Creedence Clearwater Revival的《Proud Mary》 歌词

歌曲名:Proud Mary歌手:Creedence Clearwater Revival专辑:Proud MaryProud Maryby John Fogerty / Elvis PresleyLeft a good job in the city,Working for The Man every night and day,And I never lost one minute of sleeping,Worrying "bout the way things might have been.Big wheel keep on turning,Proud Mary keep on burning,Rolling, rolling, rolling on the river.Cleaned a lot of plates in Memphis,Pumped a lot of pain down in New Orleans,But I never saw the good side of the city,Until I hitched a ride on a river boat queen.Big wheel keep on turning,Proud Mary keep on burning,Rolling, rolling, rolling on the river.Rolling, rolling, rolling on the river.If you come down to the river,Bet you gonna find some people who live.You don"t have to worry "cause you have no money,People on the river are happy to give.Big wheel keep on turning,Proud Mary keep on burning,Rolling, rolling, rolling on the river.Rolling, rolling, rolling on the river.Rolling, rolling, rolling on the river.Rolling, rolling, rolling on the river.edit morrison tsaihttp://music.baidu.com/song/7477969

如何将Oracle数据库转为MsSql

使用SQL Server Management Studio 打开数据库 TASK -> IMPORT DATA 然后按照你的要求 连接到ORACLE 后可以直接 把ORACLE 表(包含数据) 导入到SQL server中。 但是注意 某些类型如LOB 的话 需要特殊的处理下。

卡达斯 Cardas Clear 信号线有几个版本

似乎不行吧? 标准串口 的 另外 几个 信号线 可以控制 状态! DB9形式的RS-232串口的定义 引脚 英文简写 功能说明 1 CD 载波侦测(Data Carrier Detect) 2 RXD 接收数据(Receive Data) 3 TXD 发送数据(Transmit Data) 4 DTR 数据终端准备(Data Terminal Ready) 5 GND 信号地(Signal Ground) 6 DSR 数据准备好(Data Set Ready) 7 RTS 请求发送(Request To Send) 8 CTS 清除发送(Clear To Send) 9 RI 振铃指示(Ring Indicator)

卡达斯 Cardas Clear 信号线有几个版本

似乎不行吧? 标准串口 的 另外 几个 信号线 可以控制 状态! DB9形式的RS-232串口的定义 引脚 英文简写 功能说明 1 CD 载波侦测(Data Carrier Detect) 2 RXD 接收数据(Receive Data) 3 TXD 发送数据(Transmit Data) 4 DTR 数据终端准备(Data Terminal Ready) 5 GND 信号地(Signal Ground) 6 DSR 数据准备好(Data Set Ready) 7 RTS 请求发送(Request To Send) 8 CTS 清除发送(Clear To Send) 9 RI 振铃指示(Ring Indicator)

a-negatively-charged-particle是什么意思

a negatively charged particle带负电荷的粒子拼音双语对照双语例句1So, if we think about the force that occurs between a positively and a negatively charged particle, what we have is essentially a Coulomb force, so we can describe this as a force of attraction.一个带负电的粒子之间,的作用力,这本质上就是库伦力,我们可以把它,描述成一个引力。

oracle clob字段插入问题

在oracle中,有4个大对象(lobs)类型可用,分别是blob,clob,bfile,nclob。 下面是对lob数据类型的简单介绍。 blob:二进制lob,为二进制数据,最长可达4GB,存贮在数据库中。 clob:字符lob,字符数据,最长可以达到4GB,存贮在数据库中。bfile:二进制文件;存贮在数据库之外的只读型二进制数据,最大长度由操作系统限制。 nclob:支持对字节字符集合(nultibyte characterset)的一个clob列。 对于如何检索和操作这些lob数据一直是oracle数据库开发者经常碰到的问题。下面我将在oracle对lob数据处理的一些方法和技巧,介绍给读者,希望能够对读者以后的开发有所帮助。 oracle中可以用多种方法来检索或操作lob数据。通常的处理方法是通过dbms_lob包。 其他的方法包括使用api(application programminginterfaces)应用程序接口和oci(oracle call interface)oracle调用接口程序。 一、在oracle开发环境中我们可以用dbms_lob包来处理!dbms_lob包功能强大,简单应用。既可以用来读取内部的lob对象,也可以用来处理bfile对象。但处理两者之间,还有一点差别。处理内部lob对象(blob,clob)时,可以进行读和写,但处理外部lob对象bfile时,只能进行读操作,写的操作可以用pl/sql处理。另外用sql也可以处理lob,但要注意sql仅可以处理整个lob,不能操作lob的数据片。 在dbms_lob包中内建了read(),append,write(),erase(),copy(),getlength(),substr()等函数,可以很方便地操作lob对象。这里不做深入讨论,读者可以参看相关的书籍。 对于pl/sql,下面介绍一种技巧,用动态的pl/sql语句处理clob对象来传替表名! example 1. 动态PL/SQL,对CLOB字段操作可传递表名table_name,表的唯一标志字段名field_id,clob字段名field_name记录号v_id,开始处理字符的位置v_pos,传入的字符串变量v_clob 修改CLOB的PL/SQL过程:updateclob create or replace procedure updateclob( table_name in varchar2, field_id in varchar2, field_name in varchar2,v_id in number, v_pos in number, v_clob in varchar2) is lobloc clob; c_clob varchar2(32767); amt binary_integer; pos binary_integer; query_str varchar2(1000); begin pos:=v_pos*32766+1; amt := length(v_clob); c_clob:=v_clob; query_str :="select "||field_name||"from "||table_name||" where "||field_id||"= :id for update "; --initialize buffer with data to be inserted or updated EXECUTE IMMEDIATE query_str INTO lobloc USING v_id; --from pos position, write 32766 varchar2 into lobloc dbms_lob.write(lobloc, amt, pos, c_clob); commit; exception when others then rollback; end; l /用法说明: 在插入或修改以前,先把其它字段插入或修改,CLOB字段设置为空empty_clob(), 然后调用以上的过程插入大于2048到32766个字符。 如果需要插入大于32767个字符,编一个循环即可解决问题。 查询CLOB的PL/SQL函数:getclob create or replace function getclob( table_name in varchar2, field_id in varchar2, field_name in varchar2, v_id in number, v_pos in number) return varchar2 is lobloc clob; buffer varchar2(32767); amount number := 2000; offset number := 1; query_str varchar2(1000); begin query_str :="select "||field_name||" from "||table_name||" where "||field_id||"= :id "; --initialize buffer with data to be found EXECUTE IMMEDIATE query_str INTO lobloc USING v_id; offset:=offset+(v_pos-1)*2000; --read 2000 varchar2 from the buffer dbms_lob.read(lobloc,amount,offset,buffer); return buffer; exception when no_data_found then return buffer; end; l 用法说明: 用select getclob(table_name,field_id,field_name,v_id,v_pos) as partstr from dual; 可以从CLOB字段中取2000个字符到partstr中, 编一个循环可以把partstr组合成dbms_lob.getlength(field_name)长度的目标字符串。 二、对于在其他不同的开发环境,例如vc,vb,pb,java等环境下对lob的处理,处理方法不尽相同,在这里将简要举几个例子来说明不在oracle开发环境下对lob的处理。 (一) 在pb中的处理 exampler 2. string ls_path,ls_filename,ls_jhdh long ll_num,ll_count,rtn blob ole_blob ll_num=dw_lb.getrow() if ll_num>0 then ls_jhdh=dw_lb.object.ct_njhdh[ll_num] select count(*) into :ll_count from sj_jh_jhfjb where ct_jhdlxbh="1" and ct_jhdh=:ls_jhdh and ct_jdlxbh=:is_jdlx; if ll_count>0 then rtn=messagebox("提示","是否要修改此附件",question!,yesno!,1) if rtn=1 then SELECTBLOB ct_jhfjnr INTO le_blob from sj_jh_jhfjb where ct_jhdlxbh="1" and ct_jhdh=:ls_jhdh and ct_jdlxbh=:is_jdlx; ole_1.objectdata =ole_blob If ole_1.activate(offsite!) <> 0 Then Messagebox("OLE Activate","不能激活") Return -1 end If end if else messagebox("提示","没有附件") end if end if (二)在vb中的处理 在vb中处理大对象,一般可以用OO4O(oracle objects for ole)来处理大对象。这里介绍一种不用0040处理大对象blob的方法。 下面这段程序可以将一个文件(文本文件,doc文件,图象文件等)保存到数据库中,并可以将其从数据库读出 需要两个commandbutton cmd1 名称 cmdsave caption 保存 cmd2 名称 cmdread caption 读取 一个cmddialog控件 同时需要创建一张表t_demo(字段id 类型 number,;字段text 类型 blob;) exmple 3. Option Explicit Dim rn As ADODB.Connection Public Function CreateDataSource(DataSource As String, UserID As String, Password As String) As Boolean On Error GoTo DbConErr: Set rn = New ADODB.Connection With rn .ConnectionString = "Provider=OraOledb.Oracle.1;" & _ "password=" & Password & ";" & _ "User ID =" & UserID & ";" & _ "Data Source=" & DataSource & ";" & _ "Locale Identifier=2052" .Open End With CreateDataSource = True Exit Function DbConErr: CreateDataSource = False End Function Private Sub cmdRead_Click() Dim rs As New ADODB.Recordset rs.ActiveConnection = rn rs.LockType = adLockOptimistic rs.CursorLocation = adUseClient rs.Source = "select * from t_demo" rs.Open ComDlgDir.DialogTitle = "保存文件" ComDlgDir.Filter = "*.*" ComDlgDir.ShowSave Call BlobToFile(rs.Fields("text"), ComDlgDir.filename) Set rs = Nothing Exit Sub Set rs = Nothing End Sub Private Sub cmdsave_Click() Dim rs As New ADODB.Recordset rs.ActiveConnection = rn rs.LockType = adLockOptimistic rs.CursorLocation = adUseClient rs.Source = "select * from t_demo" rs.Open rs.AddNew ComDlgDir.DialogTitle = "选取文件" ComDlgDir.ShowOpen rs.Fields("id").Value = 1 If ComDlgDir.filename <> "" Then Call FileToBlob(rs.Fields("text"), ComDlgDir.filename) rs.Update End If Set rs = Nothing Exit Sub Set rs = Nothing End Sub Private Sub Form_Load() If Not CreateDataSource("sid", "systemp", "manager") Then MsgBox "Connection failure!" End If End Sub fld As ADODB.Field, filename As String, Optional ChunkSize As Long = 8192) Dim fnum As Integer, bytesleft As Long, bytes As Long Dim tmp() As Byte If (fld.Attributes And adFldLong) = 0 Then Err.Raise 1001, , "field doesn"t support the GetChunk method." End If If Dir$(filename) = "" Then Err.Raise 53, , "File not found" fnum = FreeFile Open filename For Binary As fnum bytesleft = LOF(fnum) Do While bytesleft bytes = bytesleft If bytes > ChunkSize Then bytes = ChunkSize ReDim tmp(1 To bytes) As Byte Get fnum, , tmp fld.AppendChunk tmp bytesleft = bytesleft - bytes Loop Close #fnum End Sub Sub BlobToFile(fld As ADODB.Field, filename A

vba如何查询oracle

建立与Oracle的连接,不过很少有这样做的

hesonhisbicycle变为一般疑问句的

Is he on his bicycle ?不理解可追问,如果认可我的答案请采纳,谢谢!

yonex muscle power 7 badminton racket怎么样

MP7啊?这个型号挺适合新手的。攻守兼备,对于新手来说挺适合。我就是用这个来发展自己的打球风格的,很推荐这款球拍,但如果对于那种已经是进阶选手的话这个拍子就意义不大了。

我是小小翻译家。英汉互译。 1. My uncle is a teacher.?

1. 我叔叔是一位教师。 2. Her mother goes to work by bike. 3. What do you want to be? 4. 她经常帮助游客找到他们的路。 5. Mark is going to be a writer. 答案不唯一,7,我是小小翻译家。英汉互译。 1. My uncle is a teacher. ________________________________________________________ 2. 她妈妈骑车去上班。 ________________________________________________________ 3. 你想成为什么? ________________________________________________________ 4. She often helps tourists find their ways. ________________________________________________________ 5. Mark打算成为一名作家。 ________________________________________________________

ClemRichardson主要经历

ClemRichardsonClemRichardson是一名演员,主要作品有《DeathofTwoSons》。外文名:ClemRichardson职业:演员代表作品:《DeathofTwoSons》合作人物:MicahSchaffer

A Perfect Circle的《Passive》 歌词

歌曲名:Passive歌手:A Perfect Circle专辑:eMOTIVeDead as dead can beThe doctor tells meBut I just can"t believe himEver the optimistic oneI"m sure of your abilityTo become my perfect enemyWake up and face meDon"t play dead cause maybeSomeday I will walk away and sayYou disappoint meMaybe you"re better off this wayLeanin" over you hereCold and catatonicI catch a brief reflectionOf what you could and might have beenIt"s your right and your abilityTo become my perfect enemyWake up and face meDon"t play dead cause maybeSomeday I will walk away and sayYou disappoint meMaybe you"re better off this wayMaybe you"re better off this wayMaybe you"re better off this wayMaybe you"re better off this wayYou"re better of this…you"re better off this…You"re better of this…you"re better off this…Maybe you"re better off!Wake up and face meDon"t play dead cause maybeSomeday I will walk away and sayYou fuckin" disappoint meMaybe you"re better off this wayGo ahead and play deadI know that you can hear thisGo ahead and play deadWhy can"t you turn and face me?Why can"t you turn and face me?Why can"t you turn and face me?Why can"t you turn and face me?You fuckin" disappoint mehttp://music.baidu.com/song/2689358

Uncle Tupelo的《Postcard》 歌词

歌曲名:Postcard歌手:Uncle Tupelo专辑:Still Feel Gonelil eddie-postcardby @译特@We thought of different ways 我们考虑着各种不同的方法To relight the fire 来再次点燃这爱情之火Worked a few times before 在起效一段时间之前Yet all we knew 然而我们都知道It was only half the battle 它是没结束的战斗It was way more to endure 不只是忍耐Agreed to never stop 还要不停的协商And go the distance 继续这段行程Love without a heart 爱的丢了那颗爱的心That flowing feeling 那心中涌出的感觉On an air balloon just 仅仅像在那热气球中Ain"t there between us 并没有在我们之间Listen, if our hour blessed us 听着,如果我们的时间在祝福着我们That"ll do for us 那说明它是适合我们的We just can"t seem to forget this 我们只是不想去忘记这些Forget that touch 忘记那心中的触动Like the sun in the sky 就想太阳一直在天空那样自然If I escape when I look in your eyes 或许在你的眼中我是在逃避I can"t face you and say goodbye 我只是不能面对你,向你说再见It"s never easy 这不是容易的事So I"ll just send you a postcard 所以我仅仅是发给你一张明信片By the time you receive it 当你收到它的时候I bet I"m on your "hate you" list 我猜想我正在你所恨的事物中Send you a postcard 发给你一张明信片Hope you can read it 希望你能够去读它Cuz my teardrops ran and blurred the ink 因为我的眼泪在飞,那墨迹已模糊不清了Send it on a postcard 把它放在明信片中Give it a shot 给它一道光吧My mind is sure 我的心思是明确的But my heart is not 但是我的心却已不是This is so hard, to be so far 这太难了,到现在也是P.S. with a lipstick kiss 付送着一个口红的甜蜜的吻Send it on a postcard 把它放在明信片中So keep telling each other 让它能够告诉其他人It will get better 一切都将变的更好But I still feel the weight 但我却一直感受着这压力It"s heavy on my brain 它沉重的压在我的脑中Like a thousand tons of 就像是有千万吨重Falling hail, it rained 充满了欢呼,因为它在下雨The miles we went to get 那份距离我们一直在走远Is up a twister (?) 是升起的一阵龙卷风Now would that get it again 现在我们将再一次的面对The wind"s too strong to hold us any longer 这风是那么的强使我们不能紧紧相拥When you told her it"s over 告诉她这一切都结束了Listen, if our hour blessed us 听着,如果我们的时间在祝福着我们That"ll do for us 那说明它是适合我们的We just can"t seem to forget this 我们只是不想去忘记这些Forget that touch 忘记那心中的触动Like the sun in the sky 就想太阳一直在天空那样自然If I escape when I look in your eyes 或许在你的眼中我是在逃避I can"t face you and say goodbye 我只是不能面对你,向你说再见It"s never easy 这不是容易的事So I"ll just send you a postcard 所以我仅仅是发给你一张明信片By the time you receive it 当你收到它的时候I bet I"m on your "hate you" list 我猜想我正在你所恨的事物中Send you a postcard 发给你一张明信片Hope you can read it 希望你能够去读它Cuz my teardrops ran and blurred the ink 因为我的眼泪在飞,那墨迹已模糊不清了Send it on a postcard 把它放在明信片中Give it a shot 给它一道光吧My mind is sure 我的心思是明确的But my heart is not 但是我的心却已不是This is so hard, to be so far 这太难了,到现在也是P.S. with a lipstick kiss 付送着一个口红的甜蜜的吻Send it on a postcard 把它放在明信片中I want you to know 我想要你知道When the plane took off 当那飞机起飞时I was wishing that I had a parachute 我多么希望我有一个降落伞Cuz there was one side of my head 因为那里还有我的另一半Screaming feelings of a breath 心中那尖叫的感觉And I saw the truth 我看着这事实We can start over new 我们能够重新开始You know what comes next 你知道未来将发生什么Where we do (?) 我们将何去何从We make the same u-turn 我们在做着同样的回转That led us both stranded here 使我们在这里搁浅So I"ll just send you a postcard 所以我仅发给你一张明信片By the time you receive it 当你收到它的时候I bet I"m on your "hate you" list 我猜想我正在你所恨的事物中Send you a postcard 发给你一张明信片Hope you can read it 希望你能够去读它Cuz my teardrops ran and blurred the ink 因为我的眼泪在飞,那墨迹已模糊不清了Send it on a postcard 把它放在明信片中Give it a shot 给它一道光吧My mind is sure 我的心思是明确的But my heart is not 但是我的心却已不是This is so hard, to be so far 这太难了,到现在也是P.S. with a lipstick kiss 付送着一个口红的甜蜜的吻Send it on a postcard 把它放在明信片中Oh, no no no, I"ll 噢,不,不,不,我将.......Send it on a postcard 把它放在明信片中Yes, I know I was kinda wrong 是的,我知道我真的有点错了Send it on a postcard 把它放在明信片中Send it on a postcard 把它放在明信片中Cuz I couldn"t look at you 因为我不敢看着你And tell you it"s over, no 告诉你这都结束了,噢不http://music.baidu.com/song/8715609

如何给oracle打patch补丁

  给软件打补丁相当于给人打预防针,对系统的稳定运行至关重要。本文详细、系统地介绍了Oracle数据库补丁的分类、安装、管理等问题。  厂商提供给用户的软件补丁的形式多为编译后的库函数,所以安装软件补丁实际上就是把这些库函数拷贝到相应目录,并在需要时进行联接操作。软件公司一般在一段时间后会把针对某一版本的所有补丁进行整理:合并融合,解决冲突,进行整体测试,并使文件拷贝和联接操作自动执行,得到一个软件补丁“包”。不同的公司使用不同的名称,现在一般计算机用户都熟悉的Windows Service Pack就是这样的补丁包。Oracle公司给出的补丁包的名称是Patch Set,安装Patch Set后的版本称Patch Set Release(PSR)。  Oracle公司对处于标准技术支持的产品不定期地提供PSR,例如在完成本文时,版本10.2的最新PSR是10.2.0.2;版本10.1的最新PSR是10.1.0.5;版本9.2的最新(也极可能是最终)PSR是9.2.0.8。  在安装最新PSR后新发现的Bug,其相应补丁当然会收录到下一个PSR中。PSR是累积型的,即下一个PSR中会包括当前PSR中所有补丁和新发现Bug的补丁。同时存在几个PSR时,只需安装最新版本一次就可以了。但是由于PSR的发行有一定间隔,如果这些Bug对用户有比较大的影响,那么 Oracle公司也会向用户公开和提供这些补丁,这些补丁被称为个别补丁(Interim Patch,one-off patch 或 Patch Set Exception)。而对于最终补丁发行版而言,由于不再有下一个PSR,所以当发现影响系统的新Bug时,个别补丁成为惟一选择。  此外,Oracle公司还定期发布安全补丁,称之为CPU(Critical Patch Updates)。安全补丁用来修复软件的易受攻击性(vulnerability)或通常说的安全漏洞。这类问题本来不属于软件错误,在正常使用中不会出现任何问题。但是别有用心的人可以通过运行非常精巧设计的代码,绕过数据库系统的安全管理机制,达到非授权存取的目的。  另外还存在一类补丁:诊断用补丁(diagnostic patch)。顾名思义,这类补丁不是用来解决问题的,而是用来寻找问题的原因的。这类补丁只在Oracle技术支持部门要求安装时,才需要安装。在得到需要的诊断信息后,应立即卸载这一补丁。  利弊及时机选择  负责管理支撑大型应用系统的数据库的DBA会容易理解安装软件补丁的代价。安装PSR需要停止数据库服务,关闭数据库,对于许多应用系统安排这样的停机时间本身就是一件比较困难的事情。事实上,更为严重的是由于安装PSR可能“引入”新的Bug,反而影响应用系统的正常运行。软件补丁本来是修正 Bug,怎么会带来新的Bug?虽然有些让人匪夷所思,但很不幸这是现实存在的。  对于每一个PSR,其中都包括了少则几百多则上千个严重Bug的修正。即便是如此,在PSR发布后,很快就又会在安装PSR后的数据库中发现一些新问题。其中一部分Bug是以前就一直存在的只是以前没有发现,而现在偶尔被发现,或者是由于PSR修正了某一错误从而将其“激活”或容易发现。但是确实有一些Bug是由这一PSR造成的,Oracle技术支持部门称其为倒退(Regression)。对于每一PSR,在metalink中有两个重要的与之有关的文档,一个是“List of fixes added in XXXX”,是这一PSR修复的Bug的清单,是一本“修复列表”;另一个是“Known issues and alerts affecting XXXX”,是安装PSR后发现的问题,可以称其为“悔过列表”。由于大型软件的复杂性,Bug几乎是不可避免的。重要的是能够及时提供信息,DBA可以结合自己系统的情况做出正确的判断。读者不必因为知道还存在着Bug,就对Oracle数据库产品失去信心。PSR修复的上千个Bug中绝大多数是在一些很少见的环境中,或者是若干个组件的复杂组合使用的情形中发生的。  如果系统在运行中出现过某种问题,由Oracle技术支持部门或第三方的专家确认原因是PSR中的某一Bug,这样就必须尽早安装;如果系统一直运行正常,并且在PSR已发现的问题中涉及的组件或功能(如Logical Standby, JVM,RAC等)在系统中并不使用,此时可以选择安装也可以选择不安装。  另一个需要考虑的因素是安装补丁的时机。上述这些考虑的一个重要前提是系统已经投入运行,担心“倒退”的Bug影响系统。如果系统还处在开发和测试阶段,不需要有任何犹豫,安装最新的PSR,并在此基础上测试应用系统是否工作正常。如果发现异常,要及时请Oracle技术支持部门确认是否新Bug,如果是请其提供个别补丁。目的就是在一个尽可能完善稳定的数据库平台上测试应用系统。我们可以把这种安装补丁的策略概括为“补丁补新不补旧”。  以上都是针对PSR的安装,对于个别补丁,由于补丁修复的Bug单一,容易判断是否需要安装。需要注意的是,如果在当前PSR之上安装了若干个个别补丁,那么在下一个PSR发布后,在安装下一个PSR之前,需要卸载所有个别补丁。为便于管理,现在Oracle技术支持部门要求必须使用工具 opatch安装管理个别工具,而尽量避免手动拷贝文件等操作。  最后是安全补丁安装的判断。虽然安全漏洞这个词看上去让人觉得非常严重,但是还要冷静综合分析这些漏洞在系统中的危害程度。事实上,不安装安全补丁的危险性可能远远小于始终不渝地使用scott/tiger这样人人都知道的用户名和口令的“标准缺省”做法。  安装PSR  使用oui工具安装PSR时只需要用鼠标做几个选择就可以进入自动执行的阶段,操作过程本身非常简单。但是如果要求必须一次安装成功;要求必须在凌晨2点到4点这个有限的停机时间段完成操作;要求安装过程不出差错,以后出现问题时能够完全排除此次操作失误的可能性,那么就需要在启动oui之前做一些准备工作。  1. 收集信息  有关PSR的信息中,一个最重要的文档就是软件补丁说明,这个文件相当于技术手册中的安装指南和发行说明。文件本身包含在下载的软件补丁文件之中,文件名是patchnote.htm或README.html。需要注意的一个问题是在软件补丁文件之中找到的这一Patch Set Notes可能不是最新版,可以根据文件内的提示信息在metalink中检索最新版。  另外两个重要文件就是前面已经提及的“修复列表”和“悔过列表”,相对于“修复列表”更应该仔细阅读“悔过列表”中的每一项内容。另外,在Patch Set Notes的已知问题(Known Issues)一节内列出了安装PSR后出现的一些问题。  除去这三个主要文件外,还应在metalink中检索,寻找是否还有其他涉及这一PSR的技术文章,寻找其他用户在安装这一PSR时或安装后遇到问题时所发的救助的帖子,前车之鉴更应重视。  2. 做出判断  在认真阅读收集到的文章之后,根据自己系统的实际情况,做出是立即安装PSR,或是等待下一PSR的决定。如果是暂缓安装,则要记录原因,以便以后跟踪Bug的修复进程。  3. 制订实施计划  在决定安装PSR后,需要制订一个实施计划。在计划中不仅要包括正常的操作步骤,更要考虑在出现意外时的应急处理(如果安装PSR失败,则在正常应用开始时间之前,要恢复系统到安装之前的状态)。如果可能,在对正式系统开始实施之前,应在测试系统中进行演练和应用处理的测试,保证在安装PSR后不会影响应用系统的运行。  安装PSR的计划大致有以下几个部分:停止数据库服务关闭数据库;备份DBMS软件和数据库以备恢复之用;安装PSR软件;更新数据库数据字典升级PSR版本;正常启动数据库开始数据库服务。  看似简单的关闭数据库的操作,在系统构成复杂时也会变得不容易。另外,如果夜间作业时间不允许在完成数据库完全备份之后再安装PSR,则安装PSR的日期应该选择在例行的数据库完全备份的下一个晚上,只备份重做日志。  在安装PSR之前备份DBMS软件的目的是,由于安装PSR会对许多程序和库函数进行更新,如果安装PSR中途失败(虽然可能性非常小),有可能造成DBMS软件出现不一致。另外一种可能的情形是,在安装PSR,更新数据字典后,测试应用系统时,出现了某种异常,原因不明,最终决定放弃PSR。如果操作之前没有备份,则此时只有重新安装软件一种选择(PSR不同于完整软件安装,在oui中无法单独卸载PSR软件)。  对文件、目录和文件系统的备份,最简单的方式可以使用cp、tar、dump等命令完成。如果希望缩短文件拷贝时间,可以考虑分区备份的方法。分区备份常用的命令是dd。但是,分区拷贝比文件拷贝速度快的前提是良好的分区设计:Oracle软件单独占一个大小适中(如4GB)的分区,这样扇区拷贝才会体现优势,这也就是为什么在安装软件时,Oracle建议单独使用一个分区安装软件的原因之一。  在制定实施计划时,应认真阅读Patch Set Notes中有关操作前准备工作一节。在这节内会介绍对于一些特殊系统构成,如果你的系统属于文档中提到的构成,一定要首先阅读文内提示的相关技术文章,找到正确的安装步骤。  使用oui, PSR软件安装完成后,一定不要忘记更新数据字典这一步骤。如果在这一ORACLE_HOME下生成了多个数据库,则每个数据库都必须更新数据字典。  . 实施操作  制订一个详细的计划后,实施操作就可以“照本宣科”,是一个简单的体力劳动。要认识到“忙中出错”的概率远比“急中生智”大得多,操作时尽量减少失误的可能性。例如,需要执行的复杂命令,尽可能从一个文件拷贝到终端执行,而不要现场输入。另外,在实施过程中,要记录各个阶段实际的执行时间,以供以后制订类似计划时参考。  5. 检查操作结果并记录备案  执行一个操作,操作是否成功,一定要进行检查,不能简单认为没有出错信息就是成功。要知道验证的方法。除去极个别极费时间的验证(分区备份的内容是否可以成功恢复系统,必须恢复分区,启动数据库,测试应用系统后才能确认),其余操作都应进行验证。所有屏幕输出信息和日志文件都应保留,作为安装报告的附件提交给上级或客户。  在屏幕输出或日志文件中出现异常/错误信息时,应即时分析,决定马上采取的措施。出现严重错误时,可能需要重新执行某一SQL程序,或者重新安装PSR。所以在制订实施计划时应在时间上留出异常情况处理的时间。  下面给出一个在Linux平台上安装10.1的PSR的实例,给从未安装PSR的读者有一个感性认识。  操作系统是RHEL AS4.0 Update3,Oracle的当前版本是10.1.2。在metalink中检索,找到10.1版的最新PSR10.1.0.5。下载压缩文件。在压缩文件中找到Patch Set Notes,该文档的完成日期是2006年1月。而按照文档内的提示在metalink中检索得到的此文档的最新版本完成日期是2006年4月。使用文件比较工具进行比较,两个版本没有实质性差别,只有语句措词的修改,但是养成总是检索最新文档的习惯有益无害。  根据Patch Set Notes中的说明,有一些特殊系统构成需要额外的步骤,本例中由于全部没有涉及到,所以可以按标准步骤执行。  另外,检查“Known issues and alerts affecting 10.1.0.5”文档后,发现10.1.0.5引入的影响最大的一个Bug是执行SELECT MAX()在某些特定条件下结果不正确。而这一Bug可以通过设置事件(event)关闭FIRST ROW优化而避免。最后的结论是这一BUG不会对本系统有影响,可以安装PSR10.1.0.5。  1. 检查数据库表空间和初始化参数是否需要调整。  System表空间要求有一定未使用空间:初始化参数SHARED_POOL_SIZE 和 JAVA_POOL_SIZE不能低于最小值150MB。  2. 关闭数据库,停止listener和agent等进程。  3. 解压缩下载文件至某一目录,执行oui。  在压缩文件中附带的oui的版本要比已经安装的版本高,应总是使用新版本的oui。在oui窗口中,要求选择本次安装的软件的位置,正确的位置是解压缩目录下的子目录Disk1/stage/, 选中products.xml即可开始文件拷贝。  要注意窗口中会出现本次安装的日志文件的文件路径和文件名。文件的位置是在Oracle的inventory所在目录的子目录logs中,文件名由前缀InstallActions和安装日期时间组成,如: InstallActions2006-08-30-11-32-48AM.log。  正常结束后,退出oui。打开日志文件,检索是否出现error 或“ORA-”的错误信息。本次安装产生的日志文件内,没有任何此类的信息,表明PSR软件安装成功。如果此时再次启动oui,点击“已安装软件”,则可以看到在原有的10.1.0.2软件之下,新出现了10.1.0.5一项,这也证实PSR软件安装成功。  4.更新数据库数据字典  更新数据字典时,必须以特殊的升级方式打开数据库。  $ sqlplus /nolog  SQL> CONNECT / AS SYSDBA  SQL> STARTUP UPGRADE  SQL> SPOOL patch.log  SQL> @?/rdbms/admin/catpatch.sql  执行结束后,关闭重定向:  SQL> SPOOL OFF  打开文件patch.log检查是否有错误“ORA-”。(这一文件在启动sqlplus时的当前目录中,当然也可以在“SPOOL patch.log”语句中显式指定文件路径。)如果出现错误要分析原因,在解决问题后,需要再次执行catpatch.sql程序。  更新数据字典时,由于对某些PL/SQL包删除后又重新生成,造成相关PL/SQL包的状态为异常(invalid)。在以后调用这些包时,检测到其状态为非法,会自动执行编译命令,使状态成为正常(valid)。虽然不会出错,但会造成个别处理第一次执行时变慢。显然,与其留到应用系统运行时再一个个编译,不如之前集中一次重编译所有异常包。  SQL> SHUTDOWN  SQL> STARTUP  SQL> @?/rdbms/admin/utlrp.sql  最后,根据Known Issues中的指示,完成与本系统有关的操作。例如,修改Pro*C的配置文件。这里执行一个修改文件存取权限的“后操作”,以便非同组用户和程序可以存取客户端工具和库函数。  $ cd $ORACLE_HOME/install  $ ./ changePerm.sh  个别补丁管理工具opatch  如前所述,在发布一个PSR后发现的新BUG,只能把其补丁收入到下一个PSR中。如果对数据库有实质性影响,则这一补丁以个别补丁的形式向用户提供。个别补丁是与某一个特定的PSR关联,是安装在这一PSR之上的。另外,如同其名字表明的,个别补丁只是单一Bug的补丁,不会包含其他个别补丁,即不是累积型的。  在9.2版之前,安装个别补丁的操作完全是手工的。这种手工方式的缺点不仅在于加重DBA的负担,容易造成操作失误,更严重的是无法对已安装的个别补丁进行管理。  为解决手工方式的缺陷,从9.2版开始,Oracle公司设计实现了个别补丁安装管理工具opatch。opatch使用一个称为 inventory的系统数据结构(严格说是与oui共享inventory),集中管理所有已安装的个别补丁;个别补丁的安装和卸载都使用opatch 命令完成,冲突检测也由opatch在安装时自动完成;提供列表命令可以很方便得到已安装个别补丁的信息。  10g(10.1和10.2)版本中,opatch作为一个标准工具,在软件安装时自动安装。(安装在$ORACLE_HOME/OPatch 下。)而对于9.2版,需要从metalink下载opatch。无论数据库是哪一个版本,系统中是否已经安装opatch,在使用之前,应从 metalink下载最新版本的opatch。很遗憾,由于系统实现的问题,10.2使用的opatch与之前版本(10.1和9.2)使用的 opatch不兼容,不能混用,这一点必须注意。  opatch是使用perl编写的脚本程序(其中也使用JAVA API)。编程使用的perl版本是5.6版,虽然在5.6之前的版本中也可运行,但应尽可能安装5.6或以上的版本的perl。对于DBA来说一个好消息是,如果安装9.2版软件时保留了HTTP服务器,则在$ORACLE_HOME/Apache下会自动安装perl。(10g会自动安装配置perl 和opatch。)  opatch命令格式为:  opatch < command > [< command_options >] [ -h[elp] ]  命令有:apply(安装个别补丁)、rollback(卸载个别补丁)、lsinventory(对inventory进行列表)、query (显示某一个别补丁的详细信息)、version(显示opatch版本信息)。在opatch目录下,有用户使用指南文件(Users_Guide.txt),其中有详细的命令格式和使用示例,读者可以参考。Opatch执行操作时,除在屏幕输出结果外,还生成日志文件。日志文件的路径和文件名格式如下:  $ORACLE_HOME/.patch_storage/< patch_id >/< action >-< patch_id >_< mm-dd-yyyy_hh-mi-ss >.log  其中“patch_id”是Oracle技术支持部门为个别补丁分配的编号。  4. 个别补丁安装实例  沿用安装PSR实例中的环境。在安装PSR10.1.0.5后,检索metalink,发现若干在其之上的个别补丁。选择其中之一安装。  个别补丁Patch 4518443修复BUG4518443,这一BUG的主要问题是TNS LISTENER在注册ONS(Oracle Notification Services)的同时如果创建子进程,那么LISTENER会挂起(HANGUP)。  安装时,首先,从metalink下载补丁的压缩文件p4518443_10105_LINUX.zip。将此文件解压缩至某一目录中。解压缩后,这一补丁的所有文件都在子目录4518443下,目录名就是个别补丁的补丁号,opatch依据目录名获得信息,所以一定不要重命名子目录。  然后,在终端窗口中,执行cd命令移动到4518443子目录中,执行以下命令:  $ $ORACLE_HOME/OPatch/opatch apply  对inventory列表,确认安装操作:  $ $ORACLE_HOME/OPatch/opatch lsinventory  执行卸载命令时,也必须使4518443子目录成为当前目录。其中,Rollback命令需要两个参数:-id给出个别补丁号;-ph 给出个别补丁解压缩后的路径。  $ $ORACLE_HOME/OPatch/opatch rollback -id 4518443 -ph /…/4518443  随后再对inventory列表,则会看到这一个别补丁已经被移去。  4. 使用opatch显示已安装的版本信息  不需要启动数据库,执行加选项的对inventory的列表命令,可以得到已安装的软件的各个组件的详细版本信息。  $ $ORACLE_HOME/OPatch/opatch lsinventory -detail  安全补丁CPU  一个CPU内包含了对多个安全漏洞的修复,并且也包括相应必需的非安全漏洞的补丁。CPU是累积型的,只要安装最新发布的CPU即可,其中包括之前发布的所有CPU的内容。事实上,在CPU之前的安全漏洞修改除去个别例外也被包括在CPU中。Oracle公司只对处于标准技术支持和延长支持期间的产品提供CPU更新,对处于维持支持范围的产品不提供新的CPU。(对于9.2以前的版本,只对处于ECS和EMS期间的版本提供CPU更新。)一般对当前补丁发行版及前一个版本提供CPU,但也有只限于当前补丁发行版的例外情形。也就是说,一般需要先安装最新PSR后才可能安装CPU。由于是累积型的定期发布,所以对于某一平台的某一版本,如果两次CPU发布期间没有发现新的安全漏洞,则新发布的CPU与前一版本完全相同。

题目为《my first bicycle trip 》的英语作文

My first bicycle trip was really a nice one.That morning,I got up at around 6 o"clock.I had made an appointment to have a bicycle trip together with my classmates.My fellow classmates got there at the school gate on time,and I we got started.It was a sunny day,and it was cool in the morning and warm at noon.We went through the park and kept on.The view was very good,we really enjoyed it.I like my first bicycle trip.

求clean bandit的《rather be》歌词

Nabokov is sun-licked nowUpon the beach at GruenewaldBrilliant and naked justThe way that authors lookClare and Lady Manners drinkUntil the other cows go homeGossip till their lips are bleeding politics and allI"d rather be highI"d rather be flyingI"d rather be dead or out of my headThan training these guns on those men in the sandI"d rather be highThe Thames was black, the towerdarkI flew to Cairo, find my regimentCity"s full of generalsAnd generals full of shitI stumble to the graveyard and I lay down by my parents,Whisper "Just remember duckiesEverybody gets got"I"d rather be highI"d rather be flyingI"d rather be dead or out of my headThan training these guns of those men in the sandI"d rather be highI"m seventeen and my looks can prove itI"m so afraid that I will lose itI"d rather smoke and phone my exBe pleading for some teenage sex, yeahI"d rather be highI"d rather be flyingI"d rather be dead or out of my headThan training these guns on the men in the sandI"d rather be high,I"d rather be flyingI"d rather be highI"d rather be flying

well to be honest,as long as clean and live fine中文翻译是什么

嗯,不妨你说,只要干净和住得舒适就行~

pinnacle和peak 的区别是什么

pinnacle 和 peak 都指最高点, 这就是用中文记单词的一个最大缺点, 无法分别近义词和同义词。peak 指在一段过程中或一段时间内达到最高点/最佳境界, 如:an artist at the peak of her powers 一个艺术家的最高境界(最佳状况, 最有创作性)pinnacle所指的最高境界/最高点一般是有绝对性(peak是相对性), 并通常含有不稳定/不安全/让人头晕的意思, 如:pinnacle of powerpinnacle of success
 首页 上一页  30 31 32 33 34 35 36 37 38 39 40  下一页  尾页