1. 测试过程中,发现 system tablespace is not enough, need to adjustment
初步解决方案:
查询一下 system tablespace的大小
SQL> select sum(bytes) from dba_free_space where tablespace_name='SYSTEM';
查询结果输出是bytes,我要切换为M,方便查看
SQL> select sum(bytes)/(1024*1024) as "size: M" from dba_free_space where tablespace_name='SYSTEM';
显示只有1.31M了
b. 我想直接扩大这个表空间文件,但是忘记这个系统表空间的文件地址,需要查询
SQL> select * from dba_data_files where tablespace_name='SYSTEM';
得到结果 /u01/app/oracle/oradata/ORCL18C/system01.dbf
c. 尝试直接扩展
SQL> alter database datafile '/u01/app/oracle/oradata/ORCL18C/system01.dbf' resize 500M;
alter database datafile '/u01/app/oracle/oradata/ORCL18C/system01.dbf' resize 500M
*
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value - 第一次报错,因为resize的值过小,小于最原始的值,本来已经用过的 已经超过500M,设置为500M,可能会造成数据丢失,重新设置为2048M
SQL> alter database datafile '/u01/app/oracle/oradata/ORCL18C/system01.dbf' resize 2048M;
commit;
d. 验证一下 是否生效
SQL> select sum(bytes)/(1024*1024) as "size: M" from dba_free_space where tablespace_name='SYSTEM'; 查询结果显示有 1159.3125, 由此可知,已经生效