??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品一区二区日韩,香蒸焦蕉伊在线,懂色av一区http://www.aygfsteel.com/freeman1984/category/38740.htmlSTANDING ON THE SHOULDERS OF GIANTS zh-cnMon, 05 Jun 2017 06:15:04 GMTMon, 05 Jun 2017 06:15:04 GMT60oracle 索引字段包含datecdQ用spring jdbc更新时不走烦引,而是走table access full的问?/title><link>http://www.aygfsteel.com/freeman1984/archive/2015/11/15/428197.html</link><dc:creator>疯狂</dc:creator><author>疯狂</author><pubDate>Sat, 14 Nov 2015 16:04:00 GMT</pubDate><guid>http://www.aygfsteel.com/freeman1984/archive/2015/11/15/428197.html</guid><wfw:comment>http://www.aygfsteel.com/freeman1984/comments/428197.html</wfw:comment><comments>http://www.aygfsteel.com/freeman1984/archive/2015/11/15/428197.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/freeman1984/comments/commentRss/428197.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/freeman1984/services/trackbacks/428197.html</trackback:ping><description><![CDATA[     摘要: oracle 索引字段包含datecdQ用spring jdbc更新时不走烦引,而是走table access full的问?nbsp; <a href='http://www.aygfsteel.com/freeman1984/archive/2015/11/15/428197.html'>阅读全文</a><img src ="http://www.aygfsteel.com/freeman1984/aggbug/428197.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/freeman1984/" target="_blank">疯狂</a> 2015-11-15 00:04 <a href="http://www.aygfsteel.com/freeman1984/archive/2015/11/15/428197.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(?Oracle数据库如何授权收费(Database LicensingQ?http://www.aygfsteel.com/freeman1984/archive/2014/10/27/419097.html疯狂疯狂Mon, 27 Oct 2014 08:43:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2014/10/27/419097.htmlhttp://www.aygfsteel.com/freeman1984/comments/419097.htmlhttp://www.aygfsteel.com/freeman1984/archive/2014/10/27/419097.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/419097.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/419097.html
说白了,Oracle License是一张纸Q一张许可证。这跟许多Y件品是一LQ有没有许可证的产品在功能上是没有区别的Q仅仅是一个法律问题。也是_随便到网上下的Oracle都可以免Ҏ怋用,只不q这个用是有区别的Q如果是试或研发,那没关系Q随便用Q如果是用于商业用途,那就是违法的了,Oracle公司有权赯Q?/span>

 

与免费的下蝲版本不同Q正式版的Oracle在购买后Q用户会得到一个品服务码Q凭此Oracle服务码,可以得到Oracle的在U升U等服务QOracle的服务分为好多Q不同别提供相对应的在U或是现场服务?/span>

 

现在Oracle有两U授权方式,按CPU(Process)数和按用h(NamedUser Plus)?/strong>前一U方式一般用于用h不确定或者用h量很大的情况Q典型的如互联网环境Q而后一U则通常被用于用h定或者较的情况?/span>

 

按CPUQ?/strong>License?CPU?pL。系数来自Oracle的一个参数表Q如IBM Power6的处理器?QAMD和Intel的处理器?.5Q详l情况见下:

参数

处理器型?/span>

0.25

Sun UltraSPARC T1 处理?/span>

0.50

Sun UltraSPARC T1处理?/span>

0.50

Intel、AMD处理?/span>

0.50

Sun UltraSPARC T2+ 处理?/span>

1.00

IBM POWER6、POWER7 处理?/span>

0.75

其他多核处理?/span>

1.00

单核处理?/span>

则根据公式可以算出,一个SUN UltraSparc T1?*8核处理器需?*8*0.25=8个CPU licenses

 

按用hQ?/strong>Oracle数据库按照用h授权Q是指最l端的连接到Oracle数据库的用户数。按照用h来买的时候只能用于一个系l,不允许在多台机器上安装。每一个访问Oracle数据库的用户Q无论是自然是设备,都算作一个用?(Named User)。如果是B/S架构Q那么是指连接到中间件上的用h?/span>

 

Named User Plus: is defined as anindividual authorized by you to use the programs which are installed on a singleserver or multiple servers, regardless of whether the individual is activelyusing the programs at any given time. A non human operated device will becounted.

 

按用h购买则对应相应的产品有对应的License的最低购买量限制Q如下:

产品

最低License?/span>

Oracle Database Standard Edition ONE

5 Named User Plus licenses

Oracle Database Standard Edition

5 Named User Plus licenses

Oracle Database Enterprise Edition

25 Named User Plus licenses per CPU

Oracle Application Server Standard Edition ONE

5 Named User Plus licenses

All other Oracle Application Server products

10 Named User Plus licenses per CPU

当然用户应该Ҏ自己的实际用h订购Q且不少于相应版本所要求的最低用h?/span>

一般情况下Q?CPU的费用约{于50user的费用,所以如果用h>CPU?pL*50Q则按CPU订购反而更为经?/strong>

 

更换服务器,OracleLicense要重新购买吗Q?/strong>

如果用户是按照用h购买的OracleQ更改硬件不需要重新购买LicenseQ?/span>

如果是按照CPU个数乎ͼ有相应的换算ҎQ具体请咨询Oracle公司?/span>

 

q里是Oracle 11g企业版的销售h|

每个Licenseq有有效期的分类Q不论是User Licenseq是CPU LicenseQ,分别为:1q?q?q?q?q、永久。当然hg是依ơ增加?/span>

 

当前Oracle 11G的User License无限使用期的hZh民币3?左右Q按50个User License无限使用期的购买量则h?7.5?每个CPU License无限使用期的h?7?千,按IBM机的系数计,则购Chgؓ17?千,?0个User License的h格相q?/span>

 

关于服务hQ一般地Q购买Oracle的License都包含首q的服务费,以后的费用按每年原h?2%计算?/span>

 

更多的品h格可以访问http://shop.oracle.com查看?/span>


q里我们再介l一下如何查看服务器上物理CPUL以及核数Q?/strong>

a.如果已安装了数据库实例,那么直接查看V$license视图卛_:

SQL> select cpu_count_current,CPU_CORE_COUNT_CURRENT,CPU_SOCKET_COUNT_CURRENT from v$license;

CPU_COUNT_CURRENT CPU_CORE_COUNT_CURRENT CPU_SOCKET_COUNT_CURRENT
----------------- ---------------------- ------------------------
                2                      2                        1
以上通过v$license 视图反应了数据库服务器当前的逻辑CPUL?Q而ȝ核数也是2Q实际的物理CPU Socket?Q那么说明是1个双核的物理CPU?/span>


b. 如果服务器上没有部|实例则不能使用v$license视图Q那么可以通过OS 命o来获取必要的信息?/span>

在x86 Linux服务器上Q?/span>


列出当前使用的物理CPU的个敎ͼ

grep core\ id /proc/cpuinfo | grep -c \ 0$ | grep ^0$ >> /dev/null && grep -c processor /proc/cpuinfo || \
grep core\ id /proc/cpuinfo | grep -c \ 0$

列出单个物理CPU的核?

grep "cpu cores" /proc/cpuinfo |uniq

 

 

在Powerpd的IBM机上按照cpu模块方式来购乎ͼ在IBM Dual-Core ModuleQ双核模块)的power芯片上,一个双核模块(内含2颗物理cpuQ只需要购?.5个license Q?具体的模块类型可以咨询IBM厂家或者集成商?br />
转自Q?a >http://blog.csdn.net/eurasiaxz/article/details/10699869

当然随着cpu计算能力的提高,cpu个数有可能ƈ不需要太多。oracle的收Ҏ式肯定会变化?/p>

疯狂 2014-10-27 16:43 发表评论
]]>
ORA-06548错误http://www.aygfsteel.com/freeman1984/archive/2013/11/28/406952.html疯狂疯狂Thu, 28 Nov 2013 08:44:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2013/11/28/406952.htmlhttp://www.aygfsteel.com/freeman1984/comments/406952.htmlhttp://www.aygfsteel.com/freeman1984/archive/2013/11/28/406952.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/406952.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/406952.html原因Q有可能是通过pl/sql{客L执行道输出函数QpipelinedQ造成Qpl/sql客户端一般不会显C全部结果,道输出挂v?

疯狂 2013-11-28 16:44 发表评论
]]>
ora-01031:insufficient privilegeshttp://www.aygfsteel.com/freeman1984/archive/2013/09/04/403674.html疯狂疯狂Wed, 04 Sep 2013 12:03:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2013/09/04/403674.htmlhttp://www.aygfsteel.com/freeman1984/comments/403674.htmlhttp://www.aygfsteel.com/freeman1984/archive/2013/09/04/403674.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/403674.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/403674.html如果密码文g存在的话Q\径:$ORACLE_HOME/dbs/Q,L看密码文Ӟ格式Qorapw$ORACLE_SIDQ里面sid和当前ORACLE_SID大小写是否一致。必Mh行?br />不一h用mv 修改成一L。即可?br />
相关文章参考?br />
http://www.xifenfei.com/2025.html

疯狂 2013-09-04 20:03 发表评论
]]>
dbcp重连(? http://www.aygfsteel.com/freeman1984/archive/2013/06/06/400263.html疯狂疯狂Thu, 06 Jun 2013 01:38:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2013/06/06/400263.htmlhttp://www.aygfsteel.com/freeman1984/comments/400263.htmlhttp://www.aygfsteel.com/freeman1984/archive/2013/06/06/400263.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/400263.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/400263.html转自Q?a >http://lc87624.iteye.com/blog/1734089

 

使用数据库连接池Ӟ免不了会遇到断网、数据库挂掉{异常状况,当网l或数据库恢复时Q若无法恢复q接池中的连接,那必然会是一场灾难?

关于dbcp的自动重q配|,|上相关的资料也不少Q通过以下资料Qƈ对照官方文档中的参数说明Q大致能了解各项配置的含义,我就不冗诉了Q本文的目的主要是对问题排查的经q做个简单的记录?
参考资料:

试环境Q?
  • dbcp版本——1.4
  • 数据?#8212;—postgresSQL 9.10Q简UpgQ?/li>
  • 本地(以下UCؓclient)操作pȝ及数据库服务?以下UCؓserver)操作pȝ均ؓlinux
  • server位于内网环境Qclient需要通过vpn或网U直q内|才能访问数据库

首先模拟的是断网的情?/strong>
在本地测试dbcp的重q配|时Q发现断|后Q连接池无法重徏q接Q分别试qtestOnBorrow和testWhileIdle两种validate方式Q都没能解决Q现象如下:
1. 正常启动应用Q在server端通过"select * from pg_stat_activity"查看q接敎ͼ会有initialSize个来自client的IDLEq接?#8212;—正常
2. 在client端执行各U查询操作,q接C持不变,且在server端的db log中能看到validate query?#8212;—正常
3. 手动切断vpnQclient与server断开Q查询无法返回结果;然后重连Q再ơ查看连接数Q连接数仍保持不变,且连接的创徏旉为断|前Q即是说q接池认Z前的q接仍然有效Q没有销毁旧q接&创徏新连接?
4. 此时在应用中执行各种查询操作Q均无响应,{待一D|间后Q分钟Q,时抛出异常Q?
Caused by: org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.
Caused by: java.net.SocketException: Connection timed out.
5. l箋通过"select * from pg_stat_activity"查看q接敎ͼ隔一D|间后Q连接消失?

问题Q?/strong>断网后,仍留在线E池内的q接是否有效Q若有效Qؓ什么网l恢复后查询无响应?若无效,ZU程池没有发现ƈ重新创徏有效q接Q?
排查q程Q?/strong>
1.重连vpn后,通过netstat查看client至server的连?
Java代码  
  1. sudo netstat -antop | grep :5432  | grep java  
注:5432为pg端口Qgrep java是ؓ了过滤client上的其他形式的连接?/em>
发现q接数和在server端看到的q接C_且均为ESTABLISH状态?
2. 但在client上执行查询时Q通过tcpdump查看client发往server的tcphQƈ无Q何请求生?
Java代码  
  1. sudo tcpdump -s 65535 -X -i eth0 host xxx.xxx.xxx  
可见当前U程池中的连接实际上已经失效了,但dbcp仍认为它是有效的Q因此仍在尝试用旧连接访问数据库Q直至网l超时?

于是Q开始怀疑是vpn的问题,client接上|线直连内网后,再次重试上述步骤Q只是把断网的方式由切断vpn换成了拔|线Q发现这ơ用断|前的连接能够正常访问数据库Q于是断定是vpn的问题,猜测是重qvpn后,虽然client端ip没有变,但\q路径已经变了Q之前的q接无法复用Q但dbcpq不知道。对|络l节不是太熟悉,׃多加揣测了?

接下来模拟数据库断开clientq接的情?/strong>
׃pg采用的是q程模型Q与数据库徏立的每一个连接都是单独的一个进E,故尝试采用killq程的方式模拟数据库断开q接?
预期的结果是Qkill掉一个连接进E后Qdbcp通过validate query发现该连接失效,销毁该q接q新创建新q接?
但实际情늡是:kill掉一个连接后Q所有连接全部被销毁?
问题Q?/strong>I竟是数据库q是dbcp销毁了所有连?
排查q程Q?/strong>
熟悉pg的同事认为pg之所以采用进E模型,是Z避免q接之间的媄响,因此不可能发生kill一个连接,其他q接也被销毁的情况。在q个理论前提下,问题变得很诡异Q因为dbcp的validate肯定是针对一个连接的Q也不可能会在validate一个连接失效的情况下销毁所有连接,于是想偏Q甚臛_始怀疑是pg的jdbc driver有问题,最l放弃了q?
但我总觉得有点不太对Ԍ于是推翻之前的前提,开始怀疑是pg销毁了所有连接。于是,在用连接池的应用之外,通过pg的数据库客户端psqlq接dbQ这徏立了一个与dbcp无关的连接,接着l箋在server端kill了一个连接池中的q接Q而发现psql创徏的连接也被销毁了Q这p定是pg在销毁连接,因ؓdbcp不可能控制自w范围之外的q接?
后来才知道,pg之所以会q么做,是因为我们killq接时用的是kill -9Q简U?杀Q,9杀太过_暴Qpg会重启很多内部进E,以保证所有进E正常,之前的连接也会丢失Q换用普通的kill命oQ则不会发生以上情况。可?杀很多情况下是十分危险的,试想一个线上dbQ若?杀一个连接,后果不堪设想。。?

ȝ
说是dbcp问题排查Q但大家可以看到最l问题的Ҏ都跟dbcp没有什么关pR实际工作中的很多问题,兌的因素众多,需要有各方面的知识储备才能扑ֈ真正问题ҎQ否则就会把问题归结C个自׃太了解的领域?
另外Q看?a target="_blank">dbcp基本配置和重q配|?/a>q篇文章中对q接池重q有两句不错的ȝQ引用一下:
引用
1. 数据库意外重启后Q原先的数据库连接池能自动废弃老的无用的链接,建立新的数据库链?
2. |络异常中断后,原先的徏立的tcp链接Q应该能q行自动切换


最后附上测试用的dbcp配置?
testOnBorrow配置Q?
Xml代码  
  1. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
  2.         <property name="driverClassName" value="${jdbc.driver}" />  
  3.         <property name="url" value="${jdbc.url}"/>  
  4.         <property name="username" value="${jdbc.user}" />  
  5.         <property name="password" value="${jdbc.passwd}" />  
  6.         <property name="removeAbandoned" value="true"/>  
  7.           <property name="initialSize" value="10" />  
  8.           <property name="maxIdle" value="10" />  
  9.           <property name="minIdle" value="10" />  
  10.            <property name="maxActive" value="30" />  
  11.            <property name="maxWait" value="30000" />  
  12.            <property name"testWhileIdle" value="false" />  
  13.         <property name"testOnBorrow" value="true" />  
  14.         <property name"testOnReturn" value="false" />  
  15.         <property name"validationQuery" value="select 1" />  
  16.         <!-- <property name= "validationQueryTimeout" value="1" /> 配置已失?->  
  17.     </bean>  
testWhileIdle配置Q?
Xml代码  
  1. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
  2.         <property name="driverClassName" value="${jdbc.driver}" />  
  3.         <property name="url" value="${jdbc.url}"/>  
  4.         <property name="username" value="${jdbc.user}" />  
  5.         <property name="password" value="${jdbc.passwd}" />  
  6.         <property name="removeAbandoned" value="true"/>  
  7.           <property name="initialSize" value="10" />  
  8.           <property name="maxIdle" value="10" />  
  9.           <property name="minIdle" value="10" />  
  10.            <property name="maxActive" value="30" />  
  11.            <property name="maxWait" value="30000" />  
  12.            <property name"testWhileIdle" value="true" />  
  13.         <property name"testOnBorrow" value="false" />  
  14.         <property name"testOnReturn" value="false" />  
  15.         <property name"validationQuery" value="select 1" />  
  16.         <!-- <property name= "validationQueryTimeout" value="1" /> 配置已失?->  
  17.         <property name"timeBetweenEvictionRunsMillis" value="30000" />  
  18.         <property name"numTestsPerEvictionRun" value="30" />  
  19.         <property name="minEvictableIdleTimeMillis" value="1800000" />  
  20.     </bean>  
注:testOnBorrow只会发现当前q接失效Q再创徏一个连接供当前查询使用Q而testWhileIdle会定时校验numTestsPerEvictionRun个连接,只要发现q接失效Q就其U除再重新创建?

 



疯狂 2013-06-06 09:38 发表评论
]]>
11g oracle 用户密码q期问题http://www.aygfsteel.com/freeman1984/archive/2013/04/23/398301.html疯狂疯狂Tue, 23 Apr 2013 09:25:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2013/04/23/398301.htmlhttp://www.aygfsteel.com/freeman1984/comments/398301.htmlhttp://www.aygfsteel.com/freeman1984/archive/2013/04/23/398301.html#Feedback1http://www.aygfsteel.com/freeman1984/comments/commentRss/398301.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/398301.html阅读全文

疯狂 2013-04-23 17:25 发表评论
]]>
ERROR 1049 (42000): Unknown database 'root' 处理http://www.aygfsteel.com/freeman1984/archive/2013/03/29/397132.html疯狂疯狂Fri, 29 Mar 2013 03:01:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2013/03/29/397132.htmlhttp://www.aygfsteel.com/freeman1984/comments/397132.htmlhttp://www.aygfsteel.com/freeman1984/archive/2013/03/29/397132.html#Feedback1http://www.aygfsteel.com/freeman1984/comments/commentRss/397132.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/397132.html命oQmysql  -u root -p root -P 8066 -v -S  /opt/app/DataBase/mysql.sock
报错QERROR 1049 (42000): Unknown database 'root'
解决办法Q?br />命o的密码参数部分:-p root 修改?proot 中间没有I格?br />
卛_Q?img src ="http://www.aygfsteel.com/freeman1984/aggbug/397132.html" width = "1" height = "1" />

疯狂 2013-03-29 11:01 发表评论
]]>
mysql 1130 错误 处理http://www.aygfsteel.com/freeman1984/archive/2013/03/29/397131.html疯狂疯狂Fri, 29 Mar 2013 02:57:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2013/03/29/397131.htmlhttp://www.aygfsteel.com/freeman1984/comments/397131.htmlhttp://www.aygfsteel.com/freeman1984/archive/2013/03/29/397131.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/397131.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/397131.html解决q程q接mysql错误1130代码的方?
转自Q?a >http://hi.baidu.com/qkcan/item/1527cf08663d388803ce1be2。其中加_的部分必须执行

今天在用q程q接Mysql服务器的数据库,不管怎么弄都是连接不刎ͼ错误代码?130QERROR 1130: Host 192.168.2.159 is not allowed to connect to this MySQL server
猜想是无法给q程q接的用h限问题。结果这样子操作mysql库,卛_解决。在本机dmysql后,更改 “mysql” 数据库里?“user” 表里?“host” ,?#8221;localhost”改称'%'。?br />mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host'   from user where user='root';
W一句是以权限用户rootd
W二句:选择mysql?br />W三句:查看mysql库中的user表的host|卛_q行q接讉K的主?IP名称Q?br />W四句:修改host|以通配W?的内容增加主?IP地址Q,当然也可以直接增加IP地址
W五句:hMySQL的系l权限相兌
W六句:再重新查看user表时Q有修改。?br />重vmysql服务卛_完成?

 

============================

一、通过MySQL-Front或mysql administratorq接mysql的时候发生的q个错误

ERROR 1130: Host ***.***.***.*** is not allowed to connect to this MySQL server

说明所q接的用户帐h有远E连接的权限Q只能在本机(localhost)d?br />
需更改 mysql 数据库里?user表里?host?br />把localhost改称%

首先按下面的步骤dMysql服务?br />
dmysql需要切换到dos下的mysql的bin目录Q进行如下操作:

语法格式Qmysql -h host_name -u user_name -p password   Q本机的?h 和host_name可省Q?br />
例如Q?br />
C:\program files\mysql\mysql server 5.0\bin>mysql -u root -p
Enter password:******
先输入用户名和密码登陆要求(-pQ,回R后等出现"Enter password:"Q再输入密码回RQ这样就可以
成功登陆mysqlQ否则将会登陆失败?br />
登陆成功后会昄如下信息及Mysql标识W:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.1-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>


标识W?mysql>"Q当你看到这个出现在H口的最左边的顶格时Q这是告诉你,你可以输入命令进行操作了?br />
mysql> \s 查看版本信息
mysql> \q or mysql> quit 退出mysql数据库服务器
mysql> \h or mysql> help 查看帮助Q其他的数据库服务器相关命oQ?br />
二、登录成功后可通过以下步骤对用戯行权限更?br />
mysql>use mysql;

mysql>update user set host = '%'   where user ='root';

mysql>flush privileges;

mysql>select 'host','user' from user where user='root';

mysql>quit


退出后会回到DOS正常的提C符状态,此时可以通过q程q接Mysql了!

 

 

========================================

 

 

MySQL 用户帐号的修?error 11302007-09-07 09:18

MySQL上的一个数据库要备份,装了个MySQL的gui工具。打开"MySQL Administrator"工具Q填好用户名和密码却d不了Q老是报这个错“ERROR 1130: Host 'lijuan-' is not allowed to connect to this MySQL server”。网上查了下Q有q两个方法解冻I 解决ҎQ?br />1?改表法。可能是你的帐号不允总q程登陆Q只能在localhost。这个时候只要在localhost的那台电脑,dmysql后,更改 "mysql" 数据库里?"user" 表里?"host" ,?localhost"改称"%"
mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;
2. 授权法。例如,你想myuser使用mypassword从Q何主接到mysql服务器的话?
GRANT ALL PRIVILEGES ON *.* TO IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 如果你想允许用户myuser从ip?92.168.1.3的主接到mysql服务器,q用mypassword作ؓ密码 GRANT ALL PRIVILEGES ON *.* TO IDENTIFIED BY 'mypassword' WITH GRANT OPTION;      我的mysql.user里root用户的host果然是localhostQ先用改表法llocalhostҎ“Q?#8221;Q还是不行,仍然?130的错误,又按“从Q何主接到mysql服务?#8221;Ҏ授权Q还是报一L错,最后给自己的ip授权之后Q终于登录上了。。。?

     乎乎。。?/p>

mysql的ERROR 1045 在上面情况后如再出现客户D?045可在服务器执行如?/p>

UPDATE user SET Password=PASSWORD('123456') where USER='myuser';
FLUSH PRIVILEGES;



疯狂 2013-03-29 10:57 发表评论
]]>
oracle ORA-39212异常http://www.aygfsteel.com/freeman1984/archive/2013/02/20/395438.html疯狂疯狂Wed, 20 Feb 2013 02:10:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2013/02/20/395438.htmlhttp://www.aygfsteel.com/freeman1984/comments/395438.htmlhttp://www.aygfsteel.com/freeman1984/archive/2013/02/20/395438.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/395438.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/395438.html阅读全文

疯狂 2013-02-20 10:10 发表评论
]]>
Spring jdbc(javacd和oraclecd的{?http://www.aygfsteel.com/freeman1984/archive/2013/01/06/393854.html疯狂疯狂Sun, 06 Jan 2013 03:09:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2013/01/06/393854.htmlhttp://www.aygfsteel.com/freeman1984/comments/393854.htmlhttp://www.aygfsteel.com/freeman1984/archive/2013/01/06/393854.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/393854.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/393854.htmlpublic int update(String sql, ...  阅读全文

疯狂 2013-01-06 11:09 发表评论
]]>
oracle BEQcd的进E?/title><link>http://www.aygfsteel.com/freeman1984/archive/2012/12/10/392735.html</link><dc:creator>疯狂</dc:creator><author>疯狂</author><pubDate>Mon, 10 Dec 2012 09:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/freeman1984/archive/2012/12/10/392735.html</guid><wfw:comment>http://www.aygfsteel.com/freeman1984/comments/392735.html</wfw:comment><comments>http://www.aygfsteel.com/freeman1984/archive/2012/12/10/392735.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/freeman1984/comments/commentRss/392735.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/freeman1984/services/trackbacks/392735.html</trackback:ping><description><![CDATA[<br /> <div style="line-height: 1.3" id="detail" class="detail"> <p> <div>最q有人问我这个问?我以前在国外的一个认坛上看到q方面的介绍,在sqlplus中输入conn / as sysdba,q时候由sqlplus启动一个服务器q程Q通过ps命o查看到这q个服务器进E的protocol=beq 而不是TCPQbeq是bequeath protocol的简Uͼ是一个sql*net protocol有点cM于IPC,仅仅是作为本地连接才能Q即客户机和服务器程序在同一个服务器上。beq可以在不需要listener的情况一下,建立一个专用连接。这个时候共享内存和信号灯都没有创徏?br />如下<br />oracle    4574  4573  0 17:05 ?        00:00:00 oracleslszy (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))<br /></div> <p>其他q程的连接集成显C如下:<br />oracle   23520     1  0 15:25 ?        00:00:00 oracleslszy (LOCAL=NO)</p></div><img src ="http://www.aygfsteel.com/freeman1984/aggbug/392735.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/freeman1984/" target="_blank">疯狂</a> 2012-12-10 17:13 <a href="http://www.aygfsteel.com/freeman1984/archive/2012/12/10/392735.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle 字符集的查看和修?/title><link>http://www.aygfsteel.com/freeman1984/archive/2012/10/15/389561.html</link><dc:creator>疯狂</dc:creator><author>疯狂</author><pubDate>Mon, 15 Oct 2012 03:37:00 GMT</pubDate><guid>http://www.aygfsteel.com/freeman1984/archive/2012/10/15/389561.html</guid><wfw:comment>http://www.aygfsteel.com/freeman1984/comments/389561.html</wfw:comment><comments>http://www.aygfsteel.com/freeman1984/archive/2012/10/15/389561.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/freeman1984/comments/commentRss/389561.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/freeman1984/services/trackbacks/389561.html</trackback:ping><description><![CDATA[     摘要: 转自Qhttp://www.cnblogs.com/rootq/articles/2049324.html一、什么是Oracle字符?       Oracle字符集是一个字节数据的解释的符号集?有大之?有相互的包容关系。ORACLE 支持国家语言的体pȝ构允怽使用本地化语a来存储,处理Q检索数据。它使数据库工具Q错误消息,排序...  <a href='http://www.aygfsteel.com/freeman1984/archive/2012/10/15/389561.html'>阅读全文</a><img src ="http://www.aygfsteel.com/freeman1984/aggbug/389561.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/freeman1984/" target="_blank">疯狂</a> 2012-10-15 11:37 <a href="http://www.aygfsteel.com/freeman1984/archive/2012/10/15/389561.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在RedHat 5下安装Oracle 10g详解(?http://www.aygfsteel.com/freeman1984/archive/2012/09/14/387718.html疯狂疯狂Fri, 14 Sep 2012 05:26:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2012/09/14/387718.htmlhttp://www.aygfsteel.com/freeman1984/comments/387718.htmlhttp://www.aygfsteel.com/freeman1984/archive/2012/09/14/387718.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/387718.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/387718.html一、安装环?/span>
我是在vmware里虚拟的RHEL5Q分配的内存1GQSWAP分区1GQ徏议你最好把SWAP分区Ҏ2G。否则安装时Q到了测试的步骤会提C监失败。(当然Q如果你安装一h问题Q?br />
二、安装Oracle 10g Release2 前的配置

1. 安装Oracle 10g R2所需的Y件包

# cd /mnt/cdrom/Server/
# rpm -Uvh setarch-2*
# rpm -Uvh make-3*
# rpm -Uvh glibc-2*
# rpm -Uvh libaio-0*
# rpm -Uvh compat-libstdc++-33-3*
# rpm -Uvh compat-gcc-34-3*
# rpm -Uvh compat-gcc-34-c++-3*
# rpm -Uvh gcc-4*
# rpm -Uvh libXp-1*
# rpm -Uvh openmotif22-*
# rpm -Uvh compat-db-4*

其中除了openmotif22-2.2.3-18和compat-db-4.2.52-5.1在第三张盘上Q其余的包都在第一张盘上?/p>

2. 修改/etc/redhat-release文g

因ؓOracle 10g官方只支持到RHEL4为止Q所以需要更改版本说明,~辑/etc/redhat-release文g,删除Red Hat Enterprise Linux Server release 5 (Tikanga)Q改为redhat-4

3.修改内核参数

#vi /etc/sysctl.conf

kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144

使更改立即生效,使用下面的命令:

#sysctl -p

4.建立安装Oracle需要的用户Q组Q及目录

#groupadd oinstall
#groupadd dba
#groupadd oper
#useradd -g oinstall -G dba oracle
#passwd oracle

#mkdir /oracle
#chown -R oracle:oinstall /oracle
#chmod -R 775 /oracle

安装oracle的目录徏议安装在一个单独的分区或者磁盘上?/p>

5.讄oracle用户的shell limit

#vi /etc/security/limits.conf    

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

接下来更?etc/pam.d/login文gQ添加下面的内容Qshell limit生效Q?/p>

#vi /etc/pam.d/login

session                  required                pam_limits.so

6.配置IP地址

安装RHEL的时候最好采用静态IP地址Q如果当旉择的是DHCPQ现在需要更?etc/sysconfig/network-scripts/ifcfg-eth0文g

[root@TSM54-Test network-scripts]# cat ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:0C:29:4B:17:C4
ONBOOT=yes
IPADDR=192.168.68.98
NETMASK=255.255.255.0
GATEWAY=192.168.68.10

 

7.配置oracle用户的环境变?/strong>

下面的操作,该用oracle用户登陆执行了?/p>

Z防止安装oracle时出Cؕ码,先把语言环境改ؓ英文,在终端里输入:

[oracle@TSM54-TEST ~]$export LC_CTYPE=en_US.UTF-8

接下来,~辑/home/oracle目录下的.bash_profile文gQ添加如下内容:

export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CLASSPATH


if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
                ulimit -p 16384
                ulimit -n 65536
        else
                ulimit -u 16384 -n 65536
        fi
fi

?安装Oracle 10g

我把10201_database_linux32.zip攑֜/opt目录下,q过

#unzip 10201_database_linux32.zip解压Q现在用oracle用户?opt/database目录下执行安?

[oracle@TSM54-Test opt]$ cd /opt/database/
[oracle@TSM54-Test database]$ ls
doc install response runInstaller stage welcome.html
[oracle@TSM54-Test database]$ ./runInstaller

1.选择安装cdQ这里我选择高安装,如下图所C:

2.指定证书存放目录Q如图所C:

3.选择安装的数据库cd及oracle所支持的语aQ这里选择企业?语言选择英文和简体中?如下图所C:

4.指定oracle环境变量Q安装\径。因为我们在.bash_profile中已l声明,所以这里会自动填充.如下图所C:

5.Oracle开始进行安装前的检查工作,如下图所C:

6.选择配置选项Q如下图所C:
7.选择创徏的数据库模式Q如下图所C:
8.指定数据库配|的相关选项QSID、字W集{)Q如下图所C:
9.选择数据库管理选项Q如下图所C:
10.指定数据库存储选项Q如下图所C:
11.指定数据库备份回复选项Q如下图所C:
12. 指定数据库相关用户密?如下图所C:
13.昄安装概要Q如下图所C:
14.开始安装,如下图所C:
15. 上面的窗口点击OK后,会出C图显C的内容Q?/div>
需要root权限执行
#/oracle/oraInventory/orainstRoot.sh
#/oracle/product/10.2.0/db_1/root.sh
16.安装l束Q如下图所C:
17.安装完成后,恢复语言环境以及版本信息
#export LC_CTYPE=zh_CN.UTF-8
#vi /etc/redhat-release
Red Hat Enterprise Linux Server release 5 (Tikanga)
四、后l?/span>
1.安装完成后,首先应该启动监听器?/strong>
监听器接受客L的连接请求,q在验证证书后创建数据库q接。要使用OEM或iSQL*PLUSQ必d启动监听器?/div>

[oracle@TSM54-Test database]$ lsnrctl start
[oracle@TSM54-Test database]$ lsnrctl stop

2.使用Oracle Enterprise Manager 10gq行数据库控?/strong>

启动和停止OEM的命令ؓQ?/p>

[oracle@TSM54-Test database]$emctl start dbconsole
[oracle@TSM54-Test database]$emctl stop dbconsole

 

在web览器中Q输入:

http://192.168.68.98:1158/em Q如果服务器没有q行DNS解析Q则可以用IP地址Q?/p>

用户名:SYS

口oQ?lt;安装q程中徏立的口o>

q接为:SYSDBA

3.使用iSQL*Plus讉K数据?/strong>

启动和停止iSQL*Plus命oQ?/p>

[oracle@TSM54-Test database]$isqlplusctl start
[oracle@TSM54-Test database]$isqlplusctl stop

iSQL*Plus是历史悠久的SQL*Plus交互式工LZweb的版本,用于讉K数据库。要使用iSQL*PlusQ请单击OEM控制台相兌接部分中的iSQL*Plus链接Q或浏览器指向安装q程中提供的iSQL*Plus URL?/p>

在web览器中Q输入:

http://192.168.68.98:5560/isqlplus

用户名:SYSTEM

口oQ?lt;安装q程中创建的口o>

q接标识Q?span style="color: rgb(0, 0, 255);">orcl

4.启动和停止数据库

启动和停止数据库的最单方法是?OEM 控制台启动和停止。要从命令行执行此操作,请在?oracle w䆾d后?SQL*PlusQ如下所C:

启动Q?/p>

$ sqlplus

SQL*Plus:Release 10.1.0.2.0 - Production on Sun Jun 13 22:27:48 2004

Copyright (c) 1982, 2004, Oracle.All rights reserved.

Enter user-name:/ as sysdba
Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area  188743680 bytes
Fixed Size                   778036 bytes
Variable Size             162275532 bytes
Database Buffers           25165824 bytes

Redo Buffers                 524288 bytes
Database mounted.
Database opened.
SQL> exit

Shutdown:

$ sqlplus

SQL*Plus:Release 10.1.0.2.0 - Production on Sun Jun 13 22:25:55 2004

Copyright (c) 1982, 2004, Oracle.All rights reserved.

Enter user-name:/ as sysdba

Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
注:本文的图是借用?a >http://www.ouyaoxiazai.com/article/24/239.html里的囄?/pre>
五、卸载ORACLE
1. q行 $ORACLE_HOME/bin/localconfig delete
2. rm -rf $ORACLE_BASE/*
3. rm -f /etc/oraInst.loc /etc/oratab
4. rm -rf /etc/oracle
5. rm -f /etc/inittab.cssd
6. rm -f /usr/local/bin/coraenv /usr/local/bin/dbhome /usr/local/bin/oraenv
7. 删除oracle用户和组?/div>
注:卸蝲Ҏ是来自google。我曄此方法删除oracle 11gQ安?1的时候选择的是ASMQ?/div>
六、关于Oracle 11g Release 1 的安?/strong>
Oracle 11gR1 已经支持RHEL5了,所以不用再更改redhat-release文g?/div>
另外安装所依赖的包有如下:

      binutils-2.17.50.0.6-2.el5
      compat-libstdc++-33-3.2.3-61
      elfutils-libelf-0.125-3.el5
      elfutils-libelf-devel-0.125
      glibc-2.5-12
      glibc-common-2.5-12
      glibc-devel-2.5-12
      gcc-4.1.1-52
      gcc-c++-4.1.1-52
      libaio-0.3.106
      libaio-devel-0.3.106
      libgcc-4.1.1-52
      libstdc++-4.1.1
      libstdc++-devel-4.1.1-52.e15
      make-3.81-1.1
      sysstat-7.0.0
      unixODBC-2.2.11
      unixODBC-devel-2.2.11

其它的步骤就跟安装Oracle 10gR2 没有什么区别了?/p>

疯狂 2012-09-14 13:26 发表评论
]]>xhost: unable to open display linux下安装oracle (?http://www.aygfsteel.com/freeman1984/archive/2012/05/22/378848.html疯狂疯狂Tue, 22 May 2012 08:02:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2012/05/22/378848.htmlhttp://www.aygfsteel.com/freeman1984/comments/378848.htmlhttp://www.aygfsteel.com/freeman1984/archive/2012/05/22/378848.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/378848.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/378848.html1?nbsp;以root用户d

输入命oxdpyinfoQ记录下里面的name of displayQ后的字W串Q如 name of displayQ?27.0.0.1Q?.0

在执行xhost +命oQ得所有客户都可以讉KQ?/p>

q回信息为:
access control disabled,clients can connect from any host

如果xhost +不能执行Q可以输入命令export DISPLAY=:0执行一?/p>

再执行xhost +

xhost + ip Qname表示那个ip机器可以使用该服务)

2、以oracle用户d

如果前面rootd下执行xdpyinfo后的name of display:后的字符串是127.0.0.1:1.0

那么在该oracle用户下执行一下export DISPLAY=:1.0

然后再执行xdpyinfo命oQ如果能出现信息说明你已l成功了

q样估计可以解决linux下安装oracle出现的xhost问题



虚拟Z试成功
转自Q?a >http://blog.csdn.net/lishamao/article/details/6886025

疯狂 2012-05-22 16:02 发表评论
]]>
Oracle局部烦引和全局索引http://www.aygfsteel.com/freeman1984/archive/2012/05/08/377616.html疯狂疯狂Tue, 08 May 2012 07:35:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2012/05/08/377616.htmlhttp://www.aygfsteel.com/freeman1984/comments/377616.htmlhttp://www.aygfsteel.com/freeman1984/archive/2012/05/08/377616.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/377616.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/377616.html

表可以按rangeQhashQlist分区Q表分区后,其上的烦引和普通表上的索引有所不同Qoracle对于分区表上的烦引分?c,卛_部烦引和全局索引Q下面分别对q?U烦引的特点和局限性做个ȝ?
局部烦引local index
1.  局部烦引一定是分区索引Q分区键{同于表的分区键Q分区数{同于表的分Q一句话Q局部烦引的分区机制和表的分区机制一栗?
2.  如果局部烦引的索引列以分区键开_则称为前~局部烦引?
3.  如果局部烦引的列不是以分区键开_或者不包含分区键列Q则UCؓ非前~索引?
4.  前缀和非前缀索引都可以支持烦引分区消除,前提是查询的条g中包含烦引分区键?
5.  局部烦引只支持分区内的唯一性,无法支持表上的唯一性,因此如果要用局部烦引去l表做唯一性约束,则约束中必须要包括分区键列?
6.  局部分区烦引是对单个分区的Q每个分区烦引只指向一个表分区Q全局索引则不Ӟ一个分区烦引能指向n个表分区Q同Ӟ一个表分区Q也可能指向n个烦引分区,
对分中的某个分区做truncate或者moveQshrink{,可能会媄响到n个全局索引分区Q正因ؓq点Q局部分区烦引具有更高的可用性?
7.  位图索引只能为局部分区烦引?
8.  局部烦引多应用于数据仓库环境中?
全局索引global index
1.  全局索引的分区键和分区数和表的分区键和分区数可能都不相同Q表和全局索引的分区机制不一栗?
2.  全局索引可以分区Q也可以是不分区索引Q全局索引必须是前~索引Q即全局索引的烦引列必须是以索引分区键作为其前几列?
3.  全局分区索引的烦引条目可能指向若q个分区Q因此,对于全局分区索引Q即使只动,截断一个分Z的数据,都需要rebulid若干个分区甚
x整个索引?
4.  全局索引多应用于oltppȝ中?
5.  全局分区索引只按范围或者散列hash分区Qhash分区?0g以后才支持?
6.  oracle9i以后对分做move或者truncate的时可以用update global indexes语句来同步更新全局分区索引Q用消耗一定资源来换取高度的可用性?
7.  表用a列作分区Q烦引用b做局部分区烦引,若where条g中用b来查询,那么oracle会扫描所有的表和索引的分区,成本会比分区更高Q此时可以考虑用b做全局分区索引

分区索引字典
DBA_PART_INDEXES 分区索引的概要统计信息,可以得知每个表上有哪些分区烦引,分区索引的类?local/global,)
Dba_ind_partitions每个分区索引的分区l计信息
Dba_indexesminusdba_part_indexesQ可以得到每个表上有哪些非分区烦?
索引重徏
Alter index idx_name rebuild partition index_partition_name [online nologging]
需要对每个分区索引做rebuildQ重建的时候可以选择online(不会锁定?,或者nologging建立索引的时候不生成日志Q加快速度?
Alter index rebuild idx_name [online nologging]
寚w分区索引Q只能整个index重徏

本文来自CSDN博客Q:http://blog.csdn.net/rabbitbug/archive/2009/09/15/4556638.aspx



疯狂 2012-05-08 15:35 发表评论
]]>oracle 在package里面用dba_data_filesQ字典表Q提C?Ora-00942 error:table or view does not exist)问题http://www.aygfsteel.com/freeman1984/archive/2012/04/06/373438.html疯狂疯狂Fri, 06 Apr 2012 02:23:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2012/04/06/373438.htmlhttp://www.aygfsteel.com/freeman1984/comments/373438.htmlhttp://www.aygfsteel.com/freeman1984/archive/2012/04/06/373438.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/373438.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/373438.html current_userZ当前的用?br />

疯狂 2012-04-06 10:23 发表评论
]]>
oracle exp :EXP-00091 以及sqlplusq问题http://www.aygfsteel.com/freeman1984/archive/2012/03/12/371732.html疯狂疯狂Mon, 12 Mar 2012 07:47:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2012/03/12/371732.htmlhttp://www.aygfsteel.com/freeman1984/comments/371732.htmlhttp://www.aygfsteel.com/freeman1984/archive/2012/03/12/371732.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/371732.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/371732.html一個DBA或需使用exp,imp的普通用戶來說,在我們做exp的過E中?font color="#ff0000">能經常會遇到EXPQ?0091 Exporting questionable statistics.這樣的EXP信息Q其實它是exp的error messageQ它產生的原因是因為?/span>們exp工具所在的環境變量中的NLS_LANG與DB中的NLS_CHARACTERSET?/span>一致。但需說明的是Qexp-91這個error message所生成的dump檔沒有媄響,生成的dump檔還可以正常的impQ個h體會Q不知道有沒?/span>
錯)Q雖然它我們的dump檔沒有媄響,我個h還是不想它出現,大家也有同感吧, 。。下面我們就讓它消失?/span>


step 01 查看DB中的NLS_CHARACTERSET的|提供兩種ҎQ:

select * from nls_database_parameters t where
t.parameter='NLS_CHARACTERSET'
or
select * from v$nls_parameters  where
parameter='NLS_CHARACTERSET';
SQL> select * from v$nls_parameters where
parameter='NLS_CHARACTERSET';
PARAMETER          VALUE
-----------------------  -------------------------
---------------------
NLS_CHARACTERSET    AL32UTF8

step 02 Ҏstep 01查出的NLS_CHARACTERSETQAL32UTF8Q來a定
exp的環境變量:
 
WINNT> set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
LINUX> export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
 

同样可以解决sqlplus昄q问题


疯狂 2012-03-12 15:47 发表评论
]]>
oracle: prompt,set feedback set define说明http://www.aygfsteel.com/freeman1984/archive/2012/03/09/371570.html疯狂疯狂Fri, 09 Mar 2012 03:47:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2012/03/09/371570.htmlhttp://www.aygfsteel.com/freeman1984/comments/371570.htmlhttp://www.aygfsteel.com/freeman1984/archive/2012/03/09/371570.html#Feedback2http://www.aygfsteel.com/freeman1984/comments/commentRss/371570.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/371570.html阅读全文

疯狂 2012-03-09 11:47 发表评论
]]>
oracle 查看数据块大?/title><link>http://www.aygfsteel.com/freeman1984/archive/2012/02/06/369486.html</link><dc:creator>疯狂</dc:creator><author>疯狂</author><pubDate>Mon, 06 Feb 2012 08:35:00 GMT</pubDate><guid>http://www.aygfsteel.com/freeman1984/archive/2012/02/06/369486.html</guid><wfw:comment>http://www.aygfsteel.com/freeman1984/comments/369486.html</wfw:comment><comments>http://www.aygfsteel.com/freeman1984/archive/2012/02/06/369486.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/freeman1984/comments/commentRss/369486.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/freeman1984/services/trackbacks/369486.html</trackback:ping><description><![CDATA[<font face="Arial">单个数据块的大小会媄响表I文Ӟ4*block_sizeQ等的大。查看方式如下:<br /></font><br /><br />1?<span style="line-height: 150%; font-family: 宋体">在sqlplusH口中执行:</span><span style="line-height: 150%; font-family: Arial" xml:lang="EN-US"><br />SQL> show parameter db_block_size<br />NAME <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> TYPE <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> VALUE<br />------------------------------------ ----------- ------------------------------<br />db_block_size <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> integer <wbr> <wbr> <wbr> <wbr>  <wbr> <wbr>8192</span> <p style="text-align: left; line-height: 150%; text-indent: -18pt; margin: 7.8pt 0cm 0pt;background: white" align="left"><span style="line-height: 150%; font-family: Arial" xml:lang="EN-US">2?2?/span> <span style="line-height: 150%; font-family: 宋体">在pl/</span><span style="line-height: 150%; font-family: Arial" xml:lang="EN-US">SQL</span><span style="line-height: 150%; font-family: 宋体">H口中执行:</span><span style="line-height: 150%; font-family: Arial" xml:lang="EN-US"><br /></span><span style="line-height: 150%; font-family: Arial" xml:lang="EN-US">select value from v$parameter where name='db_block_size'<br />-------------------------------<br />单个数据块的大小会媄响表I文件等的大?br /></span></p><img src ="http://www.aygfsteel.com/freeman1984/aggbug/369486.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/freeman1984/" target="_blank">疯狂</a> 2012-02-06 16:35 <a href="http://www.aygfsteel.com/freeman1984/archive/2012/02/06/369486.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 数据cd(转蝲)http://www.aygfsteel.com/freeman1984/archive/2011/12/01/365314.html疯狂疯狂Thu, 01 Dec 2011 09:13:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2011/12/01/365314.htmlhttp://www.aygfsteel.com/freeman1984/comments/365314.htmlhttp://www.aygfsteel.com/freeman1984/archive/2011/12/01/365314.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/365314.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/365314.html

数据cdQdatatypeQ是列(columnQ或存储q程中的一个属性?/p>

    Oracle支持的数据类型可以分Z个基本种c:字符数据cd、数字数据类型以及表C其它数据的数据cd?/p>

    字符数据cd

    CHAR CHAR数据cd存储固定长度的子W倹{一个CHAR数据cd可以包括1?000个字W。如果对CHAR没有明确地说明长度,它的默认长度则设|ؓ1.如果Ҏ个CHARcd变量赋|光度小于规定的长度Q那么Oracle自动用空格填充?/p>

    VARCHAR2存储可变长度的字W串。虽然也必须指定一个VARCHAR2数据变量的长度,但是q个长度是指对该变量赋值的的最大长度而非实际赋值长度。不需要用I格填充。最多可讄?000个字W?/p>

    因ؓVARCHAR2数据cd只存储ؓ该列所赋的字符Q不加空|Q所以VARCHAR2需要的存储I间比CHAR数据cd要小?/p>

    Oracle推荐使用VARCHAR2

    NCHAR和NVARCHAR2 NCHAR和NVARCHAR2数据cd分别存储固定长度与可变长度的字符数据Q但是它们用的是和数据库其他类型不同的字符集。在创徏数据库时Q需要指 定所使用的字W集Q以便对数据库中数据q行~码。还可以指定一个辅助的字符集Ex地语a集(National Language SetQ简UNLSQ]。NCHAR和NVARCHAR2cd的列使用辅助字符集?/p>

    在Oracle9i中,可以以字W而不是字节ؓ单位来表CNCHAR和NVARCHAR2列的长度?/p>

    LONG LONG数据cd可以存放2GB的字W数据,它是从早期版本中l承来的。现在如果想存储大容量的数据QOracle推荐使用CLOB和NCLOB数据cd。在表和SQL语句中用LONGcd有许多限制?/p>

    CLOB和NCLOB CLOB和NCLOB数据cd可以存储多达4GB的字W数据。NCLOB数据cd可存储NLS数据?/p>

    数字数据cd

    Oracle使用标准、可变长度的内部格式来存储数字。这个内部格式精度可以高?8位?/p>

    NUMBER数据cd可以有两个限定符Q如Q?/p>

    column NUMBER Q?precisionQ?scaleQ?/p>

    precision表示数字中的有效位。如果没有指定precision的话QOracle?8作ؓ_ֺ?/p>

    scale表示数字数点右边的位数Qscale默认讄?.  如果把scale设成负数QOracle把该数字取舍到数点左边的指定位数?/p>

    日期数据cd

    Oracle标准日期格式为:DD-MON-YY  HHQMIQSS

    通过修改实例的参数NLS_DATE_FORMATQ可以改变实例中插入日期的格式。在一个会话期_可以通过ALTER SESSION SQL命o来修Ҏ期,或者通过使用SQL语句的TO_DATE表达式中的参数来更新一个特定倹{?/p>

    其它的数据类?/p>

    RAW和LONG RAW RAW和LONG RAW数据cd主要用于Ҏ据库q行解释。指定这两种cdӞOracle以位的Ş式来存储数据。RAW数据cd一般用于存储有特定格式的对象,如位图?RAW数据cd可占?KB的空_而LONG RAW数据cd则可以占?GB大小?/p>

    ROWID ROWID是一U特D的列类型,UCZ列(pseudocolumnQ。ROWID伪列在SQL SELECT语句中可以像普通列那样被访问。Oracle数据库中每行都有一个伪列。ROWID表示行的地址QROWID伪列用ROWID数据cd定义?/p>

    ROWID与磁盘驱动的特定位置有关Q因此,ROWID是获得行的最快方法。但是,行的ROWID会随着卸蝲和重载数据库而发生变化,因此不要在事?中用ROWID伪列的倹{例如,一旦当前应用已l用完记录Q就没有理由保存行的ROWID.不能通过MSQL语句来设|标准的ROWID伪列的倹{?/p>

    列或变量可以定义成ROWID数据cdQ但是Oracle不能保证该列或变量的值是一个有效的ROWID.

    LOB

    LOBQ大型对象)数据cdQ可以保?GB的信息。LOB有以?U类型:

    。CLOBQ只能存储字W数?/p>

    。NCLOBQ保存本地语a字符集数?/p>

    。BLOBQ以二进制信息保存数?/p>

    可以指定一个LOB数据保存在Oracle数据库内Q还是指向一个包含次数据的外部文件?/p>

    LOB可以参与事务。管理LOB中的数据必须通过DBMS_LOB PL/SQL内置软g包或者OCI接口?/p>

    Z便于LONG数据cd转换成LOBQOracle9i包含许多同时支持LOB和LONG的函敎ͼq包括一个ALTER TABLE语句的的新选择Q它允许LONG数据cd自动转换成LOB.

    BFILE

    BFILE数据cd用做指向存储在Oracle数据库以外的文g的指针?/p>

    XMLType

    作ؓ对XML支持的一部分QOracle9i包含了一个新的数据类型XMLType.定义为XMLType的列存储一个在字符LOB列中的XML文档。有许多内置的功能可以你从文当中抽取单个节点,q可以在XMLType文档中对M节点创徏索引?/p>

    用户自定义数?/p>

    从Oracle8以后Q用户可以定义自q复杂数据cdQ它们由Oracle基本数据cdl合而成?/p>

    AnyType、AnyData和AnyDataSet

    Oracle包括3个新的数据类型,用于定义在现有数据类型之外的数据l构。其中每U数据类型必ȝE序单元来定义,以便让Oracle9i知道如何处理q些cd的特定实现?/p>

    cd转换

    Oracle会自动将某些数据cd转换成其他的数据cdQ{换取决于包括该值的SQL语句?/p>

    数据转换q可以通过Oracle的类型{换函数显C地q行?/p>

    q接与比?/p>

    在大多数q_上Oracle SQL中的q接操作W用两条竖线Q||Q表C。连接是两个字WD接。Oracle的自动类型{换功能得两个数字g可以q行q接?/p>

    NULL

    NULL值是关系数据库的重要特征之一。实际上QNULL不代表Q何|它表C没有倹{如果要创徏表的一个列Q而这个列必须有|那么应将它指定ؓNOT NULLQ这表示该列不能包含NULL倹{?/p>

    M数据cd都可以赋予NULL倹{NULL值引入了SQLq算的三态逻辑。如果比较的一ҎNULL|那么会出?U状态:TURE、FALSE以及两者都不是?/p>

    因ؓNULLg{于0或其他Q何|所以测试某个数据是否ؓNULL值只能通过关系q算WIS NULL来进行?/p>

    NULL值特别适合以下情况Q当一个列q未赋值时。如果选择不用NULL|那么必须对行的所有列都要赋倹{这实际上也取消了某列不需要值的可能性,同时对它赋的g很容易生误解。这U情况则可能误导l端用户Qƈ且导致篏计操作的错误l果?br />转自Q?a >http://www.cnblogs.com/cxd4321/archive/2008/04/14/1153201.html



疯狂 2011-12-01 17:13 发表评论
]]>hibernateQspring理事务?transactionQJDBC connectionQHibernate Session的用研I?Q一Q?/title><link>http://www.aygfsteel.com/freeman1984/archive/2011/11/18/363984.html</link><dc:creator>疯狂</dc:creator><author>疯狂</author><pubDate>Fri, 18 Nov 2011 03:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/freeman1984/archive/2011/11/18/363984.html</guid><wfw:comment>http://www.aygfsteel.com/freeman1984/comments/363984.html</wfw:comment><comments>http://www.aygfsteel.com/freeman1984/archive/2011/11/18/363984.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/freeman1984/comments/commentRss/363984.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/freeman1984/services/trackbacks/363984.html</trackback:ping><description><![CDATA[如果单独使用hibernate可参考上一文?a href="http://www.aygfsteel.com/freeman1984/archive/2011/08/04/355808.html">http://www.aygfsteel.com/freeman1984/archive/2011/08/04/355808.html</a><br /><br /><strong>首先hibernate的Connection release mode有以下几U:<br /></strong>1 after_statement 2 after_transaction 3 on_close 其中after_statement 用在jta?Q?span style="color: red"><strong>on_close ?.1之前遗留的(也许是ؓspring留的-_-Q,也就?.1之前默认是on_close Q但3.1之后默认如果单独使用hibernate是after_transactionQ?/strong></span>如果有第三方事务理Q就用第三方提供的默认|spring是默认使用了on_close?br /><strong>在spring理事务中我们看看系l启动后默认使用的配|:<br /></strong>1,ransaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory使用spring事务{略<br />2Qhibernate内部 Automatic session close at end of transaction: disabled 因ؓ已经交给spring?br />3   Connection release mode: auto 默认Q也是没有配置hibernate.connection.release_mode的时候,但是q里有地斚w要注意:也就是前面提到的使用W三方策略时的问题:看一下代码: <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">String releaseModeName </span><span style="color: #000000">=</span><span style="color: #000000"> PropertiesHelper.getString( Environment.RELEASE_CONNECTIONS, properties, </span><span style="color: #000000">"</span><span style="color: #000000">auto</span><span style="color: #000000">"</span><span style="color: #000000"> );<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        log.info( </span><span style="color: #000000">"</span><span style="color: #000000">Connection release mode: </span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">+</span><span style="color: #000000"> releaseModeName );<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        ConnectionReleaseMode releaseMode;<br /><img id="Codehighlighter1_246_311_Open_Image" onclick="this.style.display='none'; Codehighlighter1_246_311_Open_Text.style.display='none'; Codehighlighter1_246_311_Closed_Image.style.display='inline'; Codehighlighter1_246_311_Closed_Text.style.display='inline';" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_246_311_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_246_311_Closed_Text.style.display='none'; Codehighlighter1_246_311_Open_Image.style.display='inline'; Codehighlighter1_246_311_Open_Text.style.display='inline';" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif">        </span><span style="color: #0000ff">if</span><span style="color: #000000"> ( </span><span style="color: #000000">"</span><span style="color: #000000">auto</span><span style="color: #000000">"</span><span style="color: #000000">.equals(releaseModeName) ) </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_246_311_Closed_Text"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_246_311_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />            </span><span style="color: red">releaseMode </span><span style="color: red">=</span><span style="color: red"> transactionFactory.getDefaultReleaseMode();        }</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" /></span></span><span style="color: #000000"><br /><img id="Codehighlighter1_320_663_Open_Image" onclick="this.style.display='none'; Codehighlighter1_320_663_Open_Text.style.display='none'; Codehighlighter1_320_663_Closed_Image.style.display='inline'; Codehighlighter1_320_663_Closed_Text.style.display='inline';" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_320_663_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_320_663_Closed_Text.style.display='none'; Codehighlighter1_320_663_Open_Image.style.display='inline'; Codehighlighter1_320_663_Open_Text.style.display='inline';" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif">        </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_320_663_Closed_Text"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_320_663_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />            releaseMode </span><span style="color: #000000">=</span><span style="color: #000000"> ConnectionReleaseMode.parse( releaseModeName );<br /><img id="Codehighlighter1_494_659_Open_Image" onclick="this.style.display='none'; Codehighlighter1_494_659_Open_Text.style.display='none'; Codehighlighter1_494_659_Closed_Image.style.display='inline'; Codehighlighter1_494_659_Closed_Text.style.display='inline';" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_494_659_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_494_659_Closed_Text.style.display='none'; Codehighlighter1_494_659_Open_Image.style.display='inline'; Codehighlighter1_494_659_Open_Text.style.display='inline';" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif">            </span><span style="color: #0000ff">if</span><span style="color: #000000"> ( releaseMode </span><span style="color: #000000">==</span><span style="color: #000000"> ConnectionReleaseMode.AFTER_STATEMENT </span><span style="color: #000000">&&</span><span style="color: #000000"> </span><span style="color: #000000">!</span><span style="color: #000000">connections.supportsAggressiveRelease() ) </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_494_659_Closed_Text"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_494_659_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />                log.warn( </span><span style="color: #000000">"</span><span style="color: #000000">Overriding release mode as connection provider does not support 'after_statement'</span><span style="color: #000000">"</span><span style="color: #000000"> );<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />                releaseMode </span><span style="color: #000000">=</span><span style="color: #000000"> ConnectionReleaseMode.AFTER_TRANSACTION;<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />            }</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" />        }</span></span></div>其中U色部分是调用了spring提供的默认|而spring的默认|在jta和cmt中都默认使用的是after_statement<br /> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img id="Codehighlighter1_0_328_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_328_Open_Text.style.display='none'; Codehighlighter1_0_328_Closed_Image.style.display='inline'; Codehighlighter1_0_328_Closed_Text.style.display='inline';" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_0_328_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_0_328_Closed_Text.style.display='none'; Codehighlighter1_0_328_Open_Image.style.display='inline'; Codehighlighter1_0_328_Open_Text.style.display='inline';" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif"><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_0_328_Closed_Text">/** */</span><span id="Codehighlighter1_0_328_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />     * Sets connection release mode "on_close" as default.<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />     * <p>This was the case for Hibernate 3.0; Hibernate 3.1 changed<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />     * it to "auto" (i.e. "after_statement" or "after_transaction").<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />     * However, for Spring's resource management (in particular for<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />     * HibernateTransactionManager), "on_close" is the better default.<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" />     </span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img id="Codehighlighter1_384_428_Open_Image" onclick="this.style.display='none'; Codehighlighter1_384_428_Open_Text.style.display='none'; Codehighlighter1_384_428_Closed_Image.style.display='inline'; Codehighlighter1_384_428_Closed_Text.style.display='inline';" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_384_428_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_384_428_Closed_Text.style.display='none'; Codehighlighter1_384_428_Open_Image.style.display='inline'; Codehighlighter1_384_428_Open_Text.style.display='inline';" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> ConnectionReleaseMode getDefaultReleaseMode() </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_384_428_Closed_Text"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_384_428_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> ConnectionReleaseMode.ON_CLOSE;<br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" />    }</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span></div><br />而springZ么要使用on_close Q而不是用after_transaction ,我们xopensessioninview的原理也许能明白Qsession在view成还要用,所以不能再transactio<span>n使用完后关闭JDBC connectionQ必要在session之后Q所以要使用on<strong>_close</strong></span><strong><span>Q?/span><span>也就是在on session(flush.autoQ或者flush.Eagerly) 关闭Q。这U情况hibernate内部q会在spring关闭JDBC connection后提C?费解Q因为after transaction之后session没有关闭Q但?nbsp;Connection release mode配置的是on_close,session的关闭和 Connection 的关闭都由spring来管理,hibernate׃知道?Q所以hibernate有好的提C如?其实sessionQ已l关闭。当焉着session的关闭jdbc链接释放回连接池)Q?/span><br /><span style="color: red">transaction completed on session with on_close connection release mode; be sure to cl</span></strong>ose the session to release JDBC resources!Q?br /><br />。当然我们也可以使用after_transaction Q这U情况对使用~程式事务非帔R用?br />     <img src ="http://www.aygfsteel.com/freeman1984/aggbug/363984.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/freeman1984/" target="_blank">疯狂</a> 2011-11-18 11:25 <a href="http://www.aygfsteel.com/freeman1984/archive/2011/11/18/363984.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 无order by , 默认排序问题 以及oracle的问?/title><link>http://www.aygfsteel.com/freeman1984/archive/2011/10/20/361633.html</link><dc:creator>疯狂</dc:creator><author>疯狂</author><pubDate>Thu, 20 Oct 2011 02:27:00 GMT</pubDate><guid>http://www.aygfsteel.com/freeman1984/archive/2011/10/20/361633.html</guid><wfw:comment>http://www.aygfsteel.com/freeman1984/comments/361633.html</wfw:comment><comments>http://www.aygfsteel.com/freeman1984/archive/2011/10/20/361633.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/freeman1984/comments/commentRss/361633.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/freeman1984/services/trackbacks/361633.html</trackback:ping><description><![CDATA[<div>Oracle会根据具体的数据块的存储q回记录.<br />oracle数据库是没有默认排序?nbsp;<br />要排序必d上order  by <br />因ؓoracle是按块进行读取数据的 <br />如果数据按顺序存储,则可能d出来的数据是按顺序的Q给用户误解为默认排?br />oracle没有q行M排序操作Qrowid表示的是数据存放的数据块内部地址Q如果没有要求排序,oracle会顺序的从数据块中读取符合条件的数据q回到客LQ不q看h好像是按照rowid排序似的<br /><br />如果数据量够大Q即使相同的语句Q都有可能不同的l果?br />一般而言<br />表是堆表<br />所以是无序?br />他是按照也即物理存放序来读取的<br />rowid 是自动随行生成的</div> <div> </div> <div>另:</div> <div>oracle 的rowid是啥意?br />---------------------------------------------------------------<br /><br />rowid是数据库的一个伪列,建立表的时候数据库会自动ؓ每个表徏立ROWID?br />用来唯一标识一行记录?br />rowid是存储每条记录的实际物理地址Q对记录的访问是ZROWID?br />---------------------------------------------------------------<br /><br />每条记录的物理地址,<br />Ҏ据库中记录行的作快检索方式就是用rowid来进行查找?br />---------------------------------------------------------------<br /><br />唯一标识一行记?br />select rowid,* from 表名<br />试一下,你就明白?br />---------------------------------------------------------------<br /><br />rowidp是邮递员送信时要扄信封上的家庭地址一?每个rowid都不会重?oracle查找通过它可以更快地查找到数?<br />---------------------------------------------------------------<br /><br />rowid是一个伪?对应 块号,行号,行的序号..<br />---------------------------------------------------------------<br />个h不是dba。上的文章是转蝲的,其他的东西请知道的补充下Q对q一块有点迷惑?br />关于order by的文?br /><a >http://blog.sina.com.cn/s/blog_6ff05a2c0100mlco.html</a><br />关于有null的排?br /><a >http://blog.csdn.net/wh62592855/article/details/4813404</a></div> <img src ="http://www.aygfsteel.com/freeman1984/aggbug/361633.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/freeman1984/" target="_blank">疯狂</a> 2011-10-20 10:27 <a href="http://www.aygfsteel.com/freeman1984/archive/2011/10/20/361633.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>事务和两阶段提交http://www.aygfsteel.com/freeman1984/archive/2011/10/09/360269.html疯狂疯狂Sun, 09 Oct 2011 06:41:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2011/10/09/360269.htmlhttp://www.aygfsteel.com/freeman1984/comments/360269.htmlhttp://www.aygfsteel.com/freeman1984/archive/2011/10/09/360269.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/360269.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/360269.html 

  • 1 事务的ACID

  • 事务是保证数据库从一个一致性的状态永久地变成另外一个一致性状态的ҎQ其中,ACID是事务的基本Ҏ?/p>

    A是AtomicityQ原子性。一个事务往往涉及到许多的子操作,原子性则保证q些子操作要么都做,要么都不做,而不至于出现事务的部分操作成功,而另外一部分操作没有成功。如果事务在执行的过E中发生错误Q那么数据库回滚到事务发生之前的状态。比如银行的转̎服务Q这个事务的最l结果一定是Q某个̎L余额增加了xQ而另外一个̎L余额减少了xQ或者两个̎L余额未发生变化。而不会出现其他情c?br />
    C是ConsistencyQ一致性。一致性是指事务发生前和发生以后,都不会破坏数据库的约束关p,保证了数据库元素的正性、有效性和完整性。这U约束关pd以是数据库内部的U束Q比如数据库元素的值必d一定的范围内,也可以是应用带来的约束,比如转̎以后银行账户的余额不能ؓ负数?/p>

    I是IsolationQ隔L。一个事务的操作在未提交以前Q是不会被ƈ行发生的其他事务讉K到的。也是_数据库操作不会看到某个事务的中间操作l果Q比如{账过E中Q用h不能查询C个̎户余额减了Q而另外一个̎户余额未发生变化的情c?/p>

    D是DurabilityQ持久性。事务完成以后,它对数据库的影响是永久性的Q即使在数据库系l发生宕机或者其他故障的情况下,q种影响也会得到保持?/p>

    • 2 两阶D|?

    在分布式pȝ中,事务往往包含有多个参与者的zdQ单个参与者上的活动是能够保证原子性的Q而多个参与者之间原子性的保证则需要通过两阶D|交来实现Q两阶段提交是分布式事务实现的关键?/p>

    很明显,两阶D|交保证了分布式事务的原子性,q些子事务要么都做,要么都不做。而数据库的一致性是由数据库的完整性约束实现的Q持久性则是通过commit日志来实现的Q不是由两阶D|交来保证的。至于两阶段提交如何保证隔离性,可以参考Large-scale Incremental Processing Using Distributed Transactions and Notifications中两阶段提交的具体实现?/p>

    两阶D|交的q程涉及到协调者和参与者。协调者可以看做成事务的发赯,同时也是事务的一个参与者。对于一个分布式事务来说Q一个事务是涉及到多个参与者的。具体的两阶D|交的q程如下Q?/p>

    W一阶段Q?/p>

    首先Q协调者在自n节点的日志中写入一条的日志记录Q然后所有参与者发送消息prepare TQ询问这些参与者(包括自nQ,是否能够提交q个事务Q?/p>

    参与者在接受到这个prepare T 消息以后Q会Ҏ自n的情况,q行事务的预处理Q如果参与者能够提交该事务Q则会将日志写入盘Qƈq回l协调者一个ready T信息Q同时自w进入预提交状态状态;如果不能提交该事务,则记录日志,q返回一个not commit T信息l协调者,同时撤销在自w上所做的数据库改Q?/p>

    参与者能够推q发送响应的旉Q但最l还是需要发送的?/p>

    W二阶段Q?/p>

    协调者会攉所有参与者的意见Q如果收到参与者发来的not commit T信息Q则标识着该事务不能提交,协调者会Abort T 记录到日志中Qƈ向所有参与者发送一个Abort T 信息Q让所有参与者撤销在自w上所有的预操作;

    如果协调者收到所有参与者发来prepare T信息Q那么协调者会Commit T日志写入盘Qƈ向所有参与者发送一个Commit T信息Q提交该事务。若协调者迟q未收到某个参与者发来的信息Q则认ؓ该参与者发送了一个VOTE_ABORT信息Q从而取消该事务的执行?/p>

    参与者接收到协调者发来的Abort T信息以后Q参与者会l止提交QƈAbort T 记录到日志中Q如果参与者收到的是Commit T信息Q则会将事务q行提交Qƈ写入记录

    一般情况下Q两阶段提交机制都能较好的运行,当在事务q行q程中,有参与者宕机时Q他重启以后Q可以通过询问其他参与者或者协调者,从而知道这个事务到底提交了没有。当Ӟq一切的前提都是各个参与者在q行每一步操作时Q都会事先写入日志?/p>

    唯一一个两阶段提交不能解决的困境是Q当协调者在发出commit T消息后宕ZQ而唯一收到q条命o的一个参与者也宕机了,q个时候这个事务就处于一个未知的状态,没有人知道这个事务到底是提交了还是未提交Q从而需要数据库理员的介入Q防止数据库q入一个不一致的状态。当Ӟ如果有一个前提是Q所有节Ҏ者网l的异常最l都会恢复,那么q个问题׃存在了,协调者和参与者最l会重启Q其他节点也最l也会收到commit T的信息?/p>

    • 3 日志

    数据库日志保证了事务执行的原子性和持久性,日志cd可以分ؓredo logQundo logQundo/redo log。关于这几种日志形式的具体介l,可以参照Q?/p>

    http://nosql-wiki.org/foswiki/bin/view/Main/TransactonLog
    转蝲自:http://rdc.taobao.com/blog/cs/?p=1183



    疯狂 2011-10-09 14:41 发表评论
    ]]>
    mysql数据库备份和q原常用的命?.http://www.aygfsteel.com/freeman1984/archive/2011/09/30/359858.html疯狂疯狂Fri, 30 Sep 2011 06:29:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2011/09/30/359858.htmlhttp://www.aygfsteel.com/freeman1984/comments/359858.htmlhttp://www.aygfsteel.com/freeman1984/archive/2011/09/30/359858.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/359858.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/359858.html备䆾MySQL数据库的命o

    mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

    备䆾MySQL数据库ؓ带删除表的格?/strong>
    备䆾MySQL数据库ؓ带删除表的格式,能够让该备䆾覆盖已有数据库而不需要手动删除原有数据库?/p>

    mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

    直接MySQL数据库压~备?/strong>

    mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

    备䆾MySQL数据库某???/strong>

    mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

    同时备䆾多个MySQL数据?/strong>

    mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

    仅仅备䆾数据库结?/strong>

    mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

    备䆾服务器上所有数据库

    mysqldump –all-databases > allbackupfile.sql

    q原MySQL数据库的命o

    mysql -hhostname -uusername -ppassword databasename < backupfile.sql

    q原压羃的MySQL数据?/strong>

    gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

    数据库转移到新服务?/strong>

    mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
    转自http://blog.csdn.net/bigbird2012/article/details/6142886


    疯狂 2011-09-30 14:29 发表评论
    ]]>
    临时表空?/title><link>http://www.aygfsteel.com/freeman1984/archive/2011/09/13/358552.html</link><dc:creator>疯狂</dc:creator><author>疯狂</author><pubDate>Tue, 13 Sep 2011 09:47:00 GMT</pubDate><guid>http://www.aygfsteel.com/freeman1984/archive/2011/09/13/358552.html</guid><wfw:comment>http://www.aygfsteel.com/freeman1984/comments/358552.html</wfw:comment><comments>http://www.aygfsteel.com/freeman1984/archive/2011/09/13/358552.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/freeman1984/comments/commentRss/358552.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/freeman1984/services/trackbacks/358552.html</trackback:ping><description><![CDATA[<h2><span style="font-family: 黑体"><span style="font-size: large">临时表空间作?/span></span></h2> <p style="text-indent: 21.75pt"><span style="font-size: small"><span style="font-family: Times New Roman">Oracle</span><span style="font-family: 宋体">临时表空间主要用来做查询和存放一些缓冲区数据。时表I间消耗的主要原因是需要对查询的中间结果进行排序?/span></span></p> <p style="text-indent: 21.75pt"><span style="font-size: small"><span style="font-family: 宋体">重启数据库可以释放时表I间Q如果不能重启实例,而一直保持问?/span><span style="font-family: Times New Roman">sql</span><span style="font-family: 宋体">语句的执行,</span><span style="font-family: Times New Roman">temp</span><span style="font-family: 宋体">表空间会一直增ѝ直到耗尽盘I间?/span></span></p> <p style="text-indent: 21.75pt"><span style="font-size: small"><span style="font-family: 宋体">|上有h猜测在磁盘空间的分配上,</span><span style="font-family: Times New Roman">oracle</span><span style="font-family: 宋体">使用的是贪心法Q如果上ơ磁盘空间消耗达?/span><span style="font-family: Times New Roman">1GB</span><span style="font-family: 宋体">Q那么时表I间是</span><span style="font-family: Times New Roman">1GB</span><span style="font-family: 宋体">。也是说当前时表I间文g的大是历史上用时表I间最大的大小?/span></span></p> <p style="text-indent: 21.75pt"><span style="font-family: 宋体"><span style="font-size: small">临时表空间的主要作用Q?/span></span></p> <p style="text-indent: 21.75pt"><span style="font-size: small"><span style="font-family: 宋体">索引</span><span style="font-family: Times New Roman">create</span><span style="font-family: 宋体">?/span><span style="font-family: Times New Roman">rebuild</span></span></p> <p style="text-indent: 21.75pt"><span style="font-size: small"><span style="font-family: Times New Roman">Order by </span><span style="font-family: 宋体">?/span><span style="font-family: Times New Roman"> group by</span></span></p> <p style="text-indent: 21.75pt"><span style="font-size: small"><span style="font-family: Times New Roman">Distinct </span><span style="font-family: 宋体">操作</span></span></p> <p style="text-indent: 21.75pt"><span style="font-size: small"><span style="font-family: Times New Roman">Union </span><span style="font-family: 宋体">?/span><span style="font-family: Times New Roman"> intersect </span><span style="font-family: 宋体">?/span><span style="font-family: Times New Roman"> minus</span></span></p> <p style="text-indent: 21.75pt"><span style="font-family: Times New Roman; font-size: small">Sort-merge joins</span></p> <p style="text-indent: 21.75pt"><span style="font-family: Times New Roman; font-size: small">analyze</span></p> <h2><span style="font-family: 黑体"><span style="font-size: large">查看临时表空间大?/span></span></h2> <p><strong><span style="font-family: 宋体; font-size: 9pt">查看临时表文件大和已用空?/span></strong></p> <p><strong><span style="font-family: 宋体; color: green; font-size: 9pt">select</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> t1."Tablespace" "Tablespace", <br />t1."Total (G)" "Total (G)", <br />nvl(t2."Used (G)", </span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">0</span><span style="font-family: 宋体; color: black; font-size: 9pt">) "Used(G)", <br />t1."Total (G)" - nvl(t2."Used (G)", </span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">0</span><span style="font-family: 宋体; color: black; font-size: 9pt">) "Free (G)"<br /></span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"><br />(<br /></span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">select</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> tablespace_name "Tablespace", to_char((</span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">sum</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">(bytes/</span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">1024</span><span style="font-family: 宋体; color: black; font-size: 9pt">/</span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">1024</span><span style="font-family: 宋体; color: black; font-size: 9pt">/</span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">1024</span><span style="font-family: 宋体; color: black; font-size: 9pt">)),</span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">'99,999,990.900'</span><span style="font-family: 宋体; color: black; font-size: 9pt">) "Total (G)" <br /></span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> dba_temp_files<br /></span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">group</span></strong> <strong><span style="font-family: 宋体; color: green; font-size: 9pt">by</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> tablespace_name<br /></span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">union</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"><br /></span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">select</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> tablespace_name "Tablespace", to_char((</span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">sum</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">(bytes/</span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">1024</span><span style="font-family: 宋体; color: black; font-size: 9pt">/</span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">1024</span><span style="font-family: 宋体; color: black; font-size: 9pt">/</span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">1024</span><span style="font-family: 宋体; color: black; font-size: 9pt">)),</span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">'99,999,990.900'</span><span style="font-family: 宋体; color: black; font-size: 9pt">) "Total (G)"<br /></span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> dba_data_files<br /></span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">where</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> tablespace_name </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">like</span></strong> <span style="font-family: 宋体; color: #0000f0; font-size: 9pt">'TEMP%'</span><span style="font-family: 宋体; color: black; font-size: 9pt"><br /></span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">group</span></strong> <strong><span style="font-family: 宋体; color: green; font-size: 9pt">by</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> tablespace_name<br />) t1,<br />(<br /></span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">select</span></strong> <strong><span style="font-family: 宋体; color: green; font-size: 9pt">tablespace</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">, round(</span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">sum</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">(blocks)*</span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">8</span><span style="font-family: 宋体; color: black; font-size: 9pt">/</span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">1024</span><span style="font-family: 宋体; color: black; font-size: 9pt">) "Used (G)" </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> v$sort_usage<br /></span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">group</span></strong> <strong><span style="font-family: 宋体; color: green; font-size: 9pt">by</span></strong> <strong><span style="font-family: 宋体; color: green; font-size: 9pt">tablespace</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"><br />) t2<br /></span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">where</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> t1."Tablespace"=t2.</span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">tablespace</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">(+)</span></p> <p><span style="font-size: 9pt"> </span></p> <p><span style="font-family: 宋体; font-size: 9pt">查看当前临死表用空间大与正在占用临时表空间的</span><span style="font-size: 9pt"><span style="font-family: Times New Roman">sql</span></span><span style="font-family: 宋体; font-size: 9pt">语句</span></p> <p><strong><span style="font-family: 宋体; color: green; font-size: 9pt">select</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> sess.SID, segtype, blocks*</span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">8</span><span style="font-family: 宋体; color: black; font-size: 9pt">/</span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">1000</span><span style="font-family: 宋体; color: black; font-size: 9pt"> "MB" ,sql_text<br /></span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> v$sort_usage </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">sort</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">, v$session sess,v$sql </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">sql</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"><br /> </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">where</span></strong> <strong><span style="font-family: 宋体; color: green; font-size: 9pt">sort</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">.SESSION_ADDR = sess.SADDR<br /> </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">and</span></strong> <strong><span style="font-family: 宋体; color: green; font-size: 9pt">sql</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">.ADDRESS = sess.SQL_ADDRESS<br /> </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">order</span></strong> <strong><span style="font-family: 宋体; color: green; font-size: 9pt">by</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> blocks </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">desc</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">;</span></p> <p> </p> <p><strong><span style="font-family: 宋体; color: green; font-size: 9pt">select</span></strong> <span style="font-family: 宋体; color: #0000f0; font-size: 9pt">'the '</span><span style="font-family: 宋体; color: black; font-size: 9pt"> || </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">name</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> || </span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">' temp tablespaces '</span><span style="font-family: 宋体; color: black; font-size: 9pt"> || tablespace_name ||<br />       </span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">' idle '</span><span style="font-family: 宋体; color: black; font-size: 9pt"> ||<br />       round(</span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">100</span><span style="font-family: 宋体; color: black; font-size: 9pt"> - (s.tot_used_blocks / s.total_blocks) * </span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">100</span><span style="font-family: 宋体; color: black; font-size: 9pt">, </span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">3</span><span style="font-family: 宋体; color: black; font-size: 9pt">) ||<br />       </span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">'% at '</span><span style="font-family: 宋体; color: black; font-size: 9pt"> || to_char(</span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">sysdate</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">, </span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">'yyyymmddhh24miss'</span><span style="font-family: 宋体; color: black; font-size: 9pt">)<br /> </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> (</span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">select</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> d.tablespace_name tablespace_name,<br />               nvl(</span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">sum</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">(used_blocks), </span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">0</span><span style="font-family: 宋体; color: black; font-size: 9pt">) tot_used_blocks,<br />               </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">sum</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">(blocks) total_blocks<br />          </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> v$sort_segment v, dba_temp_files d<br />         </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">where</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> d.tablespace_name = v.tablespace_name(+)<br />         </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">group</span></strong> <strong><span style="font-family: 宋体; color: green; font-size: 9pt">by</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> d.tablespace_name) s,<br />       v$database;</span></p> <h2><span style="font-family: 黑体"><span style="font-size: large">修改临时文g大小</span></span></h2> <p><strong><span style="font-family: 宋体; color: green; font-size: 9pt">select</span></strong> <span style="font-family: 宋体; color: #0000f0; font-size: 9pt">'ALTER database TEMPFILE '</span><span style="font-family: 宋体; color: black; font-size: 9pt"> || file_name || </span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">' resize 100M ;'</span><span style="font-family: 宋体; color: black; font-size: 9pt"><br /> </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> dba_temp_files<br /> </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">where</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> tablespace_name = </span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">'ONLYDWTEMP';</span></p> <p> </p> <p><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">ALTER database TEMPFILE '/oradata/ONLYDWTEMP06.dbf' resize 100M ;</span></p> <p><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">ALTER database TEMPFILE '/oradata/ONLYDWTEMP07.dbf' resize 100M ;</span></p> <p><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">ALTER database TEMPFILE '/oradata/ONLYDWTEMP08.dbf' resize 100M ;</span></p> <p><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">ALTER database TEMPFILE '/oradata/ONLYDWTEMP09.dbf' resize 100M ;</span></p> <p><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">ALTER database TEMPFILE '/oradata/ONLYDWTEMP10.dbf' resize 100M ;</span></p> <p><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">ALTER database TEMPFILE '/oradata/ONLYDWTEMP01.dbf' resize 100M ;</span></p> <p><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">ALTER database TEMPFILE '/oradata/ONLYDWTEMP02.dbf' resize 100M ;</span></p> <p><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">ALTER database TEMPFILE '/oradata/ONLYDWTEMP03.dbf' resize 100M ;</span></p> <p><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">ALTER database TEMPFILE '/oradata/ONLYDWTEMP04.dbf' resize 100M ;</span></p> <p><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">ALTER database TEMPFILE '/oradata/ONLYDWTEMP05.dbf' resize 100M ;</span></p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">SQL> ALTER database TEMPFILE '/oradata/ONLYDWTEMP09.dbf' resize 100M ;</span></p> <p> </p> <p><span style="font-size: small"><span style="font-family: Times New Roman">ALTER database TEMPFILE '/oradata/ONLYDWTEMP09.dbf' resize 100M</span></span></p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">ORA-03297: file contains used data beyond requested RESIZE value</span></p> <h2><span style="font-family: 黑体"><span style="font-size: large">创徏新的临时表空?/span></span></h2> <p><span style="font-family: Times New Roman; font-size: small">SQL> create temporary tablespace TEMP1 TEMPFILE '/oradata/TEMP1_01.dbf' size 100M;</span></p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">Tablespace created</span></p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">SQL> create temporary tablespace TEMP2 TEMPFILE '/oradata/TEMP2_01.dbf' size 100M;</span></p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">Tablespace created</span></p> <h2><span style="font-family: 黑体"><span style="font-size: large">当前时表I间指定为新的时表I间</span></span></h2> <p><span style="font-family: Times New Roman; font-size: small">SQL> alter database default temporary tablespace TEMP1;</span></p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">Database altered</span></p> <h2><span style="font-family: 黑体"><span style="font-size: large">删除旧的临时表空?/span></span></h2> <p><span style="font-family: Times New Roman; font-size: small">SQL> drop tablespace ONLYDWTEMP including contents and datafiles;</span></p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">Tablespace dropped</span></p> <h2><span style="font-family: 黑体"><span style="font-size: large">查当前用L临时表空?/span></span></h2> <p style="text-indent: 21.75pt"><span style="font-size: small"><span style="font-family: Times New Roman">9i</span><span style="font-family: 宋体">之前Q如果一个数据库用户没有被指定默认时表I间Q那?/span><span style="font-family: Times New Roman">oracle</span><span style="font-family: 宋体">׃使用</span><span style="font-family: Times New Roman">system</span><span style="font-family: 宋体">表空间作用户的时表I间Q这是很危险的。在</span><span style="font-family: Times New Roman">9i</span><span style="font-family: 宋体">里边Q?/span><span style="font-family: Times New Roman">database</span><span style="font-family: 宋体">可以被指定一个默认时表I间。这样如果数据库用户没有被明指定时表I间Q?/span><span style="font-family: Times New Roman">oracle9i</span><span style="font-family: 宋体">׃自动指定</span><span style="font-family: Times New Roman">database</span><span style="font-family: 宋体">的默认时表I间作ؓ该用L临时表空间?/span></span></p> <p style="text-indent: 21.75pt"><span style="font-family: 宋体"><span style="font-size: small">我们可以通过下面的语句来查询数据库的默认临时表空间?/span></span></p> <p style="text-indent: 21.75pt"><strong><span style="font-family: 宋体; color: green; font-size: 9pt">select</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> * </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> database_properties </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">where</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> property_name = </span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">'DEFAULT_TEMP_TABLESPACE'</span><span style="font-family: 宋体; color: black; font-size: 9pt">;</span></p> <p style="text-indent: 21.75pt"><span style="font-family: 宋体; color: black; font-size: 9pt">如下语句可以查询数据库用L临时表空间?/span></p> <p style="text-indent: 21.75pt"><strong><span style="font-family: 宋体; color: green; font-size: 9pt">select</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> username,default_tablespace,temporary_tablespace </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> dba_users</span></p> <p style="text-indent: 21.75pt"><span style="font-family: 宋体"><span style="font-size: small">如果删除了用L临时表空_而这个时表I间又不是默认时表I间Q如果是数据库的默认临时表空间是删不掉的Q,用户的时表I间不会自动转换到数据库的默认时表I间上。这时如果用该用户登陆Qƈ执行查询用到临时I间Q就会报错。解x式就是将用户的时表I间修改q来?/span></span></p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">SQL> alter user CTL temporary tablespace TEMP1;</span></p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">User altered</span></p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">SQL> alter user ODS temporary tablespace TEMP2;</span></p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">User altered</span></p> <p> </p> <p><strong><span style="font-family: 宋体; color: green; font-size: 9pt">select</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> username,default_tablespace,temporary_tablespace </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> dba_users</span></p> <table style="margin: auto auto auto 4.75pt; width: 258pt; border-collapse: collapse" border="0" cellspacing="0" cellpadding="0" width="344"> <tbody> <tr style="height: 14.25pt"> <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 51pt; padding-right: 5.4pt;background: silver; height: 14.25pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm" width="68"> <p align="center"><strong><span style="font-family: 宋体; font-size: 12pt">user</span></strong></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; padding-left: 5.4pt; width: 70pt; padding-right: 5.4pt;background: silver; height: 14.25pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm" width="93"> <p align="center"><strong><span style="font-family: 宋体; font-size: 12pt">tablespace</span></strong></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt;background: silver; height: 14.25pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm" width="183"> <p align="center"><strong><span style="font-family: 宋体; font-size: 12pt">temporary tablespace</span></strong></p></td></tr> <tr style="height: 14.25pt"> <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 51pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="68"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">SCOTT</span></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 70pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="93"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">SYSTEM</span></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="183"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">ONLYDWTEMP</span></p></td></tr> <tr style="height: 14.25pt"> <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 51pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="68"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">CTL</span></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 70pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="93"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">CTL</span></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="183"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">TEMP1</span></p></td></tr> <tr style="height: 14.25pt"> <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 51pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="68"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">ODS</span></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 70pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="93"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">ODSD</span></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="183"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">TEMP2</span></p></td></tr></tbody></table> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">SQL> drop tablespace TEMP2 including contents and datafiles;</span></p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">Tablespace dropped</span></p> <p> </p> <p><strong><span style="font-family: 宋体; color: green; font-size: 9pt">select</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> username,default_tablespace,temporary_tablespace </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> dba_users</span></p> <table style="margin: auto auto auto 4.75pt; width: 258pt; border-collapse: collapse" border="0" cellspacing="0" cellpadding="0" width="344"> <tbody> <tr style="height: 14.25pt"> <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 51pt; padding-right: 5.4pt;background: silver; height: 14.25pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm" width="68"> <p align="center"><strong><span style="font-family: 宋体; font-size: 12pt">user</span></strong></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; padding-left: 5.4pt; width: 70pt; padding-right: 5.4pt;background: silver; height: 14.25pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm" width="93"> <p align="center"><strong><span style="font-family: 宋体; font-size: 12pt">tablespace</span></strong></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt;background: silver; height: 14.25pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm" width="183"> <p align="center"><strong><span style="font-family: 宋体; font-size: 12pt">temporary tablespace</span></strong></p></td></tr> <tr style="height: 14.25pt"> <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 51pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="68"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">SCOTT</span></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 70pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="93"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">SYSTEM</span></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="183"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">ONLYDWTEMP</span></p></td></tr> <tr style="height: 14.25pt"> <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 51pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="68"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">CTL</span></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 70pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="93"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">CTL</span></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="183"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">TEMP1</span></p></td></tr> <tr style="height: 14.25pt"> <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 51pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="68"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">ODS</span></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 70pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="93"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">ODSD</span></p></td> <td style="border-bottom: windowtext 1pt solid; border-left: #d4d0c8; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; height: 14.25pt; border-top: #d4d0c8; border-right: windowtext 1pt solid; padding-top: 0cm" width="183"> <p align="left"><span style="font-family: 宋体; font-size: 12pt">TEMP2</span></p></td></tr></tbody></table> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">SQL> conn ods/ods@test_BI_DW</span></p> <p><span style="font-family: Times New Roman; font-size: small">Connected to Oracle9i Enterprise Edition Release 9.2.0.8.0 </span></p> <p><span style="font-family: Times New Roman; font-size: small">Connected as ods</span></p> <p> </p> <p><strong><span style="font-family: 宋体; color: green; font-size: 9pt">SQL> select</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> do.object_name </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> dba_objects do, dba_objects db </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">order</span></strong> <strong><span style="font-family: 宋体; color: green; font-size: 9pt">by</span></strong> <span style="font-family: 宋体; color: #0000f0; font-size: 9pt">1</span><span style="font-family: 宋体; color: black; font-size: 9pt">;</span></p> <p><span style="font-family: Times New Roman; font-size: small">Tablespace TEMP2 not found</span></p> <p> </p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">SQL> alter user ODS temporary tablespace TEMP1;</span></p> <p> </p> <p><span style="font-family: Times New Roman; font-size: small">User altered</span></p> <p> </p> <p><span style="font-size: small"><span style="font-family: 宋体">以上的方法只是暂旉放了临时表空间的盘Q是L但不是治本的Ҏ。真正的LҎ是找出数据库中消耗资源比较大?/span><span style="font-family: Times New Roman">sql</span><span style="font-family: 宋体">语句Q然后对其进行优化处理?/span></span></p> <p><strong><span style="font-family: 宋体; color: green; font-size: 9pt">Select</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> se.username,<br />       se.sid,<br />       su.</span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">extents</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">,<br />       su.blocks * to_number(rtrim(p.</span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">value</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">)) </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">as</span></strong> <strong><span style="font-family: 宋体; color: green; font-size: 9pt">Space</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">,<br />       </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">tablespace</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">,<br />       segtype,<br />       sql_text<br /> </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">from</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> v$sort_usage su, v$parameter p, v$session se, v$sql s<br /> </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">where</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> p.</span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">name</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> = </span><span style="font-family: 宋体; color: #0000f0; font-size: 9pt">'db_block_size'</span><span style="font-family: 宋体; color: black; font-size: 9pt"><br />  </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">and</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> su.session_addr = se.saddr<br />   </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">and</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> s.hash_value = su.sqlhash<br />   </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">and</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> s.address = su.sqladdr<br /> </span><strong><span style="font-family: 宋体; color: green; font-size: 9pt">order</span></strong> <strong><span style="font-family: 宋体; color: green; font-size: 9pt">by</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt"> se.username, se.sid</span></p><img src ="http://www.aygfsteel.com/freeman1984/aggbug/358552.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/freeman1984/" target="_blank">疯狂</a> 2011-09-13 17:47 <a href="http://www.aygfsteel.com/freeman1984/archive/2011/09/13/358552.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Oracle下创建database link和同义词(synonym)http://www.aygfsteel.com/freeman1984/archive/2011/09/09/358372.html疯狂疯狂Fri, 09 Sep 2011 07:54:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2011/09/09/358372.htmlhttp://www.aygfsteel.com/freeman1984/comments/358372.htmlhttp://www.aygfsteel.com/freeman1984/archive/2011/09/09/358372.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/358372.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/358372.html物理上存放于|络的多个ORACLE数据库,逻辑上可以看成一个单一的大型数据库Q用户可以通过|络对异地数据库中的数据q行存取Q而服务器之间的协同处理对于工作站用户及应用程序而言是完全透明的,开发h员无需兛_|络的链接细节、数据在|络节点中的具体分布情况和服务器间的协调工作q程?br />数据库之间的链接建立在DATABASE LINK上。要创徏一个DATABASE LINKQ必首先在建立链接的数据库上设|链接字W串Q即配置一个远E数据库的本地网l服务名?br /> 

    数据库全局名称可以用以下命令查出:

    SELECT * FROM GLOBAL_NAME;

    修改可以用以下语句来修改参数|

    ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE;

    <1>、当数据库参数global_name=falseӞ׃要求数据库链接名U跟q端数据库名UC栗?/p>

    oracle数据库之间进行连接通讯?br />创徏数据库链接的语法如下Q?br />CREATE [PUBLIC] DATABASE LINK link

    CONNECT TO username IDENTIFIED BY password

    USING ‘connectstring’

    其中Q?br />--demona为用net8 easy config创徏的连接字W串
    目的Ҏ据库的init.ora文g中的global_names设ؓfalse
    重新启动数据库设|才能生?br />或者用sys用户执行

    注意Q创建数据库链接的帐号必LCREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系l权限,用来d到远E数据库的帐号必LCREATE SESSION权限。这两种权限都包含在CONNECT角色中(CREATE PUBLIC DATABASE LINK权限在DBA中)?/p>

    一个公用数据库链接对于数据库中的所有用户都是可用的Q而一个私有链接仅对创建它的用户可用。由一个用L另外一个用h权私有数据库链接是不可能的,一个数据库链接要么是公用的Q要么是U有的?/p>

    创徏数据库链接时Q还可以使用~省d方式Q即不指定远E数据库的用户名和密码:

    create public database link zrhs_link

    using ‘zrhs’;

    在不指定用户名和口o的情况下QORACLE使用当前的用户名和口令登录到q程数据库?/p>

    USING后面指定的是链接字符Ԍ也就是远E数据库的网l服务名Q这个服务名保存在TNSNAMES.ORA文g中,在该文g中定义了协议、主机名、端口和数据库名?/p>

    删除数据库链接的语句是:

    DROP [PUBLIC] DATABASE LINK zrhs_link

    数据库链接的引用

    一般情况下引用数据库链接,可以直接其攑ֈ调用的表名或视图名称后面Q中间用一?@ 作ؓ分割W:

    SELECT * FROM worker@zrhs_link ;

    对于l常使用的数据库链接Q可以徏立一个本地的同义词,方便使用Q?/p>

    CREATE SYNONYM worker_syn FOR worker@zrhs_link ;

    q可以徏立一个本地的q程视图Q方便用:

    CREATE VIEW worker AS SELECT * FROM worker@zrhs_link where… ;

    现在本视囑֏与本地数据库中的M其它视图一样对待,也可以授权给其它用户Q访问此视图Q但该用户必L讉K数据库链接的权限?/p>

    对于另外一U情况,所要访问的表不在数据库链接中指定的q程帐户下,但该帐户有访问该表的权限Q那么我们在表名前要加上该表的用户名Q?/p>

    SELECT * FROM camel.worker@zrhs_link ;

    <2>、当数据库参数global_name=trueӞ那就要求数据库链接名U跟q端数据库名UC?br />数据库全局名称可以用以下命令查?/p>

    SELECT * FROM GLOBAL_NAME;

    atabase link(dblink)--数据库链?br />创徏dblink的语法:
    sql>create database link 数据库链路名
    connect to 用户?identified by 口o
    using 'L字符串名';
    如:
    sql>create database link ora9i.us.oracle.com ### q里的us.oracle.com为oracle默认域名 ###
    connect to scott identified by tiger
    using 'sun';

    1)dblink名必Mq程数据库的全局数据库名Qglobal_nameQ相同;
    2)用户名,口oE数据库用户名,口o;
    3)L字符串ؓ本机tnsnames.ora中定义的?
    4)两个同名的数据库间不得徏立dblink;
    然后Q你可以通过dblink讉Kq程数据库了?br />如:
    sql>select * from 表名@ora9i.us.oracle.com;
    q可以徏立快?snapshot)通过dblink实现q程数据自动传输?/p>

    查看所有的数据库链接,q入pȝ理员SQL>操作W下Q运行命令:

    SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';

     

    实际应用举例

     

     

    oracle 数据库连接就像你在程序中建立一个到数据库的q接一栗?/p>

    如果数据库不在本C?必须?ORACLE_HOME/network/admin/tnsnames.ora中配|相应的tnsQ然后程序才能通过配置好的tns讉K数据库,但是java通过thin方式讉Koracle例外Q可以采用在本地配置好的tns别名Q也可以采用tns全解析名Q采用别名等号后的全描述W;如下Q?/p>

    TESTCZ =
     (DESCRIPTION =
      (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.12)(PORT = 1521))
      )
      (CONNECT_DATA =
       (SERVICE_NAME = TESTCZ)
      )
     )

    举例?/p>

    现在有两个数据库

    adbQ用户名和密码分别是adb/adbQ在本地L配置的tns名字是tns_a,所在主机a;

    bdbQ用户名和密码分别是bdb/bdbQ在本地L配置的tns名字是tns_b,所在主机b;

    现在需要在adb上面Z个连接到bdb数据库的dblink;

    Ҏ1Q?/p>

    在aL上编辑tnsnames.ora文g配置bdb数据库的tns别名tns_bQ如下:

    tns_b =
     (DESCRIPTION =
      (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.12)(PORT = 1521))
      )
      (CONNECT_DATA =
       (SERVICE_NAME = dbtestb)
      )
     )

    然后创徏数据库连接,如下Q?/p>

    create database link

    connect to bdb identified by identified by bdb

    using 'tns_b';

    Ҏ2Q?/p>

    如果没有权限修改tnsnames.oraQ那么就没有办法建立到adb数据库的tns别名Q那么就只能采用在创建dblink的时候,全写解析W号。创建dblink的方法如下:

    create database link

    connect to bdb identified by identified by bdb

    using '(DESCRIPTION =
      (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.12)(PORT = 1521))
      )
      (CONNECT_DATA =
       (SERVICE_NAME = dbtestb)
      )
     )';

    创徏好tns别名之后Q可以采用sqlplus username/password@tnsname来测试创建的tns别名是否正确?/p>

    我在生pȝ中创建的一个dblinkCZQ?/p>

    create database link NEW_DBLINK
      connect to AIIPS identified by "1qaz2wsx"
      using '(DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.193.12)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = zjpub)
        )
      )';
    然后讉K可以通过tablename@NEW_DBLINK讉KQ也可以建立同义词访问:
    create or replace synonym LINKTABLE_TABLENAME
      for TABLENAME@NEW_DBLINK;
    然后讉K可以用同义词例如Qselect *  from LINKTABLE_TABLENAME
    Q?br />部分转蝲自:http://www.linuxidc.com/Linux/2010-05/26105.htm



    疯狂 2011-09-09 15:54 发表评论
    ]]>
    oracle 闪回http://www.aygfsteel.com/freeman1984/archive/2011/09/07/358196.html疯狂疯狂Wed, 07 Sep 2011 08:11:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2011/09/07/358196.htmlhttp://www.aygfsteel.com/freeman1984/comments/358196.htmlhttp://www.aygfsteel.com/freeman1984/archive/2011/09/07/358196.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/358196.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/358196.html
      SQL> show parameter undo
      NAME TYPE VALUE
      ------------------------------------
      undo_management string AUTO
      undo_retention integer 900
      undo_tablespace string UNDOTBS1
      首先要说明的是,flashback table不等于flashback queryQ所谓queryQ仅仅是查询以前的一个快照点而已Qƈ不改变当前表的状态,而flashback table不一P改变当前表及附属对象一起回C前的旉炏V?br />  其实9i的flashback query?0g中也有了新的变化Q?0g中可以简单的利用以下语句实现flashback queryQ而不再需要象9i那样需要调用DBMS_FLASHBACK包?br />  SELECT * FROM TABLENAME AS OF TIMESTAMP
      TO_TIMESTAMP('2003-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS')
      WHERE ……;

      10g的flashback table有如下特?br />  · 在线操作
      · 恢复到指定时间点或者SCN的Q何数?
      · 自动恢复相关属性,如烦引,触发器等
      · 满分布式的一致?
      · 满数据一致性,所有相兛_象将自动一?
      语法为:
      FLASHBACK TABLE tablename TO TIMESTAMP (JUL-07-2003, 02:33:00)
      FLASHBACK TABLE employee TO SCN 123456;
      FLASHBACK TABLE t1 TO TIMESTAMP '2003-03-03 12:05:00' ENABLE TRIGGERS;
      其中ENABLE TRIGGERS表示触发器恢复之后ؓenable状态,而默认ؓdisable状态?br />
      注意Q如果需要flashback一个表Q需要保?br />  需要有flashback any table的系l权限或者是该表的flashback对象权限?br />  需要有该表的SELECT, INSERT, DELETE, ALTER权限
      必须保证该表ROW MOVEMENT

      下面Q我们用一个详l的例子来说明这个过E:
      16:16:51 SQL> create user flash identified by flash;
      User created.
      16:17:04 SQL> grant connect,resource to flash;
      Grant succeeded.
      16:17:19 SQL> connect flash/flash;
      Connected.
      16:26:35 SQL> create table t1 as select * from all_objects;
      Table created.
      16:37:24 SQL> create table t2 as select * from t1;
      Table created.

      16:37:35 SQL> select count(*) from t1;
      COUNT(*)
      ----------
      38949
      16:37:43 SQL> select count(*) from t2;
      COUNT(*)
      ----------
      38949
      16:38:06 SQL> create index inx_test1 on T1 (object_name);
      Index created.
      16:39:55 SQL> create index inx_test2 on T1 (object_id);
      Index created.
      16:40:47 SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
      TO_CHAR(SYSDATE,'YY
      -------------------
      2004-04-06 16:41:18
      以上获得一个时间戳Q假定我们要恢复该表到这个时_那么以下对该表的操作都将被前滚?br />  16:41:18 SQL> drop index inx_test1;
      Index dropped.
      16:41:33 SQL> delete from t1;
      38949 rows deleted.
      16:41:46 SQL> commit;
      Commit complete.
      16:41:49 SQL> truncate table t2;
      Table truncated.

      在以上的操作中,我们delete一个表Q然后truncate一个表Q下面,我们来看看flashback table的效果,能恢复到什么程?br />  16:37:55 SQL> ALTER TABLE t1 ENABLE ROW MOVEMENT;
      Table altered.
      16:38:03 SQL> ALTER TABLE t2 ENABLE ROW MOVEMENT;
      Table altered.

      16:43:10 SQL> flashback table t1 TO TIMESTAMP to_timestamp('2004-04-06 16:41:18','yyyy-mm-dd hh24:mi:ss');
      Flashback complete.
      16:43:49 SQL> flashback table t2 TO TIMESTAMP to_timestamp('2004-04-06 16:41:18','yyyy-mm-dd hh24:mi:ss');
      flashback table t2 TO TIMESTAMP to_timestamp('2004-04-06 16:41:18','yyyy-mm-dd hh24:mi:ss')
      *
      ERROR at line 1:
      ORA-01466: unable to read data - table definition has changed

      我们可以发现Q执行delete操作的表是可以恢复的Q而执行truncate操作的表是不可以恢复的,q正好也说明了flashback table利用undo的结论?br />  看看我们的结果:
      SQL> select count(*) from t1;
      COUNT(*)
      ----------
      38949
      SQL> select count(*) from t2;
      COUNT(*)
      ----------
      0

      SQL> select t.index_name from user_indexes t where t.table_name='T1';
      INDEX_NAME
      ------------------------------
      INX_TEST2
      q可以看刎ͼ对于drop的烦引,也是没有办法恢复的,因ؓdropq不记录undoQ所以所谓烦引的恢复Q仅仅是相关索引树的改变而不能找回删除掉的烦引?br />
    -----------------------其他
    闪回某个字段的修改:首先我们在pl/sql里面邮g查看表最后的LAST_DDL_TIMEQ然后可以闪回到q个旉之前的每一个倹{?br />update tablename t set t.columname=(select columname  from
    tablename   as of  timestamp to_date('2011-9-7 10:05:07','yyyy-mm-dd hh24:mi:ss') where id=t.id)

    有的闪回需要启动表的移动功能才能闪?br />alter table tablename  enable row movement;
    flashback table tablename TO TIMESTAMP to_timestamp('2011-11-14 16:30:18','yyyy-mm-dd hh24:mi:ss');


    疯狂 2011-09-07 16:11 发表评论
    ]]>
    RMAN备䆾与恢复资?http://www.aygfsteel.com/freeman1984/archive/2011/08/27/357411.html疯狂疯狂Sat, 27 Aug 2011 09:09:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2011/08/27/357411.htmlhttp://www.aygfsteel.com/freeman1984/comments/357411.htmlhttp://www.aygfsteel.com/freeman1984/archive/2011/08/27/357411.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/357411.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/357411.html   conn /as sysdba
       archive log list (查看数据库是否处于归档模式中)

       若ؓ非归?则修Ҏ据库归档模式?br />   startup mount
       alter database archivelog
       alter database open

    2.q接到target数据?/p>

    命oQ?connect target  / (connect target system/oracle@ora10g,如果数据库没有v来,也可要直接在rman命o下用startupq行启动数据?
    可以q接到target database.(rman 一边连接到target数据库,另外一边连接到control file(nocatalog mode),control file 中存储rman 的备份信?

    3.用list backupset 命o查看有没有备份的东西

    4. 常用备䆾命oQ?br /> 备䆾全库Q?br />RMAN> backup database plus archivelog delete input;     (备䆾全库及控制文件、服务器参数文g与所有归档的重做日志Qƈ删除旧的归档日志)
    备䆾表空_
    RMAN> backup tablespace system plus archivelog delete input;     (备䆾指定表空间及归档的重做日志,q删除旧的归档日?_
    备䆾归档日志Q?br />RMAN> backup archivelog all delete input;


    ======================Ҏ个数据库q行备䆾==================

    1.Ҏ个数据库q行全备?full backup)?/p>

        只要输入命o: backup database;

    2.list backupset 查看备䆾的具体信?/p>

    List of Backup Sets
    ===================

    BS Key  Type LV Size       Device Type Elapsed Time Completion Time
    ------- ---- -- ---------- ----------- ------------ ---------------
    1       Full    6.80M      DISK        00:00:02     06-DEC-08     
            BP Key: 1   Status: AVAILABLE  Compressed: NO  Tag: TAG20081206T201041
            Piece Name: /home/oracle/flash_recovery_area/ORA10G/backupset/2008_12_06/o1_mf_ncsnf_TAG20081206T201041_4mntz78s_.bkp
      Control File Included: Ckp SCN: 782019       Ckp time: 06-DEC-08
      SPFILE Included: Modification time: 06-DEC-08

    BS(backupset), piece是一个文Ӟ一个BS包含多个piece.

    3.rman中缺省的参数Q可以通过 show all ;
    来进行查?RMAN configuration parameters),我们在用backup database命o中,可以把这些default value 用固定的值来q行替代.

    4.我们可以把备份的文g才备份的目录中拷贝到带上,然后删除备䆾目录下面的备份文Ӟ如果下次需要恢复的话,只要把文仉新拷回到用来的备份目录就可以?br />5.查看control file 文g中的备䆾信息(因ؓ我们做的备䆾是在nocatalog模式?,control file ?u01/oracle/oradata/ora10g目录?׃control file 是个二进制文Ӟ要查看control file 文g中的内容Q用strings control03.ctl,发现control03.ctl中有rman备䆾的信息了

     
    ====================0U增量备?==============

    概念Q全备䆾?U增量备份。全备䆾?U增量备份几乎是一L。唯一的区别,0U增量备份能作ؓ增量备䆾的基Q而全备䆾不能作ؓ增量备䆾的基。其它方面完全一?/p>

    1.backup incremental level=0(leve 0) database;(增量?的备?
    2.backup incremental level 1(level=1) database;(增量?的备?
     
    在上面的备䆾中,我们备䆾了datafile,controlfile和parameter file.没有备䆾的文件有归档日志Q重做日志和口o文g没有备䆾.口o文g不需要备份,我们用orapw来创Z?/p>

    新的口o文g.rman 在nocatalog模式下,不能够对redo log file q行备䆾


    ===================备䆾archivelog 在nocatalog模式?================

    命o:backup database plus archivelog delete input(delete input的意思在备䆾完成后,删除 archivelog文gQ这个选项可要可不要,q个命o也可以用 backup incremental level=0(1,2...)来进行备?


    =======================备䆾表空?===================

    backup tablespace tablespacename

    如果我们不知道tablespace的名字,在rman中,可要通过report schema命oQ来查看表空间的名字

    MAN> report schema;
    Report of database schema

    List of Permanent Datafiles
    ===========================
    File Size(MB) Tablespace           RB segs Datafile Name
    ---- -------- -------------------- ------- ------------------------
    1    480      SYSTEM               ***     /home/oracle/oradata/ora10g/system01.dbf
    2    25       UNDOTBS1             ***     /home/oracle/oradata/ora10g/undotbs01.dbf
    3    250      SYSAUX               ***     /home/oracle/oradata/ora10g/sysaux01.dbf
    4    5        USERS                ***     /home/oracle/oradata/ora10g/users01.dbf
    5    200      PERFSTAT             ***     /home/oracle/oradata/ora10g/perfstat.dbf

    List of Temporary Files
    =======================
    File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
    ---- -------- -------------------- ----------- --------------------
    1    20       TEMP                 32767       /home/oracle/oradata/ora10g/temp01.dbf

    ========================备䆾控制文g====================

    backup current controlfile

    backup database include current controlfile

    ========================备䆾镜像========================

    在rman的备份中有两U方?备䆾?backupset)和备份镜?image copies).镜像备䆾主要是文件的拯:copy datafile ... to ...

    我们在rman>report schema;

    Report of database schema

    List of Permanent Datafiles
    ===========================
    File Size(MB) Tablespace           RB segs Datafile Name
    ---- -------- -------------------- ------- ------------------------
    1    480      SYSTEM               ***     /home/oracle/oradata/ora10g/system01.dbf
    2    25       UNDOTBS1             ***     /home/oracle/oradata/ora10g/undotbs01.dbf
    3    250      SYSAUX               ***     /home/oracle/oradata/ora10g/sysaux01.dbf
    4    5        USERS                ***     /home/oracle/oradata/ora10g/users01.dbf
    5    200      PERFSTAT             ***     /home/oracle/oradata/ora10g/perfstat.dbf

    List of Temporary Files
    =======================
    File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
    ---- -------- -------------------- ----------- --------------------
    1    20       TEMP                 32767       /home/oracle/oradata/ora10g/temp01.dbf

    rman>copy datafile 5 to '/u01/rmanbak/tbso1bak.dbf';(copy 5 对应的schme:perfstat.dbf)

    它会把tbs作ؓ一个拷贝。我们用list backupset来看Q不能够查看我们刚备份的 tbs01bak.dbf',因ؓ它不是backupset. 我们用list copy p够查看我们刚才刚刚备份的文g

     
    =======================单命令与批命?================

    单命? backup database;

    批命?

    rman> run{
     2> allocate channel cha1 type disk;
     3> backup
     4> format '/u01/rmanbak/full_%t'
     5> tag full-backup //标签可以ZP没关p?br /> 6> database;
     7> release channel cha1;
     8>}

    q个run中有3条命令,分别用分hq行分割.

    format:
    %cQ备份片的拷贝数(?开始编?Q?br />%dQ数据库名称Q?br />%DQ位于该月中的天?DD)Q?br />%MQ位于该q中的月?MM)Q?br />%FQ一个基于DBID唯一的名Uͼq个格式的Ş式ؓc-xxx-YYYYMMDD-QQ,其中xxx位该数据库的DBIDQYYYYMMDD为日期,QQ是一?-256的序列;
    %nQ数据库名称Qƈ且会在右侧用x字符q行填充Q其保持长度ؓ8Q?br />%uQ是一个由备䆾集编号和建立旉压羃后组成的8字符名称。利?u可以为每个备份集产生一个唯一的名Uͼ
    %pQ表C备份集中的备䆾片的~号Q从1开始编P
    %UQ是%u_%p_%c的简写Ş式,利用它可以ؓ每一个备份片D?既磁盘文?生成一个唯一的名Uͼq是最常用的命名方式;
    %tQ备份集旉?
    %T:q月日格?YYYYMMDD);

    channel的概念:一个channel是rman于目标数据库之间的一个连接,"allocate channel"命o在目标数据库启动一个服务器q程Q同时必d义服务器q程执行备䆾和恢复操作

    用的I/Ocd

    通道控制命o可以用来:
          控制rman使用的OS资源
          影响q行?br />      指定I/O带宽的限制?讄 limit read rate 参数)
          指定备䆾片大的限制(讄 limit kbytes)
          指定当前打开文g的限制?讄 limit maxopenfiles)

     
    =================================RMAN一周典型备份方?===========================

    1.星期天晚?nbsp;     -level 0 backup performed(全备?
    2.星期一晚上      -level 2 backup performed
    3.星期二晚?nbsp;     -level 2 backup performed
    4.星期三晚?nbsp;     -level 1 backup performed
    5.星期四晚?nbsp;     -level 2 backup performed
    6.星期五晚?nbsp;     -level 2 backup performed
    7.星期六晚?nbsp;     -level 2 backup performed

     
    如果星期二需要恢复的话,只需?+2,
    如果星期四需要恢复的话,只需?+4,
    如果星期五需要恢复的话,只需?+4+5,
    如果星期六需要恢复的话,只需?+4+5+6.

    自动备䆾:备䆾脚本+crontab
     bakl0
     bakl1
     bakl2

    执行脚本:
    rman target / msglog=bakl0.log cmdfile=bakl0 (/表示需要连接的目标数据?msglog表示日志文gQcmdfile表示的是脚本文g)
    rman target / msglog=bakl1.log cmdfile=bakl1
    rman target / msglog=bakl2.log cmdfile=bakl2

    实例Qrman target system/oracle@ora10g(/) msglog=/u01/rmanbak/bakl1.log cmdfile=/u01/rmanbak/bakl0


    完整的命?/u01/oracle/product/10.2.0/bin/rman target system/oracle@ora10g(/) msglog=/u01/rmanbak/bakl1.log cmdfile=/u01/rmanbak/bakl0

     
    把备份脚本放?u01/rmanbak/script目录下面,vi bakl0,bakl0的内容ؓ:

    run{
        allocate channel cha1 type disk;
        backup
        incremental level  0
        format '/u01/rmanbak/inc0_%u_%T'(u表示唯一的ID,大T是日期,t是时?
        tag monday_inc0 //标签可以ZP没关p?br />    database;
        release channel cha1;
        }
    Q类似就可以写出bakl1,bakl2相应的脚?

     
    自动备䆾
    crontab
    crontab -e -u oracle(改命令的意思是~辑oracle用户的定时执?-e,edit -u oracle,oracle用户))

    ?nbsp; ?nbsp; ??星期(0代表星期?
    45 23  *  *    0    rman target / msglog=bakl0.log cmdfile=bakl0(星期天的23:45会以oracle用户的n份来执行命o)
    45 23  *  *    1    rman target / msglog=bakl2.log cmdfile=bakl2
    45 23  *  *    2    rman target / msglog=bakl2.log cmdfile=bakl2
    45 23  *  *    3    rman target / msglog=bakl1.log cmdfile=bakl1
    45 23  *  *    4    rman target / msglog=bakl2.log cmdfile=bakl2
    45 23  *  *    5    rman target / msglog=bakl2.log cmdfile=bakl2
    45 23  *  *    6    rman target / msglog=bakl2.log cmdfile=bakl2

    然后启动crontab ,启动crontab的命?
    root> service crond restart
     
    =======================RMAN恢复================

    在非catalog模式下,备䆾的信息存储在controlfile文g中,如果controlfile文g发生毁坏Q那么就不能能够q行恢复Q?br />使用在备份的时候需要把controlfile也进行自动备?
     
    RMAN>show all;
    using target database control file instead of recovery catalog
    RMAN configuration parameters are:
    CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
    CONFIGURE BACKUP OPTIMIZATION OFF; # default
    CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
    CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
    CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
    CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
    CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
    CONFIGURE MAXSETSIZE TO UNLIMITED; # default
    CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
    CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
    CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
    CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/home/oracle/product/10.20/dbs/snapcf_ora10g.f'; # default

    其中CONFIGURE CONTROLFILE AUTOBACKUP OFF; 没有对controlfileq行 autobackup,使用我们需要运行下面命令来对controlfileq行自动备䆾
    RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

    RMAN> show all;

    手动备䆾控制文gQ?br />backup current controlfile


    Dbid表示database的一个IDQ将来用于恢复spfile和controlfile时候要用到.
    RMAN> connect target /
    connected to target database: ORA10G (DBID=3988862108)
    q个Dbid=3988862108
     

    RMAN> list backup;查看以前备䆾的信?br />RMAN>delete backupset 24;//24代表backupset 的编?br />RMAN>backup format '/u01/rmanbak/full_%T_%U.bak' database plus archivelog;(q行一ơ全备䆾)

    验证备䆾Q?br />RMAN> validate backupset 3;  //3代表backupset的编?/p>

    口o文g丢失(不属于rman备䆾的范?,我们只需要用一个命令来重徏q个文g可以了:
    orapw file=orapwsid password=pass entries=5;  //口o文g的\?/u01/oracle/product/10.20/db_1/dbs目录?br />oracle> cd /u01/oracle/product/10.20/db_1/dbs
    oracle> rm orapwora10g;(文g删除Q模拟丢?
    oracle> orapwd file=orapwora10g password=oracle entries=5;(重新建立一个文?,entries的意?DBA的用h多有5?

    SPFILE丢失:
    startup nomount;
    set dbid 3988862108;
    restore spfile from


    转自Q?a >http://blog.csdn.net/newhappy2008/article/details/6546550

    疯狂 2011-08-27 17:09 发表评论
    ]]>
    Oracle冷备?http://www.aygfsteel.com/freeman1984/archive/2011/08/27/357410.html疯狂疯狂Sat, 27 Aug 2011 09:04:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2011/08/27/357410.htmlhttp://www.aygfsteel.com/freeman1984/comments/357410.htmlhttp://www.aygfsteel.com/freeman1984/archive/2011/08/27/357410.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/357410.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/357410.html

    转自Q?a >http://blog.csdn.net/newhappy2008/article/details/6587143
    一、冷备䆾

        数据库在关闭状态下完成所有物理系l文件拷贝的q程Q也U脱机备?/p>

        适合于非归档模式下,数据库处于一致性状?/p>

       

    二、步?nbsp;  

        首先在运行的库中得到数据库运行的所有的物理文g位置Q然后在计划内关闭数据库(shutdown)

        再执行拷贝物理文家到备䆾路径或备份设?/p>

        备䆾完成后立卛_动数据库让其提供正常的服?/p>

     

     

    三、冷备脚本的写法

        首先应该在相兌N查出数据库的数据文gQ日志文Ӟ控制文gQ时文件所在的位置

        注意Q不要直接把oradata下的cpp了,因ؓ生库里各个文g通常分布在不同的盘Q不同的地方Q所以在去视N获得真实路径 

     

        --查看实例和数据库的相关信?/p>

        SQL> select instance_name,version,status,archiver,database_status from v$instance;

     

        INSTANCE_NAME    VERSION           STATUS       ARCHIVE DATABASE_STATUS

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

        orcl             10.2.0.1.0        OPEN         STOPPED ACTIVE

     

        SQL> select dbid,name,log_mode from v$database;

     

              DBID NAME      LOG_MODE

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

        1242732291 ORCL      NOARCHIVELOG

     

        --查看数据文g及状态信?/p>

        SQL> select file_name,tablespace_name,status,online_status from dba_data_files;

     

        FILE_NAME                                               TABLESPACE STATUS    ONLINE_

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

        /u01/app/oracle/oradata/orcl/undotbs01.dbf              UNDOTBS1   AVAILABLE ONLINE

        /u01/app/oracle/oradata/orcl/system01.dbf               SYSTEM     AVAILABLE SYSTEM

        /u01/app/oracle/oradata/orcl/sysaux01.dbf               SYSAUX     AVAILABLE ONLINE

        /u01/app/oracle/oradata/orcl/users01.dbf                USERS      AVAILABLE ONLINE

        /u01/app/oracle/oradata/orcl/example01.dbf              EXAMPLE    AVAILABLE ONLINE

        /u01/app/oracle/oradata/orcl/tbs1_1.dbf                 TBS1       AVAILABLE ONLINE

        /u01/app/oracle/oradata/orcl/tbs1_2.dbf                 TBS1       AVAILABLE ONLINE

     

        --查看数据文g

        SQL> select name from v$datafile;

     

        NAME

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

        /u01/app/oracle/oradata/orcl/system01.dbf

        /u01/app/oracle/oradata/orcl/undotbs01.dbf

        /u01/app/oracle/oradata/orcl/sysaux01.dbf

        /u01/app/oracle/oradata/orcl/users01.dbf

        /u01/app/oracle/oradata/orcl/example01.dbf

        /u01/app/oracle/oradata/orcl/tbs1_1.dbf

        /u01/app/oracle/oradata/orcl/tbs1_2.dbf

     

        --查看临时文g

        SQL> select name from v$tempfile;

     

        NAME

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

        /u01/app/oracle/oradata/orcl/temp01.dbf

     

        --查看日志文g

        SQL> select member from v$logfile;

     

        MEMBER

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

        /u01/app/oracle/oradata/orcl/redo2a.rdo

        /u01/app/oracle/oradata/orcl/redo2b.rdo

        /u01/app/oracle/oradata/orcl/redo1a.rdo

        /u01/app/oracle/oradata/orcl/redo3a.rdo

        /u01/app/oracle/oradata/orcl/redo3b.rdo

        /u01/app/oracle/oradata/orcl/redo1b.rdo

     

        --查看控制文g

        SQL> select name from v$controlfile;

     

        NAME

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

        /u01/app/oracle/oradata/orcl/control01.ctl

        /u01/app/oracle/oradata/orcl/control02.ctl

     

        --创徏备䆾目录

        SQL> ho mkdir /u01/app/oracle/coolbak

       

        --使用q接W生成复制文件命?/p>

        SQL> select 'ho cp ' || name || ' /u01/app/oracle/coolbak' from v$controlfile;

     

        'HOCP'||NAME||'/U01/APP/ORACLE/COOLBAK'

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

        ho cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/coolbak

        ho cp /u01/app/oracle/oradata/orcl/control02.ctl /u01/app/oracle/coolbak

     

        SQL> save /tmp/tmpbak.sql;   --上面的输入保存为tmpbak.sql

        Created file /tmp/tmpbak.sql

     

        SQL> ho vim /tmp/tmpbak.sql   --~辑tmpbak.sql,下面的内容输入到tmpbak.sql

     

        set feedback off

        set heading off

        set verify off

        set trimspool off

        set pagesize 0

        set linesize 200

        define dir = '/u01/app/oracle/coolbak'

        define script = '/tmp/coolbak.sql'

        spool &script

        select 'ho cp ' || name || ' &dir' from v$controlfile

        union all

        select 'ho cp ' || name || ' &dir' from v$datafile

        union all

        select 'ho cp ' || member || ' &dir'  from v$logfile

        union all

        select 'ho cp ' || name || ' &dir' from v$tempfile

        /

        create pfile = '&dir/initorcl.ora' from spfile;

        ho cp /u01/app/oracle/10g/dbs/orapworcl &dir

        spool off

        shutdown immediate

        start &script

        ho rm &script

        startup

     

        --执行tmpbak.sql

        SQL> @/tmp/tmpbak.sql;

     

        --执行q程及数据库启动?/p>

           

        --启动后查看备份的文g

        SQL> ho ls /u01/app/oracle/coolbak

        control01.ctl  orapworcl   redo2b.rdo    system01.dbf   users01.dbf

        control02.ctl  redo1a.rdo  redo3a.rdo    tbs1_1.dbf

        example01.dbf  redo1b.rdo  redo3b.rdo    tbs1_2.dbf

        initorcl.ora   redo2a.rdo  sysaux01.dbf  undotbs01.dbf

     

    四、ȝ

        优点

            冷备模式下概忉|于理解,卛_需要备份的文g复制到安全的位置

            操作比较单,不需要太多的q预

            Ҏ恢复到某个时间点?只需文件再拯回去)

            能与归档Ҏ相结合,作数据库“最新状?#8221;的恢复?/p>

        ~点

            备䆾Ӟ数据库必d于一致性关闭状?/p>

            只能提供到某一旉点的恢复

            备䆾旉度比较慢,其是数据量大性能影响比较?/p>

            不能实现Z表和用户U别的数据恢?/p>



    疯狂 2011-08-27 17:04 发表评论
    ]]>如何处理Oracle中TEMP表空间满的问题? http://www.aygfsteel.com/freeman1984/archive/2011/08/27/357409.html疯狂疯狂Sat, 27 Aug 2011 08:52:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2011/08/27/357409.htmlhttp://www.aygfsteel.com/freeman1984/comments/357409.htmlhttp://www.aygfsteel.com/freeman1984/archive/2011/08/27/357409.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/357409.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/357409.html如何处理Oracle中TEMP表空间满的问题?

         选择?hrb_qiuyb ?Blog

    正常来说Q在完成Select语句?/span>create index{一些?/span>TEMP表空间的排序操作后,Oracle是会自动释放掉时段a的。但有些有侯我们则会遇到临时D|有被释放Q?/span>TEMP表空间几乎满的状况,甚至是我们重启了数据库仍没有解决问题。这个问题在论坛中也常被|友问到Q下面我ȝ一下,l出几种处理Ҏ?/span>

     

    法一、重启库

     

    库重启时Q?/span>Smonq程会完成时段释放,TEMP表空间的清理操作Q不q很多的时侯我们的库是不允许down?/span>,所以这U方法缺了一点的应用ZQ不q这U方法还是很好用的?/span>

     

    法二?/span>Metalinkl出的一个方?/span>

     

    修改一?/span>TEMP表空间的storage参数Q让Smonq程观注一下时段Q从而达到清理和TEMP表空间的目的?/span>

     

    SQL>alter tablespace temp increase 1;
    SQL>alter tablespace temp increase 0;

     

    法三、我常用的一个方?/span>,具体内容如下Q?/span>

     

    1?使用如下语句a查看一下认谁在用时段

     

    SELECT username,
           sid,
           serial#,
           sql_address,
           machine,
           program,
           tablespace,
           segtype,
           contents
      FROM v$session se,
           v$sort_usage su
     WHERE se.saddr=su.session_addr     

     

    2?span style="font: 7pt 'Times New Roman'">   那些正在使用临时D늚q程

     SQL>Alter system kill session 'sid,serial#';

     

    3、把TEMP表空间回~一?/span>

     SQL>Alter tablespace TEMP coalesce;

     

    法四、用诊断事件的一U方?/span>,也是被我认ؓ?#8220;杀手锏”的一U方?/span>

     

    1?TEMP表空间的ts#

     

    SQL>select ts#, name from sys.ts$ ;

    TS# NAME
    -----------------------
    0 SYSYEM
    1 RBS
    2 USERS
    3* TEMP
    4 TOOLS
    5 INDX
    6 DRSYS

    2?执行清理操作


    SQL>alter session set events 'immediate trace name DROP_SEGMENTS level 4' ;

    说明Q?/span>
    temp
    表空间的TS# ?/span> 3*, So TS#+ 1= 4

     

    其它Q?/span>

     

    1?出现如上问题的原因我认ؓ可能是由于大的排序超ZTEMP表空间的I间允许范围引v的。也可能包含着其它的异常的因素?/span>

     

    2?观注TEMP{这些空间的状态是Dba日常职责之一Q我们可以通过Toad?/span>Object Browser{这些工具办刎ͼ也可以用如下的语句:

     

    SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
           D.TOT_GROOTTE_MB "表空间大?M)",
           D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已用空?M)",
           TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
                         2),
                   '990.99') "使用?,
           F.TOTAL_BYTES "I闲I间(M)",
           F.MAX_BYTES "最大块(M)"
      FROM (SELECT TABLESPACE_NAME,
                   ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
                   ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
              FROM SYS.DBA_FREE_SPACE
             GROUP BY TABLESPACE_NAME) F,
           (SELECT DD.TABLESPACE_NAME,
                   ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
              FROM SYS.DBA_DATA_FILES DD
             GROUP BY DD.TABLESPACE_NAME) D
     WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
     ORDER BY 4 DESC



    疯狂 2011-08-27 16:52 发表评论
    ]]>
    վ֩ģ壺 | ɽ| Ӣ| ٰ| | Դ| | ֵ| | Ƽ| | | ˰| ½| | | ˮ| ʹ| ˰| ƽ| ٹ| | | ɽ| | ˮ| | | ƽ| ƽ| | | | | ޶| | ͤ| | Ϫ| ͬ| |