Skip to content

二、DBeaver备份还原

Saorionesan edited this page Oct 15, 2021 · 2 revisions

二、DBeaver备份还原

原生DBeaver还原功能较弱,在此基础上拓展了备份还原功能。

当前DBeaver 支持以下数据库备份还原:MySQL、Oracle、SQL server、DM、瀚高、人大金仓、Oscar、Clickhouse

注意:Oracle、SQL server、Clickhouse备份生成的文件只有DBeaver可以还原

注意:Windows机器请尽量使用exe包进行安装,否则部分备份还原功能将无法使用

1. MySQL备份还原

1.1 MySQL备份

  1. 在要备份的数据库右击选择工具,点击导出数据库

    mysql1

  2. 设置备份参数,点击导出按钮

    mysql2

  3. 等待导出完成

    mysql3

1.2 MySQL还原

  1. 在要备份的数据库上右击,点击导入数据库

    mysql3

  2. 点击开始进行导入

    mysql4

  3. 等待导入完成

    mysql5

2. Oracle数据库备份还原

Oracle、SQL server、Clickhouse备份还原操作方法大致相同此处只演示Oracle

如果数据库大小超过10G以上建议走原生的备份方式

2.1 Oracle数据库备份

  1. 在要备份的模式上右键,点击导出

    oracle1

  2. 直接点击开始即可进行导出,一般选择默认配置即可

    oracl2

  3. 等待导出完成

    oracle3

2.2 Oracle数据库还原

注意;还原前请保证当前模式对其表空间有写入权限,否则将导入失败

  1. 在需要导入的模式上右键,点击导入

    导入前如果没有权限请先执行这条SQL语句: ALTER USER TEST(模式名) QUOTA UNLIMITED ON USERS(该模式所属表空间名)

oracle4

  1. 选择备份文件,点击导入

    oracle5

  2. 等待还原完成

oracle6

FAQ: 如果出现java.io.StreamCorruptedException: invalid stream header: 00000000这种报错, 极有可能是备份文件前面数据为空,但是输入流仍然读取了数据。可以使用下面代码来读取备份文件进行测试:

        byte[] bytes=new byte[1024*1024*100]; //读取前100M
        File file =new File("C:\\Users\\surive\\Desktop\\test.edb");
        InputStream inputStream=new BufferedInputStream(new FileInputStream(file),100000);
        inputStream.read(bytes);
        System.out.println(new String(bytes));

3. DM 数据库备份还原

Oscar、DM、瀚高、人大金仓备份还原方式大致相同,此处只演示DM的备份还原

3.1 DM 数据库备份

  1. 在要导出的模式上右键,点击备份

    DM1

  2. 直接使用默认配置即可导出

DM2

  1. 等待备份完成

DM3

3.2 DM数据库还原

  1. 在需要导入的模式上右键点击导入

    DM4

  2. 设置导入参数,点击导入

    DM5

  3. 等待还原完成

    DM6