#表空间备份恢复

表空间备份恢复目前仅支持在单机部署模式下执行。

  1. 创建catalog文件。

    $ yasrman sys/********@192.168.1.2:1688 -c "create catalog" -D /home/yashan/catalog
    
    create catalog successfully
    
  2. 列出已有默认配置项。

    $ 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         |
    +---------------------------+-----------+----------------+
    
  3. 配置备份功能。

    $ 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         |
    +---------------------------+-----------+----------------+
    
  4. 模拟业务产生数据。

    -- 以普通用户通过yasql登录数据库后执行下列操作
    CREATE TABLE AGE(a INT);
    INSERT INTO age VALUES(1);
    COMMIT;
    exit
    
  5. 创建备份目标表空间。

    CREATE TABLESPACE TPS_TEST_SPC_BAK DATAFILE 'TPS_TEST_SPC_BAK1_1' SIZE 32M;
    COMMIT;
    exit
    
  6. 执行表空间全量备份。

    $ 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
    
  7. 查看备份集。

    $ 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 
    
  8. 将目标表空间置为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;
    
  9. 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 successfully
    
  10. RECOVER目标表空间。

    # 执行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表示一致性恢复完成。

  11. 将目标表空间置为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    
    --------- 
    ONLINE   
    

    ONLINE后的表空间即可正常使用。

pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流