达梦逻辑备份与还原

达梦逻辑备份与还原
一、前言
1.1概念
逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,即在数据库服务器正常运行过程中进行的备份和还原。
1.2术语
逻辑导出:使用 dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。
逻辑导入:dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。dimp 导入是 dexp 导出的相反过程。

1.3dexp 逻辑导出
dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。备份的内容非常灵活,可以选择是否备份索引、数据行和权限,是否忽略各种约束(外键约束、非空约束、唯一约束等),在备份前还可以选择生成日志文件,记录备份的过程以供查看。
1.3.1 使用 dexp 工具
dexp 工具需要从命令行启动。以数据库软件安装目录为 /dm8/bin 为例,在 /dm8/bin 路径下输入 dexp 和参数后回车。
##语法如下 dexp PARAMETER= { PARAMETER= }
1.3.2参数详解
参数 含义 备注
USERID 数据库的连接信息 必选
FILE 明确指定导出文件名称 可选。如果缺省该参数,则导出文件名为dexp.dmp
DIRECTORY 导出文件所在目录 可选
FULL 导出整个数据库(N) 可选,四者中选其一。缺省为SCHEMAS
OWNER 用户名列表,导出一个或多个用户所拥有的所有对象
SCHEMAS 模式列表,导出一个或多个模式下的所有对象
TABLES 表名列表,导出一个或多个指定的表或者表分区
FUZZY_MATCH TABLES 选项是否支持模糊匹配(N) 可选
QUERY 用于指定对导出表的数据进行过滤的条件 可选
PARALLEL 用于指定导出的过程中所使用的线程数目 可选
TABLE_PARALLEL 用于指定导出每张表所使用的线程数,在MPP模式下会转换成单线程 可选
TABLE_POOL 用于设置导出过程中存储表的缓冲区个数 可选
1.3.3四种级别导出功能
1.3.3.1.FULL
FULL 方式导出数据库的所有对象。Copy##设置 FULL=Y,导出数据库的所有对象,导出数据库文件和日志文件放在路径 /mnt/data/dexp下。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dexp
1.3.3.2 OWNER
OWNER 方式导出一个或多个用户拥有的所有对象。Copy##设置 OWNER=USER01,导出用户 USER01 所拥有的对象全部导出。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log OWNER=USER01 DIRECTORY=/mnt/data/dexp
1.3.3.3 SCHEMAS
SCHEMAS 方式的导出一个或多个模式下的所有对象。Copy##设置 SCHEMAS=USER01,导出模式 USER01 模式下的所有对象。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log SCHEMAS=USER01 DIRECTORY=/mnt/data/dexp
1.3.3.4 TABLES
TABLES 方式导出一个或多个指定的表或表分区。导出所有数据行、约束、索引等信息。Copy##设置 TABLES=table1,table2,导出 table1,table2 两张表的所有数据和信息。和 TABLES 导出有关的参数还有 QUERY、EXCLUDE 和 INCLUDE,都是用来设置过滤条件的。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dexp

二、库级导入导出
2.1准备数据
CREATE TABLE T1(C1 INT);
INSERT INTO T1 VALUES(1);
CREATE USER USER1 IDENTIFIED BY " USER123456";
CREATE TABLE USER1.T2(C1 INT,C2 VARCHAR(20));
INSERT INTO USER1.T2 VALUES(1,‘张三’);
INSERT INTO USER1.T2 VALUES(2,‘李四’);
commit;
在这里插入图片描述
在这里插入图片描述

2.2执行数据库级逻辑导出
./dexp sysdba/Dameng123:5391 full=y file=full_test1.dmp log=full_test1.log

在这里插入图片描述

2.3删除表
drop table t1;
drop table user1.t2;
在这里插入图片描述

2.4执行全数据库逻辑导入
./dimp sysdba/Dameng123:5391 full=y file=full_test1.dmp log=full_test1_02.log

在这里插入图片描述
在这里插入图片描述

出现告警的原因是之前的表存在,本次实验与之无关,忽略警告。

3.2执行模式级逻辑导出
./dexp sysdba/Dameng123:5391 file=dm_moshi.dmp log=dm_moshi.log SCHEMAS=dm_moshi;
在这里插入图片描述

2.5验证
select * from t1;
select * from user1.t2;

在这里插入图片描述

三、模式级导出导入
3.1准备数据
create user dm_moshi IDENTIFIED BY " USER123456";
create schema dm_moshi_test AUTHORIZATION dm_moshi;
/
create table dm_moshi.test(id int, name varchar(20));
INSERT INTO dm_moshi.test VALUES(1,‘张三’);
INSERT INTO dm_moshi.test VALUES(2,‘李四’);
INSERT INTO dm_moshi.test VALUES(3,‘王五’);

查询创建的模式
select b.id userid, b.name username,a.id scheid, a.name schename from SYS.SYSOBJECTS a, SYS.SYSOBJECTS b where a.“TYPE$” = ‘SCH’ and a.pid = b.id;
在这里插入图片描述
在这里插入图片描述

3.3删除表
drop table dm_moshi.test;
在这里插入图片描述

3.4执行模式级逻辑导入
./dimp sysdba/Dameng123:5391 file=dm_moshi.dmp log=imp_dm_moshi.log SCHEMAS=dm_moshi;
在这里插入图片描述

3.5验证
select * from dm_moshi.test;
在这里插入图片描述
在这里插入图片描述

四、用户级导出导入
4.1准备数据
CREATE USER dm_yonghu IDENTIFIED BY “dm_yonghu123456”;
CREATE TABLE dm_yonghu.dm_yonghutbl(C1 INT,C2 VARCHAR(20));
INSERT INTO dm_yonghu.dm_yonghutbl VALUES(3,‘张三’);
INSERT INTO dm_yonghu.dm_yonghutbl VALUES(4,‘李四’);
INSERT INTO dm_yonghu.dm_yonghutbl VALUES(5,‘王五’);
commit;
在这里插入图片描述

4.2执行用户级逻辑导出
./dexp sysdba/Dameng123:5391 file=dm_yonghu.dmp log=dm_yonghu.log OWNER=dm_yonghu;
在这里插入图片描述

4.3删除USER1用户及其对象:
DROP USER dm_yonghu CASCADE;
在这里插入图片描述

4.4创建用户
先创建该用户,再执行导入
CREATE USER dm_yonghu IDENTIFIED BY “dm_yonghu123456”;
在这里插入图片描述

4.5执行用户级逻辑导入
./dimp sysdba/Dameng123:5237 file=dm_yonghu.dmp log=imp_dm_yonghu.logg OWNER=dm_yonghu;
在这里插入图片描述

4.6验证
在这里插入图片描述

五、表级导出导入
5.1准备数据
CREATE USER dm_table IDENTIFIED BY “dm_table123456”;
CREATE TABLE dm_table.dm_tabletbl(C1 INT,C2 VARCHAR(20));
INSERT INTO dm_table.dm_tabletbl VALUES(3,‘张三’);
INSERT INTO dm_table.dm_tabletbl VALUES(4,‘李四’);
INSERT INTO dm_table.dm_tabletbl VALUES(5,‘王五’);
commit;
select * from dm_table.dm_tabletbl;
在这里插入图片描述
在这里插入图片描述

5.2执行表级逻辑导出
./dexp sysdba/Dameng123:5391 file=tab_tabletbl.dmp log=tab_tabletbl.log TABLES=dm_table.dm_tabletbl;
在这里插入图片描述

5.3删除表
drop table dm_table.dm_tabletbl;
在这里插入图片描述

5.4执行表级逻辑导入
./dimp sysdba/Dameng123:5391 file=tab_tabletbl.dmp log=imp_tab_tabletbl.log tables=dm_table.dm_tabletbl;
在这里插入图片描述

5.5验证
select * from dm_table.dm_tabletbl ;
在这里插入图片描述

六、dexpdp,dimpdp使用
6.1.创建目录
create directory direct as ‘/home/direct’;
在这里插入图片描述

6.2创建测试用户
create user tt identified by passwordfortt;
在这里插入图片描述

6.3赋权
grant create session to tt;
grant resource to tt;
grant read,write on directory direct to tt;
在这里插入图片描述

6.4创建测试表插入数据
create table test (id number(10),name varchar2(10));
insert into test values (1,‘jack’);
insert into test values (2,‘lucy’);
insert into test values (3,‘scott’);
Commit;

在这里插入图片描述在这里插入图片描述

6.5导出test表数据
./dexpdp tt/passwordfortt:5391 directory=/home/direct file=test.dmp log=test.log tables=tt.test
dexpdp V8

在这里插入图片描述

6.6删除test表
drop table test;
在这里插入图片描述

6.7导入数据
./dimpdp tt/passwordfortt:5391 directory=/home/direct file=test.dmp log=impdp_test.log
在这里插入图片描述

6.8验证
在这里插入图片描述

七、补充跨模式跨用户导入导出
7.1表级别的跨模式导入
7.1.1准备数据
create user tbl_kua_moshi IDENTIFIED BY " USER123456";
create schema tbl_kua_moshi AUTHORIZATION tbl_kua_moshi;
create table tbl_kua_moshi.test1(id int, name varchar(20));
INSERT INTO tbl_kua_moshi.test1 VALUES(1,‘张三’);
INSERT INTO tbl_kua_moshi.test1 VALUES(2,‘李四’);
INSERT INTO tbl_kua_moshi.test1 VALUES(3,‘王五’);
select a.name as username, b.name as schenma from sysobjects a inner join sysobjects b on a.id = b.pid where b.subtype$ is null order by username desc;
在这里插入图片描述
在这里插入图片描述

7.1.2表级别跨模式导出
./dexp sysdba/Dameng123:5391 file=tbl_kua_moshi.dmp log=tbl_kua_moshi.log tables=tbl_kua_moshi.test1
在这里插入图片描述

7.1.2新建模式
create schema new_tbl_kua_moshi AUTHORIZATION tbl_kua_moshi;
/
在这里插入图片描述

7.1.3表级别跨模式导入
./dimp sysdba/Dameng123:5391 file=tbl_kua_moshi.dmp log=imp.log tables=tbl_kua_moshi.test1 REMAP_SCHEMA=tbl_kua_moshi:new_tbl_kua_moshi
在这里插入图片描述

7.1.4验证
在这里插入图片描述

7.2模式级别的跨模式导入导出
7.2.1删除之前表
在这里插入图片描述

7.2.2模式级别的跨模式导出
./dexp sysdba/Dameng123:5391 file=kuamoshi.dmp log=kuamoshi.log SCHEMAS=tbl_kua_moshi
在这里插入图片描述

7.2.3模式级别的跨模式导入
./dimp sysdba/Dameng123:5391 file=kuamoshi.dmp log=kuamoshid.log SCHEMAS=tbl_kua_moshi REMAP_SCHEMA=tbl_kua_moshi:new_tbl_kua_moshi
在这里插入图片描述

7.2.4验证

在这里插入图片描述

7.3用户级别的跨用户导入
7.3.1准备数据
create user tbl_kua_yonghu IDENTIFIED BY " USER123456";
create user new_tbl_kua_yonghu IDENTIFIED BY " USER123456";
create table tbl_kua_yonghu.test1(id int, name varchar(20));
INSERT INTO tbl_kua_yonghu.test1 VALUES(1,‘张三’);
commit;
select * from tbl_kua_yonghu.test1;
!](https://img-blog.csdnimg.cn/direct/5a108c38b5f84a2cad9d3563fd35ccf1.png)

7.3.2用户级别的跨用户导出
./dexp sysdba/Dameng123:5391 file=SAMPLE.dmp log=DMETL_SAMPLE.log owner=tbl_kua_yonghu
在这里插入图片描述

7.3.3用户级别的跨用户导入
./dimp sysdba/Dameng123:5391 file=SAMPLE.dmp log=1cDMETL_SAM32PLE.log fromuser=tbl_kua_yonghu touser=new_tbl_kua_yonghu
在这里插入图片描述

7.3.4验证
在这里插入图片描述

有任何疑问请访问达梦官方网站:https://eco.dameng.com

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,可以使用数据库提供的备份还原方法来进行数据库备份。根据引用\[1\]和引用\[2\]的内容,有以下几种备份还原方法可供选择: 方法一:最简单最稳妥的数据备份还原方法 1. 停止"DmServiceDMSERVER"服务(即冷备)。 2. 复制生产库的"D:\dmdbms\data\DAMENG"文件夹。 3. 将复制的文件夹粘贴到备份服务器的"D:\dmdbms\data"目录下,覆盖原有的"DAMENG"文件夹。 方法二:常规使用的备份还原方法 1. 配置数据库的归档模式,确保数据库处于归档模式下。 2. 使用数据库管理员账户登录数据库,进行备份操作。 方法三:逻辑备份还原 1. 创建用户。 2. 进行全库备份还原,可以导入到自己的账户或其他账户。 3. 进行模式导出和导入。 4. 进行表的导出和导入。 方法四:联机备份还原 1. 进行数据库级别备份还原。 2. 进行表空间级别备份还原。 3. 进行表级别备份还原。 方法五:脱机备份还原 1. 进行数据库级别备份还原。 2. 进行表空间级别备份还原。 3. 进行表级别备份还原。 以上是一些常用的Java数据库备份还原方法,具体使用哪种方法取决于你的需求和环境。 #### 引用[.reference_title] - *1* [DM数据库--备份还原三种方法](https://blog.csdn.net/zfang9528/article/details/106202926)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [9、数据库 备份 还原](https://blog.csdn.net/u013736117/article/details/127324317)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值