关闭

Oracle数据库开发的一些经验积累(二)

228人阅读 评论(0) 收藏 举报

三、LINUX和UNIX下
  转到操作系统下执行:kill -9 spid (以上语句所查出的)
  
  36、ORACLE中检查表是否被锁的语句
  
  SELECT A.OWNER,
  A.OBJECT_NAME,
  B.XIDUSN,
  B.XIDSLOT,
  B.XIDSQN,
  B.SESSION_ID,
  B.ORACLE_USERNAME,
  B.OS_USER_NAME,
  B.PROCESS,
  B.LOCKED_MODE,
  C.MACHINE,
  C.STATUS,
  C.SERVER,
  C.SID,
  C.SERIAL#,
  C.PROGRAM
  FROM ALL_OBJECTS A,
  V$LOCKED_OBJECT B,
  SYS.GV_$SESSION C
  WHERE ( A.OBJECT_ID = B.OBJECT_ID )
  AND (B.PROCESS = C.PROCESS )
  ORDER BY 1,2
  杀掉:alter system kill session 'sid, serial#'
  37、ORACLE的登录问题,用户名和密码。
  
  可以直接输入:
  internal/oracle@serivce_name
  sys/change_on_install@serivce_name
  system/manager@serivce_name
  scott/tiger@serivce_name
  注意:
  9i中没有internal/oracle
  如果选择典型安装则有 scott用户
  如果自定义可以不安装  scott用户
  如果是本机则可以省略@serivce_name
  
  oem:(ORACLE ENTERPRISE MANAGER)
  sysman/oem_temp
  
  38、修改表的列名
  
  Oracle9i:
  alter table xxx rename column xx to yy;
  
  Oracle8i & lower version
  connect sys/passed;
  update col$ set name=xx where obj#=对象id and name = 字段
  (一般不要这样用,会造成意想不到的结果)
  注:最好是删除再建立新的列
  
  39、把用户模式对象所在的表空间移到新的表空间
  (1). create the new tablesapce
  (2). alter user test default tablespace test_data;
  (3). alter user test quota unlimited on test_data;
  (4). alter table the_table_name move tablespace test_data;
  生成脚本:
  select 'alter table'||tname||' move tablespace test_date;'
  from tab
  where tabtype='TABLE'
  (5). rebuild the indexes;
  
  40、使用OEM备份或者EXP的步骤
  WIN2000下:
  
  (1). 控制面板――>管理工具―― >计算机管理――>本地用户和组――>用户――>新建用户sys和sysman(sys和sysman 的帐号要和登陆数据库的帐号相同);
  (2).控制面板――>管理工具―― >本地安全策略――>本地策略――>用户权利指派――>
  作为批处理作业登陆――>添加sys和sysman两个帐号。
  (3).使用Enterprise Manager配置辅助工具
  开始→程序→Oracle - OraHome81→Enterprise Manager→Configuration Assistant
  a、使用Configuration Assistant工具来创建一个新的资料档案库。
  
  (4).控制面板――>管理工具―― > 服务,查看OracleOraHome81ManagementServer是否启动,如果没有启动,则手动启动该服务。
  (5).以sysman/oem_temp(default)登陆DBA Studio
  (第二个选项:登陆到Oracle Management Server),立即修改密码为你刚才在NT下建的用户sysman的密码。
  (6). 以sysman/ *** (bluesky) 从开始→程序→Oracle - OraHome81→Console 登陆到 控制台。
  在 系统→首选项→首选身份证明(我的首选身份设置如下:)
  DEFAULT节点:name:sysman
  DEFAULT数据库:name:sys
  (7). 在搜索/添加结点后,以sysman/ *** 登陆到该结点,以sys/ *** as sysdba登陆数据库(也就是在首选身份设置的结果)。
  (8). 在工具→备份管理→向导→预定义备份策略(自定义备份策略)→提交备份计划
  (9).从开始→程序→Oracle - OraHome81→Console 登陆到 控制台,查看活动(历史记录)可以看到你的备份是否成功,如果不成功,可以点击备份看明细。(我第一次也没成功,后来我修改系统的临时目录C:\WINNT\Temp→c:\temp\systmp,重新启动机器就ok了)
  
  41、如何修改INTERNAL的口令
  
  以下是oracle8的8i你可以仿照来做
  
  (1)、进入DOS下
  
  (2)、默认internal密码文件在c:\orant\database下,是隐藏属性,文件名称与数据库实例名有关
  
  如默认ORACLE实例名为ORCL,则internal密码文件名为pwdorcl.ora
  
  (3)、建立新的internal密码文件,起个新名字为pwdora8.ora
  
  orapwd80 file=pwdora8.ora password=B entries=5     --注:password项一定要用大写,并且不要用单引号
  
  (4)、拷贝pwdora8.ora文件到c:\orant\database目录下
  
  (5)、运行regedit,修改口令文件指向
  
  (6)、找到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE项
  
  定位ORA_ORCL_PWFILE子项,改变其值为c:\orant\database\pwdora8.ora
  
  (7)、关闭ORACLE数据库,重新启动
  
  (8)、进入svrmgr30服务程序,测试internal密码是否更改成功

42、凭证检索失败的决绝方法。
  
  原因: 由于Oracle不能应用OS认证而导致凭证检索失败
  
  解决办法:
  
  (1).打开network/admin下的sqlnet.ora
  修改SQLNET.AUTHENTICATION _SERVICES=(NONE)。
  
  (2).启动Net8 configuration assistant-->选第三项本地网络服务名配置
  -->删除...(删除原来的本地网络服务名)
  
  (3).重复第二步
  -->添加.. (新建本地网络服务名)
  
  (4).restart oracle
  
  注意:NTS是WinNT的认证方式
  
  43、命令行编译存储过程
  
  ALTER PROCEDURE procedure_name COMPILE;
  
  44、关于如何建立数据库链接(DBlink)
  
  可以通过建立客户机数据库网络服务名的办法,将服务器的名字或是IP地址设置为你需要连接的那个机器就行
  
  如果你要在一个应用中连接它,现在做好上步工作,然后按如下处理
  
  建立数据库连接
  CREATE DATABASE LINK DBaseLinkName CONNECT TO UserName IDENTIFIED BY Password USING 'NetServiceName';
  DBaseLinkName 是建立的数据连接名称
  UserName    是可以连接到的用户名
  Password    是可以连接到的用户的密码
  NetServiceName 是可以连接的数据库网络服务名或是数据库名
  
  查询建立数据连接的表实例
  Select * From TableName@ DBaseLinkName;
  
  注意:如果在CREATE DATABASE LINK DBaseLinkName CONNECT TO UserName IDENTIFIED BY Password USING 'NetServiceName';中NetServiceName 是数据库名修改init.ora中:global_names = true
  否则global_names = false
  init.ora中:global_names = false
  
  45、Object Browser7.0中文版的破解方法
  
  到OBJECT BROWSER的目录里,找到DeIsL1.isu文件,用记事本打开,看到的是乱码吧?没关系,将Stirling Technologies ,Inc 这个字符串前面的乱码去掉(如果有的话),让后在Stirling之前加一个空格(一定要加的),保存,退出,重新运行一下看看,虽然还有提示输入验证信息,但是不用管他,直接确定就行。是不是可以用了呢?保证好使。
  
  46、错误号ORA-01536:space quota exceeded for table space 'ALCATEL'的解决办法
  
  三个解决办法,任你选择:
  (1) alter user USERNAME quota 100M on TABLESPACENAME;
  (2) alter user USERNAME quota unlimited on TABLESPACENAME;
  (3) grant unlimited tablespace to USERNAME;
  
  47、如何在Oracle中捕获到SQL语句的全部操作内容
  
  SELECT osuser, username, sql_text from v$session a, v$sqltext b
  where a.sql_address =b.address order by address, piece;
  
  48、ORACLE中如何实现自增字段:
  
  (1)第一种方法
  ORACLE一般的做法是同时使用序列和触发器来生成一个自增字段.
  CREATE SEQUENCE SEQname
  INCREMENT BY 1
  START WITH 1
  MAXVALUE 99999999
  /
  CREATE TRIGGER TRGname
  BEFORE INSERT ON table_name
  REFERENCING
  NEW AS :NEW
  FOR EACH ROW
  Begin
  SELECT SEQname.NEXTVAL
  INTO :NEW.FIELDname
  FROM DUAL;
  End;
  
  (2)第二种方法:
  CREATE OR REPLACE TRIGGER TR1
  BEFORE INSERT ON temp_table
  FOR EACH ROW
  declare
  com_num NUMBER;
  BEGIN
  SELECT MAX(ID) INTO COM_NUM FROM TEMP_TABLE;
  :NEW.ID:=COM_NUM+1;
  END TR1;
  
  49、job的使用:
  
  修改initsid.ora参数
  job_queue_processes = 4      8i,9i (允许同时执行的JOB数)
  job_queue_interval = 10      8i
  job_queue_keep_connections=true    8i
  
  DBMS_JOB.SUBMIT(:jobno,//job号
  'your_procedure;',//要执行的过程
  trunc(sysdate)+1/24,//下次执行时间
  'trunc(sysdate)+1/24+1'//每次间隔时间
  );
  删除job:dbms_job.remove(jobno);
  修改要执行的操作:dbms_job.what(jobno,what);
  修改下次执行时间:dbms_job.next_date(job,next_date);
  修改

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:47881次
    • 积分:860
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:180篇
    • 译文:1篇
    • 评论:15条
    文章分类
    最新评论
  • 使用ideploy的安装

    caltonia: 有没有ideploy安装包下载

  • [JAVA软件工程师-面试宝典-2013最新版]

    u010850027: 谢谢分享 学习了

  • 测试理论

    xiaomin881122: 4 软件测试计划定义软件项目的测试计划是描述测试目的、范围、方法和软件测试的重点等的文档。对于验证软...

  • 测试理论

    xiaomin881122: 3 软件测试计划模板一般包括哪些要素 1. 引言:目的、背景、范围、定义,参考材料;2.测试内容:测...

  • 测试理论

    xiaomin881122: 2 软件测试质量包括哪些管理要素 1、 缺陷遗漏率、测试覆盖率、缺陷等级划分、缺陷原因分析、缺陷记录...

  • 测试理论

    xiaomin881122: 1 软件测试报告其实没有什么固定格式,我认为只要介绍清楚你的测试范围、测试目的、测试执行过程情况,B...

  • test(software)

    xiaomin881122: 测试流程依次如下:1. 需求:阅读需求,理解需求,和客户,开发,架构多方交流,深入理解需求。--te...

  • test(software)

    xiaomin881122: 1、 开项目需求评审会议(项目组成员对需求进行评审) 2、制定测试计划 3、根据项目需求说明书和测试...

  • test(software)

    xiaomin881122: 采用国际模型:需求分析,概要设计,详细设计,编码,单元测试,集成测试,确认测试 系统测试,验收测试。...

  • test(software)

    xiaomin881122: 测试准备-测试计划-测试需求-测试用例-测试执行-测试缺陷管理-测试报告总结缺陷流程管理:new- ...