
YashanDB的物理存储结构就是指的YashanDB数据库在硬盘上存储的各种文件,包括:数据文件、联机日志文件、控制文件、归档日志文件、参数文件、告警日志文件、跟踪文件和备份文件等。这里将重点介绍一下数据文件。
| 视频讲解如下 |
|---|
| 【赵渝强老师】崖山数据库的数据文件 |
一个数据库由多个表空间组成,而表空间可以由多个数据文件组成的,数据文件是真正存放数据库数据的。一个数据文件就是一个硬盘上的文件。表和索引中的数据在物理上是被存放在数据文件中的。当查询表中数据的时候,如果内存中没有该表的数据,那么YashanDB数据库的服务器进程将读取该表所在的数据文件,然后把数据存放到内存中。通过下面的语句可以查看当前数据库中存在的数据文件和对应的表空间:
sql
SQL> select file_name,tablespace_name from dba_data_files;
# 输出的信息如下:
FILE_NAME TABLESPACE_NAME
------------------------------------------------------ -----------------
/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/system SYSTEM
/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/sysaux SYSAUX
/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/temp TEMP
/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/swap SWAP
/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/users USERS
/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/undo UNDO
6 rows fetched.
当表空间中的数据文件写满时,可以通过下面的语句往表空间中添加新的数据文件。例如,往users表空间中添加一个10M大小的数据文件。
sql
SQL> alter tablespace users add datafile '/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/users02' size 10M;

执行下面的语句重新查看YashanDB数据库的数据文件信息。
sql
SQL> select file_name,tablespace_name from dba_data_files;
# 输出的信息如下:
FILE_NAME TABLESPACE_NAME
------------------------------------------------------- -----------------
/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/system SYSTEM
/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/sysaux SYSAUX
/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/temp TEMP
/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/swap SWAP
/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/users USERS
/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/undo UNDO
/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/users02 USERS
7 rows fetched.