环境: Oracle 19.16 多租户架构

1.问题现象:

SQL>
create table T1 as select * from v$active_session_history
*
ERROR at line 1:
ORA-65114: space usage in container is too high

2.查看错误信息:

SQL> !oerr ora 65114
65114, 00000, "space usage in container is too high"
// *Cause: Space usage in the current container exceeded the value of
// MAX_PDB_STORAGE for the container.
// *Action: Specify a higher value for MAX_PDB_STORAGE using the ALTER
// PLUGGABLE DATABASE statement.
//

3.查询MAX_PDB_STORAGE设置

需要注意这里所说的MAX_PDB_STORAGE并不是一个参数,若直接show parameter MAX_PDB_STORAGE是查不到的。

而是一个数据库的属性,使用这样的查询方法:

--PDB中查询:
select property_value from database_properties where property_name = 'MAX_PDB_STORAGE';
--CDB中查询:
select property_name, property_value, description, con_id from cdb_properties where property_name = 'MAX_PDB_STORAGE';

我这里在CDB中查询:

SQL> col PROPERTY_NAME for a22
SQL> col PROPERTY_VALUE for a22
SQL> col DESCRIPTION for a66
SQL> select property_name, property_value, description, con_id from cdb_properties where property_name = 'MAX_PDB_STORAGE'; PROPERTY_NAME PROPERTY_VALUE DESCRIPTION CON_ID
---------------------- ---------------------- ------------------------------------------------------------------ ----------
MAX_PDB_STORAGE 2147483648 Maximum Space Usage of Datafiles and Local Tempfiles in Container 6
MAX_PDB_STORAGE UNLIMITED Maximum Space Usage of Datafiles and Local Tempfiles in Container 3
MAX_PDB_STORAGE UNLIMITED Maximum Space Usage of Datafiles and Local Tempfiles in Container 4 SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
4 PDB2 READ WRITE NO
6 AWR READ WRITE NO

正好对应AWR这个PDB,MAX_PDB_STORAGE有限制2147483648大小。

进入AWR这个PDB,验证查询:

SQL> alter session set container=awr;

Session altered.

SQL> select sum(bytes/1024/1024/1024) from dba_data_files;

SUM(BYTES/1024/1024/1024)
-------------------------
2.08984375 SQL> select sum(bytes) from dba_data_files; SUM(BYTES)
----------
2243952640

的确已经达到这个限制,所以不成功是正常的。

4.找出根因

咋会有这个限制呢?翻出之前建立这个PDB的创建语句,就会发现根因:

CREATE PLUGGABLE DATABASE awr
ADMIN USER awr IDENTIFIED BY awr
ROLES = (dba)
DEFAULT TABLESPACE tbs_awr
DATAFILE '/flash/oradata/DEMO/awr/awr01.dbf' SIZE 250M AUTOEXTEND ON maxsize 10G <--- 这里限制该数据文件上限大小10G
FILE_NAME_CONVERT = ('/flash/oradata/DEMO/pdbseed/',
'/flash/oradata/DEMO/awr/')
STORAGE (MAXSIZE 2G) <--- 这里限制了总大小2G,额。。
PATH_PREFIX = '/flash/oradata/DEMO/awr/';

5.解决问题

知道原因了,解决就很简单了,直接修正下,因为我测试环境空间有限,所以暂时就在此基础上先增加3G,也就是修改设置为5G。

ALTER PLUGGABLE DATABASE STORAGE (MAXSIZE 5G);

再次执行CTAS语句,不再报错,成功创建。

CTAS建表时报错ORA-65114的更多相关文章

  1. Mysql 建表时报错 invalid ON UPDATE clause for 'create_date' column

    这个错误是由于mysql 版本问题导致的 `create_date` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', ...

  2. impala 建表时报错,不支持中文

    1.错误信息 (1366, "Incorrect string value: '\\xE6\\x8E\\x88\\xE6\\x9D\\x83...' for column 'search' ...

  3. 【转载】Mysql创建表时报错error150

    从mysql数据库中导出正常数据库的脚本语句,而后使用脚本语句创建数据库的过程中,执行语句提示Can't Create Table 'XXX' erro150的错误,语句执行中断,创建table失败, ...

  4. Django生成数据表时报错

    Django生成数据表时报错 WARNINGS: ?: (mysql.W002) MySQL Strict Mode is not set for database connection 'defau ...

  5. Django创建表时报错django.db.utils.InternalError: (1366问题解决记录

    问题出现 执行Python manage.py makemigrations生成创建表的py文件 执行python manage.py migrate创建数据表 界面出现报错 问题原因 网上搜索原因, ...

  6. mysql truncate带有被引用外键的表时报错解决方法

    清空具有外键约束的表时报ERROR 1701(42000)的解决   mysql> truncate table t_users;ERROR 1701 (42000): Cannot trunc ...

  7. Mysql创建表时报错Table doesn't exist解决办法

    最近做项目时,本地数据库出了毛病,PHPMyadmin中有几张表不见了,我想应该是误删了吧,于是准备重新建一张表,可是问题出现了,sql报错,说表不存在... 什么鬼!就是因为表不存在我才要创建的好吗 ...

  8. Oracle 学习----:Oracle删除表时报错:表或视图不存在

    表明明存在,但是删除时却报错:表或视图不存在. 可能的原因之一是表名包含了小写,可以用双引号包含表名通过drop命令来删除, 如下所示: drop table "tmp_ST" ; ...

  9. mysql使用truncate截断带有外键的表时报错--解决方案

    报错内容如:1701 - Cannot truncate a table referenced in a foreign key constraint 一.为什么要使用truncate 使用trunc ...

  10. Django在根据models生成数据库表时报错: __init__() missing 1 required positional argument: 'on_delete'

    原因: 在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错:TypeError: __init__() missing ...

随机推荐

  1. uniapp H5扫码解决方案

    JS通过webView调用本地相机扫码二维码,然后webView把二维码数据传给JS 网上找了一堆资料,都是JS传值给webView的,这里自己看了下代码,通过两个步骤实现此功能1,通过JS调用web ...

  2. Vue - 组件通信(父子单向传递、父子相互传递、祖孙隔代传递)

    父组件向子组件单向传递 父组件:引入子组件后,通过属性绑定的形式,将值传入子组件: ` ` 子组件:子组件通过props接收父组件传入的值; ` {{sonGetParam}} ` 子组件向父组件单向 ...

  3. gitlab安装,移库,升级

    概述 最近因为机房原因,需要把我们的本地代码库做移库操作. 针对gitlab的安装升级操作重新进行了梳理,记录一下. 环境 CENTOS6 CENTOS7 gitlab-ce-8.14.2 GITLA ...

  4. C# 序列化器

    理论知识: 序列化是指将对象转换成字节流,从而存储对象或将对象传输到内存.数据库或文件的过程. 它的主要用途是保存对象的状态,以便能够在需要时重新创建对象. 反向过程称为"反序列化" ...

  5. shell脚本(16)-awk命令

    文档目录 一.awk介绍 二.awk基本用法 1.awk对字段(列)的提取: 2.awk对记录(行)的提取: 3.awk对字符串提取: 4.awk程序的优先级: 三.awk高级用法 1.awk定义数组 ...

  6. CoinBase是什么?

    什么是CoinBase交易? 比特币区块链上的每个区块中都会包含一个或者多个交易(transaction),其中第一个交易就叫做CoinBase交易. 什么是CoinBase交易? CoinBase交 ...

  7. 每天学五分钟 Liunx 0011 | 服务篇:进程

    1. 进程 程序放在硬盘中,在运行它的时候加载到内存,在内存里程序以进程的方式运行,进程有唯一的 ID ,叫 PID.   写个简单的 Hellow world 程序,让它产生 PID: [root@ ...

  8. Zookeeper 实现 ssl 双向认证

    本文为博主原创,未经允许不得转载: zookeeper 作为注册中心或服务发现协调中心的时候,zookeeper 默认与其他服务通过 http 进行通信. zookeeper 与协调服务配置 ssl  ...

  9. 为什么 sort() 中的 return a-b 可以决定升序

    arr.sort( function(a,b){ return a-b; } ) 千万不要理解成 a 减 b 其实它代表的是26个字母中的 a 和 b b 比 a 大,所以 a - b 就是升序,写成 ...

  10. TiDB的搭建与维护过程

    TiDB的搭建与维护过程 背景 总结一下TiDB的搭建以及简单维护过程. 目标: 简单快速的创建TiDB数据库,以及进行备份恢复等工作. TiDB 简介 TiDB(全称:Ti Distributed ...