我在redhat 6上使用postgres 9.2
这应该很简单但我无法在任何地方找到它.我正在寻找存储postgres表空间位置的数据库表和列,我认为它将在PG_TABLESPACE中,但是
select * from pg_tablespace
Run Code Online (Sandbox Code Playgroud)
显示...
postgres=# select * from pg_tablespace;
spcname | spcowner | spcacl | spcoptions
-----------------+----------+--------+------------
pg_default | 10 | |
pg_global | 10 | |
C_TBL_DB91SABIR | 10 | |
(3 rows)
Run Code Online (Sandbox Code Playgroud)
但没有位置,任何保留位置的想法?
谢谢
我需要知道Oracle中真正的表空间大小.我有一些表空间,我需要知道它现在使用了多少空间以及有多少空闲空间(可能是可用空间的百分比).我在网上找到了一些sqls,但是所有这些都显示了基于水印的大小...这不是现在分配的真实空间,但据我所知达到的最高值...所以我真正的需要是知道如果我有足够的空间存放我经常写的数据,我必须知道在删除其中一些数据之前我可以存储多少空间.
谢谢
我有很多表,我可以插入行,但我只为一个表得到这个错误;
Error starting at line 1 in command:
INSERT INTO ERRORLOG (MESSAGE) VALUES ('test')
Error report:
SQL Error: ORA-01950: no privileges on tablespace 'USERS'
01950. 00000 - "no privileges on tablespace '%s'"
*Cause: User does not have privileges to allocate an extent in the
specified tablespace.
*Action: Grant the user the appropriate system privileges or grant the user
space resource on the tablespace.
Run Code Online (Sandbox Code Playgroud)
i am not expert on oracle but as i understood from the error message; 'USERS' tablespace is …
我有一个包含两个表的转储文件.现在我需要导入这个转储文件.我被指示在beforehands之前创建两个表空间.现在如何将此转储文件导入这些表空间.我正在使用PL/SQL开发人员.
我最近需要将.dmp导入我创建的新用户.我还使用以下命令为用户创建了一个新的表空间:
create tablespace my_tablespace
datafile 'C:\My\Oracle\Install\DataFile01.dbf' size 10M
autoextend on
next 512K
maxsize unlimited;
Run Code Online (Sandbox Code Playgroud)
导入正在运行时出现错误:
ORA-01652 Unable to extend my_tablespace segment by in tablespace
Run Code Online (Sandbox Code Playgroud)
当我检查dba_data_files表中的数据文件时,我观察到maxsize大约是34gb.因为我知道数据库的一般大小,所以在将多个数据文件添加到表空间后,我能够毫无问题地导入.dmp.
当我添加的第一个数据文件设置为自动增长到无限大小时,为什么我需要向表空间添加多个数据文件?为什么最大尺寸为34gb而不是无限制?是否有34gb的硬帽?
我有两个表空间:一个用于数据,一个用于索引.我无法更改此配置.如何在Hibernate中指定索引表空间?
我已经阅读过Hibernate Oracle Tablespace Annotation,但这不是同一个问题.我需要为数据指定表空间,为索引指定不同的表空间.
正如它在Oracle XE概述页面上所述:
Oracle Database XE可以安装在具有任意数量CPU的任何大小的主机上(每台机器一个数据库),但XE将存储最多4GB的用户数据,最多使用1GB内存,并在主机上使用一个CPU.
现在,如果我想监视数据库以查看正在使用的用户数据量或数据库使用的内存量,我该怎么做?可以从Oracle Application Express监视这些值,但我想从集中监视系统监视数据库.Oracle XE文档提供了一个返回Flash Recovery Area用法的查询,因此我猜测用户数据的使用也存在类似的查询.
SELECT
NAME,
TO_CHAR(SPACE_LIMIT, '999,999,999,999') AS SPACE_LIMIT,
TO_CHAR(SPACE_LIMIT - SPACE_USED + SPACE_RECLAIMABLE,'999,999,999,999')
AS SPACE_AVAILABLE,
ROUND((SPACE_USED - SPACE_RECLAIMABLE)/SPACE_LIMIT * 100, 1)
AS PERCENT_FULL
FROM V$RECOVERY_FILE_DEST;
Run Code Online (Sandbox Code Playgroud)
此外,当用户数据超出限制时会发生什么?
DB2 docs for DB2/z v10在tablespaces部分中包含以下代码段:
作为一般规则,每个表空间中应该只有一个表.
但它实际上并没有为此提供任何理由.
我们有一些表存储基于以下行的历史时间信息(复杂性大大降低,但应足以说明):
Table HOURLY_CPU_USAGE:
RecDate date
RecTime time
Node char(32)
MaxCpuUsage float
primary key (RecDate, RecTime, Node)
Table DAILY_CPU_USAGE:
RecDate date
Node char(32)
MaxCpuUsage float
primary key (RecDate, Node)
Table MONTHLY_CPU_USAGE:
RecDate date
Node char(32)
MaxCpuUsage float
primary key (RecDate, Node)
Run Code Online (Sandbox Code Playgroud)
(每日表将所有小时记录汇总到一天,月表与日常数据相同,将其汇总到日期行中YYYY-MM-01).
现在在我看来,这些表的目的非常相似,我不确定为什么我们要将它们保存在单独的表空间中.
现在折扣将它们组合成一张表的可能性,这是我提出的建议,但有一些并发症阻止了它.
"每个表空间一个表"指南背后的理由是什么?有什么例外,如果有的话?我认为它们可能是例外,因为它似乎是一个指导而不是一个严格的规则.
psql查看所有现有表空间的命令是什么?
\l+ 显示所有现有数据库及其配置的表空间,但不会显示已创建但尚未包含数据库的表空间。
考虑我在表空间TS1中有TABLE1.我有另一个表空间TS2.
以下三者有什么区别
ALTER TABLE TABLE1移动NOLOGGING PARALLEL;
ALTER TABLE TABLE1移动表格TS1 NOLOGGING PARALLEL;
ALTER TABLE TABLE1移动表格TS2 NOLOGGING PARALLEL;
提前致谢..
tablespace ×10
oracle ×6
oracle11g ×2
postgresql ×2
sql ×2
alter-table ×1
database ×1
db2 ×1
dump ×1
hibernate ×1
java ×1
mainframe ×1
oracle-xe ×1
privileges ×1
psql ×1
space ×1
zos ×1