﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-清睛仪明-文章分类-Oracle DBA</title><link>http://www.blogjava.net/msmary/category/47410.html</link><description>书山有路勤为径，学海无涯苦作舟</description><language>zh-cn</language><lastBuildDate>Mon, 20 Dec 2010 10:31:37 GMT</lastBuildDate><pubDate>Mon, 20 Dec 2010 10:31:37 GMT</pubDate><ttl>60</ttl><item><title>解决Oracle中，用户作为SYSDBA可以以任何密码登录</title><link>http://www.blogjava.net/msmary/articles/341166.html</link><dc:creator>谭明</dc:creator><author>谭明</author><pubDate>Mon, 20 Dec 2010 06:50:00 GMT</pubDate><guid>http://www.blogjava.net/msmary/articles/341166.html</guid><wfw:comment>http://www.blogjava.net/msmary/comments/341166.html</wfw:comment><comments>http://www.blogjava.net/msmary/articles/341166.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/msmary/comments/commentRss/341166.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/msmary/services/trackbacks/341166.html</trackback:ping><description><![CDATA[<p>oracle认证方式分为操作系统认证和口令文件认证2种方式，操作系统认证有时候也叫本地认证。<br />
－－操作系统认证:即oracle认为操作系统用户是可靠的，即既然能登陆到操作系统那么oracle数据库你也能登陆<br />
－－口令文件认证：oracle认证认为操作系统用户是不可信任的，如果要访问数据库，必须进行再次认证。</p>
<p>具体实现如下：<br />
－－操作系统认证：<br />
配置sqlnet.ora文件中的参数：SQLNET.AUTHENTICATION_SERVICES＝(NTS)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; spfile(pfile）文件参数：REMOTE_LOGIN_PASSWORDFILE=('NONE')<br />
这个时候，只要你登陆操作系统oracle用户后，就可以直接conn /as sysdba登陆数据库了。但是不能通过oracle的client去直接连接/as sysdba。如客户端SQLPLUSw或者其它客户端软件直接conn /as sysbd 。</p>
<p>－－口令文件认证：<br />
配置sqlnet.ora文件中的参数：SQLNET.AUTHENTICATION_SERVICES＝(NONE)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; spfile(pfile）文件参数：REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE')或('SHARED')<br />
这个时候需要配置口令文件PWDorcl.ora。（orcl为数据库SID）可以通过orapwd命令进行配置口令，具体用法man orapwd。<br />
这种情况下，就是口令认证模式，不能使用本地用户conn /as sysdba 这个时候会报错：ORA-01031 权限不足。你必须使用conn sys/pwd@orcl as sysdba进行登陆：就是说必须提供用户名和密码才能登陆。(orcl 为SID）</p>
<p><br />
系统默认是操作系统认证模式。</p>
<p>另解：<br />
&nbsp;如果用的是Win系统的话，操作系统里面有一个ora_dba组，这个组里面<br />
Members can connect to the Oracle database as a DBA without a password<br />
去掉这个组里的所有成员，这样sys登陆就一定要正确的密码</p>
<p><br />
本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/luohuijun619/archive/2009/10/24/4724510.aspx</p>
<img src ="http://www.blogjava.net/msmary/aggbug/341166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/msmary/" target="_blank">谭明</a> 2010-12-20 14:50 <a href="http://www.blogjava.net/msmary/articles/341166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle DBA 个人笔记</title><link>http://www.blogjava.net/msmary/articles/341130.html</link><dc:creator>谭明</dc:creator><author>谭明</author><pubDate>Mon, 20 Dec 2010 02:07:00 GMT</pubDate><guid>http://www.blogjava.net/msmary/articles/341130.html</guid><wfw:comment>http://www.blogjava.net/msmary/comments/341130.html</wfw:comment><comments>http://www.blogjava.net/msmary/articles/341130.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/msmary/comments/commentRss/341130.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/msmary/services/trackbacks/341130.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一、 数据库的启动和关闭<br />
1、Oracle Server主要由两部分组成：Instance和Database。Instance是指一组后台进程/线程和一块共享内存区域,<br />
而Database是指存储在磁盘上的一组物理文件.</p>
<p>2、Oracle数据库的启动主要包含3个步骤：<br />
&nbsp;&nbsp; （1）启动数据库到nomount(未加载)状态；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; startup nomount<br />
&nbsp;&nbsp; （2）启动数据库到mount(加载)状态；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alter database mount<br />
&nbsp;&nbsp; （3）启动数据库到open(打开)状态；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alter database open</p>
<p>3、启动的第一步，Oracle首先寻找参数文件（pfile/spfile），然后根据参数文件中的设置，创建实例，分配内存，<br />
&nbsp;&nbsp;&nbsp;&nbsp; 启动后台进程。</p>
<p>4、Oracle首先spfile&lt;sid&gt;.ora文件作为启动参数文件；如果该文件不存在，则选择spfile.ora,<br />
&nbsp;&nbsp;&nbsp;&nbsp; 然后是init&lt;sid&gt;.ora文件。</p>
<p>5、在SQL*PLUS中通过show parameter spfile命令来检查数据库是否使用了spfile文件。</p>
<p>6、参数文件中，通常需要最少的参数是 db_name,设置了这个参数之后，数据库实例就可以启动。</p>
<p>7、查看参数文件缺省路径：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; show parameter dump_dest<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; show parameter control_files<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; show parameter db_name&nbsp;&nbsp;&nbsp; //显示实例名<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; show paramter compatible&nbsp;&nbsp; //显示兼容</p>
<p>8、在使用RMAN（Recovery Manager）时存在更为特殊的情况，Oracle允许在不存在参数文件的情况下启动一个实例，<br />
&nbsp;&nbsp;&nbsp;&nbsp; 数据库的 db_name会被缺省命名为DUMMY</p>
<p>9、LSNRCTL&gt; status&nbsp;&nbsp; //查看监听状态<br />
&nbsp;&nbsp;&nbsp; LSNRCTL&gt; start&nbsp;&nbsp;&nbsp; //启动监听</p>
<p>10、关闭数据库 shutdown immediate&nbsp; 而非 shutdown, shutdown 会不正常关闭<br />
&nbsp;&nbsp;&nbsp; shutdown&nbsp;&nbsp; 正常关闭，等待所有的用户断开连接<br />
&nbsp;&nbsp;&nbsp; shutdown immediate&nbsp; 使用这个命令迫使每个用户执行完成当前的SQL语句后立即断开连接<br />
&nbsp;&nbsp;&nbsp; shutdown transactional&nbsp; 执行Transaction关闭，迫使用户在当前执行完成后断开连接<br />
&nbsp;&nbsp;&nbsp; shutdown abort&nbsp; 终止实例，停止所有的操作。恢复破坏的文件，数据库文件不能同其他数据库文件保持一致</p>
<p>11、启动数据库到mount状态<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQL&gt;alter database mount;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在mount数据库过程中，Oracle需要找到控制文件并锁定控制文件。如果控制文件全部丢失此时就会报出如下错误：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ORA-00205:error in identifying controlfile,check alert log for more info</p>
<p>12、启动数据库open阶段<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQL&gt;alter database open;</p>
<p>13、SCN (System Change Number) 系统改变号<br />
&nbsp;&nbsp;&nbsp; //获取当前SCN&nbsp; select dbms_flashback.get_system_change_number from dual;</p>
<p>14、查检点 (Checkpoint)&nbsp; 减少崩溃恢复(Crash Recovery)时间</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 二、参数及参数文件</p>
<p>1、初始化参数的分类，分为3类：推导参数、操作系统依赖参数和可变参数</p>
<p>2、推导参数(Derived Parameters)<br />
&nbsp;&nbsp;&nbsp; 推导参数通常来自于其他参数的运算，依赖其他参数得出。所以这类参数通常不需要修改。如果强制修改，那么修改值会覆盖推导值。<br />
&nbsp;&nbsp;&nbsp; 常见的此类参数有很多，例如，SESSION参数，在Oracle文档中，该参数按以下公式运算得出：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SESSION = (1.1*PROCESSES) + 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 缺省情况下，当PROCESSES被修改时，此参数会自动计算并生效</p>
<p>3、操作系统依赖参数<br />
&nbsp;&nbsp;&nbsp; 某些参数的有效值或取值范围依赖或者受限于操作系统，如db_cache_size参数，设置Oracle使用的内存大小，该参数的最大值就要<br />
&nbsp;&nbsp;&nbsp; 受限于物理内存。这一类参数通常被称为操作系统依赖参数。</p>
<p>4.可变参数<br />
&nbsp;&nbsp;&nbsp; 可变参数通常可以调整，有些设置的是限制条件，如OPEN_CURSORS；有的参数是设置容量，如DB_CACHE_SIZE等。这类参数通常可以<br />
&nbsp;&nbsp;&nbsp; 为DBA或最终用户调整，从而产生限制性能变化，对Oracle至关重要。</p>
<p>5、初始化参数通常还有一些其他分类方式<br />
&nbsp;&nbsp;&nbsp;&nbsp; a.按照修改方式划分，初始化参数又可以分为静态参数和动态参数。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 静态参数只能在参数文件中修改，在重新启动后方能生效；动态参数可以动态调整，调整后通常可以立即生效。<br />
&nbsp;&nbsp;&nbsp;&nbsp; b.按照获取方式不同，初始化参数又可以分为显示参数和隐式参数。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示参数可以通过v$parameter查询得到；而隐含参数通常以&#8220;_&#8221;开关，必须通过查询系统表方能获得这些参数。</p>
<p>6、SPFILE的搜索顺序<br />
&nbsp;&nbsp;&nbsp;&nbsp; 重新启动数据库，使用startup命令，Oracle将会按照以下顺序在缺省目录中搜索参数文件。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1) spfile&lt;ORACLE_SID&gt;.ora,其缺省目录如下:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UNIX: $ORACLE_HOME/dbs/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NT: %ORACLE_HOME%\database<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2) spfile.ora,其缺省目录如下:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UNIX: $ORACLE_HOME/dbs/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NT: %ORACLE_HOME%\database<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (3) init&lt;ORACLE_SID&gt;.ora, 其缺省目录如:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UNIX: $ORACLE_HOME/dbs/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NT: %ORACLE_HOME%\database<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 创建了spfile,重新启动数据库，Oracle会按顺序搜索以上目录，spfile就会自动生效。</p>
<p>7、警报日志文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 控制警报日志文件位置的初始化参数是BACKGROUND_DUMP_DEST:<br />
&nbsp;&nbsp;&nbsp; SQL&gt; show parameter background_dump_dest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其缺省文件名为alert_&lt;sid&gt;.log</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 三、数据字典</p>
<p>1、数据字典由4部分组成：内部RDBMS(X$)表、数据字典表、动态性能(V$)视图和数据字典视图</p>
<p>2、数据字典表(Data Dictionary Table)用以存储表、索引、约束以及其它数据库结构的信息。<br />
&nbsp;&nbsp;&nbsp; 这些对象通常以"$"结尾(如tab$、obj$、ts$等)<br />
&nbsp;&nbsp; sql.bsq是非常重要的一个文件，其中包含了数据字典表的定义及注释说明，该文件位于$ORACLE_HOME/rdbms/admin目录下。</p>
<p>3、动态性能视图(Dynamic Performance View) 记录了数据库运行时信息和统计数据<br />
&nbsp;&nbsp;&nbsp; 从Oracle 8开始，GV$视图开始被引入，其含义为Global V$,除了一些特例外，每个V$视图都有一个对应的GV$视图存在。</p>
<p>&nbsp;&nbsp; 注意,每个V$视图都包含类似语句：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where inst_id = USERENV('Instance')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用于限制返回当前实例信息</p>
<p>4、Oracle的X$表信息可以从v$fixed_table中查到：<br />
&nbsp;&nbsp;&nbsp; SQL&gt; select count(*) from v$fixed_table where name like 'X$%';</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 四、内存管理</p>
<p>1、SGA 指系统全局区(System Global Area)<br />
&nbsp;&nbsp;&nbsp; 一块用于加载数据、对象并保存运行状态和数据库控制信息的一块内存区域，在数据库实例启动时分配，当实例关闭时释放，<br />
&nbsp;&nbsp;&nbsp; 每个实例都拥有自己的SGA区</p>
<p>2、数据缓冲区 (Buffer Cache) 的大小由初始化参数db_cache_size (8i中是db_block_size*db_block_buffers)决定</p>
<p><br />
3、对于SGA各部分设置，可以从数据库的视图中查询得到：<br />
&nbsp;&nbsp;&nbsp;&nbsp; select * from v$sga;<br />
&nbsp;&nbsp;&nbsp;&nbsp; show sga</p>
<p>4、SGA总和受参数SGA_MAX_SIZE设置的影响<br />
&nbsp;&nbsp;&nbsp;&nbsp; show parameter sga_max_size<br />
&nbsp;&nbsp;&nbsp; Variable Size 包括 shared_pool_size、java_pool_size和large_pool_size部分</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 五、Buffer Cache 与 Shared Pool 原理<br />
&nbsp;&nbsp; Buffer Cache 与 Shared Pool是SGA中的最重要和最复杂的两个部分</p>
<p>1、在Buffer Cache中，Oracle通过几个链表进行内存管理，其中最为熟知的是LRU List和Dirty List(也经常被称为Write List,从8i开始,<br />
&nbsp;&nbsp;&nbsp; 因为算法的改变，也被称为Checkpoint Queue)，各种List上存放的是指向具体Buffer的指针。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 六、重做(Redo)</p>
<p>1、重做(Redo)和撤消(Undo)是Oracle的重要特性，用以保证事务的可恢复性和可撤消性。</p>
<p>2、在数据库中,Redo的功能主要通过3个组件来实现:Redo Log Buffer、LGWR后台进程和Redo Log File(在归档模式下,<br />
&nbsp;&nbsp;&nbsp; Redo Log File最终会写出为归档日志文件)</p>
<p>3、日志文件的状态：CURRENT、ACTIVE、INACTIVE和UNUSED<br />
&nbsp;&nbsp;&nbsp; (1).CURRENT<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指当前的日志文件，该日志文件是活动的，当前正在被使用的，在进行崩溃恢复时，CURRENT的日志文件是必须的。<br />
&nbsp;&nbsp;&nbsp; (2).ACTIVE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指活动的非当前日志，该日志可以已经完成归档也可能没有归档，活动的日志文件在Crash恢复时会被用到。<br />
&nbsp;&nbsp;&nbsp; (3).INACTIVE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指非活动日志，该日志在实例恢复时不再需要，但是在介质恢复时可能会用到。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 日志是否完成归档，可以根据V$LOG.ARCHIVED字段进行判断<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select * from v$log;<br />
&nbsp;&nbsp;&nbsp; (4).UNUSED<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指该日志从未被定入，这类日志可能是刚被添加到数据库或者在RESETLOGS之后被重置。被使用之后，该状态会被改变。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 七、等待事件</p>
<p>1、通过查询V$EVENT_NAME视图<br />
&nbsp;&nbsp;&nbsp; select count(*) from v$evnet_name;</p>
<p>2、等待事件可以分为空闲(idle)等待和非空闲(non-idle)等待事件<br />
&nbsp;&nbsp;&nbsp;&nbsp; .空闲事件指Oracle正等待某种工作，在诊断和优化数据库的时候，不用过多注意这部分事件。<br />
&nbsp;&nbsp;&nbsp;&nbsp; .非空闲等待事件专门针对Oracle的活动，指数据库任务或应用运行过程中发生的等待，在调整数据库的时候应该关注与研究<br />
</p>
<img src ="http://www.blogjava.net/msmary/aggbug/341130.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/msmary/" target="_blank">谭明</a> 2010-12-20 10:07 <a href="http://www.blogjava.net/msmary/articles/341130.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>