??xml version="1.0" encoding="utf-8" standalone="yes"?>国产gv天堂亚洲国产gv刚刚碰,亚洲视频一区二区三区四区,亚洲av日韩av综合http://m.tkk7.com/john_yu/category/3524.html正在学习中:Q?/description>zh-cnMon, 28 Jan 2008 19:11:07 GMTMon, 28 Jan 2008 19:11:07 GMT60Oracle 内存分配http://m.tkk7.com/john_yu/archive/2008/01/28/178286.htmljohnjohnMon, 28 Jan 2008 15:58:00 GMThttp://m.tkk7.com/john_yu/archive/2008/01/28/178286.htmlhttp://m.tkk7.com/john_yu/comments/178286.htmlhttp://m.tkk7.com/john_yu/archive/2008/01/28/178286.html#Feedback0http://m.tkk7.com/john_yu/comments/commentRss/178286.htmlhttp://m.tkk7.com/john_yu/services/trackbacks/178286.html
 Oracle 内存分配
关于SGA讄的一Ҏȝ
本ȝ不针对特例,仅对服务器只存在OS + ORACLE ZQ如果存在其他应用请酌情考虑
写这个也是因来这U重复性的问题发生的太多所D?br />
首先不要q信STS,SG,OCP,EXPERT {给出的M、内存百分比的说?br /> 基本掌握的原则是Q?data buffer 通常可以可能的大,shared_pool_size 要适度Qlog_buffer 通常大到几百K?M差不多?br />
讄之前Q首先要明确2个问?br /> 1Q?除去OS和一些其他开销Q能lORACLE使用的内存有多大
2Qoracle?4bit or 32 bit,32bit 通常 SGA?1.7G 的限?某些OS的处理或者WINDOWS上有特定讑֮可以支持?G以上甚至辑ֈ3.7GQ本人无q方面经?

下面是我的windows2000下的oracle :

SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
PL/SQL Release 8.1.7.0.0 - Production
CORE 8.1.7.0.0 Production
TNS for 32-bit Windows: Version 8.1.7.0.0 - Production
NLSRTL Version 3.4.1.0.0 - Production

SQL>

windows上存?2bit的限Ӟ如AIX、HP UNIX {有明确?4BIT OS and ORACLE的版本,32bit oracle可以装在64bit os 上,64 bit oracle不能装在32 bit OS?br />
不管oracle?2 bit ORACLEq是 64 bit ?假定应用存在没有很好的用bind var 的情况,也不能设|?shared_pool_size q大Q通常应该控制?00M--300M,如果?ORACLE ERP 一cȝ使用了很多存储过E函数、包 Q或者很大的pȝQ可以考虑增大shared_pool_size ,但是如果过500M可能是危险的Q达?G可能会造成CPU的严重负担,pȝ甚至瘫痪。所以shared_pool_size 如果过300Mq命中率不高Q那么应该从应用上找原因而不是一味的增加内存Qshared_pool_size q大主要增加了管理负担和latch 的开销?br />
log_buffer : 128K ---- 1M 之间通常问题不大Q不应该太大

large_pool_size :如果不设|MTSQ通常?RMAN 、OPQ 会用到Q但是在10M --- 50M 应该差不多了。假如设|?MTS,则由?UGA 攑ֈlarge_pool_size 的缘故,q个时候依?session最大数量和 sort_ares_size {参数设|,必须增大large_pool_size 的设|,可以考虑?session * (sort_area_size + 2M)。这里要提醒一点,不是必须使用MTSQ我们都不主张用MTSQ尤其同时在U用h于500的情况下?br />
java_pool_size : 若不使用javaQ给30M通常够?br />
data buffer ,在做了前面的讄后,凡可以提供给oracle的内存,都应该给data buffer = (db_block_size * db_block_buffers)
?i 中可以是 db_cache_size

q有2个重要参数我们需要注?br />
sort_area_size and hash_area_size
q两个参数在非MTS下都是属于PGA Q不属于SGA,是ؓ每个session单独分配的,在我们的服务器上除了OS + SGA,一定要考虑q两部分

(****) : OS 使用内存+ SGA + session*(sort_area_size + hash_area_size + 2M) < ȝ理RAM 为好


q样归结q来Q假定oracle?32 bit ,服务器RAM大于2G Q注意你的PGA的情况,,则徏?br />
shared_pool_size + data buffer +large_pool_size + java_pool_size < 1.6G


再具体化Q注意满上?****) 的原则的基础上可以参考如下设|?br /> 如果512M RAM
shared_pool_size = 50M, data buffer = 200M

如果1G RAM
shared_pool_size = 100M , data buffer = 500M

如果2G
shared_pool_size = 150M ,data buffer = 1.2G

物理内存再大已经跟参数没有关pM


假定64 bit ORACLE

内存4G
shared_pool_size = 200M , data buffer = 2.5G

内存8G
shared_pool_size = 300M , data buffer = 5G

内存 12G
shared_pool_size = 300M-----800M , data buffer = 8G



以上仅ؓ参考|不同pȝ可能差异比较大,需要根据具体情况调整。徏议在讄参数的同Ӟinit中?lock_sga Q在不同的^C可能有不同的方式Q得SGA锁定在物理内存中而不被放?SWAP 中,q样Ҏ率有好处


关于内存的设|,要再q行l致的调_L作用不大Q但可根据statspack信息和v$system_event,v$sysstat,v$sesstat,v$latch {view信息来考虑微调


john 2008-01-28 23:58 发表评论
]]>
Oracle 回滚D늩间回收步?/title><link>http://m.tkk7.com/john_yu/archive/2007/12/27/170768.html</link><dc:creator>john</dc:creator><author>john</author><pubDate>Wed, 26 Dec 2007 16:50:00 GMT</pubDate><guid>http://m.tkk7.com/john_yu/archive/2007/12/27/170768.html</guid><wfw:comment>http://m.tkk7.com/john_yu/comments/170768.html</wfw:comment><comments>http://m.tkk7.com/john_yu/archive/2007/12/27/170768.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/john_yu/comments/commentRss/170768.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/john_yu/services/trackbacks/170768.html</trackback:ping><description><![CDATA[     摘要:   是谁"偷偷?用了那么多空间呢(本来有几十个G的Free盘I间?? 查数据库表空间占用空间情? SQL> select tablespace_name,sum(bytes)/1024/1024/1024 GB  2 from dba...  <a href='http://m.tkk7.com/john_yu/archive/2007/12/27/170768.html'>阅读全文</a><img src ="http://m.tkk7.com/john_yu/aggbug/170768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/john_yu/" target="_blank">john</a> 2007-12-27 00:50 <a href="http://m.tkk7.com/john_yu/archive/2007/12/27/170768.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle安装的一些问题收?/title><link>http://m.tkk7.com/john_yu/archive/2007/10/24/155670.html</link><dc:creator>john</dc:creator><author>john</author><pubDate>Wed, 24 Oct 2007 12:50:00 GMT</pubDate><guid>http://m.tkk7.com/john_yu/archive/2007/10/24/155670.html</guid><wfw:comment>http://m.tkk7.com/john_yu/comments/155670.html</wfw:comment><comments>http://m.tkk7.com/john_yu/archive/2007/10/24/155670.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/john_yu/comments/commentRss/155670.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/john_yu/services/trackbacks/155670.html</trackback:ping><description><![CDATA[     摘要: 在安装过E中出现的一些问题的解决办法。值得收藏与学习。比如在安装的时候如果有中文的\径则会出现类DL提示:加蝲数据库时出错QareasQueries Oracle的系l要? 企业版:CPU 最低PENTIUM 200M 推荐 PENTIUMIII 1G以上     内存 最?28M 推荐 512M     盘I间 pȝ?40M 安装?.5GQFAT32Q或2.75GQ?..  <a href='http://m.tkk7.com/john_yu/archive/2007/10/24/155670.html'>阅读全文</a><img src ="http://m.tkk7.com/john_yu/aggbug/155670.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/john_yu/" target="_blank">john</a> 2007-10-24 20:50 <a href="http://m.tkk7.com/john_yu/archive/2007/10/24/155670.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORA-27121 错误Q找了好半天:(http://m.tkk7.com/john_yu/archive/2007/07/17/130890.htmljohnjohnTue, 17 Jul 2007 09:03:00 GMThttp://m.tkk7.com/john_yu/archive/2007/07/17/130890.htmlhttp://m.tkk7.com/john_yu/comments/130890.htmlhttp://m.tkk7.com/john_yu/archive/2007/07/17/130890.html#Feedback0http://m.tkk7.com/john_yu/comments/commentRss/130890.htmlhttp://m.tkk7.com/john_yu/services/trackbacks/130890.html遇到 ORA-27121 错误
ORA-01034: ORACLE not available
ORA-27121: unable to determine size of shared memory segment
Linux Error: 13: Permission denied

主要是因为oracle安装E序没有loracleq个可执行程序设|正的setuid。这栯|一下:

$ cd $ORACLE_HOME/bin
$ chmod 6751 oracle

l果cMq样p了?/font>

$ ls -l $ORACLE_HOME/bin/oracle
-rwsr-s--x 1 oracle oinstall 23352783 Aug 14 2001 /home/oracle/app/oracle/product/8.1.6/bin/oracle



q个错误的典型现象:使用oracle用户一切正常,但是在用其它用hQ用sqlplus无法dQ报告上面的错误Q?img src ="http://m.tkk7.com/john_yu/aggbug/130890.html" width = "1" height = "1" />

john 2007-07-17 17:03 发表评论
]]>
Oracle 的Trigger 中不能操作基??http://m.tkk7.com/john_yu/archive/2007/04/27/114215.htmljohnjohnFri, 27 Apr 2007 14:36:00 GMThttp://m.tkk7.com/john_yu/archive/2007/04/27/114215.htmlhttp://m.tkk7.com/john_yu/comments/114215.htmlhttp://m.tkk7.com/john_yu/archive/2007/04/27/114215.html#Feedback0http://m.tkk7.com/john_yu/comments/commentRss/114215.htmlhttp://m.tkk7.com/john_yu/services/trackbacks/114215.html

 Oracle 的Trigger 中不能操作基?/font>

在将SYBASE的TriggerUL到ORACLE的时候发C个问题,

是在一张表的Trigger中不能含有操作该的SQLQ?/font>

例如STOCKINFO的Trigger里不有操作STOCKINFO的SQL?/font>

那加权^均h如何取呢Q?/font>

现在只能在原q_L基础再与Chq行加权q_Q结果是一L?/font>

注意Q?/font>

AFTER UPDATE的Trigger不能操作Q只有在BEFORE INSERT的Trigger里才能操作基表?/font>

BEFORE INSERT的Trigger只有用INSERT INTO T1(COL1) VALUES('1');才有效,

INSERT INTO T1(COL1) SELECT '1' FROM DUAL;也是无效的?/font>

例如Q?/font>

SQL> insert into t1 values (1,'a'); --先插入一条数据,避免ORA-01403: no data found 错误?br>1 row inserted
SQL> commit;

SQL> create or replace trigger tri_t1
2 before insert on t1 for each row
3 declare
4 cvar varchar2(10);
5 begin
6 select 'Y' into cvar from t1 WHERE ROWNUM=1;
7 end;
8 /
Trigger created

SQL> insert into t1 values (2,'b'); -- insert into ... values 没有问题
1 row inserted

SQL> insert into t1 select '3','c' from dual; -- insert into ... select .. from 报错
ORA-04091: table TEST.T1 is mutating, trigger/function may not see it
ORA-06512: at "TEST.TRI_T1", line 4
ORA-04088: error during execution of trigger 'TEST.TRI_T1'

 q且:old?new只有在行U(for each rowQ的Trigger有效?/font>

|上原文Q?/font>

ORA-04091?table mutating

q日解决了一个trigger中报ORA-04091错误的问题,补了关于Oracle table mutating的一课:

mutating table 是指一个当前正在被update,delete,insert语句修改的表Q如果在一个行U别的trigger中读取或修改一个mutating tableQ则往往会遇到ORA-04091错误.例如Q如果在trigger中用了select或dml 语句讉Ktrigger所在的表,则就会收到这个错误?/p>

然而,Oracle8i?i文档中都没有解释清楚before和after cd?row trigger 在对待两U不同的insert语句(insert into ... values ... ?insert into ... select ...)时的差别Q?/p>

1、对于after cd?for each row U别的triggersQ不论哪Uinsert语句触发了triggerQ都不允许在 trigger 中访问本trigger所依赖的table的,试如下Q?br>SQL> create table t1 ( c1 number,c2 varchar2(10));
Table created
SQL> create or replace trigger tri_t1
2 after insert on t1 for each row
3 declare
4 cvar varchar2(10);
5 begin
6 select 'Y' into cvar from t1 WHERE ROWNUM=1; --q里讉K了trigger 本表
7 end;
8 /
Trigger created

SQL> insert into t1 values (1,'a');
ORA-04091: table TEST.T1 is mutating, trigger/function may not see it
ORA-06512: at "TEST.TRI_T1", line 4
ORA-04088: error during execution of trigger 'TES.TRI_T1'

SQL> insert into t1 select '1','a' from dual;
ORA-04091: table TEST.T1 is mutating, trigger/function may not see it
ORA-06512: at "TEST.TRI_T1", line 4
ORA-04088: error during execution of trigger 'TEST.TRI_T1'

2、对于before cd?for each row U别的triggersQ如果?insert into ... values 语句触发此trigger Q则在trigger 中访问本table没有问题Q?br>但如果?insert into select .. from 语句触发此trigger Q则在trigger 中访问本table报ora-04091错误Q?br>只有在Oracle 7标准的开发文档中有这L说明Q?br>From the Application Developers Guide
"There is an exception to this restriction;
For single row INSERTs, constraining tables are mutating for
AFTER row triggers, but not for BEFORE row triggers.
INSERT statements that involve more than 1 row are not considered
single row inserts."
"INSERT INTO <table_name> SELECT ..." are not considered single row
inserts, even if they only result in 1 row being inserted.

试如下Q?br>SQL> drop trigger tri_t1;
Trigger dropped

SQL> insert into t1 values (1,'a'); --先插入一条数据,避免ORA-01403: no data found 错误?br>1 row inserted
SQL> commit;

SQL> create or replace trigger tri_t1
2 before insert on t1 for each row
3 declare
4 cvar varchar2(10);
5 begin
6 select 'Y' into cvar from t1 WHERE ROWNUM=1;
7 end;
8 /
Trigger created

SQL> insert into t1 values (2,'b'); -- insert into ... values 没有问题
1 row inserted

SQL> insert into t1 select '3','c' from dual; -- insert into ... select .. from 报错
ORA-04091: table TEST.T1 is mutating, trigger/function may not see it
ORA-06512: at "TEST.TRI_T1", line 4
ORA-04088: error during execution of trigger 'TEST.TRI_T1'

我们的开发h员因Z知道q个特别情况Q近日在修改一个存储过E时候,原来的insert values 写法Ҏ了insert select 写法Q而trigger 又是beforecd的,D出现了ORA-04091错误Q搞得分析了好久也没有头l?/p>

其实Q在metalink中有一note说到了:

文档 ID: 注释:132569.1
主题: ORA-4091 on BEFORE ROW TRIGGER with INSERT statement
cd: PROBLEM
状? PUBLISHED
内容cd: TEXT/X-HTML
创徏日期: 16-JAN-2001
上次修订日期: 09-AUG-2004

Problem Description
-------------------

You want to do an insert into a table that has a BEFORE row Trigger.

When you hard code the values into the INSERT statement, the trigger works fine.

For example:

INSERT
INTO content (cont_name,cont_seg,cat_seq)
VALUES('blah',100,200);

1 row created.

However, your trigger errors with ERROR ORA-4091 with
INSERT INTO...select statement:

INSERT
INTO content (cont_name,cont_seq,cat_seq) (select....from category);

ERROR at line 1:
ORA-4091: table <schema>.CONTENT is mutating, trigger/function may not see it
ORA-6512: at "<schema>.INS_CONTENT", line 4
ORA-4088: error during execution of trigger '<schema>.INS_CONTENT'


TRIGGER:

CREATE OR REPLACE trigger INS_CONTENT
BEFORE INSERT on CONTENT
FOR EACH ROW
DECLARE
max_sort number;
BEGIN
SELECT max(cont_sort) INTO max_sort FROM CONTENT;
IF max_sort IS NOT NULL AND max_sort!= 99999 THEN
IF :new.cont_sort IS NULL THEN
:new.cont_sort := max_sort +1;
END IF;
END IF;
SELECT SEQ_CONT_SEQ.nextval INTO :new.CONT_SEQ from dual;
END;


Explanation
-----------

Error: ORA 4091
Text: table %s.%s is mutating, trigger/function may not see it
-------------------------------------------------------------------------------
Cause: A trigger (or a user defined PL/SQL function that is referenced in
this statement) attempted to look at (or modify) a table that was
in the middle of being modified by the statement which fired it.

Action: Rewrite the trigger (or function) so it does not read that table.

Explanation:
You cannot look at or modify the table that is mutating.

Note:
From the Application Developers Guide
"There is an exception to this restriction;
For single row INSERTs, constraining tables are mutating for
AFTER row triggers, but not for BEFORE row triggers.
INSERT statements that involve more than 1 row are not considered
single row inserts."

"INSERT INTO <table_name> SELECT ..." are not considered single row
inserts, even if they only result in 1 row being inserted.


RELATED DOCUMENTS
-----------------

Oracle Application Developer's Guide (A68003-01)
Chapter 'Using Database Triggers', page 13-22)



john 2007-04-27 22:36 发表评论
]]>
Oracle ---理UNDO表空?/title><link>http://m.tkk7.com/john_yu/archive/2007/04/03/108145.html</link><dc:creator>john</dc:creator><author>john</author><pubDate>Tue, 03 Apr 2007 02:52:00 GMT</pubDate><guid>http://m.tkk7.com/john_yu/archive/2007/04/03/108145.html</guid><wfw:comment>http://m.tkk7.com/john_yu/comments/108145.html</wfw:comment><comments>http://m.tkk7.com/john_yu/archive/2007/04/03/108145.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/john_yu/comments/commentRss/108145.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/john_yu/services/trackbacks/108145.html</trackback:ping><description><![CDATA[<p><font size=2><span lang=EN-US>10.</span><span style="FONT-FAMILY: 宋体">理</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p><font size=2></font></p> <p><font size=2></font></p> <p><font size=2><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间用于存?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">数据</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">当执?/span><span lang=EN-US>DML</span><span style="FONT-FAMILY: 宋体">操作</span><span lang=EN-US>(INSERT,UPDATE</span><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>DELETE)</span><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>,oracle</span><span style="FONT-FAMILY: 宋体">会将q些操作的旧数据写入?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>oracle9i</span><span style="FONT-FAMILY: 宋体">之前</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">理</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">数据时?/span><span lang=EN-US>(Rollback Segment)</span><span style="FONT-FAMILY: 宋体">完成?/span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>oracle9i</span><span style="FONT-FAMILY: 宋体">开?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">理</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">数据不仅可以使用回滚D?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">q可以?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">因ؓ规划和管理回滚段比较复杂</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">所?/span><span lang=EN-US>oracle database 10g</span><span style="FONT-FAMILY: 宋体">已经完全丢弃用回滚段</span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">q且使用</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间来理</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">数据</span><span lang=EN-US>.</span></font></p> <p><font size=2></font></p> <p><font size=2><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">数据也称为回?/span><span lang=EN-US>(ROLLBACK)</span><span style="FONT-FAMILY: 宋体">数据</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">它用于确保数据的一致?/span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">当执?/span><span lang=EN-US>DML</span><span style="FONT-FAMILY: 宋体">操作?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">事务操作前的数据被称?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">记录</span><span lang=EN-US>.UNDO</span><span style="FONT-FAMILY: 宋体">D는于保存事务所修改数据的旧?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">其中存储着被修Ҏ据块的位|以及修改前数据</span><span lang=EN-US>,</span></font></p> <p><font size=2><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">数据的作?/span><span lang=EN-US>.</span></font></p> <p><font size=2><span lang=EN-US>1,</span><span style="FONT-FAMILY: 宋体">回退事务</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">当执?/span><span lang=EN-US>DML</span><span style="FONT-FAMILY: 宋体">操作修改数据?/span><span lang=EN-US>,UNDO</span><span style="FONT-FAMILY: 宋体">数据被存攑ֈ</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">而新数据则被存放到数据段?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">如果事务操作存在问题</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">旧需要回退事务</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">以取消事务变?/span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">假定用户</span><span lang=EN-US>A</span><span style="FONT-FAMILY: 宋体">执行了语?/span><span lang=EN-US>UPDATE emp SET sal=1000 WHERE empno=7788</span><span style="FONT-FAMILY: 宋体">后发?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">应该修改雇员</span><span lang=EN-US>7963</span><span style="FONT-FAMILY: 宋体">的工?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">而不是雇?/span><span lang=EN-US>7788</span><span style="FONT-FAMILY: 宋体">的工?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">那么通过执行</span><span lang=EN-US>ROLLBACK</span><span style="FONT-FAMILY: 宋体">语句可以取消事务变化</span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">当执?/span><span lang=EN-US>ROLLBACK</span><span style="FONT-FAMILY: 宋体">命o?/span><span lang=EN-US>,oracle</span><span style="FONT-FAMILY: 宋体">会将</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D늚</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">数据</span><span lang=EN-US>800</span><span style="FONT-FAMILY: 宋体">写回的数据段?/span><span lang=EN-US>.</span></font></p> <p><font size=2><span lang=EN-US>2,</span><span style="FONT-FAMILY: 宋体">M致?/span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">用户索数据库数据?/span><span lang=EN-US>,oracle</span><span style="FONT-FAMILY: 宋体">L使用用户只能看到被提交过的数?/span><span lang=EN-US>(</span><span style="FONT-FAMILY: 宋体">d提交</span><span lang=EN-US>)</span><span style="FONT-FAMILY: 宋体">或特定时间点的数?/span><span lang=EN-US>(SELECT</span><span style="FONT-FAMILY: 宋体">语句旉?/span><span lang=EN-US>).</span><span style="FONT-FAMILY: 宋体">q样可以保数据的一致?/span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">例如</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">当用?/span><span lang=EN-US>A</span><span style="FONT-FAMILY: 宋体">执行语句</span><span lang=EN-US>UPDATE emp SET sal=1000 WHERE empno=7788</span><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>,UNDO</span><span style="FONT-FAMILY: 宋体">记录会被存放到回滚段?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">而新数据则会存放?/span><span lang=EN-US>EMP</span><span style="FONT-FAMILY: 宋体">D中</span><span lang=EN-US>;</span><span style="FONT-FAMILY: 宋体">假定此时该数据尚未提?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">q且用户</span><span lang=EN-US>B</span><span style="FONT-FAMILY: 宋体">执行</span><span lang=EN-US>SELECT sal FROM emp WHERE empno=7788,</span><span style="FONT-FAMILY: 宋体">此时用户</span><span lang=EN-US>B</span><span style="FONT-FAMILY: 宋体">取?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">数据</span><span lang=EN-US>800,</span><span style="FONT-FAMILY: 宋体">而该数据正是?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">记录中取得的</span><span lang=EN-US>.</span></font></p> <p><font size=2><span lang=EN-US>3,</span><span style="FONT-FAMILY: 宋体">事务恢复</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">事务恢复是例E恢复的一部分</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">它是?/span><span lang=EN-US>oracle server</span><span style="FONT-FAMILY: 宋体">自动完成?/span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">如果在数据库q行q程中出CE失?/span><span lang=EN-US>(</span><span style="FONT-FAMILY: 宋体">如断?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">内存故障</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">后台q程故障{?/span><span lang=EN-US>),</span><span style="FONT-FAMILY: 宋体">那么当重?/span><span lang=EN-US>oracle server</span><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">后台q程</span><span lang=EN-US>SMON</span><span style="FONT-FAMILY: 宋体">会自动执行例E恢?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">执行例程恢复?/span><span lang=EN-US>,oracl</span><span style="FONT-FAMILY: 宋体">会重新做所有未应用的记?/span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">回退未提交事?/span><span lang=EN-US>.</span></font></p> <p><font size=2><span lang=EN-US>4,</span><span style="FONT-FAMILY: 宋体">倒叙查询</span><span lang=EN-US>(FlashBack Query)</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">倒叙查询用于取得特定旉点的数据库数?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">它是</span><span lang=EN-US>9i</span><span style="FONT-FAMILY: 宋体">新增加的Ҏ?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">假定当前旉Z?/span><span lang=EN-US>11:00,</span><span style="FONT-FAMILY: 宋体">某用户在上午</span><span lang=EN-US>10:00</span><span style="FONT-FAMILY: 宋体">执行</span><span lang=EN-US>UPDATE emp SET sal=3500 WHERE empno=7788</span><span style="FONT-FAMILY: 宋体">语句</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">修改q提交了事务</span><span lang=EN-US>(</span><span style="FONT-FAMILY: 宋体">雇员原工资ؓ</span><span lang=EN-US>3000),</span><span style="FONT-FAMILY: 宋体">Z取得</span><span lang=EN-US>10:00</span><span style="FONT-FAMILY: 宋体">之前的雇员工?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">用户可以使用倒叙查询特征</span><span lang=EN-US>.</span></font></p> <p><font size=2></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">使用</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">参数</span></font></p> <p><span lang=EN-US><font size=2>1,UNDO_MANAGEMENT</font></span></p> <p><font size=2><span style="FONT-FAMILY: 宋体">该初始化参数用于指定</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">数据的管理方?/span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">如果要用自动管理模?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">必须讄该参Cؓ</span><span lang=EN-US>AUTO,</span><span style="FONT-FAMILY: 宋体">如果使用手工理模式</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">必须讄该参Cؓ</span><span lang=EN-US>MANUAL,</span><span style="FONT-FAMILY: 宋体">使用自动理模式?/span><span lang=EN-US>,oracle</span><span style="FONT-FAMILY: 宋体">会?/span><span lang=EN-US>undo</span><span style="FONT-FAMILY: 宋体">表空间管?/span><span lang=EN-US>undo</span><span style="FONT-FAMILY: 宋体">理</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">使用手工理模式?/span><span lang=EN-US>,oracle</span><span style="FONT-FAMILY: 宋体">会用回滚段理</span><span lang=EN-US>undo</span><span style="FONT-FAMILY: 宋体">数据</span><span lang=EN-US>,</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">需要注?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">使用自动理模式?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">如果没有配置初始化参?/span><span lang=EN-US>UNDO_TABLESPACE,oracle</span><span style="FONT-FAMILY: 宋体">会自动选择W一个可用的</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间存?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">数据</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">如果没有可用?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>,oracle</span><span style="FONT-FAMILY: 宋体">会?/span><span lang=EN-US>SYSTEM</span><span style="FONT-FAMILY: 宋体">回滚D存?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">记录</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">q在</span><span lang=EN-US>ALTER</span><span style="FONT-FAMILY: 宋体">文g中记载警?/span><span lang=EN-US>.</span></font></p> <p><span lang=EN-US><font size=2>2,UNDO_TABLESPACE</font></span></p> <p><font size=2><span style="FONT-FAMILY: 宋体">该初始化参数用于指定例程所要用的</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">使用自动</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">理模式?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">通过配置该参数可以指定例E所要用的</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>RAC(Real Application Cluster)</span><span style="FONT-FAMILY: 宋体">l构?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">因ؓ一?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间不能由多个例程同时使用</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">所有必Mؓ每个例程配置一个独立的</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p><span lang=EN-US><font size=2>3,UNDO_RETENTION</font></span></p> <p><font size=2><span style="FONT-FAMILY: 宋体">该初始化参数用于控制</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">数据的最大保留时?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">光认gؓ</span><span lang=EN-US>900</span><span style="FONT-FAMILY: 宋体">U?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>9i</span><span style="FONT-FAMILY: 宋体">开?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">通过配置该初始化参数</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">可以指定</span><span lang=EN-US>undo</span><span style="FONT-FAMILY: 宋体">数据的保留时?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">从而确定倒叙查询特征</span><span lang=EN-US>(Flashback Query)</span><span style="FONT-FAMILY: 宋体">可以查看到的最早时间点</span><span lang=EN-US>.</span></font></p> <p><font size=2></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">建立</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>,</span></font></p> <p><font size=2><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间专门用于存?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">数据</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">q且?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间尚不能建立M数据对象</span><span lang=EN-US>(</span><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">索引</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>)</span></font></p> <p><font size=2><span lang=EN-US>1,</span><span style="FONT-FAMILY: 宋体">使用</span><span lang=EN-US>CREATE DATABASE</span><span style="FONT-FAMILY: 宋体">命o建立</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p><font size=2><span lang=EN-US><span></span></span><span style="FONT-FAMILY: 宋体">当?/span><span lang=EN-US>CREATE DATABASE</span><span style="FONT-FAMILY: 宋体">命o建立数据库时</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">通过指定</span><span lang=EN-US>UNDO TABLESPACE</span><span style="FONT-FAMILY: 宋体">选项</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">可以建立</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">CZ如下</span><span lang=EN-US>:</span></font></p> <p><span lang=EN-US><font size=2>CREATE DATABASE db01</font></span></p> <p><span lang=EN-US><font size=2>…</font></span></p> <p><span lang=EN-US><font size=2>UNDO TABLESPACE undotbs_01</font></span></p> <p><span lang=EN-US><font size=2>DATAFILE ‘/u01/oracle/rbdb1/undo0101.dbf’ SIZE 30M;</font></span></p> <p><font size=2><span style="FONT-FAMILY: 宋体">注意</span><span lang=EN-US>:UNDO TABLESPACE </span><span style="FONT-FAMILY: 宋体">子句不是必须?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">如果使用自动</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">理模式</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">q且没有指定该子?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">那么建立数据库时会自动生成名?/span><span lang=EN-US>SYS_UNDOTBS</span><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p><font size=2></font></p> <p><font size=2><span lang=EN-US>2,</span><span style="FONT-FAMILY: 宋体">使用</span><span lang=EN-US>CREATE UNDO TABLESPACE</span><span style="FONT-FAMILY: 宋体">命o建立</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p><span lang=EN-US><font size=2>CREATE UNDO TABLESPACE undotbs3</font></span></p> <p><span lang=EN-US><font size=2>DATAFILE ‘D:demoundotbs3.dbf’ SIZE 10M;</font></span></p> <p><font size=2></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">修改</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>,</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">使用</span><span lang=EN-US>ALTER TABLESPACE</span><span style="FONT-FAMILY: 宋体">命o修改</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">当事务用了</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间后</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">使用</span><span lang=EN-US>ALTER TABLESPACE … ADD DATAFILE</span><span style="FONT-FAMILY: 宋体">增加数据文g</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间所在的盘填满?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">使用</span><span lang=EN-US>ALTER TABLESPACE … RENAME DATAFIEL </span><span style="FONT-FAMILY: 宋体">命oUd数据文g到其他磁盘上</span><span lang=EN-US>.</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">使用</span><span lang=EN-US>ALTER DATABASE … OFFLINE/ONLINE</span><span style="FONT-FAMILY: 宋体">使表I间脱机</span><span lang=EN-US>/</span><span style="FONT-FAMILY: 宋体">联机</span><span lang=EN-US>.</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">当数据库处于</span><span lang=EN-US>ARCHIVELOG</span><span style="FONT-FAMILY: 宋体">模式?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">使用</span><span lang=EN-US>ALTER TABLESPACE …BEGIN BACKUP/END BACKUP</span><span style="FONT-FAMILY: 宋体">命o备䆾</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p><font size=2></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">切换</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">启动例程q打开数据库后</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">同一时刻特定例程只能使用一?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">切换</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间是指停止例E当前用的</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">q启动其?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">下面以启?/span><span lang=EN-US>undotbs2</span><span style="FONT-FAMILY: 宋体">表空间ؓ?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">说明切换</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间的Ҏ</span><span lang=EN-US>.</span></font></p> <p><span lang=EN-US><font size=2>ALTER SYSTEM SET undo_tablespace=undotbs02;</font></span></p> <p><font size=2><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>RAC(Real Application Cluster)</span><span style="FONT-FAMILY: 宋体">机构?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">不同例程必须使用独立?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">而不能共用同一?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">删除</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">当前例程正在使用?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间是不能被删除的</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">如果定要删除当前例E正在用的</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">应首先切?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">然后删除相应?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p><span lang=EN-US><font size=2>DROP TABLESPACE undotbs3;</font></span></p> <p><font size=2></font></p> <p><font size=2><span lang=EN-US>1,</span><span style="FONT-FAMILY: 宋体">定当前例程正在使用?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p style="TEXT-INDENT: 36.75pt"><span lang=EN-US><font size=2>Show parameter undo_tablespace</font></span></p> <p style="TEXT-INDENT: 36.75pt"><font size=2></font></p> <p><font size=2><span lang=EN-US>2,</span><span style="FONT-FAMILY: 宋体">昄数据库的所?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空?/span><span lang=EN-US>.</span></font></p> <p><span lang=EN-US><font size=2><span></span>SELECT tablespace_name FROMdba_tablespaces WHERE contents=’UNDO’;</font></span></p> <p><font size=2></font></p> <p><font size=2><span lang=EN-US>3,</span><span style="FONT-FAMILY: 宋体">昄</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间统计信?/span><span lang=EN-US>.</span></font></p> <p style="TEXT-INDENT: 21pt"><font size=2><span style="FONT-FAMILY: 宋体">使用自动</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">理模式?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">需要合理地讄</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间的寸</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">Z合理规划</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间尺?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">应在数据库运行的高峰阶段搜集</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间的l计信息</span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">最l根据该l计信息定</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间的寸</span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">通过查询动态性能视图</span><span lang=EN-US>V%UNDOSTAT,</span><span style="FONT-FAMILY: 宋体">可以搜集</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">l计信息</span><span lang=EN-US>.</span></font></p> <p style="TEXT-INDENT: 21pt"><span lang=EN-US><font size=2>SELECT TO_CHAR(BEGIN_TIME,’HH24:MI:SS’) BEGIN_TIME,</font></span></p> <p style="TEXT-INDENT: 21pt"><span lang=EN-US><font size=2><span></span>TO_CHAR(END_TIME,’HH24:MI:SS’) END_TIME,</font></span></p> <p style="TEXT-INDENT: 21pt"><span lang=EN-US><font size=2><span></span>UNDOBLKS</font></span></p> <p style="TEXT-INDENT: 21pt"><span lang=EN-US><font size=2>FROM V$UNDOSTAT;</font></span></p> <p><font size=2><span lang=EN-US>BEGIN_TIME</span><span style="FONT-FAMILY: 宋体">用于标识起始l计旉</span><span lang=EN-US>,END_TIME</span><span style="FONT-FAMILY: 宋体">用于标识l束l计旉</span><span lang=EN-US>,UNDOBLKS</span><span style="FONT-FAMILY: 宋体">用于标识</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">数据所占用的数据块个数</span><span lang=EN-US>.oracle</span><span style="FONT-FAMILY: 宋体">每隔</span><span lang=EN-US>10</span><span style="FONT-FAMILY: 宋体">分钟生成一行统计信?/span><span lang=EN-US>.</span></font></p> <p><font size=2></font></p> <p><font size=2><span lang=EN-US>4,</span><span style="FONT-FAMILY: 宋体">昄</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D늻计信?/span><span lang=EN-US>.</span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">使用自动</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">理模式?/span><span lang=EN-US>,oracle</span><span style="FONT-FAMILY: 宋体">会在</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间上自动建立</span><span lang=EN-US>10</span><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">通过查询动态信息视?/span><span lang=EN-US>V$ROLLNAME,</span><span style="FONT-FAMILY: 宋体">可以昄所有联?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D늚名称</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">通过查询动态性能视图</span><span lang=EN-US>V$ROLLLISTAT,</span><span style="FONT-FAMILY: 宋体">可以昄</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D늚l计信息</span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">通过?/span><span lang=EN-US>V$ROLLNAME</span><span style="FONT-FAMILY: 宋体">?/span><span lang=EN-US>V$ROLLLISTAT</span><span style="FONT-FAMILY: 宋体">之间执行q接查询</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">可以监视特定</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D늚特定信息</span><span lang=EN-US>.</span></font></p> <p><span lang=EN-US><font size=2>SELECT a.name, b.xacts, b.writes, b.extents</font></span></p> <p><span lang=EN-US><font size=2>FROM v$rollname a, v$rollstat b</font></span></p> <p><span lang=EN-US><font size=2>WHERE<span> </span>a.usn=b.usn;</font></span></p> <p><font size=2><span lang=EN-US>Name</span><span style="FONT-FAMILY: 宋体">用于标识</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D늚名称</span><span lang=EN-US>,xacts</span><span style="FONT-FAMILY: 宋体">用于标识</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D|包含的活动事务个?/span><span lang=EN-US>,</span></font></p> <p><font size=2><span lang=EN-US>Writes</span><span style="FONT-FAMILY: 宋体">用于标识?/span><span lang=EN-US>undo</span><span style="FONT-FAMILY: 宋体">D上所写入的字节数</span><span lang=EN-US>,extents</span><span style="FONT-FAMILY: 宋体">用于标识</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D늚Z?/span><span lang=EN-US>.</span></font></p> <p><font size=2></font></p> <p><font size=2><span lang=EN-US>5,</span><span style="FONT-FAMILY: 宋体">昄zd事务信息</span><span lang=EN-US>.</span></font></p> <p style="TEXT-INDENT: 26.25pt"><font size=2><span style="FONT-FAMILY: 宋体">当执?/span><span lang=EN-US>DML</span><span style="FONT-FAMILY: 宋体">操作?/span><span lang=EN-US>,oracle</span><span style="FONT-FAMILY: 宋体">会将q些操作的旧数据攑ֈ</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D中</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">动态性能视图</span><span lang=EN-US>v$session</span><span style="FONT-FAMILY: 宋体">用于昄会话的详l信?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">动态性能视图</span><span lang=EN-US>v$transaction</span><span style="FONT-FAMILY: 宋体">用于昄事务的详l信?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">动态性能视图</span><span lang=EN-US>v$rollname</span><span style="FONT-FAMILY: 宋体">用于昄联机</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D늚名称</span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">通过在这</span><span lang=EN-US>3</span><span style="FONT-FAMILY: 宋体">个动态性能视图之间执行q接查询</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">可以定正在执行事务操作的会?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">事务所使用?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">D?/span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">以及事务所占用?/span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">块个?/span><span lang=EN-US>.</span></font></p> <p style="TEXT-INDENT: 26.25pt"><font size=2>Col<span lang=EN-US> username format a10</span></font></p> <p style="TEXT-INDENT: 26.25pt"><font size=2>Col<span lang=EN-US> name format a10</span></font></p> <p style="TEXT-INDENT: 26.25pt"><span lang=EN-US><font size=2>SELECT a.username, b.name, c.used_ublk</font></span></p> <p style="TEXT-INDENT: 26.25pt"><span lang=EN-US><font size=2>FROM v$session a, v$rollname b, v$transaction c</font></span></p> <p style="TEXT-INDENT: 26.25pt"><span lang=EN-US><font size=2>WHERE a.saddr=c.ses_addr AND b.usn=c.xidusn</font></span></p> <p style="TEXT-INDENT: 26.25pt"><span lang=EN-US><font size=2><span></span>AND a.username=’SCOTT’;</font></span></p> <p><font size=2></font></p> <p><font size=2><span lang=EN-US>6,</span><span style="FONT-FAMILY: 宋体">昄</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">Z?/span></font></p> <p><font size=2><span style="FONT-FAMILY: 宋体">数据字典视图</span><span lang=EN-US>dba_undo_extents</span><span style="FONT-FAMILY: 宋体">用于昄</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">表空间所有区的详l信?/span><span lang=EN-US>.</span><span style="FONT-FAMILY: 宋体">包括</span><span lang=EN-US>UNDO</span><span style="FONT-FAMILY: 宋体">区尺寸和状态等信息</span><span lang=EN-US>.</span></font></p> <p><span lang=EN-US><font size=2>SELECT extend_id, bytes, status FROM dba_undo_extents</font></span></p> <p><span lang=EN-US><font size=2>WHERE segment_name’_SYSSMU5$’;</font></span></p> <p><font size=2><span style="FONT-FAMILY: 宋体">其中</span><span lang=EN-US>,extent_id</span><span style="FONT-FAMILY: 宋体">用于标识区编?/span><span lang=EN-US>,bytes</span><span style="FONT-FAMILY: 宋体">用于标识区尺?/span><span lang=EN-US>,status</span><span style="FONT-FAMILY: 宋体">用于标识区状?/span><span lang=EN-US>(ACTIVE:</span><span style="FONT-FAMILY: 宋体">表示该区处于zd状?/span><span lang=EN-US>,EXPIRED:</span><span style="FONT-FAMILY: 宋体">标识该区未用</span><span lang=EN-US>).</span></font></p> <p><font size=2></font></p> <br><img src ="http://m.tkk7.com/john_yu/aggbug/108145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/john_yu/" target="_blank">john</a> 2007-04-03 10:52 <a href="http://m.tkk7.com/john_yu/archive/2007/04/03/108145.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修改oracle监听占用?080端口 http://m.tkk7.com/john_yu/archive/2007/03/21/105352.htmljohnjohnWed, 21 Mar 2007 11:41:00 GMThttp://m.tkk7.com/john_yu/archive/2007/03/21/105352.htmlhttp://m.tkk7.com/john_yu/comments/105352.htmlhttp://m.tkk7.com/john_yu/archive/2007/03/21/105352.html#Feedback0http://m.tkk7.com/john_yu/comments/commentRss/105352.htmlhttp://m.tkk7.com/john_yu/services/trackbacks/105352.html 
SQL*Plus: Release 9.2.0.4.0 - Production on Sat Aug 6 14:24:49 2005
 
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
 
SQL> connect / as sysdba;
Connected.
-- 把HTTP/WEBDAV端口?080改到8081
SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),
  2  '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',8081))
  3  /
 
Call completed.
-- 把FTP端口?100改到2111
SQL>  call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),
  2  '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()',2111))
  3  /
 
Call completed.
 
SQL> commit;
 
Commit complete.
 
SQL>  exec dbms_xdb.cfg_refresh;
 
PL/SQL procedure successfully completed.
-- 查修Ҏ否已l成?
SQL> select dbms_xdb.cfg_get from dual;
 
CFG_GET
--------------------------------------------------------------------------------
<xdbconfig xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd" xmlns:xsi="http://w
 


john 2007-03-21 19:41 发表评论
]]>
更改Oracle的默认监听端?1521http://m.tkk7.com/john_yu/archive/2006/12/26/90178.htmljohnjohnTue, 26 Dec 2006 14:05:00 GMThttp://m.tkk7.com/john_yu/archive/2006/12/26/90178.htmlhttp://m.tkk7.com/john_yu/comments/90178.htmlhttp://m.tkk7.com/john_yu/archive/2006/12/26/90178.html#Feedback0http://m.tkk7.com/john_yu/comments/commentRss/90178.htmlhttp://m.tkk7.com/john_yu/services/trackbacks/90178.html 如何更改Oracle的默认监听端口(1521Q?/font>
Oracle 的默认监听端口ؓ1521Q你可以方便的依照下列步骤修改ؓ其他端口Q?br />[oracle@dbserver2 admin]$ cd $ORACLE_HOME/network/admin
[oracle@dbserver2 admin]$ vi listener.ora
修改q个文档中的1521端口Z需要的端口your port
[oracle@dbserver2 admin]$ lsnrctl stop
[oracle@dbserver2 admin]$ lsnrctl start
修改客户端的q接


john 2006-12-26 22:05 发表评论
]]>
修改 Oracle9i 8080端口问题http://m.tkk7.com/john_yu/archive/2006/12/26/90177.htmljohnjohnTue, 26 Dec 2006 13:59:00 GMThttp://m.tkk7.com/john_yu/archive/2006/12/26/90177.htmlhttp://m.tkk7.com/john_yu/comments/90177.htmlhttp://m.tkk7.com/john_yu/archive/2006/12/26/90177.html#Feedback0http://m.tkk7.com/john_yu/comments/commentRss/90177.htmlhttp://m.tkk7.com/john_yu/services/trackbacks/90177.html 修改 Oracle9i 8080端口问题 Oracle 9i开始,创徏数据库时默认包含了XDBҎ。一旦启动了数据库和ListenerQOracle XDB的http服务占?080端口Q刚好和JBoss、Tomcat{默认端口冲H。除了修改Tomcat{外Q还可以修改XDB的配|?br />Oracle XDB的端口设|不在配|文件中Q而是在数据库里。修改XDB的http和ftp服务端口的方法有3U:

1.使用sysdOracleQ利用dbms_xdb修改端口讄

  SQL> -- Change the HTTP/WEBDAV port from 8080 to 8081
  SQL> call dbms_xdb.cfg_update(updateXML(
    2        dbms_xdb.cfg_get()
    3      , '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'
    4      , 8081))
    5  /

  Call completed.


  SQL> -- Change the FTP port from 2100 to 2111
  SQL> call dbms_xdb.cfg_update(updateXML(
    2         dbms_xdb.cfg_get()
    3       , '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()'
    4       , 2111))
    5  /

  Call completed.


  SQL> COMMIT;

  Commit complete.


  SQL> EXEC dbms_xdb.cfg_refresh;

  PL/SQL procedure successfully completed.


2.使用OEM consoleQ选择数据库,XML DatabaseQConfiguration。更改XDB的有兌|?/p>

3.L数据库的初始化参敎ͼ  dispatchers='(PROTOCOL=TCP) (SERVICE=XDB)'Q将会禁止XDB的http和ftp服务?br />



john 2006-12-26 21:59 发表评论
]]>
PCC-S-02014, Encountered the symbol "..." when expecting one of the following:http://m.tkk7.com/john_yu/archive/2006/11/24/83200.htmljohnjohnFri, 24 Nov 2006 03:04:00 GMThttp://m.tkk7.com/john_yu/archive/2006/11/24/83200.htmlhttp://m.tkk7.com/john_yu/comments/83200.htmlhttp://m.tkk7.com/john_yu/archive/2006/11/24/83200.html#Feedback1http://m.tkk7.com/john_yu/comments/commentRss/83200.htmlhttp://m.tkk7.com/john_yu/services/trackbacks/83200.htmlproc cpp_suffix=cpp code=cpp txsPublic.pcc define=__linux UNSAFE_NULL=YES MODE=ORACLE DBMS=V8 CHAR_MAP=STRING INCLUDE=/home/tax/100/src/public/include INCLUDE=/home/tax/100/src/server/include INCLUDE=/usr/oracle/product/9.2.0/precomp/public

Pro*C/C++: Release 9.2.0.6.0 - Production on Fri Nov 24 17:07:54 2006
Syntax error at line 52, column 37, file /usr/include/c++/3.4.3/bits/concept_check.h:
Error at line 52, column 37 in file /usr/include/c++/3.4.3/bits/concept_check.h
#define __glibcxx_function_requires(...)
....................................1
PCC-S-02014, Encountered the symbol "..." when expecting one of the following:

   ) an identifier, define, elif, else, endif, error, if, ifdef,
   ifndef,
解决ҎQ?br />1、配|好 $ORACLE_HOME/precomp/admin/pcscfg.cfg 文g
   Ҏ你的pȝ不同Q大概像q样

				
sys_include=(/usr/lib/gcclib/i386redhatlinux/3.2.2/include,/u01/oracle/product/8.1.7/precomp/public,/usr/include,/usr/include/sys)
include=(/u01/oracle/product/8.1.7/precomp/public)
include=/u01/oracle/product/8.1.7/precomp/hdrs
include=/u01/oracle/product/8.1.7/tpcc2x_2/src
include=/u01/oracle/product/8.1.7/precomp/precomp/include
include=/u01/oracle/product/8.1.7/precomp/oracore/include
include=/u01/oracle/product/8.1.7/precomp/oracore/public
include=/u01/oracle/product/8.1.7/precomp/rdbms/include
include=/u01/oracle/product/8.1.7/precomp/rdbms/public
include=/u01/oracle/product/8.1.7/precomp/rdbms/demo
include=/u01/oracle/product/8.1.7/precomp/nlsrtl/include
include=/u01/oracle/product/8.1.7/precomp/nlsrtl/public
include=/u01/oracle/product/8.1.7/precomp/network_src/include
include=/u01/oracle/product/8.1.7/precomp/network_src/public
include=/u01/oracle/product/8.1.7/precomp/network/include
include=/u01/oracle/product/8.1.7/precomp/network/public
include=/u01/oracle/product/8.1.7/precomp/plsql/public
ltype=short


   
2、预~译的时候加上 parse=none 选项
    proc iname=***  parse=none

3、编译的时候要链接oracle的库文gQ 加选项 -lclntsh
     下面是我参照别的|友的一个makefile文gQ?
   

INCLDIR= -I. -I/u01/oracle/product/8.1.7/precomp/public -I/u01/oracle/product/8.1.7/rdbms/public -I/u01/oracle/product/8.1.7/rdbms/demo -I/u01/oracle/product/8.1.7/plsql/public -I/u01/oracle/product/8.1.7/network/public 

DFLAGS= -DPRECOMP -DLINUX -D_GNU_SOURCE -DSLTS_ENABLE -DSLMXMX_ENABLE -D_REENTRANT -DNS_THREADS

CFLAGS= -O3

LIBPATH= -L/u01/oracle/product/8.1.7/lib/

LIBS=-lclntsh `cat /u01/oracle/product/8.1.7/lib/sysliblist` -ldl -lm

myproc:myproc.pc
proc parse=no iname=myproc.pc include=$(ORACLE_HOME)/precomp/public
gcc  -o $@ $@.c -I$(ORACLE_HOME)/precomp/public -L$(ORACLE_HOME)/lib -lclntsh -lclient8 $(LIBPATH) $(LIBS)

clean:
rm *.lis myproc.c myproc



john 2006-11-24 11:04 发表评论
]]>
Oracle9i 2.0.4在Red Hat Enterprise Linux AS 3上的安装http://m.tkk7.com/john_yu/archive/2006/02/09/30066.htmljohnjohnThu, 09 Feb 2006 15:22:00 GMThttp://m.tkk7.com/john_yu/archive/2006/02/09/30066.htmlhttp://m.tkk7.com/john_yu/comments/30066.htmlhttp://m.tkk7.com/john_yu/archive/2006/02/09/30066.html#Feedback0http://m.tkk7.com/john_yu/comments/commentRss/30066.htmlhttp://m.tkk7.com/john_yu/services/trackbacks/30066.html
Oracle9i 2.0.4在Red Hat Enterprise Linux AS 3上的安装

Oracle9i 2.0.4在Red Hat Enterprise Linux AS 3上的安装

(我测试了两遍都OK)

1、确认安装了以下软g?BR>   [oracle@Gledeson oracle]$ rpm -qa | grep openmotif
   openmotif21-2.1.30-8
   openmotif-devel-2.2.3-3.RHEL3
   openmotif-2.2.3-3.RHEL3
   [oracle@Gledeson oracle]$ rpm -qa |grep setarch
   setarch-1.3-1
   [oracle@Gledeson oracle]$ rpm -qa|grep compat
   compat-gcc-c++-7.3-2.96.128
   compat-glibc-7.x-2.2.4.32.6
   compat-slang-1.4.5-5
   compat-pwdb-0.62-3
   compat-libstdc++-devel-7.3-2.96.128
   compat-db-4.0.14-5
   compat-gcc-7.3-2.96.128
   compat-libstdc++-7.3-2.96.128

2、徏立Oracle帐号
   groupadd dba
   groupadd oinstall
   useradd -c "Oracle software owner" -g oinstall -G dba oracle
   passwd oracle

3、徏立文件目?BR>   su root
   mkdir /u01
   mkdir /u01/oracle
   mkdir /u01/oracle/product
   mkdir /u01/oracle/product/9.2.0
   chown -R oracle.oinstall /u01/oracle
   mkdir /var/opt/oracle
   chown oracle.dba /var/opt/oracle
   chmod 755 /var/opt/oracle

4、设|环境变?BR>   用Oracle帐号执行下列命oQ?或直接copy?bash_profile文g?
 # Set the LD_ASSUME_KERNEL environment variable only for Red Hat 9,
 # RHEL AS 3, and RHEL AS 4 !!
 # Use the "Linuxthreads with floating stacks" implementation instead of NPTL:
 #export LD_ASSUME_KERNEL=2.4.1    # for RH 9 and RHEL AS 3
 #export LD_ASSUME_KERNEL=2.4.19   # for RHEL AS 4
 export LD_ASSUME_KERNEL=2.4.1
 export ORACLE_BASE=/u01/oracle
 export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
 export ORACLE_SID=ORADB01
 export ORACLE_TERM=xterm
 export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
 LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
 export LD_LIBRARY_PATH
 # Set shell search paths
 export PATH=$PATH:$ORACLE_HOME/bin
       保存后退? 执行Q?source .bash_profile
           然后。退出登录,再次q入Q这时候oracle的环境就已经生效?/P>

5、设|内核参?BR>su root
   修改 /etc/sysctl.conf q个文gQ加入以下的语句Q?BR>kernel.shmmax = 2147483648
kernel.shmmni = 4096 
kernel.shmall = 2097152 
kernel.sem = 250 32000 100 128 
fs.file-max = 65536 
net.ipv4.ip_local_port_range = 1024 65000 

参数说明Q?BR>                 sem  4个参CơؓSEMMSL(每个用户拥有信号量最大数)Q?BR>      SEMMNS(pȝ信号量最大数)Q?BR>       SEMOPM(每次semopmpȝ调用操作?Q?BR>      SEMMNI(pȝ辛苦量集数最大数).
                 Shmmax 最大共享内?GB 物理内存如果的话可以设|成 536870912.
      Shmmni  最共享内?4096KB.
      Shmall   所有内存大?

6、安装补?BR>(ORACLE9i 9204版,只需在运行runInstall前打p3006854_9204_LINUX.zip 补丁卛_Q?BR>其他补丁不用再打)
   安装补丁前,却换到root用户的控制台Q打补丁前执行以下语句:
su root
mv /usr/bin/gcc   /usr/bin/gcc323
ln -s /usr/bin/gcc296   /usr/bin/gcc
mv /usr/bin/g++296   /usr/bin/g++
ln -s /usr/bin/g++ /usr/bin/g++296

[root@localhost /]# sh rhel3_pre_install.sh
Applying patch...
Ensuring permissions are correctly set...
Done.
Patch successfully applied

7、解压文?BR>  zcat ship_9204_linux_disk1.cpio | cpio -idmv
  zcat ship_9204_linux_disk2.cpio | cpio -idmv
  zcat ship_9204_linux_disk3.cpio | cpio -idmv
 
  q时生成三个目录QDisk1、Disk2、Disk3

8、cd到Disk1?BR>  cd /Disk1
  ./runInstall.sh



john 2006-02-09 23:22 发表评论
]]>
创徏从MS SQLServer 采用创徏链接服务器以讉K Oracle 数据库实例的步骤 http://m.tkk7.com/john_yu/archive/2005/10/12/15339.htmljohnjohnWed, 12 Oct 2005 08:36:00 GMThttp://m.tkk7.com/john_yu/archive/2005/10/12/15339.htmlhttp://m.tkk7.com/john_yu/comments/15339.htmlhttp://m.tkk7.com/john_yu/archive/2005/10/12/15339.html#Feedback0http://m.tkk7.com/john_yu/comments/commentRss/15339.htmlhttp://m.tkk7.com/john_yu/services/trackbacks/15339.html
  • 保q行 SQL Server 的服务器上的 Oracle 客户端Y件已辑ֈ提供E序所要求的别。用?FONT style="BACKGROUND-COLOR: #ffffff"> Oracle ?Microsoft OLE DB 提供E序要求 Oracle 客户端Y件支持文件的版本?7.3.3.4.0 或更高版本,q且 SQL*Net 的版本ؓ 2.3.3.0.4?BR>
  • 在运?SQL Server 的服务器上创建指?Oracle 数据库实例的 SQL*Net 别名。有x多信息,请参?Oracle 文档?BR>
  • 执行 sp_addlinkedserver 创徏链接服务器,指定 MSDAORA ?provider_nameQ指定用?Oracle 数据库实例的 SQL*Net 别名?data_ source?

    以下CZ假设已将一?SQL*Net 别名定义?OracleDB?/FONT>

    sp_addlinkedserver 'OrclDB', 'Oracle', 'MSDAORA', 'OracleDB'
    
  • 使用 sp_addlinkedsrvlogin 创徏?SQL Server d?Oracle d的登录映?

    以下CZ通过 Oracle d?OrclUsr 和密?OrclPwd ?SQL Server d Joe 映射到步?3 中定义的链接服务器:

    sp_addlinkedsrvlogin 'OrclDB', false, 'Joe', 'OrclUsr', 'OrclPwd'
    
  • 每个 Oracle 数据库实例仅有一个名UCؓI的目录。Oracle 链接服务器中的表必须使用四部分名U格?OracleLinkedServerName..OwnerUserName.TableName q行引用。例如,以下 SELECT 语句引用 Oracle 用户 MARY ?OrclDB 链接服务器映的服务器上所拥有的表 SALES?/FONT>

    SELECT *
    FROM OrclDB..MARY.SALES
  • 注意需?修改 注册?Q对于win2k/oracle 8i ,修改的内容ؓQ?/PRE>
  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI]
    "OracleXaLib"="oraclient8.dll"
    "OracleSqlLib"="orasql8.dll"
    "OracleOciLib"="oci.dll"
  • 其它事项Q启动mstdc服务
  •  
    Google


    john 2005-10-12 16:36 发表评论
    ]]>oracle 修改服务端字W集http://m.tkk7.com/john_yu/archive/2005/10/06/14900.htmljohnjohnThu, 06 Oct 2005 14:43:00 GMThttp://m.tkk7.com/john_yu/archive/2005/10/06/14900.htmlhttp://m.tkk7.com/john_yu/comments/14900.htmlhttp://m.tkk7.com/john_yu/archive/2005/10/06/14900.html#Feedback0http://m.tkk7.com/john_yu/comments/commentRss/14900.htmlhttp://m.tkk7.com/john_yu/services/trackbacks/14900.html说明Q?BR>在刚安装完的时候进行修改,对已l投产的pȝQ风险太大!

    步骤如下Q?
    1. Make sure the parallel_server parameter in INIT.ORA is set to false
    or it is not set at all.

    2. Execute the following commands in Server Manager (svrmgrl):

    SVRMGR> SHUTDOWN IMMEDIATE; -- or NORMAL

    SVRMGR> STARTUP MOUNT;
    SVRMGR> ALTER SYSTEM ENABLE RESTRICTED SESSION;
    SVRMGR> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
    SVRMGR> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
    SVRMGR> ALTER DATABASE OPEN;
    SVRMGR> ALTER DATABASE [NATIONAL] CHARACTER SET INTERNAL_USE ;
    SVRMGR> SHUTDOWN IMMEDIATE; -- OR NORMAL
    SVRMGR> STARTUP RESTRICT;

    3. Restore the parallel_server parameter in INIT.ORA, if necessary.

    4. Execute the following commands in Server Manager:

    SVRMGR> SHUTDOWN IMMEDIATE; -- OR NORMAL
    SVRMGR> STARTUP;

    如果没有登陆Q首先执?
    SVRMGR> connect internal;

    Google


    john 2005-10-06 22:43 发表评论
    ]]>
    windows 下彻底删除oracle http://m.tkk7.com/john_yu/archive/2005/10/06/14895.htmljohnjohnThu, 06 Oct 2005 12:07:00 GMThttp://m.tkk7.com/john_yu/archive/2005/10/06/14895.htmlhttp://m.tkk7.com/john_yu/comments/14895.htmlhttp://m.tkk7.com/john_yu/archive/2005/10/06/14895.html#Feedback0http://m.tkk7.com/john_yu/comments/commentRss/14895.htmlhttp://m.tkk7.com/john_yu/services/trackbacks/14895.html软g环境Q?/FONT> 
        1、Windows 2000+ORACLE
        2、ORACLE安装路径为:C:\ORACLE

    实现ҎQ?/FONT>
        1?开始-Q设|-Q控刉板-Q管理工PQ服务停止所有Oracle服务?BR>    2?开始-Q程序-QOracle - OraHome81Q>Oracle Installation ProductsQ>Universal Installer卸装所有Oracle产品Q但Universal Installer本n不能被删?BR>    5?q行regeditQ选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLEQ按del键删除这个入口?BR>    6?q行regeditQ选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesQ滚动这个列表,删除所有Oracle入口?BR>    7?q行refeditQHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\ApplicationQ?BR>删除所有Oracle入口?BR>    8?开始-Q设|-Q控刉板-Q系l-Q高U-Q环境变量删除环境变量CLASSPATH和PATH中有关Oracle的设?BR>    9?从桌面上、STARTUPQ启动)l、程序菜单中Q删除所有有关Oracle的组和图?BR>    10?删除\Program Files\Oracle目录
        11?重新启动计算机,重v后才能完全删除Oracle所在目?BR>    12?删除与Oracle有关的文Ӟ选择Oracle所在的~省目录C:\OracleQ删除这个入口目录及所有子目录Qƈ从C:\WINNT下删除以下文件ORACLE.INI、oradim73.INI、oradim80.INI、oraodbc.ini{等?BR>    13?WIN.INI文g中若有[ORACLE]的标记段Q删除该D?BR>    14?如有必要Q删除所有Oracle相关的ODBC的DSN
        15?C件查看器中,删除Oracle相关的日?BR>
    说明Q?BR>    如果有个别DLL文g无法删除的情况,则不用理会,重新启动Q开始新的安装,安装Ӟ选择一个新的目录,则,安装完毕q新启动后Q老的目录及文件就可以删除掉了?/FONT>

    Google


    john 2005-10-06 20:07 发表评论
    ]]>
    pro*c and vc++ error :C2079: 'SQLSTM" uses undefined struct 'SQLEXD'http://m.tkk7.com/john_yu/archive/2005/09/24/13949.htmljohnjohnSat, 24 Sep 2005 12:28:00 GMThttp://m.tkk7.com/john_yu/archive/2005/09/24/13949.htmlhttp://m.tkk7.com/john_yu/comments/13949.htmlhttp://m.tkk7.com/john_yu/archive/2005/09/24/13949.html#Feedback0http://m.tkk7.com/john_yu/comments/commentRss/13949.htmlhttp://m.tkk7.com/john_yu/services/trackbacks/13949.html

    From the oracle metalink -

    Problem Description
    -------------------

    You are trying to compile a precompiled Pro*C application.
    You are using Microsoft Visual C++ 6.0.  At compile time,
    you get the error message:

    C2079: 'SQLSTM" uses undefined struct 'SQLEXD'


    Solution Description
    --------------------

    In Visual C++, under Project -> Settings -> Precompiled Headers,
    set this to "Automatic Use of Precompiled Headers", with the "Through
    Header"
    option left blank.

    HTH.,
    Ora600


    "Glen" wrote in message
    news:69867261.0110312021.3ba2f3ee@posting.google.com...
    > Hi,
    >
    > I have precompiled some pro*c code which worked fine and outputted a
    > c++ file which is included in my project. I have included the
    > orasql8.lib and when I try to compile the project receive the
    > following error:
    >
    > error C2079: 'sqlstm' uses undefined struct 'sqlexd'
    >
    > I don't understand why, the following code appears before where the
    > error is encountered.
    >
    > static struct sqlexd {
    >    unsigned int   sqlvsn;
    >    unsigned int   arrsiz;
    >    unsigned int   iters;
    >    unsigned int   offset;
    >    unsigned short selerr;
    >    unsigned short sqlety;
    >    unsigned int   occurs;
    >       const short *cud;
    >    unsigned char  *sqlest;
    >       const char  *stmt;
    >    sqladts *sqladtp;
    >    sqltdss *sqltdsp;
    >             void  **sqphsv;
    >    unsigned int   *sqphsl;
    >             int   *sqphss;
    >             void  **sqpind;
    >             int   *sqpins;
    >    unsigned int   *sqparm;
    >    unsigned int   **sqparc;
    >    unsigned short  *sqpadto;
    >    unsigned short  *sqptdso;
    >             void  *sqhstv[4];
    >    unsigned int   sqhstl[4];
    >             int   sqhsts[4];
    >             void  *sqindv[4];
    >             int   sqinds[4];
    >    unsigned int   sqharm[4];
    >    unsigned int   *sqharc[4];
    >    unsigned short  sqadto[4];
    >    unsigned short  sqtdso[4];
    > } sqlstm = {10,4};
    >
    > If anyone has any ideas i would be most appreciative.
    >
    > Cheers
    > Glen
    Google


    john 2005-09-24 20:28 发表评论
    ]]>
    用VC开发基于ORACLE数据库方?/title><link>http://m.tkk7.com/john_yu/archive/2005/09/23/13824.html</link><dc:creator>john</dc:creator><author>john</author><pubDate>Fri, 23 Sep 2005 03:41:00 GMT</pubDate><guid>http://m.tkk7.com/john_yu/archive/2005/09/23/13824.html</guid><wfw:comment>http://m.tkk7.com/john_yu/comments/13824.html</wfw:comment><comments>http://m.tkk7.com/john_yu/archive/2005/09/23/13824.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/john_yu/comments/commentRss/13824.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/john_yu/services/trackbacks/13824.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD style="BORDER-BOTTOM: #0080ff 1px dashed" align=middle height=50><STRONG class=f16>用VC开发基于ORACLE数据库方?/STRONG></TD></TR> <TR> <TD align=middle height=40>作者:黎杰 麦中?更新旉Q?2005-05-07 </TD> <TD style="BORDER-RIGHT: #0080ff 1px solid" vAlign=top rowSpan=6>  </TD></TR> <TR> <TD height=40> </TD></TR> <TR> <TD> <TABLE class=pagefont cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD style="PADDING-TOP: 5px">1. 引言 <BR>   ORACLE 公司?979 q推出基于SQL 标准的关pL据库产品?997 q版? 的推出,ORACLE 数据库以其支持大数据库、多用户的高性能事务处理Q对业界各项工业标准的支持,完整的安全和完整性控Ӟ支持分布式数据库和分布处理,h可移植性、可兼容性和可连接性等H出优点倍受用户喜爱Q根据IDG1992 q全球UNIX 数据库的市场报告QORACLE 占市场销售量?0%。而在客户端的开发工h面,Visual C++ 也因其强大的功能和高度的灉|性等特点深受q大E序员的喜爱Q因此本文旨在介l用Visual C++ 开发基于ORACLE 数据库应用程序的两种Ҏ?<BR><BR>   2. 使用PRO*C 开发数据库应用 <BR><BR>   2.1 PRO*C 工作原理 <BR><BR>   PRO pd是ORACLE 公司提供的在W三代高U程序设计语a中嵌入SQL 语句来访问数据库的一套预~译E序Q包括PRO*Ada、PRO*C、PRO*COBOL、PRO*Fortran、PRO*Pascal 和PRO*PL/I 六种。程序员用相应的高语言~写嵌入SQL 语句的PRO 源程序(若用C 语言则称为PRO*C 源程序)后运行相应的预编译程序,把嵌入的SQL 语句转换为标准的ORACLE 调用q生成目标源E序Q即U高U语a格式的源E序Q然后就可以这些源E序加入用户的程序中调用Q其处理q程如下图?<BR><BR>   ORACLE 预编译程序提供如下功能: <BR><BR>   ⑴能用六U通用的高U程序设计语a中的M一U编写应用程序?<BR><BR>   ⑵遵循ANSI 标准Q在高语言中嵌入SQL 语句?<BR><BR>   ⑶可采用动态SQL ҎQ让E序在运行时接受或构造一个有效的SQL 语句?<BR><BR>   ⑷实现ORACLE 内部数据cd和高U语a数据cd之间的自动{换?<BR><BR>   ⑸可通过在应用程序中嵌入PL/SQL 事物处理块来改进性能?<BR><BR>   ⑹能在程序行和命令行上指定所需要的预编译可选项Qƈ可在预编译的q程中改变它们的倹{?<BR><BR>   全面查嵌入的SQL 数据操纵语句和PL/SQL 块的文法和语义?<BR><BR>   d用SQL*Net q行存取多个地点的ORACLE 数据库?<BR><BR>   ⑼可把数l作入和输出E序变量使用?<BR><BR>   ⑽能对应用程序中的代码段q行条g预编译?<BR><BR>   ⑾提供了较强的异常处理功能?<BR><BR>   由此可见Q通过预编译程序与其它高语言的结合,既可以利用SQL 强有力的功能和灵zLؓ数据库应用系l的开发提供强有力的手D,又可以充分利用高U语a自n在系l开发方面的优势Q从而提供一个完备的ZORACLE 数据库应用程序的开发解x案?<BR><BR>2.2 在VC 中用PRO*C <BR><BR>   每个PRO*C 源文件一般由E序头和E序体两部分l成。程序头包含宿主变量QSQL 语句中所包含的变量)说明、通讯区定义和C 外部表示W的说明{。程序体一般是pq函数组成,q些函数内含有SQL 语句Q以EXEC SQL 起头的语句)?<BR><BR>   PRO*C 支持的数据类型包括VARCHAR2( 变长字符?、NUMBER( 二进制数Q、INTGER( 有符h?、FLOAT( 点?、STRING( 以NULL l尾的字W串)、VARNUM( 变长二进制数)、LONG( 变长字符?、VARCHAR( 变长字符?、ROWID( 二进制?、DATE( 定长日期/ 旉?、VARRAW( 变长二进制数?、RAW( 定长二进制数? 、LONGRAW( 变长二进制数?、UNSIGNED( 无符h?、LONGVARCHAR( 变长字符?、LONGVARRAW( 变长二进制数?、CHAR( 定长字符?、CHARZ(C 中定长以NULL l尾的字W串)、MLSLABEL( 变长二进制数??<BR><BR>   在PRO*C 中不能?l' ?u' 作词或'0x' 作词头修饰常量;在SQL 语句中用单引号来定义字W串Q用双引h定义Ҏ的或写字符的标识符( 如表名等)QSQL 语句中不允许使用C 中的d、间接、位逻辑、复合赋倹{?=??+??lt;<?gt;> 操作Wƈ且用NOT、AND、OR? 代替!?amp;&、||?=?<BR><BR>   下面的程序是一个联l数据库的PRO*C 源程序例子?<BR><BR>#include < sqlca.h > //声明SQL通讯?<BR>#include < string.h > <BR>#include < afxwin.h > <BR>EXEC SQL BEGIN DECLARE SECTION; <BR>VARCHAR username[20]; //声明宿主变量 <BR>VARCHAR password[20]; <BR>VARCHAR dbname[20]; <BR>EXEC SQL END DECLARE SECTION; <BR>void db_connect() <BR>{ <BR>strcpy((char *)username.arr,"SCOTT"); <BR>username.len = strlen((char *)username.arr); <BR>strcpy((char *)password.arr,"TIGER"); <BR>password.len = strlen((char *)password.arr); <BR>strcpy((char *)dbname.arr,"SUNDB"); <BR>dbname.len = strlen((char *)dbname.arr); <BR>EXEC SQL WHENEVER SQLERROR STOP; //隐式异常处理 <BR>EXEC SQL CONNECT :username <BR>IDENTIFIED BY :password USING :dbname; <BR>/*if (sqlca.sqlcode != 0) //昑ּ异常处理 <BR>{ <BR>AfxMessageBox("\n与Oracle数据库连接失?"); <BR>return; <BR>}*/ <BR>} <BR><BR>   在VC 中用PRO*C Ӟ先用PRO*C ~写所需的操作数据库的子E序Q再q行PRO*C 预编译程序把PRO*C 源程序{成相应的CPP 源程序,该E序插入到用户工E文件中q在需要对插入函数q行调用的模块中说明函数Q然后就可以在此模块中调用所需的函数?<BR><BR>   3. 使用ODBC 中间件访问数据库 <BR><BR>   3.1 ODBC 工作原理 <BR><BR>   DBC 是Open Database Connect 卛_放数据库互连的简Uͼ它是由Microsoft 公司?991 q提出的一个用于访问数据库的统一界面标准Q是应用E序和数据库pȝ之间的中间g。它通过使用相应应用q_上和所需数据库对应的驱动E序与应用程序的交互来实现对数据库的操作Q避免了在应用程序中直接调用与数据库相关的操作,从而提供了数据库的独立性?<BR><BR>   ODBC 主要由驱动程序和驱动E序理器组成。驱动程序是一个用以支持ODBC 函数调用的模块(在WIN95 下通常是一个DLLQ,每个驱动E序对应于相应的数据库,当应用程序从Z一个数据库pȝUL到另一个时Q只需更改应用E序中由ODBC 理E序讑֮的与相应数据库系l对应的别名卛_。驱动程序管理器Q包含在ODBC32.DLL 中)可链接到所有ODBC 应用E序中,它负责管理应用程序中ODBC 函数与DLL 中函数的l定?<BR><BR>   ODBC 使用层次的方法来理数据库,在数据库通信l构的每一层,对可能出C赖数据库产品自nҎ的地方QODBC 都引入一个公共接口以解决潜在的不一致性,从而很好地解决了基于数据库pȝ应用E序的相对独立性,q也是ODBC 一l推出就获得巨大成功的重要原因之一?<BR><BR>   从结构上分,ODBC 分ؓ单束式和多束式两cR?<BR><BR>   ⑴单束式驱动E序 <BR><BR>   单束式驱动程序介于应用程序和数据库之_像中介驱动程序一h据提供一个统一的数据访问方式?<BR><BR>   当用戯行数据库操作Ӟ应用E序传递一个ODBC 函数调用lODBC 驱动E序理器,由ODBC API 判断该调用是由它直接处理q将l果q回q是送交驱动E序执行q将l果q回?<BR><BR>   ׃可见Q单束式驱动E序本n是一个数据库引擎Q由它直接可完成Ҏ据库的操作,管该数据库可能位于|络的Q何地斏V?<BR><BR>   ⑵多束式驱动E序 <BR><BR>   多束式驱动程序负责在数据库引擎和客户应用E序之间传送命令和数据Q它本nq不执行数据处理操作而用于远E操作的|络通信协议的一个界面?<BR><BR>   前端应用E序提出Ҏ据库处理的请求,该请求{lODBC 驱动E序理器,驱动E序理器依据请求的情况Q就地完成或传给多束驱动E序Q多束式驱动E序请求翻译ؓ特定厂家的数据库通信接口Q如Oracle 的SQLNetQ所能理解的形式q交于接口去处理Q接口把hl网l传送给服务器上的数据引擎,服务器处理完后把l果发回l数据库通信接口Q数据库接口结果传l多束式ODBC 驱动E序Q再由驱动程序将l果传给应用E序?<BR><BR>   3.2 在VC 中用ODBC <BR><BR>   Visual C++ 中提供了CDatabase、CRecordset、CRecordView、CDBException 和CFieldExchange 五个c,q些cd装了ODBC SDK 函数Q从而用户可以无需了解SDK 函数可以很方便地操作支持ODBC 的数据库?<BR><BR>   CDatabase c:装了与数据库徏立连接,控制事务的提交和回滚及执行SQL 语句的方法?<BR><BR>   CRecordset c:装了大部分操纵数据库的ҎQ包括浏览、修改记录,控制游标UdQ排序等操作?<BR><BR>   CRecordView c:提供了与recordset 对象相连接的视,可以建立视中的控件与数据库数据的对应Q同时支持移动游标,修改记录{操作?<BR><BR>   CDBException c:提供了对数据库操作的异常处理Q可以获得操作异常的相关q回代码?<BR><BR>   CFieldExchange c:提供了用户变量与数据库字D之间的数据交换Q如果不需要用自定义cdQ你不用直接调用该cȝ函数QMFC Wizard 自动ؓE序员徏立连接?<BR><BR>   4. 两种Ҏ的比?<BR><BR>   lg所qͼ使用q两U方法在Visual C++ 中都可以很方便地开发出ZORACLE 数据库的应用E序Q同Ӟq两U方法又各有其优~点。ODBC ׃有MFC 强大的类库支持而得编E实现非常方便,同时可移植性也很强Q在异构的数据库之间UL也只需更改很少的一部分E序Q但是,由ODBC 的实现机制我们可以看刎ͼ与PRO*C 相比Q应用程序需要经qODBC 驱动E序理器和ODBC 驱动E序两层才能和数据库通信接口建立联系Q而PRO*C 是直接与通信接口联系Q因此徏立在ODBC 上应用程序的执行效率会相对低一些。PRO*C h执行效率高,支持嵌入式PL/SQL 块等ORACLE 自nҎ的优点,但正因ؓ有了q些优点Q得用PRO*C 开发出的应用程序无法向异构数据库^台移植?/TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE> <script type="text/javascript"><!-- google_ad_client = "pub-7732967276450787"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "text_image"; google_ad_channel ="7171629881"; google_color_border = "CC99CC"; google_color_bg = "E7C6E8"; google_color_link = "000000"; google_color_url = "00008B"; google_color_text = "663366"; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <SCRIPT src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript> </SCRIPT> <!-- Search Google --> <CENTER> <FORM action=http://www.google.com/custom method=get target=google_window> <TABLE bgColor=#cccccc> <TBODY> <TR> <TD vAlign=top noWrap align=left height=32><A ><IMG alt=Google src="http://www.google.com/logos/Logo_25gry.gif" align=middle border=0></IMG></A> <INPUT maxLength=255 size=31 name=q></INPUT> <INPUT type=submit value=搜烦 name=sa></INPUT> <INPUT type=hidden value=pub-7732967276450787 name=client></INPUT> <INPUT type=hidden value=1 name=forid></INPUT> <INPUT type=hidden value=2967664569 name=channel></INPUT> <INPUT type=hidden value=GB2312 name=ie></INPUT> <INPUT type=hidden value=GB2312 name=oe></INPUT> <INPUT type=hidden value=GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1; name=cof></INPUT> <INPUT type=hidden value=zh-CN name=hl></INPUT> </TD></TR></TBODY></TABLE></FORM></CENTER><!-- Search Google --><img src ="http://m.tkk7.com/john_yu/aggbug/13824.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/john_yu/" target="_blank">john</a> 2005-09-23 11:41 <a href="http://m.tkk7.com/john_yu/archive/2005/09/23/13824.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://2c06xyz.com" target="_blank">Ůһ</a>| <a href="http://zbhongtai.com" target="_blank">޾Ʒþþþþ </a>| <a href="http://aqddv.com" target="_blank">һĻ </a>| <a href="http://zxbj0471.com" target="_blank">޹Ʒ˾Ʒ </a>| <a href="http://yjjinfeng.com" target="_blank">99ѹۿ</a>| <a href="http://6969aaa.com" target="_blank">ž޹Ʒ</a>| <a href="http://0354888.com" target="_blank">һaƬþëƬ</a>| <a href="http://ge2hao.com" target="_blank">69˾ƷƵ</a>| <a href="http://b2b-chinese.com" target="_blank">avۺպ</a>| <a href="http://www44wawa.com" target="_blank">޳avƬһ</a>| <a href="http://zjtuhui.com" target="_blank">һëƬѲֱۿ</a>| <a href="http://tccqdy.com" target="_blank">ۺݾ</a>| <a href="http://818812.com" target="_blank">Ůһһ鴤Ƶ</a>| <a href="http://jmzc888.com" target="_blank">޾ƷҹӰ</a>| <a href="http://www-774220.com" target="_blank">avѸ߳ˮ</a>| <a href="http://www678678.com" target="_blank">޹Ʒһڶҳ</a>| <a href="http://oakuu.com" target="_blank">99ֻоƷѲ</a>| <a href="http://74rr.com" target="_blank">һ91</a>| <a href="http://0415ss.com" target="_blank">ձXXXѿ</a>| <a href="http://wumase.com" target="_blank">ҹƬAVƬ</a>| <a href="http://heifengmi.com" target="_blank">ƷѲ </a>| <a href="http://nsmtv.com" target="_blank">ĻѴȫ</a>| <a href="http://linmh.com" target="_blank">ƵĻ</a>| <a href="http://www65axax.com" target="_blank">վƵ</a>| <a href="http://mlhcd.com" target="_blank">gayƬgvվ</a>| <a href="http://avqvod.com" target="_blank">ĻձƬ</a>| <a href="http://an930.com" target="_blank">þþþѿaԿ</a>| <a href="http://8x8xbu.com" target="_blank">޳ɵӰ߹ۿ</a>| <a href="http://8xcb.com" target="_blank">ĻѴƬ</a>| <a href="http://dqzlxgg.com" target="_blank">һѹۿձwwwƵ</a>| <a href="http://fzgjw.com" target="_blank">AVһþ</a>| <a href="http://6668889.com" target="_blank">91ֻƬ</a>| <a href="http://xa69.com" target="_blank">ҳڻӭ</a>| <a href="http://www-8812.com" target="_blank">Ļ޵Ӱ</a>| <a href="http://wwwaa875.com" target="_blank">ŷƵ</a>| <a href="http://295301.com" target="_blank">ŮƵһ</a>| <a href="http://hqshimo.com" target="_blank">޹ۺרӰ</a>| <a href="http://qzllw.com" target="_blank">椸Ƶ</a>| <a href="http://zxbj0471.com" target="_blank">XXX2߹ۿƵ</a>| <a href="http://449892.com" target="_blank">޹Ƭ߲</a>| <a href="http://zhidianzh.com" target="_blank">߹ۿվ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>