disql备份还原

disql备份还原

前言

本文档根据官方文档,进行整理。

一、概述

在 disql 工具中使用 BACKUP 语句你可以备份整个数据库。通常情况下,在数据库实例配置归档后输入以下语句即可备份数据库:

BACKUP DATABASE BACKUPSET 'db_bak_01';

语句执行完后会在默认的备份路径下生成名为“db_bak_01”的备份集目录。默认的备份路径为 dm.ini 中 BAK_PATH 配置的路径,若未配置 BAK_PATH,则默认使用 SYSTEM_PATH 下的 bak 目录。这是最简单的数据库备份语句,如果要设置其他的备份选项需了解联机备份数据库的语法。

1、语法

BACKUP DATABASE[<备份类型>] [<指定备份集子句>] [TO <备份名>] [BACKUPSET '<备份集路径>'] [DEVICE TYPE <介质类型> [PARMS '<介质参数>']] 
[BACKUPINFO '<备份描述>'] [MAXPIECESIZE <备份片限制大小>] 
[LIMIT <read_limit>|<write_limit>] 
[IDENTIFIED BY <密码>|"<密码>" [WITH ENCRYPTION <TYPE>][ENCRYPT WITH <加密算法>]]
[COMPRESSED [LEVEL <压缩级别>]] [WITHOUT LOG][WITHOUT MIRROR]
[TRACE FILE '<TRACE文件名>'] [TRACE LEVEL <TRACE日志级别>] 
[TASK THREAD <线程数>][PARALLEL [<并行数>] [READ SIZE <拆分块大小>]];
<备份类型>::= FULL|[FULL] DDL_CLONE|[FULL] SHADOW|INCREMENT <increment_statement>
<increment_statement>::= [FROM LSN <lsn>] | <inc_sub_statement>
<inc_sub_statement>::= [CUMULATIVE][<指定基备份子句>]
<指定基备份子句>::= BASE ON BACKUPSET '<基备份目录>'
<指定备份集子句>::= WITH BACKUPDIR ‘<备份集搜索路径>’{,<备份集搜索路径>’}
<read_limit>::= READ SPEED <读速度上限> [WRITE SPEED <写速度上限>]
<write_limit>::= WRITE SPEED <写速度上限>

参数说明:

参数说明
备份类型1️⃣FULL:完全备份,完全备份生成的备份集包含了指定库(或者表空间)的全部有效数据页。
2️⃣DDL_CLONE:数据库克隆,该参数只能用于完全备份中,对于数据库中的表来说,只备份表的定义不备份表中数据。表空间和表备份不支持该参数,数据库克隆必须备份日志
3️⃣SHADOW:影子备份,该参数只能用于完全备份中,表示生成影子备份集,只备份源库的 SYSTEM.DBF 及日志相关信息表空间和表备份不支持该参数,影子备份必须备份日志
4️⃣INCREMENT:增量备份
TO指定生成备份名称(管理工具中可以查看)。若未指定,系统随机生成,默认备份名格式为:DB_备份类型_备份时间。
BACKUPSET指定当前备份集目录。若指定为相对路径,例如 BACKUPSET ‘db_bak_01’,则在默认备份目录中生成备份集。若不指定(命令不写),则在默认备份目录中按约定规则,生成默认备份集目录。
SQL> backup database full;
DEVICE TYPE指存储备份集的介质类型,支持 DISK 和 TAPE,默认 DISK
PARMS只对介质类型为 TAPE 时有效
BACKUPINFO备份的描述信息。
MAXPIECESIZE最大备份片文件大小上限,以 MB 为单位,最小 128MB,32 位系统最大 2GB,64 位系统最大 128GB,缺省为最大取值
LIMIT指定备份时最大的读写文件速度,单位为 MB/S,默认为 0,表示无速度限制。
READ SPEED备份时读速度上限,取值范围 0~2147483647,单位为 MB/S,0 表示无限制。
WRITE SPEED备份时写速度上限,取值范围 0~2147483647,单位为 MB/S,0 表示无限制。
IDENTIFIED BY指定备份时的加密密码
WITH ENCRYPTION指定加密类型,取值范围 0、1、2。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 MIRROR联机数据库备份是否备份镜像文件。如果使用,则表示不备份,否则表示备份。
TRACE LEVEL是否启用 TRACE。有效值 1、2,默认为 1 表示不启用 TRACE,此时若指定了 TRACE FILE,会生成 TRACE 文件,但不写入 TRACE 信息;为 2 启用 TRACE 并在 TRACE 文件中写入 TRACE 相关内容。
TRACE FILE指定生成的 TRACE 文件。启用 TRACE,但不指定 TRACE FILE 时,默认在 DM 数据库系统的 log 目录下生成 DM_SBTTRACE_年月.log 文件;若使用相对路径,则生成在执行码同级目录下;若用户指定 TRACE FILE,则指定的文件不能为已经存在的文件,否则报错。TRACE FILE 不可以为 ASM 文件。
TASK THREAD备份过程中数据处理过程线程的个数,取值范围 0~64,默认为 4。若指定为 0,则调整为 1;若指定超过当前系统主机核数,则调整为主机核数。线程数(TASK THREAD)*并行数(PARALLEL)不得超过 512。
PARALLEL指定**并行备份的并行数和拆分块大小**。并行数取值范围 0~128。若不指定并行数,则默认为 4,若指定为 0 或者 1 均认为非并行备份。若未指定关键字 PARALLEL,则认为非并行备份。
FROM LSN用于增量备份中,指定备份的起始 LSN。起始 LSN 必须小于等于检查点 LSN,用户可以手动刷新检查点 LSN。仅支持库级增量备份
CUMULATIVE用于增量备份中,指明为累积增量备份类型,若不指定则缺省为差异增量备份类型。
WITH BACKUPDIR用于增量备份中,指定基备份的搜索目录。若缺省,自动在以下路径中搜索:默认备份目录(即 BAK_PATH 配置的路径,如果 BAK_PATH 没有配置,则使用 SYSTEM_PATH 配置的路径)、当前备份集目录(即 BACKUPSET 指定的路径,例如 BACKUPSET ‘D:\ bakrman\db_bak’的路径)、当前备份集目录的上一级目录(例如’D:\bakrman’)搜索基备份。如果基备份不在上述路径下,增量备份必须指定该参数
BASE ON BACKUPSET用于增量备份中,指定基备份集路径。

注意

增量备份时,DM不会在默认备份目录或当前备份目录的子目录中搜索基备份集,因此若基备份集在默认备份目录或当前备份目录的子目录中,则需要指定基备份的搜索目录或直接指定基备份集路径,否则将无法搜索到相应的基备份集,备份操作将会失败。

2、常用的备份命令

2.1 设置联机备份路径(BACKUPSET)
  • 指定备份集路径为“/dmdata/dmbak/db_bak_3_01”
BACKUP DATABASE BACKUPSET '/dmdata/dmbak/db_bak_3_01';
2.2 设置备份名(TO)
  • 创建备份集,备份名设置为“FULLBAK01”,备份路径为what
BACKUP DATABASE TO FULLBAK01 BACKUPSET 'what'

备份集名称为FULLBAK01 ,保存路径是/dmdata/dmbak/what
在这里插入图片描述
在这里插入图片描述

2.3 添加备份描述(BACKUPINFO)
  • 创建备份为备份集添加描述信息为“测试备份”
BACKUP DATABASE BACKUPINFO '测试备份';

在这里插入图片描述

2.4 限制备份片大小(MAXPIECESIZE)
  • 创建备份限制备份片大小为 300MB
BACKUP DATABASE BACKUPSET '/dmdata/dmbak/db_bak_3_05' MAXPIECESIZE 300;
2.5 备份压缩(COMPRESSED LEVEL)
  • 执行备份压缩,压缩级别设置为 5
BACKUP DATABASE BACKUPSET '/dmdata/dmbak/db_bak_3_06' COMPRESSED LEVEL 5;
2.6 并行备份(PARALLEL)
  • 创建并行备份,指定并行数为 8
BACKUP DATABASE BACKUPSET '/dmdata/dmbak/db_bak_3_07' PARALLEL 8;

二、数据备份

1、数据库备份

执行数据库备份,数据库必须处于 OPEN 状态,MOUNT 和 SUSPEND 状态下不允许执行数据库备份。,除此之外,还要运行在归档模式

1.1 完全备份

完全备份数据库步骤如下:

  1. 配置归档;
  2. 保证数据库处于 OPEN 状态;
  3. DIsql 中输入备份数据库语句,最简单的不设置其他参数的完全备份语句如下:
BACKUP DATABASE FULL BACKUPSET '/dmdata/dmbak/db_full_bak_01';

备份语句中的参数 FULL 可以省略,不指定备份类型会默认指定备份类型为完全备份。

1.2 增量备份

增量备份指基于指定的库(或者表空间)的某个备份(完全备份或者增量备份),备份自该备份以来所有发生修改的数据页。

增量备份数据库步骤如下:

  1. 配置归档;

  2. 保证数据库处于 OPEN 状态;

  3. disql 中输入备份数据库语句

1.2.1 差异增量备份
  • 最简单的不设置其他参数的增量备份语句如下:
BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dmdata/dmbak' BACKUPSET '/dmdata/dmbak/db_increment_bak_02';
  • 指定基备份集路径/dmdata/dmbak/DB_DAMENG_FULL_20240210_163606_932454
BACKUP DATABASE INCREMENT BASE ON BACKUPSET '/dmdata/dmbak/DB_DAMENG_FULL_20240210_163606_932454' BACKUPSET '/dmdata/dmbak/INC';

/dmdata/dmbak/DB_DAMENG_FULL_20240210_163606_932454这个备份集作为基备份集

  • 指定基备份扫描路径/dmdata/dmbak
BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dmdata/dmbak' BACKUPSET 'DB_DAMENG_INCRE_2024_02_10_16_52_32';

扫描目录'/dmdata/dmbak'找到其中最新的备份集,将其作为基备份集。

WITH BACKUPDIR 参数用来指定基备份集的搜索目录

1.2.2 累积增量备份
BACKUP DATABASE INCREMENT CUMULATIVE;

2、表空间备份

在 disql 工具中使用 BACKUP 语句也可以备份单个表空间。同备份数据库一样,执行表空间备份数据库实例也必须运行在归档模式下

2.1 语法
BACKUP TABLESPACE <表空间名> [FULL | INCREMENT <increment_statement>] [<指定备份集子句>] [TO  <备份名>] [BACKUPSET '<备份集路径>'][DEVICE TYPE <介质类型> [PARMS '<介质参数>']]
[BACKUPINFO '<备份描述>'] [MAXPIECESIZE <备份片限制大小>] 
[LIMIT <read_limit>|<write_limit>] 
[IDENTIFIED BY <密码>|"<密码>" [WITH ENCRYPTION<TYPE>][ENCRYPT WITH <加密算法>]] [COMPRESSED [LEVEL <压缩级别>]][WITHOUT LOG][WITHOUT MIRROR]
[TRACE FILE '<TRACE文件名>'] [TRACE LEVEL <TRACE日志级别>]
[TASK THREAD <线程数>][PARALLEL [<并行数>][READ SIZE <拆分块大小>]];
<inc_sub_statement>::= 参考3.2.2.1.1概述
<read_limit>::= READ SPEED <读速度上限> [WRITE SPEED <写速度上限>]
<write_limit>::= WRITE SPEED <写速度上限>
2.2 完全备份
  • 备份MAIN表空间
BACKUP TABLESPACE MAIN BACKUPSET 'ts_bak_01';
2.3 增量备份

下面以增量备份用户 MAIN 表空间为例

BACKUP TABLESPACE MAIN BACKUPSET 'ts_full_bak_01';
BACKUP TABLESPACE MAIN INCREMENT BACKUPSET 'ts_increment_bak_01';
BACKUP TABLESPACE MAIN INCREMENT BASE ON BACKUPSET 'ts_full_bak_01' BACKUPSET 'ts_increment_bak_02';

上述示例中,增量备份 ts_increment_bak_02 若不指定备份集 ts_full_bak_01 作为基备份,那么默认会使用最近一次的备份集 ts_increment_bak_01 作为基备份。


3、表备份

与备份数据库与表空间不同,备份表不需要服务器配置归档。

3.1 语法
BACKUP TABLE <表名> [TO <备份名>] [BACKUPSET '<备份集路径>'] 
[DEVICE TYPE <介质类型> [PARMS '<介质参数>']] [BACKUPINFO '<备份描述>'] [MAXPIECESIZE <备份片限制大小>] [LIMIT <read_limit>|<write_limit>] 
[IDENTIFIED BY <密码>|"<密码>" [WITH ENCRYPTION <TYPE>][ENCRYPT WITH <加密算法>]] 
[COMPRESSED [LEVEL <压缩级别>]]
[TRACE FILE '<TRACE文件名>'] [TRACE LEVEL <TRACE日志级别>];
<read_limit>::= READ SPEED <读速度上限> [WRITE SPEED <写速度上限>]
<write_limit>::= WRITE SPEED <写速度上限>

使用说明:

  1. 仅支持对用户的非分区的行存储表堆表进行备份,不支持对分区表的备份。在非分区表中,也不支持对临时表、物化视图表、物化视图附属表、日志表和特定模式(DBG_PKG/INFORMATION_SCHEMA/INFO_SCHEM/SYSREP/SYSGEO/SYSJOB/SYSCPT/SYS)下的表进行表备份。
  2. 表的**列类型为对象类型的表不支持表备份**。
  3. 表备份不备份表上的注释以及 default 表达式中的函数定义,因此还原时需用户自行确认。
  4. 不支持在加密库上进行表备份与还原。
  5. 当备份数据超过限制大小时,会生成新的备份文件,新的备份文件名是初始文件名后加文件编号。
  6. 表备份时,其所属表空间必须处于联机状态。
  7. 目前表备份不支持备份到 TAPE 介质上。
3.2 完整备份步骤
  1. 保证数据库处于 OPEN 状态;
  2. 创建待备份的表 TAB_01:
CREATE TABLE TAB_01(C1 INT);
  1. disql 中输入备份表语句,简单的备份语句如下:
BACKUP TABLE TAB_01 BACKUPSET '/dmdata/dmbak/tab_bak_01';

4、归档备份

4.1 归档备份前提
  1. 归档文件的 db_magic、permanent_magic 值和库的 db_magic、permanent_magic 值必须一样;

  2. 服务器必须配置归档;

  3. 归档日志必须连续,如果出现不连续的情况,前面的连续部分会忽略,仅备份最新的连续部分。如果备份时未收集到指定范围内的归档,则直接报错。联机备份的时候经常会切换归档文件,最后一个归档总是空的,所以最后一个归档不会被备份

4.2 语法
BACKUP <ARCHIVE LOG |ARCHIVELOG> [ALL | [FROM LSN <lsn>]| [UNTIL LSN <lsn>]|
[LSN BETWEEN <lsn> AND <lsn>] | [FROM TIME '<time>']|[UNTIL TIME '<time>']|
[TIME BETWEEN'<time>'> AND '<time>']][<notBackedUpSpec>][<指定备份集子句>][DELETE INPUT]
[TO <备份名>][<备份集子句>];
<备份集子句>::=BACKUPSET ['<备份集路径>'][DEVICE TYPE <介质类型> [PARMS '<介质参数>']]
[BACKUPINFO '<备份描述>'] [MAXPIECESIZE <备份片限制大小>] 
[LIMIT <read_limit>|<write_limit>] 
[IDENTIFIED BY <密码>|"<密码>" [WITH ENCRYPTION <TYPE>][ENCRYPT WITH <加密算法>]]
[COMPRESSED [LEVEL <压缩级别>]] [WITHOUT LOG]
[TRACE FILE '<TRACE文件名>'] [TRACE LEVEL <TRACE日志级别>]
[TASK THREAD <线程数>][PARALLEL [<并行数>][READ SIZE <拆分块大小>]]
<notBackedUpSpec>::=NOT BACKED UP [<num> TIMES]|[SINCE TIME '<datetime_string>']
<read_limit>::= READ SPEED <读速度上限> [WRITE SPEED <写速度上限>]
<write_limit>::= WRITE SPEED <写速度上限>

参数说明:

参数说明
ALL备份所有的归档。若不指定,则默认为 ALL。
FROM LSN指定备份的起始 lsn。
UNTIL LSN指定备份的截止 lsn。
FROM TIME指定备份的开始的时间点。
UNTIL TIME指定备份的截止的时间点。
BETWEEN … AND …指定备份的区间。指定区间后,只会备份指定区间内的归档文件。
DELETE INPUT用于指定备份完成之后,是否删除归档操作。
BACKUPSET指定当前备份集目录。若指定为相对路径,例如 BACKUPSET ‘db_bak_01’,则在默认备份目录中生成备份集。若不指定(命令不写),则在默认备份目录中按约定规则,生成默认备份集目录。
SQL> backup database full;
DEVICE TYPE指存储备份集的介质类型,支持 DISK 和 TAPE,默认 DISK
PARMS只对介质类型为 TAPE 时有效
BACKUPINFO备份的描述信息。
MAXPIECESIZE最大备份片文件大小上限,以 MB 为单位,最小 128MB,32 位系统最大 2GB,64 位系统最大 128GB,缺省为最大取值
LIMIT指定备份时最大的读写文件速度,单位为 MB/S,默认为 0,表示无速度限制。
IDENTIFIED BY指定备份时的加密密码
WITH ENCRYPTION指定加密类型,取值范围 0、1、2。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联机数据库备份是否备份联机日志。如果使用,则表示不备份,否则表示备份。
TRACE LEVEL是否启用 TRACE。有效值 1、2,默认为 1 表示不启用 TRACE,此时若指定了 TRACE FILE,会生成 TRACE 文件,但不写入 TRACE 信息;为 2 启用 TRACE 并在 TRACE 文件中写入 TRACE 相关内容。
TRACE FILE指定生成的 TRACE 文件。启用 TRACE,但不指定 TRACE FILE 时,默认在 DM 数据库系统的 log 目录下生成 DM_SBTTRACE_年月.log 文件;若使用相对路径,则生成在执行码同级目录下;若用户指定 TRACE FILE,则指定的文件不能为已经存在的文件,否则报错。TRACE FILE 不可以为 ASM 文件。
TASK THREAD备份过程中数据处理过程线程的个数,取值范围 0~64,默认为 4。若指定为 0,则调整为 1;若指定超过当前系统主机核数,则调整为主机核数。线程数(TASK THREAD)*并行数(PARALLEL)不得超过 512。
PARALLEL指定**并行备份的并行数和拆分块大小**。并行数取值范围 0~128。若不指定并行数,则默认为 4,若指定为 0 或者 1 均认为非并行备份。若未指定关键字 PARALLEL,则认为非并行备份。
READ SPEED备份时读速度上限,取值范围 0~2147483647,单位为 MB/S,0 表示无限制。
WRITE SPEED备份时写速度上限,取值范围 0~2147483647,单位为 MB/S,0 表示无限制。
4.3 备份步骤
  1. 配置归档;
  2. 保证数据库处于 OPEN 或者 MOUNT 状态;
  3. DIsql 中输入备份数据库语句。

在这里插入图片描述
如何通过 LSN BETWEEN … AND …来指定起始和截至 LSN

  • 首先,确定 LSN 范围
select ARCH_LSN, CLSN, PATH from V$ARCH_FILE;ARCH_LSN             CLSN                 PATH
----------- ---------- ------------------------------------------------------------------
314973      315394     /dmdata/arch/ARCHIVE_LOCAL1_0x2DFFFDD8_EP0_2024-02-10_21-50-01.log
315395      315713     /dmdata/arch/ARCHIVE_LOCAL1_0x2DFFFDD8_EP0_2024-02-10_21-57-56.log
……
//通过查询结果选出备份的起始LSN和截至LSN。比如315395	315713
  • 备份归档
BACKUP ARCHIVELOG LSN BETWEEN 315395 AND 315713 BACKUPSET '/dmdata/dmbak/arch_bak_time_14-78';

三、数据备份高级

DM 的数据库、表空间、表备份和归档备份**均支持创建加密备份和备份时设置跟踪日志文件**,本节仅以数据库备份为例说明这两种类型备份的创建。

1、加密备份

备份语句中通过指定 IDENTIFIED BY…WITH ENCRYPTION…ENCRYPT WITH…执行加密备份。其中,IDENTIFIED BY 子句指定加密密码,密码长度为 9 到 48 个字节,若密码长度不符合要求会报错;

WITH ENCRYPTION 子句指定加密类型,加密类型分为简单加密和复杂加密,简单加密是对备份文件设置口令,但文件内容仍以明文存储复杂加密则对备份文件进行完全的加密,备份文件以密文方式存储,用户可根据备份数据的重要程度选择加密类型;ENCRYPT WITH 子句指定加密算法,默认使用的加密算法为 AES256_CFB。

加密备份过程中 IDENTIFIED BY 子句必须指定,子句 WITH ENCRYPTION 和子句 ENCRYPT WITH 可不指定,此时 WITH ENCRYPTION 默认值为 1,ENCRYPT WITH 默认值为 AES256_CFB。

  • 简单加密
BACKUP DATABASE BACKUPSET '/dmdata/dmbak/db_bak_for_encrypt' IDENTIFIED BY "cdb546789";BACKUP DATABASE BACKUPSET '/dmdata/dmbak/db_bak_for_encrypt' IDENTIFIED BY "cdb546789" ENCRYPT WITH RC4;
  • 复杂加密
BACKUP DATABASE BACKUPSET '/dmdata/dmbak/db_bak_for_encrypt' IDENTIFIED BY "cdb546789" WITH ENCRYPTION 2;BACKUP DATABASE BACKUPSET '/dmdata/dmbak/db_bak_for_encrypt' IDENTIFIED BY "cdb546789" WITH ENCRYPTION 2 ENCRYPT WITH RC4;
  • 若指定了加密密码,但加密类型 WITH ENCRYPTION 指定为 0,则为非加密备份
BACKUP DATABASE BACKUPSET '/dmdata/dmbak/db_bak_for_encrypt' IDENTIFIED BY "cdb546789" WITH ENCRYPTION 0;

注意:

  • 对于增量备份加密,如果基备份存在加密,则增量备份使用的加密密码、加密类型和加密算法必须与基备份保持一致;
  • 如果基备份未进行加密处理,则对增量备份使用的加密密码、加密类型和加密算法没有特殊要求。

2、设置跟踪日志文件

DM 备份时支持设置 SBT 接口跟踪日志文件,日志记录了 SBT 接口的调用过程,用户通过查看日志可跟踪备份还原过程。

与生成跟踪日志文件相关的参数有两个:TRACE FILE 和 TRACE LEVEL。 TRACE FILE 用于指定生成的跟踪日志文件路径,TRACE LEVEL 表示是否启用 TRACE。TRACE LEVEL 有效值包括 1 和 2。1 表示不启用 TRACE 功能,2 表示启用,系统默认值为 1。

2.1 指定TRACE FILE
  • TRACE LEVEL = 1(默认值)
-- 下面两个语句等价,1.log日志内容为空,保存在$DM_HOME/bin/1.log
backup database trace file '1.log';   
backup database trace file '1.log' trace level 1;

指定参数 TRACE FILE 但 TRACE LEVEL 值设置为 1 即不启用 TRACE 功能,则会生成 TRACE 文件,但不会写入 TRACE 信息。

  • TRACE LEVEL = 2
backup database trace file '2.log' trace level 2;  -- 2.log日志内容不为空,保存在$DM_HOME/bin/2.log
backup database trace file '/dmdata/3.log' trace level 2;  -- 3.log日志内容不为空,保存在/dmdata/3.log

注意:

  • 若 TRACE FILE 使用相对路径,日志文件生成在执行码同级目录下**$DM_HOME/bin**。
  • 若 TRACE FILE 使用绝对路径,日志文件生成在指定的绝对路径。
  • 如果指定的 TRACE 文件已存在,则报错
2.2 不指定TRACE FILE
  • TRACE LEVEL = 2
backup database trace level 2;  -- 在$DM_HOME/log路径下生成.log文件

TRACE LEVEL 值设置为 2 即启用 TRACE 功能,但若 TRACE FILE 没有指定,则系统默认在执行码路径的 log 目录$DM_HOME/log生成 DM_SBTTRACE_年月.log 文件


四、管理备份

1、备份管理相关系统过程与函数总结

1.1 函数
函数说明
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批量删除满足指定条件的所有备份集
SF_BAKSET_REMOVE_BATCH_S批量安全删除满足指定条件的所有库级备份集
SF_BAKSET_REMOVE_BATCH_N批量删除满足指定条件的所有备份集,并保留用户指定个数的库级完全备份集
1.2 过程
存储过程说明
SP_DB_BAKSET_REMOVE_BATCH批量删除指定时间之前的数据库备份集
SP_TS_BAKSET_REMOVE_BATCH批量删除指定表空间对象及指定时间之前的表空间备份集
SP_TAB_BAKSET_REMOVE_BATCH批量删除指定表对象及指定时间之前的表备份集
SP_ARCH_BAKSET_REMOVE_BATCH批量删除指定条件的归档备份集

注意:

上面函数存储过程的使用说明,内容太多,参考官方文档。

2、备份管理相关动态视图总结

视图说明
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显示当前备份任务待备份数据文件列表

五、数据还原

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

1、表还原

表还原之后不需要恢复操作。

1.1 语法
RESTORE TABLE [<表名>] [STRUCT] [KEEP TRXID] FROM BACKUPSET'<备份集路径>' [DEVICE TYPE <介质类型> [PARMS '<介质参数>']] [IDENTIFIED BY <密码>|"<密码>" [ENCRYPT WITH <加密算法>]] [TRACE FILE '<TRACE文件名>'] [TRACE LEVEL <TRACE日志级别>];
参数说明
表名可选参数,指定需要还原的表名称。
指定表名:还原时数据库中必须存在该表,否则报错,不会从备份集判断是否存在目标表
不指定表名:则使用备份集中记录的备份表作为还原目标表。
STRUCT执行表结构还原,若未指定,则认为是表中数据还原;表数据还原要求还原目标表结构与备份集中完全一致,否则报错,所以表结构还原可以在表数据还原之前执行,减少报错。
KEEP TRXID指定还原后数据页上记录的 TRXID 保持不变,若发现备份时系统最大的 TRXID 大于等于当前系统的最大 TRXID,则将当前系统最大事务 ID+1000。调整后副作用:rec_id >= next_trxid 的记录,或者 rec_id <= bak_max_trxid + 1000 的记录,可能因为执行了表还原,导致查询结果不正确,原本不可见的数据,变得可见了。
…………
1.2 还原限制
  • 仅支持对普通用户表进行还原,包括堆表。其中,系统表、临时表、物化视图表、物化视图附属表、日志表以及特定模式(DBG_PKG/INFORMATION_SCHEMA/INFO_SCHEM/SYSREP/SYSGEO/SYSJOB/SYSCPT/SYS)下的表不支持还原。

  • 列类型为对象类型的表不支持表还原。

  • 若还原表中存在位图连接索引和位图连接虚索引则不支持还原。

  • 若为加密库,表还原时要求源库与目标库加密算法一致。

  • 备份集路径指备份集所在目录,其中应包含完整备份数据,包括元数据文件(.meta)和备份片文件(.bak)。仅支持从表备份集中还原表

  • 表名设置为可选参数。若指定,则数据库中必须存在该表且表定义必须与备份表严格一致;若不指定,则使用备份集中记录的备份表作为还原目标表。

  • 还原时若不指定目标表,则表还原操作需要 DBA 权限;若指定目标表,则目标表的创建者可以进行表还原操作。

  • 目标表所在的表空间必须处于联机状态。

  • 数据守护环境下,主库允许表备份还原,备库不允许。

  • MOUNT 和 SUSPEND 状态下不允许进行表还原,必须处于OPEN状态

  • MPP 环境不允许进行表还原。

  • 若在语句中指定 STRUCT 关键字,则执行表结构还原。表结构还原会根据备份集中备份表还原要求,对目标表定义进行校验,并删除目标表中已存在的二级索引和约束。

  • 若不指定 STRUCT 关键字,则执行表数据还原,表数据还原默认仅会将备份表中聚集索引上的数据进行还原。表数据还原默认仅会在目标表定义与备份表一致且不存在二级索引和约束的情况下执行。

  • 若在未指定 STRUCT 的情况下,执行还原出现存在二级索引或冗余约束的错误,或在不指定目标表的情况下,报目标不存在的错误,可先执行 STRUCT 还原后,再继续执行实际数据的还原。

  • 若用户指定 TRACE FILE,则指定的文件不能为已经存在的文件,否则报错;也不可以为 ASM 文件。

  • 若表中存在大字段列,且表备份时 INI 参数 BLOB_OUTROW_REC_STOR 大于 0,但建立还原目标表时 INI 参数 BLOB_OUTROW_REC_STOR 等于 0,那么若大字段列存在行外数据,则在执行表还原时会报错,且表数据会丢失。

  • 表还原不检查目标表的缺省表达式(default 值)

  • 若表列进行了加密,则表还原时不能跨库或跨表还原,只能还原到自身。


1.3. 不包含索引或约束的还原步骤
  1. 保证数据库为 OPEN 状态;
  2. 创建待备份的表
CREATE TABLE TAB_FOR_RES_01(C1 INT);
  1. 备份表数据
BACKUP TABLE TAB_FOR_RES_01 BACKUPSET '/dmdata/dmbak/tab_bak_for_res_01';
  1. 校验备份,此步骤为可选
SELECT SF_BAKSET_CHECK('DISK','/dmdata/dmbak/tab_bak_for_res_01');
  1. 还原表数据
RESTORE TABLE TAB_FOR_RES_01 FROM BACKUPSET '/dmdata/dmbak/tab_bak_for_res_01';

1.4 包含索引或约束的还原步骤
  1. 保证数据库为 OPEN 状态;
  2. 创建待备份的表
CREATE TABLE TAB_FOR_RES_02(C1 INT);
  1. 创建索引
CREATE INDEX I_TAB_FOR_RES_02 ON TAB_FOR_RES_02(C1);
  1. 备份表
BACKUP TABLE TAB_FOR_RES_02 BACKUPSET '/dmdata/dmbak/tab_bak_for_res_02';
  1. 校验备份,此步骤为可选
SELECT SF_BAKSET_CHECK('DISK','/dmdata/dmbak/tab_bak_for_res_02');
  1. 执行表结构还原,表备份和目标表中都包含索引,如果直接执行表数据还原会报错:还原表中存在二级索引或冗余约束
RESTORE TABLE TAB_FOR_RES_02 STRUCT FROM BACKUPSET '/dmdata/dmbak/tab_bak_for_res_02';
  1. 执行表数据还原
RESTORE TABLE TAB_FOR_RES_02 FROM BACKUPSET '/dmdata/dmbak/tab_bak_for_res_02';
1.5 指定还原时不重建索引

表备份时会默认备份表中的索引,还原时使用 RESTORE TABLE...WITHOUT INDEX...语句可选择不还原索引

  1. 建表跟索引
CREATE TABLE TAB_FOR_IDX_01(C1 INT);CREATE INDEX I_TAB_FOR_IDX_01 ON TAB_FOR_IDX_01 (C1);
  1. 备份(略)

  2. 还原,但不重建索引

RESTORE TABLE TAB_FOR_RES WITHOUT INDEX FROM BACKUPSET '/dmdata/dmbak/tab_bak_for_res_01';
1.6 指定还原时不重建约束

表备份时会默认备份表中的索引定义,还原时使用 RESTORE TABLE...WITHOUT CONSTRAINT...语句可选择还原时不重建约束

  1. 建表跟索引
CREATE TABLE TAB_FOR_CONS_01(C1 INT);CREATE INDEX I_TAB_FOR_CONS_01 ON TAB_FOR_CONS_01 (C1);
  1. 备份(略)

  2. 还原,但不重建约束

RESTORE TABLE TAB_FOR_RES WITHOUT CONSTRAINT FROM BACKUPSET '/dmdata/dmbak/tab_bak_for_res_01';

达梦社区:https://eco.dameng.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/258273.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java生态环境评价Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java 生态环境评价管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysq…

.netcore音乐播放器 musicPlayer

html音乐播放器 .net core mvc 音乐播放器 支持上传本地音乐到云端 支持通过文件夹创建歌单(不需要数据库和其他数据存储) 通过歌单分类 播放歌曲 支持播放暂停 上一首 下一首切换 支持显示歌曲列表 歌单切换 展示歌曲根据歌单名去获取歌曲显示 功能 版权原因 或者想创建自己的…

macOS 安装 conda

macOS 安装 conda 安装 conda参考 Conda是一个开源的软件包管理系统和环境管理系统&#xff0c;用于安装和管理软件包和其依赖项。 安装 conda mkdir miniconda3 cd miniconda3 bash Miniconda3-latest-MacOSX-x86_64.sh$ conda list参考 macOS 安装 conda开始使用conda

python+django学习交流论坛系统244t6

系统可以提供信息显示和相应服务&#xff0c;其管理员管理用户发布的博客文章以及用户之间的论坛交流信息&#xff0c;管理留言以及文章分类信息。用户在论坛交流模块发布帖子以及评论帖子&#xff0c;在前台查看和评论其他用户发布的博客文章&#xff0c;收藏博客文章&#xf…

esp8266-01s WIFI模块使用(一)- AT指令

时间记录&#xff1a;2024/2/15 一、注意事项 &#xff08;1&#xff09;使用英文双引号表示字符串数据 &#xff08;2&#xff09;默认波特率115200 &#xff08;3&#xff09;AT指令以“\r\n”结尾 &#xff08;4&#xff09;3.3V电源接口先连接单片机的3.3V&#xff0c;如…

阿里云“BGP(多线)”和“BGP(多线)_精品”区别价格对比

阿里云香港等地域服务器的网络线路类型可以选择BGP&#xff08;多线&#xff09;和 BGP&#xff08;多线&#xff09;精品&#xff0c;普通的BGP多线和精品有什么区别&#xff1f;BGP&#xff08;多线&#xff09;适用于香港本地、香港和海外之间的互联网访问。使用BGP&#xf…

用HTML5 Canvas创造视觉盛宴——动态彩色线条效果

目录 一、程序代码 二、代码原理 三、运行效果 一、程序代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- 声明文档类型为XHTML 1.0 Transitional -…

ElasticSearch之search API

写在前面 本文看下查询相关内容&#xff0c;这也是我们在实际工作中接触的最多的&#xff0c;所以有必要好好学习下&#xff01; 1&#xff1a;查询的分类 主要分为如下2类&#xff1a; 1:基于get查询参数的URI search 2&#xff1a;基于post body的request body search&am…

Netty Review - 直接内存的应用及源码分析

文章目录 Pre概述应用访问效率&#xff1a; 堆内存 VS 直接内存申请效率&#xff1a; 堆内存 VS 直接内存数据存储结构&#xff1a; 堆内存 VS 直接内存结论 ByteBuffer.allocateDirect 源码分析unsafe.allocateMemory(size) ---> C方法 JVM参数 -XX:MaxDirectMemorySize直接…

隐函数的求导【高数笔记】

1. 什么是隐函数&#xff1f; 2. 隐函数的做题步骤&#xff1f; 3. 隐函数中的复合函数求解法&#xff0c;与求导中复合函数求解法有什么不同&#xff1f; 4. 隐函数求导的过程中需要注意什么&#xff1f;

Mysql运维篇(四) Xtarbackup--备份与恢复练习

一路走来&#xff0c;所有遇到的人&#xff0c;帮助过我的、伤害过我的都是朋友&#xff0c;没有一个是敌人。如有侵权&#xff0c;请留言&#xff0c;我及时删除&#xff01; 前言 xtrabackup是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具&#xff0c;具有…

164基于matlab的奇异值分解、小波降噪、zoom细化

基于matlab的奇异值分解、小波降噪、zoom细化。程序已调通&#xff0c;可直接运行。 164 奇异值分解 小波降噪 zoom细化 (xiaohongshu.com)

Spring AMQP(3.1.1)设置ConfirmCallback和ReturnsCallback

文章目录 一、起因二、代码1. 定义exchange和queue2. RabbitTemplate3. EnhancedCorrelationData4. 发送消息 环境如下 VersionSpringBoot3.2.1spring-amqp3.1.1RabbitMq3-management 一、起因 老版本的spring-amqp在CorrelationData上设置ConfirmCallback。但是今天却突然发…

Python访问数据库

目录 SQLite数据库 SQLite数据类型 Python数据类型与SQLite数据类型的映射 使用GUI管理工具管理SQLite数据库 数据库编程的基本操作过程 sqlite3模块API 数据库连接对象Connection 游标对象Cursor 数据库的CRUD操作示例 示例中的数据表 无条件查询 有条件查询 插入…

【Java多线程】对进程与线程的理解

目录 1、进程/任务&#xff08;Process/Task&#xff09; 2、进程控制块抽象(PCB Process Control Block) 2.1、PCB重要属性 2.2、PCB中支持进程调度的一些属性 3、 内存分配 —— 内存管理&#xff08;Memory Manage&#xff09; 4、线程&#xff08;Thread&#xff09;…

Unity(单元测试)在STM32上的移植与应用

概述 Unity Test是一个为C构建的单元测试框架。本文基于STM32F407为基础&#xff0c;完全使用STM32CubeIDE进行开发&#xff0c;移植和简单使用Unity。 单片机型号&#xff1a;STM32F407VET6 软件&#xff1a;STM32CubeIDE Version: 1.14.1 Unity Version&#xff1a;2.…

相机图像质量研究(22)常见问题总结:CMOS期间对成像的影响--光学串扰

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

LeetCode、338. 比特位计数【简单,位运算】

文章目录 前言LeetCode、338. 比特位计数【中等&#xff0c;位运算】题目链接与分类思路位运算移位处理前缀思想实现 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java…

快速学习Spring

Spring 简介 Spring 是一个开源的轻量级、非侵入式的 JavaEE 框架&#xff0c;它为企业级 Java 应用提供了全面的基础设施支持。Spring 的设计目标是简化企业应用的开发&#xff0c;并解决 Java 开发中常见的复杂性和低效率问题。 Spring常用依赖 <dependencies><!-…

OpenCV入门:图像处理的基石

在数字图像处理领域&#xff0c;OpenCV&#xff08;开源计算机视觉库&#xff09;是一个不可或缺的工具。它包含了一系列强大的算法和函数&#xff0c;使得开发者可以轻松地处理图像和视频数据。本文将带你走进OpenCV的世界&#xff0c;了解其基本概念和常见应用。 1. OpenCV简…