发表于:2008.03.24 11:27
分类: oracle
出处:http://imlihj2007.itpub.net/post/34710/458077
---------------------------------------------------------------
一:块清除
当事务提交 commit时,oracle会去更改 row head与itl信息 的标志,指出这些被修改的行已经作了提交,以便后面的查询不需再作一致性读操作了.这被称为快速块清除.
然而,块清除有 data_buffer *10% 的了限制,即仅有10%*buffers的块能享有这种操作.这样做是为了提高commit的速度.而其余的受影响的块则会由下次操作时访问到此块时再作延迟块清除.如果块上没有活动的事务,会根据xid信息去回滚段中找如果不能确认scn的大小则会报 ora-1555的错误,否则则进行延迟的块清除.
1)﹑在commit时只有 buffer数目的10%才会进行fast block cleanout﹐那么这个10%的块是随机确认的吧.是否能这样讲 如果我的 data_buffers=500
我有一个表 有500 rows﹐但每一行有6000byte﹐即我这个表就会占满整个buffer.现进行 update table set a=b 这样一条sql来更新所有数据.后commit。但我dump block却没有能看到 延迟块清除的情况.而所看到的都是fast block clearout...
2)﹑延迟块清除是否还有另一种情况,就是如果被修改的块在commit前被写入到数据文件。所以会在下次读到的时候进行块清除..
二:db_name,Instance_name
数据库名(db_name)
数据库名是用于区分数据的内部标识,是以二进制方式存储于数据库控制文件中的参数,在数据安装或创建之后将不得修改。数据库安装完成后,该参数被写入数据库参数文件pfile中,格式如下:
[code:1:1aaf156970]
db_name="orcl" #(不允许修改)
db_domain=dbcenter.toys.com
instance_name=orcl
service_names=orcl.dbcenter.toys.com
control_file=(...............
.数据库实例Instance_name
.数据库实例名则用于和操作系统之间的联系,用于对外部连接时使用。在操作系统中要取得与数据库之间的交互,必须使用数据库实例名。例如,要和某一个数据库server连接,就必须知道其数据库实例名,只知道数据库名是没有用的,与数据库名不同,在数据安装或创建数据库之后,实例名可以被修改。数据库安装完成后,该实例名被写入数据库参数文件pfile中,格式如下:
[code:1:1aaf156970]
db_name="orcl" #(不允许修改)
db_domain=dbcenter.toys.com
instance_name=orcl #(可以修改,可以与db_name相同也可不同)
service_names=orcl.dbcenter.toys.com
附:#################################################
如何在Oracle更改SID名称
1. 以ORACLE10g为例,举例说明更改SID名称的过程。假如数据库的SID叫testdb,现在改成orcl,有以下6个步骤:
1,停止所有的oracle服务
1.1oracle的相关服务都以oracle为前缀,有以下几个:
2.修改初始化文件,将instance_name参数值设置为新的SID名称;
2.1 如果没有可编辑的PFILE文件,可以使用CREATE PFILE FROM SPFILE命令创建。将初始化文件参数的
以下内容:
db_name="testdb"
instance_name=testdb1
service_names=testdb
修改成:
db_name="testdb"
instance_name=oral
service_names=oral(注意db_name不要修改,数据库还是称为testdb,但是它的服务也就是sid改成orcl.)
3,修改注册表的Oracle_sid的值;
3.1在注册表HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_ORaDb10g_home1下面将Oracle_SID
键值该为oral,注意,其他的不要改动.
3.1 .bash_profile文件的内容!
4.修改listener.ora中的SID_NAME;
在目录%Oracle_home%NETWORkADMIN下找到listener.ora,把这个文件之后一项的
SID_NAME=oral
5.用oradim删除原来的SID服务,添加新SID的服务;
oradim -DELETE -SID testdb
oradim -NEW -SID orcl
6.用orapwd生成新的SID的口令。
用工具orapwd创建新的口令文件.将文件保存到%ORACLE_HOME%database目录下面,
ORAPWD FILE=%ORACLE_HOME%databasePWDoral.ora password =admin
password设置的是SYS用户的口令.






