db_links/procedures/dbms_jobs

由于项目需要,开始接触oracle,虽然以前接触过mssql,对基本语法有一定了解,但oracle略有不同。从plsql的配置开始学习,第一次见识tnsnames配置文件的强大,到join、case-when、nvl、to_date等等的应用,感受着数据库的魅力,报表语句也逐步提炼修改,前后经历无数个版本。最近,为了实现远程数据表转存功能,开始接触db_links/procedures/dbms_jobs,前后差不多一个星期,这算是我学习oracle数据库以来的一次进步。
        PLSQL连接远程数据库实例,只有用户权限够高。db_links/procedures/dbms_jobs这三个功能都可以直接使用,db_links实现当前活动数据库实例与另一个数据库实例的连接,配置类似于tnsnames的连接配置,完成db_links后,活动数据库实例可以像操作本地库一样对远程数据库进行操作,只需表明后面加上"@db_links名称"。
         procedures存储过程,是一系列操作集合,把sql 窗体的所以操作语句集中起来
        dbms_jobs是任务设置,加入存储过程名,配置定时器,就可以实现任务定时执行功能
        TRUNC(sysdate,'mi') + 1/ (24) 小时间隔
        TRUNC(sysdate,'mi') + 1/ (24*60) 分钟间隔
        第一次设置存储过程和任务是很成功,完成报表结果集定时执行转存,后面为了实现透视表的转存,再次设置,可能操作过于着急和频繁,出现了锁死情况,百思不得其解,甚至搞到电脑奔溃重启,几番搜索,最后才找到解决办法,备注下来作为参考
      查询锁定
      select session_id from v$locked_object;
      SELECT * FROM V$LOCKED_OBJECT
      查询sid 和serial
      SELECT sid, serial#, username, oSUSEr FROM v$session where sid = 80;
      SELECT v.sid,v.SERIAL#,v.USERNAME,v.ACTION FROM v$session v WHERE v.sid IN (SELECT session_id FROM v$locked_object)
      杀死ORACLE进程
       ALTER SYSTEM KILL SESSION '254,59483';
       无法杀死,进行下面步骤
       查询系统进程号 spid
       select spid, osuser, s.program from v$session s,v$process p  where s.paddr=p.addr and s.sid=254
      进入linux系统 直接结束进程。 
       linux root  >> kill -9 spid

顺便放一下tnsnames配置文件(放在oracle客户端安装目录下) oracle服务器ip:端口 /实例名 必须与实际一直
名字(任意取) =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle服务器ip)(PORT = 端口))
    )
    (CONNECT_DATA =
      (SERVICE_NAME =实例名)
    )
  )

太久了可能或找到不oracle客户端的安装目录,可以通过注册表(运行框执行regedit ),查找 ORACLE_HOME
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值