Oracle数据库知识点总结_第1页
Oracle数据库知识点总结_第2页
Oracle数据库知识点总结_第3页
Oracle数据库知识点总结_第4页
Oracle数据库知识点总结_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle数据库实例启动不了怎么办? 文件主要分为:参数文件,跟踪文件,警告文件,数据文件,临时文件,掌握文件,重做日志文件,密码文件,修改跟踪文件,闪回日志文件,转储文件,数据泵文件(data pump),平面文件主要说参数文件与警告文件参数文件有很多比如:listenter.ora,tnslistener.ora等主要说一下服务器参数文件spfile它在OS的存放路径为%ORACLE_HOME%/database/sp $ORACLE_HOME/dbs/ sp我们可以在里面去修改数据库的一些参数也可以在sysdba权限下使用命令:set system parameter=value &l

2、t;deferred>/修改系统后会不会对以后的会话生效 <sope=memoy|both|spfile> <sid=sid|*>sp的关系,它们可以相互创建create sp pfilecreate p from spfilespfile为二进制的文件,它由pfile生成。pfile是文本文件,它存放在$ORACLE_BASE/admin/$ORACLE_SID/pfile/文件夹下(前提是你创建数据库时没有更改数据库存放路径)。平安起见最好吧spfile文件备份。当spfile被破坏以后,pfile也丢失的情况下。可以通过警告文件把pfile的内容找回来,以此

3、来生成spfile。警告日志文件存放于pfile文件相同根名目下的dbump文件夹下名为alert_$ORACLE_SID.log。在其中找到:以下红色字体之间的内容,用以建立pfile文件,最后用create spfile命令生成spfileStarting up ORACLE RDBMS Version: 10.2.0.1.0.System parameters with non-default values: processes = 150 sga_target = 612368384 control_files = C:ORACLEPRODUCT10.2.0ORADATAUCITCON

4、TROL01.CTL, C:ORACLEPRODUCT10.2.0ORADATAUCITCONTROL02.CTL, C:ORACLEPRODUCT10.2.0ORADATAUCITCONTROL03.CTL db_block_size = 8192 compatible = 10.2.0.1.0 db_ 16 db_recovery_ = C:oracleproduct10.2.0/flash_recovery_area db_recovery_ 2147483648 undo_management = AUTO undo_tablespace = UNDOTBS1 remote_login

5、_passwordfile= EXCLUSIVE db_domain = dispatchers = (PROTOCOL=TCP) (SERVICE=UCITXDB) job_queue_processes = 10 audit_ = C:ORACLEPRODUCT10.2.0ADMINUCITADUMP background_dump_dest = C:ORACLEPRODUCT10.2.0ADMINUCITBDUMP user_dump_dest = C:ORACLEPRODUCT10.2.0ADMINUCITUDUMP core_dump_dest = C:ORACLEPRODUCT10

6、.2.0ADMINUCITCDUMP db_name = UCIT open_cursors = 300 pga_aggregate_target = 203423744PSP0 started with pid=3, OS id=1440ORACLE操作表时”资源正忙,需指定nowait"的解锁方法 最近需要用到Oracle,之前没接触过,改表时遇到麻烦了,提示“资源正忙,需指定nowait.”,终究找到方法处理了,贴起来盼望更多的人能观察。-解除ORACLE操作表时”资源正忙,需指定nowait"的解锁方法 -步骤:-1.通过此语句查询正在锁定的SESSION_ID:S

7、ELECT  SESSION_ID   FROM   V$LOCKED_OBJECT,USER_OBJECTS  WHERE   V$LOCKED_OBJECT.OBJECT_ID   =   USER_OBJECTS.OBJECT_ID-2.通过第一步查询到的SESSION_ID查询SERIAL#SELECT SERIAL# FROM V$SESSION  WHERE SID='143'-3.依据1,2步查询到的SESSION_ID和SERIAL#

8、执行-ALTER   SYSTEM   KILL   SESSION  '48,2476'(48为SESSION_ID的值, 2476为SERIAL#的值)ALTER   SYSTEM   KILL   SESSION  '143,60'oracle exec 和 call 区分exec 和 call 执行一个procedure时, exec是sqlplus的命令,只能在sqlplus中使用。call是sql命令,

9、任何工具都可以使用Oracle用Start with.Connect By子句递归查询Start with.Connect By子句递归查询一般用于一个表维护树形结构的应用。创建示例表:CREATE TABLE TBL_TEST(ID NUMBER,NAME VARCHAR2(100 BYTE),PID NUMBER DEFAULT 0);插入测试数据:INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(&#

10、39;2','11','1');INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');从Root往树末梢递归select * from T

11、BL_TESTstart with id=1connect by prior id = pid从末梢往树ROOT递归select * from TBL_TESTstart with id=5connect by prior pid = id解决OracleDBConsoleorcl不能启动电脑IP转变,消失OracleDBConsoleorcl不能启动,网上搜集了几个解决方法,其中第三个方法常常使用。 一、启动电脑,到登陆界面,电脑报有个服务启动失败,电脑没有新装软件,周六还没有问题,怎么突然报这个错误?于是到大事查看器中看看什么问题,显示是OracleDBConsoleorcl启动

12、失败,到服务里一看,确实没有启动。手动启动一下,报错误码2我装的是10g,于是到ORACLEproduct10.2.0db_1test_orclsysmanlog名目看一下log里写了什么,打开OracleDBConsoleorclsrvc.log.log最后记录的是: OracleDBConsoleorcl EMDROOT=c:oracleproduct10.2.0db_1ORACLE_HOME=c:oracleproduct10.2.0db_1EMDSTATE=c:oracleproduct10.2.0db_1wangzh_orclCONSOLE_CFG=dbconsoleTRACE_LE

13、VEL=16TIMEOUT=1512/10/07 10:56:03 Start pending 12/10/07 10:56:03 Verifying dbconsole is not started already. Command line "c:oracleproduct10.2.0db_1binemctl.bat" istatus dbconsole12/10/07 10:56:04 dbconsole launch commandline is "c:oracleproduct10.2.0db_1binemctl.bat" istart dbc

14、onsole12/10/07 10:56:04 Tracking process launch12/10/07 10:56:34 dbconsole exited with retCode 2.12/10/07 10:56:34 Check c:oracleproduct10.2.0db_1test_orclsysmanlogemdbconsole.nohup for details日志让看emdbconsole.nohup文件,名目里没有这个文件呀。手动执行一下emctl.bat,于是启动掌握台,执行emctl.bat istart dbconsole,报错,ORACLE_SID没有定义,打

15、开emctl.bat看看,这里是定义环境变量的地方,其中已经设置了这些:if not defined REMOTE_EMDROOT (set ORACLE_HOME=Ec:oracleproduct10.2.0db_1)if not defined REMOTE_EMDROOT (set EMDROOT=%ORACLE_HOME%)if defined REMOTE_EMDROOT (set ORACLE_HOME=%REMOTE_EMDROOT%)if defined REMOTE_EMDROOT (set EMDROOT=%ORACLE_HOME%)if defined REMOTE_EM

16、DROOT (set LOCAL_EMDROOT=c:oracleproduct10.2.0db_1)后边还有一条设置: if not defined DBCONSOLE_SERVICE_NAME (set DBCONSOLE_SERVICE_NAME=OracleDBConsole%ORACLE_SID%),用到了ORACLE_SID,但没有看到前 面设置,只能手动设置ORACLE_SID试试,于是加了一条设置:if defined REMOTE_EMDROOT (set ORACLE_SID=orcl) orcl是我的数据库实例名到服务中启动OracleDBConsoleorcl,ok,没

17、有报错;重新启动计算机,也没有报错,OracleDBConsoleorcl服务也启动了。二、今日机器死机了,然后OracleDBConsoleORCL服务就起不来了,在一阵瞎搞后,还终究被我找到了解决方法,方法如下:运行Database Configuration Assistant程序,选择“配置数据库选项”重新配置Database Control 配置工具,配置完后端口号会变(我原来是1158,后来被改为5500),可以在.oracleproduct10.2.0db_1 cfgtoollogsemcaorcl文件夹下,最后生成的一个日志文件下找到新的Database Control 的UR

18、L;运行即可。*(原来常常改IP会导致OracleDBConsoleORCL无法启动,)一下是正规的解决方案:修改你的主机参数文件修改一下:C:WINDOWSsystem32driversetc下的host文件.如果没有的话就自己加一个IP和你的计算机名对应,如果已有了就把你的IP地址和你的计算机名对应起来.如:# copyright (c) 1993-1999 microsoft corp.# this is a sample hosts by microsoft tcp/ip for windows.# this the mappings of ip addresses to host n

19、ames. each# entry should be kept on an individual line. the ip address should# be placed in the first column followed by the corresponding host name.# the ip address and the host name should be separated by at least one# space.# additionally, comments (such as these) may be inserted on individual# l

20、ines or following the machine name denoted by a '#' symbol.# for example:#    102.54.94.97            # source server#    38.25.63.10              

21、     # x client host127.0.0.1    localhost192.168.1.104 wang-decjedi4h9三、手工从cmd命令行启动:C:Documents and Settingswangnc>emctl start dbconsoleEnvironment variable ORACLE_SID not defined. Please define it.设置Oracle_sid环境变量:C:Documents and Settingswangnc>set oracle_s

22、id=orclC:Documents and Settingswangnc>emctl start dbconsoleOC4J Configuration issue. C:oracleproduct10.2.0db_1/oc4j/j2ee/OC4J_DBConsole_ not found.还是不行,到名目 C:oracleproduct10.2.0db_1oc4jj2ee 下发现只有OC4J_DBConsole_localhost_orcl名目,并没有OC4J_DBConsole_sz- wangncD_orcl这样的名目复制名目改成系统提示的文件夹名,再运行emctl start

23、dbconsole又会报一个类似的错误提示,另一个名目,同样处理。重启后服务终究可以正常启动了。访问    ok!四OracleDBConsoleorcl 服务无法启动C:>set oracle_sid=orclC:>emctl start dbconsoleOracle Enterprise Manager 10g Database Control Release 10.2.0.1.0Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.Starting Oracle Enterpri

24、se Manager 10g Database Control .OracleDBConsoleorcl服务正在启动 .OracleDBConsoleorcl 服务无法启动。系统出错。系统发生 3 错误。系统找不到指定的路径。/以上是启动时的错误 ,我的数据库是oracle10.2.0.1.0 的版本解决方法:在命令行输入$ emca config dbcontrol db 输入以下信息:SID:XXXX Listener port number: 1521Sys 口令:*好了,再次emctl start dbconsole EM就可以正常运行了!oralce 优化导入数据 昨天半夜被叫起来查

25、看主档数据同步报错,发现自己写的一个sql有问题,导致消失数据重复,没方法,由于要跑日结,所以,只能把以前的sql拿出来重新跑,其实那个sql执行太慢,一个商品规格表A里面有两千万的数据,原先的规律是:delete from A; insert into A select * from B;光执行 delete就花了半小时,然后插入又是20分钟,太慢,没方法,但是又快要跑日结,只能先这样用着。今日到公司,求教了一个oracle 大牛,在他的分析下,得出的结果是:1:存储过程中,既然用delete全表,那应该有trancate,这样快,虽然是没方法回滚,但是你可以在执行trancate之前把A表

26、备份,insert table c as select * from A;2: execute   immediate 'truncate table A' 3:由于每次都是trancate,所以:可以修改表A的结构,把表A设置为 nologing,意思是:不写日志alter table A move nologging;alter index PK_A rebuild nologging; 4:insert /*+append*/ into MBMST_PLU_TEST2                

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论