前提:安装好了Oracle 12c数据库,已有一个数据库实例xe,登录用户/密码:system/oralce 我用的是docker安装的Oracle 12c的实例: docker run --name <docker_name> -d -p : -p : -v /home/<user>/docker/data/oracle_1521:/u01/app/oracle sath89/oracle-12c 具体参考 https://hub.docker.com/r/sath89/orac…
select saddr,sid,serial#,paddr,username,status from v$session where username is not null and username = 'EHR' ; select 'alter system kill session '''||sid||','||serial#||''';' from v$session where username is not null and username = 'EHR' ; alter sys…
Oracle的锁表与解锁 SELECT /*+ rule */ s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) LOCK_LEVEL, o.owner,o.object_name,o.object_type, s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser FROM v$session s,v$lock l,dba_objects o WHERE…
在Entity Framework 中用 Code First 创建新的数据库 (原文链接) 本文将逐步介绍怎样用Code First 创建新数据库,使用在代码中定义类和API中提供的特性(Attribute)的方式来流畅地创建数据模型到新数据库或已经存在的空数据库. 1. 新建应用程序() 为了简单起见,我们将新建一个使用Code First执行数据访问的控制台应用程序. 打开VS 新建项目为 控制台应用程序 2. 新建数据模型 我们先新建两个简单的实体类. 参考代码如下: ``` publi…
oracle 使用的过程中,有时候会遇到锁表的情况,数据库增.删.改.查都是会锁表的,但是锁的类型会不同, 大多是行锁,部分会是表锁. 在oracle运行中,一直是有表在锁的,只不过很快一个操作结束,锁就释放了. 但是,总是有操作很慢的时候. 如:一张纪录用户实时数据的大表(1000W数据),为了查询快,加了好几个索引,导致,更新表很慢,一直锁表. 死锁的时候,数据库会一直打trace文件,文件的会比较大(100+M), 如果硬盘空间不足,会导致数据库进程沾满,无法正常使用.并且,死锁是很占用系…
背景 使用Exp命令在oracle 11g 以后不导出空表(rowcount=0),是最近在工作中遇到一个很坑的问题,甚至已经被坑了不止一次,所以这次痛定思痛,准备把这个问题彻底解决.之所以叫新方法,那一定有老方法了,这个方法是一位博友很早就提出了,以下是原文,其实也说明了问题的原因 Oracle11g使用exp导出空表(作者:程序员的那些) 问题根本原因:“Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出” 问题次要原因: 在开发维护期…
--oracle查询锁表解锁语句--首先要用dba权限的用户登录,建议用system,然后直接看sql吧 --1. 如下语句 查询锁定的表: SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_timeFROM v$locked_object l, all_objects o, v$sessi…
今天在网上查了下,根据旧表创建新表的SQL语句,网上给了两个答案 create table tab_new like tab_old (使用旧表创建新表) create table tab_new as select col1,col2- from tab_old definition only 两个语句都试了一下,报错了. 正确的方法是 select * into newtable from oldtable; 如果不想导记录,只想生成表结构 :select * into newtable f…
[Oracle系列-锁表与解锁解决方案(大招版)] --1查看被锁的表 select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id; --2查看那个用户那个进程照成死锁select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$s…
参考: oracle查看锁表进程,杀掉锁表进程 Oracle的锁表与解锁 查看锁表进程SQL语句: select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID; 杀掉锁表进程: 如有記錄則表示有lock,記錄下SID和serial# ,將記錄的ID替換下面的738,1429,即可解除LOCK alter system kill session '738,1429'; Oracle有自己的进程管理策略,很多…