﻿<?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>IT博客-lichanggu's Blog-文章分类-ORACLE</title><link>http://www.cnitblog.com/lichanggu/category/8546.html</link><description>自娱自乐</description><language>zh-cn</language><lastBuildDate>Wed, 12 Oct 2011 01:13:04 GMT</lastBuildDate><pubDate>Wed, 12 Oct 2011 01:13:04 GMT</pubDate><ttl>60</ttl><item><title>RAC常用命令汇总</title><link>http://www.cnitblog.com/lichanggu/articles/62982.html</link><dc:creator>lichanggu</dc:creator><author>lichanggu</author><pubDate>Wed, 02 Dec 2009 14:31:00 GMT</pubDate><guid>http://www.cnitblog.com/lichanggu/articles/62982.html</guid><description><![CDATA[RAC常用命令汇总<br />RAC常用命令汇总<br />RAC常用命令汇总<br /><img src ="http://www.cnitblog.com/lichanggu/aggbug/62982.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lichanggu/" target="_blank">lichanggu</a> 2009-12-02 22:31 <a href="http://www.cnitblog.com/lichanggu/articles/62982.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RMAN常用命令汇总</title><link>http://www.cnitblog.com/lichanggu/articles/62981.html</link><dc:creator>lichanggu</dc:creator><author>lichanggu</author><pubDate>Wed, 02 Dec 2009 14:27:00 GMT</pubDate><guid>http://www.cnitblog.com/lichanggu/articles/62981.html</guid><description><![CDATA[RMAN常用命令备忘<br />RMAN常用命令备忘<br /><br /><img src ="http://www.cnitblog.com/lichanggu/aggbug/62981.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lichanggu/" target="_blank">lichanggu</a> 2009-12-02 22:27 <a href="http://www.cnitblog.com/lichanggu/articles/62981.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dataguard常用命令汇总</title><link>http://www.cnitblog.com/lichanggu/articles/62976.html</link><dc:creator>lichanggu</dc:creator><author>lichanggu</author><pubDate>Wed, 02 Dec 2009 08:49:00 GMT</pubDate><guid>http://www.cnitblog.com/lichanggu/articles/62976.html</guid><description><![CDATA[
		<p> </p>
		<p>----标准DataGuard参数设置------------------------------<br />alter system set log_archive_dest_2='SERVICE=ta_std REOPEN=300  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) db_unique_name=ta_std';<br />alter system set fal_server='ta_std';<br />alter system set fal_client='ta';</p>
		<p>alter system set fal_server='ta';<br />alter system set fal_client='ta_std';</p>
		<p>
				<br />----利用ssh tunnel的DataGuard参数设置------------------------------<br />alter system set log_archive_dest_2 = 'SERVICE=ta_ssh NOREOPEN VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) db_unique_name=ta_std alternate=log_archive_dest_3';<br />alter system set log_archive_dest_state_2= enable;<br />--注意：log_archive_dest_2需要设置noreopen或者reopen=0属性，否则无法迅速切换到备用路径。</p>
		<p>alter system set log_archive_dest_3 = 'SERVICE=ta_std REOPEN=300 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) db_unique_name=ta_std';<br />alter system set log_archive_dest_state_3=alternate;<br />--注意：当归档目标log_archive_dest_2不能正常归档时，数据库切换归档目标到log_archive_dest_3，即使log_archive_dest_2归档目标恢复正常，也不会再自动切换回去，需要手工重新修改路径状态参数：<br />--alter system set log_archive_dest_state_2= enable;<br />--alter system set log_archive_dest_state_3= alternate;</p>
		<p>alter system set fal_server = 'ta_ssh';<br />alter system set fal_client = 'ta';</p>
		<p>测试<br />tnsping ta     tnsing ta_std     tnsing ta_ssh</p>
		<p> </p>
		<p> </p>
		<p>------------------------------------------------------<br />p170a:    ssh -L 15210:p170b:1521 -C -N p170b<br />p170b:    ssh -L 15210:p170a:1521 -C -N p170a</p>
		<p>redhat1:    ssh -L 15210:redhat2:1521 -C -N redhat2<br />redhat2:    ssh -L 15210:redhat1:1521 -C -N redhat1</p>
		<p>----DataGuard 中注册日志文件------------------------------<br />alter database register OR replace logfile '/data/arch_ta/1_515_673519034.dbf';</p>
		<p>
				<br />注册日志文件<br />catalog archivelog '....';</p>
		<p>
				<br />ALTER SESSION SET nls_date_format = 'YYYY-MM-DD HH24:MI:SS';<br />SELECT TIMESTAMP,MESSAGE FROM V$DATAGUARD_STATUS;</p>
		<p>SELECT * FROM (SELECT THREAD#,SEQUENCE#,FIRST_CHANGE#,NEXT_CHANGE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY FIRST_CHANGE# DESC) WHERE ROWNUM&lt;20;</p>
		<p>
				<br />一、PRIMARY DATABASE</p>
		<p>1、设置DB FORCE_LOGGING为YES <br />SELECT FORCE_LOGGING FROM V$DATABASE;<br />ALTER DATABASE FORCE LOGGING;<br />ALTER DATABASE NO FORCE LOGGING;</p>
		<p>
				<br />2、设置保护模式<br />SELECT OPEN_MODE,DATABASE_ROLE,SWITCHOVER_STATUS,PROTECTION_MODE, PROTECTION_LEVEL FROM V$DATABASE;<br />ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION;<br />ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;<br />ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;</p>
		<p>3、设置归档目标<br />ALTER SYSTEM SET log_archive_dest_1='location=/app/oracle/arch';<br />ALTER SYSTEM set LOG_ARCHIVE_DEST_2='SERVICE=ta_std REOPEN=300  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES)';<br />ALTER SYSTEM SET log_archive_dest_state_1=enable;<br />ALTER SYSTEM SET log_archive_dest_state_2=defer;</p>
		<p>ALTER SYSTEM SET fal_server=ta_std;<br />ALTER SYSTEM SET fal_client=fmp;</p>
		<p>ALTER SYSTEM set DB_FILE_NAME_CONVERT='fmpdb','fmpdb' SCOPE=SPFILE;<br />ALTER SYSTEM set LOG_FILE_NAME_CONVERT='fmpdb','fmpdb' SCOPE=SPFILE;<br />ALTER SYSTEM SET standby_file_management=auto;</p>
		<p>二、STANDBY DATABASE</p>
		<p>1、建目录结构<br />D:\oracle\product\10.2.0\admin<br />D:\oracle\product\10.2.0\flash_recovery_area<br />D:\oracle\product\10.2.0\oradata\fmpdb<br />D:\oracle\product\10.2.0\oradata\fmpdbarch</p>
		<p>2、copy <br />D:\oracle\product\10.2.0\db_1\database\PWDfmpdb.ora<br />D:\oracle\product\10.2.0\db_1\database\SPFILEFMPDB.ORA<br />D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora  需修改IP<br />D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora</p>
		<p>C:\&gt; ORADIM -NEW -sid fmpdb<br />C:\&gt; orapwd file=D:\oracle\product\10.2.0\db_1\database\PWDfmpdb.ora password=oracle force=y<br />--password必须与PRIMARY保持一致</p>
		<p>starup nomount<br />ALTER SYSTEM SET log_archive_dest_1='location=D:\oracle\product\10.2.0\oradata\fmpdbarch';<br />ALTER SYSTEM set LOG_ARCHIVE_DEST_2='SERVICE= REOPEN=300 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES)';<br />--ALTER SYSTEM reset LOG_ARCHIVE_DEST_2 scope=spfile sid='*';<br />ALTER SYSTEM SET log_archive_dest_state_1=enable;<br />ALTER SYSTEM SET log_archive_dest_state_1=defer;</p>
		<p>ALTER SYSTEM SET fal_server=fmp;<br />ALTER SYSTEM SET fal_client=fmp_std;</p>
		<p>三、PRIMARY DATABASE</p>
		<p>RMAN 备份：<br />rman target /<br />crosscheck backup;<br />delete noprompt expired backup;<br />crosscheck archivelog all;<br />delete noprompt expired archivelog all;</p>
		<p>BACKUP format 'D:\oracle\product\10.2.0\oradata\backup\%d_STBY_%T_%s_%p' current controlfile for standby;<br />BACKUP format 'D:\oracle\product\10.2.0\oradata\backup\%d_FULL_%T_%s_%p' database MAXSETSIZE 2G;<br />SQL 'alter system archive log current';<br />BACKUP format 'D:\oracle\product\10.2.0\oradata\backup\%d_ARCH_%T_%s_%p' archivelog all MAXSETSIZE 2G;<br />exit;</p>
		<p>四、STANDBY DATABASE<br />1、copy 主D:\oracle\product\10.2.0\oradata\backup\*.*至备<br />2、<br />RMAN target <a href="mailto:sys/oracle@fmp">sys/oracle@fmp</a><br />connect auxiliary <a href="mailto:sys/oracle@fmp_std">sys/oracle@fmp_std</a><br />duplicate target database for standby nofilenamecheck;<br /> [dorecover];</p>
		<p>五、PRIMARY DATABASE<br />ALTER SYSTEM SET log_archive_dest_state_2=enable;</p>
		<p>六、STANDBY DATABASE<br />startup mount<br />ALTER SYSTEM SET log_archive_dest_state_2=enable;</p>
		<p>--启动了MRP0进程(Managed Standby Recovery)<br />ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;<br />ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;<br />ALTER DATABASE OPEN;</p>
		<p>七、检查<br />--查询尚未APPLIED的archived log(STANDBY端)<br />SELECT * FROM (SELECT THREAD#,SEQUENCE#,FIRST_CHANGE#,NEXT_CHANGE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY FIRST_CHANGE# DESC) WHERE ROWNUM&lt;20;</p>
		<p>--察看从数据库已经归档的redo<br />SELECT REGISTRAR,CREATOR,THREAD#,SEQUENCE#,APPLIED,FIRST_CHANGE#,NEXT_CHANGE# FROM V$ARCHIVED_LOG;</p>
		<p>--察看从数据库已经应用的redo<br />SELECT THREAD#, SEQUENCE#, FIRST_CHANGE#, NEXT_CHANGE# FROM V$LOG_HISTORY;</p>
		<p>--DATAGUARD 状态<br />ALTER SESSION SET nls_date_format = 'YYYY-MM-DD HH24:MI:SS';<br />SELECT TIMESTAMP,MESSAGE FROM V$DATAGUARD_STATUS;</p>
		<p>--从数据库端察看RFS(Remote File Service)接收日志情况和MRP应用日志同步主数据库情况<br />COL STATUS FORMAT A15<br />SELECT PROCESS,STATUS,THREAD#,SEQUENCE#,BLOCK#,BLOCKS FROM V$MANAGED_STANDBY;</p>
		<p>--察看从数据库是否和主数据库同步<br />COL DEST_NAME FORMAT A20<br />SELECT DEST_NAME,ARCHIVED_THREAD#, ARCHIVED_SEQ#, APPLIED_THREAD#, APPLIED_SEQ# FROM V$ARCHIVE_DEST_STATUS;</p>
		<p>col DESTINATION format a50<br />SELECT DEST_NAME,DESTINATION, STATUS, ARCHIVED_THREAD#, ARCHIVED_SEQ# FROM V$ARCHIVE_DEST_STATUS WHERE STATUS &lt;&gt; 'DEFERRED' AND STATUS &lt;&gt; 'INACTIVE';</p>
		<p>--GAP<br />SELECT * FROM V$ARCHIVE_GAP;</p>
		<p>
				<br />第二部分 主数据库正常切换</p>
		<p>一 人工干预主数据库正常切换</p>
		<p>1 在主数据库端检验数据库可切换状态 <br />SQL&gt; SELECT SWITCHOVER_STATUS FROM V$DATABASE;<br />SWITCHOVER_STATUS <br />----------------- <br />TO STANDBY <br />1 row selected </p>
		<p>SWITCHOVER_STATUS:TO STANDBY表示可以正常切换.<br />如果SWITCHOVER_STATUS的值为SESSIONS ACTIVE,表示当前有会话处于ACTIVE状态</p>
		<p>2 开始主数据库正常切换 IP:172.16.75.35<br />如果SWITCHOVER_STATUS的值为TO STANDBY 则:<br />SQL&gt; ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;<br />如果SWITCHOVER_STATUS的值为SESSIONS ACTIVE 则:<br />SQL&gt; ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;<br />成功运行这个命令后，主数据库被修改为从数据库</p>
		<p>3 重启先前的主数据库 <br />SQL&gt; SHUTDOWN IMMEDIATE;<br />SQL&gt; STARTUP MOUNT;</p>
		<p>4 在从数据库端验证可切换状态 IP:172.16.75.30<br />SQL&gt; SELECT SWITCHOVER_STATUS FROM V$DATABASE; <br />SWITCHOVER_STATUS <br />----------------- <br />TO_PRIMARY <br />1 row selected</p>
		<p>5 将目标从数据库转换为主数据库 IP:172.16.75.30<br />如果SWITCHOVER_STATUS的值为TO STANDBY 则:<br />SQL&gt; ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;<br />如果SWITCHOVER_STATUS的值为SESSIONS ACTIVE 则:<br />SQL&gt; ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;<br />成功运行这个命令后，从数据库被修改为主数据库</p>
		<p>6 重启目标从数据库<br />SQL&gt; SHUTDOWN IMMEDIATE;<br />SQL&gt; STARTUP;</p>
		<p>7 先前主数据库启动日志传送进程<br />SQL&gt; alter database recover managed standby database disconnect;</p>
		<p> </p>
		<p>============================================================================<br />--ALTER SYSTEM set log_archive_config='DG_CONFIG=(testdb,testdb2)';</p>
		<p>ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'D:\oracle\product\10.2.0\oradata\boston\CONTROL01.CTL';</p>
		<p>--启动了MRP0进程(Managed Standby Recovery)<br />ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;<br />ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;<br />ALTER DATABASE OPEN;</p>
		<p>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;<br />ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;<br />ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;<br />ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;</p>
		<p>
				<br />SET PAGESIZE 200<br />SELECT * FROM V$PROCESS;<br />SELECT * FROM V$BGPROCESS WHERE PADDR&lt;&gt;'00';</p>
		<p>SELECT USERNAME,TERMINAL,PROGRAM FROM V$PROCESS;<br />SELECT * FROM V$BGPROCESS WHERE PADDR&lt;&gt;'00';<br />COL USERNAME FORMAT A15<br />COL MACHINE FORMAT A30<br />SELECT USERNAME,MACHINE,TERMINAL,PROGRAM FROM V$SESSION;</p>
		<p> </p>
		<p> </p>
		<p>-------</p>
		<p>rman nocatalog target <a href="mailto:sys/oracle@ta">sys/oracle@ta</a><br />run {<br />ALLOCATE CHANNEL c1 DEVICE TYPE DISK CONNECT <a href="mailto:'sys/oracle@ta1'">'sys/oracle@ta1'</a> format '/app/oracle/backup/rac1_%U';<br />ALLOCATE CHANNEL c2 DEVICE TYPE DISK CONNECT <a href="mailto:'sys/oracle@ta2'">'sys/oracle@ta2'</a> format '/app/oracle/backup/rac2_%U';<br />sql 'alter system archive log current';<br />backup filesperset 3 archivelog all delete all input;<br />release channel c1;<br />release channel c2;<br />}</p>
		<p>
				<br />rman nocatalog target <a href="mailto:sys/oracle@ta">sys/oracle@ta</a><br />run {<br />ALLOCATE CHANNEL c1 DEVICE TYPE DISK CONNECT <a href="mailto:'sys/oracle@ta1'">'sys/oracle@ta1'</a>;<br />ALLOCATE CHANNEL c2 DEVICE TYPE DISK CONNECT <a href="mailto:'sys/oracle@ta2'">'sys/oracle@ta2'</a>;<br />BACKUP FORMAT '/app/oracle/backup/%t_%U' DATABASE PLUS ARCHIVELOG;<br />BACKUP FORMAT '/app/oracle/backup/%t_%U' CURRENT CONTROLFILE FOR STANDBY;<br />release channel c1;<br />release channel c2;<br />}</p>
		<p>
				<br />-----RAC环境下，交叉验证-----------------------------------------<br />allocate channel for maintenance device type DISK connect <a href="mailto:'sys/oracle@ora921'">'sys/oracle@ora921'</a>;<br />allocate channel for maintenance device type DISK connect <a href="mailto:'sys/oracle@ora922'">'sys/oracle@ora922'</a>;<br />crosscheck archivelog all;<br />delete noprompt expired archivelog all;<br />release channel;</p>
		<p>crosscheck backup;<br />delete noprompt expired backup;<br />delete noprompt obsolete;<br />release channel;<br />-------------------------------------------------------------------------</p>
		<p>RMAN&gt; <br />catalog archivelog '/arch/ora92/2_1.dbf';<br />list archivelog all;</p>
		<p>
				<br />scp -p -r <a href="mailto:oracle@192.168.192.71:/app/oracle/backup">oracle@192.168.192.71:/app/oracle/backup</a> /app/oracle<br />scp -p -r <a href="mailto:oracle@192.168.192.72:/app/oracle/backup">oracle@192.168.192.72:/app/oracle/backup</a> /app/oracle</p>
		<p>
				<br />orapwd file=/app/oracle/product/10.2.0/db_1/dbs/orapwta password=oracle force=y</p>
		<p>
				<br />ALTER SYSTEM set DB_FILE_NAME_CONVERT='ta','ta' SCOPE=SPFILE;<br />ALTER SYSTEM set LOG_FILE_NAME_CONVERT='ta','ta' SCOPE=SPFILE;</p>
		<p>
				<br />rman target <a href="mailto:sys/oracle@ta">sys/oracle@ta</a><br />connect auxiliary <a href="mailto:sys/oracle@ta_std">sys/oracle@ta_std</a><br />duplicate target database for standby nofilenamecheck;</p>
		<p>--primary<br />ALTER SYSTEM SET log_archive_config='dg_config=(ta,ta_std)' sid='*';<br />ALTER SYSTEM SET log_archive_dest_1='location=/app/oracle/arch' sid='*';<br />ALTER SYSTEM set LOG_ARCHIVE_DEST_2='SERVICE=ta_std REOPEN=300  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) db_unique_name=ta_std' sid='*';<br />ALTER SYSTEM SET log_archive_dest_state_1=enable sid='*';<br />ALTER SYSTEM SET log_archive_dest_state_2=defer sid='*';<br />ALTER SYSTEM SET standby_file_management=auto sid='*'</p>
		<p>--standby<br />ALTER SYSTEM SET log_archive_config='dg_config=(ta,ta_std)';<br />ALTER SYSTEM SET standby_file_management=auto;<br />ALTER SYSTEM SET fal_server='ta1','ta2';<br />ALTER SYSTEM SET fal_client='ta_std';</p>
		<p>ALTER SYSTEM SET log_archive_dest_state_2=enable sid='*';</p>
		<p>
				<br />ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;<br />recover managed standby database finish;</p>
		<p> </p>
		<p>
				<br />通过故障切换实现角色转换<br />1、查询备用数据中v$archive_gap视图来定位备用数据库中的日志缺失。<br />2、在备用数据库中通过下面的命令对归档日志进行注册<br />   alter database register physical logfile '......';<br />3、alter database recover managed standby database finish;<br />   alter database recover managed standby database finish skip standby logfile;<br />4、alter database commit to switchover to primary;<br />5、shutdown immediate;<br />   startup;</p>
		<p> </p>
		<p>fmpdb =<br />  (DESCRIPTION =<br />    (ADDRESS_LIST =<br />      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.1)(PORT = 1521))<br />      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.2)(PORT = 1521))<br />      (LOAD_BALANCE = yes)<br />    )<br />    (CONNECT_DAfmpdb =<br />      (SERVICE_NAME = fmpdb)<br />       (FAILOVER_MODE =<br />        (TYPE = SELECT)<br />        (METHOD = BASIC)<br />        (RETRIES = 180)<br />        (DELAY = 5)<br />      )<br />    )<br />  )</p>
		<p>
				<br />fmpdb1 =<br />  (DESCRIPTION =<br />    (ADDRESS_LIST =<br />      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.1)(PORT = 1521))<br />    )<br />    (CONNECT_DAfmpdb =<br />      (SERVICE_NAME = fmpdb)<br />    )<br />  )</p>
		<p>
				<br />fmpdb2 =<br />  (DESCRIPTION =<br />    (ADDRESS_LIST =<br />      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.2)(PORT = 1521))<br />    )<br />    (CONNECT_DAfmpdb =<br />      (SERVICE_NAME = fmpdb)<br />    )<br />  )</p>
		<p>fmpdb_std =<br />  (DESCRIPTION =<br />    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.0.11)(PORT = 1521))<br />    (CONNECT_DAfmpdb =<br />      (SERVER = DEDICATED)<br />      (SERVICE_NAME = fmpdb)<br />    )<br />  )</p>
		<p>-------------------------------------------------------------------------------<br /><a href="http://hi.baidu.com/dbaeyes/blog/item/740c3bfb3e0d5361034f568e.html">http://hi.baidu.com/dbaeyes/blog/item/740c3bfb3e0d5361034f568e.html</a></p>
		<p>
				<br />standby 管理和维护2008年07月13日 星期日 00:31管理：</p>
		<p>查询库状态：<br />SQL&gt; select name,SWITCHOVER_STATUS,open_mode,PROTECTION_MODE,DATABASE_ROLE<br />          from v$database;</p>
		<p>验证archive log是否接收和 applied.<br />SQL&gt; alter session set nls_datE_format='YYYY-MM-DD HH24:MI:SS';</p>
		<p>select SEQUENCE#,DEST_ID,ARCHIVED,APPLIED,DELETED,<br />STATUS,FIRST_TIME from v$archived_log order by SEQUENCE#;</p>
		<p>启动到管理模式:<br />SQL&gt; shutdown immediate;<br />SQL&gt; startup nomount<br />SQL&gt; alter database mount standby database<br />SQL&gt; recover managed standby database disconnect from session;<br />----------</p>
		<p>SQL&gt; ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;</p>
		<p>10g以后，采用联机日志的传递传递方式，<br />SQL&gt; recover managed standby database using current logfile disconnect from session;</p>
		<p>启动到只读模式：<br />SQL&gt; shutdown immediate;<br />SQL&gt; startup nomount<br />SQL&gt; alter database mount standby database<br />SQL&gt; alter databae open read only;</p>
		<p>在管理模式恢复到只读模式：<br />SQL&gt; recover managed standby database cancel;<br />SQL&gt; alter database open read only</p>
		<p>在只读模式可以给数据库添加临时数据文件（在rman备份是没有备份的），想让standby提供只读服务或者切换成主库，最好先增加链式文件<br />SQL&gt; alter tablespace temp add tempfile 'C:\oracle\product\10.2.0\oradata\dgtest\temp02.dbf' size 100m;</p>
		<p>只读模式到管理模式<br />SQL&gt; recover managed standby database disconnect from session;</p>
		<p>在备库进行备份<br />1.停止应用程序，跳转到 read only模式，同坐backup database命令来备份数据库，这样数据库处于一致性模式<br />2. 备份完成后，备份控制文件<br />SQL&gt; ALTER DATABASE BACKUP CONTROLFILE TO 'FILE NAME';</p>
		<p>主备切换</p>
		<p>正常切换 (switchover)<br />切换准备: 准备参数文件，平时应该备好，注意参数 fal_server，fal_client</p>
		<p>先确认能否转换：<br />SELECT SWITCHOVER_STATUS FROM V$DATABASE;</p>
		<p>主 -&gt; 备<br />$lsnrclt stop <br />杀光进程或者重启数据库<br />SQL&gt; alter database commit to switchover to physical standby with session shutdown;</p>
		<p>SQL&gt; shutdown immediate;<br />SQL&gt; startup nomount pfile ='';<br />SQL&gt; alter database mount standby database;<br />SQL&gt; recover managed standby database disconnect;</p>
		<p>备 -&gt; 主<br />SQL&gt; alter database commit to switchover to primary with session shutdown;<br />SQL&gt; shutdown immediate<br />SQL&gt; startup pfile =''</p>
		<p>如果考虑在主备库来回切换，要保证数据库版本一致，参数compatible一致</p>
		<p>失败切换 (Failover)<br />主服务器不能使用情况下</p>
		<p>在备库<br />SQL&gt; recover managed standby database cancel;</p>
		<p>--如果在备用库上有备用库日志文件，参考命令<br />SQL&gt; alter database recover managed standby database finish; -- [force|wait|nowait] 10g or later<br />--没有备库日志文件[10gR2之前]<br />SQL&gt; alter database recover managed standby database finish skip standby logfile; </p>
		<p>--切换备库到主库<br />SQL&gt; alter database commit to switchover to primary;<br />-- open<br />SQL&gt; shutdown immediate;<br />SQL&gt; startup pfile=''</p>
		<p>如果还有为传递的归档日志或者主库的联机日志<br />SQL&gt;alter database register logfile 'c:\...'<br />SQL&gt;recover standby database;</p>
		<p>强行切换（激活）<br />激活备用服务器，在重启数据库时，备库会resetlog。<br />SQL&gt;alter system archive log current;<br />SQL&gt;recover managed standby database cancel;<br />SQL&gt;alter database activate standby database;<br />SQL&gt;shutdown immediate;<br />SQL&gt;startup pfile=''</p>
		<p>-----<br />apply 主库redolog并强制切换<br />SQL&gt; ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;<br />--选定redolog恢复<br />SQL&gt; recover standby database until cancel;</p>
		<p>Specify log: {&lt;RET&gt;=suggested | filename | AUTO | CANCEL}<br />/u01/oradata/dgtest/redo02.log<br />Log applied.<br />Media recovery complete.</p>
		<p>recovery 完成之后就要failover了。</p>
		<p>SQL&gt;alter database activate standby database;<br />SQL&gt;shutdown immediate;<br />SQL&gt;startup pfile=''<br />-- <a href="http://hi.baidu.com/wa0362/blog/item/33e52912a91eadcbc2fd78b9.html">http://hi.baidu.com/wa0362/blog/item/33e52912a91eadcbc2fd78b9.html</a><br />-- <a href="http://zf_wu.itpub.net/">http://zf_wu.itpub.net/</a></p>
		<p>-- 参考来源： 《oracle高可用环境》</p>
		<p>--http://www.oracleblog.cn/study-note/reduce-the-data-loss-of-data-guard-when-failover/</p>
		<p>相关视图 </p>
		<p>v$archive_dest <br />v$archive_dest_status<br />v$log_history<br />v$archvied_log<br />v$managed_standby<br />v$archive_gap </p>
		<p>-- EOF -- </p>
		<p>
				<a href="http://oracle.chinaitlab.com/serial/740174.html">http://oracle.chinaitlab.com/serial/740174.html</a>
		</p>
		<p>激活备库到read/write状态 <br />SQL&gt; alter database activate standby database;<br />数据库已更改。<br />SQL&gt; alter database open;<br />数据库已更改。 </p>
		<p>
				<br />转换成备库 <br />SQL&gt; alter database convert to physical standby;<br />数据库已更改。 </p>
		<p>-- EOF -- <br /></p>
<img src ="http://www.cnitblog.com/lichanggu/aggbug/62976.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lichanggu/" target="_blank">lichanggu</a> 2009-12-02 16:49 <a href="http://www.cnitblog.com/lichanggu/articles/62976.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE常用命令汇总</title><link>http://www.cnitblog.com/lichanggu/articles/62975.html</link><dc:creator>lichanggu</dc:creator><author>lichanggu</author><pubDate>Wed, 02 Dec 2009 08:43:00 GMT</pubDate><guid>http://www.cnitblog.com/lichanggu/articles/62975.html</guid><description><![CDATA[
		<p>DOS下的查FIND命令：<br />FIND /I /N "OPEN_CURSORS" SPFILETESTDB.ORA</p>
		<p>SQL&gt; alter system reset open_cursors SCOPE=spfile SID='*'<br />详见《spfile-reset.txt》</p>
		<p>
				<br />$export LANG=en_US.UTF-8</p>
		<p>alter session set nls_language=american;</p>
		<p>日期格式<br />ALTER SESSION SET nls_date_format = 'YYYY-MM-DD HH24:MI:SS';<br />alter session set nls_date_format='YYYY-MM-DD HH:MI:SS AM';<br />SELECT SYSDATE FROM DUAL;</p>
		<p>alter session set NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH24.MI.SSXFF';<br />alter session set NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH24.MI.SSXFF';<br />SELECT SYSTIMESTAMP FROM DUAL;</p>
		<p>启用/不启用闪回日志记录，在MOUNT状态下<br />alter database flashback on|off;<br />select  FLASHBACK_ON from v$database;</p>
		<p>
				<br />select * from nls_database_parameters;<br />select * from nls_instance_parameters;<br />select * from nls_session_parameters;</p>
		<p>SELECT * FROM V$NLS_VALID_VALUES<br />SELECT * FROM V$NLS_PARAMETERS</p>
		<p>
				<br />//关于回滚段<br />select distinct segment_type from dba_segments;<br />select segment_type,count(segment_type) from dba_segments group by segment_type;<br />select * from dba_rollback_segs;</p>
		<p> </p>
		<p>show user    //显示当前用户<br />select * from v$version;</p>
		<p>ALTER USER xxx ACCOUNT LOCK|UNLOCK;<br />ALTER USER xxx PASSWORD EXPIRE;用xxx登录输入新口令<br />select * from v$pwfile_users;</p>
		<p>031</p>
		<p>show sga<br />show parameter sga_max_size   //SGA最大值<br />show parameter shared_pool<br />show parameter db_cache<br />show parameter log_buffer</p>
		<p>alter system set db_cache_size=xxM    //更改</p>
		<p>
				<br />select * from v$bgprocess;</p>
		<p>select * from v$datafile;<br />select * from v$controlfile;<br />select * from v$logfile;<br />select * from v$log;<br />select * from v$tempfile;</p>
		<p>
				<br />dbca<br />netca<br />netmgr<br />runInstaller<br />oemapp console</p>
		<p>orapwd file=&lt;fname&gt; password=&lt;password&gt; entries=&lt;users&gt;<br />select * from v$pwfile_users;  查特权用户</p>
		<p>select name,value from v$system_parameter;   查询系统参数</p>
		<p>alter system set xxx=value scope=memory|spfile|both;<br />alter session set yyy=value;</p>
		<p>create spfile=&lt;fname&gt; from pfile;<br />create pfile=&lt;fname&gt; from spfile;</p>
		<p>create tablespace test1 datafile '/opt/ora9/oradata/test/test1.dbf' size 10m;<br />drop tablespace test1 including contents and datafiles;</p>
		<p>startup [nomount|mount|open]<br /> pfile=<br /> restrict<br /> recovery<br /> force<br />    </p>
		<p>startup nomout;<br />alter database mount;<br />alter database open [read only];</p>
		<p>alter system enable restricted session;<br />alter system disable restricted session;</p>
		<p>shutdown normal|transaction|immediate|abort</p>
		<p>
				<br />----05<br />select * from dba_users;<br />select * from dba_objects;</p>
		<p>select * from dba_tables;<br />select * from all_tables;<br />select * from user_tables;</p>
		<p>desc dictionary      //数据字典<br />select * from dictionary</p>
		<p>desc v$fixed_table     //动态性能表<br />select * from v$fixed_table;</p>
		<p>
				<br />set serveroutput on<br />execute dbms_output.put_line('hello!')</p>
		<p>-----6<br />select * from v$tablespace;<br />alter tablespace users begin backup;<br />select * from v$backup;<br />alter tablespace users end backup;</p>
		<p>//显示已归档的日志<br />select * from v$archived_log;</p>
		<p>//显示控制文件的信息<br />select * from v$controlfile;<br />select * from v$parameter where name like 'control%';<br />show parameter control;<br />show parameter control_files<br />select * from v$controlfile_record_section;</p>
		<p>alter system set control_files=<br /> '/opt/ora9/oradata/ora9i/control01.ctl',<br /> '/opt/ora9/oradata/ora9i/control02.ctl',<br /> '/opt/ora9/oradata/ora9i/control03.ctl',<br /> '/opt/ora9/oradata/ora9i/control04.ctl'<br /> scope=spfile;</p>
		<p>show parameter spfile;<br />show parameter pfile;<br />startup pfile=/opt/ora9/product/9.2/dbs/initora9i.ora  //注意这个目录是指本机。</p>
		<p>备份控制文件的方法：<br />1、shutdown后，拷贝控制文件<br />2、在线备份:<br />   alter database backup controlfile to '/opt/ora9/oradata/ora9i/control.bak';<br />或 alter database backup controlfile to trace;  //在udump下产生了一个trace文件，该文件包含生成控制文件所需要的脚本。</p>
		<p>-----7<br />alter system switch logfile;  //强制日志switch<br />alter system checkpoint;</p>
		<p>//增加日志组<br />alter database add logfile group 4<br /> '/opt/ora9/oradata/LMOA/redo04.ora' size 10m;<br />alter database add logfile group 5<br /> ('/opt/ora9/oradata/LMOA/redo05A.ora','/opt/ora9/oradata/LMOA/redo05B.ora') size 10m;</p>
		<p>//增加日志组的成员<br />alter database add logfile member<br /> '/opt/ora9/oradata/LMOA/redo03B.ora' to group 3,<br /> '/opt/ora9/oradata/LMOA/redo04B.ora' to group 4;</p>
		<p>//删除日志组<br />alter database drop logfile group 4;</p>
		<p>//删除日志组的成员<br />alter database drop logfile member '/opt/ora9/oradata/LMOA/redo04B.ora'</p>
		<p>//清除在线日志<br />alter database clear logfile group 1;<br />alter database clear unarchived logfile group 1; //清除未归档日志，需马上作full backup</p>
		<p>//更改日志文件<br />alter database rename file '/opt/ora9/oradata/test/redo01.log'<br /> to '/opt/ora9/oradata/test/redo01a.log';</p>
		<p>
				<br />设置归档<br />shutdown immediate<br />startup mount<br />alter database archivelog/noarchivelog<br />alter database open;<br />archive log list;<br />full db backup</p>
		<p>
				<br />启动自动存档<br />[alter system] archive log start/stop;</p>
		<p>手工归档所有日志<br />alter system archive log all;</p>
		<p>查看已归档的日志文件<br />select * from v$archived_log;</p>
		<p>日志挖掘<br />logmnr--1) set directory utl_file_dir<br /> 2) restartup<br /> 3) create directory file<br />    dbms_logmnr_d.build<br /> 4) add/remove log file<br />    dbms_logmnr.add_logfile<br />    dbms_logmnr.remove_logfile<br /> 5) start logmnr<br />    dbms_logmnr.start_logmnr<br /> 6) v$logmnr_content--sqlredo/sqlundo</p>
		<p>
				<br />-----8<br />//获取表空间等信息<br />select * from dba_tablespaces;<br />select * from v$tablespace;<br />select * from dba_data_files;<br />select * from v$datafile;<br />select * from dba_temp_files;<br />select * from v$tempfile;</p>
		<p>//不包括临时文件<br />select t1.name,t2.name   <br />from v$tablespace t1,v$datafile t2 <br />where t1.ts#=t2.ts#;</p>
		<p>//包括临时文件<br />select t1.name,t2.name   <br />from v$tablespace t1,(select ts#,name from v$datafile union select ts#,name from v$tempfile) t2<br />where t1.ts#=t2.ts#;</p>
		<p>select * from dba_rollback_segs; //系统回滚段</p>
		<p>alter user licg quota 10m on users;<br />alter user licg quota unlimited on users;</p>
		<p>create tablespace test<br />datafile '/opt/ora9/oradata/test/test.dbf' size 100M<br />autoextend on next 5M maxsize 200M;</p>
		<p>create tablespace stk_ts<br />datafile '/opt/ora9/oradata/test/stk_ts01.dbf' size 20M<br />extent management local uniform size 512k/autoallocate;</p>
		<p>create undo tablespace undo1<br />datafile '/opt/ora9/oradata/test/undo101.dbf' size 100m;</p>
		<p>create temporary tablespace temp1<br />tempfile '/opt/ora9/oradata/test/temp101.dbf' size 50m<br />extent management local uniform size 10m;</p>
		<p>alter database default temporary tablespace temp1;</p>
		<p>alter tablespace xxx offline|online;<br />alter tablespace xxx read only;<br />drop tablespace xxx;  再删除OS文件<br />drop tablespace xxx including contents and datafiles;</p>
		<p>//扩张<br />alter database datafile '/opt/ora9/oradata/test/test.dbf' resize 150M;<br />alter database datafile '/opt/ora9/oradata/test/test.dbf' autoextend on;<br />alter tablespace users add datafile '/opt/ora9/oradata/test/users02.dbf' size 10m;</p>
		<p>//移动表空间<br />alter tablespace test offline; <br />移动OS文件<br />alter tablespace test<br />rename datafile '/opt/ora9/oradata/test/test.dbf'<br />      to '/opt/ora9/oradata/test/test01.dbf';<br />alter tablespace test online;</p>
		<p>//移动系统表空间<br />start mount;<br />移动OS文件<br />alter database<br />rename file '/opt/ora9/oradata/test/system01.dbf'<br />  to '/opt/ora9/oradata/test/system.dbf';<br />alter database open;</p>
		<p>-----9<br /> 扩展段<br />alter table test allocate extent(size 1m);<br />alter table test deallocate unused;</p>
		<p>select * from dba_tablespaces;<br />select * from dba_data_files;<br />select * from dba_free_space;<br />select * from dba_segments;<br />select * from dba_extents;</p>
		<p>//计算某对象占的空间<br />select sum(bytes) from dba_extents<br />where owner='SYS' and segment_name='TEST';</p>
		<p>
				<br />----10<br />alter tablespace users offline immediate;<br />recover datafile '/opt/ora9/oradata/test/users01.dbf';<br />或者recover datafile 5;<br />alter tablespace users online;</p>
		<p>alter system set undo_tablespace=undo1   //可建多个UNDO表空间，但一个实例在任何时刻只能使用一个</p>
		<p>execute dbms_flashback.enable_at_time('26-JAN-04:12:17:00 pm');<br />select * from xxx;<br />execute dbms_flashback.disable;</p>
		<p>select end_time,begin_time,undoblks from v$undostat;</p>
		<p>select * from dba_rollback_segs;<br />select * from v$rollname;<br />select * from v$rollstat;<br />select * from v$undostat;<br />select * from v$session;<br />select * from v$transaction;</p>
		<p>----11<br />desc dbms_rowid</p>
		<p>create global temporary table xxx<br />on commit delete|preserve rows<br />as select * from test;</p>
		<p>alter table test allocate extent(size 500k,datafile '...');<br />alter table test deallocate unused [keep 2K];<br />alter table test move tablespace data1;</p>
		<p>//建索引<br />create index testindex1<br />on test(id) tablespace users;</p>
		<p>alter index testindex1 rebuild;<br />drop table test cascade constraint;</p>
		<p>alter table test drop column yyy [cascade constraints];</p>
		<p>alter table test set unused column yyy [checkpoint 1000];<br />alter table test drop unused columns [continue] [checkpoint 1000];</p>
		<p>select * from dba_tables;<br />select * from dba_objects;</p>
		<p>
				<br />-----12</p>
		<p>alter inde xxx coalesce;<br />analyze index xxx validate structure;<br />desc index_stats;<br />select * from user_indexes;<br />alter index xxx monitoring|nomonitoring usage;</p>
		<p>select * from dba_indexes;<br />select * from dba_ind_columns;<br />select * from dba_ind_expressions;<br />select * from v$object_usage;</p>
		<p>-----13<br />alter table authors<br />add constraint pk_1 primary key(au_id);</p>
		<p>alter table authors<br />add constraint uk_1 unique(au_lanme,au_fname);</p>
		<p>alter table sales<br />add constraint fk_sales foreign key(stor_id) references stores(stor_id);</p>
		<p>alter table stores<br />add constraint ck_stores_1 check(stor_name like 'B%')<br />[enable novalidate];</p>
		<p>alter table authors drop constraint pk_1;</p>
		<p>select * from dba_constraints;<br />select * from dba_cons_columns;</p>
		<p>-----14<br />alter user test account lock|unlock|password expire;<br />SQL&gt;password</p>
		<p>select * from dba_users;<br />selecT * frm dba_profiles;</p>
		<p>-----15<br />create user test<br />identified by tttt<br />default tablespace users<br />temporary tablespace temp1<br />quota 15m on users<br />password expire;</p>
		<p>alter user testuser quota 10m on temp;</p>
		<p>select * from dba_users;<br />select * from dba_ts_quotas;</p>
		<p>
				<br />-----16<br />DBA_SYS_PRIVS  lists system privileges granted to users and roles<br />SESSION_PRIVS  lists the privileges that are currently available to the user<br />DBA_TAB_PRIVS  lists all grants on all objects in the database<br />DBA_COL_PRIVS  describes all object column grants in the database.</p>
		<p>
				<br />-----17<br />DBA_ROLES  All roles that exist in the database<br />DBA_ROLE_PRIVS  Roles granted to users and roles<br />ROLE_ROLE_PRIVS Roles that are granted to roles<br />DBA_SYS_PRIVS  System privileges granted to users and roles<br />ROLE_SYS_PRIVS  System privileges granted to roles<br />ROLE_TAB_PRIVS  Object privileges granted to roles<br />SESSION_ROLES  Roles that the user currently hasenabled</p>
		<p>-----18<br />create tablespace testtb datafile 'D:\oracle\oradata\sales\testtb01.dbf' size 5M <br />AUTOEXTEND ON NEXT 2M<br />LOGGING<br />ONLINE<br />PERMANENT<br />EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M<br />BLOCKSIZE 8K<br />SEGMENT SPACE MANAGEMENT AUTO;</p>
		<p>
				<br />alter tablespace testtb add datafile 'D:\oracle\oradata\sales\testtb02.dbf' size 5m;</p>
		<p>alter database datafile 'D:\oracle\oradata\sales\testtb01.dbf' autoextend off;<br />alter database datafile 'D:\oracle\oradata\sales\testtb02.dbf' autoextend on;</p>
		<p> </p>
		<p>
				<br />select * from USER_OBJECTS WHERE status!='VALID';<br />select * from USER_INDEXES WHERE status!='VALID';</p>
		<p> </p>
		<p>declare incr number := 1;<br />begin<br />update t1 set age=age+incr;<br />commit;<br />end;</p>
		<p> </p>
		<p>create or replace procedure inc_age(incr number) as<br />begin<br />update t1 set age=age+incr;<br />commit;<br />end;</p>
		<p>
				<br />create or replace package numbers<br />as<br />function odd_even(v1 number) return varchar2;<br />procedure ins_ints(v1 in number);<br />end numbers;</p>
		<p>
				<br />----改日志文件大小-------------------------------------<br />alter database add logfile group 4 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\CTS\REDO04.LOG' size 100m;<br />alter database add logfile group 5 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\CTS\REDO05.LOG' size 100m;</p>
		<p>alter system archive log current;<br />alter system archive log current;<br />alter system checkpoint;</p>
		<p>alter database drop logfile group 1;<br />alter database drop logfile group 2;<br />alter database drop logfile group 3;</p>
		<p>alter database add logfile group 1 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\CTS\REDO01.LOG' size 100m;<br />alter database add logfile group 2 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\CTS\REDO02.LOG' size 100m;<br />alter database add logfile group 3 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\CTS\REDO03.LOG' size 100m;</p>
		<p>alter system archive log current;<br />alter system archive log current;<br />alter system checkpoint;</p>
		<p>alter database drop logfile group 4;<br />alter database drop logfile group 5;</p>
		<p>
				<br />-- MERGE 命令 ------------------------------------------<br />MERGE INTO test D<br />USING (SELECT id,name FROM test1 WHERE id &lt;=18) S<br />ON (D.id = S.id)<br />WHEN MATCHED THEN UPDATE SET D.name = S.name DELETE WHERE (S.id &gt;=5)<br />WHEN NOT MATCHED THEN INSERT (D.id, D.name) VALUES (S.id, S.name);<br />commit;</p>
		<p>
				<br />MERGE INTO test D<br />USING (SELECT id,name FROM test1 WHERE id &lt;=18) S<br />ON (D.id = S.id)<br />WHEN MATCHED THEN UPDATE SET D.name = S.name WHERE (S.id &gt;=5)<br />WHEN NOT MATCHED THEN INSERT (D.id, D.name) VALUES (S.id, S.name)<br />WHERE (S.id &lt;=16);<br />commit;</p>
		<p>MERGE INTO test D<br />USING (SELECT id,name FROM test1 WHERE id &lt;=18) S<br />ON (D.id = S.id)<br />WHEN MATCHED THEN UPDATE SET D.name = S.name<br />WHEN NOT MATCHED THEN INSERT (D.id, D.name) VALUES (S.id, S.name);<br />commit;</p>
		<p>delete test where id&gt;10;<br />update test set name=id;<br />commit;<br />select * from test order by id;<br />select * from test1 order by id;</p>
		<p> </p>
		<p> </p>
<img src ="http://www.cnitblog.com/lichanggu/aggbug/62975.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lichanggu/" target="_blank">lichanggu</a> 2009-12-02 16:43 <a href="http://www.cnitblog.com/lichanggu/articles/62975.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>