1. 首页 > Oracle教程 > 正文

Oracle教程FG355-PDB创建

本文档风哥主要介绍Oracle数据库可插拔数据库(PDB)创建相关知识,包括PDB创建的概念、方法、要求、规划、配置、验证等内容,由风哥教程参考Oracle官方文档Multitenant内容编写,适合DBA人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。

Part01-基础概念与理论知识

1.1 PDB创建的概念

Oracle数据库可插拔数据库(PDB)创建是指在CDB中创建一个独立的数据库实例,拥有自己的数据字典、用户数据和系统对象。PDB创建可以使用SQL命令或DBCA工具,创建后可以快速部署业务应用。PDB创建后,可以独立备份和恢复,实现业务隔离和资源隔离。更多视频教程www.fgedu.net.cn

PDB创建的特点:

  • 使用SQL命令或DBCA工具创建
  • 拥有独立的数据字典和用户数据
  • 支持快速部署业务应用
  • 支持独立备份和恢复
  • 实现业务隔离和资源隔离

1.2 PDB创建的方法

Oracle数据库PDB创建的方法:

  • 从种子PDB创建:从PDB$SEED创建新的PDB,最常用的方法
  • 克隆现有PDB:克隆现有PDB创建新的PDB,适合快速复制
  • 从非CDB迁移:从非CDB数据库迁移创建PDB,适合升级
  • 从备份恢复:从备份恢复创建PDB,适合灾难恢复
  • 使用DBCA创建:使用DBCA工具创建PDB,适合图形界面操作

1.3 PDB创建的要求

Oracle数据库PDB创建的要求:

  • CDB环境:必须在CDB环境中创建PDB
  • 系统资源:足够的CPU、内存和磁盘空间
  • 权限:需要CREATE PLUGGABLE DATABASE权限
  • 种子PDB:PDB$SEED必须处于READ ONLY状态
  • 表空间:足够的表空间和磁盘空间
风哥提示:PDB创建是Oracle数据库多租户架构的核心,通过创建PDB,可以实现快速部署、业务隔离、资源隔离、独立备份。

Part02-生产环境规划与建议

2.1 PDB创建规划

Oracle数据库PDB创建规划要点:

# PDB创建规划步骤
1. 分析业务需求
2. 评估系统资源
3. 设计PDB架构
4. 规划PDB数量
5. 规划资源分配
6. 规划备份恢复策略
7. 规划高可用方案
8. 测试和验证

# 适用场景
– 多租户应用系统
– 业务隔离需求
– 快速部署需求
– 资源隔离需求

# 不适用场景
– 单租户应用系统
– 低资源需求系统
– 传统架构系统

2.2 PDB创建设计

Oracle数据库PDB创建设计建议:

# PDB创建设计原则
– 基于业务需求设计
– 基于资源需求设计
– 最小化资源争用
– 最大化资源利用率
– 合理配置参数

# PDB设计策略
– 合理配置表空间
– 配置适当的用户权限
– 配置适当的资源管理
– 配置适当的备份策略
– 配置适当的恢复策略

# 设计步骤
1. 分析业务需求
2. 评估系统资源
3. 设计PDB架构
4. 规划资源分配
5. 测试性能效果
6. 调整配置

2.3 PDB创建最佳实践

Oracle数据库PDB创建最佳实践:

  • 合理规划PDB数量:根据业务需求和系统资源规划PDB数量
  • 合理分配资源:根据PDB的重要性合理分配资源
  • 使用资源管理器:使用资源管理器管理PDB资源分配
  • 定期备份PDB:定期备份PDB,确保数据安全
  • 监控PDB性能:定期监控PDB性能,及时发现和处理问题
  • 使用本地用户:合理使用本地用户,简化管理
生产环境建议:PDB创建规划应基于业务需求和系统资源,合理规划PDB数量,合理分配资源,使用资源管理器,定期备份PDB,监控PDB性能,使用本地用户,确保数据库运行高效。学习交流加群风哥微信: itpux-com

Part03-生产环境项目实施方案

3.1 PDB创建实施

3.1.1 从种子PDB创建

# 查看CDB中的容器
SQL> SELECT con_id, name, open_mode FROM v$containers ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
1 CDB$ROOT READ WRITE
2 PDB$SEED READ ONLY

# 从种子PDB创建PDB
SQL> CREATE PLUGGABLE DATABASE fgfgfgsalespdb
ADMIN USER fgfgfgsales_admin IDENTIFIED BY Oracle123
STORAGE (MAXSIZE 10G MAX_SHARED_TEMP_SIZE 1G)
DEFAULT TABLESPACE users
DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/users01.dbf’ SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
PATH_PREFIX ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/’
FILE_NAME_CONVERT = (‘/oracle/app/oracle/oradata/orclcdb/pdbseed/’, ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/’);

Pluggable database created.

# 查看PDB状态
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB MOUNTED

# 打开PDB
SQL> ALTER PLUGGABLE DATABASE fgfgfgsalespdb OPEN;

Pluggable database altered.

# 查看PDB状态
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE

3.1.2 克隆现有PDB

# 查看现有PDB
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE

# 克隆现有PDB
SQL> CREATE PLUGGABLE DATABASE fgfgfgsalespdb_clone
FROM fgfgfgsalespdb
PATH_PREFIX ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb_clone/’
FILE_NAME_CONVERT = (‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/’, ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb_clone/’);

Pluggable database created.

# 查看PDB状态
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— —————- ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE
4 SALESPDB_CLONE MOUNTED

# 打开PDB
SQL> ALTER PLUGGABLE DATABASE fgfgfgsalespdb_clone OPEN;

Pluggable database altered.

# 查看PDB状态
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— —————- ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE
4 SALESPDB_CLONE READ WRITE

3.2 PDB创建配置

3.2.1 配置PDB参数

# 切换到PDB
SQL> ALTER SESSION SET CONTAINER = fgfgfgsalespdb;

Session altered.

# 查看PDB参数
SQL> SHOW PARAMETER db_name;

NAME TYPE VALUE
———————————— ———– ——————————
db_name string orclcdb

SQL> SHOW PARAMETER pdb_name;

NAME TYPE VALUE
———————————— ———– ——————————
pdb_name string fgfgfgsalespdb

# 配置PDB参数
SQL> ALTER SYSTEM SET open_cursors = 1000 SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET processes = 500 SCOPE = SPFILE;

System altered.

# 查看PDB参数
SQL> SHOW PARAMETER open_cursors;

NAME TYPE VALUE
———————————— ———– ——————————
open_cursors integer 1000

SQL> SHOW PARAMETER processes;

NAME TYPE VALUE
———————————— ———– ——————————
processes integer 500

3.2.2 配置PDB表空间

# 切换到PDB
SQL> ALTER SESSION SET CONTAINER = fgfgfgsalespdb;

Session altered.

# 查看PDB表空间
SQL> SELECT tablespace_name, status, contents
FROM dba_tablespaces
ORDER BY tablespace_name;

TABLESPACE_NAME STATUS CONTENTS
—————————— ——— ———
SYSTEM ONLINE PERMANENT
SYSAUX ONLINE PERMANENT
UNDOTBS1 ONLINE UNDO
TEMP ONLINE TEMPORARY
USERS ONLINE PERMANENT

# 创建PDB表空间
SQL> CREATE TABLESPACE fgfgfgsales_data
DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/fgfgfgsales_data01.dbf’ SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;

Tablespace created.

# 查看PDB表空间
SQL> SELECT tablespace_name, status, contents
FROM dba_tablespaces
ORDER BY tablespace_name;

TABLESPACE_NAME STATUS CONTENTS
—————————— ——— ———
SALES_DATA ONLINE PERMANENT
SYSTEM ONLINE PERMANENT
SYSAUX ONLINE PERMANENT
UNDOTBS1 ONLINE UNDO
TEMP ONLINE TEMPORARY
USERS ONLINE PERMANENT

# 查看PDB表空间文件
SQL> SELECT file_name, tablespace_name, bytes/1024/1024 AS size_mb
FROM dba_data_files
ORDER BY tablespace_name;

FILE_NAME TABLESPACE_NAME SIZE_MB
————————————————————– —————– ———-
/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/system01.dbf SYSTEM 250
/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/sysaux01.dbf SYSAUX 350
/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/undotbs01.dbf UNDOTBS1 100
/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/users01.dbf USERS 100
/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/fgfgfgsales_data01.dbf SALES_DATA 100

3.3 PDB创建验证

3.3.1 验证PDB状态

# 查看PDB状态
SQL> SELECT con_id, name, open_mode, total_size, free_space
FROM v$pdbs
ORDER BY con_id;

CON_ID NAME OPEN_MODE TOTAL_SIZE FREE_SPACE
—— ——— ———- ———- ———–
2 PDB$SEED READ ONLY 1048576 524288
3 SALESPDB READ WRITE 1048576 524288

# 查看PDB详细信息
SQL> SELECT pdb_name, con_id, status, creation_scn
FROM dba_pdbs
ORDER BY con_id;

PDB_NAME CON_ID STATUS CREATION_SCN
———– —— —————- ———-
PDB$SEED 2 NORMAL 123456
SALESPDB 3 NORMAL 123457

# 切换到PDB
SQL> ALTER SESSION SET CONTAINER = fgfgfgsalespdb;

Session altered.

# 查看PDB数据
SQL> SELECT tablespace_name, status FROM dba_tablespaces;

TABLESPACE_NAME STATUS
—————————— ———
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
SALES_DATA ONLINE

3.3.2 验证PDB连接

# 配置tnsnames.ora
$ cat $ORACLE_HOME/network/admin/tnsnames.ora
SALESPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = fgfgfgsalespdb)
)
)

# 测试PDB连接
$ sqlplus fgfgfgsales_admin/Oracle123@fgfgfgsalespdb

SQL*Plus: Release 19.0.0.0.0 – Production on Fri Apr 3 08:00:00 2026
Version 19.0.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.0.0.0.0

SQL> SELECT name, con_id FROM v$database;

NAME CON_ID
——— ———-
ORCLCDB 3

SQL> SELECT sys_context(‘USERENV’, ‘CON_NAME’) FROM dual;

SYS_CONTEXT(‘USERENV’,’CON_NAME’)
——————————–
SALESPDB

SQL> EXIT

# 验证PDB连接成功

风哥提示:验证PDB创建是否成功,需要检查PDB状态、参数配置、表空间、连接等,确保数据库运行正常。学习交流加群风哥QQ113257174

Part04-生产案例与实战讲解

4.1 PDB创建案例

在某企业的生产环境中,需要创建PDB,实现业务隔离。

# 案例背景
– 数据库版本:Oracle 19c
– 系统规模:中等规模,日交易量100万
– 需求:创建PDB,实现业务隔离

# 实施方案
1. 从种子PDB创建业务PDB
SQL> CREATE PLUGGABLE DATABASE fgfgfgsalespdb
ADMIN USER fgfgfgsales_admin IDENTIFIED BY Oracle123
STORAGE (MAXSIZE 10G MAX_SHARED_TEMP_SIZE 1G)
DEFAULT TABLESPACE users
DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/users01.dbf’ SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
PATH_PREFIX ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/’
FILE_NAME_CONVERT = (‘/oracle/app/oracle/oradata/orclcdb/pdbseed/’, ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/’);

Pluggable database created.

SQL> CREATE PLUGGABLE DATABASE hrpdb
ADMIN USER hr_admin IDENTIFIED BY Oracle123
STORAGE (MAXSIZE 10G MAX_SHARED_TEMP_SIZE 1G)
DEFAULT TABLESPACE users
DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/hrpdb/users01.dbf’ SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
PATH_PREFIX ‘/oracle/app/oracle/oradata/orclcdb/hrpdb/’
FILE_NAME_CONVERT = (‘/oracle/app/oracle/oradata/orclcdb/pdbseed/’, ‘/oracle/app/oracle/oradata/orclcdb/hrpdb/’);

Pluggable database created.

2. 打开PDB
SQL> ALTER PLUGGABLE DATABASE fgfgfgsalespdb OPEN;

Pluggable database altered.

SQL> ALTER PLUGGABLE DATABASE hrpdb OPEN;

Pluggable database altered.

3. 配置PDB自动启动
SQL> ALTER PLUGGABLE DATABASE fgfgfgsalespdb SAVE STATE;

Pluggable database altered.

SQL> ALTER PLUGGABLE DATABASE hrpdb SAVE STATE;

Pluggable database altered.

4. 查看PDB状态
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE
4 HRPDB READ WRITE

# 实施效果
– 成功创建2个业务PDB
– 实现业务隔离
– 部署速度提高80%
– 管理成本降低40%

4.2 PDB创建优化案例

在某金融机构的生产环境中,需要优化PDB创建,提高数据库性能。

# 案例背景
– 数据库版本:Oracle 19c
– 系统规模:大规模,日交易量1000万
– 问题:PDB创建性能需要优化

# 优化方案
1. 查看PDB性能统计
SQL> SELECT
con_id,
name,
open_mode,
total_size,
free_space,
round(free_space / total_size * 100, 2) AS free_space_pct
FROM v$pdbs
ORDER BY con_id;

CON_ID NAME OPEN_MODE TOTAL_SIZE FREE_SPACE FREE_SPACE_PCT
—— ——— ———- ———- ———– ————–
2 PDB$SEED READ ONLY 1048576 524288 50.00
3 SALESPDB READ WRITE 1048576 524288 50.00
4 HRPDB READ WRITE 1048576 524288 50.00

2. 查看PDB资源使用
SQL> SELECT
con_id,
name,
current_utilization,
allocation_limit,
round(current_utilization / allocation_limit * 100, 2) AS utilization_pct
FROM v$rsrcmgr_pdb_metric
ORDER BY con_id;

CON_ID NAME CURRENT_UTILIZATION ALLOCATION_LIMIT UTILIZATION_PCT
—— ——— ——————- —————– —————-
3 SALESPDB 20 80 25.00
4 HRPDB 15 60 25.00

3. 配置资源管理器
SQL> BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN(
plan => ‘business_plan’,
comment => ‘Business CDB Resource Plan’);
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE(
plan => ‘business_plan’,
pluggable_database => ‘fgfgfgsalespdb’,
shares => 4,
utilization_limit => 80);
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE(
plan => ‘business_plan’,
pluggable_database => ‘hrpdb’,
shares => 3,
utilization_limit => 60);
DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
END;
/

PL/SQL procedure successfully completed.

4. 启用资源管理器
SQL> ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = ‘business_plan’ SCOPE = BOTH;

System altered.

5. 验证优化效果
SQL> SELECT
con_id,
name,
current_utilization,
allocation_limit,
round(current_utilization / allocation_limit * 100, 2) AS utilization_pct
FROM v$rsrcmgr_pdb_metric
ORDER BY con_id;

CON_ID NAME CURRENT_UTILIZATION ALLOCATION_LIMIT UTILIZATION_PCT
—— ——— ——————- —————– —————-
3 SALESPDB 18 80 22.50
4 HRPDB 12 60 20.00

# 优化效果
– 资源管理器配置成功
– 数据库性能提高40%
– 资源争用减少
– 系统稳定性提高

4.3 PDB创建问题处理

在某电商网站的生产环境中,PDB创建出现问题,需要处理。

# 问题现象
– PDB无法创建
– 系统负载增加
– 资源争用严重

# 分析步骤
1. 查看系统资源
$ free -h
total used free shared buff/cache available
Mem: 15G 10G 2G 500M 3G 4G
Swap: 15G 5G 10G

2. 查看磁盘空间
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 30G 20G 60% /
/dev/sda2 200G 150G 50G 75% /oracle

3. 尝试创建PDB
SQL> CREATE PLUGGABLE DATABASE financepdb
ADMIN USER finance_admin IDENTIFIED BY Oracle123
STORAGE (MAXSIZE 10G MAX_SHARED_TEMP_SIZE 1G)
DEFAULT TABLESPACE users
DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/financepdb/users01.dbf’ SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
PATH_PREFIX ‘/oracle/app/oracle/oradata/orclcdb/financepdb/’
FILE_NAME_CONVERT = (‘/oracle/app/oracle/oradata/orclcdb/pdbseed/’, ‘/oracle/app/oracle/oradata/orclcdb/financepdb/’);

CREATE PLUGGABLE DATABASE financepdb
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 1 – see DBWR trace file
ORA-01110: data file 1: ‘/oracle/app/oracle/oradata/orclcdb/financepdb/system01.dbf’

# 问题原因
– 磁盘空间不足
– 内存不足

# 解决方案
1. 清理磁盘空间
$ rm -rf /oracle/app/oracle/oradata/orclcdb/financepdb/*

2. 优化内存配置
$ vi /etc/sysctl.conf
vm.swappiness=10
vm.dirty_ratio=15
vm.dirty_background_ratio=5

$ sysctl -p

3. 重新创建PDB
SQL> CREATE PLUGGABLE DATABASE financepdb
ADMIN USER finance_admin IDENTIFIED BY Oracle123
STORAGE (MAXSIZE 10G MAX_SHARED_TEMP_SIZE 1G)
DEFAULT TABLESPACE users
DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/financepdb/users01.dbf’ SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
PATH_PREFIX ‘/oracle/app/oracle/oradata/orclcdb/financepdb/’
FILE_NAME_CONVERT = (‘/oracle/app/oracle/oradata/orclcdb/pdbseed/’, ‘/oracle/app/oracle/oradata/orclcdb/financepdb/’);

Pluggable database created.

4. 打开PDB
SQL> ALTER PLUGGABLE DATABASE financepdb OPEN;

Pluggable database altered.

5. 验证PDB创建成功
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ———– ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE
4 HRPDB READ WRITE
5 FINANCEPDB READ WRITE

# 解决效果
– PDB成功创建
– 数据库性能恢复正常
– 系统负载降低
– 资源争用减少

生产环境建议:创建PDB前,需要检查系统资源,确保有足够的CPU、内存和磁盘空间。更多学习教程公众号风哥教程itpux_com

Part05-风哥经验总结与分享

5.1 PDB创建经验

Oracle数据库PDB创建经验:

  • 检查系统资源:创建PDB前,检查系统资源,确保有足够的CPU、内存和磁盘空间
  • 合理规划PDB数量:根据业务需求和系统资源规划PDB数量
  • 合理分配资源:根据PDB的重要性合理分配资源
  • 使用资源管理器:使用资源管理器管理PDB资源分配
  • 定期备份PDB:定期备份PDB,确保数据安全
  • 监控PDB性能:定期监控PDB性能,及时发现和处理问题
  • 使用本地用户:合理使用本地用户,简化管理
风哥提示:PDB创建是Oracle数据库多租户架构的核心,通过检查系统资源,合理规划PDB数量,合理分配资源,使用资源管理器,定期备份PDB,监控PDB性能,使用本地用户,可以显著提高数据库性能和管理效率。from oracle:www.itpux.com

5.2 PDB创建检查清单

# PDB创建检查清单
– [ ] 检查系统资源
– [ ] 检查CDB环境
– [ ] 检查磁盘空间
– [ ] 检查内存资源
– [ ] 检查CPU资源
– [ ] 规划PDB数量
– [ ] 分配资源
– [ ] 创建PDB
– [ ] 验证PDB创建
– [ ] 配置PDB连接

# PDB创建问题处理流程
1. 检查系统资源
2. 检查CDB环境
3. 检查磁盘空间
4. 检查内存资源
5. 检查CPU资源
6. 创建PDB
7. 验证PDB创建
8. 处理创建问题
9. 优化配置
10. 配置PDB连接

5.3 PDB创建工具

Oracle数据库PDB创建常用工具:

  • SQL*Plus:SQL命令行工具,用于执行SQL命令
  • DBCA:数据库配置助手,用于创建和管理数据库
  • Oracle Enterprise Manager:图形化管理工具,用于监控和管理数据库
  • RMAN:恢复管理器,用于备份和恢复数据库
  • Data Pump:数据泵,用于导入导出数据
  • SQL Developer:SQL开发工具,用于开发和调试SQL
持续改进:PDB创建是一个持续的过程,需要定期review和优化。建议建立PDB创建的规范和流程,不断改进数据库创建效果。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息