#表空间备份恢复
表空间备份恢复目前仅支持在单机部署模式下执行。
创建catalog文件。
$ yasrman sys/********@192.168.1.2:1688 -c "create catalog" -D /home/yashan/catalog create catalog successfully列出已有默认配置项。
$ yasrman sys/********@192.168.1.2:1688 -c "show all" -D /home/yashan/catalog +---------------------------+-----------+----------------+ | NAME | DEFAULT | VALUE | +---------------------------+-----------+----------------+ | PARALLELISM | 2 | 2 | | SECTION SIZE | 134217728 | 134217728 | | COMPRESSION ALGORITHM | NONE | NONE | | COMPRESSION LEVEL | LOW | LOW | | DEST | SERVER | SERVER | +---------------------------+-----------+----------------+配置备份功能。
$ yasrman sys/********@192.168.1.2:1688 -c "configure PARALLELISM 4" -D /home/yashan/catalog configure successfully $ yasrman sys/********@192.168.1.2:1688 -c "configure COMPRESSION ALGORITHM ZSTD" -D /home/yashan/catalog configure successfully $ yasrman sys/********@192.168.1.2:1688 -c "configure COMPRESSION LEVEL HIGH" -D /home/yashan/catalog configure successfully配置完成之后使用show all查看已配置项。
$ yasrman sys/********@192.168.1.2:1688 -c "show all" -D /home/yashan/catalog +---------------------------+-----------+----------------+ | NAME | DEFAULT | VALUE | +---------------------------+-----------+----------------+ | PARALLELISM | 2 | 4 | | SECTION SIZE | 134217728 | 134217728 | | COMPRESSION ALGORITHM | NONE | ZSTD | | COMPRESSION LEVEL | LOW | HIGH | | DEST | SERVER | SERVER | +---------------------------+-----------+----------------+使用如下clear命令清空压缩算法的配置项:
$ yasrman sys/********@192.168.1.2:1688 -c "configure COMPRESSION ALGORITHM CLEAR" -D /home/yashan/catalog configure successfully $ yasrman sys/********@192.168.1.2:1688 -c "show all" -D /home/yashan/catalog +---------------------------+-----------+----------------+ | NAME | DEFAULT | VALUE | +---------------------------+-----------+----------------+ | PARALLELISM | 2 | 4 | | SECTION SIZE | 134217728 | 134217728 | | COMPRESSION ALGORITHM | NONE | NONE | | COMPRESSION LEVEL | LOW | HIGH | | DEST | SERVER | SERVER | +---------------------------+-----------+----------------+模拟业务产生数据。
-- 以普通用户通过yasql登录数据库后执行下列操作 CREATE TABLE AGE(a INT); INSERT INTO age VALUES(1); COMMIT; exit创建备份目标表空间。
CREATE TABLESPACE TPS_TEST_SPC_BAK DATAFILE 'TPS_TEST_SPC_BAK1_1' SIZE 32M; COMMIT; exit执行表空间全量备份。
$ yasrman sys/********@192.168.1.2:1688 -c "backup tablespace TPS_TEST_SPC_BAK tag 'spc_full_1' format 'spc_full_bak1'" -D /home/yashan/catalog backup successfully查看备份集。
$ yasrman sys/********@192.168.1.2:1688 -c "list backup" -D /home/yashan/catalog Group: type TABLESPACE, tag: spc_full_1, format: /data/regress/ha_regress/ha_home/node_1/backup/spc_full_bak1, connect url: 127.0.0. 1:1601, nodeCount: 1, distribution: FALSE, isClient: FALSE, offset: 0 backupset key: 628454824, base key: 0, backup path: /data/regress/ha_regress/ha_home/node_1/backup/spc_full_bak1将目标表空间置为OFFLINE状态。
-- restore前期准备,offline目标表空间 -- 以普通用户通过yasql登录数据库后执行下列操作 ALTER TABLESPACE TPS_TEST_SPC_BAK OFFLINE IMMEDIATE; -- 查询表空间和对应数据文件状态 SELECT id, status FROM V$TABLESPACE WHERE name='TPS_TEST_SPC_BAK'; ID STATUS ------------ ----------------- 6 OFFLINE SELECT status FROM V$DATAFILE WHERE TS#=6; STATUS --------- RECOVER EXIT;RESTORE目标表空间。
# 执行restore之前需手动清理掉表空间残留的数据文件或在RESTORE命令中指定clean file $ yasrman sys/********@192.168.1.2:1688 -c "restore tablespace TPS_TEST_SPC_BAK from tag 'spc_full_1' clean file" -D /home/yashan/catalog restore successfullyRECOVER目标表空间。
# 执行recover操作会自动从归档备份集中或数据库默认的归档文件夹中搜索符合条件的归档文件 $ yasrman sys/********@192.168.1.2:1688 -c "recover tablespace TPS_TEST_SPC_BAK" -D /home/yashan/catalog recover successfully -- 以普通用户通过yasql登录数据库后执行下列操作 -- 查询对应数据文件状态从RECOVER变成OFFLINE SQL> SELECT status FROM V$DATAFILE WHERE TS#=6; STATUS --------- OFFLINE从RECOVER变成OFFLINE表示一致性恢复完成。
将目标表空间置为ONLINE状态。
ALTER TABLESPACE TPS_TEST_SPC_BAK ONLINE; -- 查询对应表空间和数据文件状态从OFFLINE变成ONLINE SELECT id, status FROM V$TABLESPACE WHERE name='TPS_TEST_SPC_BAK'; ID STATUS ------------ ----------------- 6 ONLINE SELECT status FROM V$DATAFILE WHERE TS#=6; STATUS --------- ONLINEONLINE后的表空间即可正常使用。

