oracle 备份与恢复学习总结

Oracle数据库的备份与恢复

http://jingyan.baidu.com/article/b2c186c8eb7713c46ef6ff22.html


Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。


导出/导入(Export/Import)
  利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。


1、 简单导出数据(Export)和导入数据(Import)


  Oracle支持三种方式类型的输出:


  (1)、表方式(T方式),将指定表的数据导出。


  (2)、用户方式(U方式),将指定用户的所有对象及数据导出。


  (3)、全库方式(Full方式),瘵数据库中的所有对象导出。


  数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。


2、 增量导出/导入


  增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。


  增量导出包括三种类型:


  (1)、“完全”增量导出(Complete)


  即备份三个数据库,比如:


  exp system/manager inctype=complete file=040731.dmp


  (2)、“增量型”增量导出


  备份上一次备份后改变的数据,比如:


  exp system/manager inctype=incremental file=040731.dmp


  (3)、“累积型”增量导出


  累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:


  exp system/manager inctype=cumulative file=040731.dmp


数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。


  比如数据库的被封任务可以做如下安排:


  星期一:完全备份(A)


  星期二:增量导出(B)


  星期三:增量导出(C)


  星期四:增量导出(D)


  星期五:累计导出(E)


  星期六:增量导出(F)


  星期日:增量导出(G)


  如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库:


  第一步:用命令CREATE DATABASE重新生成数据库结构;


  第二步:创建一个足够大的附加回滚。


  第三步:完全增量导入A:


  imp system/manager inctype=RESTORE FULL=y FILE=A


  第四步:累计增量导入E:


  imp system/manager inctype=RESTORE FULL=Y FILE=E


  第五步:最近增量导入F:


  imp system/manager inctype=RESTORE FULL=Y FILE=F


冷备份
  冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:


  1、 是非常快速的备份方法(只需拷文件)


  2、 容易归档(简单拷贝即可)


  3、 容易恢复到某个时间点上(只需将文件再拷贝回去)


  4、 能与归档方法相结合,做数据库“最佳状态”的恢复。


  5、 低度维护,高度安全。


  但冷备份也有如下不足:


  1、 单独使用时,只能提供到“某一时间点上”的恢复。


  2、 再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。


  3、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。


  4、 不能按表或按用户恢复。


  如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:


  1、 所有数据文件


  2、 所有控制文件


  3、所有联机REDO LOG文件


  4、 Init.ora文件(可选)


  值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。


  下面是作冷备份的完整例子。


  (1) 关闭数据库


  sqlplus /nolog


  sql>connect /as sysdba


  sql>shutdown normal;


  (2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件


  sql>cp


  (3) 重启Oracle数据库


  sql>startup


热备份
  热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:


  1. 数据文件一个表空间一个表空间的备份。


  (1) 设置表空间为备份状态


  (2) 备份表空间的数据文件


  (3) 回复表空间为正常状态


  2. 备份归档log文件


  (1) 临时停止归档进程


  (2) log下那些在archive rede log目标目录中的文件


  (3) 重新启动archive进程


  (4) 备份归档的redo log文件


  3. 用alter database bachup controlfile命令来备份控制文件


  热备份的优点是:


  1. 可在表空间或数据库文件级备份,备份的时间短。


  2. 备份时数据库仍可使用。


  3. 可达到秒级恢复(恢复到某一时间点上)。


  4. 可对几乎所有数据库实体做恢复


  5. 恢复是快速的,在大多数情况下爱数据库仍工作时恢复。


  热备份的不足是:


  1. 不能出错,否则后果严重


  2. 若热备份不成功,所得结果不可用于时间点的恢复


  3. 因难于维护,所以要特别仔细小心,不允许“以失败告终”。
========

ORACLE数据库备份与还原命令

http://blog.csdn.net/rowisdom/article/details/8994318
简介:


数据泵使用指南
10g开始引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个Oracle数据库中.
数据泵导出导入(EXPDP和IMPDP)的作用
1,实现逻辑备份和逻辑恢复.
2,在数据库用户之间移动对象.
3,在数据库之间移动对象
4,实现表空间搬移.


数据泵导出导入与传统导出导入的区别
在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项;
EXP和IMP是客户段工具程序,它们既可以在可以客户端使用,也可以在服务端使用.
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用
IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件.
数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.


导出功能
使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.
因此,使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.
CREATE DIRECTORY dump dir AS '/home/oracle/dump_dir';
GRANT READ,WIRTE ON DIRECTORY dump_dir TO public;
注意:这个目录赋权限给oracle用户
1,导出表
Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp logfile=tab.log TABLES=dept,emp
2,导出方案
Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=system,scott
3.导出表空间
Expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user01,user02
4,导出数据库
Expdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y


我们经常用到的是第二种
expdp system/**** directory=dump_dir dumpfile=ngboss_yueyang20130514.dmp logfile=expyueyang20130514.log schemas=ngboss_yueyang
对参数功能不了解请expdp -help查看


导入功能
和导出一样,先要建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.
CREATE DIRECTORY dump dir AS '/home/oracle/dump_dir';
GRANT READ,WIRTE ON DIRECTORY dump_dir TO public;
注意:这个目录赋权限给oracle用户
将dmp文件copy到对应的目录
同样有四种情况
1,导入表
Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp
Impdp system/manage DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=scott.dept,scott.emp REMAP_SCHEMA=SCOTT:SYSTEM
第一种方法表示将DEPT和EMP表导入到SCOTT方案中,第二种方法表示将DEPT和EMP表导入的SYSTEM方案中.
注意,如果要将表导入到其他方案中,必须指定REMAP SCHEMA选项.
2,导入方案
Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott REMAP_SCHEMA=scott:system
3,导入表空间
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user01
4,导入数据库
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y


针对我们系统的特点有两种情况
1.导入库的用户名和表空间跟导出的库一致,例如从201上的ngboss_yueyang导入到196上的ngboss_yueyang用户上,两边的表空间名也一样
impdp system/**** directory=dump_dir dumpfile=ngboss_yueyang20130514.dmp logfile=impngboss_yueyang20130514.log schemas=ngboss_yueyang


2.导入库的用户名和表空间跟导出的库不一致
例如:从岳阳的生产库上导出的库导入到公司201上ngboss_yueyang用户上
用户名和表空间名都不一样
impdp system/**** directory=dump_dir dumpfile=ngboss20130513.dmp logfile=impyueyang20130514.log remap_schema=ngboss:ngboss_yueyang remap_tablespace=ngboss_data:ngboss_yy_data,NGBOSS_DATA_CRM1:NGBOSS_YY_DATA_CRM1,NGBOSS_DATA_CRM2:NGBOSS_YY_DATA_CRM2,NGBOSS_DATA_HIST:NGBOSS_YY_DATA_HIST,NGBOSS_DATA_HIST_CRM:NGBOSS_YY_DATA_HIST_CRM,NGBOSS_INDX:NGBOSS_YY_INDX,NGBOSS_INDX_CRM:NGBOSS_YY_INDX_CRM,NGBOSS_WORK:NGBOSS_YY_WORK
对参数功能不了解请impdp -help查看


注意事项:用dba账户导出的dmp文件必须要用dba账户导入。
推荐文章:
ORACLE数据库备份与还原命令 http://www.blogjava.net/paulwong/archive/2013/05/12/399172.html
========

Oracle数据库备份与还原操作具体步骤

http://www.cnblogs.com/newlooker/p/3564939.html
Oracle数据库导出操作


导入导出都要进行目录创建与授权。


在pl/sql里面编写也可以


select * from dba_directories(这个是查看创建的目录)


drop directory exp_dir(删除指定名称的目录)


create or replace directory expdp_dir as ‘E:/exp’


grant read,write on directory expdp_dir to public


如图(图片网上找的):


查询创建了那些子目录:SELECT * FROM dba_directories;


1.如下是bat命令导出


@echo off


echo 备份执行开始!


set filename=%date:~8,2% ::设置获取当前系统日期


expdp gdxaorcl/gdxadb2013@ECAMPUS schemas=gdxaorcl dumpfile=%filename%.dmp DIRECTORY=expdp_dir


::使用expdp导出,schemas指定用户名,dumpfile指定导出文件名称,DIRECTORY即指导到指定目录下


echo 备份执行完成!


2.Oracle数据库导入操作


数据库导入bat命令:


@echo


set /a tui = %date:~8,2%-1 ::设置系统日期前一天的数据库备份文件


impdp gdxaorcl/gdxadb2013@localhost/ecampus file=%tui%.dmp log=%tui%.log full=y TABLE_EXISTS_ACTION=replace ::(file指定要导入的备份文件注意:已经把%tui%.dmp复制到F:\app\Administrator\admin\ecampus\dpdump 下面了),log即日志文件,full=y ( 全库导出): 导出除ORDSYS,MDSYS,CTXSYS,ORDPLUGINS,LBACSYS 这些系统用户之外的所有用户的数据。replace参数先drop表,然后创建表,最后插入数据。
========

Oracle数据库备份、恢复及常见问题

http://www.cnblogs.com/Joanna-Yan/p/5070658.html 通常我们都是使用PL/SQL Developer来对Oracle中的数据对象和数据进行管理。如果我们想方便快速还原或者部署Oracle到新机器上,怎么进行数据库的备份、导入恢复呢? 这里我们必须要考虑的:如何创建Oracle表空间、创建Oracle数据库;如何把Oracle对象、表数据导出到sql脚本中。 1、数据库备份 (1)导出数据库对象 Tools-->ExportUser Objects,选择需要导出的数据库对象,包括:表、序列、存储过程、视图、函数等。 (2)导出表数据 Tools-->Export Tables,导出数据到PL/SQL数据库脚本中。 2、新建表空间和Oracle数据库 File-->New-->SQL Window,打开SQL窗口输入: 表空间、用户名都为IGSC。 create tablespace IGSC datafile 'E:\IGSOracle\IGSC.dbf' size 10240M; --DROP TABLESPACE IGSC INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS; create user IGSC identified by IGSC default tablespace IGSC; grant connect,resource to IGSC; grant dba to IGSC; --Revoke dba from IGSC; 复制代码 点击执行sql。此时,数据库表空间、表结构、表数据齐全,可以开始迁移出一个完整的数据库了。 3、导入数据库及对象 Tools-->Import Tables,先导入数据库对象,再导入表数据,此时,你的表数据文件可以分几个文件导入也是不会报错的,因为表结构已经存在。 执行过程中会出现如下界面: 到这,整个oracle数据库的迁移工作已完成。注意:我们导出的Oracle对象和数据库默认还是原来Oracle数据库的表空间和数据库用户名。如果想在新的数据库服务器中指定不同的表空间和数据库用户,则需要替换生成的sql脚本中的表空间和用户名的设置,并且第二步指定合理的表空间和数据库用户。 4、常见问题 (1)就是上面说的注意 我遇到的问题:新环境的数据库中存在IGS表空间,我导出的数据库文件IGSOracle.sql表空间默认也为IGS,结果在导入数据库对象到新表空间IGSC时,没有导入成功,却导入到了已存在的IGS表空间中。查看IGSOracle.sql: 发现导出的Oracle对象和数据库默认还是原来Oracle数据库的表空间和数据库用户名,我们要将表空间和用户名都改为IGSC,重新导入。 (2)ORACLE initialization or shutdown in progress 想删除不想要了的数据库和dbf文件,停掉服务后删除,重启服务启动数据库实例时报错。 解决: 开始-->输入,sqlplus /nolog SQL> connect system/hope; ERROR: ORA-01033: ORACLE initialization or shutdown in progress【就是这个错误】 SQL> connect sys/hope as sysdba 已连接。 SQL> shutdown normal ORA-01109: 数据库未打开 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> start mount SP2-0310: 无法打开文件 "mount.sql" SQL> startup mount ORACLE 例程已经启动。 Total System Global Area 612368384 bytes Fixed Size 1332348 bytes Variable Size 183151492 bytes Database Buffers 423624704 bytes Redo Buffers 4259840 bytes 数据库装载完毕。 SQL> alter database open; alter database open * 第 1 行出现错误: ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 8: 'C:\TYKM.DBF' SQL> alter database datafile 8 offline drop;【8是数据文件中的8】 数据库已更改。 SQL> alter database open;【一直循环这个语句,直至不再提示错误】 数据库已更改。 SQL> shutdown normal 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup ORACLE 例程已经启动。 Total System Global Area 612368384 bytes Fixed Size 1332348 bytes Variable Size 187345796 bytes Database Buffers 419430400 bytes Redo Buffers 4259840 bytes 数据库装载完毕。 数据库已经打开。 (3)ORA-1658 无法为表空间的段创建initial区  原因:表空间大小 解决:因为表数据比较大,我这里将步骤二中的size改为了10240M。 (4)PL/SQL导入表数据报错Error reading file 当表数据文件很大时,选择Use Command Window方式导入报错。对大量数据的导入选择Use SQL*Plus,前者不能读取大文件,后者可以。 ========

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读773次,点赞6次,收藏9次。【代码】c# json字符串转Oracle的insert into的小程序。
文章浏览阅读8.7k次,点赞2次,收藏17次。此现象一般定位到远端的监听服务来找问题,在远端查看监听服务状态(具体看下面的解决方案会详细呈现),服务是否开启,另外查看监听端点概要是否存在host未指向到计算名的,如无直接进入监听配置文件listener.ora内添加指向即可。2、查看监听服务状态 lsnrctl status,右边为远端端点状态,未添加host指向到计算名;1、本地及远端安装好Oracle并配置好连接,Oracle服务和监听已启动;1、远程Oracle数据库:Oracle11g R2。或者进入下述服务手动重启。,再进行远程连接即可。_ora-12541:tns:无监听程序
文章浏览阅读2.8k次。mysql脚本转化为oracle脚本_mysql建表语句转oracle
文章浏览阅读2.2k次。cx_Oracle报错:cx_Oracle DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library_cx_oracle.databaseerror: dpi-1047: cannot locate a 64-bit oracle client libr
文章浏览阅读1.1k次,点赞38次,收藏35次。本文深入探讨了Oracle数据库的核心要素,包括体系结构、存储结构以及各类参数。通过解析Oracle数据库的体系结构,读者可以深入了解其内部组成和工作原理。存储结构部分介绍了数据在Oracle中的存储方式,从表空间到数据文件的层层逻辑。最后,我们深入探讨了Oracle数据库中各类参数的作用和配置方法,帮助读者更好地理解和优化数据库性能。本文旨在帮助读者全面理解Oracle数据库的运作机制,为其在实践中的应用提供基础和指导。
文章浏览阅读1.5k次。默认自动收集统计信息的时间为晚上10点(周一到周五,4个小时),早上6点(周六,周日,20个小时)由于平时默认每天只收集4小时,时间有点短了,改成每天可收集8小时。oracle 18c中默认是打开的。查看当前自动收集统计信息的时间。_oracle自动收集统计信息
文章浏览阅读929次,点赞18次,收藏20次。只有assm(Automatic Shared Memory Management)模式可以使用大页,需要关闭amm(Memory Manager Process)HugePages_Free: 306 (空闲306页,已使用306-306=0页)防止oracle使用的内存交换,所以设置的大小与oracle配置的sga、pga相关。HugePages_Rsvd: 0 (操作系统承诺给oracle预留的页数)HugePages_Total: 306 (总共306页)_oracle11g 大页
文章浏览阅读801次。例如:10046:0,1,4,8,12。默认redo日志有三个,大小为50M,循环覆盖使用。redo log再覆盖之前,会被归档,形成归档日志。答:不同事件,不同级别。trace的不同级别?_oracle 日志
文章浏览阅读4.2k次,点赞84次,收藏77次。主要讲解MySQL中SQL的DDL语句,其中包括对数据库和表的一系列操作。_sql ddl 新增字段 mysql
文章浏览阅读1.1k次。ON DEMAND:仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;ON COMMIT:一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。Method =>'C',物化视图有三种刷新方式:COMPLETE、FAST和FORCE。物化视图会占用空间,一半可用于大量数据查询时,减缓主表的查询压力使用。例如创建一个物化视图,让对接单位查询。_oracle物化视图定时刷新
文章浏览阅读713次,点赞21次,收藏18次。1.背景介绍在当今的大数据时代,数据量越来越大,传统的关系型数据库已经无法满足业务需求。因此,NoSQL数据库技术迅速崛起,成为企业和开发者的首选。Oracle NoSQL Database是Oracle公司推出的一款分布式NoSQL数据库产品,具有高性能、高可用性和易于扩展等特点。在本文中,我们将深入了解Oracle NoSQL Database的集成与开发者工具,帮助您更好地掌握这款产品的...
文章浏览阅读2.5k次,点赞2次,收藏4次。今天遇见一个问题需要将字段中包含中文字符串的筛选出来。_oracle查询包含中文字符
文章浏览阅读802次。arcmap 在oracle删除表重新创建提示表名存在解决放啊
文章浏览阅读4.3k次,点赞2次,收藏4次。Oracle连接数据库提示 ORA-12638:身份证明检索失败_ora-12638
文章浏览阅读3.4k次,点赞6次,收藏25次。etc/profile是一个全局配置文件,所有用户登录都会使用该文件构建用户环境。与windows配置环境变量是一个道理。选择Linux系统,找到适合自己系统的安装包,我的是CentOS 8 x64。接下来需要登陆Oracle账户才能下载,无账户的可以自己注册一个。Linux中export 命令用于设置或显示环境变量。模式,利用上下键到文档最后,添加以下代码。出现如图所示版本号字样,则说明安装成功。点击下载,勾选1,点击2。记住完整路径用于后面配置。找到Java并点击进去。往下翻,找到Java8。_linux安装jdk1.8
文章浏览阅读2.4w次,点赞26次,收藏109次。JDK 是的简称,也就是 Java 开发工具包。JDK 是整个 Java 的核心,其中JDK包含了 Java 运行环境(Java Runtime Envirnment,简称 JRE),Java 工具(比如 javac、java、javap 等等),以及 Java 基础类库(比如 rt.jar)。最主流的 JDK 是Oracle公司发布的 JDK,除了 Oracle JDK(商业化,更稳定)之外,还有很多公司和组织开发了属于自己的 JDK,比较有名的有IBM JDK(更适合 IBM) 和OpenJDK。_jdk安装教程
文章浏览阅读7.5w次。出现 “java.sql.SQLNonTransientConnectionException:Could not create connection to database server” 的错误通常是由于无法连接到数据库服务器引起的。_java.sql.sqlnontransientconnectionexception: could not create connection to
文章浏览阅读849次,点赞7次,收藏10次。在ClickHouse中创建用户、数据库并进行权限分配是一个重要的管理任务,它涉及到安全性和访问控制。下面是一个基本的指南来帮助你完成这些操作:1. 创建数据库首先,需要创建一个数据库。使用以下命令:CREATE DATABASE IF NOT EXISTS your_database_name;将 your_database_name 替换为你想要的数据库名。2. 创建用户接下来,创建一个新用户。使用以下命令:CREATE USER your_username IDENTIFIED WIT_在clickhouse中如何创建用户 赋权
文章浏览阅读1.2k次,点赞53次,收藏39次。本文是一篇关于Oracle数据库安装和使用的博文摘要。作者以轻松幽默的笔调介绍了自己在实验中掌握的Oracle数据库基本操作,包括使用组件查看命令、配置数据库监听器等。作者也分享了在实验中遇到的一些有趣问题,如SQL语句缺少分号导致的意外错误。此外,作者还强调了登录sys用户和启动实例加载数据库的注意事项,并鼓励读者面对挑战时保持乐观,不断提升自己的能力。整体风格风趣严谨,引人入胜。
文章浏览阅读820次,点赞17次,收藏16次。KingbaseES、xml、dbms_xmlgen、SETSKIPROWS、人大金仓、KingbaseES兼容Oracle包dbms_xmlgen的功能是通过SQL查询将关系表中数据转化为XML文档。转化方式一共有两种:(1)通过查询字符串直接转化。(2)通过上下文句柄转化。对于通过查询字符串直接转化的方式,无法跳过若干行进行查询,只能直接将表格中的所有数据转化为XML文档。