DM数据库备份还原(简单)

DM数据库备份还原

一、基本概念

1.1表空间与数据文件

DM8表空间:SYSTEM、ROLL、TEMP(不支持对TEMP表空间备份还原)、MAIN、HMAIN(同TEMP)、用户自定义表空间

1.2重做日志

REDO日志,记录所有物理页的修改,包括操作类型、表空间号,行号,文件号,实际数据等。同时DML和DDL操作都会对数据文件和数据页做修改。

DM8默认两个联重做日志:DAMENG01.log和02.log

1.3归档日志

在归档模式下,连接的REDO日志被写入到归档后就形成归档日志文件归档以归档的时间点命名,例如ARCHIVE_LOCAL1_2023060281715079869.log

注:开启归档会对数据库性能有影响,但是更安全。

1.4PWR记录

PWR是REDO中的特殊记录,被叫做PWR日志

PWR由表空间ID,文件ID数据在文件中的页号和页的当前LSN信息

每次数据刷盘时,系统会生成一条对应PWR日志

根据PWR可以快速判断数据是否落盘,提升故障恢复速度,避免无用的IO检查

1.5检查点与日志序列号

检查点的作用是把BUFFER缓冲区的脏页按照数据页第一次被修改的顺序落盘,并在此过程调整CKPT_LSN的值,达到释放日志空间的效果

LSN也叫日志序列号,表示REDO产生的顺序,每个REDO日志都会被分配一个LSN值

1.6备份集

一个完整的备份被叫做备份集,作为一个目录,其中包含备份片和无数据文件组成

1.7备份片

.bak文件后缀,用来存储备份数据,其中有数据文件内容或归档内容

1.8

.meta后缀的元数据文件,用了存放备份信息其中包括:

  • 备份集本身相关信息

  • 备份源库的建库参数

  • 备份集中备份数据文件信息

  • 备份片的信息

二、备份

​ 将数据经过加密、压缩等方式,写到备份片文件中,并将备份信息写到元数据文件的过程叫作备份

2.1备份分类

  • 备份组织形式:物理备份和逻辑备份
  • 数据库状态:联机备份和脱机备份
  • 备份粒度大小:库备份、表空间备份、归档备份、表备份,归档备份支持联机和脱机;归档备份会把收集到的归档文件备份到备份集中的每一个备份片上,必要时可以使用归档备份集,还原归档
  • 数据一致性:一致性备份和非一致性备份
  • 数据完整性:全量备份和增量备份

三、还原

把备份集中的备份经过处理后,还原到数据库中相应的数据库文件的步骤,通常还原回来的数据库数据处于非一致性状态,需要执行恢复操作,使得数据库数据达到一致,才可对外提供服务

3.1还原的分类

  • 还原组织形式:物理还原和逻辑还原
  • 数据库状态:联机还原和脱机还原
  • 还原粒度大小:库还原,表还原,归档还原,表空间还原
  • 完整性:完全备份还原和增量备份还原

四、恢复

恢复是重做本地归档日志或重做备份集中备份归档日志的过程,还原后的数据库必须经过恢复操作后才能启动,表备份还原是联机执行的,不需要再执行恢复操作

4.1恢复的分类

  • 更新DB_MAGIC
  • 从备份集中恢复
  • 从归档中恢复:利用重做本地归档日志来恢复,或者可以从归档中恢复到最新的状态,或者指定时间点指定LSN

五、备份恢复操作

5.1备份恢复方法

  • Disql工具:联机状态下的数据备份还原,包括库,表空间,表等粒度
  • DMRMAN工具:脱机状态下的数据库备份还原与恢复
  • 客户端工具MANGER和CONSOLE,对应可视化工具的Disql和DMRMAN工具
5.1.1 联机状态

在进行联机状态下进行备份时必须保证系统开启了归档

--开启归档(使用SQL)
SQL>ALTER DATABASE MOUNT          				##修改数据库为mount状态
SQL>ALTER DATABASE ADD ARCHIVELOG 'DEST = /home/dm_arch/arch, TYPE = local, FILE_SIZE = 1024, SPACE_LIMIT = 2048';          ##配置本地归档
SQL>ALTER DATABASE ARCHIVELOG;                  ##开启归档模式
SQL>ALTER DATABASE OPEN;                        ##修改数据库为open状态

--手动配置归档
手动编辑dmarch.ini文件,之后保存在dm.ini所在目录,dmarch.ini文件内容如下:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LCOAL
ARCH_DEST = d:\dm_arch\arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 2048

编辑dm.ini文件,设置参数ARCH_INI=1,保存
启动服务器,服务器已运行归档模式
5.1.1.1数据库备份

最简单备份:

BACKUP DATABASE BACKUPSET 'bak_full01'

同时可指定路径,备份名,指定介质类型,添加描述,限制备份片大小,备份是否压缩,并行度

BACKUP DATABASE TO '备份名' BACKUPSET '备份路径' DEVICE TYPE 介质类型 BACKINFO '备份描述' MAXPIECESIZE = 备份片大小 COMPRESSED LEVEL 压缩等级 PARALLEL 并行度;

注:指定备份名,加密密码,加密算法名长度限制为128字节,mount模式下不允许数据库的库级别备份

全库备份

BACKUP DATABASE FULL BACKUPSET '/home/dm_bak/db_full_bakup_01';

全备中可指定DDL_CLONE参数只备份表定义不备份数据,该参数只能用于库级别全备中

增备

BACKUP DATABASE INCREMENT WITH BACKUPDIR '/home/dm_bak' BACKUPSET '/home/dm_bak/db_increment_bakup_02';

注:增备必须基于有一次的全备的基础上执行

表空间备份

--最简单的表空间备份
BACKUP TABLESPACE MAIN BACKUPSET 'ts_bak_01';

--指定基备份目录(不指定会自动搜索最近完成的全备/增备作基备份)
BACKUP TABLESPACE MAIN INCREMENT BASE ON BACKUPSET 'ts_full_bak_01' BACKUPSERT 'ts_inc_bak_02'

--全备(FULL可省略,默认为全备)
BACKUP TABLESPACE MAIN FULL BACKUPSET '/home/dm_bak/ts_full_bak_01';

--增备
BACKUP TABLESPACE MAIN INCREMENT WITH BACKUPDIR '/home/dm_bak' BACKUPSET '/home/dm_bak/ts_increment_bakup_02';

注:备机状态/mount状态/mpp和RAC环境不允许表空间备份

表备份

表备份都是联机完全备份,不需要备份归档,不存在全备增量备概念

BACKUP TABLE TABLE01 BACKUPSET 'tab_bak_1';

注:备机状态/mount状态/mpp和RAC环境不允许表备份还原

归档备份:

归档备份拷贝指定归档目录下所有的归档文件到备份集中,备份归档需要配置归档

BACKUP ARCHIVE LOG ALL BACKUPSET 'arch_bak';

备份加密

--数据库全备,创建加密密码为'dm123',加密算法为rc4,加密为复杂加密

BACKUP DATABASE BACKUPSET '/home/dm_bak/db_bak_for_encrypt_1' IDENTIFIED BY 'dm123' WITH ENCRYPTION 2 ENCRYPT WITH RC4;

其中WITH ENCRYPTION(省缺为1,简单加密)和ENCRYPT WITH(省缺加密算法为AES256_CFB)可以不指定

备份设置跟踪日志文件

BACKUP DATABASE BACKUPSET '/home/dm_bak/db_bak_for_trac_1' TRACE FILE '/home/dm_log/db_bak_trace.log' TRACE LEVEL 2;

参数TRACE FILE用于指定生成的跟踪日志文件路径,TRACE LEVEL表示是否启用trace,1表示不启用,2表示启用,省缺为1。

备份管理

备份管理相关系统过程与函数

SF_RMAN_ADD_BACKUP_DIR             ##添加备份目录
SF_RMAN_REMOVE_BACKUP_DIR          ##指定删除内存中的备份目录
SF_RMAN_REMOVE_BACKUP_DIR_ALL      ##删除内存中全部的备份目录
SF_RMAN_BAKSET_CHECK               ##校验指定的备份文件
SF_RMAN_BAKSET_REMOVE              ##删除指定备份集
SP_RMAN_BATCH_DEL_DB_BAKSET        ##批量删除数据库备份集
SP_RMAN_BATCH_DEL_TS_BAKSET        ##批量删除表空间备份集
SP_RMAN_BATCH_DEL_TAB_BAKSET       ##批量删除表备份集

备份管理的动态视图

V$BACKUPSET                      ##显示备份集基本信息
V$BACKUPSET_DBINFO 				 ##显示备份集数据库相关信息
V$BACKUPSET_DBF					 ##显示备份集数据文件相关信息
V$BACKUPSET_ARCH				 ##显示备份集的归档信息
V$BACKUPSET_ROLG				 ##显示备份集的日志信息
V$BACKUPSET_BKP					 ##显示备份集的备份片信息
V$BACKUPSET_SEARCH_DIRS			 ##显示备份集搜索目录
V$BACKUPSET_TABLE				 ##显示表备份集中备份表信息
V$BACKUPSET_INDEX                ##显示表备份集中备份索引信息
V$BACKUPSET_SUBS				 ##显示并行备份中生成的子备份集信息
5.1.1.2数据库还原

使用Disql还原:DIsql只能进行表还原,库还原、表空间使用脱机工具DMRMAN

表还原

--不需要配置归档、系统必须处于open状态、还原后不需要恢复
--创建备份表
SQL>CREATE TABLE TAB_FOR_RES_02(a INT);

--创建索引
SQL>CRATE INDEX TEST ON TABLE_FOR_RES_02(a);

--备份表
SQL>BACKUP TABLE TAB_FOR_RES_02 BACKUPSET '/home/db_bak/tab_bak_for_res_02';

--校验备份
SQL>SELECT SF_BAKSET_CHECK('DISK','/home/db_bak/tab_bak_for_res_02');

--执行表结构还原,因为备份表中包含索引如果直接执行表数据还原会报错,还原表中存在2集所有或沉余约束
SQL>RESTORE TABLE STRUCT  TAB_FOR_RES_02 FROM BACKUPSET '/home/db_bak/tab_bak_for_res_02';

--执行数据还原
SQL>RESTORE TABLE TAB_FOR_RES_02 FROM BACKUPSET '/home/db_bak/tab_bak_for_res_02';

--表还原指定不重建索引
RESTORE TABLE TAB_FOR_RES WITHOUT INDEX FROM BACKUPSET '/home/dm_bak/tab_bak_for_res_01';

--表还原不重建约束
RESTORE TABLE TAB_FOR_RES WITHOUT CONSTRAINT FROM BACKUPSET '/home/dm_bak/tab_bak_for_res_01';
5.1.2 脱机状态

DMRMAN(DM RECOVERY MANAGER)是 DM 的脱机备份还原管理工具,由它来统一负责库级脱机备份、脱机还原、脱机恢复等相关操作。

DMRMAN 可以针对整个数据库执行脱机完全备份和增量备份,若是正常退出的数据库,则脱机备份前不需要配置归档;若是故障退出的数据库,则备份前,需先进行归档修复。

5.1.2.1备份

数据库必须处于脱机状态

--最简单备份
RMAN>BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini';

##命令执行完后会在默认的备份路径下生成备份集目录,默认的备份路径为 dm.ini 中 BAK_PATH 的配置值,若未配置,则为 SYSTEM_PATH 下的 bak 目录。这是最简单的脱机数据库备份语句

--创建全备
RMAN>BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FULL BACKUPSET '/home/dm_bak/db_full_bak_01'

--创建增备
RMAN>BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' INCREMENT WITH BACKUPDIR '/home/dm_bak/' BACKUPSET '/home/dm_bak/db_inc_bak_02'

备份归档

在 DMRMAN 工具中使用 BACKUP 命令可以备份库的归档。使用 DMRMAN 备份归档需要设置归档,否则会报错。关闭数据库实例,在 DMRMAN 中输入以下命令即可备份归档:

RMAN>BACKUP ARCHIVE LOG ALL DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' BACKUPSET '/home/dm_bak/arch_all_bak_01';

创建设置条件的归档备份

设置条件的归档备份指通过设置 LSN 或者时间点,控制需要备份归档的范围。脱机设置条件归档备份的示例如下:

RMAN>BACKUP ARCHIVE LOG LSN BETWEEN 50000 AND 120000 DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' BACKUPSET '/home/dm_bak/arch_lsn_bak_02';

命令中的 LSN BETEEWN start AND end 表示备份 LSN 值在 start 与 end 之间的归档,也可以设置 FROM LSN(TIME)或 UNTIL LSN(TIME)。

加密备份

DMRMAN 同 DIsql 工具一样可使用加密的方式备份数据库,没有权限的用户无法访问加密的备份集。

DMRMAN 备份命令中通过指定 IDENTIFIED BY … WITH ENCRYPTION … ENCRYPT WITH … 命令执行加密备份。其中,加密备份相关参数的含义与联机备份中的含义相同。

加密备份过程中参数 IDENTIFIED BY 必须指定,参数 WITH ENCRYPTION 和参数 ENCRYPT WITH 可不指定。加密备份时若不指定 WITH ENCRYPTION 参数,则该参数默认为 1,若不指定 ENCRYPT WITH 参数,则该参数默认值为 AES256_CFB。

RMAN>BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' BACKUPSET '/home/dm_bak/db_bak_for_encrypt_01' IDENTIFIED BY "cdb546789"; 

RMAN>BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' BACKUPSET '/home/dm_bak/db_bak_for_encrypt_02' IDENTIFIED BY "cdb546789" ENCRYPT WITH RC4;

--若指定了加密密码,但加密类型 WITH ENCRYPTION 参数指定为 0,则为非加密备份,如下所示:

RMAN>BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' BACKUPSET
'/home/dm_bak/db_bak_for_encrypt_03' IDENTIFIED BY "cdb546789" WITH ENCRYPTION 0;

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

设置跟踪日志文件

与生成跟踪日志文件相关的参数有两个,TRACE FILE 和 TRACE LEVEL。TRACE FILE 用于指定生成的跟踪日志文件路径。与 DIsql 工具不同的是,DMRMAN 不可在备份时指定参数生成跟踪文件,只能使用 CONFIGURE 命令进行事先配置。

使用 CONFIGURE DEFAULT TRACE FILE … TRACE LEVEL … 命令启用 TRACE 功能并设置 TRACE 文件路径,以下命令生成 TRACE 文件到/home/dm_trace 目录:

RMAN>CONFIGURE DEFAULT TRACE FILE '/home/dm_trace/trace.log' TRACE LEVEL 2;

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

RMAN>CONFIGURE DEFAULT TRACE FILE'/home/dm_log/db_trace.log' TRACE LEVEL 1;

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

RMAN> CONFIGURE DEFAULT TRACE LEVEL 2;

若 TRACE FILE 使用相对路径,日志文件则生成在执行码同级目录下。

为数据库脱机备份设置跟踪日志文件的操作步骤如下:

  1. 使用 CONFIGURE 命令配置生成跟踪日志文件:
RMAN>CONFIGURE DEFAULT TRACE FILE '/home/dm_trace/trace.log' TRACE LEVEL 2;

​ 2. 备份数据库。启动 DMRMAN 工具输入以下命令:

RMAN>BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' BACKUPSET '/home/dm_bak/db_bak_for_trace_01' ;

查看/home/dm_trace/trace.log 文件即可跟踪本次备份的 SBT 接口调用过程。

如果指定的 TRACE 文件已存在,不会覆盖已存在的文件而是在已有文件基础上继续记录日志。

5.1.2.2备份管理

查看备份集信息

--查看单个备份集信息
show backupset '/home/test/yy/dm_bak/db_full_bak_01'

--批量查看多个
RMAN>SHOW BACKUPSETS WITH BACKUPDIR '/home/dm_bak1','/home/dm_bak2';

--以XML形式输出到文件
RMAN>SHOW BACKUPSET'/home/dm_bak1/db_bak_for_xml_01' TO
'/home/dm_info/bkp_info.txt' FORMAT XML;

备份集校验

--校验特定的备份集
CHECK BACKUPSET '/home/dm_bak/db_bak_for_check_01'DATABASE '/opt/dmdbms/data/DAMENG/dm.ini';

备份集删除

DMRMAN 中使用 REMOVE 命令删除备份集,可删除单个备份集,也可批量删除备份集。单个备份集删除时并行备份中的子备份集不允许单独删除;在指定备份集搜集目录中,发现存在引用待删除备份集作为基备份的需要执行级联删除,默认报错。批量删除备份集时,跳过收集到的单独的子备份集

目前DM的介质管理不支持TAPE类型介质的备份集删除,若使用支持此操作的第三方介质管理,则可指定 DEVICE TYPE TAPE子句。

--删除特定备份集
##使用 REMOVE BACKUPSET ... 命令可删除特定备份集,每次只能删除一个备份集。若删除备份集已经被引用为其他备份集的基备份且未指定 CASCADE,则报错。

RMAN>REMOVE BACKUPSET '/home/dm_bak/db_bak_for_remove_01';

--如果备份集在数据库默认备份目录下还可使用以下方式删除备份集:

RMAN>REMOVE BACKUPSET 'db_bak_for_remove_01' DATABASE '/opt/dmdbms/data/DAMENG/dm.ini';

--批量删除所有备份集
##使用 REMOVE ... BACKUPSETS ... 命令可批量删除备份集。批量删除可选择备份集的备份类型,备份类型包括数据库备份、表空间备份、表备份以及归档备份,不指定备份类型则全部删除

RMAN>REMOVE BACKUPSETS WITH BACKUPDIR '/home/dm_bak';

--批量删除指定时间之前的备份集
RMAN>REMOVE BACKUPSETS WITH BACKUPDIR '/home/dm_bak' UNTIL TIME '2019-6-1 00:00:00';
5.1.2.3还原和恢复

数据库备份集分为联机和脱机两种类型。通常情况下,用户会在联机状态下备份数据库,因此下面以联机数据库备份为例说明使用 DMRMAN 如何执行数据库还原操作。

  1. 联机备份数据库,保证数据库运行在归档模式及 OPEN 状态;
SQL>BACKUP DATABASE BACKUPSET '/home/dm_bak/db_full_bak_for_restore';

​ 2. 准备目标库。还原目标库可以是已经存在的数据库,也可使用 dminit 工具初始化一个新库。如下所示:

./dminit path=/opt/dmdbms/data db_name=DAMENG_FOR_RESTORE

注意

如果还原目标库与故障库是同一个,建议先执行故障库的归档修复操作。

​ 3. 校验备份,校验待还原备份集的合法性。校验备份有两种方式,联机和脱机,此处使用脱机校验;

RMAN>CHECK BACKUPSET '/home/dm_bak/db_full_bak_for_restore';

​ 4. 还原数据库。

可以直接指定还原目标库的 dm.ini 进行数据库还原,如下所示:

CopyRMAN>RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_restore';

也可指定 REUSE DMINI 子句进行数据库还原,此时会将备份集中备份的 dm.ini 中除路径相关的 INI 参数外,均拷贝到当前 dm.ini 上。如下所示:

RMAN> RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' REUSE DMINI FROM BACKUPSET '/home/dm_bak/db_full_bak_for_restore';

从备份集恢复

如果备份集在备份过程中生成了日志,且这些日志在备份集中有完整备份(如联机数据库备份),在执行数据库还原后,可以重做备份集中备份的日志,将数据库恢复到备份时的状态,即从备份集恢复。完整的示例如下:

启动 DIsql 联机备份数据库;

BACKUP DATABASE BACKUPSET '/home/dm_bak/db_full_bak_for_recover_backupset';

准备目标库,可以使用备份库,也可以重新生成库;

重新生成库操作如下:

./dminit path=/opt/dmdbms/data db_name=DAMENG_FOR_RESTORE auto_overwrite=1

启动 RMAN,校验备份;

RMAN>CHECK BACKUPSET '/home/dm_bak/db_full_bak_for_recover_backupset';

还原数据库;

RMAN>RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_recover_backupset';

恢复数据库。

RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_

从归档恢复

从归档恢复是利用重做本地归档日志来恢复数据的过程。从归档恢复允许恢复到指定的时间点及指定的 LSN 值。若同时指定了时间点和 LSN,则以较早的为结束点。

利用归档恢复数据库至最新状态的完整示例如下:

启动 DIsql 联机备份数据库,以及备份从检查点开始的本地归档日志;

BACKUP ARCHIVELOG FROM LSN 421401 BACKUPSET '/home/dm_bak/arch_bak_lsn_421401';

BACKUP DATABASE BACKUPSET '/home/dm_bak/db_full_bak_for_recover_arch';

建议

查看动态视图V$RLOG中的CKPT_LSN列,可以得出当前检查点LSN。

准备目标库,可以使用备份库,也可以重新生成库;

如果使用原备份库,且备份库故障,需要先执行目标库归档修复:

RMAN>REPAIR ARCHIVELOG DATABASE '/opt/dmdbms/data/dm.ini';

如果使用新生成的库,生成之后需要先重启一下数据库实例,才可以被还原。重新生成的库不需要执行归档修复(REPAIR)操作。重新生成库操作如下:

./dminit path=/opt/dmdbms/data db_name=DAMENG_FOR_RESTORE auto_overwrite=1

启动 RMAN,校验备份;

RMAN>CHECK BACKUPSET '/home/dm_bak/db_full_bak_for_recover_arch';

还原数据库;

RMAN>RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_ba

查看备份集的数据库信息,获取源库的 DB_MAGIC;

建议

若还原后,立即执行恢复,可以不用获取源库DB_MAGIC。因为DMRMAN执行库级备份集还原后,会将备份集中的DB_MAGIC刷入还原后的库中。

RMAN>SHOW BACKUPSET '/home/dm_bak/db_full_bak_for_recover_arch' INFO DB;

利用归档恢复数据库。源库的 DB_MAGIC 值为 1447060265;

RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' WITH ARCHIVEDIR'/home/dm_arch/arch' USE DB_MAGIC 1447

达梦数据库社区地址:https://eco.dameng.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值