数据库备份和恢复.ppt

上传人:wuy****n92 文档编号:64358974 上传时间:2022-11-29 格式:PPT 页数:42 大小:1.71MB
返回 下载 相关 举报
数据库备份和恢复.ppt_第1页
第1页 / 共42页
数据库备份和恢复.ppt_第2页
第2页 / 共42页
点击查看更多>>
资源描述

《数据库备份和恢复.ppt》由会员分享,可在线阅读,更多相关《数据库备份和恢复.ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第八章第八章 数据库备份和恢复数据库备份和恢复8.7 8.7 数据泵数据泵数据泵(数据泵(Data PumpData Pump)是)是Oracle 10gOracle 10g新增的实用程序,它可新增的实用程序,它可以从数据库中高速导出或导入数据库的方法;以从数据库中高速导出或导入数据库的方法;Data PumpData Pump方式导入方式导入/导出特性导出特性l支持并行任务处理支持并行任务处理(可设置并行的线程数可设置并行的线程数)l支持暂停和断点重新启动导入、导出任务支持暂停和断点重新启动导入、导出任务l支持导入、导出远端数据库中的对象支持导入、导出远端数据库中的对象l支持在导入时通过参数

2、控制,实现自动修改对象的所属表支持在导入时通过参数控制,实现自动修改对象的所属表空间、数据文件等。空间、数据文件等。l提供了非常细粒度的对象控制提供了非常细粒度的对象控制8.7 8.7 数据泵数据泵比较比较expexp与与expdpexpdp1 1)expexp是客户端程序,既可以在客户端使用,也可以在是客户端程序,既可以在客户端使用,也可以在服务器端使用;服务器端使用;2 2)expdpexpdp是服务器端工具,只能在是服务器端工具,只能在ORACLEORACLE服务器端使用,服务器端使用,不能在客户端使用;不能在客户端使用;3 3)data pumpdata pump导出导入所得到的文件跟

3、传统的导出导入所得到的文件跟传统的import/exportimport/export程序导出导入的文件不兼容程序导出导入的文件不兼容数据泵技术相对应的工具是数据泵技术相对应的工具是Data Pump Export(expdp)Data Pump Export(expdp)和和Data Pump Import(impdp)Data Pump Import(impdp)expdp.exeexpdp.exe和和impdp.exeimpdp.exe文件存在文件存在于于:oracleproduct10.2.0db_1BIN:oracleproduct10.2.0db_1BIN 文件夹下文件夹下8.7

4、8.7 数据泵数据泵impdp/expdpimpdp/expdp在处理数据时提供了几种操作模式在处理数据时提供了几种操作模式l整库模式,导入或导出整个数据库,对应参数整库模式,导入或导出整个数据库,对应参数fullfulllschemaschema模式:导入或导出模式:导入或导出schemaschema下的自有对象,对应参数下的自有对象,对应参数schemasschemasl表模式:导入或导出指定的表及其数据定义表模式:导入或导出指定的表及其数据定义(依赖于该表的对象,依赖于该表的对象,例如索引、约束等同时被导出例如索引、约束等同时被导出),对应参数,对应参数tablestablesl表空间模

5、式:导入导出用户指定表空间中,有操作权限的表及表空间模式:导入导出用户指定表空间中,有操作权限的表及相关对象,对应参数相关对象,对应参数 tablespacestablespaces8.7 8.7 数据泵数据泵使用使用datapumpdatapump工具的准备工作工具的准备工作 创建一个外部目录。创建一个外部目录。data pump data pump要求为将要创建和读取的数据文件和日要求为将要创建和读取的数据文件和日志文件创建目录,用来指向志文件创建目录,用来指向目标目标目录。在目录。在oracleoracle中创中创建目录对象时,可以使用建目录对象时,可以使用 create directo

6、ry create directory语句语句以以dbadba的身份登录数据库,在命令窗口中输入:的身份登录数据库,在命令窗口中输入:SQL create directory mydump as d:oracle;SQL grant read,write on directory mydump to scott;SQL select*from dba_directories;创建目录对象,创建目录对象,指向指向d:oracle将该目录对象的读将该目录对象的读写权限赋予写权限赋予scott用户用户查看当前已有的目查看当前已有的目录对象录对象8.7 8.7 数据泵数据泵应用应用expdpexpdp

7、工具工具举例举例:导出导出scottscott用户的表用户的表empemp和和deptdept 以命令行的方式导出表,导出以命令行的方式导出表,导出文件的存放路径由文件的存放路径由directory参参数给出数给出8.7 8.7 数据泵数据泵应用应用expdpexpdp工具工具举例举例:导出整个导出整个schemaschema:scottscott以参数文件的方式导出以参数文件的方式导出schemaschemas=scottDIRECTORY=mydumpDUMPFILE=scott_full.dmpLOGFILE=scott_full.log8.7 8.7 数据泵数据泵导出时用于筛选的参数导

8、出时用于筛选的参数lexcludeexclude参数参数 用来实现用来实现排除对象,如果排除了一个对象。排除对象,如果排除了一个对象。使用使用excludeexclude的格式如下的格式如下:exclude=object_type:name_clause,.exclude=object_type:name_clause,.其中,其中,object_typeobject_type可以是任何可以是任何oracleoracle对象类型,包括对象类型,包括权限、索引和表等;权限、索引和表等;name_clausename_clause用来限制返回的值用来限制返回的值例如:除例如:除empemp之外的表

9、之外的表 EXCLUDE=TABLE:”=EMP”EXCLUDE=TABLE:”=EMP”反之,有反之,有includeinclude参数参数 INCLUDE=TABLE:”LIKE E%”INCLUDE=TABLE:”LIKE E%”lqueryquery参数参数作用同作用同expexp命令的命令的queryquery参数参数8.7 8.7 数据泵数据泵应用应用impdpimpdp工具工具举例举例:导入导入scottscott用户的表用户的表empemp 以命令行的方式导入表,当表存以命令行的方式导入表,当表存在时,用参数在时,用参数table_exists_action说明如何处说明如何处

10、理理8.7.2 8.7.2 通过通过OEMOEM导入导出数据导入导出数据使用导出向导导出数据,首先要创建目录对象。使用导出向导导出数据,首先要创建目录对象。(1)(1)创建目录对象创建目录对象 在如图在如图8.138.13所示的所示的OracleOracle企业管理器中,在企业管理器中,在“方案方案”类别类别选择选择“目录对象目录对象”单击鼠标左键,进入单击鼠标左键,进入“目录对象搜索目录对象搜索”界面,如图界面,如图8.148.14所示。所示。图图8.13 Oracle企业管理器企业管理器 图图8.14目录对象搜索界面目录对象搜索界面8.7.2 8.7.2 通过通过OEMOEM导入导出数据导

11、入导出数据单击单击“创建创建”按钮,进入按钮,进入“创建目录对象创建目录对象”界面,如图界面,如图8.15所所示。改界面包含一般信息和权限两个选项页面。在示。改界面包含一般信息和权限两个选项页面。在“一般信息一般信息”页可以指定目录对象的详细资料。页可以指定目录对象的详细资料。在在“名称名称”文本框输入名称;在文本框输入名称;在“路径路径”文本框输入路径名称。文本框输入路径名称。可以单击可以单击“测试文件系统测试文件系统”以确保输入的路径信息有效。以确保输入的路径信息有效。图图8.15一般信息界面一般信息界面 8.7.2 8.7.2 通过通过OEMOEM导入导出数据导入导出数据 单击单击“权限

12、权限”选项页面,出现如图选项页面,出现如图8.168.16所示页面。在该页面中所示页面。在该页面中以指定或修改活动表中所列数据库用户的目录对象权限。以指定或修改活动表中所列数据库用户的目录对象权限。单击单击“添加添加”按钮,进入按钮,进入“选择选择”用户界面,如图用户界面,如图8.178.17所示。所示。为目录对象选择可访问它的数据库用户。为目录对象选择可访问它的数据库用户。图图8.16权限界面权限界面 图图8.17选择用户界面选择用户界面 8.7.2 8.7.2 通过通过OEMOEM导入导出数据导入导出数据 选择选择“SYSTEM”SYSTEM”用户,单击用户,单击“确定确定”按钮,返回图按

13、钮,返回图8.168.16所示所示界面,此时在界面中可以看到所选择的用户,如图界面,此时在界面中可以看到所选择的用户,如图8.188.18所示。所示。在图在图8.188.18所示界面中,为所示界面中,为ADMINADMIN和和SYSTEMSYSTEM用户对新建目录对象用户对新建目录对象的访问权限赋予读写权限。勾选的访问权限赋予读写权限。勾选“读访问权限读访问权限”和和“写访问写访问权限权限”。单击单击“确定确定”按钮,完成目录对象的创建。按钮,完成目录对象的创建。图图8.18选择用户后权限页面选择用户后权限页面 图图8.19 Oracle企业管理器企业管理器 图图8.20导出类型界面导出类型界

14、面l通过导出向导导出数据通过导出向导导出数据 维护维护-导出到导出文件导出到导出文件-选择导出类型选择导出类型以导出整个方案为例以导出整个方案为例 单击单击“继续继续”按钮,进入按钮,进入“方案方案”界面,如图界面,如图8.218.21所示。使用此界所示。使用此界面可以选择要导出其对象的方案。面可以选择要导出其对象的方案。单击单击“添加添加”按钮,进入按钮,进入“添加方案添加方案”界面,如图界面,如图8.228.22所示。在该所示。在该界面将方案添加到可用方案列表中。界面将方案添加到可用方案列表中。图图8.21方案界面图方案界面图 8.22添加方案界面添加方案界面 选择选择scottscott

15、,单击,单击“选择选择”按钮,界面返回到图按钮,界面返回到图8.218.21所示界面,此时所示界面,此时在该界面出现在该界面出现scottscott方案。方案。单击单击“下一步下一步”进入进入“选项选项”界面,如图界面,如图8.238.23所示。该页面可以为导所示。该页面可以为导出操作设置线程选项、估计磁盘空间和指定可选文件。出操作设置线程选项、估计磁盘空间和指定可选文件。图图8.23选项界面选项界面 生成日志文件的目录对象选择前面创建的生成日志文件的目录对象选择前面创建的BAK_DIRBAK_DIR目录对象。目录对象。单击单击“高级选项高级选项”按钮,出现导出其他选项设置,如图按钮,出现导出

16、其他选项设置,如图8.248.24所示。在此可所示。在此可以设置从源数据库导出的内容、闪回操作等内容。以设置从源数据库导出的内容、闪回操作等内容。图图8.24显示高级选项的选项界面显示高级选项的选项界面 单击单击“下一步下一步”按钮,进入按钮,进入“文件文件”界面,如图界面,如图8.258.25所示。在该界面可以所示。在该界面可以为导出文件指定目录名、文件名和最大大小。为导出文件指定目录名、文件名和最大大小。图图8.25文件界面文件界面 单击单击“下一步下一步”按钮,进入按钮,进入“调度调度”界面,如图界面,如图8.26所示。在所示。在“作业作业参数参数”类别的类别的“作业名称作业名称”和和“

17、说明说明”文本框输入名称和说明性文字。文本框输入名称和说明性文字。Oracle提供了下列提供了下列2种作业的处理方法:种作业的处理方法:立即:马上提交,准备执行。立即:马上提交,准备执行。以后:设置作业启动的具体时间。以后:设置作业启动的具体时间。选择选择“立即立即”提交作业。提交作业。图图8.26调度界面调度界面 单击单击“下一步下一步”按钮,进入按钮,进入“复查复查”界面,如图界面,如图8.278.27所示。所示。图图8.27复查界面复查界面 单击单击“提交作业提交作业”按钮,进入如图按钮,进入如图8.288.28所示界面。系统正在处理导出所示界面。系统正在处理导出作业。导出成功后,进入作

18、业。导出成功后,进入“作业活动作业活动”界面,如图界面,如图8.298.29所示。所示。图图8.28处理导出作业处理导出作业 图图8.29作业活动界面作业活动界面 在图在图8.298.29所示界面中,单击导出作业名称所示界面中,单击导出作业名称adminadmin,进入,进入“作业作业运行情况运行情况”界面,如图界面,如图8.308.30所示。该界面显示导出的基本信息所示。该界面显示导出的基本信息图图8.30作业运行情况界面作业运行情况界面8.7.2 8.7.2 通过通过OEMOEM导入导出数据导入导出数据通过向导进行通过向导进行导入导入操作操作使用使用“导入导入”向导可以导入数据库的内容、对

19、象和表,对于向导可以导入数据库的内容、对象和表,对于Oracle 10g数据库,数据库,Oracle企业管理的导入和导出作业是作为数据泵作业执行的。企业管理的导入和导出作业是作为数据泵作业执行的。(1)在如图在如图8.19所示界面中,单击所示界面中,单击“从导出文件中导入从导出文件中导入”,进入,进入“文件文件”界面,界面,如图如图8.31所示。所示。图图8.31文件界面文件界面(2)单击单击“继续继续”按钮,进入按钮,进入“读取导入文件读取导入文件”界面,如图界面,如图8.32所示。该所示。该过程需要一段时间,在读入成功后,进入过程需要一段时间,在读入成功后,进入“方案方案”界面,如图界面,

20、如图8.33所所示。示。图图8.32读取导入文件读取导入文件 图图8.33方案界面方案界面(3)单击单击“添加添加”按钮,进入按钮,进入“添加方案添加方案”界面,如图界面,如图8.34所示。该界面所示。该界面出现的方案是对应导出文件的。出现的方案是对应导出文件的。(4)勾选要进行导入的方案,单击勾选要进行导入的方案,单击“选择选择”按钮,界面返回到图按钮,界面返回到图8.33所示所示界面,此时界面出现刚选择的方案。界面,此时界面出现刚选择的方案。图图8.34添加方案添加方案(5)(5)单击单击“下一步下一步”,进入,进入“重新映射重新映射”界面,如图界面,如图8.358.35所示。在该界面所示

21、。在该界面指定将每个用户的数据导入同一个用户的方案,还是导入源用户和目指定将每个用户的数据导入同一个用户的方案,还是导入源用户和目标用户字段中指定的不同用户的方案。标用户字段中指定的不同用户的方案。图图8.35重新映射界面重新映射界面(6)(6)单击单击“下一步下一步”,进入,进入“选项选项”界面,如图界面,如图8.368.36所示。在该界面设置所示。在该界面设置导入作业的最大线程数以及是否生成日志文件。如果勾选了生成日志导入作业的最大线程数以及是否生成日志文件。如果勾选了生成日志文件,那么在目录对象下拉框选择生成日志文件的存放路径,在文件,那么在目录对象下拉框选择生成日志文件的存放路径,在“

22、日日志文件志文件”文本框输入日志文件名称。文本框输入日志文件名称。图图8.36选项界面选项界面(7)(7)在在“选项选项”界面单击界面单击“显示高级选项显示高级选项”按钮,展开高级选项设置按钮,展开高级选项设置页面,如图页面,如图8.378.37所示。在所示。在“高级选项高级选项”中可以设置从源数据库中数据中可以设置从源数据库中数据如何导入、是否导入全部对象或只是有条件的导入;表存在时采取跳如何导入、是否导入全部对象或只是有条件的导入;表存在时采取跳过、附加、截断或替换操作等。过、附加、截断或替换操作等。(8)(8)单击单击“下一步下一步”,进入,进入“调度调度”界面。该界面同导出的调度界面,

23、界面。该界面同导出的调度界面,以下步骤同导出基本相同,在此不再赘述。以下步骤同导出基本相同,在此不再赘述。图图8.37高级选项高级选项数据库的物理备份数据库的物理备份8.4 8.4 脱机备份脱机备份脱机备份又称冷备份。脱机备份又称冷备份。冷备份是数据库文件的物理备份,需冷备份是数据库文件的物理备份,需要在数据库要在数据库关闭关闭状态下进行。状态下进行。如何关闭数据库服务?如何关闭数据库服务?通过命令通过命令shutdownshutdown,该命令中的参数:,该命令中的参数:1 1、normalnormal:正常方式关闭数据库,为默认选项,关闭数据:正常方式关闭数据库,为默认选项,关闭数据库时执

24、行以下操作:库时执行以下操作:l禁止用户创建新连接禁止用户创建新连接l等待当前正在连接的用户断开连接,如用户不主动断开连接,等待当前正在连接的用户断开连接,如用户不主动断开连接,shutdownshutdown命令会一直等待命令会一直等待l关闭数据库、卸载数据库、关闭实例关闭数据库、卸载数据库、关闭实例8.4 8.4 脱机备份脱机备份2 2、immediateimmediate:立刻执行关闭,该方式是常用的关闭方式:立刻执行关闭,该方式是常用的关闭方式l所有未提交的事务全部回滚所有未提交的事务全部回滚l不允许创建新连接不允许创建新连接l已经创建的链接,如果有正在执行的已经创建的链接,如果有正在

25、执行的SQLSQL语句,则等待语句,则等待其完成,如果没有则立刻断开该链接其完成,如果没有则立刻断开该链接l关闭数据库、卸载数据库、关闭实例关闭数据库、卸载数据库、关闭实例3 3、transactional:transactional:以事务为准的关闭方式,介于以事务为准的关闭方式,介于normalnormal和和immediateimmediate两种方式两种方式l不允许创建新连接不允许创建新连接l已经创建的连接,不允许在产生新的事务已经创建的连接,不允许在产生新的事务l等待未提交的事务提交,然后断开连接等待未提交的事务提交,然后断开连接l关闭数据库、卸载数据库、关闭实例关闭数据库、卸载数据

26、库、关闭实例8.4 8.4 脱机备份脱机备份4 4、abort abort 中止数据库中止数据库l中止当前所有执行的中止当前所有执行的SQLSQLl所有连接全部断开所有连接全部断开l未提交事务不进行回滚(下次启动时,进行实例恢复)未提交事务不进行回滚(下次启动时,进行实例恢复)l关闭数据库、卸载数据库、关闭实例关闭数据库、卸载数据库、关闭实例8.4 8.4 脱机备份脱机备份启动数据库,以启动数据库,以dbadba的身份连接数据库,执行的身份连接数据库,执行startupstartup命令命令该命令所带参数的含义:该命令所带参数的含义:lnomount:nomount:只启动数据库实例只启动数据

27、库实例lmountmount:启动实例并加载数据文件:启动实例并加载数据文件lopenopen:启动实例,加载数据文件并打开(默认选项):启动实例,加载数据文件并打开(默认选项)lforce:force:与与openopen不同的是当前数据库若处于打开状态,则会自动不同的是当前数据库若处于打开状态,则会自动shutdown abortshutdown abort当前数据库,然后再重新启动当前数据库,然后再重新启动8.4 8.4 脱机备份脱机备份通常在数据库通过一个通常在数据库通过一个shutdown normalshutdown normal或或shutdown shutdown immedi

28、ateimmediate命令正常关闭后进行。当数据库关闭时,其使命令正常关闭后进行。当数据库关闭时,其使用的各个文件都可以进行备份。这些文件构成一个数据库用的各个文件都可以进行备份。这些文件构成一个数据库关闭时的一个完整映像。关闭时的一个完整映像。l冷备份要备份文件包括所有数据文件、所有控制文件、所冷备份要备份文件包括所有数据文件、所有控制文件、所有联机重做日志、有联机重做日志、init.orainit.ora文件和文件和SPFILESPFILE文件等。文件等。冷备份一般在冷备份一般在SQL*PlusSQL*Plus中进行。中进行。8.4 8.4 脱机备份脱机备份【例例8.38.3】把数据库的

29、所有数据文件、重做日志文件和控制把数据库的所有数据文件、重做日志文件和控制文件都备份文件都备份(1)(1)正常关闭要备份的实例正常关闭要备份的实例C:sqlplus/nologC:sqlplus/nologSQLconnect system/manager as sysdbaSQLconnect system/manager as sysdbaSQLshutdown normalSQLshutdown normal(2)(2)备份数据库备份数据库使用操作系统的备份工具,备份所有的数据文件、重做日使用操作系统的备份工具,备份所有的数据文件、重做日志文件、控制文件和参数文件志文件、控制文件和参数文

30、件(3)(3)启动数据库启动数据库SQLstartup mountSQLstartup mount8.5 8.5 联机备份联机备份联机备份又称为热备份或联机备份又称为热备份或ARCHIVELOGARCHIVELOG备份备份。联机备份要求数据库运行在联机备份要求数据库运行在ARCHIVELOGARCHIVELOG模式下。模式下。OracleOracle是以循环方式写联机重做日志文件是以循环方式写联机重做日志文件(redo01.log)(redo01.log),写满,写满第一个日志后,开始写第二个,依次类推。当最后一个联第一个日志后,开始写第二个,依次类推。当最后一个联机重做日志文件写满后,机重做

31、日志文件写满后,LGWR(Log Writer)LGWR(Log Writer)后台进程开始后台进程开始重新向第一个文件写入内容,这样原先存于第一个文件中重新向第一个文件写入内容,这样原先存于第一个文件中的时间点信息就会丢失;的时间点信息就会丢失;在归档模式下,当日志写满时会被归档。例如,当前在使用联在归档模式下,当日志写满时会被归档。例如,当前在使用联机重做日志机重做日志1 1,当,当1 1写满的时候,切换日志文件,开始写联写满的时候,切换日志文件,开始写联机重做日志机重做日志2 2,这时联机重做日志,这时联机重做日志1 1的内容会被拷贝到另外的内容会被拷贝到另外一个指定的目录下。这个目录叫

32、做归档目录,拷贝的文件一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志叫归档重做日志8.5 8.5 联机备份联机备份联机备份所用工具:联机备份所用工具:RMANRMAN(Recovery ManagerRecovery Manager),是一个挂是一个挂在目标数据库客户端的实用程序,在操作系统下以命令的在目标数据库客户端的实用程序,在操作系统下以命令的方式运行。方式运行。8.5 8.5 联机备份联机备份查看当前数据库的日志模式,默认设置为非归档模式查看当前数据库的日志模式,默认设置为非归档模式以以dbadba身份连接到数据库身份连接到数据库8.5.1 8.5.1 以以ARCHI

33、VELOGARCHIVELOG方式运行数据库方式运行数据库无论用向导还是用命令对系统进行备份,都要求数据库运行无论用向导还是用命令对系统进行备份,都要求数据库运行在在ARCHIVELOGARCHIVELOG方式方式下。下面说明如何进入下。下面说明如何进入ARCHIVELOGARCHIVELOG方式方式SQLshutdown immediateSQLshutdown immediate SQLstartup mount SQLstartup mount SQLalter database archivelog;SQLalter database archivelog;SQLarchive log

34、 start;SQLarchive log start;SQLalter database open;SQLalter database open;8.5 8.5 联机备份联机备份使用使用RMANRMAN全库备份全库备份backup databasebackup database该备份集生成两个备份片段该备份集生成两个备份片段(文件文件),一个存储数据文件,一个存,一个存储数据文件,一个存储控制文件和储控制文件和spfile(spfile(服务器端初始化参数文件服务器端初始化参数文件),默认保存在,默认保存在oracleoracle安装目录下,也可通过制定安装目录下,也可通过制定formatf

35、ormat参数来定义备份片段参数来定义备份片段的路径的路径例如:例如:backup database format d:oralcebackupbak_%ubackup database format d:oralcebackupbak_%u8.5 8.5 联机备份联机备份表空间的备份,以备份表空间的备份,以备份usersusers表空间为例表空间为例backup tablespace users;backup tablespace users;数据文件的备份数据文件的备份backup datafile backup datafile C:oracleproduct10.2.0oradatao

36、rclusers01.dbf;C:oracleproduct10.2.0oradataorclusers01.dbf;控制文件的备份控制文件的备份backup current controlfile;backup current controlfile;8.6 8.6 恢复恢复将数据库处于将数据库处于mountmount状态,执行以下命令状态,执行以下命令restore database;restore database;recover database;recover database;举例:通过备份后,将数据库关闭,删除一个数据文件,再举例:通过备份后,将数据库关闭,删除一个数据文件,再对整个数据库进行恢复对整个数据库进行恢复

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁