Oracle基础重新学习以及思考
由于之前学习oracle的时候比较随意,看书也是比较少去深入思考原理,而从前几天决定要重新燃起oracle的学习激情后,我又重新的从基础学起,此时我学oracle的心态也比以前好很多了,现在是努力的一点一点去啃了,即使很花时间,但我想正是通过今天我这样的埋头苦读才会换来有朝一日在oracle方面的质的飞跃的。
昨晚学习oracle高水位线的时候,发现自己对oracle的基本概念总体上还是不够,有些东西理解得不透彻,比如昨晚在看到和表空间有关的知识时,有这么一段话让我费解了很久:原文如下:一旦将数据文件追加到某个表空间后,就不能删除该数据文件了,如果要删除数据文件,则只能删除其所属表空间。我想一个表空间里面数据应该非常多,要修改删除的也很多,因为要删除一个数据文件,而要删除其所在的表空间。(是不是表空间里面的数据也随之没有了??)感觉不可理解。oracle可不是这么欠缺考虑的啊,这不是oracle的作风啊。由于昨晚上不了网,对于这个问题也想了很久没想出个所以然来,所以今晚特意在网上查找了一些资料;在网上看到了一位兄弟的回复,看后豁然开朗啊:应该说表空间是数据文件的具体体现,你一旦把一个数据文件追加到表空间下面,那么表空间就可以自由的使用这个文件了,当你再想删掉这个文件的时候,表空间已经使用他了啊,如果你删掉了,不就打乱破坏了表空间存储数据的机制了吗,那其他的文件还有什么用,数据全都乱了啊,不知道说的明白不……
附:表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,UNDO表空间供回滚段使用。一个表空间只能属于一个数据库。
每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件( DataFile )。一个数据文件只能属于一个表空间。创建新的表空间需要创建新的数据文件。
数据文件一旦加入到表空间中,就不能从这个表空间中移走,也不能与其他表空间发生联系.如果数据库对象存储在多个表空间中,那么可以通过把它们各自的数据文件存放在不同 磁盘上来对其进行物理分割。在规划和协调数据库处理I / O请求的方法中,数据分割是一种很重要的工具。
相关文档:
oracle启动问题
一:数据库没有启动
#sqlplus /nolog
sql>connect /as sysdba
sql>startup
二:监听出问题
登录DB服务器
使用lsnrctl start/stop开启/关闭监听
使用lsnrctl status查看状态
理应为:
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ERPAP)(PORT=1521)))
STATUS of the ......
2010-04-21 14:04
oracle中构造数组的例子:
declare
type t_varray is varray(4) of number;
arr t_varray;
begin
arr := t_varray(1,2,3,4);
for i in 1..arr.count loop
dbms_output.put_line(arr(i));
end loop;
end;
构造二维数组的例子:
declare
type t_varray ......
select * from TTable1 for update 锁定表的所有行,只能读不能写
2 select * from TTable1 where pkid = 1 for update 只锁定pkid=1的行
3 select * from Table1 a join Table2 b on a.pkid=b.pkid for update 锁定两个表的所有记录
4 select * from Table1 a join Table2 b on a.pki ......
author:skate
time:2010-05-13
1)If memory increases and you're 64-bit, e.g 8G to 16G, Oracle SGA and related parameters need adjust; So are some the Unix kernel parameters.
2)As for CPU related configuration, some parameters, based on CPU_co ......