【数据库知识】学不会的Oracle

概述

Oracle数据库,又名Oracle RDBMS或简称Oracle,是甲骨文公司的一款关系数据库管理系统。以下是对Oracle数据库的详细介绍:

一、基本概述

Oracle数据库系统是世界上流行的关系数据库管理系统,具有系统可移植性好、使用方便、功能强等特点,适用于各类大、中、小型微机环境。它是一个高效率、可靠性好且适应高吞吐量的数据库方案。

二、发展历程

Oracle数据库自推出以来,不断迭代更新,引入了多项创新技术。例如,Oracle Database 12c引入了一个新的多承租方架构,可轻松部署和管理数据库云。Oracle Database 20c则是其目前的最新版本。

三、技术特点

  1. 高可靠性:Oracle数据库采用了多种机制来确保数据的可靠性,如数据冗余、事务处理、恢复机制等。它具有高度的可靠性和稳定性,能够保证数据的安全性和完整性。
  2. 高性能:Oracle数据库具有强大的性能优化功能,可以提供高效的查询和事务处理。它采用了先进的查询优化器、并发控制和缓存管理等技术,能够处理大规模的数据和高并发访问。
  3. 可扩展性:Oracle数据库支持分布式数据库,可以在多台服务器上部署和管理数据库,实现数据的分布存储和处理。它还支持水平和垂直扩展,可以根据需求进行灵活的扩展和升级。
  4. 完整的数据管理功能:Oracle数据库提供了丰富的数据管理功能,包括数据备份和恢复、数据安全、数据复制、数据迁移等。它还支持多种数据类型和数据模型,可以满足各种复杂的数据管理需求。
  5. 易用性和可管理性:Oracle数据库提供了友好的图形界面和丰富的管理工具,使数据库的配置、监控和管理变得简单和高效。它还提供了丰富的文档和技术支持,方便用户学习和使用。
  6. 跨平台兼容性:Oracle数据库可以运行在各种操作系统平台上,包括Windows、Linux、Unix等。它还支持多种编程语言和开发工具,可以与其他系统和应用程序进行无缝集成。

四、应用领域

Oracle数据库广泛应用于金融、医疗、制造、零售等各个行业,能够帮助企业管理海量数据,提升业务效率。例如,在金融行业,Oracle数据库以其高可靠性和高安全性,成为存储和管理海量交易数据和客户信息的首选。在医疗行业,Oracle数据库能够帮助医院、诊所和医疗研究机构管理和分析大量的病历数据、诊断数据和研究数据。

五、优势功能

  1. 数据分析:Oracle数据库内置了强大的数据分析工具,如Oracle Analytics Cloud和Oracle Data Mining,能够帮助企业快速进行数据分析和挖掘。通过复杂的SQL查询和分析函数,用户可以从大量数据中提取有价值的信息,生成详细的报告和洞察。
  2. 云支持:Oracle数据库不仅支持传统的本地部署,还支持云计算和大数据应用。Oracle Cloud提供了全面的数据库即服务(DBaaS)解决方案,用户可以在云端快速部署和管理Oracle数据库,降低IT成本和运维复杂度。
  3. AI和ML支持:Oracle数据库内置了多种机器学习算法和工具,用户可以在数据库中直接进行数据预处理、模型训练和预测分析。通过与Oracle AI平台的集成,用户可以利用强大的计算能力和先进的AI技术,快速构建和部署智能应用。

综上所述,Oracle数据库是一款功能强大、性能卓越的数据库管理系统,具有高可靠性、高性能、可扩展性、完整的数据管理功能、易用性和跨平台兼容性等特点。它广泛应用于各个行业领域,为企业提供了高效的数据存储、管理和分析解决方案。

核心概念

Oracle数据库的核心概念包括数据库、数据库实例、SID(系统标识符)、表空间、用户与表模式等。以下是对这些核心概念的详细解释:

  1. 数据库

    • 是数据的物理存储,包括数据文件(ORA或DBF)、控制文件、联机日志和参数文件等。
    • 在Oracle中,数据库是一个操作系统级别的概念,通常被视为一个大的存储单元,用于存储和管理相关数据。
  2. 数据库实例

    • 是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,由进程和这些进程所使用的内存(SGA)构成。
    • 实例是数据库运行的实体,用于处理对数据库的请求和操作。每个数据库可以有多个实例,但每个实例在某一时刻只能关联到一个数据库。
    • 实例名(SID)是用于标识和区分不同数据库实例的名称,通常由参数instance_name决定。
  3. SID(系统标识符)

    • 是数据库实例的唯一标识符,用于在操作系统级别上区分不同的数据库实例。
  4. 表空间

    • 是Oracle对物理数据库上相关数据文件(ORA或DBF文件)的逻辑映射。
    • 一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构,如表、索引等。
    • 表空间是数据库存储数据的基本单位,一个表空间可以由一个或多个数据文件组成,而一个数据文件只能属于一个表空间。
  5. 用户与表模式

    • 用户是在实例下建立的,用于管理和访问数据库中的数据。
    • 每个用户都有一个默认的表空间,用于存储其创建的表、索引等数据库对象。
    • 表模式(Schema)是与用户相关联的一组数据库对象的集合,包括表、视图、索引、序列等。在Oracle中,用户和模式名通常是对应的,即一个用户对应一个模式。

这些核心概念共同构成了Oracle数据库的基础架构和运行机制,使得Oracle数据库能够高效地存储、管理和访问数据。在实际应用中,了解和掌握这些核心概念对于数据库管理员和开发人员来说至关重要。

技术架构

Oracle数据库的技术架构是复杂而精细的,它由多个组件组成,以确保数据的高效存储、检索和管理。以下是Oracle技术架构的详细说明:
oracle-arc

1. 实例(Instance)和数据库(Database)

Oracle数据库由两个主要实体组成:实例和数据库。实例是Oracle数据库运行时的内存和进程集合,而数据库是存储数据的物理文件集合,包括数据文件、控制文件和重做日志文件 。

2. 系统全局区(SGA)

SGA是实例的一部分,是一组在Oracle数据库实例启动时分配的共享内存结构。SGA包含多个部分,如:

  • 共享池(Shared Pool):缓存共享SQL和PL/SQL代码,减少解析和执行相同SQL语句的次数。
  • 数据库缓冲区(Database Buffer Cache):存储从数据文件中读取的数据块,避免重复的磁盘I/O。
  • 重做日志缓冲区(Redo Log Buffer):记录对数据库所做的更改,以便在发生故障时恢复数据 。

3. 后台进程

Oracle实例包括多个后台进程,负责数据库的各种管理任务,如:

  • 系统监控进程(SMON):在数据库启动时执行恢复操作,以及在数据库运行期间执行清理操作。
  • 进程监控进程(PMON):监控用户进程,确保在用户进程失败时释放资源。
  • 数据库写进程(DBWR):将更改的数据从SGA的数据库缓冲区写入数据文件。
  • 日志写进程(LGWR):将重做日志缓冲区的内容写入在线重做日志文件 。

4. 程序全局区(PGA)

PGA是Oracle为每个服务器进程分配的非共享内存区域,包含会话特定的数据和控制信息。PGA在服务器进程创建时分配,并在服务器进程终止时回收 。

5. 物理结构

Oracle数据库的物理结构包括存储在磁盘上的文件,主要有:

  • 数据文件(Data Files):存储实际的数据库数据。
  • 控制文件(Control Files):记录数据库的物理结构信息,如数据文件和重做日志文件的位置。
  • 重做日志文件(Redo Log Files):记录对数据库所做的更改,用于数据恢复 。

6. 逻辑结构

Oracle数据库的逻辑结构是面向用户的,它包括:

  • 表空间(Tablespaces):数据库中存储数据的逻辑单位。
  • 段(Segments):表空间内分配给特定数据结构(如表或索引)的空间。
  • 区(Extents):段内分配给数据块的连续空间。
  • 块(Blocks):数据库存储数据的最小单位,也是I/O操作的最小单位 。

7. Real Application Clusters (RAC)

Oracle RAC允许跨多个服务器运行单一Oracle数据库,访问共享存储,提高数据库的可用性和可扩展性。RAC通过在多台服务器上运行多个实例来实现高可用性和负载均衡 。

Oracle的技术架构设计得非常灵活,可以支持从单实例到复杂的RAC配置,以满足不同规模和性能要求的数据库应用需求。

支持的数据类型

Oracle数据库支持多种数据类型,以适应不同类型的数据存储需求。以下是Oracle数据库中一些常用的数据类型的详细说明:

1. 字符类型

  • CHAR:定长字符类型,未达到指定长度时,自动在末尾用空格补全。最大长度为2000字节,非Unicode字符集。
  • NCHAR:定长字符类型,根据Unicode字符集,所有字符都占两个字节。最大长度为1000字节。
  • VARCHAR2:变长字符类型,未达到指定长度时,不自动补全空格。定义时需指定长度,最大为4000字节,非Unicode字符集。
  • NVARCHAR2:变长字符类型,根据Unicode字符集,所有字符都占两个字节。定义时需指定长度,最大为2000字节。

2. 数值类型

  • NUMBER:用于存储整数或带有小数点的数字。可以指定精度(p)和小数位数(s),最大精度为38位。
  • INTEGER:整数类型,是NUMBER类型的子类型,等同于NUMBER(38)。
  • SMALLINT:小型整数类型,也是NUMBER类型的子类型,等同于NUMBER(38)。
  • FLOAT:浮点数类型,用于存储近似值,可以指定二进制精度(b),范围为1到126,默认为126。
  • BINARY_FLOAT:32位单精度浮点数数据类型,需要5个字节存储,支持至少6位精度。
  • BINARY_DOUBLE:64位双精度浮点数数据类型,需要9个字节存储。

3. 日期类型

  • DATE:用于存储日期和时间,包括世纪、年、月、日、时、分、秒。占用7个字节存储空间。
  • TIMESTAMP:时间戳类型,可以存储到微秒或纳秒的精度,取决于precision的值,范围为0到9,默认为6。
  • TIMESTAMP WITH TIME ZONE:带有时区的时间戳类型,存储时区信息。
  • TIMESTAMP WITH LOCAL TIME ZONE:存储时转化为数据库时区进行规范化存储,但不存储时区信息,客户端检索时,按客户端时区的时间数据返回。
  • INTERVAL:时间间隔类型,用于存储两个日期或时间之间的差异,可以表示年、月、日、小时、分钟或秒之间的差异。

4. LOB大型对象数据类型

  • BLOB:二进制大对象,用于存储非文本数据,如图像、音频、视频等,最大容量为4GB。
  • CLOB:字符大对象,用于存储大量文本数据,最大容量为4GB。
  • NCLOB:National Character Large Object,用于存储Unicode字符集的大量文本数据,最大容量为4GB。

5. ROWID和UROWID类型

  • ROWID:行地址,用于唯一标识表中的一行。
  • UROWID:Universal ROWID,用于存储行的逻辑地址,通常用于索引有组织表的行。

这些数据类型为Oracle数据库提供了强大的数据存储和处理能力,能够满足各种复杂的应用场景需求。

特性

与Mysql比较

Oracle与MySQL都是广泛使用的数据库管理系统,它们各自具有独特的特点和优势。以下是对两者的详细对比:

一、基本特性与定位

  • Oracle:

    • 类型:对象关系数据库管理系统(ORDBMS)。
    • 定位:主要面向大企业级用户,适用于处理大规模、复杂的企业级应用。
    • 市场占有率:根据Gartner的数据,Oracle在全球关系型数据库管理系统市场中占据较高份额。
  • MySQL:

    • 类型:关系数据库管理系统(RDBMS)。
    • 定位:更适合中小型企业和个人用户,也常被用于大型网站的后台数据库。
    • 市场占有率:虽然在全球市场份额上不及Oracle,但MySQL在开源数据库市场中占据重要地位。

二、性能与扩展性

  • Oracle:

    • 性能:具有强大的性能优化功能,可以提供高效的查询和事务处理。采用了先进的查询优化器、并发控制和缓存管理等技术。
    • 扩展性:支持分布式数据库,可以在多台服务器上部署和管理数据库,实现数据的分布存储和处理。支持水平和垂直扩展。
  • MySQL:

    • 性能:采用了多种优化技术,如索引、查询缓存和高效的存储引擎(如InnoDB),可以快速检索数据和处理请求。在读取和写入方面通常比Oracle更高。
    • 扩展性:具有良好的可扩展性,可以通过主次复制、分片和分区等技术来实现数据的扩展。

三、安全性与可靠性

  • Oracle:

    • 安全性:提供了高级安全功能,如审计、访问控制和加密等。还使用了用户名、密码、配置文件、本地身份验证和外部身份验证等多种安全机制。
    • 可靠性:采用了多种机制来确保数据的可靠性,如数据冗余、事务处理和恢复机制等。具有高度的可靠性和稳定性。
  • MySQL:

    • 安全性:提供了多层次的安全措施,包括密码保护、基于角色的访问控制和SSL连接加密等。但相对于Oracle来说,安全性措施较少。
    • 可靠性:虽然也具有一定的可靠性保障,但可能不如Oracle完善。

四、数据类型与兼容性

  • Oracle:

    • 数据类型:提供了广泛的数据类型,包括对象关系、空间和XML等。这使得Oracle能够存储和处理复杂的数据。
    • 兼容性:虽然具有跨平台支持,但更偏向于使用自己的技术堆栈和产品集成。
  • MySQL:

    • 数据类型:专注于基本数据类型,但支持扩展类型以增强灵活性。例如,支持NoSQL和JSON数据类型。
    • 兼容性:可以很容易地在各种平台上运行,并与其他许多开源软件集成。

五、成本与许可

  • Oracle:

    • 成本:是一种专业的数据库管理系统,需要付费购买许可证。
    • 许可:使用专有许可模式。
  • MySQL:

    • 成本:社区版是免费的开源软件,适用于基本功能。如果需要使用高级功能(如多线程复制、查询性能优化等),可能需要购买商业版本(企业版)或相关许可证。
    • 许可:采用开源许可模式。

六、其他特点

  • Oracle:

    • 提供了友好的图形界面和丰富的管理工具,使数据库的配置、监控和管理变得简单和高效。
    • 支持OLTP(联机事务处理)和OLAP(联机分析处理)工作负载。
  • MySQL:

    • 易于安装和配置,并且有很好的兼容性。
    • 强调快速查询速度,特别是在读取密集型工作负载中表现出色。
      综上所述,Oracle与MySQL在基本特性、性能与扩展性、安全性与可靠性、数据类型与兼容性、成本与许可以及其他特点等方面都存在显著差异。选择哪种数据库取决于具体的应用场景和需求。

核心配置项

配置项

Oracle数据库的核心配置项包括了数据库初始化参数、内存管理参数、进程控制参数等。这些配置项可以通过多种方式进行设置和调整,以确保数据库的最佳性能和稳定性。以下是一些Oracle数据库的核心配置项及其说明:

  1. 初始化参数

    • 这些参数定义了数据库启动时的行为和限制,如db_block_size(数据库块大小)、shared_pool_size(共享池大小)、log_buffer(日志缓冲区大小)等。这些参数可以在初始化参数文件(如init.oraspfile.ora)中设置。
  2. 内存管理参数

    • Oracle数据库的内存管理参数包括sga_target(SGA目标大小)、pga_aggregate_target(PGA总目标大小)等,用于控制数据库实例的内存使用。
  3. 进程控制参数

    • Oracle数据库的后台进程,如PMON(进程监控器)、SMON(系统监控器)、DBWR(数据库写入进程)、LGWR(日志写入进程)等,可以通过参数如db_writer_processes(数据库写入进程数)来控制。
  4. 网络配置参数

    • Oracle数据库的网络配置参数包括hostnameportservice_name等,这些参数定义了数据库的网络连接信息,通常在tnsnames.oralistener.ora文件中设置。
  5. 文件和存储参数

    • 包括control_files(控制文件路径)、data_files(数据文件路径)等参数,用于定义数据库文件的存储位置。
  6. 审计和安全参数

    • audit_trail(审计跟踪级别)、remote_os_authent(远程操作系统认证)等,用于控制数据库的审计和安全特性。
  7. 性能调优参数

    • cursor_sharing(游标共享策略)、cursor_space_for_time(游标空间时间)等,用于优化数据库的性能。
  8. Oracle Net Configuration

    • 使用Oracle Net Configuration Assistant (NETCA)可以查看和设置Oracle网络配置,包括tnsnames.orasqlnet.ora文件的配置。
  9. Oracle Data Provider for .NET Core Configuration

    • ODP.NET Core支持通过.NET Configuration API设置应用程序级别的提供程序设置,如OracleConfiguration.StatementCacheSize(默认语句缓存大小)、OracleConfiguration.SelfTuning(是否禁用自调优)等。
  10. Linux内核参数

    • 对于运行Oracle数据库的Linux系统,可能需要调整一些内核参数,如kernel.shmmax(单个共享内存段的最大值)、kernel.shmall(控制共享内存页数)、fs.file-max(系统中所允许的文件句柄最大数目)等。

Oracle配置文件通常位于Oracle数据库的$ORACLE_HOME目录下,可以通过Oracle安装程序(oui)的配置助手(CAI)或Net Configuration Assistant(NETCA)来查看和设置。此外,也可以直接编辑配置文件或使用SQL*Plus连接到数据库执行相关命令来查看和修改配置。

配置样例

Oracle数据库的核心配置项通常在初始化参数文件(SPFILE)或服务器参数文件(PFILE)中设置。以下是一些核心配置项的样例:

1. 内存相关配置
# 设置SGA目标大小为1GB
sga_target = 1G

# 设置PGA目标大小为512MB
pga_aggregate_target = 512M
2. 实例和数据库特性
# 设置数据库的全局名称
global_names = true

# 设置数据库的字符集和国家代码
character_set = AL32UTF8
national_character_set = AL16UTF16
3. 存储和文件配置
# 控制文件配置
control_files = ('/u01/app/oracle/oradata/your_db_name/control01.ctl',
                 '/u02/app/oracle/oradata/your_db_name/control02.ctl')

# 数据文件配置
data_files = ('/u01/app/oracle/oradata/your_db_name/system01.dbf',
              '/u01/app/oracle/oradata/your_db_name/undotbs01.dbf',
              '/u01/app/oracle/oradata/your_db_name/sysaux01.dbf',
              '/u01/app/oracle/oradata/your_db_name/users01.dbf')

# 重做日志文件配置
diagnostic_dest = '/u01/app/oracle'
log_archive_config = 'DG_CONFIG=(SYSLOG,PRIMARY_ROLE)'
log_archive_dest_state_1 = enable
log_archive_format = 'archive_%t_%s.arc'
4. 审计和安全性配置
# 设置审计策略
audit_trail = db
audit_sys_operations = true

# 设置远程操作系统认证
remote_os_authent = true
5. 性能调优配置
# 设置游标共享策略
cursor_sharing = exact

# 设置游标空间时间
cursor_space_for_time = true
6. 网络配置
# 设置监听器的端口号
listener_port = 1521

# 设置服务名称
db_name = your_db_name
7. 其他核心配置
# 设置实例启动时的并行服务器进程数
parallel_server_target = 4

# 设置实例的最大并行服务器进程数
parallel_max_servers = 8

# 设置SQL*Net加密服务
sqlnet_encryption_client = required
sqlnet_encryption_server = required

这些配置项的设置会根据你的具体需求和环境有所不同。在实际应用中,可能还需要根据数据库的工作负载、系统资源、业务需求等因素来调整这些参数。
要应用这些配置,你需要将它们添加到服务器参数文件(SPFILE或PFILE)中,然后通过以下命令加载新的配置:

SQL> ALTER SYSTEM SET parameter_name = 'value' SCOPE=SPFILE;

或者在数据库启动时,通过以下命令加载PFILE:

$ ./dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbName your_db_name -sysPassword your_password -characterSet AL32UTF8 -nationalCharacterSet AL16UTF16 -emConfiguration DBaaS -storageType ASM -diskGroup data -systemPassword your_password -createAsContainerDatabase True -numberOfPDBs 1 -pdbName pluggable_db_name

请注意,修改核心配置项可能需要数据库管理员的专业知识,并且在生产环境中进行更改之前应该进行充分的测试。

运维命令行

Oracle运维涉及多个方面,包括数据库的启动与关闭、监控、备份与恢复、性能优化等。以下是一些常用的Oracle命令行工具和命令,以及它们的用途:

1. SQL*Plus

SQL*Plus是Oracle自带的命令行工具,用于执行SQL语句和PL/SQL脚本。通过它,可以连接到Oracle数据库,进行数据查询、数据插入、更新、删除等操作。

连接到数据库:

sqlplus username/password@database_link

例如,以sysdba身份连接到本地数据库:

sqlplus sys/as sysdba

2. 数据库启动和关闭

启动数据库:

startup

关闭数据库:

shutdown immediate

3. 监听器控制

Oracle监听器(Listener)是数据库的重要组成部分,用于监听客户端的连接请求。

启动监听器:

lsnrctl start

停止监听器:

lsnrctl stop

4. RMAN备份与恢复

RMAN(Recovery Manager)是Oracle提供的一个强大的备份与恢复工具。

创建备份:

RMAN> BACKUP DATABASE;

恢复数据库:

RMAN> RESTORE DATABASE;

5. 数据泵(Data Pump)

Data Pump是Oracle提供的一个数据导入导出工具,用于高速传输大量数据。

导出数据:

expdp system/password DIRECTORY=dir_dump DUMPFILE=mydb.dmp

导入数据:

impdp system/password DIRECTORY=dir_dump DUMPFILE=mydb.dmp

6. ASMCMD

ASMCMD是Oracle Automatic Storage Management (ASM)的命令行界面,用于管理ASM实例和磁盘组。

连接到ASM实例:

asmcmd

创建磁盘组:

CREATE DISKGROUP datadg REDUNDANT FAILGROUP rg1

7. Oracle即时客户端(Instant Client)

Instant Client是Oracle提供的轻量级客户端,包含运行OCI、OCCI和JDBC OCI应用程序所需的所有文件。

下载和安装:
访问Oracle官网下载Instant Client。

8. SQLcl

SQLcl是Oracle提供的一个新的命令行工具,用于替代sqlplus,支持更多的交互特性,如命令补全、历史记录等。

基本使用:

sql sys/welcome@localhost:1521:orcl as sysdba

9. 其他实用命令

查看数据库版本:

SELECT VERSION FROM v$instance;

查看数据库实例状态:

SELECT INSTANCE_NAME, STATUS FROM v$instance;

这些命令和工具是Oracle数据库运维的基础,通过它们,DBA可以有效地管理数据库实例,确保数据库的稳定性和性能。

Oracle的六条总结 1、如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL, 但可以看懂它们,你就可以跳到2。否则请先习一下数据库基础和SQL语言, 不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应用 边习、记忆。2 、要想ORACLE,首先要ORACLE的体系结构,现在你不需要深入 理解它们,但要分清几个关键的概念: instance (实例)、数据文件、日志文件、参数文件、数据文件与表空间的关系 3、2是有关ORACLE的一些基本概念,下面要习的是一些简单的的实际操作 ,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程 中你将对SQL和ORACLE体系结构有个更深入的了解。 4、到了这一步你基本上算是初步掌握了ORACLE,下面将要根据你的方向来具 体习其它的ORACLE知识了。如果你是开发人员,则需要更多地去习 PL/SQL以及DEVELOPER,而这将是一门新的课程。如果你是一名DBA, 请继续。 5、可以根据自己的实际情况,进行有选择的习,也就是说下面的内 没有特别顺序要求。可以选择深入ORACLE的管理、备份与恢复、性能 调整、网络等。当然在习这些知识的过程中,如果有实际的工作更好,这样 可以在实际中成长,会TROUBLE SHOOTING 目录 1.1 数据库基本知识 1.2 关系数据库 1.3 数据库设计基础 1.4 SQL基本命令 1.5 Oracle简介 1.6 启动和关闭Oracle 1.7 Oracle 命令复习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

问道飞鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值