如何执行SQL语句进行表备份

56次阅读
没有评论

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

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

与备份数据库与表空间不同,备份表不需要服务器配置归档,DIsql 中输入以下即可备份用户表:

SQL  backup table t1 backupset  tab_t1_bak_01 
executed successfully
used time: 00:00:14.215. Execute id is 77.
SQL  select * from v$backupset where backup_path like  +DMDATA/data/rac/bak/tab% 
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 -1366932633 -1 TAB_T1_20200529_144738_000092 +DMDATA/data/rac/bak/tab_t1_bak_01 2 0 3 SYSDBA.T1 -1 2020-05-29 14:47:45.000864 0 0 0 0 33554432 50908 51025 1 0 1 0 0 49398 117507596 0
used time: 00:00:01.064. Execute id is 79.

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

BACKUP TABLE    表名 
[TO    备份名]
BACKUPSET [  备份集路径] [DEVICE TYPE    介质类型  [PARMS    介质参数]]
[BACKUPINFO    备份集描述]
[MAXPIECESIZE    备份片限制大小]
[IDENTIFIED BY    加密密码 [WITH ENCRYPTION][ENCRYPT WITH    加密算法]]
[COMPRESSED [LEVEL    压缩级别]]
[TRACE FILE ] [TRACE LEVEL ]

TABLE:指定备份的表,只能备份用户表。

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

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

DEVICE TYPE:指存储备份集的介质类型,表备份暂时只支持 DISK,表示存储备份集到磁盘。

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 相关内容。

使用说明:
1. 支持对用户的非分区行存储表和堆表进行备份。其中,系统表、临时表、物化视图表、物化视图附属表和日志表、特定模式(DBG_PKG/INFORMATION_SCHEMA/INFO_SCHEM/SYSREP/SYSGEO/SYSJOB/SYSCPT/SYS)下的表不支持备份。表列类型为对象类型的表不支持表备份。表备份不备份表上的注释,default 表达式中函数定义,所以还原时需用户自行确认。
2. 当备份数据超过限制大小时,会生成新的备份文件,新的备份文件名是初始文件名后加文件编号。
3. 表备份时,其所属表空间必须处于联机状态。
4. 目前表备份不支持备份到 TAPE 介质上。

2. 设置备份选项
表备份常用的备份选项有设置备份名、设置备份集路径、指定介质参数、添加备份描述等,设置方式同数据库备份相同。

3. 备份表
表备份拷贝指定表所使用的所有数据页到备份集中,并记录各个数据页之间的逻辑关系用来恢复表数据结构。表备份均为联机完全备份,不需要备份归档日志,不存在增量备份之说。当数据库中某张表比较重要而又没必要备份整个数据库或表空间时就可以选择表备份。完整的备份表步骤如下:
1) 保证数据库处于 OPEN 状态。
2) 创建待备份的表 TAB_01:

SQL  create table tab_01(c1 int);
executed successfully
used time: 32.117(ms). Execute id is 80.

3) DIsql 中输入备份表语句,简单的备份语句如下:

SQL  backup table tab_01 to tab_tab_01_backup_20200529 backupset  table_tab_01_backup_20200529 
executed successfully
used time: 00:00:13.981. Execute id is 81.

上面的语句将在默认备份目录 +DMDATA/data/rac/bak(由 BAK_PATH 参数所指定)中生成备份集

SQL  select * from v$backupset where backup_path= +DMDATA/data/rac/bak/table_tab_01_backup_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 2025284018 -1 TAB_TAB_01_BACKUP_20200529 +DMDATA/data/rac/bak/table_tab_01_backup_20200529 2 0 3 SYSDBA.TAB_01 -1 2020-05-29 15:08:24.000485 0 0 0 0 33554432 50908 51055 1 0 1 0 0 49398 117507596 0
used time: 00:00:01.063. Execute id is 82.

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

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