达梦数据库备份还原

数据备份还原

逻辑备份和物理备份(方法分)

逻辑备份是指利用 dexp 导出工具,将指定对象(库级、模式级、表级)的数据导出到

文件的备份方式。逻辑备份针对的是数据内容,并不关心这些数据物理存储在什么位置。

物理备份则直接扫描数据库文件,找出那些已经分配、使用的数据页,拷贝并保存到备

份集中。物理备份过程中,不关心数据页的具体内容是什么,也不关心数据页属于哪一张表,

只是简单的根据数据库文件系统的描述,来挑选有效的数据页。

联机备份和脱机备份(方法分)

数据库处于运行状态、并正常提供数据库服务情况下进行的备份操作,我们称为联机备

份。数据库处于关闭状态时进行的备份操作,被称为脱机备份。

1.备份与还原从 V2.0 版本开始,使用 DMRMAN 工具进行脱机备份,并且支持对异常关闭的数据库进行脱机库备份。备份异常关闭的数据库,要求配置了本地归档,如果本地归档不完整,则需要先修复本地归档,再进行备份。

2.联机备份则使用客户端工具连接到数据库实例后,通过执行 SQL 语句进行;也可以通

过配置作业,定时完成自动备份。联机备份不影响数据库正常提供服务,是最常用的备份手段之一。

联机备份时,可能存在一些处于活动状态的事务正在执行,为确保备份数据的一致性,

需要将备份期间产生的 REDO 日志一起备份。因此,只能在配置本地归档、并开启本地归档的数据库上执行联机备份。

注意:只有已经关闭的数据库才允许执行脱机备份。正在运行的数据库,无法执行

脱机备份,系统会报错。

数据备份和归档日志备份(内容分)

按照备份内容不同,可以分为数据备份和归档日志备份。数据备份主要针对数据文件内

容,包括库备份、表空间备份和表备份。

1.库备份,顾名思义就是对整个数据库执行的备份,又称为库级备份。库备份会拷贝数据

库中所有数据文件的有效数据页,如果是联机备份,则还会拷贝备份过程中产生的归档日志,写入到备份集中。

2.表空间备份是针对特定表空间执行的备份,又称为表空间级备份。表空间备份只能在联

机状态下执行。

表备份则拷贝指定表的所有数据页到备份集中,并会记录各个数据页之间的逻辑关系用

以恢复。表备份只能在联机状态下执行,一次表备份操作只能备份一张用户表,并且不支持增量表备份。

3.归档日志备份,是专门针对归档日志文件进行操作,不涉及任何数据文件内容。归档日

志备份扫描归档目录收集归档日志文件,并将归档日志写入到备份集中。既可以在数据库运行状态下,执行联机归档日志备份;也可以在数据库关闭状态下执行脱机归档日志备份。

一致性备份和非一致性备份(一致性分)

按照备份集中的数据是否满足一致性,可以将备份划分为一致性备份和非一致性备份。

一致性备份的备份集包含了完整的数据文件内容和归档日志信息;利用一个单独的备份

集可以将数据库恢复到备份时状态。不指定 WITHOUT LOG 选项的联机备份生成的备份集

就是一致性备份。脱机数据库备份会强制将检查点之后的有效 REDO 日志拷贝到备份集中,因此,脱机备份一定是一致性备份。数据库正常关闭时,会生成完全检查点,脱机备份生成的备份集中,不包含任何 REDO 日志。

非一致性备份的备份集只包含数据文件相关内容,没有归档日志信息,利用非一致性备

份还原的数据库,无法直接启动,必须借助归档日志来恢复。表空间备份、指定WITHOUT LOG选项的联机备份生成的备份集都是非一致性备份集。

完全备份和增量备份(完整性)

按照备份数据完整性,可将备份分为完全备份和增量备份。库备份和表空间备份支持增

量备份,表备份不支持增量备份。

完全备份生成的备份集包含了指定库(或者表空间)的全部有效数据页。当数据规模比

较大的情况下,生成的完全备份集通常会比较大,而且备份时间也会比较长。

增量备份是在某个特定备份集基础上,收集数据库新修改的数据页进行备份,可以有效

减少备份集的空间占用、提高备份速度。这个特定的、已经存在的备份集称为增量备份的基备份,根据对基备份的要求不同,DM 的增量备份分为以下两种:

1.差异增量备份

差异增量备份的基备份既可以是一个完全备份集,也可以是一个增量备份集。

利用增量备份进行还原操作时,要求其基备份必须是完整的;如果差异增量备份的基备

份本身也是一个增量备份,那么同样要求其基备份是完整的;任何一个增量备份,最终都是

以一个完全备份作为其基备份。因此,完全备份是增量备份的基础。

2.累积增量备份

累积增量备份的基备份只能是完全备份集,而不能是增量备份集。

增量备份的基备份集既可以是脱机备份生成的,也可以是联机备份生成的,脱机增量备

份的基备份集可以是联机备份生成的,联机增量备份的基备份集也可以是脱机备份生成的。

备份工具及其使用

使用 dexp 工具

dexp 工具需要从命令行启动。在 cmd 命令行工具中找到 dexp 所在安装目录

/dmdbms/bin,输入 dexp 和参数后回车。参数在下一节详细介绍。

语法如下:

dexp PARAMETER=<value> { PARAMETER=<value> }

dexpdp PARAMETER=<value> { PARAMETER=<value> }

PARAMETER:dexp 参数。多个参数之间排列顺序无影响,参数之间使用空格间隔。

<value>:参数取值。

例如,将用户名和密码均为 SYSDBA,IP 地址为 100.0.11,端口号为 5236 的

数据库采用FULL方式完全导出。/user/data为数字证书路径。导出文件名为db_str.dmp,

导出的日志文件名为 db_str.log,导出文件的路径为/mnt/dexp/data。

./dexp USERID=SYSDBA/SYSDBA@10.0.0.11:5236#/user/data FILE=db_str.dmp 
​
DIRECTORY=/mnt/dexp/data LOG=db_str.log FULL=Y 

dexp 参数一览表

参数                         含义                         备注
​
USERID                 数据库的连接信息                    必选
​
FILE                 明确指定导出文件名称       可选。如果缺省该参数,则导出文件名为                                                       dexp.dmp
DIRECTORY             导出文件所在目录                     可选
​
FULL                   导出整个数据库(N)               
​
OWNER              用户名列表,导出一个或多个用户
                      所拥有的所有对象                  可选,四者中选其一。
                                                       缺省为 SCHEMAS
SCHEMAS        模式列表,导出一个或多个模式下的所有对象
​
TABLES         表名列表,导出一个或多个指定的表或表分区
​
FUZZY_MATCH TABLES    选项是否支持模糊匹配(N)                可选
​
QUERY            用于指定对导出表的数据进行过滤的条件。         可选
​
PARALLEL         用于指定导出的过程中所使用的线程数目           可选
​
TABLE_PARALLEL  用于指定导出每张表所使用的线程数,在MPP模式下    可选
                         会转换成单线程
TABLE_POOL        用于设置导出过程中存储表的缓冲区个数          可选
​
              1.导出内容中忽略指定的对象。对象有CONSTRAINTS、
                 INDEXES、ROWS、TRIGGERS 和GRANTS。
                比如:EXCLUDE= (CONSTRAINTS,INDEXES)
              2. 忽略指定的表,使用 TABLES:INFO 格式,如果
              使用表级导出方式导出,则使用 TABLES:INFO 格式
 EXCLUDE                  的 EXCLUDE 无效。                   可选
              例如:EXCLUDE= TABLES:table1,table2
              3. 忽略指定的模式,使用 SCHEMAS:INFO 格式,
              如果使用表级,模式级导出方式导出,则使用
               SCHEMAS:INFO 格式的 EXCLUDE 无效。
               例如:EXCLUDE=SCHEMAS:SCH1,SCH2
               
                      导出内容中包含指定的对象
INCLUDE       例如:INCLUDE=(CONSTRAINTS,INDEXES)            可选
              或者 INCLUDE=TABLES:table1,table2
              
CONSTRAINTS              导出约束 (Y)           
​
TABLESPACE          导出的对象定义是否包含表空间(N)
​
GRANTS                   导出权限 (Y)                      可选
                                                    此处单独设置与 和    
INDEXES                  导出索引 (Y)                EXCLUDE/INCLUDE   
                                                   中批量设置功能一样(选一)
TRIGGERS                导出触发器(Y)
​
ROWS                    导出数据行 (Y)
​
LOG                   明确指定日志文件名称          可选,如果缺省该参数,则导出文件                                                         名为dexp.log
NOLOGFILE               不使用日志文件(N)                   可选
​
NOLOG                屏幕上不显示日志信息(N)                 可选
​
LOG_WRITE           日志信息实时写入文件 (N)                 可选
​
DUMMY        交互信息处理: 打印(P), 所有交互都按 YES 处理      可选
                 (Y),NO(N)。默认为 NO,不打印交互信息。          
PARFILE      参数文件名,如果 dexp 的参数很多,可以存成参数文件  可选
​
FEEDBACK              每 x 行显示进度 (0)                   可选
​
COMPRESS             是否压缩导出数据文件(N)                 可选
​
ENCRYPT               导出数据是否加密 (N)                  可选,
                                                    和 ENCRYPT 同时使用
ENCRYPT_PASSWORD       导出数据的加密密钥
​
ENCRYPT_NAME           导出数据的加密算法        可选,和 ENCRYPT,ENCRYPT_PASSWORD                                                          配合使用
​
FILESIZE         用于指定单个导出文件大小的上限。可以按字节      可选
                   [B]、K[B]、M[B]、G[B]的方式指定大小   
FILENUM     多文件导出时,一个模板可以生成文件数,范围为[1,99],默认 99     可选
​
DROP              导出后删除原表,但不级联删除 (N)             可选
​
DESCRIBE        导出数据文件的描述信息,记录在数据文件中         可选
​
COL_DEFAULT_SEPARATE    是否单独导出列默认值 (Y)              可选

每个参数含义后面的括号内为(N)则表示该参数缺省为否,为(Y)则表示为是,虽然参数大部分为可选参数,但后台这些参数都会传到服务器,此时参数的值就是缺省值。

恢复工具及其使用

dimp 逻辑导入

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

dimp 工具名称有两种写法 dimp 和 dimpdp。两者语法完全相同。唯一的区别在于,dimp 导入的文件必须存放在客户端,dimpdp 导入的文件必须存放在服务器端。

dimp 工具使用

dimp 工具需要从命令行启动。在 cmd 命令行工具中找到 dimp 所在安装目录/dmdbms/bin,输入 dimp 和参数后回车。参数在下一节详细介绍。

语法如下:

dimp PARAMETER=value { PARAMETER=value }

dimpdp PARAMETER=value { PARAMETER=value }

PARAMETER:dimp 参数。多个参数之间排列顺序无影响,参数之间使用空格间隔。

value:参数取值。

例如,将逻辑备份采用 FULL 方式完全导入到用户名和密码为 SYSDBA,IP 地址为10.0.0.11,端口号为 5236 的数据库。导入文件名为 db_str.dmp,导入的日志文件名为 db_str.log,路径 为/mnt/data/dexp。

./dimp USERID=SYSDBA/SYSDBA@10.0.0.11:5236 FILE=db_str.dmp 
​
DIRECTORY=/mnt/data/dexp LOG=db_str.log FULL=Y 

dimp 参数一览表

   参数                              含义                         备注
​
USERID                          数据库的连接信息                   必选
​
FILE                      输入文件,即 dexp 导出的文件              必选
​
DIRECTORY                      导入文件所在目录                    可选
​
FULL                          导入整个数据库 (N)
OWNER                      导入指定的用户名下的模式              可选,四者中选其一
SCHEMAS                         导入的模式列表                  缺省为 SCHEMAS
TABLES        表名列表,指定导入的 tables 名称。不支持对外部表进行导入
​
PARALLEL              用于指定导入的过程中所使用的线程数目            可选
​
TABLE_PARALLEL    用于指定导入的过程中每个表所使用的子线程数目   可选。在FAST_LOAD为Y时有效
​
IGNORE              忽略创建错误 (N)。如果表已经存在则向表中插入       可选
                         数据,否则报错表已经存在。
TABLE_EXISTS_ACT   忽略创建错误 (N)。如果表已经存在则向表中插入数据     可选
   ION                            否则报错表已经存在。
FAST_LOAD                  是否使用 dmfldr 进行数据导入(N)          可选
​
FLDR_ORDER            使用 dmfldr 是否需要严格按顺序来导数据(Y)       可选
​
COMMIT_ROWS                      批量提交的行数(5000)               可选
​
                  忽略指定的对象(CONSTRAINTS,INDEXES,ROWS,         
EXCLUDE           TRIGGERS,GRANTS)。格式EXCLUDE=(CONSTRAINTS,     可选
                  INDEXES,ROWS,TRIGGERS,GRANTS)
GRANTS                        导入权限 (Y)                        可选
​
CONSTRAINTS                   导入约束 (Y)                        可选
​
INDEXES                       导入索引 (Y)                        可选
​
TRIGGERS                     导入触发器(Y)                       可选
​
ROWS                         导入数据行 (Y)                       可选
​
LOG                            日志文件                           可选
​
NOLOGFILE                    不使用日志文件(N)                     可选
​
NOLOG                      屏幕上不显示日志信息(N)                  可选
​
DUMMY               交互信息处理: 打印(P)。取值 Y/N。                可选
​
LOG_WRITE               日志信息实时写入文件(N)                     可选
​
PARFILE         参数文件名,如果 dimp 的参数很多,可以存成参数文件      可选
​
FEEDBACK               显示每 x 行 (0) 的进度                      可选
​
COMPILE               编译过程,程序包和函数 (Y)                    可选
​
INDEXFILE          将表的索引/约束信息写入指定的文件                  可选
​
INDEXFIRST               导入时先建索引(N)                         可选
​
REMAP_SCHEMA         SOURCE_SCHEMA:TARGET_SCHEMA 将             可选
                 SOURCE_SCHEMA 中的数据导入到TARGET_SCHEMA 中
ENCRYPT_PASSWORD            数据的加密密钥                  可选,和 dexp 中的密钥一样
​
ENCRYPT_NAME              数据的加密算法的名称             可选,和dexp中的加密算法一样
​
SHOW/ DESCRIBE             只列出文件内容 (N)                      可选
​
TASK_THREAD_NUMBER      设置 dmfldr 处理用户数据的线程数目           可选
​
BUFFER_NODE_SIZE          设置 dmfldr 读入文件缓冲区大小            可选
​
TASK_SEND_NODE_NUMBER    用于设置 dmfldr 发送节点个数[16,65535]     可选
​
LOB_NOT_FAST_LOAD     如果一个表含有大字段,那么不使用 dmfldr,因      可选
                              为 dmfldr 是一行一行提交的
PRIMARY_CONFLICT        主键冲突的处理方式[IGNORE | OVERWRITE |     可选
                                OVERWRITE2],默认报错
TABLE_FIRST     是否强制先导入表 (默认 N),Y 表示先导入表,N正常导入     可选
​
SHOW_SERVER_INFO     是否显示服务器信息(默认 N),Y 表示显示导出文
                     件对应服务器信息实际不导入,N 表示不显示导         可选
                         出文件对应服务器信息,正常导入
IGNORE_INIT_PARA  忽略建库参数差异(0):CASE_SENSITIVE(1),LENGTH_IN_CHAR(2)    可选
​
AUTO_FREE_KEY      导入数据完成后, 是否释放密钥(N):是(Y), 否(N)        可选
​
REMAP_TABLE        格式(SOURCE_SCHEMA.SOURCE_TABLE:TARGET_TABLE)   可选
                     将 SOURCE_TABLE 中的数据导入到TARGET_TABLE 中
REMAP_TABLESPACE    格式(SOURCE_TABLESPACE:TARGET_TABLESPACE)       可选
                 将 SOURCE_TABLESPACE 表空间映射到TARGET_TABLESPACE 表空间中

dexp dimp 应用实例

1.环境准备

导出库:环境为 linux,服务器为 10.0.0.11,用户名和密码均为 SYSDBA。导

出的是 DM 数据库系统安装时自带的名为 BOOKSHOP 的示例库,端口号 5236。

导入库:环境为 linux,服务器为 192.168.0.248,用户名和密码均为 SYSDBA。准

备一个空数据库作为导入库,端口号为 8888。

2. dexp 导出

导出数据库的所有对象(FULL=Y),导出文件为 dexp01.dmp,导出日志为 dexp01.log,

导出文件和日志文件都存放在/emc_2/data/dexp 目录中。

./dexp SYSDBA/SYSDBA@10.0.0.11:5236

FILE=dexp01.dmp

LOG=dexp01.log

DIRECTORY=/emc_2/data/dexp FULL=Y

3. dimp 导入

导入 SYSDBA、OTHER、PERSON 模式中的数据(SCHEMAS=SYSDBA,OTHER,PERSON),导入

文件就是上一步导出的文件 dexp01.dmp,导入日志 dimp02.log 放入/emc_2/data/dimp

目录中。

./dimp SYSDBA/SYSDBA@10.0.0.11:8888

FILE=/emc_2/data/dexp/dexp01.dmp

LOG=dimp02.log DIRECTORY=/emc_2/data/dimp SCHEMAS=SYSDBA,OTHER,PERSON

4. 查看 LOG 日志

如果想了解详细的导出、导入内容统计信息,请查看 LOG 日志 dexp01.log 和

dimp02.log。

升级和降级

从 V8.1.2.69 版本开始,对创建用户口令新增了<加盐选项>。<加盐选项>包含 SALT和 NO SALT,缺省为 NO SALT。 V8.1.2.69 之前的版本都是缺省(NO SALT)的情况。

因此,当遇到下面情景:先导出 V8.1.2.69 之后的口令加盐的库,再导入到V8.1.2.69 之前的口令未加盐的库,将不能成功。解决办法:在导出之前,DBA 先检查待导出库用户口令是否使用了加盐 SALT。 如果是,那么 DBA 需要先使用 ALTER 语句将用户口令调整为 NO SALT,再做导出导入。前后版本的口令都是 NO SALT,操作成功。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值