达梦数据库备份恢复简介

特别提醒:backup命令的参数是有先后顺序的

1.数据库归档配置

联机备份数据库必须要配置归档

在线修改数据库为归档方式:

--修改数据库为MOUNT状态

ALTER DATABASE MOUNT;

--配置本地归档

ALTER DATABASE ADD ARCHIVELOG 'DEST = /dm8/data/arch, TYPE = local, FILE_SIZE = 1024, SPACE_LIMIT = 2048';

--开启归档模式

ALTER DATABASE ARCHIVELOG;

--修改数据库为OPEN状态

ALTER DATABASE OPEN;

--查看归档日志配置状态

select PARA_VALUE from v$dm_ini

where para_name = 'ARCH_INI'

select * from v$arch_status

离线修改数据库为归档方式:

手动编辑 dmarch.ini 文件,之后保存在 dm.ini 所在的目录;

dmarch.ini 文件内容如下:

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dm8/data/arch

ARCH_FILE_SIZE = 1024

ARCH_SPACE_LIMIT = 2048

编辑 dm.ini 文件,设置参数 ARCH_INI=1,保存;

启动数据库实例,数据库已运行于归档模式。

2.在线备份数据库示例

默认备份路径:

select PARA_VALUE from v$dm_ini

where para_name = 'BAK_PATH';

使用disql登录到数据库进行简单备份

在备份路径下面生成backup_001的备份目录

2.在线备份数据库完整语法

BACKUP DATABASE [[[FULL] [DDL_CLONE]]| INCREMENT [CUMULATIVE][WITH BACKUPDIR ''{,''}]|[BASE ON BACKUPSET '']][TO ][BACKUPSET '']

[DEVICE TYPE [PARMS '']]

[BACKUPINFO ''] [MAXPIECESIZE ]

[IDENTIFIED BY |"" [WITH ENCRYPTION ][ENCRYPT WITH ]]

[COMPRESSED [LEVEL ]] [WITHOUT LOG]

[TRACE FILE ''] [TRACE LEVEL ]

[TASK THREAD ][PARALLEL [] [READ SIZE ]];

FULL:备份类型。FULL 表示完全备份,可不指定,默认为完全备份。

DDL_CLONE:数据库克隆。该参数只能用于完全备份中,表示仅拷贝所有的元数据不拷贝数据。如对于数据库中的表来说,只备份表的定义不备份表中数据。表空间和表备份不支持该参数。数据库克隆必须备份日志。

INCREMENT:备份类型。INCREMENT 表示增量备份,若要执行增量备份必须指定该参数。

CUMULATIVE:用于增量备份中,指明为累积增量备份类型,若不指定则缺省为差异增量备份类型。

WITH BACKUPDIR:用于增量备份中,指定基备份的搜索目录,最大长度为 256 个字节。若不指定,自动在默认备份目录和当前备份目录下搜索基备份。如果基备份不在默认的备份目录或当前备份目录下,增量备份必须指定该参数。

BASE ON BACKUPSET:用于增量备份中,指定基备份集路径。

TO:指定生成备份名称。若未指定,系统随机生成,默认备份名格式为:DB_库名_备份类型_备份时间。其中,备份时间为开始备份时的系统时间。

BACKUPSET:指定当前备份集生成路径。若指定为相对路径,则在默认备份路径中生成备份集。若不指定,则在默认备份路径中按约定规则,生成默认备份集目录。库级备份默认备份集目录名生成规则:DB_库名_备份类型_备份时间,如 DB_DAMENG_FULL_20180518_143057_123456。表明该备份集为 2018 年 5 月 18 日 14 时 30 分 57 秒 123456 毫秒时生成的库名为 DAMENG 的数据库完全备份集。若库名超长使备份集目录完整名称长度大于 128 个字节将直接报错路径过长。

DEVICE TYPE:指存储备份集的介质类型,支持 DISK 和 TAPE,默认 DISK。

PARMS:只对介质类型为 TAPE 时有效。

BACKUPINFO:备份的描述信息。最大不超过 256 个字节。

MAXPIECESIZE:最大备份片文件大小上限,以 M 为单位,最小 32M,32 位系统最大 2G,64 位系统最大 128G。

IDENTIFIED BY:指定备份时的加密密码。密码可以用双引号括起来,这样可以避免一些特殊字符通不过语法检测。密码的设置规则遵行 ini 参数 pwd_policy 指定的口令策略。

WITH ENCRYPTION:指定加密类型,0 表示不加密,不对备份文件进行加密处理;1 表示简单加密,对备份文件设置口令,但文件内容仍以明文方式存储;2 表示完全数据加密,对备份文件进行完全的加密,备份文件以密文方式存储。当不指定 WITH ENCRYPTION 子句时,采用简单加密。

ENCRYPT WITH:指定加密算法。当不指定 ENCRYPT WITH 子句时,使用 AES256_CFB 加密算法。

COMPRESSED:是否对备份数据进行压缩处理。LEVEL 表示压缩等级,取值范围 0~9:0 表示不压缩;1 表示 1 级压缩;9 表示 9 级压缩。压缩级别越高,压缩速度越慢,但压缩比越高。若指定 COMPRESSED,但未指定 LEVEL,则压缩等级默认 1;若未指定 COMPRESSED,则默认不进行压缩处理。

WITHOUT LOG:联机数据库备份是否备份日志。如果使用,则表示不备份,否则表示备份。如果使用了 WITHOUT LOG 参数,则使用 DMRMAN 工具还原时,必须指定 WITH ARCHIVEDIR 参数。

TRACE FILE:指定生成的 TRACE 文件。启用 TRACE,但不指定 TRACE FILE 时,默认在 DM 数据库系统的 log 目录下生成 DM_SBTTRACE_年月.log 文件;若使用相对路径,则生成在执行码同级目录下;若用户指定 TRACE FILE,则指定的文件不能为已经存在的文件,否则报错。TRACE FILE 不可以为 ASM 文件。

TRACE LEVEL:是否启用 TRACE。有效值 1、2,默认为 1 表示不启用 TRACE,此时若指定了 TRACE FILE,会生成 TRACE 文件,但不写入 TRACE 信息;为 2 启用 TRACE 并在 TRACE 文件中写入 TRACE 相关内容。

TASK THREAD:备份过程中数据处理过程线程的个数,取值范围 0~64,默认为 4。若指定为 0,则调整为 1;若指定超过当前系统主机核数,则调整为主机核数。线程数(TASK THREAD)*并行数(PARALLEL)不得超过 512。

PARALLEL:指定并行备份的并行数和拆分块大小。并行数取值范围 0~128。若不指定并行数,则默认为 4,若指定为 0 或者 1 均认为非并行备份。若未指定关键字 PARALLEL,则认为非并行备份。并行备份不支持存在介质为 TAPE 的备份。线程数(TASK THREAD)*并行数(PARALLEL)不得超过 512。READ SIZE 指定并行备份大数据量的数据文件时的拆分块大小,默认为 1GB,最小为 512MB,当指定的拆分块大小小于 512MB 时,系统会自动调整为 512MB。若指定并行备份,但未指定拆分块大小,则直接使用默认拆分块大小进行拆分。当数据文件的大小小于拆分块大小时,不执行拆分;当数据文件的大小大于拆分块大小时,执行拆分。并行数不能大于拆分之后的总块数。

3.备份操作示例

指定备份文件绝对路径:

BACKUP DATABASE BACKUPSET '/dm8/data/backup_002';

设置备份名为fullbak:

BACKUP DATABASE TO fullbak BACKUPSET '/dm8/data/backup_003';

增量备份表空间:

BACKUP TABLESPACE MAIN BACKUPSET 'ts_main_back001';

BACKUP TABLESPACE MAIN INCREMENT BACKUPSET 'ts_main_increment_001';

BACKUP TABLESPACE MAIN INCREMENT BASE ON BACKUPSET 'ts_main_back001' BACKUPSET 'ts_main_increment_002';

添加描述,设置备份集大小

BACKUP DATABASE TO fullbak BACKUPSET '/dm8/data/backup_004' BACKUPINFO '完全备份' MAXPIECESIZE 32;

设置压缩

BACKUP DATABASE BACKUPSET '/dm8/data/DB_PROD_FULL_2022_09_15_17_50_15' BACKUPINFO '完全备份' MAXPIECESIZE 32 COMPRESSED LEVEL 5;

并行备份

BACKUP DATABASE BACKUPSET '/dm8/data/backup_006' BACKUPINFO '完全备份' MAXPIECESIZE 32 COMPRESSED LEVEL 5 PARALLEL 4;

指定全备

BACKUP DATABASE FULL BACKUPSET '/dm8/data/backup_008' BACKUPINFO '完全备份' MAXPIECESIZE 32 COMPRESSED LEVEL 5 PARALLEL 4;

以上面全备为基础做增量

BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dm8/data/backup_008' BACKUPSET '/dm8/data/backup_008_incr';

以上面全备为基础做增量

BACKUP DATABASE INCREMENT CUMULATIVE WITH BACKUPDIR '/dm8/data/backup_008' BACKUPSET '/dm8/data/backup_009_incr';

全量还原测试:

还原是在数据库关闭的情况下进行,需要用dmrman

关闭数据库

systemctl stop DmServiceTEST.service

移走或删除数据文件,不要删除dm.ini和控制文件

以下操作在dmrman下进行:

检查备份文件集的有效性

CHECK BACKUPSET '/dm8/data/DB_PROD_FULL_2022_09_15_17_50_15';

还原数据库,还原归档日志,恢复数据库:

RESTORE DATABASE '/dm8/data/PROD/dm.ini' FROM BACKUPSET '/dm8/data/DB_PROD_FULL_2022_09_15_17_50_15';

RESTORE ARCHIVELOG FROM BACKUPSET '/dm8/data/backup_arch_002' ALL TO ARCHIVEDIR '/dm8/data/arch';

RECOVER DATABASE '/dm8/data/PROD/dm.ini' WITH ARCHIVEDIR'/dm8/data/arch';

RECOVER DATABASE '/dm8/data/PROD/dm.ini' UPDATE DB_MAGIC;

4.表空间备份

表空间备份方式及参数与数据库备份基本相同,此处略过

5.表备份

表备份不需要开启归档方式

语法如下:

BACKUP TABLE

[TO ] [BACKUPSET ''] [DEVICE TYPE [PARMS '']]

[BACKUPINFO '']

[MAXPIECESIZE ]

[IDENTIFIED BY |"" [WITH ENCRYPTION ][ENCRYPT WITH ]]

[COMPRESSED [LEVEL ]]

[TRACE FILE ''] [TRACE LEVEL ];

备份示例:

backup table test.departments backupset '/dm8/data/backup_table_001';

还原示例:表被drop,好像不能被还原;STRUCT参数可以还原索引约束等信息,不能还原删除的表

truncate table test.departments;

RESTORE TABLE test.departments STRUCT FROM BACKUPSET '/dm8/data/backup_table_001';

RESTORE TABLE test.departments FROM BACKUPSET '/dm8/data/backup_table_001';

表备份限制:

仅支持对用户的非分区的行存储表和堆表进行备份,不支持对分区表的备份。在非分区表中,也不支持对临时表、物化视图表、物化视图附属表、日志表和特定模式(DBG_PKG/INFORMATION_SCHEMA/INFO_SCHEM/SYSREP/SYSGEO/SYSJOB/SYSCPT/SYS)下的表进行表备份。

表的列类型为对象类型的表不支持表备份。

表备份不备份表上的注释以及 default 表达式中的函数定义,因此还原时需用户自行确认。

不支持在加密库上进行表备份与还原。

当备份数据超过限制大小时,会生成新的备份文件,新的备份文件名是初始文件名后加文件编号。

表备份时,其所属表空间必须处于联机状态。

目前表备份不支持备份到 TAPE 介质上。

6.备份归档日志

语法如下:

BACKUP

[ALL | [FROM LSN ]| [UNTIL LSN ]|[LSN BETWEEN AND ] | [FROM TIME '']|[UNTIL TIME '']|[TIME BETWEEN''> AND '' ]][][DELETE INPUT] [TO ][];

::=BACKUPSET [''][DEVICE TYPE [PARMS '']]

[BACKUPINFO '']

[MAXPIECESIZE ]

[IDENTIFIED BY |"" [WITH ENCRYPTION ][ENCRYPT WITH ]]

[COMPRESSED [LEVEL ]]

[WITHOUT LOG]

[TRACE FILE ''] [TRACE LEVEL ]

[TASK THREAD ][PARALLEL [][READ SIZE ]]

::=NOT BACKED UP [ TIMES]|[SINCE TIME '']

查看归档文件,可以根据LSN号进行备份:

select ARCH_LSN, CLSN, PATH from V$ARCH_FILE;

BACKUP ARCHIVELOG LSN BETWEEN 61444 AND 61445 BACKUPSET '/dm8/data/backup_arch_001';

备份完成后删除已经备份的归档日志

BACKUP ARCHIVELOG LSN BETWEEN 61444 AND 61445 DELETE INPUT BACKUPSET '/dm8/data/backup_arch_002';

7.备份文件管理

备份管理相关动态视图总结如下:需要将备份目录添加到备份搜索路径,否则备份文件查不到

SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK', '/dm8/data');

V$BACKUPSET:显示备份集基本信息。

V$BACKUPSET_DBINFO:显示备份集的数据库相关信息。

V$BACKUPSET_DBF:显示备份集中数据文件的相关信息。

V$BACKUPSET_ARCH:显示备份集的归档信息。

V$BACKUPSET_BKP:显示备份集的备份片信息。

V$BACKUPSET_SEARCH_DIRS:显示备份集搜索目录。

V$BACKUPSET_TABLE:显示表备份集中备份表信息。

V$BACKUPSET_SUBS:显示并行备份中生成的子备份集信息。

V$BACKUP_MONITOR:显示当前备份任务实时监控信息。

V$BACKUP_HISTORY:显示最近 100 条备份监控信息。

V$BACKUP_FILES:显示当前备份任务待备份数据文件列表。

备份管理相关系统过程与函数总结如下:

SF_BAKSET_BACKUP_DIR_ADD:添加备份目录。

SF_BAKSET_BACKUP_DIR_REMOVE:删除内存中指定的备份目录。

SF_BAKSET_BACKUP_DIR_REMOVE_ALL:删除内存中全部的备份目录。

SF_BAKSET_CHECK:对备份集进行校验。

SF_BAKSET_REMOVE:删除指定设备类型和指定备份集目录的备份集。

SF_BAKSET_REMOVE_BATCH:批量删除满足指定条件的所有备份集。

SP_DB_BAKSET_REMOVE_BATCH:批量删除指定时间之前的数据库备份集。

SP_TS_BAKSET_REMOVE_BATCH:批量删除指定表空间对象及指定时间之前的表空间备份集。

SP_TAB_BAKSET_REMOVE_BATCH:批量删除指定表对象及指定时间之前的表备份集。

SP_ARCH_BAKSET_REMOVE_BATCH:批量删除指定条件的归档备份集。

参考文件:备份还原简介 | 达梦技术文档

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值