Danny's profile季节的水滴PhotosBlogListsMore ![]() | Help |
|
|
10/5/2009 为什么在Oracle里删除了表数据,但空间却得不到释放Q: 为什么我在Oracle下Delete Table,但是表空间却得不到释放?
A: 学习一下Delete和Truncate的区别:
1. 当使用Delete语句删除表的所有数据时,不会释放表所占用的空间;使用"Truncate Table"语句不仅会删除表的所有数据,而且还会释放表段所占用的空间;
2. Delete属于DML(Data Manipulation Language)操作,支持事务;Truncate属于DDL(Data Definition Language)操作,不支持事务;
3. Delete语句的操作可以回退,但Truncate Table语句的操作不能回退。 6/1/2009 A good blog to learn OracleFocusing Specifically On Oracle Indexes, Database Administration and Some Great Music
Richard Foote's Oracle Blog (Thanks for Jussi Volanen sharing) 7/10/2008 查询并解除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 ; 然后再根据得到sid和serial#: alter system kill session 'sid,serial#' 6/20/2008 Solaris下启动Oracle数据库实例在Leewey同学的指导下学了一下Solaria下启动Oracle: # su - oracle
$ sqlplus /nolog // nolog是启动SQLPLUS,但不连接,也即nologin
SQL>conn username/password@sid //以username用户连接数据库
SQL>startup //启动数据库
SQL>exit //退出
刚开始由于密码中含有“&”这个符号,怎么试都不行。没办法偶只好:
#su -oracle
SQL>emctl start dbconsole
打开浏览器输入http://ip address:1158/em
用sys用户名进入,把username用户名的密码中的“&”号去掉(当然也可以直接用sys用户名登录去修改)。 6/17/2008 9i OEM不能访问10g数据库(非sys用户),报:您必须具有SELECT ANY DICTIONARY权限才能运行此应用程序 用Oracle9i的Enterprise Manager Console连接Oracle10g数据库报“您必须具有SELECT ANY DICTIONARY权限才能运行此应用程序。请要求DBA为您授予此权限”错误。网上有人说这是使用OEM登录时的一个BUG,授权也没有用;即使新建用户时,为该用户授予了此权限,也会报这个错误。
解决办法:1.换Oracle10的OEM;
6/15/2008 Oracle导出数据网上百度的从Oracle数据库导出数据偶试了一遍,都不行。不过偶幸亏有高手指点,才顺利导出数据。
现将正确的方法贴出,希望可以帮助需要的人:
1.打开客户端Enterprise Manager Console连接到你要导出的数据库
2.cmd进入DOS命令行
3.exp userid@SID_IP
4.输入password
5.给导出的dmp文件起名字
6.选择导出数据库、用户还是表(我选的是导出用户)
7.选择是否导出权限、表数据,是否压缩区
8.要导出的用户:此处再次输入用户名
贴图如下: 用户名:monet SID:lbs |
|
|