<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_为汶川地震死难者哀悼！</title><subtitle type="text">No Z Turn</subtitle><id>http://feed.cnblogs.com/blog/u/19586/rss</id><updated>2012-05-01T13:54:08Z</updated><author><name>Shark Xu</name><uri>http://www.cnblogs.com/SharkXu/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SharkXu/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/19586/rss"/><entry><id>http://www.cnblogs.com/SharkXu/archive/2012/05/01/Oracle_AutoAllocate.html</id><title type="text">关于本地管理的Extent分配使用 AutoAllocate 方式时，是如何自动分配Extent的</title><summary type="text">each segment starts out with 140 Chapter 3 Database Storage and Schema Objects,64KB extents for the first 16 extents, and then extents increase in size to 1MB for the next 63extents. The size then increases to 8MB for the next 120 extents, then 64MB, and so on as the segment grows. *先分配16个64K的exte</summary><published>2012-05-01T13:54:00Z</published><updated>2012-05-01T13:54:00Z</updated><author><name>Shark Xu</name><uri>http://www.cnblogs.com/SharkXu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SharkXu/archive/2012/05/01/Oracle_AutoAllocate.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SharkXu/archive/2012/05/01/Oracle_AutoAllocate.html"/><content type="html">&lt;p&gt;each segment starts out with 140 Chapter 3  Database Storage and Schema Objects,&amp;nbsp;&amp;nbsp;64KB extents for the first 16 extents, and then extents increase in size to 1MB for the next 63&amp;nbsp;&amp;nbsp;extents. The size then increases to 8MB for the next 120 extents, then 64MB, and so on as the segment grows.&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*先分配16个64K的extent，&lt;br /&gt;0-15 extents 每个大小是64K 合计大小 1M &lt;br /&gt;16－79 extents 每个大小是1M 合计大小 63M --以上两项大小合计 64M&lt;br /&gt;80－199 extents 每个大小是8M 合计大小 960M --以上三项大小合计 1024M＝1G&lt;br /&gt;200－？？ extents 每个大小是64M &lt;br /&gt;*/&lt;br /&gt;&lt;/p&gt;&lt;p&gt;注：每次分配的Extent的大小，可参见DBA_Extents字典表&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SharkXu/aggbug/2478227.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SharkXu/archive/2012/05/01/Oracle_AutoAllocate.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SharkXu/archive/2012/05/01/Oracle_UniformSize.html</id><title type="text">关于本地管理的Extent分配使用 Uniform 方式时，如何设置这个数字</title><summary type="text">取决于存储的segment的大小。根据Bhaskar Himatsingka的HOW TO STOP DEFRAGMENTING AND START LIVING: THE DEFINITIVEWORD ON FRAGMENTATION一文，建议是1) Segments smaller than 160M should be placed in 160K extent tablespaces. ==》Uniform Size 160K2) Segments between 160M and 5120M should be placed in 5120K extent tablespaces. </summary><published>2012-05-01T13:51:00Z</published><updated>2012-05-01T13:51:00Z</updated><author><name>Shark Xu</name><uri>http://www.cnblogs.com/SharkXu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SharkXu/archive/2012/05/01/Oracle_UniformSize.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SharkXu/archive/2012/05/01/Oracle_UniformSize.html"/><content type="html">&lt;p&gt;取决于存储的segment的大小。根据Bhaskar Himatsingka的HOW TO STOP DEFRAGMENTING AND START LIVING: THE DEFINITIVE&lt;br /&gt;WORD ON FRAGMENTATION一文，建议是&lt;br /&gt;1) Segments smaller than 160M should be placed in 160K extent tablespaces. ==》Uniform Size 160K&lt;br /&gt;2) Segments between 160M and 5120M should be placed in 5120K extent tablespaces. ==&amp;gt;Uniform Size 5M&lt;br /&gt;3) Segments larger than 5120M should be placed in 160M extent tablespaces.&amp;nbsp; ==&amp;gt;Uniform Size 160M;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SharkXu/aggbug/2478224.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SharkXu/archive/2012/05/01/Oracle_UniformSize.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SharkXu/archive/2012/03/09/MySQLPara.html</id><title type="text">c# 引用 MySQL使用基于Parameter方式代码，总是提示:“Column &amp;#39;列名&amp;#39; cannot be null”</title><summary type="text">MySQL使用基于Parameter方式代码，总是提示:“Column '列名' cannot be null”MySQL使用基于Parameter方式代码，总是提示:“Column '列名' cannot be null”解决方法1：直接在连接字符串里面加一个 oldsyntax=true 即可。例如：server=127.0.0.1;user id=root;password=;database=itemdb;oldsyntax=true解决方法2：将语句中的 @ 替换为 ? 例如：StringBuilder strSql=new StringBuilder</summary><published>2012-03-09T06:06:00Z</published><updated>2012-03-09T06:06:00Z</updated><author><name>Shark Xu</name><uri>http://www.cnblogs.com/SharkXu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SharkXu/archive/2012/03/09/MySQLPara.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SharkXu/archive/2012/03/09/MySQLPara.html"/><content type="html">&lt;p&gt;MySQL使用基于Parameter方式代码，总是提示:&amp;#8220;Column '列名' cannot be null&amp;#8221;&lt;/p&gt;&lt;p&gt;MySQL使用基于Parameter方式代码，总是提示:&amp;#8220;Column '列名' cannot be null&amp;#8221;&lt;/p&gt;&lt;p&gt;解决方法1：直接在连接字符串里面加一个 oldsyntax=true&amp;nbsp; 即可。&lt;/p&gt;&lt;p&gt;例如：server=127.0.0.1;user id=root;password=;database=itemdb;oldsyntax=true&lt;/p&gt;&lt;p&gt;解决方法2：将语句中的 @ 替换为 ? &lt;/p&gt;&lt;p&gt;例如：&lt;/p&gt;&lt;p&gt;StringBuilder strSql=new StringBuilder();&lt;/p&gt;&lt;p&gt;strSql.Append("insert into test(");&lt;/p&gt;&lt;p&gt;strSql.Append("name)");&lt;/p&gt;&lt;p&gt;strSql.Append(" values (");&lt;/p&gt;&lt;p&gt;strSql.Append("?name)");&lt;/p&gt;&lt;p&gt;MySqlParameter[] parameters = {&lt;/p&gt;&lt;p&gt;&amp;nbsp; new MySqlParameter("?name", MySqlDbType.VarChar,45)};&lt;/p&gt;&lt;p&gt;parameters[0].Value = model.name;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SharkXu/aggbug/2387533.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SharkXu/archive/2012/03/09/MySQLPara.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SharkXu/archive/2012/03/05/OracleXE.html</id><title type="text">Oracle Express Edition 版本</title><summary type="text">经初步调查：① Oracle Express Edition 有10G、11G的版本，② 不管是10G还是11G,CPU只能利用1个（就算机器有多个，也只能用一个），③ 另外10G版本用户能用的表空间只能达到4G(这是官方说法，实际测试下来的Windows 2003 下是4.14G ④ 不论是10g/11G 的版本，都能远程使用.NET 程序连接，其他的客户端如PL/SQL Developer 都没问题</summary><published>2012-03-05T06:59:00Z</published><updated>2012-03-05T06:59:00Z</updated><author><name>Shark Xu</name><uri>http://www.cnblogs.com/SharkXu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SharkXu/archive/2012/03/05/OracleXE.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SharkXu/archive/2012/03/05/OracleXE.html"/><content type="html">经初步调查：&lt;br /&gt;&amp;#9312; Oracle Express Edition 有10G、11G的版本，&lt;br /&gt;&amp;#9313; 不管是10G还是11G,CPU只能利用1个（就算机器有多个，也只能用一个），&lt;br /&gt;&amp;#9314; 另外10G版本用户能用的表空间只能达到4G(这是官方说法，实际测试下来的Windows 2003 下是4.14G &lt;br /&gt;&amp;#9315; 不论是10g/11G 的版本，都能远程使用.NET&amp;nbsp; 程序连接，其他的客户端如PL/SQL Developer 都没问题&lt;img src="http://www.cnblogs.com/SharkXu/aggbug/2380461.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SharkXu/archive/2012/03/05/OracleXE.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SharkXu/archive/2012/02/26/ODP_NET_SYSDBA.html</id><title type="text">使用ODP.Net 可以实现.Net 程序以SYSDBA  身份访问数据库</title><summary type="text">Oracle ODP.NET数据库访问连接字符串 Connection String Attribute默认值描述Connection Lifetime0Maximum life time (in seconds) of the connection当数据库连接被返回到连接池中时，它的创建时间将与当前时间比较，如果超过了 Connection Lifetime 规定的时间，它将被释放掉。为 0 时将被视为最大连接时间。Connection Timeout15Maximum time (in seconds) to wait for a free connection from the pool</summary><published>2012-02-26T10:46:00Z</published><updated>2012-02-26T10:46:00Z</updated><author><name>Shark Xu</name><uri>http://www.cnblogs.com/SharkXu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SharkXu/archive/2012/02/26/ODP_NET_SYSDBA.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SharkXu/archive/2012/02/26/ODP_NET_SYSDBA.html"/><content type="html">Oracle ODP.NET数据库访问连接字符串 &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;strong&gt;Connection String Attribute&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;&lt;strong&gt;默认值&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;&lt;strong&gt;描述&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;Connection Lifetime&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;0&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;Maximum life time (in seconds) of the connection&lt;/div&gt;&lt;div&gt;当数据库连接被返回到连接池中时，它的创建时间将与当前时间比较，如果超过了 Connection Lifetime 规定的时间，它将被释放掉。为 0 时将被视为最大连接时间。&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;Connection Timeout&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;15&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;Maximum time (in seconds) to wait for a free connection from the pool&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;Data Source&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;empty string&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;Oracle Net Service Name that identifies the database to connect to&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;&lt;strong&gt;DBA Privilege&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;&lt;strong&gt;empty string&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;&lt;strong&gt;Administrative privileges: SYSDBA or SYSOPER&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;Decr Pool Size&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;1&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;Controls the number of connections that are closed when an excessive amount of established connections are unused&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;Enlist&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;true&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;Enables or disables serviced components to automatically enlist in distributed transactions&lt;/div&gt;&lt;div&gt;当此值为 true 时，池中现存的所有数据库连接将被加入到它的创建线程的 Transaction Context 中。如果不存在这个 Transaction Context 则无任何变化。 &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;Incr Pool Size&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;5&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;Controls the number of connections that are established when all the connections in the pool are used&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;Max Pool Size&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;100&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;Maximum number of connections in a&amp;nbsp; pool&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;Min Pool Size&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;1&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;Minimum number of connections in a pool&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;Password &lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;empty string&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;Password for the user specified by User Id &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;Persist Security Info &lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;false &lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;Enables or disables the retrieval of password in the connection string&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;Pooling &lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;true &lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;Enables or disables connection pooling&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;Proxy User Id &lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;empty string&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;User name of the proxy user&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;Proxy Password &lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;empty string&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;Password of the proxy user&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div&gt;User Id &lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;empty string&lt;/div&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;div&gt;Oracle user name&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://www.cnblogs.com/SharkXu/aggbug/2368916.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SharkXu/archive/2012/02/26/ODP_NET_SYSDBA.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SharkXu/archive/2012/02/25/ORACLE10G_FLASHBACK.html</id><title type="text">Oracle10g 闪回数据库恢复的前提和适用情况</title><summary type="text">前提条件1） 数据库必须是归档模式2) 数据库的flashback是打开的 在Mount 状态下，执行ALTER DATABASE FLASHBACK ON3) 闪回恢复区，由DB_RECOVERY_FILE_DEST 和DB_RECOVERY_FILE_DEST_SIZE决定的， 所以要保证物理路径DB_RECOVERY_FILE_DEST的存在和该路径允许的空间大小适用情况下：主要是由于使用数据库系统的软件系统的操作需要的恢复操作。以下情况是不适用的① 删除了一个表空间后，不允许使用闪回数据库② 缩小数据文件到较小的尺寸后，不能通过闪回方式回复③ 如果控制文件重建后，不能使用闪回数据库恢复</summary><published>2012-02-25T10:39:00Z</published><updated>2012-02-25T10:39:00Z</updated><author><name>Shark Xu</name><uri>http://www.cnblogs.com/SharkXu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SharkXu/archive/2012/02/25/ORACLE10G_FLASHBACK.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SharkXu/archive/2012/02/25/ORACLE10G_FLASHBACK.html"/><content type="html">&lt;p&gt;前提条件&lt;/p&gt;&lt;p&gt;1） 数据库必须是归档模式&lt;/p&gt;&lt;p&gt;2)&amp;nbsp;&amp;nbsp; 数据库的flashback是打开的&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在Mount&amp;nbsp; 状态下，执行ALTER DATABASE FLASHBACK ON&lt;/p&gt;&lt;p&gt;3)&amp;nbsp;&amp;nbsp; 闪回恢复区，由DB_RECOVERY_FILE_DEST 和DB_RECOVERY_FILE_DEST_SIZE决定的，&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 所以要保证物理路径DB_RECOVERY_FILE_DEST的存在和该路径允许的空间大小&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;适用情况下：&lt;/p&gt;&lt;p&gt;主要是由于使用数据库系统的软件系统的操作需要的恢复操作。以下情况是不适用的&lt;/p&gt;&lt;p&gt;&amp;#9312; 删除了一个表空间后，不允许使用闪回数据库&lt;/p&gt;&lt;p&gt;&amp;#9313; 缩小数据文件到较小的尺寸后，不能通过闪回方式回复&lt;/p&gt;&lt;p&gt;&amp;#9314; 如果控制文件重建后，不能使用闪回数据库恢复控制文件&lt;/p&gt;&lt;p&gt;&amp;#9315; 某个数据文件损坏（也就是媒介故障），不能使用闪回数据库恢复&lt;/p&gt;&lt;p&gt;&amp;#9316; 闪回的以前的时间点，也不是无限制往前的，最多能恢复到DB_FLASHBACK_RETENTION_TARGET所指定的时间前。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SharkXu/aggbug/2368014.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SharkXu/archive/2012/02/25/ORACLE10G_FLASHBACK.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SharkXu/archive/2012/02/25/ORACLE10G_UNDO.html</id><title type="text">转：深度理解Oracle10g中UNDO_RETENTION参数的使用</title><summary type="text">本文转自：http://hi.baidu.com/lichangzai/blog/item/02f43b36a630bcd5a2cc2bc1.html，如原文作者对此有异议，本人愿意移除每一中数据库都需要有一种管理回滚或者撤销数据的方法。当一个DML发生以后，在用户还没有提交（COMMIT）改变，用户不希望这种改变继续保持，需要撤销所做的修改，将数据回退到没有发生改变以前，这时就需要使用一种被称为撤销记录的数据。使用撤销记录，我们可以：1、 当使用ROLLBACK语句时回滚事务，撤销DML操作改变的数据2、 恢复数据库3、 提供读取的一致性4、 使用Oracle Flashback Query</summary><published>2012-02-25T09:23:00Z</published><updated>2012-02-25T09:23:00Z</updated><author><name>Shark Xu</name><uri>http://www.cnblogs.com/SharkXu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SharkXu/archive/2012/02/25/ORACLE10G_UNDO.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SharkXu/archive/2012/02/25/ORACLE10G_UNDO.html"/><content type="html">&lt;p&gt;本文转自：&lt;a href="http://hi.baidu.com/lichangzai/blog/item/02f43b36a630bcd5a2cc2bc1.html"&gt;http://hi.baidu.com/lichangzai/blog/item/02f43b36a630bcd5a2cc2bc1.html&lt;/a&gt;，如原文作者对此有异议，本人愿意移除&lt;/p&gt;&lt;div&gt;每一中数据库都需要有一种管理回滚或者撤销数据的方法。当一个DML发生以后，在用户还没有提交（COMMIT）改变，用户不希望这种改变继续保持，需要撤销所做的修改，将数据回退到没有发生改变以前，这时就需要使用一种被称为&lt;em&gt;&lt;u&gt;撤销记录&lt;/u&gt;&lt;/em&gt;的数据。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;使用撤销记录，我们可以：&lt;/div&gt;&lt;div&gt;1、 当使用ROLLBACK语句时回滚事务，撤销DML操作改变的数据&lt;/div&gt;&lt;div&gt;2、 恢复数据库&lt;/div&gt;&lt;div&gt;3、 提供读取的一致性&lt;/div&gt;&lt;div&gt;4、 使用Oracle Flashback Query分析基于先前时间点的数据&lt;/div&gt;&lt;div&gt;5、 使用Oracle Flashback特性从逻辑故障中恢复数据库&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Oracle10g中的自动撤销管理（AUM）&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;在Oracle10g中对于回滚段的管理可以通过配置参数而实现自动管理。为启用撤销空间的自动管理，首先必须在init.ora中或者SPFILE文件中指定自动撤销模式。其次需要创建一个专用的表空间来存放撤销信息，这保证用户不会在SYSTEM表空间中保存撤销信息。此外还需要为撤销选择一个保留时间。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;如果需要实现AUM，需要配置以下3个参数：&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;UNDO_MAMAGEMENT&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;font face="新宋体"&gt;UNDO_TABLESPACE&lt;/font&gt;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;UNDO_RETENTION&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;查看初始化参数的设置：&lt;/div&gt;&lt;p&gt;&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="568"&gt;&lt;div&gt;SQL&amp;gt; show parameter undo_tablespace;&lt;/div&gt;&lt;div&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUE&lt;/div&gt;&lt;div&gt;------------------------------------ ----------- -----------------------&lt;/div&gt;&lt;div&gt;undo_tablespace&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UNDOTBS1&lt;/div&gt;&lt;div&gt;SQL&amp;gt; show parameter undo_management;&lt;/div&gt;&lt;div&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUE&lt;/div&gt;&lt;div&gt;------------------------------------ ----------- -----------------------&lt;/div&gt;&lt;div&gt;undo_management&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AUTO&lt;/div&gt;&lt;div&gt;SQL&amp;gt; show parameter undo_retention;&lt;/div&gt;&lt;div&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUE&lt;/div&gt;&lt;div&gt;------------------------------------ ----------- -----------------------&lt;/div&gt;&lt;div&gt;undo_retention&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 900&lt;/div&gt;&lt;div&gt;SQL&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;初始化参数的描述：&lt;/div&gt;&lt;p&gt;&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="187"&gt;&lt;div&gt;&lt;strong&gt;Initialization Parameter&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td valign="top" width="381"&gt;&lt;div&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="187"&gt;&lt;div&gt;UNDO_MANAGEMENT&lt;/div&gt;&lt;/td&gt;&lt;td valign="top" width="381"&gt;&lt;div&gt;If AUTO, use automatic undo management. The default is MANUAL&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="187"&gt;&lt;div&gt;UNDO_TABLESPACE&lt;/div&gt;&lt;/td&gt;&lt;td valign="top" width="381"&gt;&lt;div&gt;An optional dynamic parameter specifying the name of an undo tablespace. This parameter should be used only when the database has multiple undo tablespaces and you want to direct the database instance to use a particular undo tablespace.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="187"&gt;&lt;div&gt;UNDO_RETENTION&lt;/div&gt;&lt;/td&gt;&lt;td valign="top" width="381"&gt;&lt;div align="left"&gt;The UNDO_RETENTION parameter is ignored for a fixed size undo tablespace. The database may overwrite unexpired undo information when tablespace space becomes low.&lt;/div&gt;&lt;div&gt;For an undo tablespace with the AUTOEXTEND option enabled, the database attempts to honor the minimum retention period specified by UNDO_RETENTION. When space is low, instead of overwriting unexpired undo information, the tablespace auto-extends. If the MAXSIZE clause is specified for an auto-extending undo tablespace, when the maximum size is reached, the database may begin to overwrite unexpired undo information.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;如果将初始化参数UNDO_MANAGEMENT设置为AUTO，则Oracle10g将启用AUM。&lt;/div&gt;&lt;div&gt;可以在初始化参数UNDO_RETENTION中设置撤销保留时间的大小：&lt;/div&gt;&lt;div&gt;UNDO_RETENTION＝1800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 设置保留时间为30分钟（1800秒）&lt;/div&gt;&lt;div&gt;UNDO_RETENTION参数默认设置为900秒。&lt;/div&gt;&lt;p&gt;&lt;strong&gt;UNDO_RETENTION的值应该设置为多少才合理？&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;不存在理想的UNDO_RETENTION的时间间隔。保留时间间隔依赖于估计最长的事务可能运行的时间长度。根据数据库中最长事务长度的信息，可以给UNDO_RETENTION分配一个大致的时间。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;可以通过v$undostat视图的maxquerylen列查询在过去的一段时间内，最长的查询执行的时间（以秒为单位）。UNDO_RETENTION参数中的时间设置应该至少与maxquerylen列中给出的时间一样长。&lt;/div&gt;&lt;div&gt;Oracle提供如下为新数据库设置撤销保留时间间隔的指导：&lt;/div&gt;&lt;div&gt;1、 OLTP系统：15分钟&lt;/div&gt;&lt;div&gt;2、 混合： 1小时&lt;/div&gt;&lt;div&gt;3、 DSS系统：3小时&lt;/div&gt;&lt;div&gt;4、 闪回查询：24小时&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;UNDO_RETENTION参数的较高值并不保证撤销数据保留UNDO_RETENTION参数指定的时间。为保证撤销保留指定的时间，必须使用RETENTION GRARANTEE子句。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;例如：&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="568"&gt;&lt;div&gt;CREATE UNDO TABLESPACE UNDOTBS01&lt;/div&gt;&lt;div&gt;DATAFILE&lt;/div&gt;&lt;div&gt;&amp;#8216;E:\oracle\product\10.2.0\oradata\keymen\UNDOTBS01.DBF&amp;#8217;&lt;/div&gt;&lt;div&gt;SIZE 500M AUTOEXTEND ON&lt;/div&gt;&lt;div&gt;RETENTION GUARANTEE&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;也可以使用ALTER DATABASE命令保证数据库中的撤销保留&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="568"&gt;&lt;div&gt;ALTER&amp;nbsp;TABLESPACE UNDOTBS01 RETENTION GUARANTEE&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;关闭撤销信息的保证保留&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="568"&gt;&lt;div&gt;ALTER&amp;nbsp;TABLESPACE UNDOTBS01 RETENTION NOGUARANTEE&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;设置撤销表空间的尺寸&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;Oracle建议使用Undo Advisor的帮助下设置撤销表空间的尺寸。可以创建一个小尺寸（大约500M）的撤销表空间，AUTOEXTEND数据文件属性设置为ON，从而允许表空间自动扩展。此表空间将自动增长以支持数据库中活动事务数目的增长以及事务长度的增长。&lt;/div&gt;&lt;div&gt;在数据库运行适当的一段时间后，可以使用UNDO Advisor来得出关于设置撤销表空间尺寸的建议。应该使用Analysis Time Period字段中允许的最大时间。出于此目的，可以使用OEM UNDO Management页面中给出的Longest&amp;#8212;&amp;#8212;Runing Query长度。还必须根据闪回需求指定New UNDO Retention字段的值。例如：如果希望表能闪回24小时，应该使用24小时作为这个字段的值。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;假如数据库中用RETENTION GUARANTEE子句配置了保证保留撤销。如果撤销表空间太小不能满足使用它的所有活动事务，那么会发生以下情况：&lt;/div&gt;&lt;div&gt;1、 如果撤销表空间用完85％，Oracle将发布一个自动表空间警告&lt;/div&gt;&lt;div&gt;2、 当撤销表空间用完97％时，Oracle将发布一个自动表空间严重警告&lt;/div&gt;&lt;div&gt;3、 所有DML语句将不允许，并且会接收到一个空间超出错误&lt;/div&gt;&lt;div&gt;4、 DDL语句允许继续执行&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SharkXu/aggbug/2367945.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SharkXu/archive/2012/02/25/ORACLE10G_UNDO.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SharkXu/archive/2012/02/24/ORACLE_HWM.html</id><title type="text">ORACLE 高水位(HWM)</title><summary type="text">ORACLE HWM</summary><published>2012-02-24T03:00:00Z</published><updated>2012-02-24T03:00:00Z</updated><author><name>Shark Xu</name><uri>http://www.cnblogs.com/SharkXu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SharkXu/archive/2012/02/24/ORACLE_HWM.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SharkXu/archive/2012/02/24/ORACLE_HWM.html"/><content type="html">&lt;p&gt;在9I中:&lt;br /&gt;(1)如果MINEXTENT 可以使ALTER TABLE TABLENAME DEALLOCATE UNUSED将HWM以上所有没使用的空间释放&lt;br /&gt;(2)如果MINEXTENT &amp;gt;HWM 则释放MINEXTENTS 以上的空间。如果要释放HWM以上的空间则使用KEEP 0。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;ALTER TABLE TABLESNAME DEALLOCATE UNUSED KEEP 0;&lt;br /&gt;(3) TRUNCATE TABLE DROP STORAGE(缺省值)命令可以将MINEXTENT 之上的空间完全释放(交还给操作系统),并且重置HWM。&lt;br /&gt;(4)如果仅是要移动HWM,而不想让表长时间锁住,可以用TRUNCATE TABLE REUSESTORAGE,仅将HWM重置。&lt;br /&gt;(5)ALTER TABLE MOVE会将HWM移动,但在MOVE时需要双倍的表空间,而且如果表上有索引的话,需要重构索引&lt;br /&gt;(6)DELETE表不会重置HWM,也不会释放自由的空间(也就是说DELETE空出来的空间只能给对象本身将来的INSERT/UPDATE使用,不能给其它的对象使用)&lt;br /&gt;&lt;br /&gt;在ORACLE 10G:&lt;br /&gt;(1)可以使用ALTER TABLE TEST_TAB SHRINK SPACE命令来联机移动HWM&lt;br /&gt;(2)如果要同时压缩表的索引,可以发布:ALTER TABLE TEST_TAB SHRINK SPACE CASCADE &lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/sharkxu/Oracle_Storage.gif" width="978" height="367" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SharkXu/aggbug/2366230.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SharkXu/archive/2012/02/24/ORACLE_HWM.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SharkXu/archive/2012/02/08/ORACLEExp.html</id><title type="text">ORACLE 9i数据导入到ORACLE 10G中文出现的乱码问题</title><summary type="text">不论是导出还是导入Imp/exp之前先设定NLS_LANG=AMERICAN_AMERICA.ZHS16GBK</summary><published>2012-02-08T06:27:00Z</published><updated>2012-02-08T06:27:00Z</updated><author><name>Shark Xu</name><uri>http://www.cnblogs.com/SharkXu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SharkXu/archive/2012/02/08/ORACLEExp.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SharkXu/archive/2012/02/08/ORACLEExp.html"/><content type="html">&lt;p&gt;不论是导出还是导入Imp/exp之前先设定&lt;/p&gt;&lt;p&gt;NLS_LANG=AMERICAN_AMERICA.ZHS16GBK&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SharkXu/aggbug/2342654.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SharkXu/archive/2012/02/08/ORACLEExp.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SharkXu/archive/2012/02/08/ASPNETORA11G.html</id><title type="text">关于Windows 7 64位下Visual Studio 2010 开发的Asp.net程序连接Oracle 的出现的问题</title><summary type="text">之前安装的Oracle 10g 32位的客户端的，一直出现ORA-12154: TNS:could not resolve service name 各种办法都想尽，设置目录权限了，换安装Oracle 10g 64位的，都没折首先说一下环境，不是以下环境出现ORA-12154这样的错误，不一定适用① 操作系统Windows 7 64位② Visual Studio 2008/Visual Studio 2008③ 运行的程序是Asp.net 的Web Application/Web Site/Web Service④ 连接的数据库是 Oracle最后发现安装Oracle 11G 客户端，就好了</summary><published>2012-02-08T05:15:00Z</published><updated>2012-02-08T05:15:00Z</updated><author><name>Shark Xu</name><uri>http://www.cnblogs.com/SharkXu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SharkXu/archive/2012/02/08/ASPNETORA11G.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SharkXu/archive/2012/02/08/ASPNETORA11G.html"/><content type="html">&lt;p&gt;&amp;nbsp;之前安装的Oracle 10g&amp;nbsp; 32位的客户端的，一直出现&lt;font color="#d84d2d"&gt;ORA-12154: TNS:could not resolve service name&lt;/font&gt; &lt;/p&gt;&lt;p&gt;各种办法都想尽，设置目录权限了，换安装Oracle 10g 64位的，都没折&lt;/p&gt;&lt;p&gt;首先说一下环境，不是以下环境出现ORA-12154这样的错误，不一定适用&lt;/p&gt;&lt;p&gt;&amp;#9312; 操作系统Windows 7 64位&lt;/p&gt;&lt;p&gt;&amp;#9313; Visual Studio 2008/Visual Studio 2008&lt;/p&gt;&lt;p&gt;&amp;#9314; 运行的程序是Asp.net 的Web Application/Web Site/Web Service&lt;/p&gt;&lt;p&gt;&amp;#9315; 连接的数据库是 Oracle&lt;/p&gt;&lt;p&gt;最后发现安装&lt;strong&gt;Oracle 11G 客户端，就好了，&lt;/strong&gt;一切都是那么的蹊跷！！！！！&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SharkXu/aggbug/2342542.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SharkXu/archive/2012/02/08/ASPNETORA11G.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
