??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品中文字幕麻豆 ,亚洲理论片在线观看,亚洲美女视频网站http://www2.blogjava.net/kapok/category/690.html垃圾?嘿嘿Q我藏的q么׃们还能找到啊Q真牛!zh-cnWed, 28 Feb 2007 03:25:25 GMTWed, 28 Feb 2007 03:25:25 GMT60关于数据库名(db_name)、实例名(instance_name)、ORACLE_SIDhttp://www.tkk7.com/kapok/archive/2005/09/04/11943.htmlW笨W笨Sun, 04 Sep 2005 09:49:00 GMThttp://www.tkk7.com/kapok/archive/2005/09/04/11943.htmlhttp://www.tkk7.com/kapok/comments/11943.htmlhttp://www.tkk7.com/kapok/archive/2005/09/04/11943.html#Feedback0http://www.tkk7.com/kapok/comments/commentRss/11943.htmlhttp://www.tkk7.com/kapok/services/trackbacks/11943.htmlhttp://chinaunix.net/jh/19/348162.html
最q因看到论坛有h问vq方面的东西Q将自己的理解加上查阅相兌料整理如下,如果不全或不当的地方Q望指正q补全它?

数据库名(DB_NAME)、实例名(Instance_name)、以及操作系l环境变?ORACLE_SID)

在ORACLE7?数据库中只有数据库名(db_name)和数据库实例?instance_name)。在ORACLE8i?i中出C新的参数Q即数据库域?db_domain)、服务名(service_name)、以及操作系l环境变?ORACLE_SID)。这些都存在于同一个数据库中的标识Q用于区分不同数据库的参数?

一、什么是数据库名(db_name)?
数据库名是用于区分数据的内部标识Q是以二q制方式存储于数据库控制文g中的参数Q在数据安装或创Z后将不得修改。数据库安装完成后,该参数被写入数据库参数文件pfile中,格式如下Q?

[code:1:1aaf156970]
.........
db_name="orcl"     #(不允怿?
db_domain=dbcenter.toys.com
instance_name=orcl
service_names=orcl.dbcenter.toys.com
control_file=(...............
.........
[/code:1:1aaf156970]

在每一个运行的ORACLE8i数据库中都有一个数据库?db_name),如果一个服务器E序中创Z两个数据库,则有两个数据库名。其控制参数据分属在不同的pfile中控制着相关的数据库?

二、什么是数据库实例名(instance_name)
数据库实例名则用于和操作pȝ之间的联p,用于对外部连接时使用。在操作pȝ中要取得与数据库之间的交互,必须使用数据库实例名。例如,要和某一个数据库serverq接Q就必须知道其数据库实例名,只知道数据库名是没有用的Q与数据库名不同Q在数据安装或创建数据库之后Q实例名可以被修攏V数据库安装完成后,该实例名被写入数据库参数文gpfile中,格式如下Q?
[code:1:1aaf156970]
db_name="orcl"     #(不允怿?
db_domain=dbcenter.toys.com
instance_name=orcl  #(可以修改,可以与db_name相同也可不同)
service_names=orcl.dbcenter.toys.com
control_file=(...............
.........
[/code:1:1aaf156970]
数据库名与实例名之间的关pR?
数据库名与实例名之间的关pM般是一一对应关系Q有一个数据库名就有一个实例名Q如果在一个服务器中创Z个数据库Q则有两个数据库名,两个数据库实例名Q用两个标识定一个数据库Q用户和实例相连接?
但在8i?i的ƈ行服务器l构中,数据库与实例之间不存在一一对应关系Q而是一对多关系Q?一个数据库对应多个实例Q同一旉内用户只一个实例相联系Q当某一实例出现故障Q其它实例自动服务,以保证数据库安全q行?

三、操作系l环境变?ORACLE_SID)
在实际中Q对于数据库实例名的描述有时使用实例?instance_name)参数Q有时用ORACLE_SID参数。这两个都是数据库实例名Q它们有什么区别呢Q?l常弄؜)
[code:1:1aaf156970]

      (ORACLE_SID)
OS<----------------> ORACLE 数据?nbsp;<--------(Instance_name(实例?)

[/code:1:1aaf156970]
上图表示实例名instance_name、ORACLE_SID与数据库及操作系l之间的关系Q虽然这里列出的两个参数都是数据库实例名Q但instance_name参数是ORACLE数据库的参数Q此参数可以在参数文件中查询刎ͼ而ORACLE_SID参数则是操作pȝ环境变量?
操作pȝ环境变量ORACLE_SID用于和操作系l交互。也是_在操作系l中要想得到实例名,必M用ORACLE_SID。此参数与ORACLE_BASE、ORACLE_HOME{用法相同。在数据库安装之后,ORACLE_SID被用于定义数据库参数文g的名U。如Q?
$ORACLE_BASE/admin/DB_NAME/pfile/init$ORACLE_SID.ora?
定义Ҏ:
[code:1:1aaf156970]
export ORACLE_SID=orcl
[/code:1:1aaf156970]

如果在同一服务器中创徏了多个数据库Q则必然同时存在多个数据库实?q时可以重复上述定义q程Q以选择不同实例?

q可以用
[code:1:1aaf156970]
[oracle@Datacent]$ . oraenv
[/code:1:1aaf156970]

来切换不同的ORACLE_SID来通过操作pȝ来启动不同的实例(instance)

谢谢   :em03:



W笨 2005-09-04 17:49 发表评论
]]>
完全卸蝲Oraclehttp://www.tkk7.com/kapok/archive/2005/09/04/11940.htmlW笨W笨Sun, 04 Sep 2005 09:03:00 GMThttp://www.tkk7.com/kapok/archive/2005/09/04/11940.htmlhttp://www.tkk7.com/kapok/comments/11940.htmlhttp://www.tkk7.com/kapok/archive/2005/09/04/11940.html#Feedback0http://www.tkk7.com/kapok/comments/commentRss/11940.htmlhttp://www.tkk7.com/kapok/services/trackbacks/11940.html
软g环境Q?
1、Windows 2000+ORACLE 8.1.7
2、ORACLE安装路径为:C:\ORACLE

实现ҎQ?
1?开始-Q设|-Q控刉板-Q管理工PQ服?
停止所有Oracle服务?

2?开始-Q程序-QOracle - OraHome81Q>Oracle Installation ProductsQ>
Universal Installer
卸装所有Oracle产品Q但Universal Installer本n不能被删?

5?q行regeditQ选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLEQ按del键删除这个入口?

6?q行regeditQ选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesQ滚?
q个列表Q删除所有Oracle入口?

7?q行refeditQ?
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\ApplicationQ?
删除所有Oracle入口?

8?开始-Q设|-Q控刉板-Q系l-Q高U-Q环境变?
删除环境变量CLASSPATH和PATH中有关Oracle的设?

9?从桌面上、STARTUPQ启动)l、程序菜单中Q删除所有有关Oracle的组和图?

10?删除\Program Files\Oracle目录

11?重新启动计算机,重v后才能完全删除Oracle所在目?

12?删除与Oracle有关的文Ӟ选择Oracle所在的~省目录C:\OracleQ删除这个入
口目录及所有子目录Qƈ从Windows 2000目录Q一般ؓC:\WINNTQ下删除以下?
件ORACLE.INI、oradim73.INI、oradim80.INI、oraodbc.ini{等?

13?WIN.INI文g中若有[ORACLE]的标记段Q删除该D?

14?如有必要Q删除所有Oracle相关的ODBC的DSN

15?C件查看器中,删除Oracle相关的日?

说明Q?
如果有个别DLL文g无法删除的情况,则不用理会,重新启动Q开始新的安装,
安装Ӟ选择一个新的目录,则,安装完毕q新启动后Q老的目录及文件就可以删除掉了




天狼?W?1 ?2003-4-8
Oracle 9i for Windows DBA 手册 ————关于手动删除Oracle的几炚w?有些时候,OUI删除Oracle产品后,会在系l上遗留一些注册设|、文件和文g夏V如果希望清理系l上的Oracle安装Q则可以手工删除Oraclelg。Enterprise Edition可以采用如下方式q行删除Q?1Q、以Administratorw䆾d到Windows 2000 pȝ。选择Service applet 以便停止所有Oracle 服务。Oracle 的服务名都具有一个oracle或ora 的前~。一旦停止了所有的Oracle服务Q我们徏议将它们讄为手工启动模式(manual start modeQ?警告 Microsoft 不要手工更改Windows 注册表。更Ҏ册表可能会导致一些应用程序或Windows 工作不正常?2Q、备份Windows 注册表。启动Registry Editor q从菜单中选择 File | Export?3Q、用命oregedt32启动Registry Editor。找到HKEY_CLASSES_ROOT节点q删除所有以字符串Oracle、ORA、ORCL开始的键?4Q、找到HKEY_LOCAL_MACHINE/SOFTWARE键ƈ删除Oracle ?Apache Group 键?5Q、删除HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\odbcinst.ini ?BR>天狼?W?2 ?2003-4-8
面的Oracle ODBC Driver键?6Q、删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services和HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Servicess\EventLog\Application下所有以ORACLE起始的键?7)、删除HKEY_CURRENT_USER\SOFTWARE\ORACLE下所有以ORACLE或ORCL起始的键?8Q、删除HKEY_CURRENT_USER\SOFTWARE\ODBC\odbcinst.ini 下所有以Oracle起始的键?9Q、寻找注册表中所有包含Oracle和ORCL字符串的键ƈ删除它们?10Q、关闭Registry Editor?11Q、编辑环境变量(控制面板中的System appletQƈ修改PATH变量Q从PATH中删除所有Oracle 条目?12Q、从ALL USERS 特征文g中删除Oracle Home 和Oracle Installation Products 快捷方式。这在Windows NT 中的Path winnt | Profiles | All Users | Start | Programs 以及Windows2000 和Windows XP pȝ中的Documents and Settings | All Users |Start Menu | Programs 中有效?13Q、删除Program Files 中的Oracle 文g夏V如果没有成功的删除该文件夹Q则可能是Windows 锁定了一些文?DLL)。遇到这U情况,重新启动pȝq删除该文g夏V?14Q、删除Oracle Base 文g夹(默认情况为Oracle Q?BR>天狼?W?3 ?2003-4-8
应注意,Oracle 9i Enterprise Edition 也安装了W三方Y件诸如:Apache HTTP Server (Oracle HTTP Server 是一?Apache Web
Server 的修改版)?BR>注意 当试囑ֈ?c:\oracle 文gҎQ可能会得到一个“Access is denied ”的错误消息。如果遇Cq个错误提示Q则应将 c:\oracle\ora90\bin\oci.dll 重新命名?c:\oracle\ora90\bin\ocibak ,然后重新启动机器Qƈ删除c:\oracle 文g夏V?BR>



你是用Oracle的Universal Installer卸蝲的吧Q那个卸载不完全Q?BR>应该手工卸蝲Q?BR>1、停止所有Oracle相关服务Q?BR>2、删除Oracle安装目录Q?BR>3、删除C:\Program\Oracle目录Q?BR>4、删除注册表相关信息Q?BR>   HKLM\SoftWare\Oracle?BR>   HKLM\System\CurrentContralSet\Service\Ora…?BR>   HKLM\System\ControlSet001\Service\Ora…?BR>   HKLM\System\ControlSet002\Service\Ora…?BR>5、重新启动计机

 



W笨 2005-09-04 17:03 发表评论
]]>
Oracle Authenticationhttp://www.tkk7.com/kapok/archive/2005/08/05/9424.htmlW笨W笨Fri, 05 Aug 2005 11:12:00 GMThttp://www.tkk7.com/kapok/archive/2005/08/05/9424.htmlhttp://www.tkk7.com/kapok/comments/9424.htmlhttp://www.tkk7.com/kapok/archive/2005/08/05/9424.html#Feedback0http://www.tkk7.com/kapok/comments/commentRss/9424.htmlhttp://www.tkk7.com/kapok/services/trackbacks/9424.html
域帐L陆该机,创徏数据库的时候提C“ORA-12638 w䆾证明索失败”?BR>
sqlnet.authentication_services

http://www-rohan.sdsu.edu/doc/oracle/network803/A54084_01/ch3.htm


http://www.itpub.net/139570.html


一、服务器上用操作系l验?BR>1.配置SQLNET.ORA文g
参数NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
表明解析客户端连接时所用的L字符串的方式
TNSNAMES表示采用TNSNAMES.ORA文g来解?BR>ONAMES表示Oracle使用自己的名U服务器QOracle Name ServerQ来解析Q目前Oracle使用轻量目录讉K协议LDAP来取代ONAMES
HOSTNAME表示使用host文gQDNSQNIS{来解析

参数SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)
表明用户q接Oracle服务器时使用哪种验证方式
NONE表示Oracle数据库n份验证,NTS表示操作pȝw䆾验证Q两U方式可以ƈ?/P>


2.建立相应的操作系l组及用户加入该l?BR>ORA_DBAl中的域用户和本地用户不需要Oracle用户名和密码可以登录Oracle
而且该组的用L录数据库后都hSYSDBA权限
Q多个实例时Q可以徏立类DLlORA_SID_DBAQ其中SID指实例名Q?BR>同理:ORA_OPERl中的成员具有SYSOPER角色的权限?/P>


3.d方式
CQ\>sqlplus ? as sysdba?BR>或者CQ\>sqlplus nolog,然后SQL>connect / as sysdba


4.init.ora中的Remote_Login_Passwordfile对n份验证的影响
三个可选|
NONEQ默认|指示Oraclepȝ不用密码文Ӟ通过操作pȝq行w䆾验证的特权用h有SYSORA和SYSOPER权限
EXCLUSIVEQ?BR>1.表示只有一个数据库实例可以使用密码文g
2.允许SYSORA和SYSOPER权限赋值给SYS以外的其它用?BR>SHARED:
1.表示可以有多个数据库实例可以使用密码文g
2.不允许将SYSORA和SYSOPER权限赋值给SYS以外的其它用?BR>所以,如果要以操作pȝw䆾dQRemote_Login_Passwordfile应该讄为NONE


5.当登录用户不是ORA_DBAl和ORA_OPERl成员时Q登录数据库
需要在Oracle中创建当前操作系l用L同的用户名,如果当前用户是域用户Q则名称?domainname\yourname,
如果是本地计机用户Q则名称为:computername\yourname
创徏ҎQ?BR>create "domainname\yourname" identified externally;
grant connect to "domainname\yourname";

Windows操作pȝQ修Ҏ册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0下面dOSAUTH_PREFIX_DOMAINQD为FALSE,在创建Oracle用户时可以忽略掉域名

q种方式下,init.ora中有一个参数将影响数据库如何匹配一个windows用户和Oracle用户
os_authent_prefix = ""
~省为空QOracle8i以前Q无该参敎ͼ而用OPS$作ؓ用户名前~.(Oracle用户名最大长度限制ؓ30个字W?


--------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------

二、远E客L使用操作pȝ验证

首先需要在init.ora文g中设|如下参敎ͼ
REMOTE_OS_AUTHENT=TRUE

Oracle不推荐在q程客户端上使用操作pȝ验证Q因为客L验证时不是通过服务器上的操作系l用h验证Q而是使用客户端自己怕操作系l来q行windows验证,q样Q客L可以采用建立对应的windows机器名和用户名的方式来欺骗Oracle的操作系l验?
例如Q?BR>创徏了如下Oracle用户
create "zl\zyk" identified externally;
grant connect to "zl\zyk";
如果有一台名为ZL的机器,创徏了一个名为zyk的用Pq以此登录连接Oracle服务器(q接时用\@OracleSTRQ?无需用户名和密码
造成此问题的原因是,Oracle使用客户端操作系l进行验证,它无法区别zl是域名还是机器名.


Windows &.net杂志2004W??http://www.winnetmag.com/Windows/Articles/ArticleID/42280/pg/1/1.html)
作者在文章中强?W三|后一D?:
Oracle数据库服务器上的windowsw䆾认证很容易实施,q且使已d的用戯问数据库很方?BR>但是Q这U验证模型ƈ不适合q程客户端,因ؓ安全隐患太大?/P>


--------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------

三、Oracle 9iҎ作系ln份认证支持的增强
Oracle 9i可以与活动目录集成,通过Oracle Enterprise Security Manager 理用户权限
Enterprise user authentication做ؓ一U新的外部集中认证模?BR>Q也?global user authentication,Oracle 9i以前的External user authentication仅仅采用了客L操作pȝ本地认证)

Oracle9iq行在一个win2000及以上的域中Q注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEID,参数OSAUTH_X509_NAME讄为true
(默认为false,如果该参C存在Q则新增为REG_EXPAND_SZcd)

注意QWindows NT 4.0 domain 不支持这U方?/P>


参考:
http://www.utexas.edu/its/unix/reference/oracledocs/v92/B10501_01/win.920/a95492/enterpri.htm
http://www.utexas.edu/its/unix/reference/oracledocs/v92/B10501_01/win.920/a95492/authen.htm
http://www.utexas.edu/its/unix/reference/oracledocs/v92/B10501_01/network.920/a96573/asoauth.htm


http://www.cnblogs.com/zyk/archive/2004/11/09/61786.html



W笨 2005-08-05 19:12 发表评论
]]>
powerdesigner的一个技?/title><link>http://www.tkk7.com/kapok/archive/2005/04/11/3146.html</link><dc:creator>W笨</dc:creator><author>W笨</author><pubDate>Mon, 11 Apr 2005 08:05:00 GMT</pubDate><guid>http://www.tkk7.com/kapok/archive/2005/04/11/3146.html</guid><wfw:comment>http://www.tkk7.com/kapok/comments/3146.html</wfw:comment><comments>http://www.tkk7.com/kapok/archive/2005/04/11/3146.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/kapok/comments/commentRss/3146.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/kapok/services/trackbacks/3146.html</trackback:ping><description><![CDATA[<A ><STRONG>http://dev.csdn.net/develop/article/24/24476.shtm</STRONG></A> <img src ="http://www.tkk7.com/kapok/aggbug/3146.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/kapok/" target="_blank">W笨</a> 2005-04-11 16:05 <a href="http://www.tkk7.com/kapok/archive/2005/04/11/3146.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle Database 10 g : ?DBA 提供的最佛_ 20 位的Ҏ(十三Q?http://www.tkk7.com/kapok/archive/2005/04/03/2784.htmlW笨W笨Sun, 03 Apr 2005 10:40:00 GMThttp://www.tkk7.com/kapok/archive/2005/04/03/2784.htmlhttp://www.tkk7.com/kapok/comments/2784.htmlhttp://www.tkk7.com/kapok/archive/2005/04/03/2784.html#Feedback0http://www.tkk7.com/kapok/comments/commentRss/2784.htmlhttp://www.tkk7.com/kapok/services/trackbacks/2784.htmlOracle Database 10 g : ?DBA 提供的最佛_ 20 位的Ҏ(十三Q?

作?Arup Nanda 来源Q?OTN

W?13 ?
Enterprise Manager 10 g

最后,讨论一U管理和q用 Oracle 的一站式工具 ?无论对于初学者还是专?

您在日常?DBA 相关zd中用什么工P我最q在一个用L会议中提Zq个问题?

{案?DBA 的工作经验而有所不同。大部分高񔽎理员偏q单的命o?SQL*Plus Q我的个人偏好)Q而其余的人则偏爱使用一些第三方产品。但是,同一个问题在入门U?DBA 那里却得C不同反应Q在q一体中, Enterprise Manager (EM) 昄是他们的选择?

q些偏好不难理解?Oracle Enterprise Manager 自从几年前推Z来一直不断进行完善,它开始时是字W模式显C的 SQL*DBA Q随后发展ؓZ操作pȝ的客L工具Q最后具有了 Java 风格?EM 提供的信息非常详l,_完成大多?DBA dQ可作ؓ不愿或者无暇了解新语法q且希望使用 GUI 工具来管理常见数据库dQ如d用户、修Ҏ据文件和查回退D)的用L解决Ҏ。诊断程序包为性能调节提供了非帔R要的 GUI 支持?

但是Q阻?EM q泛使用的一个主要问题是它无法跟上数据库服务器本w的发展。例如, EM ?Oracle9 i 数据库版本不支持子分区(该特性在 Oracle8 i 中首ơ引入)?

Oracle 数据?10 g 中的 EM 新版本改变了q种情况。它h新的体系l构和新的界面,而最重要的是Q它h一个功能非常强大而完善的工具,提供从初学者到高用户所需的所?DBA 技能集。而最好之处在于,它是安装本n的一部分Q无需额外费用。如果您正在评估W三方工P您当然可以将 EM 加入评估行列中,从而竞争更加Ȁ烈。即使您是那U??W信命o???DBA Q象我这PQ您也会非常ƣ赏 EM 在某些情况下能ؓ您所提供的帮助?

在本文中Q我ؓ您介l新?EM 。由于该工具所涉范围甚q,因此不可能在此讨论所有的Ҏ;我将在此介绍几个基本Ҏ,q提供其他材料的U烦。我遵循本pd之精提供实际的CZQ演C如何用该工具解决实际问题?

体系l构

~省情况下,在安?10 g 软g?, 卛_?EM 10 g ?, 在概念上它与以前版本的不同之处在于,它不是客L安装的工P实际上它是位于数据库服务器本w上?HTTP 服务器(UCؓ DB 控制収ͼ。(参见?1 。)您可以用Q何浏览器查看 EM 界面?

?1

?1 Q?EM 体系l构

DB 控制台的端口号可?$ORACLE_HOME/install/portlist.ini 中找到。以下是一个文件的CZQ对于您来说Q端口可能不相同?

Ultra Search HTTP port number = 5620

iSQL*Plus HTTP port number = 5560

Enterprise Manager Agent Port =

Enterprise Manager Console HTTP Port (starz10) = 5500

Enterprise Manager Agent Port (starz10) = 1830

从这个文件中我们了解刎ͼ数据?starz10 的代理程序监听端?1830 Q?EM 控制台监?5500 。我们可以通过输入以下 URL 来调?EM d画面Q?

http://starz/em/console/logon/logon

?URL 调出d画面Q从中您可以?DBA 用户d。在我们的示例中Q我们将?SYS d?

L据库主页

d后即出现L据库主页。主늚上部提供寚w要细节的快速浏览。(参见?2 。)

?2

?2 Q主数据库主(上部Q?

在上图中已圈Z最重要的一些部分,q用本文中编L引用对其q行了标注。首先,h意标?“General?1) 的部分;q一部分昄了有x据库的一些最基本l节Q如数据库从 3 ?20 日v已经启动Q以及实例名U等?Oracle Home 昄Z个超链接Q当单击该链接时Q将昄所有品以及共享该ȝ录的所有其?Oracle 数据库?Listener 的超链接昄注册到监听器Q其名称显C在紧靠它的下方Q的所有数据库和实例。最后,昄L?(starz) ?

在名?“Host CPU?2) 的部分中Q醒目地昄?CPU 的详l信息?“Active Sessions?3) 部分昄了活动的会话及其当前状?(4) 。从上面我们看到Q?99% 的时间被处于{待状态的会话所占用。(我们E后找出导致这些等待的原因。) “High Availability?5) 部分昄了与可用性相关的信息。例如, “Instance Recovery Time?的|实例?MTTR Target 的|定实例崩溃恢复可能需要的旉?

“Space Usage?6) 部分很有:它显CZ 23 个段相关的警告。(同样Q稍后再详细介绍q些警告。) “Diagnostic Summary?7) 部分提供数据库良好运行的概要信息。所发现的性能问题的数量表C动数据库诊断监控E序 (ADDM) ??10g 中新增的自诊断引??d识别出多问题?EM q自动分析您的环境,以确定是否违反了所的最佛_践;此分析的l果昄?“Policy Violation?部分。最后, EM 扫描警报日志Qƈ昄M最新的 ORA 错误。这U信息非常有价??在警报日志中自动扫描 Oracle 错误使您避免了手动搜索这些错误的很多ȝ?

在数据库主页的下部,如图 3 所C,我们可以更详l地查看其中的一些消息?“Alerts?1) 部分昄了需要您注意的所有相兌报,每个警报都可以方便地q行配置。以W一个警?(2) ZQ它昄 Archiver q程因ؓ某种原因而挂赗当Ӟ下一步就是确定其原因。要查明原因Q只需单击它即可。您从包含该错误的 alert.log 文g中获得更多详l信息。在此情形下Q故障点是一个已l填满的闪回恢复区;我们只需其清空Q?Archiver 卛_重新开始工作?

?3

?3 Q主数据库主(下部Q?

另一个警?(3) 是有关等待的Q数据库?69% 的时间中{待一个与{待c?“Application?相关的等待。还记得主页上部是如何显CZ个会话处于等待状态的吗?q个警报向我们显C它正在{待什么。单击超链接会立即为您昄实际的等待?

下一个警?(4) 昄一个审计项目,即用?SYS 从特定的客户端机器连接到数据库。同P通过单击链接,您可以显C有兌q接的所有详l信息。最后一个警?(5) 昄某些对象无效。单击超链接Q您{到对象被验证无效的画面?

如您所见,数据库主늊如显C需要您注意的所有事的仪表ѝ该界面没有详l信息堆U在屏幕上,其界面相当简z,只需单击卛_获得q些详细信息。您可以手动搜集所有这些信息,但这可能会花费很多时间和_֊?EM 10 g 提供了随取随用的解决Ҏ?

一般应?

让我们来看看如何使用新的 EM 来完成一些较常见的Q务?

一常见的d是变更表及其相应的烦引。在数据库主,如图 3 所C选择 “Administration?选项卡,q引用标Cؓ 6 的项目。在本页中,您可以管理数据库来配|回退Dc创I间和模式对象、设|资源管理器、用新的调度程序(在以后的文章中介绍Q以及更多事V在此处选择 “Tables?Q这调出如?4 所C的画面?

?4

?4 Q表理

注意U色圆圈中高亮显C的手电{标志;q是用于调出数值列表的按钮。在图中所C画面中Q您可以单击 LOV 标志Q调出数据库中的用户列表Qƈ从列表中选择一个用戗单L?“Go?Q出现该用户的表的一个列表。您q可以???W号指定通配W??例如Q通过使用 %TRANS% Q可以找出名UC带有单词 TRANS 的所有表?

让我们来看一个示例。选择?TRANS Q更改其中的一列。单击超链接Q调出如?5 所C的 ?~辑??画面?

?5

?5 Q表理

如果您要列 ACTUAL_RATE ?NUMBER(10) 改ؓ NUMBER(11) Q则可以更改数字Q引?1 Q,然后单击 “Apply?。要查看完成该Q务的实际 SQL 语句Q可以单L?“Show SQL??

在同一画面上还可以获得另一条重要信息:增长势。您在以后一有x理的文章中了解刎ͼ观察一D|间内的对象增长情冉|可能的。该画面提供了相同的信息Q但却是以图形方式表C的。要查看该画面,可单击选项?“Segments?Q??5 引用 2 Q。该操作调出D는面,如图 6 所C?

?6

?6 Q段画面

注意U色圆圈中标记的目。该画面昄有多空间分配给D?(2) 、实际用了多少 (1) 以及费了多?(3) 。在该画面的下部 (4) Q您可以看到一q有兛_象所用空间以及分配给对象的空间的囑Ş。在本示例中Q表的用模式已l稳??因此是直Uѝ?

您可以对表执行其他管理操作,Ҏ是用那些用于该目的的选项卡,如用于管理约束的 “Constraints??

使用 EM q行性能调节

到目前ؓ止您已经了解刎ͼ虽然 EM 的外观已l更改,但它提供了至与以前?Java 版本同样多的功能。但是,与后者不同的是, EM 现在q支持更新的 Oracle 数据库功能。例如, EM 现在能够处理子分区?

但是Q有l验?DBA 希望q种工具能完成更多的工作 ?其是在故障诊断或主动性能调节斚w。让我们举个例子。回忆前文中我们的数据库正在 “Application?{待cM处于{待状态,如数据库主页所C( ?3 引用 3 Q,而我们需要诊断其原因。在M调整q程中需要了解的关键事情之一是有多少U组Ӟ?CPU 、磁盘和L子系l)在相互作用,q样有助于在上下文环境中l合观察所有这些变量。ؓ此,可在数据库主中选择 “Performance?选项卡。此操作调出如图 7 所C的画面?

?7

?7 Q?“Performance?选项?

h意所有量度已在同一旉轴上寚wQ这hҎ观察它们的相互依赖性。注意尖?(3) Q它对应于调度程序Q务。它表明Q在该时ȝ有七个会话正在等待与调度E序相关的等待事件。那么,影响因素是什么?注意处于同一位置Q绿色区域)?CPU 量度 ?它们昄了曾l用过的最?CPU 使用率,在图形中以虚U?(4) 表示。在该点前后Q我们没有看?CPU 峰出现Q这提供了一条线索。注?CPU q行队列长度中的峰 (1) Q这是调度程序的直接后果Q调度程序可能生了q多的内存需求,D增加了分|?(2) 。如您所见,所有现象集中在一P促进了对数据库负??概况 ?的了解?

注意在时间u末尾的尖??增加了运行队列长?(5) 和分速率 (6)?它们与物理读取的另一个尖峰相?(7) 。原因是什么?

通过比较囑Ş “Sessions:Waiting and Working?与尖峰发生的旉Q我们可以看刎ͼ大部分会话都?“Application?{待cMq行{待。但是我们需要确切地查明它在该时期内正在{待什么?单击该时间的区域Q调出活动会话画面,如图 8 所C?

?8

?8 Q活动会话等?

该画面显CZ话正在等待的{待事g?enq:TX ?row lock contention 。那么导致此问题?SQL 语句是什么?很简单:画面本n昄了语?8rkquk6u9fmd0 ?SQL ID Q在U色圆圈中)。单击该 SQL ID Q调出如?9 所C的 SQL 画面?

?9

?9 Q?SQL 详细信息

在该画面上,您可以看到关于它?SQL 语句以及相关的详l信息,包括执行计划。它表明Q这?SQL D行锁争用Q因此应用程序设计可能是问题的根源?

栓锁争用

假设单击 “Performance?选项卡出现类似图 10 所C的画面?

?10

?10 Q?“Performance?选项卡,CZ 2

在图中,h意红色矩形中高亮昄的量度。您可以看到?12:20AM 左右有很多与 CPU 相关的等待,q导致在 CPU 中出现庞大的q行队列。我们需要诊断这一{待?

首先Q单LC?CPU 争用区域的图形(在图上标?“Click Here?Q,以详l查看该特定{待Q如?11 所C?

?11

?11 Q活动会话等?

注意?“Active Sessions Working:CPU Used?囑Ş中带阴媄的框 (1) 。您可以使用鼠标拖动它来攄焦点。此操作D以下的饼形图Q?2 ?3 Q只在该框所包含的时D内q行计算。在q里我们看到Q一个具?id 8ggw94h7mvxd7 的特?SQL 正在非常困难地运?(2) 。我们还看到Q具有用户名 ARUP ?SID 265 的用户会话是最主要的运行会?(3) 。单击该会话Q查看其详细信息。此操作调出 “Session Details?画面。单击选项?“Wait Events?Q调会话所l历的等待事件的详细信息Q其画面cM于图 12 所C?

?12

?12 Q等待事件的详细信息

在该画面中,h意在U色圆圈中高亮显C的 118 厘秒的最长等待,它在{待库高速缓存。当您单?“Latch:Library Cache?的超链接Ӟ会看到cM?13 所C的画面?

?13

?13 Q等待直方图

该画面提供了 10 g 数据库之前所没有提供的一些独特信息。在诊断q个栓锁争用问题Ӟ如何知道q?118 厘秒的等待是由几个会话中的多个小{待l成Q还是只是由一个会话中的一个大{待l成Q从而数据出现偏差呢?

在这里,直方囑֏以帮助我们。从图上看,您知道大U?250 ơ会话拥?1 毫秒的等待(在圆圈中高亮昄Q。会话在 4 ?8 毫秒之间的某处等待了大约 180 ơ。该画面昄Q这些等待的旉通常很短Q因而它们不是栓锁争用的主要症状?

在数据库主页上,您可以通过单击标ؓ “Advisor Central?的选项卡来讉K ADDM ?SQL Access Advisor 以及其他NE序?ADDM 在收集量度时自动q行Qƈ且结果立卛_布在 Advisor Central 中Q当单击该页Ӟ显C由 ADDM l出的徏议?SQL Tuning Advisor 也检查这些量度,q在此页上发布其。(我们在以后的文章中更加详细地研I?ADDM ?SQL Tuning Advisor 。)

化维?

数据库主上标ؓ “Maintenance?的选项卡是常用l护zd ?如备份和恢复、数据导出或导入Q?数据?Q、数据库克隆以及更多zd ?的启动控制台。在该画面上Q您q可以对{略验证警报所Z的最佛_늚基本原理q行~辑?

l论

如先前所qͼq篇文章所涉及的只是巨大冰q一角。在本文中,我的目的不是Z提供全面的概qͼ而是希望提供对一些跨多个技能集的特定活动的快速浏览?

Oracle 10 g EM ?DBA 新手提供了够的资源Q以便很快地了解 Oracle 数据库管理的微妙之处。一本有关?EM 的Q务及技术的好提U是 Oracle ?两日速成 DBA?参考手?。我强烈您阅dQ尤其是在您刚开始学习的时候?

 



W笨 2005-04-03 18:40 发表评论
]]>
oracle 常用句子http://www.tkk7.com/kapok/archive/2005/03/31/2645.htmlW笨W笨Thu, 31 Mar 2005 03:38:00 GMThttp://www.tkk7.com/kapok/archive/2005/03/31/2645.htmlhttp://www.tkk7.com/kapok/comments/2645.htmlhttp://www.tkk7.com/kapok/archive/2005/03/31/2645.html#Feedback0http://www.tkk7.com/kapok/comments/commentRss/2645.htmlhttp://www.tkk7.com/kapok/services/trackbacks/2645.htmlORACLE应用常见ȝ问题1000?之二)

对ORACLE高手来说是不用看?

   88. CHR()的反函数?

   ASCII()

   SELECT CHAR(65) FROM DUAL;

   SELECT ASCII('A') FROM DUAL;

   89. 字符串的q接

   SELECT CONCAT(COL1,COL2) FROM TABLE ;

   SELECT COL1||COL2 FROM TABLE ;

   90. 怎么把select出来的结果导C个文本文件中Q?

   SQL>SPOOL C:\ABCD.TXT;

   SQL>select * from table;

   SQL >spool off;

   91. 怎样估算SQL执行的I/O??

   SQL>SET AUTOTRACE ON ;

   SQL>SELECT * FROM TABLE;

   OR

   SQL>SELECT * FROM v$filestat ;

   可以查看IO?
   92. 如何在sqlplus下改变字D大?

   alter table table_name modify (field_name varchar2(100));

   改大行,改小不行Q除非都是空的)

   93. 如何查询某天的数?

   select * from table_name where trunc(日期字段)Qto_date('2003-05-02','yyyy-mm-dd');

   94. sql 语句如何插入全年日期Q?

create table BSYEAR (d date);
insert into BSYEAR
select to_date('20030101','yyyymmdd')+rownum-1
from all_objects
where rownum <= to_char(to_date('20031231','yyyymmdd'),'ddd');

   95. 如果修改表名?

   alter table old_table_name rename to new_table_name;

   96. 如何取得命o的返回状态|

   sqlcode=0

   97. 如何知道用户拥有的权?

   SELECT * FROM dba_sys_privs ;

   98. 从网上下载的ORACLE9I与市Z卖的标准版有什么区别?

   从功能上说没有区别,只不qoracle公司有明文规定;从网站上下蝲的oracle产品不得用于 商业用途,否则侉|?
   99. 怎样判断数据库是q行在归档模式下q是q行在非归档模式下?

   q入dbastudioQ历E?-〉数据库---〉归档查看?

   100. sql>startup pfile和ifile,spfiled有什么区别?

   pfile是Oracle传统的初始化参数文gQ文本格式的。ifilecM于c语言里的includeQ用于把另一个文件引入spfile?i里新增的q且是默认的参数文gQ二q制格式startup后应该只可接pfile

   101. 如何搜烦出前N条记录?

SELECT * FROM empLOYEE WHERE ROWNUM < n
ORDER BY empno;

   102. 如何知道机器上的Oracle支持多少q发用户?

   SQL>conn internal ;
   SQL>show parameter processes ;

   103. db_block_size可以修改?

   一般不可以H不q样做的?

   104. 如何l计两个表的记录L?

   select (select count(id) from aa)+(select count(id) from bb) L from dual;

   105. 怎样用Sql语句实现查找一列中WN大|

select * from
(select t.*,dense_rank() over (order by sal) rank from employee)
where rank = N;
   106. 如何在给现有的日期加?q_

   select add_months(sysdate,24) from dual;

   107. USED_UBLKDCZ么意?

   It is "harmless".

   108. Connect string是指什?

   应该是tnsnames.ora中的服务名后面的内容

   109. 怎样扩大REDO LOG的大?

   建立一个时的redologl,然后切换日志Q删除以前的日志Q徏立新的日志?

   110. tablespace 是否不能大于4G?

   没有限制.

   111. q回大于{于N的最整数?

   SELECT CEIL(N) FROM DUAL;

   112. q回于{于N的最整数?

   SELECT FLOOR(N) FROM DUAL;

   113. q回当前月的最后一?

   SELECT LAST_DAY(SYSDATE) FROM DUAL;

   114. 如何不同用户间数据导?

   IMP SYSTEM/MANAGER FILE=AA.DMP FROMUSER=USER_OLD TOUSER=USER_NEW ROWS=Y INDEXES=Y ;
   115. 如何找数据库表的主键字段的名U?

   SQL>SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and table_name='TABLE_NAME';

   116. 两个l果集互加的函数?

   SQL>SELECT * FROM BSEMPMS_OLD INTERSECT SELECT * FROM BSEMPMS_NEW;
   SQL>SELECT * FROM BSEMPMS_OLD UNION SELECT * FROM BSEMPMS_NEW;
   SQL>SELECT * FROM BSEMPMS_OLD UNION ALL SELECT * FROM BSEMPMS_NEW;

   117. 两个l果集互减的函数?
   SQL>SELECT * FROM BSEMPMS_OLD MINUS SELECT * FROM BSEMPMS_NEW;

   118. 如何配置Sequence?

   建sequence seq_custid
   create sequence seq_custid start 1 incrememt by 1;

   ?
create table cust
{ cust_id smallint not null,
...}
insert ?
insert into table cust
values( seq_cust.nextval, ...)


   119>.日期的各部分的常用的的写?

   取时间点的年份的写法:

SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;

   120>.取时间点的月份的写法:

SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL;
   121>.取时间点的日的写?

SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL;

   122>.取时间点的时的写?

SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;

   123>.取时间点的分的写?

SELECT TO_CHAR(SYSDATE,'MI') FROM DUAL;

   124>.取时间点的秒的写?

SELECT TO_CHAR(SYSDATE,'SS') FROM DUAL;

   125>.取时间点的日期的写法:

SELECT TRUNC(SYSDATE) FROM DUAL;

   126>.取时间点的时间的写法:

SELECT TO_CHAR(SYSDATE,'HH24:MI:SS') FROM DUAL;

   127>.日期,旉形态变为字WŞ?

SELECT TO_CHAR(SYSDATE) FROM DUAL;

   128>.字W串转换成日期或旉形?

SELECT TO_DATE('2003/08/01') FROM DUAL;

   129>.q回参数的星期几的写?

SELECT TO_CHAR(SYSDATE,'D') FROM DUAL;

   130>.q回参数一q中的第几天的写?

SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;
   131>.q回午夜和参C指定的时间g间的U数的写?

SELECT TO_CHAR(SYSDATE,'SSSSS') FROM DUAL;

   132>.q回参数中一q的W几周的写法:

SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL;

   如有问题Ƣ迎大家一h讨﹗

W笨 2005-03-31 11:38 发表评论
]]>
oracle的锁机制http://www.tkk7.com/kapok/archive/2005/03/20/2269.htmlW笨W笨Sun, 20 Mar 2005 15:34:00 GMThttp://www.tkk7.com/kapok/archive/2005/03/20/2269.htmlhttp://www.tkk7.com/kapok/comments/2269.htmlhttp://www.tkk7.com/kapok/archive/2005/03/20/2269.html#Feedback0http://www.tkk7.com/kapok/comments/commentRss/2269.htmlhttp://www.tkk7.com/kapok/services/trackbacks/2269.htmlhttp://www.51-pass.com/web/ORACLEfengsuo.htm



W笨 2005-03-20 23:34 发表评论
]]>
深入了解Oracle数据字典 http://www.tkk7.com/kapok/archive/2005/03/20/2267.htmlW笨W笨Sun, 20 Mar 2005 14:14:00 GMThttp://www.tkk7.com/kapok/archive/2005/03/20/2267.htmlhttp://www.tkk7.com/kapok/comments/2267.htmlhttp://www.tkk7.com/kapok/archive/2005/03/20/2267.html#Feedback0http://www.tkk7.com/kapok/comments/commentRss/2267.htmlhttp://www.tkk7.com/kapok/services/trackbacks/2267.htmlhttp://blog.csdn.net/emag_oracle/archive/2005/02/01/276714.aspx

首先Q?/SPAN>Oracle的字典表和视囑֟本上可以分ؓ三个层次?/SPAN>

1.1     X$?/SPAN>

q一部分表是Oracle数据库的q行基础Q在数据库启动时?/SPAN>Oracle应用E序动态创建?/SPAN>

q部分表Ҏ据库来说臛_重要Q所?/SPAN>Oracle不允?/SPAN>SYSDBA之外的用L接访问,昄授权不被允许?/SPAN>

如果昄授权你会收到如下错误:

 

SQL> grant select on x$ksppi to eygle;

grant select on x$ksppi to eygle

                *

ERROR at line 1:

ORA-02030: can only select from fixed tables/views

 

 

1.2     GV$?/SPAN>V$视图

?/SPAN>Oracle8开始,GV$视图开始被引入Q其含义?/SPAN>Global V$.

除了一些特例以外,每个V$视图都有一个对应的GV$视图存在?/SPAN>

 

GV$视图的生是Z满OPS环境的需要,?/SPAN>OPS环境中,查询GV$视图q回所有实例信息,而每?/SPAN>V$视图ZGV$视图Q增加了INST_ID列判断后建立Q只包含当前q接实例信息?/SPAN>

 

注意Q每?/SPAN>V$视图都包含类D句:

where inst_id = USERENV('Instance')

 

用于限制q回当前实例信息?/SPAN>

 

我们?/SPAN>GV$FIXED_TABLE?/SPAN>V$FIXED_TABLE开?/SPAN>

 

SQL> select view_definition from v_$fixed_view_definition where view_name='V$FIXED_TABLE';

 

VIEW_DEFINITION

------------------------------------------------------------------------------

select NAME , OBJECT_ID , TYPE , TABLE_NUM from GV$FIXED_TABLE where inst_id = USERENV('Instance')

 

q里我们看到V$FIXED_TABLEZGV$FIXED_TABLE创徏?/SPAN>

 

SQL> select view_definition from v_$fixed_view_definition where view_name='GV$FIXED_TABLE';

 

VIEW_DEFINITION

------------------------------------------------------------------------------

select inst_id,kqftanam, kqftaobj, 'TABLE', indx from x$kqfta

union all

select inst_id,kqfvinam, kqfviobj, 'VIEW', 65537 from x$kqfvi

union all

select inst_id,kqfdtnam, kqfdtobj, 'TABLE', 65537 from x$kqfdt

 

q样我们扑ֈ?/SPAN>GV$FIXED_TABLE视图的创句,该视囑֟?/SPAN>X$表创建?/SPAN>

1.3     GV_$,V_$视图?/SPAN>V$,GV$同义?/SPAN>

q些视图是通过catalog.ql创徏?/SPAN>

 

?/SPAN>catalog.sqlq行?/SPAN>:

create or replace view v_$fixed_table as select * from v$fixed_table;

create or replace public synonym v$fixed_table for v_$fixed_table;

 

create or replace view gv_$fixed_table as select * from gv$fixed_table;

create or replace public synonym gv$fixed_table for gv_$fixed_table;

 

我们注意刎ͼW一个视?/SPAN>V_$?/SPAN>GV_$首先被创建,v_$?/SPAN>gv_$两个视图?/SPAN>

然后ZV_$视图的同义词被创建?/SPAN>

 

所以,实际上通常我们讉K?/SPAN>V$视图Q其实是指向V_$视图的同义词?/SPAN>

?/SPAN>V_$视图是基于真正的V$视图(q个视图是基?/SPAN>X$表徏立的)?/SPAN>

 

?/SPAN>v$fixed_view_definition视图是我们研I?/SPAN>Oracle对象关系的一个入口,仔细理解Oracle的数据字典机Ӟ有助于深入了解和学习Oracle数据库知识?/SPAN>

 

1.4     再进一?/SPAN>

1.4.1    X$?/SPAN>

关于X$表,其创Z息我们也可以从数据字怸一H究竟?/SPAN>

首先我们考察bootstrap$表,该表中记录了数据库启动的基本及驱动信息?/SPAN>

 

SQL> select * from bootstrap$;

     LINE#       OBJ# SQL_TEXT

------------------------------------------------------------------------------

        -1         -1 8.0.0.0.0

         0          0 CREATE ROLLBACK SEGMENT SYSTEM STORAGE (  INITIAL 112K NEXT 1024K MINEXTENTS 1 M

         8   8 CREATE CLUSTER C_FILE#_BLOCK#("TS#" NUMBER,"SEGFILE#" NUMBER,"SEGBLOCK#" NUMBER)

         9          9 CREATE INDEX I_FILE#_BLOCK# ON CLUSTER C_FILE#_BLOCK# PCTFREE 10 INITRANS 2 MAXT

        14         14 CREATE TABLE SEG$("FILE#" NUMBER NOT NULL,"BLOCK#" NUMBER NOT NULL,"TYPE#" NUMBE

         5         5 CREATE TABLE CLU$("OBJ#" NUMBER NOT NULL,"DATAOBJ#" NUMBER,"TS#" NUMBER NOT NULL

         6         6 CREATE CLUSTER C_TS#("TS#" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 2 MAXTRANS 255

         7         7 CREATE INDEX I_TS# ON CLUSTER C_TS# PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (

....

 

q部分信息,在数据库启动时最先被加蝲Q跟t数据库的启动过E,我们发现数据库启动的W一个动作就?/SPAN>:

 

create table bootstrap$ ( line#         number not null,   obj#

  number not null,   sql_text   varchar2(4000) not null)   storage (initial

  50K objno 56 extents (file 1 block 377))

 

 

q部分代码是写在Oracle应用E序中的Q在内存中创Zbootstrap$以后Q?/SPAN>Oracle可以从file 1,block 377上读取其他信息,创徏重要的数据库对象。从而根据这一部分信息启动数据库,q就实现了数据库的引|cM于操作系l的初始化?/SPAN>

q部分你可以参?/SPAN>biti_rainy的文章?/SPAN>

 

X$表由此徏立。这一部分表可以从v$fixed_table中查刎ͼ

 

SQL> select count(*) from v$fixed_table where name like 'X$%';

  COUNT(*)

----------

       394 

 

共有394?/SPAN>X$对象被记录?/SPAN>

1.4.2    GV$?/SPAN>V$视图

X$表徏立以后,ZX$表的GV$?/SPAN>V$视图得以创徏?/SPAN>

 

q部分视图我们也可以通过查询V$FIXED_TABLE得到?/SPAN>

 

SQL> select count(*) from v$fixed_table where name like 'GV$%';

  COUNT(*)

----------

       259

 

q一部分?/SPAN>259个对象?/SPAN>

 

SQL> select count(*) from v$fixed_table where name like 'V$%';

  COUNT(*)

----------

       259 

 

同样?/SPAN>259个对象?/SPAN>

 

v$fixed_tablep录了:

394 + 259 + 259 ?/SPAN> 912 个对象?/SPAN>

 

我们通过V$PARAMETER视图来追t一下数据库的架?/SPAN>:

 

SQL> select view_definition from v$fixed_view_definition a where a.VIEW_NAME='V$PARAMETER';

VIEW_DEFINITION

------------------------------------------------------------------------------

select  NUM , NAME , TYPE , VALUE , ISDEFAULT , ISSES_MODIFIABLE , ISSYS_MODIFIA

BLE , ISMODIFIED , ISADJUSTED , DESCRIPTION, UPDATE_COMMENT from GV$PARAMETER wh

ere inst_id = USERENV('Instance')

 

 

我们看到V$PARAMETER是由GV$PARAMETER创徏的?/SPAN>

 

SQL> select view_definition from v$fixed_view_definition a where a.VIEW_NAME='GV$PARAMETER';

VIEW_DEFINITION

-----------------------------------------------------------------------------

select x.inst_id,x.indx+1,ksppinm,ksppity,ksppstvl,ksppstdf,  decode(bitand(kspp

iflg/256,1),1,'TRUE','FALSE'),  decode(bitand(ksppiflg/65536,3),1,'IMMEDIATE',2,

'DEFERRED',                                  3,'IMMEDIATE','FALSE'),  decode(bit

and(ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE'),  decode(bitand(ksppstvf,2)

,2,'TRUE','FALSE'),  ksppdesc, ksppstcmnt  from x$ksppi x, x$ksppcv y where (x.i

ndx = y.indx) and  ((translate(ksppinm,'_','#') not like '#%') or (ksppstdf = 'F

ALSE'))

 

在这里我们看?/SPAN>GV$PARAMETER来源?/SPAN>x$ksppi,x$ksppcv两个X$表?/SPAN> x$ksppi,x$ksppcv 基本上包含所有数据库可调整参敎ͼv$parameter展现的是不包?/SPAN>"_"开头的参数。以"_"开头的参数我们通常UCؓ隐含参数Q一般不修改Q但很多因ؓ功能强大l常使用而广Zh知?/SPAN>

 



W笨 2005-03-20 22:14 发表评论
]]>
oracle的select for updatehttp://www.tkk7.com/kapok/archive/2005/03/08/1849.htmlW笨W笨Tue, 08 Mar 2005 14:13:00 GMThttp://www.tkk7.com/kapok/archive/2005/03/08/1849.htmlhttp://www.tkk7.com/kapok/comments/1849.htmlhttp://www.tkk7.com/kapok/archive/2005/03/08/1849.html#Feedback1http://www.tkk7.com/kapok/comments/commentRss/1849.htmlhttp://www.tkk7.com/kapok/services/trackbacks/1849.html
在多数情况下Q提取@环中所完成的处理都会修改由游标查出的行QPL/SQL提供了进行这样处理的一U语法?
q种语法包括两部分——在游标声明部分的FOR UPDATE子句和在UPDATE或DELETE语句中的WHERE CURRENT OF 子句?
通常QSELECT操作不会对正处理的行执行Q何锁定设|,q得连接到该数据库的其他会话可以改变正在选择的数据?
但是Q结果集仍然是一致性的。当定了活动集以后Q在执行OPEN的时刻,ORACLE会截取下该表的一个快照。在此时M前所提交的Q何更Ҏ作都会在zd集中反映出来。在此时M后所q行的Q何更Ҏ作,即已经提交了它们,都不会被反映出来Q除非将该游标重新打开。但是用FOR UPDATE子句Q在OPENq回以前的活动集的相应行上会加上互斥锁,q些锁会避免其他的会话对zd集中的行q行更改。直到整个事务被提交为止?

CZQ?
DECLARE
CURSOR C_CUR IS SELECT * FROM STUDENDS FOR UPDATE OF XM;
BEGIN
OPEN C_CUR;
WHILE C_CUR%FOUND LOOP

UPDATE STUDENDS SET XM='AA'||XM WHERE CURRENT OF C_CUR;

END LOOP;
CLOSE C_CUR;
COMMIT;
END;


需要注意的是:1、UPDATE语句仅更新在游标声明的FOR UPDATE子句处列出的列。如果没有列ZQ何列Q那么所有的列都可以更新?
2、示例中的COMMIT是在提取循环完成以后才完成的Q因为COMMIT释攄该会话持有的所有锁。因为FOR UPDATE子句获得了锁Q所以COMMIT释放这些锁。当锁释放了Q该游标无效了。所以后l的提取操作都将q回ORACLE错误?/TD>

W笨 2005-03-08 22:13 发表评论
]]>
վ֩ģ壺 ޾ƷVAƬ߲| պa| èwww˳| ҳַѹۿ| ŷ޹ڸ| Ůվѿվ| ؼëƬȫѲ| ޹һӰ| Ƶ| ŮһͰһһƵ| Ƶ߹ۿƵ| ֳִӲƵ | Ļ| 츾xxxxx| ˾Ʒҹ侫պ| ߹ۿĶ| žѾþоƷ23| ޹ģ߲| պһ| ޶߹ۿ| պƷרվ| պĻۺ | 84paoǿѸ | ëƬ߹ۿַ| ػɫĴƬۿƵ | þ99ȾƷѹۿ | þù׾Ʒһ| ҹҹˬ| Ů˳Ժ˾޸| ҹƷ| ҹ³˿ƬAV| Ӱɫۺ| þø߳һëƬ| ۺһ | պƷƷƵ߹ۿ| va޵Ӱ| | ŷ޵һa߹ۿ| ˳ɵӰվɫwww| ĻӰԺ| ŷaѹۿ|