当前位置: 首页 > news >正文

达梦数据物理逻辑备份还原

1 达梦数据库备份还原简介

数据库备份是DBA日常最重要的工作内容。
DM 数据库的备份还原包括两种类型:物理备份还原和逻辑备份还原。

1.1 概念理解

  • 物理备份

物理备份详细官方解释:物理备份还原是对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。例如使用 RMAN 工具进行的备份还原

物理备份简单理解方法:
大家可以简单理解为备份的数据为你可以在你的实例路径下看到的各种文件。物理物理嘛,就是可以在操作系统里面实际看到的文件撒。

物理备份过程中,不关心数据页的具体内容是什么,也不关心数据页属于哪一张表,只是简单的根据数据库文件系统的描述,来挑选有效的数据页。

在这里插入图片描述

  • 逻辑备份

物理备份详细官方解释:逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原;逻辑导出和逻辑导入数据库对象分为四种级别:数据库级(FULL)、用户级(OWNER)、模式级SCHEMAS)和表级(TABLES)。四种级别独立互斥,不能同时存在

物理备份简单理解方法:简单的理解的话,就是你打开管理工具后,可以从管理工具里面看到的信息。你看,模式这个东西你无法从你的操作系统里面找到对应的模式文件,所以,你简单理解为这个为逻辑层面。

逻辑备份针对的是数据内容,并不关心这些数据物理存储在什么位置。
在这里插入图片描述

1.2 各自优点

  • 逻辑备份:
    —使用灵活,应用开发常用,可以指定不同对象或范围进行备份恢复。
    — 支持对远程数据库备份到客户端
  • 物理备份
    —定时备份作业,减少人工干预,提高数据库的高可用性。
    –可以恢复到故障之前的某一个节点

1.3 整理图

在这里插入图片描述

2 物理备份还原实战

2.1 开启归档

alter database mount;
alter database add archivelog 'type=local, dest=/dm8/arch,file_size=64,space_limit=0';
alter database archivelog;
alter database open;

在这里插入图片描述

2.2 开启damp

备份集备份还原实现策略有两种:DMAP 辅助进程方式和无辅助进程方式。用户可通过 DM.INI 参数 bak_use_ap 来选择(DMRMAN 使用参数 use_ap),bak_use_ap 取值 1、2。默认为 1。

  • DMAP 辅助进程方式
    如果选择使用 DMAP 辅助进程,执行备份还原之前就必须启动 DMAP 服务。安装 DM 数据库以后,DMAP 服务会自动启动。

  • 无辅助进程方式
    不依赖DMAP,由主进程dmserver自身执行备份还原,但不支持第三方备份(指定DEVICE TYPE为TAPE)。

  • 启动dmap

 ./DmAPService start

2.3备份

2.3.1 联机热备

  • 备份数据库
backup DATABASE full to FULLBAK01 BACKUPSET '/dm8/backup/FULLBAK2022_09_25'
  • 备份表
`backup table "TEST" to "TAB_TEST_EMP_2022_09_25_16_29_23" backupset 'TAB_TEST_EMP_2022_09_25_16_29_23';`
  • 备份表空间
backup tablespace "TEST" full to "TS_TEST_FULL_2022_09_25_16_30_20" backupset 'TS_TEST_FULL_2022_09_25_16_30_20';
  • 备份归档
backup archivelog all to "ARCH_2022_09_25_16_30_45" backupset 'ARCH_2022_09_25_16_30_45';

2.3.1 联机还原

DM 仅支持表的联机还原,数据库、表空间和归档日志的还原必须通过脱机工具 DMRMAN 执行。

  • 表还原,表不需要恢复
 RESTORE TABLE TEST FROM BACKUPSET 'TAB_TEST_EMP_2022_09_25_16_29_23';

2.3.1 脱机备份

  • 启动DMRMAN:

进入数据库安装目录的 bin 目录下执行:

./dmrman
  • 备份数据库
backup database '/dm8/data/DAMENG/dm.ini' to FULLBAK20220925 backupset 
'/dm8/backup/FULLBAK20220925';

2.3.1 脱机还原

  • 还原数据库

备份数据库:

BACKUP DATABASE BACKUPSET '/home/dm_bak/db_full_bak_for_restore';

还原数据库:

RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM
BACKUPSET '/home/dm_bak/db_full_bak_for_restore';

恢复数据库:

RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_recover_backupset';

恢复 db_magic

RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' UPDATE DB_MAGIC;
  • 表空间还原

备份表空间:

 BACKUP TABLESPACE MAIN BACKUPSET '/home/dm_bak/ts_full_bak_for_restore';

执行表空间脱机:

ALTER TABLESPACE TS1 OFFLINE;

还原表空间:

RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' TABLESPACE MAIN FROM BACKUPSET '/home/dm_bak/db_full_bak_for_restore';

恢复表空间:

RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' TABLESPACE TS1;
  • 归档还原

备份归档文件:

BACKUP ARCHIVE LOG ALL BACKUPSET '/home/dm_bak/arch_all_for_restore';

还原归档。启动 DMRMAN,设置 OVERWRITE 为 2,如果归档文件已存在,会报错。
指定还原的目标归档日志目录:

RESTORE ARCHIVE LOG FROM BACKUPSET '/home/dm_bak/arch_all_for_restore' TO ARCHIVEDIR'/opt/dmdbms/data/DAMENG_FOR_RESTORE/arch_dest' OVERWRITE 2;

指定还原目标库的 dm.ini 文件路径:

RESTORE ARCHIVE LOG FROM BACKUPSET '/home/dm_bak/arch_all_for_restore' TO DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' OVERWRITE 2;

3 逻辑备份还原实战

3.1 逻辑导出

  • 库级导出
 ./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=YDIRECTORY=/mnt/data/dexp
  • OWNER 方式导出一个或多个用户拥有的所有对象
 ./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log OWNER=USER01 DIRECTORY=/mnt/data/dexp
  • SCHEMAS 方式的导出一个或多个模式下的所有对象
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log SCHEMAS=USER01DIRECTORY=/mnt/data/dexp
  • TABLES 方式导出和导入一个或多个指定的表或表分区
 ./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dexp

3.1 逻辑导入

  • FULL 方式导入整个数据库
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dimp
  • OWNER 方式导入一个或多个用户拥有的所有对象
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log OWNER=USER01 DIRECTORY=/mnt/data/dim
  • SCHEMAS 方式的导入一个或多个模式下的所有对象
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log SCHEMAS=USER01 DIRECTORY=/mnt/data/dimp
  • TABLES 方式导入一个或多个指定的表或表分区
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dimp

相关文章:

  • ssm项目布置流程
  • JavaScript简介与快速体验
  • ExecutorService、Callable、Future实现有返回结果的多线程原理解析
  • java 字节流写入文件内容实现换行
  • Greenplum数据库数据分片策略Hash分布——执行器行为
  • java题3
  • 初探Prometheus+grafana
  • Axios入门
  • 数据库(mysql)主从复制与读写分离
  • Windbg 命令 (四)
  • 【华为机试真题JavaScript】分班
  • ctfshow SSRF
  • Nacos集群和持久化配置(重要)
  • SpringMVC框架
  • 【Arma3脚本教程】一、基本介绍
  • 11111111
  • Create React App 使用
  • go append函数以及写入
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • javascript面向对象之创建对象
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 如何合理的规划jvm性能调优
  • 删除表内多余的重复数据
  • 深入 Nginx 之配置篇
  • 一道闭包题引发的思考
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 栈实现走出迷宫(C++)
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (C++17) std算法之执行策略 execution
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (四)模仿学习-完成后台管理页面查询
  • (万字长文)Spring的核心知识尽揽其中
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 读取 JSON格式的数据
  • .Net小白的大学四年,内含面经
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • @Pointcut 使用
  • @Responsebody与@RequestBody
  • @Transactional类内部访问失效原因详解
  • [ linux ] linux 命令英文全称及解释
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [20171102]视图v$session中process字段含义
  • [Android]Tool-Systrace
  • [HNOI2008]Cards
  • [JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别