达梦备份之逻辑导出导入

达梦备份之逻辑导出导入

一、 概念

    逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实 现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,(联机方式是指数据库服务器正常运行过程中进行的备份和还原)。dexp 和 dimp 是 DM 数据库自带 的工具,只要安装了 DM 数据库,就可以在安装目录/dmdbms/bin 中找到。 

逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四 种级别独立互斥,不能同时存在。
四种级别所提供的功能:
 数据库级(FULL):导出或导入整个数据库中的所有对象。
 用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
 模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
 表级(TABLES):导出或导入一个或多个指定的表或表分区。
dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备 份。
本地:./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp DIRECTORY=/mnt/dexp/data LOG=db_str.log FULL=Y
远程:./dexp USERID=SYSDBA/SYSDBA@192.168.0.248:8888 FILE=db_str.dmp DIRECTORY=/mnt/dexp/data LOG=db_str.log FULL=Y
---------------------------dexp------------------------------------

dexp 工具名称有两种写法 dexp 和 dexpdp。两者语法完全相同。唯一的区别在于, dexp 导出的文件必须存放在客户端,dexpdp 导出的文件必须存放在服务器端。
二、 参数

     1、PARFILE

dexp PARFILE=dexp.par
参数文件名,如果 dexp 的参数很多,可以存成参数 文件
例如:
dexp USERID=SYSDBA/SYSDBA@192.168.1.102:5236 PARFILE=dexp.par
[dmdba@localhost ~]$ cat dexp.par
DIRECTORY=/home/dmdba/dump
file=dmoa.dmp
log=dmoa.log
full=y

      2、help

[dmdba@zb020-146-10 ~]$ dexp help

dexp V8
格式: ./dexp  KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
例如: ./dexp  SYSDBA/SYSDBA GRANTS=Y TABLES=(SYSDBA.TAB1,SYSDBA.TAB2,SYSDBA.TAB3)
USERID 必须是命令行中的第一个参数
关键字              		说明(默认值)
USERID              	用户名/口令:USER/PWD
FILE                	导出文件 (dexp.dmp)
DIRECTORY           	导出文件所在目录
FULL                	整库导出 (N)
OWNER               	以用户方式导出 格式 (user1,user2,...)
SCHEMAS             	以模式方式导出 格式 (schema1,schema2,...)
TABLES              	以表方式导出 格式 (table1,table2,...)
FUZZY_MATCH         	TABLES选项是否支持模糊匹配 (N)
QUERY               	用于导出表的子集的select 子句
PARALLEL            	用于指定导出的过程中所使用的线程数目
TABLE_PARALLEL      	用于指定导出的过程中表内的并发线程数目,MPP模式下会转换成单线程
TABLE_POOL          	用于指定表的缓冲区个数
EXCLUDE             	忽略指定的对象 
                    	   格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or
                    	        EXCLUDE=TABLES:table1,table2 or
                    	        EXCLUDE=SCHEMAS:sch1,sch2 
INCLUDE             	包含指定的对象 
                    	   格式 INCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or 
                    	        INCLUDE=TABLES:table1,table2
CONSTRAINTS         	导出约束 (Y)
TABLESPACE          	导出对象带有表空间 (N)
GRANTS              	导出权限 (Y)
INDEXES             	导出索引 (Y)
TRIGGERS            	导出触发器 (Y)
ROWS                	导出数据行 (Y)
LOG                 	屏幕输出的日志文件
NOLOGFILE           	不使用日志文件(N)
NOLOG               	屏幕上不显示日志信息(N)
LOG_WRITE           	日志信息实时写入文件: 是(Y),否(N)
DUMMY               	交互信息处理: 打印(P), 所有交互都按YES处理(Y),NO(N) 
PARFILE             	参数文件名
FEEDBACK            	每 x 行显示进度 (0)
COMPRESS            	导出数据是否压缩 (N)
ENCRYPT             	导出数据是否加密 (N)
ENCRYPT_PASSWORD    	导出数据的加密密钥
ENCRYPT_NAME        	加密算法的名称
FILESIZE            	每个转储文件的最大大小
FILENUM             	一个模板可以生成的文件数
DROP                	导出后删除原表,但不级联删除 (N)
DESCRIBE            	导出数据文件的描述信息,记录在数据文件中
LOCAL               	MPP模式下登录使用MPP_LOCAL方式(N)
HELP                	打印帮助信息

3、针对说明

•	FUZZY_MATCH         TABLES 选项是否支持模糊匹配(N)
例:
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=OTHER.R% FUZZY_MATCH=Y
•	QUERY               	用于导出表的子集的select 子句
例:导出 OTHER.READER 表中满足"WHERE AGE=19"条件的数据。 
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=OTHER.READER QUERY="WHERE AGE=19"
•	TABLE_PARALLEL      	用于指定导出的过程中表内的并发线程数目
TABLE_PARALLEL 用于指定导出每张表所使用的线程数。可选参数,缺省为单线程。 如果 CPU 核数为 N 的话,那一般来说 TABLE_PARALLEL 为 N 或者 N+1 最合适。在 MPP 模 式下会转换成单线程。
列如:
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dexp TABLE_PARALLEL=3
•	TABLE_POOL          	用于指定表的缓冲区个数
TABLE_POOL 用于设置导出过程中存储表数据的缓冲区个数。可选参数。 语法如下: TABLE_POOL= :存储表数据的缓冲区个数。缺省值为 1。整数类型,取值范围:1-20。 
提示:TABLE_PARALLEL 固定的情况下,导出时间随着 TABLE_POOL 个数的增 加而减少。当 TABLE_POOL 稍大于 TABLE_PARALLEL 时结果为最优。

•	TABLESPACE          	导出对象带有表空间 (N)

Tablespace=n

[dmdba@localhost dump]$ strings 1.dmp |more
AES256_ECB
1-2-18-21.11.11-150669-10013-ENT  Pack16
DM_TEST
DM_TESTo
CREATE TABLE "DM_TEST"
"NAME" VARCHAR(128),
"ID" INT,
"SCHID" INT,
"TYPE$" VARCHAR(10),
"SUBTYPE$" VARCHAR(10),
"PID" INT,
"VERSION" INT,
"CRTDATE" DATETIME(6),
"INFO1" INT,
"INFO2" INT,
"INFO3" BIGINT,
"INFO4" BIGINT,
"INFO5" VARBINARY(128),
"INFO6" VARBINARY(2048),
"INFO7" BIGINT,
"INFO8" VARBINARY(1024),
"VALID" CHAR(1)) STORAGE(CLUSTERBTR) ;

Tablespace=y

[dmdba@localhost dump]$ strings 2.dmp |more
AES256_ECB
1-2-18-21.11.11-150669-10013-ENT  Pack16
DM_TEST
DM_TEST
CREATE TABLE "DM_TEST"
"NAME" VARCHAR(128),
"ID" INT,
"SCHID" INT,
"TYPE$" VARCHAR(10),
"SUBTYPE$" VARCHAR(10),
"PID" INT,
"VERSION" INT,
"CRTDATE" DATETIME(6),
"INFO1" INT,
"INFO2" INT,
"INFO3" BIGINT,
"INFO4" BIGINT,
"INFO5" VARBINARY(128),
"INFO6" VARBINARY(2048),
"INFO7" BIGINT,
"INFO8" VARBINARY(1024),
"VALID" CHAR(1)) STORAGE(ON "TS_DMOA_DATA", CLUSTERBTR) ;

•	rows
例如,设置 ROWS=N 不导出表中的数据。
 ./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp NOLOGFILE=Y FULL=Y DIRECTORY=/mnt/data/dexp ROWS=N

•	LOG_WRITE           	日志信息实时写入文件: 是(Y),否(N)

LOG_WRITE 用于日志信息实时写入日志文件。可选参数。 
语法如下: LOG_WRITE=Y/N
 Y:一边将日志内容打印到屏幕上,一边将日志内容写入日志文件。 
N 或缺省参数:日志内容先在屏幕上全部打印完毕再写入日志文件。

•	FEEDBACK
FEEDBACK 用来指明在导出数据的过程中每间隔多少行打印一次进度信息。可选参数。 当参数缺省时,默认为 0,只打印导出表的总行数。
例如,将整个数据库导出到文件 dexp.dmp 中,并且在导出的过程中每隔 100 行打印 一次进度信息。
[dmdba@localhost dump]$ dexp USERID=SYSDBA/SYSDBA@192.168.1.102:5236 file=1.dmp log=1.log tables=dmoa.dm_test feedback=100000^C
[dmdba@localhost dump]$ 
[dmdba@localhost dump]$ more 1.log 
dexp V8---- [2022-07-12 15:50:56]export table:DM_TEST -----
the privilege of the object at the export mode...
export-table[DM_TEST]'s data rows [100000]
export-table[DM_TEST]'s data rows [200000]
export-table[DM_TEST]'s data rows [300000]
export-table[DM_TEST]'s data rows [400000]
export-table[DM_TEST]'s data rows [500000]
export-table[DM_TEST]'s data rows [600000]

•	DESCRIBE            	导出数据文件的描述信息,记录在数据文件中
  
在使用 dexpdp 和 dimpdp 时,DIRECTORY 参数支持使用在服务器端通过 CREATE DIRECTORY 定义的目录名。 例如,先在服务器端创建名为GYFDIR的目录,再使用该目录进行导出。
 --先连接上远程的数据库服务器 192.168.1.60:5236 disql.exe SYSDBA/SYSDBA@192.168.1.60:5236 
--在远程服务器上创建目录 CREATE OR REPLACE DIRECTORY "GYFDIR" AS 'E:\test\path';
 --使用 dexpdp 导出文件 dexpdp.exe USERID=SYSDBA/SYSDBA@192.168.1.60:5236 FILE=dexpDP.dmp LOG=dexpDP.log FULL=Y DIRECTORY=GYFDIR

一般情况下,OWNER 与 SCHEMAS 导入导出是相同的。 
但是用户可以包含多个模式,在这种情况下 SCHEMAS 的导入导出是 OWNER 导入导出的一个子集。

---------------------------dimp------------------------------------

    dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻 辑还原。dimp 导入是 dexp 导出的相反过程。还原的方式可以灵活选择,如是否忽略对象 存在而导致的创建错误、是否导入约束、是否导入索引、导入时是否需要编译、是否生成日 志等。 dimp 工具名称有两种写法 dimp 和 dimpdp。两者语法完全相同。唯一的区别在于, dimp 导入的文件必须存放在客户端,dimpdp 导入的文件必须存放在服务器端。
关键字 	 说明(默认值)
USERID                 	用户名/口令 格式:{<username>[/<password>] | /}[@<connect_identifier>][<option>] [<o
                       	<connect_identifier> : [<svc_name> | host[:port] | <unixsocket_file>]
                       	<option> : #{<exetend_option>=<value>[,<extend_option>=<value>]...}
                       	           --此行外层{}是为了封装参数之用,书写时需要保留
                       	<os_auth> : AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}
FILE                   	导入文件名称 (dexp.dmp)
DIRECTORY              	导入文件所在目录
FULL                   	整库导入 (N)
OWNER                  	以用户方式导入 格式 (user1,user2,...)
SCHEMAS                	以模式方式导入 格式 (schema1,schema2,...)
TABLES                 	以表名方式导入 格式(table1,table2,...)
PARALLEL               	用于指定导入的过程中所使用的线程数目
TABLE_PARALLEL         	用于指定导入的过程中每个表所使用的子线程数目,在FAST_LOAD为Y时有效
IGNORE                 	忽略创建错误 (N)
TABLE_EXISTS_ACTION    	需要的导入表在目标库中存在时采取的操作[SKIP | APPEND | TRUNCATE | REPLACE]
FAST_LOAD              	是否使用dmfldr来导数据(N)
FLDR_ORDER             	使用dmfldr是否需要严格按顺序来导数据(Y)
COMMIT_ROWS            	批量提交的行数(5000)
EXCLUDE                	忽略指定的对象 格式 
                       	    格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS)
GRANTS                 	导入权限 (Y)
CONSTRAINTS            	导入约束 (Y)
INDEXES                	导入索引 (Y)
TRIGGERS               	导入触发器 (Y)
ROWS                   	导入数据行 (Y)
LOG                    	指定日志文件
NOLOGFILE              	不使用日志文件(N)
NOLOG                  	屏幕上不显示日志信息(N)
LOG_WRITE              	日志信息实时写入文件(N): 是(Y),否(N)
DUMMY                  	交互信息处理(P): 打印(P), 所有交互都按YES处理(Y),NO(N) 
PARFILE                	参数文件名
FEEDBACK               	每 x 行显示进度 (0)
COMPILE                	编译过程, 程序包和函数... (Y)
INDEXFILE              	将表的索引/约束信息写入指定的文件
INDEXFIRST             	导入时先建索引(N)
REMAP_SCHEMA           	格式(SOURCE_SCHEMA:TARGET_SCHEMA)
                       	将SOURCE_SCHEMA中的数据导入到TARGET_SCHEMA中 
ENCRYPT_PASSWORD       	数据的加密密钥
ENCRYPT_NAME           	加密算法的名称
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)
HELP                   	打印帮助信息

TABLE_EXISTS_ACTION 
用于要导入的表已经存在时的处理方式。默认为直接报错。 
语法如下: TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE] 
SKIP:跳过此表。
 APPEND:直接向现有表中导入数据。 
TRUNCATE:先删除现有表中的数据,再向表中导入数据。 
REPLACE:先删除现有表,再导数据。

REMAP_SCHEMA
将源模式中的数据导入到目标模式中。可选参数。
例如,将 SYSDBA 模式中的数据导入到 PRERSON 模式中。
 ./dimp SYSDBA/SYSDBA FILE=/mnt/data/dexp/imp_exp.dmp DIRECTORY=/mnt/data/dimp FULL=Y REMAP_SCHEMA=SYSDBA:PERSON

无 REMAP_TABLESPACE


SHOW/DESCRIBE
SHOW/DESCRIBE 用于设置是否打印 dexp 导出的数据文件的内容列表。可选参数。
例如,想查看/mnt/data/dexp/中 db_str.dmp 文件的内容列表。

三、 举例

--------------------------------导出文件列表信息-------------------------------- 
共包含 1 个文件,文件如下: ./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp SHOW=Y 
导出文件为 FULL 方式导出,共包含以下 7 个模式 模式 PERSON 含有 4 个表,分别为: ADDRESS ADDRESS_TYPE PERSON PERSON_TYPE 
模式 PRODUCTION 含有 7 个表,分别为: PRODUCT_CATEGORY PRODUCT_SUBCATEGORY PRODUCT LOCATION PRODUCT_INVENTORY PRODUCT_ REVIEW PRODUCT_VENDOR
 模式 PURCHASING 含有 5 个表,分别为: VENDOR VENDOR_ADDRESS VENDOR_PERSON PURCHASEORDER_HEADER PURCHASEORDER_DETAIL
 模式 RESOURCES 含有 4 个表,分别为: DEPARTMENT EMPLOYEE EMPLOYEE_ADDRESS EMPLOYEE_DEPARTMENT
 模式 SALES 含有 5 个表,分别为: CUSTOMER CUSTOMER_ADDRESS SALESPERSON SALESORDER_HEADER SALESORDER_DETAIL 
模式 SYSDBA 含有 1 个表,分别为: TAB1 模式 OTHER 含有 10 个表,分别为: DEPARTMENT EMPSALARY ACCOUNT ACTIONS READER READERAUDIT DEPTT

更多资讯请上达梦技术社区了解:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值