九、数据库的备份还原
创始人
2024-04-10 18:06:47
0

九、数据库的备份还原

1、归档管理

使用DM Manager:

  1. 点击注册的实例连接->右键->管理服务器在这里插入图片描述

  2. 点击系统管理->点击配置->点击转换在这里插入图片描述

  3. 点击归档配置->归档在这里插入图片描述

使用DISQL:

#创建文件夹存放日志文件
mkdir /dm/dmarch#登录disql
disql
SYSDBA
SYSDBA#切换为配置
alter database mount;#添加文件
alter database add archivelog 'DEST=/dm/dmarch,TYPE=local,FILE_SIZE=128,space_limit=0';#修改为归档模式,会自动将日志写入上述文件
alter database archivelog;#修改为open状态
alter database open;#查看归档信息
select arch_mode from v$database;
select * from v$dm_arch_ini;#退出disql
exit;#查看是否以生成文件
cd /dm/dmarch/
ls#查看日志的配置文件
cd /dm/dmdbma/data/DAMENG/dmarch.ini

在这里插入图片描述


在这里插入图片描述


2、逻辑备份与还原

逻辑备份与还原就是导出文件和导入文件:

下面演示创建一个用户,再使用此用户在此用户模式下建表,然后导出,再将此用户下的表删除,再导入,看看是否成功

逻辑备份分为:数据库级别、用户级别、模式级别、表级别

#全局导入与导出
#操作1
#登录disql
disql
SYSDBA
SYSDBA#创建用户dexp 密码为dexp123dexp123
create user dexp identified by dexp123dexp123;
#授予权限
grant resource,dba to dexp;
#退出disql / 切换用户
exit
conn dexp/dexp123dexp123#使用dexp用户登录disql
disql
dexp
dexp123dexp123#创建一张表
create table dexp as select * from sysobjects;
#查看表数据
select count(1) from dexp;#操作2
#开始备份 导出文件到/dm/dmbak
dexp SYSDBA/SYSDBA file=full01.dmp log=full01.log directory=/dm/dmbak full=y;
#用户的导入与导出
dexp SYSDBA/SYSDBA file=user01.dmp log=user01.log directory=/dm/dmbak owner=dexp;
#数据库级别、用户级别、模式级别、表级别,多个用逗号(,)间隔
full=y
owner=用户名(这里是dexp)
schemas=模式名(这里是dexp)
tables=表名(这里是dexp)#删除dexp用户下的dexp表
drop table dexp;#操作3恢复刚才备份的文件(replace可加可不加,是具体情况而定)
#全局级别的恢复
dimp SYSDBA/SYSDBA file=full01.dmp log=full02.log directory=/dm/dmbak full=y table_exists_action=replace 
#用户级别的恢复
dimp SYSDBA/SYSDBA file=user01.dmp log=user02.log directory=/dm/dmbak owner=dexp table_exists_action=replace
#恢复到指定用户
dimp SYSDBA/SYSDBA file=user01.dmp log=user02.log directory=/dm/dmbak owner=dexp remap_schema=DEXP:DIMP;#查看表数据
select count(1) from dexp;
  1. 操作1在这里插入图片描述

  2. 操作2在这里插入图片描述
    —————————————————————————————————————————————————————————–在这里插入图片描述

  3. 在这里插入图片描述
    ——————————————————————————————————————————————————————————在这里插入图片描述

3、联机备份与还原

联机备份在数据库级别只支持备份操作,不支持还原,数据库级别的还原必须在脱机进行。

默认的备份路径为dm.ini中BAK_PATH参数配置的路径,若未配置,则使用SYSTEM_PATH下的bak目录。

全备:full参数可以省略,不指定备份类型默认为完全备份

backup database backupset '/dm/dmbak/full01';  

在这里插入图片描述


在这里插入图片描述

增量备份:

backup database increment with backupdir 'dm/dmbak/full01' backupset '/dm/dmbak/full01/inc_back';

在这里插入图片描述


在这里插入图片描述

表的备份和还原:

#创建测试表
create table dmbak as select * from sysobjects;#查看数据
select count(1) from dmbak;#备份表
backup table dmbak backupset '/dm/dmbak/dmbak';#删除表数据
delete from dmbak;
commint;#查看数据
select count(1) from dmbak;#还原表(这里还原表是表必须存在,不支持drop的恢复)
restore table dmbak from backupset '/dm/dmbak/dmbak';#查看数据
select count(1) from dmbak;#如果表示有索引和约束则是另一种写法
#创建测试表
create table dmbak2 as select * from sysobjects;
#创建索引
create index idx_dmbak2_id on dmbak2(id);#查看数据
select count(1) from dmbak2;#备份表
backup table dmbak2 backupset '/dm/dmbak/dmbak2';#删除表数据
delete from dmbak2;
commint;#查看数据
select count(1) from dmbak2;#还原表(这里还原表是表必须存在,不支持drop的恢复)
#还原表结构
restore table dmbak2 struct from backupset '/dm/dmbak/dmbak2';
#还原表数据
restore table dmbak2 from backupset '/dm/dmbak/dmbak2';#查看数据
select count(1) from dmbak2;

在这里插入图片描述


在这里插入图片描述

表空间的备份和还原(DM8不支持):

#备份表空间
backup tablespace main backupset '/dm/dmbak/ts_full_bak_01';#校验表空间备份
select sf_bakset_check('disk','/dm/dmbak/ts_full_bak_01');#修改表空间状态为脱机
alter tablespace main offline;#还原表空间
restore table main from backupset '/dm/dmbak/ts_full_bak_01';#修改表空间状态为联机
alter tablespace main online;

在这里插入图片描述

4、脱机备份与还原

**数据库的备份与还原:**使用dmrman完成脱机备份不同于disql,disql知道是哪个用户登录的,但是dmrman完成脱机备份的,要求数据库处于脱机状态,dmrman并不知道所要备份的是那个数据库实例,所以需要指定数据库实例对应的配置文件,从而确定是要哪个数据库实例完成脱机备份

#1.停止服务
systemctl stop DmServiceDave.service#2.执行环境,必须进入dmrman所在的bin目录执行,否则无法备份
cd /dm/dmdbms/bin/
./dmrman #3.备份
backup database '/dm/dmdbms/data/cndba/dm.ini' full backupset '/dm/dm_bak/db_full_bak_01';
#增量备份
backup database '/dm/dmdbms/data/cndba/dm.ini' increment with backupdir '/dm/dm_bak' backupset '/dm/dm_bak/db_full_bak_02';

在这里插入图片描述
后面的不会了

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...