执行SQL语句进行表空间备份的方法是什么

52次阅读
没有评论

共计 13592 个字符,预计需要花费 34 分钟才能阅读完成。

这篇文章主要介绍“执行 SQL 语句进行表空间备份的方法是什么”,在日常操作中,相信很多人在执行 SQL 语句进行表空间备份的方法是什么问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”执行 SQL 语句进行表空间备份的方法是什么”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

在 DIsql 工具中使用 BACKUP 语句也可以备份单个表空间。同备份数据库一样,执行表空间备份服务器也必须运行在归档模式下,启动 DIsql 输入以下语句即可备份表空间:

SQL  backup tablespace main backupset  ts_backup_main_01 
executed successfully
used time: 00:00:13.841. Execute id is 45.

默认的备份目录为 +DMDATA/data/rac/bak

SQL  select * from v$dm_ini where para_name= BAK_PATH 
LINEID PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION PARA_TYPE
---------- --------- -------------------- --------- --------- ------- -------------------- -------------------- ---------------- ---------
1 BAK_PATH +DMDATA/data/rac/bak NULL NULL N +DMDATA/data/rac/bak +DMDATA/data/rac/bak backup file path READ ONLY
used time: 9.531(ms). Execute id is 48.
SQL  select * from v$backupset where backup_path like  +DMDATA/data/rac/bak% 
LINEID DEVICE_TYPE BACKUP_ID PARENT_ID BACKUP_NAME BACKUP_PATH TYPE LEVEL RANGE# OBJECT_NAME OBJECT_ID BASE_NAME BACKUP_TIME DESC# ENCRYPT_TYPE COMPRESS_LEVEL WITHOUT_LOG USE_PWR PKG_SIZE BEGIN_LSN END_LSN BKP_NUM DBF_NUM PARALLEL_NUM DDL_CLONE MPP_FLAG MIN_TRX_START_LSN MIN_EXEC_VER CUMULATIVE
---------- ----------- ----------- ----------- ----------------------------------- -------------------------------------- ----------- ----------- ----------- ----------- ----------- --------- --------------------------- ----- ------------ -------------- ----------- ----------- ----------- -------------------- -------------------- ----------- ----------- ------------ ----------- ----------- -------------------- ------------ -----------
1 DISK 2044941324 -1 TS_FULL_MAIN_20200529_091214_000914 +DMDATA/data/rac/bak/ts_backup_main_01 0 0 2 MAIN 4 2020-05-29 09:12:22.000279 0 0 0 0 33554432 50908 50990 1 1 1 0 0 49398 117507596 0
used time: 00:00:01.041. Execute id is 50.
ASM cd ts_backup_main_01
+DMDATA/data/rac/bak/ts_backup_main_01
Used time: 2.098(ms).
ASM ls
 file : ts_backup_main_01.bak
 file : ts_backup_main_01.meta
total count 2.
Used time: 3.583(ms).

备份集“ts_backup_main_01”会生成到默认的备份路径下。如要设置其他备份选项需参考下文的联机备份表空间语法。

语法如下:
BACKUP TABLESPACE 表空间名 [FULL | INCREMENT [CUMULATIVE][WITH BACKUPDIR 基备份搜索目录 {, 基备份搜索目录}]|
[BASE ON BACKUPSET 基备份集目录]][TO 备份名] BACKUPSET [备份集路径]
[DEVICE TYPE 介质类型 [PARMS 介质参数]]
[BACKUPINFO 备份集描述] [MAXPIECESIZE 备份片限制大小]
[IDENTIFIED BY 加密密码 [WITH ENCRYPTION][ENCRYPT WITH 加密算法]] [COMPRESSED [LEVEL 压缩级别]]
[TRACE FILE TRACE 文件名] [TRACE LEVEL TRACE 日志级别]
[TASK THREAD 线程数][PARALLEL [ 并行数

表空间名:指定备份的表空间名称(除了 temp 表空间)。

FULL|INCREMENT:备份类型,FULL 表示完全备份,INCREMENT 表示增量备份。若不指定,默认为完全备份。

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

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

BASE ON:用于增量备份中,指定基备份集目录。

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

BACKUPSET:指定当前备份集生成路径。若指定为相对路径,则在默认备份路径中生成备份集。若不指定,则在默认备份路径下以约定规则生成默认的表空间备份集目录。表空间级备份默认备份集目录名生成规则:TS_表空间名_备份类型_时间,如
TS_MAIN_INCREMENT_20160518_143057_123456。表明该备份集为 2016 年 5 月 18 日 14 时 30 分 57 秒 123456 毫秒时生成的表空间名为 MAIN 的表空间增量备份集。若表空间名称超长,使上述完整名称长度大于 128 个字节,则去掉表空间名字段,调整为 TS_备份类型_时间。

DEVICE TYPE:指存储备份集的介质类型,支持 DISK 和 TAPE,默认 DISK。DISK 表示存储备份集到磁盘,TAPE 表示存储到磁带。

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

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

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

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

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

ENCRYPT WITH:加密算法。缺省情况下,算法为 AES256_CFB。

加密算法包括:

DES_ECB、DES_CBC、DES_CFB、DES_OFB、DESEDE_ECB、DESEDE_CBC、DESEDE_CFB、DESEDE_OFB、AES128_ECB、AES128_CBC、AES128_CFB 、AES128_OFB、AES192_ECB、AES192_CBC、AES192_CFB 、AES192_OFB、AES256_ECB、AES256_CBC、AES256_CFB 、AES256_OFB 、RC4

COMPRESSED:取值范围 0~9。0 表示不压缩,1 表示 1 级压缩,9 表示 9 级压缩。压缩级别越高,压缩越慢,但压缩比越高。若未指定,但指定 COMPRESSED,则默认 1;否则,默认 0。

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

TRACE LEVEL:有效值 1、2,默认为 1 表示不启用 TRACE,此时若指定了 TRACE FILE,会生成 TRACE 文件,但不写入 TRACE 信息;为 2 启用 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。

使用说明:
1. 当备份数据超过限制大小时,会生成新的备份文件,新的备份文件名是初始文件名后加文件编号。
2. 系统处于归档模式下时,才允许进行表空间备份。
3. MOUNT 状态下,不允许进行表空间备份。
4. MPP 环境不允许进行表空间备份。

2. 设置备份选项
表空间备份也可指定备份集路径、介质类型、备份名等备份选项。

增量备份指定基备份目录
BASE ON 参数用于增量备份中,用来指定基备份集的目录。如果不指定该参数,会在备份搜索目录中搜索最近一次的完全备份或增量备份作为这次增量备份的基备份。若需要在特定的备份集基础上执行增量备份就需要使用该参数。

下面以增量备份用户 MAIN 表空间为例,指定 BASE ON 参数执行增量备份:

SQL  backup tablespace main backupset  /dm7/backup/ts_main_full_bak_20200529_01 
executed successfully
used time: 00:00:01.133. Execute id is 51.
SQL  backup tablespace main increment backupset  /dm7/backup/ts_main_increment_bak_20200529_01 
executed successfully
used time: 00:00:01.126. Execute id is 52.
SQL  select sf_bakset_backup_dir_add( disk , /dm7/backup/ts_main_full_bak_20200529_01 
LINEID SF_BAKSET_BACKUP_DIR_ADD(disk , /dm7/backup/ts_main_full_bak_20200529_01)
---------- ---------------------------------------------------------------------------
1 1
used time: 2.024(ms). Execute id is 53.
SQL  select sf_bakset_backup_dir_add( disk , /dm7/backup/ts_main_increment_bak_20200529_01 
LINEID SF_BAKSET_BACKUP_DIR_ADD(disk , /dm7/backup/ts_main_increment_bak_20200529_01)
---------- --------------------------------------------------------------------------------
1 1
used time: 1.520(ms). Execute id is 54.
SQL  select * from v$backupset where backup_path like  /dm7/backup/ts% 
LINEID DEVICE_TYPE BACKUP_ID PARENT_ID BACKUP_NAME BACKUP_PATH TYPE LEVEL RANGE# OBJECT_NAME OBJECT_ID BASE_NAME BACKUP_TIME DESC# ENCRYPT_TYPE COMPRESS_LEVEL WITHOUT_LOG USE_PWR PKG_SIZE BEGIN_LSN END_LSN BKP_NUM DBF_NUM PARALLEL_NUM DDL_CLONE MPP_FLAG MIN_TRX_START_LSN MIN_EXEC_VER CUMULATIVE
---------- ----------- ----------- ----------- ----------------------------------- --------------------------------------------- ----------- ----------- ----------- ----------- ----------- ----------------------------------- --------------------------- ----- ------------ -------------- ----------- ----------- ----------- -------------------- -------------------- ----------- ----------- ------------ ----------- ----------- -------------------- ------------ -----------
1 DISK 1493450986 -1 TS_FULL_MAIN_20200529_111133_000175 /dm7/backup/ts_main_full_bak_20200529_01 0 0 2 MAIN 4 2020-05-29 11:11:34.000272 0 0 0 0 33554432 50908 50996 1 1 1 0 0 49398 117507596 0
2 DISK 1885674227 -1 TS_INCR_MAIN_20200529_111346_000167 /dm7/backup/ts_main_increment_bak_20200529_01 1 0 2 MAIN 4 TS_FULL_MAIN_20200529_111133_000175 2020-05-29 11:13:47.000258 0 0 0 0 33554432 50908 51002 1 1 1 0 0 49398 117507596 0
used time: 00:00:01.048. Execute id is 55.
SQL  backup tablespace main increment base on backupset  /dm7/backup/ts_main_full_bak_20200529_01  backupset  /dm7/backup/ts_main_increment_bak_20200529_02 
executed successfully
used time: 00:00:01.133. Execute id is 57.
SQL  select sf_bakset_backup_dir_add( disk , /dm7/backup/ts_main_increment_bak_20200529_02 
LINEID SF_BAKSET_BACKUP_DIR_ADD(disk , /dm7/backup/ts_main_increment_bak_20200529_02)
---------- --------------------------------------------------------------------------------
1 1
used time: 1.748(ms). Execute id is 58.
SQL  select * from v$backupset where backup_path like  /dm7/backup/ts% 
LINEID DEVICE_TYPE BACKUP_ID PARENT_ID BACKUP_NAME BACKUP_PATH TYPE LEVEL RANGE# OBJECT_NAME OBJECT_ID BASE_NAME BACKUP_TIME DESC# ENCRYPT_TYPE COMPRESS_LEVEL WITHOUT_LOG USE_PWR PKG_SIZE BEGIN_LSN END_LSN BKP_NUM DBF_NUM PARALLEL_NUM DDL_CLONE MPP_FLAG MIN_TRX_START_LSN MIN_EXEC_VER CUMULATIVE
---------- ----------- ----------- ----------- ----------------------------------- --------------------------------------------- ----------- ----------- ----------- ----------- ----------- ----------------------------------- --------------------------- ----- ------------ -------------- ----------- ----------- ----------- -------------------- -------------------- ----------- ----------- ------------ ----------- ----------- -------------------- ------------ -----------
1 DISK 1493450986 -1 TS_FULL_MAIN_20200529_111133_000175 /dm7/backup/ts_main_full_bak_20200529_01 0 0 2 MAIN 4 2020-05-29 11:11:34.000272 0 0 0 0 33554432 50908 50996 1 1 1 0 0 49398 117507596 0
2 DISK 1885674227 -1 TS_INCR_MAIN_20200529_111346_000167 /dm7/backup/ts_main_increment_bak_20200529_01 1 0 2 MAIN 4 TS_FULL_MAIN_20200529_111133_000175 2020-05-29 11:13:47.000258 0 0 0 0 33554432 50908 51002 1 1 1 0 0 49398 117507596 0
3 DISK 707233150 -1 TS_INCR_MAIN_20200529_111805_000417 /dm7/backup/ts_main_increment_bak_20200529_02 1 0 2 MAIN 4 TS_FULL_MAIN_20200529_111133_000175 2020-05-29 11:18:06.000513 0 0 0 0 33554432 50908 51008 1 1 1 0 0 49398 117507596 0
used time: 00:00:01.045. Execute id is 59.

上述示例中,增量备份 ts_main_increment_bak_20200529_02 若不指定备份集 /dm7/backup/ts_main_full_bak_20200529_01 作为基备份,那么默认会使用最近一次的备份集 /dm7/backup/ts_main_increment_bak_20200529_01 作为基备份。

3. 备份表空间
同数据库备份一样,表空间备份也可分为完全备份和增量备份。本节主要内容包括:
1. 完全备份
2. 增量备份

1. 完全备份
执行表空间备份,数据库必须处于 OPEN 状态,MOUNT 和 SUSPEND 状态下不允许执行表空间备份。表空间备份就是拷贝表空间内所有数据文件有效数据的过程。DM7 仅支持表空间联机备份,完全备份一个表空间步骤如下:
1) 配置归档。
2) 保证数据库处于 OPEN 状态。
3) DIsql 中输入备份表空间语句,最简单的不设置其他参数的完全备份表空间语句,如下所示:

SQL  backup tablespace main full backupset  /dm7/backup/ts_main_full_bak_20200529_02 
executed successfully
used time: 00:00:01.129. Execute id is 68.

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

SQL  select sf_bakset_backup_dir_add( disk , /dm7/backup/ts_main_full_bak_20200529_02 
LINEID SF_BAKSET_BACKUP_DIR_ADD(disk , /dm7/backup/ts_main_full_bak_20200529_02)
---------- ---------------------------------------------------------------------------
1 1
used time: 2.508(ms). Execute id is 69.
SQL  select * from v$backupset where backup_path= /dm7/backup/ts_main_full_bak_20200529_02 
LINEID DEVICE_TYPE BACKUP_ID PARENT_ID BACKUP_NAME BACKUP_PATH TYPE LEVEL RANGE# OBJECT_NAME OBJECT_ID BASE_NAME BACKUP_TIME DESC# ENCRYPT_TYPE COMPRESS_LEVEL WITHOUT_LOG USE_PWR PKG_SIZE BEGIN_LSN END_LSN BKP_NUM DBF_NUM PARALLEL_NUM DDL_CLONE MPP_FLAG MIN_TRX_START_LSN MIN_EXEC_VER CUMULATIVE
---------- ----------- ----------- ----------- ----------------------------------- ---------------------------------------- ----------- ----------- ----------- ----------- ----------- --------- --------------------------- ----- ------------ -------------- ----------- ----------- ----------- -------------------- -------------------- ----------- ----------- ------------ ----------- ----------- -------------------- ------------ -----------
1 DISK -1442575362 -1 TS_FULL_MAIN_20200529_112705_000332 /dm7/backup/ts_main_full_bak_20200529_02 0 0 2 MAIN 4 2020-05-29 11:27:06.000424 0 0 0 0 33554432 50908 51014 1 1 1 0 0 49398 117507596 0
used time: 00:00:01.046. Execute id is 70.

2. 增量备份
执行表空间增量备份的主要目的同数据库增量备份一样是为了快速备份数据库中的修改,减少备份时间和避免重复的备份。
增量备份表空间步骤如下:
1) 配置归档。
2) 保证数据库处于 OPEN 状态。
3) DIsql 中输入备份表空间语句,最简单的不设置其他参数的增量备份语句如下:

SQL  backup tablespace main increment base on backupset  /dm7/backup/ts_main_full_bak_20200529_02  backupset  /dm7/backup/ts_main_increment_bak_2020052903 
executed successfully
used time: 00:00:01.134. Execute id is 71.
SQL  select sf_bakset_backup_dir_add( disk , /dm7/backup/ts_main_increment_bak_2020052903 
LINEID SF_BAKSET_BACKUP_DIR_ADD(disk , /dm7/backup/ts_main_increment_bak_2020052903)
---------- -------------------------------------------------------------------------------
1 1
used time: 1.720(ms). Execute id is 72.
SQL  select * from v$backupset where backup_path like  %/dm7/backup/ts_main_%20200529% 
LINEID DEVICE_TYPE BACKUP_ID PARENT_ID BACKUP_NAME BACKUP_PATH TYPE LEVEL RANGE# OBJECT_NAME OBJECT_ID BASE_NAME BACKUP_TIME DESC# ENCRYPT_TYPE COMPRESS_LEVEL WITHOUT_LOG USE_PWR PKG_SIZE BEGIN_LSN END_LSN BKP_NUM DBF_NUM PARALLEL_NUM DDL_CLONE MPP_FLAG MIN_TRX_START_LSN MIN_EXEC_VER CUMULATIVE
---------- ----------- ----------- ----------- ----------------------------------- --------------------------------------------- ----------- ----------- ----------- ----------- ----------- ----------------------------------- --------------------------- ----- ------------ -------------- ----------- ----------- ----------- -------------------- -------------------- ----------- ----------- ------------ ----------- ----------- -------------------- ------------ -----------
1 DISK 1493450986 -1 TS_FULL_MAIN_20200529_111133_000175 /dm7/backup/ts_main_full_bak_20200529_01 0 0 2 MAIN 4 2020-05-29 11:11:34.000272 0 0 0 0 33554432 50908 50996 1 1 1 0 0 49398 117507596 0
2 DISK 1885674227 -1 TS_INCR_MAIN_20200529_111346_000167 /dm7/backup/ts_main_increment_bak_20200529_01 1 0 2 MAIN 4 TS_FULL_MAIN_20200529_111133_000175 2020-05-29 11:13:47.000258 0 0 0 0 33554432 50908 51002 1 1 1 0 0 49398 117507596 0
3 DISK 707233150 -1 TS_INCR_MAIN_20200529_111805_000417 /dm7/backup/ts_main_increment_bak_20200529_02 1 0 2 MAIN 4 TS_FULL_MAIN_20200529_111133_000175 2020-05-29 11:18:06.000513 0 0 0 0 33554432 50908 51008 1 1 1 0 0 49398 117507596 0
4 DISK -1442575362 -1 TS_FULL_MAIN_20200529_112705_000332 /dm7/backup/ts_main_full_bak_20200529_02 0 0 2 MAIN 4 2020-05-29 11:27:06.000424 0 0 0 0 33554432 50908 51014 1 1 1 0 0 49398 117507596 0
5 DISK -738478264 -1 TS_INCR_MAIN_20200529_113155_000766 /dm7/backup/ts_main_increment_bak_2020052903 1 0 2 MAIN 4 TS_FULL_MAIN_20200529_112705_000332 2020-05-29 11:31:56.000863 0 0 0 0 33554432 50908 51020 1 1 1 0 0 49398 117507596 0
used time: 00:00:01.062. Execute id is 73.

备份语句中指定的 INCREMENT 参数表示执行的备份类型为增量备份, 不可省略。若要创建累积增量备份,还需要指定 CUMULATIVE 参数,否则缺省为差异增量备份。若基备份不在默认备份目录,WITH BACKUPDIR 参数必须指定,用于搜索基备份集。

到此,关于“执行 SQL 语句进行表空间备份的方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计13592字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)