mysqlnavicat数据库备份与恢复_DM8 数据库备份和恢复

本文详述了DM8数据库的逻辑备份与恢复,包括dexp/dimp工具的使用,如全库、模式、表备份及不同情况下的恢复策略。此外,还探讨了RMAN的物理备份和恢复操作,但遇到部分问题,如表空间恢复未成功。
摘要由CSDN通过智能技术生成

DM8 数据库备份和恢复

本文主要介绍数据库的备份和恢复。

  1. dexp/dimp逻辑备份

总体来说和oracle exp/imp expdp/impdp比较接近,并有融合。

dexp参数如下

b96b5d9712c950f1abbe884de2231ce3.png

dimp参数如下

5d80e69bec847ddbce9bd2c2de30fd1e.png
  1. 创建测试模式和表

SQL> create user test identified by "Abc12345Abc";

SQL> create table test.a(id int,content varchar(20));

SQL> insert into test.a values(1,'a');

SQL> insert into test.a values(2,'b');

SQL> insert into test.a values(3,'c');

SQL> commit;

  1. dexp备份测试

全库备份:

dexp sysdba/xxxxxxx directory=/opt/dexp file=full.dmp log=full.log full=y

模式备份

dexp sysdba/xxxxxxx directory=/opt/dexp file=test.dmp log=test.log schemas=test,dmhr

表备份:

dexp sysdba/xxxxxxx directory=/opt/dexp file=a.dmp log=a.log tables=test.a,dmhr.region

模式不含数据备份:

dexp sysdba/xxxxxxx directory=/opt/dexp file=a_no_data.dmp log=a_no_data.log schemas=test ROWS=n

5f7f8b35c0d1ce8d5f45052341b73676.png

以上均成功

  1. dimp恢复测试

3.1 单表仅导入数据测试:
初始数据:

a5ceb269806fa8ac98c9e4d78f61493b.png

dimp sysdba/dmdba123 directory=/opt/dexp file=full.dmp log=a_a.log tables=test.a table_exists_action=append

结果数据:

bc6c53d2f44280944de2d6c8f69e6991.png

注意:含有唯一约束将无法导入数据。

dimp sysdba/dmdba123 directory=/opt/dexp file=full.dmp log=a_t.log tables=test.a table_exists_action=truncate

结果数据:

a5ceb269806fa8ac98c9e4d78f61493b.png

dimp sysdba/dmdba123 directory=/opt/dexp file=full.dmp log=a_r.log tables=test.a table_exists_action=replace

a5ceb269806fa8ac98c9e4d78f61493b.png
  1. 单表删除导入表结构测试

SQL> drop table test.a;

dimp sysdba/dmdba123 directory=/opt/dexp file=full.dmp log=imp_a_no_data.log tables=test.a rows=n

93003bf7d6ce411b9f96c6827da8b795.png
  1. 单表导入表数据测试

dimp sysdba/dmdba123 directory=/opt/dexp file=full.dmp log=imp_a_data.log tables=test.a ignore=y

a5ceb269806fa8ac98c9e4d78f61493b.png

注:需要ignore=y,否则无法正常导入数据。

  1. 单模式导入

SQL> drop user test;

3c43cc6a8969d3a159012633ada9f43f.png

SQL> create user test identified by "Abc12345Abc";

dimp sysdba/dmdba123 directory=/opt/dexp file=full.dmp log=imp_test.log schemas=test

e639d98f1d7ae0c89881edbf9f386aa3.png

a5ceb269806fa8ac98c9e4d78f61493b.png
  1. remap_schema导入

dimp sysdba/dmdba123 directory=/opt/dexp file=full.dmp log=imp_testb.log schemas=test remap_schema=test:testb table_exists_action=skip

这个测试,无论是否手动创建testb模式,都无法remap成功,限于时间日后继续测试。

  1. 小结:

dexp/dimp主要选取了我司日常运维中较为常用的一些场景,除remap_schema导入没有成功,其他均能成功。

  1. 联机热备与恢复
  2. 开启归档模式

SQL> alter database mount;

不同于oracle,可以直接在open状态改变到mount状态

SQL> alter database add archivelog 'type=local,dest=/opt/dm8/data/arch,file_size=64,space_limit=0';

SQL> alter database archivelog;

查看的相关命令

SQL> alter database open;

SQL> select name,status$,ARCH_MODE from v$database;

SQL> select * from v$dm_arch_ini;

  1. 备份

全库备份

SQL> backup database full backupset '/opt/rman/full_bak_20200903';

增量备份

SQL> backup database increment backupset '/opt/rman/full_bak_20200904_i';

归档备份

SQL> backup archivelog all backupset '/opt/rman/arch_20200904';

表备份

SQL> backup table "TEST"."A" backupset '/opt/rman/test_a';

表空间备份

SQL> backup tablespace "MAIN" full backupset '/opt/rman/tbs_MAIN';

3bb8f7e52dbe841a8143ab54c69511ff.png
  1. 通过全备实现不完全恢复

3.1 停止数据库服务

service DmServiceDMSERVER stop

  1. 物理备份数据库

cd /opt/dm8/

mv data data.ok

cp –r data.ok data

登录到dmrman进行恢复,步骤如下:

RMAN> restore database to '/opt/dm8/data/DAMENG' OVERWRITE FROM BACKUPSET '/opt/rman/full_bak_20200903';

RMAN> RECOVER DATABASE '/opt/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/rman/full_bak_20200903' DEVICE TYPE disk;

RMAN> RECOVER DATABASE '/opt/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC;

0f00eac06fcce9d0d083c15bd1c29cf7.png
  1. 启动数据库

service DmServiceDMSERVER start

数据库启动正常,9月3日的备份中尚未创建TEST模式,符合预期。

d9e56f02d0c391964c1ed36c8d97b02c.png
  1. 通过增量备份实现不完全恢复

4.1 停止数据库

service DmServiceDMSERVER stop

  1. 从增量备份恢复数据库

登录到dmrman进行恢复,步骤如下:

RMAN> restore database to '/opt/dm8/data/DAMENG' OVERWRITE FROM BACKUPSET '/opt/rman/full_bak_20200904_i';

RMAN> RECOVER DATABASE '/opt/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/rman/full_bak_20200904_i' DEVICE TYPE disk;

RMAN> RECOVER DATABASE '/opt/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC;

增量备份可以找到之前的20200903的完整备份,被由这2个备份恢复了数据库

f01a4c2b3fb168ef67d15f5fbfad7baf.png
  1. 启动数据库

service DmServiceDMSERVER start

数据库启动正常,在9月4日的备份中已经存在test.a这张表,符合预期。

3d4929fed27331efaae69e179bd11668.png
  1. 恢复表空间

5.1 重新进行全备

SQL> backup database full backupset '/opt/rman/full_bak_20200904';

5.2 移走DMHR表空间数据文件,模拟故障

mv DMHR.DBF DMHR.DBF.BAK

  1. 重启数据库

service DmServiceDMSERVER restart

检查表空间状态

SQL> select tablespace_name,status from dba_tablespaces;

64e0e0dd8300de5d35c68b3394b37b44.png

数据库处于mount状态,已经存在问题

SQL> alter database open

SQL> restore tablespace DMHR from backupset '/opt/rman/full_bak_20200904';

进行恢复,无法成功

ce98df827ca53779fcbc6a5d8af46787.png

换到mount状态,同样无法成功

SQL> alter database mount;

SQL> restore tablespace DMHR from backupset '/opt/rman/full_bak_20200904';

0ab69c7c818a52f245ae12698df121fd.png

表空间恢复无法成功,限于时间日后继续测试。

  1. 小结

全备和增量备份恢复顺利测试成功,表空间恢复没有成功。

  1. 总结

可以实现所有测试场景的逻辑备份和dmrman备份。恢复场景中,dimp remap没有成功,dmrman表空间没有成功。虽有些许遗憾,后期将会继续努力尝试找到问题所在。通过这些测试,基本理解备份恢复的使用,作为初学者已经有非常大的收获。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值