DM 逻辑导出(dexp)和导入(dimp)
-
简介
DM数据库支持两种备份方式:逻辑备份和物理备份。
逻辑备份是指利用dexp导出工具,将指定对象(库级、模式级、表级)的数据导出到文件的备份方式。逻辑备份针对的是数据内容,并不关心这些数据物理存储在什么位置。
物理备份是指直接扫描数据库文件,找出那些已经分配、使用的数据页,拷贝并保存到备份集中。物理备份过程中,不关心数据页的具体内容是什么,也不关心数据页属于哪一张表,只是简单的根据数据库文件系统的描述,来挑选有效的数据页。
-
部署环境
表2‑1 部署环境
系统版本 |
Centos7.9 |
CPU型号 |
Intel(R) i5-7200U CPU (2核) |
磁盘空间 |
40G |
内存大小 |
2G |
表2‑2 磁盘规划
数据 |
/dev/mapper/vg_dm-lv_dmdata |
备份 |
/dev/mapper/vg_dm-lv_dmbak |
归档 |
/dev/mapper/vg_dm-lv_arch |
表2‑3 目录规划
数据库软件安装目录 |
/home/dmdba/dmdbms |
实例安装目录 |
/dmdata |
归档存放目录 |
/dmdata/arch |
备份存放目录 |
/dmdata/dmbak/ |
-
逻辑导出(dexp)和导入(dimp)
-
逻辑备份还原
-
逻辑导入导出即是逻辑备份还原,是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。
逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对DM数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原。dexp和dimp是DM数据库自带的工具,只要安装了DM数据库,就可以在安装目录/dmdbms/bin中找到。
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。四种级别所提供的功能:
数据库级(FULL):导出或导入整个数据库中的所有对象。
用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
表级(TABLES):导出或导入一个或多个指定的表或表分区。
-
dexp逻辑导出
dexp工具可以对本地或者远程数据库进行数据库级,用户级、模式级和表级的逻辑备份。备份的内容非常灵活,可以选择是否备份索引、数据行和权限,是否忽略各种约束(外键约束、费控约束、唯一约束等),在备份时还可以选择生成日志文件,记录备份的过程以供查看。
dexp工具名称有两种写发dexp和dexpdp,两者语法完全相同,区别在于:dexp导出的文件必须在客户端,dexpdp导出的文件必须存放在服务器端。
-
dimp逻辑导入
dimp逻辑导入工具利用dexp工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。dimp导入是dexp导出的相反过程。还原的方式可以灵活选择,如是否忽略对象存在而导致的创建错误、是否导入约束、是否导入索引、导入时是否需要编译、是否生成日志等。
dimp工具名称有两种写法dimp和dimpdp。两者语法完全相同。唯一的区别在于,dimp导入的文件必须存放在客户端,dexpdp导入的文件必须存放在服务器端。
-
dimp的使用
例如,将用户名和密码均为SYSDBA,IP地址为192.168.254.144,端口号为5236的数据库采FULL方式完全导出。导出文件名为dmdb1.dmp,导出的日志文件名为 dmdb1.log,导出文件的路径为/home/dmdba
./dexp userid=SYSDBA/'"SYSDBA"'@192.168.254.144:5236 directory=/home/dmdba file=dmdb1.dmp log=dmdb1.log full=y |
3-1导入成功
-
dexp的使用
将上方逻辑备份的dmp文件采用FULL方式完全导入到用户名和密码为SYSDBA,IP地址为192.168.254.144,端口号为5237的数据库。导入文件名为dmdb1.dmp,导入的日志文件名为dmdb2.log,导入路径为/home/dmdba
./dimp userid=SYSDBA/'"SYSDBA"'@192.168.254.144:5237 directory=/home/dmdba file=dmdb1.dmp log=dmdb2.log FULL=Y |
3-2导入成功
-
四种导出导入级别
针对数据库对象,有 FULL、OWNER、SCHEMAS、TABLES 四种导出方式可供选择。一次导出只能指定一种方式。可选参数,缺省为 SCHEMAS。
-
FULL
FULL 方式导出数据库的所有对象,例如,设置 FULL=Y,导出数据库的所有对象,导出数据库文件和日志文件放在路径/home/dmdba下。
./dexp USERID=SYSDBA/SYSDBA FILE=dmdb.dmp LOG=dmdb.log FULL=Y DIRECTORY=/home/dmdba |
设置 FULL=Y,导入整个数据库,导入的数据库文件在/home/dmdba,即将生成的日志文件放在/home/dmdba/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=//home/dmdba/dmdb.dmp LOG=dbdm.log FULL=Y DIRECTORY=/home/dmdba/dimp |
-
OWNER
OWNER 方式导出一个或多个用户拥有的所有对象,例如,设置 OWNER=USER01,导出用户 USER01 所拥有的对象全部导出。
./dexp USERID=SYSDBA/SYSDBA FILE=dmdb.dmp LOG=dmdb.log OWNER=USER01 DIRECTORY=/home/dmdba |
设置 OWNER=USER01,导入用户 USER01 所拥有的对象全部导出。导入的数据库文件在/home/dmdba,即将生成的日志文件放在/home/dmdba/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/home/dmdba/dmdb.dmp LOG=dmdb.log OWNER=USER01 DIRECTORY=/home/dmdba/dimp |
-
SHEMAS
SCHEMAS 方式的导出一个或多个模式下的所有对象,例如,设置 SCHEMAS=USER01,导出模式 USER01 模式下的所有对象。
./dexp USERID=SYSDBA/SYSDBA FILE=dmdb.dmp LOG=dmdb.log SCHEMAS=USER01 DIRECTORY=/home/dmdba |
设置 SCHEMAS=USER01,导入模式 USER01 模式下的所有对象。导入的数据库文件在/home/dmdba,即将生成的日志文件放在/home/dmdba/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/home/dmdba/dmdb.dmp LOG=dmdb.log SCHEMAS=USER01 DIRECTORY=/home/dmdba /dimp |
-
TABLES
TABLES方式导出和导入一个或多个指定的表或表分区。导出所有数据行、约束、索引等信息。和TABLES导入有关的参数还有EXCLUDE,用来指定导入时过滤掉某类对象。例如,设置TABLES=table1,table2,导出table1,table2两张表的所有数据和信息。
./dexp USERID=SYSDBA/SYSDBA FILE=dmdb.dmp LOG=dmdb.log TABLES=table1,table2 DIRECTORY=/home/dmdba |
设置 TABLES=table1,table2,导入 table1,table2 两张表的所有数据和信息。导入的数据库文件在/home/dmdba,即将生成的日志文件放在/home/dmdba/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/home/dmdba/dmdb.dmp LOG=dmdb.log TABLES=table1,table2 DIRECTORY=/home/dmdba/dimp |
技术社区地址:https://eco.dameng.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示