• [转]FILESIZE参数 – 输出写入到多个导出文件


    FILESIZE参数 – 输出写入到多个导出文件

    1. 适用于:

    甲骨文公司服务器 - 企业版 - 版本:8.1.7至10.2

    甲骨文公司服务器 - 个人版 - 版本:8.1.7至10.2

    甲骨文公司服务器 - 标准版 - 版本:8.1.7至10.2

    本文档中的信息适用于任何平台。

    2. 目的:

    本文档提供当从Oracle数据库导出数据或将数据导入回到Oracle数据库中时有关使用FILESIZE参数信息。

    3. 范围和应用:

    本手册适用于要使用EXPORT实用程序从Oracle数据库中导出数据,并创建多个导出转储文件,而不是一个单一的(通常是非常大)导出转储文件的Oracle8i,Oracle9i以及Oracle10g数据库的用户。手册提供了有关使用FILESIZE参数,典型的错误信息,和一些相关的缺陷与可能的解决方法的信息。

    4. 简介:

    1) 默认情况下,输出将数据写入一个出口转存,直至达到最大大小。可以在一个文件中存储的最大值是依赖于您的操作系统。另见:

    注:62427.1 “2GB或不2GB - 文件限制在Oracle”

    2) 首先介绍Oracle8i,输出支持写入到多个出口文件,输入可以读入多个出口文件。如果你给FILESIZE参数指定一个值(字节的限制),出口将只写入转储文件您指定的字节大小的数据。

    3) 在Oracle9i及更高版本的服务器上,FILESIZE参数有一个最大的值,这个值等于可以存储在64位(16EB(艾字节)= 16384 PB(PB级)=16777216TB(TB级)=17179869184GB(千兆字节))的最大值。

    4) 经典输出客户端(EXP)没有一个真正的转储文件的最佳大小。即使我们只从一个非常大的转储导入一张小表,我们业要通读完整的转储文件。

    5) 请注意这与Oracle10g的数据泵的客户端(expdp和impdp)不同。如果我们从多个转储文件导入一张小表,我们只能读取数据泵转储文件头,而且我们读取的数据泵主表可能是存储在较后位置的转储文件之一。基于主表中的信息,我们确定该小表处在的转储文件(S),然后我们只读那些特定的转储文件(S)。

    6) 相比于处理多个小文件,从文件查看点处理一个单一的大型输出转储文件更加困难。 因此,250GB的数据,如果需要导出,建议创建多个较小的文件,例如:指定FILESIZE=25G,创建10个规模较小的转储文件。

    7) 导出到磁带设备时,不使用FILESIZE参数,而使用VOLSIZE参数。有关详情,请参阅:

    注:30428.1 “Unix系统上的导出到磁带”” 

    8) 当导出到一个命名管道,不推荐使用FILESIZE参数。 如果使用FILESIZE参数时使用命名管道,请确保您预先为每个出口转存文件创建一个命名管道。有关详情,请参阅:

    注:30528.1 “使用导出(EXP - 2 EXP-15),导入(IMP-2IMP-21),或SQL * Loader时的大文件的问题(2GB +)”

    5. 出口参数的用法:FILESIZE

    如果你不指定文件大小(注意,0值相当于不指定FILESIZE)值,不管在File参数指定的文件数量是多少,输出都将写入一个文件。

    如果您导出文件所需的空间超过可用的磁盘空间,出口将中止操作,待提供足够的磁盘空间后,输出操作才可以重复并完成。

    FILESIZE值可以指定为KB(千字节数)级。例如,FILESIZE=2KB和FILESIZE= 2048是相同的。同样,MB指定兆字节(1024 * 1024)和GB指定千兆字节(1024** 3)。

    B为字节的简写;该数字不用继续乘以字节大小而获得最终的文件大小(FILESIZE=2048B即是FILESIZE= 2048)。

    FILESIZE=0(默认)输出写入到一个单一的文件

    FILESIZE=1024或:

    FILESIZE=1K或:

    FILESIZE=1KB输出写入1千字节的文件

    FILESIZE=1M或:

    FILESIZE=1MB输出写入1兆字节的文件

    FILESIZE=1G或:

    FILESIZE= 1GB,输出写入1千兆字节的文件

    当输出写入的数据量超过FILESIZE指定的最大值,输出会从File参数中得到下一个输出文件的名称,如果它已经使用了所有的File参数指定的名称,输出会提示您提供了一个新的输出文件名。

    如果输出的数据量不适合提供的文件清单,输出将提示需要更多的文件名。

    如果在后台运行的输出程序,确保给输出提供足够的文件名。在等待您提供额外的文件名时输出程序会挂起,而您可能不能发现文件名不够用。

    例如:运行一个完整的数据库输出的直接路径和创建750 MB输出转储文件:

    File: exp.par
    -------------
    FILESIZE=750MB
    FILE=exp_f1.dmp,exp_f2.dmp,
    exp_f3.dmp,exp_f4.dmp
    FULL=Y
    DIRECT=Y
    LOG=exp_full.log
    % exp system/manager PARFILE=exp.par

    注1: 当出口分配一个新的出口转储文件,这将记录在在出口日志中。

    E.g:
    ...
    continuing export into file exp_f2.dmp
    ...

    注2: 已指定File参数,但是出口不需要这个文件,则该指定的FILE不会被创建。

        例如:在上面的例子,如果输出总额为2 GB,然后输出将创建3个文件:

    - exp_f1.dmp with size of 750 Mb
    - exp_f2.dmp with size of 750 Mb
    - exp_f3.dmp with size of 500 Mb

    注3: 如果出口需要更多的文件,将数据导出,它会提示一个新的文件名。

    例如:在上面的例子,如果出口总额为3.5 GB,然后出口将创建4个750 MB的文件,并会提示为剩余的500 MB数据创建新文件。键入下一个出口转储文件的文件名后,出口将继续下去。

    Example:
    ...
    Export file: EXPDAT.DMP > exp_f5.dmp
    ...

    注4 请注意,File参数指定文件名的命令行语法是:

    ---命令行模式可能的语法(2例):

    E.g:
    %exp...file=exp_f1.dmp exp_f2.dmp exp_f3.dmp exp_f4.dmp...
    %exp...file=exp_f1.dmp,exp_f2.dmp,exp_f3.dmp,exp_f4.dmp ...

    或者在Windows系统(3附例):

    D:>exp...file=(exp_f1.dmp exp_f2.dmp exp_f3.dmp exp_f4.dmp)...
    D:>exp...file=(exp_f1.dmp,exp_f2.dmp,exp_f3.dmp,exp_f4.dmp)...
    D:>exp...file="exp_f1.dmp,exp_f2.dmp,exp_f3.dmp,exp_f4.dmp"...

    或者在Unix系统(3附例):

    % exp... file=(exp_f1.dmp exp_f2.dmp exp_f3.dmp exp_f4.dmp)...
    % exp...file=(exp_f1.dmp,exp_f2.dmp,exp_f3.dmp,exp_f4.dmp)...
    % exp...file='exp_f1.dmp,exp_f2.dmp,exp_f3.dmp,exp_f4.dmp' ...

    6. 进口参数:FILESIZE

    输入数据时,必须使用导入参数FILESIZE告诉导入最大的出口指定转储文件的大小。FILESIZE值可以指定为KB(千字节数)级。例如,FILESIZE=2KB和FILESIZE= 2048是相同的。同样,MB指定兆字节(1024 * 1024)和GB指定千兆字节(1024** 3)。

    B为字节的简写;该数字不用继续乘以字节大小而获得最终的文件大小(FILESIZE=2048B即是FILESIZE= 2048)。

    FILESIZE=0(默认)出口读取一个单一的文件

    FILESIZE=1024或:

    FILESIZE=1K或:

    FILESIZE=1KB出口读取1千字节的文件

    FILESIZE=1M或:

    FILESIZE=1MB出口读取1兆字节的文件

    FILESIZE=1G或:

    FILESIZE= 1GB,出口读取1千兆字节的文件

    例如:从上面创建的出口转储文件运行一个表级别的进口程序。

    File: imp.par
    -------------
    FILESIZE=750MB
    FILE=exp_f1.dmp,exp_f2.dmp,
    exp_f3.dmp,exp_f4.dmp
    FROMUSER=scott
    TOUSER=scott
    TABLES=emp
    LOG=imp_emp.log
    % imp system/manager PARFILE=imp.par

    注1 :如果文件参数(如在输出过程中文件exp_f4.dmp未被创建)中列出的文件太多,这些文件名会被忽略。

    注2 :如果没有列出的所有文件名,进口将主动要求下一个文件名。 

    例如如果进口开始指定了 exp_f1.dmp,exp_f2.dmp两个文件而没有提到第三个或最后的文件名exp_f3.dmp,进口会提示为剩余数据创建新的文件名。输入正确的文件名后,进口程序将继续下去。

    例如:

    ...
    Import file: EXPDAT.DMP > exp_f3.dmp
    ...

    7. 出口可能的警告和错误:

    1) EXP-75: FILESIZE四舍五入式下降

    FILESIZE参数指定的值是RECORDLENGTH参数值的倍数。如果这是不正确的,那么FILESIZE参数值将下调自动:

    % exp system/manager FILE=exp_f1.dmp, exp_f2.dmp, exp_f3.dmp, 
    exp_f4.dmp LOG=exp_f.log FILESIZE=1000m 
    DIRECT=y RECORDLENGTH=65535 FULL=y
    Export: Release 10.2.0.3.0 - Production on Thu Dec 20 17:19:13 2007
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 – Production
    With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
    EXP-00075: rounding FILESIZE down, new value is 1048560000
    Export done in WE8ISO8859P15 character set and AL16UTF16 NCHAR character set
    About to export the entire database ...
    ...

    解决办法:忽略警告或指定FILESIZE参数为RECORDLENGTH的倍数:

    %exp system/manager FILE=exp_f1.dmp, exp_f2.dmp, exp_f3.dmp, 
    exp_f4.dmp LOG=exp_f.log FILESIZE=1048560000 
    DIRECT=y RECORDLENGTH=65535 FULL=y

    注1:确保进口时也使用FILESIZE新指定值。

    注2:有关参数RECORDLENGTH的详细信息,请参阅:

    注3:155477.1 “直接参数:常规路径导出与直接路径导出的比较”

    2) EXP-73:转储文件太小

    如果FILESIZE参数值小于RECORDLENGTH参数值,将产生一个错误。例如如果出口开始于RECORDLENGTH= 8192和FILESIZE =4KB。

    % exp system/manager FILE=exp_f1.dmp, exp_f2.dmp, exp_f3.dmp, 
    exp_f4.dmp LOG=exp_f.log FILESIZE=64k 
    DIRECT=y RECORDLENGTH=65535 FULL=y
    Export: Release 10.2.0.3.0 - Production on Thu Dec 20 17:39:12 2007
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 – Production
    With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
    EXP-00075: rounding FILESIZE down, new value is 65535
    EXP-00073: dump file size too small
    EXP-00000: Export terminated unsuccessfully

    解决方案:FILESIZE参数,如指定一个较大的值:

    %exp system/manager FILE=exp_f1.dmp,exp_f2.dmp,exp_f3.dmp, 
    exp_f4.dmp LOG=exp_f.log FILESIZE=640m 
    DIRECT=y RECORDLENGTH=65535 FULL=y

    3) EXP-2:错误写入导出文件

    如果没有足够的空间供出口写入到转储文件,或另一个进程阻止出口写入转储文件,出口会因为如下一些错误中止:

    ...
    EXP-00030: Unexpected End-Of-File encountered while reading input
    .. exporting table EMP_LONG error clossing export file
    EXP-00002: Error in writing to export file
    EXP-00002: Error in writing to export file
    EXP-00000: Export terminated unsuccessfully

    解决方法:确保有足够的自由空间来创建文件,确保该磁盘没有任何错误,确保其他进程(如防病毒扫描)不会阻止出口写入文件,并重新运行出口。

    8. 导入时可能的警告和错误:

    1) IMP-46:使用出口文件FILESIZE值

    如果没有值指定在进口程序中的FILESIZE参数,将产生一个警告。然而,进口程序将继续:

    % imp system/manager FILE=exp_f1.dmp, exp_f2.dmp, exp_f3.dmp 
    exp_f4.dmp LOG=imp_emp.log 
    FROMUSER=scott TOUSER=scott TABLES=emp
    Import: Release 10.2.0.3.0 - Production on Thu Dec 20 18:00:48 2007
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 – Production
    With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
    Export file created by EXPORT:V10.02.01 via direct path
    import done in WE8ISO8859P15 character set and AL16UTF16 NCHAR character set
    IMP-00046: using FILESIZE value from export file of 786432000
    ...
    Import terminated successfully with warnings.

    解决办法:忽略警告,下一次从这个出口转储文件集输入时,指定正确的值FILESIZE参数,如:

    % imp system/manager FILE=exp_f1.dmp,exp_f2.dmp,exp_f3.dmp 
    exp_f4.dmp LOG=imp_emp.log FILESIZE=750m 
    FROMUSER=scott TOUSER=scott TABLES=emp

    2) IMP-47:意外的文件序列号

    如果以错误的顺序列出文件名,系统报告错误,进口程序将中止,例如:

    % imp system/manager FILE=exp_f3.dmp, exp_f2.dmp, exp_f1.dmp 
    exp_f4.dmp LOG=imp_emp.log FILESIZE=750m 
    FROMUSER=scott TOUSER=scott TABLES=emp
    Import: Release 10.2.0.3.0 - Production on Thu Dec 20 18:05:04 2007
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 – Production
    With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
    Export file created by EXPORT:V10.02.01 via direct path
    import done in WE8ISO8859P15 character set and AL16UTF16 NCHAR character set
    IMP-00047: unexpected file sequence number; expected 1 but found 3
    IMP-00132: first file in the multi-file export is exp_f1.dmp
    IMP-00000: Import terminated unsuccessfully
    Or:
    % imp system/manager FILE=exp_f1.dmp, exp_f3.dmp, exp_f2.dmp 
    exp_f4.dmp LOG=imp_emp.log FILESIZE=750m 
    FROMUSER=scott TOUSER=scott TABLES=emp
    Import: Release 10.2.0.3.0 - Production on Thu Dec 20 18:13:39 2007
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 – Production
    With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
    Export file created by EXPORT:V10.02.01 via direct path
    import done in WE8ISO8859P15 character set and AL16UTF16 NCHAR character set
    IMP-00047: unexpected file sequence number; expected 2 but found 3
    IMP-00132: first file in the multi-file export is exp_f1.dmp
    IMP-00008: unrecognized statement in the export file:
    ...

    解决方案:以正确的顺序指定转储文件,例如:

    %imp system/manager FILE=exp_f1.dmp,exp_f2.dmp,exp_f3.dmp 
    exp_f4.dmp LOG=imp_emp.log FILESIZE=750m 
    FROMUSER=scott TOUSER=scott TABLES=emp

    3) IMP-40:FILESIZE与出口程序使用的值不匹配

    如果错误的FILESIZE值在进口过程中被指定(例如指定FILESIZE=75m,而非FILESIZE=750m),将报告错误:

    % imp system/manager FILE=exp_f1.dmp, exp_f2.dmp, exp_f3.dmp 
    exp_f4.dmp LOG=imp_emp.log FILESIZE=75m 
    FROMUSER=scott TOUSER=scott TABLES=emp
    Import: Release 10.2.0.3.0 - Production on Thu Dec 20 18:18:26 2007
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
    With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
    Export file created by EXPORT:V10.02.01 via direct path
    import done in WE8ISO8859P15 character set and AL16UTF16 NCHAR character set
    IMP-00040: FILESIZE does not match the value used for export: 786432000
    IMP-00000: Import terminated unsuccessfully

    解决方案:重新启动进口,并给FILESIZE参数指定正确的值,如:

    % imp system/manager FILE=exp_f1.dmp,exp_f2.dmp,exp_f3.dmp
    exp_f4.dmp LOG=imp_emp.log FILESIZE=750m 
    FROMUSER=scott TOUSER=scott TABLES=emp

    4) IMP-2:未能打开读取文件

    如果你错误地指定了一个不正确的文件名,进口将提示输入正确的文件名:

    % imp system/manager FILE=exp_f1.dmp, exp_f2.dmp, exp_f3.dmp 
    exp_f4.dm LOG=imp_emp.log FILESIZE=750m 
    FROMUSER=scott TOUSER=scott TABLES=emp
    Import: Release 10.2.0.3.0 - Production on Thu Dec 20 18:21:02 2007
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
    With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
    Export file created by EXPORT:V10.02.01 via direct path
    import done in WE8ISO8859P15 character set and AL16UTF16 NCHAR character set
    IMP-00002: failed to open exp_f4.dm for read
    Import file: EXPDAT.DMP >

    解决方案:指定正确的文件名,或者以正确的名称重新启动进口转储文件:

    ...
    Import file: EXPDAT.DMP > exp_f4.dmp
    ...

    5) IMP-48:文件头不匹配

    如果你错误地指定了一个错误的文件名,可能发生以下错误:

    % imp system/manager FILE=exp_f1.dmp, exp_f2.dmp, exp_f3.dmp 
    exp_f.log LOG=imp_emp.log FILESIZE=750m 
    FROMUSER=scott TOUSER=scott TABLES=emp
    Import: Release 10.2.0.3.0 - Production on Thu Dec 20 18:28:26 2007
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 – Production
    With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
    Export file created by EXPORT:V10.02.01 via direct path
    import done in WE8ISO8859P15 character set and AL16UTF16 NCHAR character set
    IMP-00048: mismatched file header
    IMP-00008: unrecognized statement in the export file:
    IMP-00000: Import terminated unsuccessfully
    -- or import aborts with:
    ...
    IMP-00048: mismatched file header
    IMP-00009: abnormal end of export file
    IMP-00000: Import terminated unsuccessfully

    解决方案:重新启动的进口,并指定一系列正确的转储文件的名称,如:

    %impsystem/manager FILE=exp_f1.dmp,exp_f2.dmp,exp_f3.dmp
    exp_f4.dmp LOG=imp_emp.log FILESIZE=750m 
    FROMUSER=scott TOUSER=scott TABLES=emp

  • 相关阅读:
    mysql存储过程及拼接字符串的用法
    SpringMVC的工作原理
    3年java工作经验必备技能
    HashMap的源码,实现原理,底层结构
    十年软件测试感悟,写给想要转行的测试新人。
    软件自动化测试有了测试工程师就等于有了质量?
    为何你的简历石沉大海?这份新鲜出炉的测试用人需求分析报告揭示了原因。
    【软件测试】Python自动化软件测试算是程序员吗?
    达内教育培训怎么样,值得去吗?
    软件测试员最核心的竞争力究竟是什么? 爱码小哥
  • 原文地址:https://www.cnblogs.com/oktell/p/4601569.html
Copyright © 2020-2023  润新知