当前位置: 代码迷 >> 综合 >> 达梦DM8逻辑备份还原dexp和dimp用法和参数简介
  详细解决方案

达梦DM8逻辑备份还原dexp和dimp用法和参数简介

热度:33   发布时间:2024-02-26 21:46:58.0
  • 物理备份还原和逻辑备份还原
    •  物理备份还原

               物理备份还原是对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。例如使用RMAN工具进行的备份还原。

  •  逻辑备份还原

         逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。例如使用dexp和dimp进行的备份还原。逻辑备份还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程进行的备份和还原。dexp和dimp是DM数据库自带的工具,只要安装了DM数据库,就可以在安装目录/dmdbms/bin中找到。

逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。四种级别所提供的功能:

      • 数据库级(FULL):导出或导入整个数据库中的所有对象。
      • 用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
      • 模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
      • 表级(TABLE):导出或导入一个或多个指定的表或表分区。

 

dexp逻辑导出

dexp工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。备份内容非常灵活,可以选择是否备份索引、数据行和权限,是否忽略各种约束(外键约束、非空约束、唯一约束等),在备份前还可以选择生成日志文件,记录备份的过程以便查看。

 

通用格式:

./dexp userid=SYSDBA/SYSDBA@192.168.42.102:5236 file=db.dmp directory=/导出文件保存路径 log=db.log full=y (库级导出)

 

dexp参数:

 

主要参数:

userid 用户名/口令@主库名:端口号#证书路径 #密码中带有特殊字符,需要外加三层双引号("""""")进行转义

file 明确指定导出文件名称 #文件可以在生成过程中自动扩展成多个,文件名中包含通配符%U,用于作自动扩充文件的文件名模板

directory 导出文件所在目录 #file和log中指定的路径,优先级高于directory中指定的路径。当file和log不指定路径时,才是用directory指定的路径。如果都没有指定路径,则使用系统当前路径

log 明确指定导出日志文件名称

full 导出整个数据库

owner 用户名列表,导出一个或多个用户所拥有对象

schemas 模式列表,导出一个或多个模式下所有对象

tables 表名列表,导出一个或多个指定的表或表分区

 

owner、schemas、tables的书写规定

  • 用户名、模式名和表名的书写规定
    • 对于输入的用户名、模式名和表名,工具都会自动转换为大写。
      • 双引号括起来例如:输入的命令为TABLES=t1,那么实际处理的表是T1。
    • 对于小写的用户名、模式名和表名,为了不转换为大写,需要转义。
      • 转义步骤如下“第一步,如果想输入小写的名字不被转成大写,dexp要求将名称使用双引号括起来。例如:名称为tab1,要写成"tab1"。第二步,操作系统要求将传入的名称使用双引号括起来作为一个整体,同时要求内层的双引号还需要被转义。所以最终为"\"tab1\""。
    • 如果含有特殊字符的用户名、模式名和表名需要转义。具体规则如下:
      • 转义步骤如下:第一步,dexp要求对含有特殊字符的对象名称需要使用双引号括起来,同时特殊字符需要被转义(使用双引号")。例如:表名为tab1",需写成"tab1""";第二步,操作系统要求将传入的名称使用双引号括起来作为一个整体,同时要求内层的双引号和特殊字符还需要被转义。所以最终写成:"\"tab1\"\"\""。
    • 如何转义双引号
      • dexp和dimp要求使用双引号"对双引号内的双引号转义。
      • Windows命令行,使用双引号"或者反斜杠\对双引号内的双引号转义。
      • Linux命令行,使用反斜杠\对双引号内的双引号转义。

 

普通参数(具体参数可参考手册):

  • FUZZY_MATCH 用于指定TABLES选项是否支持模糊匹配。可选参数,缺省为N。
    • 例如,导出OTHER模式下"R"开头的表。
      • ./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_srt.log TABLES=OTHER.R% FUZZY_MATCH=Y
  • QUERY 用户指定过滤条件来对表数据进行导出。可选参数。
    • 例如,导出OTHER.READER表中满足"WHERE AGE=19"条件的数据。
      • ./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=OTHERS.READERQUERY="WHERE AGE=19"
  • PARALLEL 用于指定导出的过程所使用的线程数目。可选参数,缺省为单线程。如果CPU核心数为N的话,那一般来说PARALLEL为N或者N+1最合适。整数类型,取值1-100。
    • 例如,设置PARALLEL=2时则线程数为2.
      • ./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log full=Y PARALLEL=2
  • TABLE_PARALLEL 用于指定导出每张表所使用的线程数。可选参数,缺省为单线程。如果CPU核数为N的话,那一般来说TABLE_PARALLEL为N或者N+1最合适。在MPP模式下会转换成单线程。整数类型,取值范围1-16。
    • 例如,设置TABLE_PARALLEL=3时则线程数为3。
      • ./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLE_PARALLEL=3
  • TABLE_POOL用于设置导出过程中存储表数据的缓冲区个数。可选参数。缺省值为1。整数类型,取值范围:1-20。TABLE_PARALLEL固定的情况下,导出时间随着TABLE_POOL个数的增加而减少。当TABLE_POOL稍大于TBALE_PARALLEL时结果为最优。
    • 例如,设置TABLE_POOL=3时。
      • ./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y TABLE_POOL=3
  • EXCLUDE 用来批量设置导出时忽略的对象种类。可选参数。
    • 例如,设置EXCLUDES=(CONSTRAINTS),将当前用户下的table1、table2的对象信息导出时不导出约束。
      • ./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1,table2 EXCLUDE=\(CONSTRAINTS/)
  • INCLUDE 用来批量设置导出时包含的对象种类。可选参数。
    • 例如,设置INCLUES=(CONSTRAINTS,INDEXES),指明将当前用户下的table1的对象约束和索引信息导出。
      • ./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1 INCLUDE=\(CONSTRAINTS,INDEXES\)
  • NOLOGFILE 用于设置是否使用日志文件。可选参数。
    • 设置NOLOGFILE=Y,不使用日志文件。一旦设置NOLOGFILE=Y不使用日志文件。此时即使存在LOG参数,LOG参数也为无效。
  • NOLOG 设置屏幕上是否显示日志信息。可选参数。
    • 设置NOLOG=Y屏幕不显示日志信息。
  • LOG_WRITE用于日志信息实时写入日志文件。可选参数。
  • PARFILE 用于将常用的参数设置保存到文件中,然后使用参数文件PARFILE进行导出、导入操作。可选参数。
    • 例如,设置PARFILE=/mnt/para.txt
    • ./dexp USERID=SYSDBA/SYSDBA PARFILE=/mnt/para.txt
      • 其中,参数文件/mnt/para.txt 的内容如下:
        • FILE=db.dmp
        • LOG=db.log
        • TABLES=table1
  • COMPRESS 指定是否压缩导出文件。可选参数。缺省为不压缩。
  • ENCRYPT、ENCRYPT_PASSWORD、ENCRYPT_NAME 这三个参数用来设置导出文件加密。可选参数。
    • ENCRYPT=Y:设置导出文件加密。如果设置ENCRYPT=Y,那么默认COMPRESS=Y,先压缩后加密。
    • ENCRYPT_PASSWORD=<加密密钥>:设置加密密钥。
    • ENCRYPT_NAME=<加密算法>:设置加密算法。缺省为RC4。
  • FILESIZE 用于指定单个导出文件大小或日志文件大小的上限。可以按照字节的方式指定大小。可选参数。使用FILESIZE参数时,FILE或LOG必须使用%U对名称进行自动扩展,否则报错。如果不指定FILE或LOG,那么即使设置了FILESIZE也不起作用。FILE和LOG同时使用%U时,FILESIZE参数只需指定一次。取值范围:128M-系统最大值。
    • dexp执行过程中可能遇到单个文件过大的问题。解决办法是通过FILESIZE参数来设置单个导出文件上限,导出文件名称按照FILE参数中描述的使用%U来自动扩展。这样在按照FILESIZE大小导出到第一个文件之后,会自动生成下一个导出文件。

 

dimp逻辑导入

dimp逻辑导入工具利用dexp工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。dimp导入是dexp导出的相反过程。还原的方式可以灵活选择,如是否忽略对象存在而导致的创建错误、是否导入约束、是否导入索引、导入时是否需要编译、是否生成日志等。

 

通用格式:

./dimp USERID=SYSDBA/SYSDBA FILE=db.dmp LOG=db.log FULL=Y

 

 

dimp参数(具体可参考手册):

  • dimp的参数和dexp的参数大致相同,使用过程是相反的。
  相关解决方案