标签: tablespaces

将 postgresql 数据移动到不同的驱动器

我使用 AWS 作为我的云环境。我将 PostgreSQL 安装在与根实例卷相同的驱动器上。我已将第二个驱动器连接并安装到我的实例上。现在我想将我所有的 PostgreSQL 数据移动到不同的驱动器。我仍处于开发模式,因此如果此时可以更轻松地传输旧数据,我可以删除旧数据。做这个的最好方式是什么?

PostgreSQL 表空间是我应该看的东西吗?

postgresql tablespaces postgresql-9.1

28
推荐指数
2
解决办法
3万
查看次数

“ORA-01950:表空间 'SYSTEM' 上没有权限”:这是什么错误?

早些时候我创建了一个用户:

SQL>create user suhail identified by password
SQL>User created.
SQL>Grant create session,create table to suhail;
SQL>Grant Succeeded.
Run Code Online (Sandbox Code Playgroud)

但是当我以身份登录suhail并尝试创建一个时,table我收到一条错误消息ORA-01950: no privileges on tablespace 'SYSTEM'。这是什么错误?为什么会发生?


SQL> connect suhail
Enter password:
Connected.
SQL> create table suhail_table(name char(10));
create table suhail_table(name char(10))
*
ERROR at line 1:
ORA-01950: no privileges on tablespace 'SYSTEM'
Run Code Online (Sandbox Code Playgroud)

我使用的是 Oracle 数据库 11g 快捷版 11.2.0.2.0 版

oracle oracle-11g-r2 permissions tablespaces

16
推荐指数
1
解决办法
11万
查看次数

为什么在“创建数据库”命令中指定表空间时会出现 PostgreSQL 权限错误?

当我在 PostgreSQL 中创建一个数据库而没有明确指定默认表空间时,该数据库的创建没有问题(我以pgsys用户身份登录):

postgres=> 创建数据库rich1;
创建数据库
postgres=> \l+
                                                                            数据库列表
   姓名 | 业主 | 编码 | 整理 | 类型 | 访问权限 | 尺寸 | 表空间 | 描述
-----------+----------+----------+-------------+-- -----------+------------------------------------------------+ -----------+------------+------------------------ -------------------
 postgres | pgsys | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 7455 KB | pg_default | 默认管理连接数据库
 管理员 | 管理员 | UTF8 | en_US.UTF-8 | en_US.UTF-8 | rdsadmin=CTc/rdsadmin | 无访问权限 | pg_default |
 富豪1 | pgsys | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 7233 KB | pg_default …

postgresql permissions tablespaces aurora amazon-rds

16
推荐指数
1
解决办法
1万
查看次数

从表空间恢复逻辑空间

我有一个名为 DATA 的表空间,它设置为自动扩展为 false。这个表空间有两个数据文件,并且设置为占用 350 GB 的物理空间。

一周前,我查询了 user_tablespaces 和 dba_data_files,发现它有 20% 的可用逻辑空间。然后我继续清理并从该表空间的表中删除了许多记录。我们期望看到可用空间的大幅增加。不幸的是,当我查询视图时,我注意到可用空间现在是 20.5%。

这可能是由于数据碎片造成的吗?我们可以以某种方式对表空间进行“碎片整理”并恢复丢失的空间吗?还是我们需要从头开始重新创建表空间?

oracle tablespaces

11
推荐指数
2
解决办法
3007
查看次数

Oracle 收缩/回收可用表空间空间

我有一个大小为 90GB 的 Oracle 12c 表空间。几乎 40GB 是免费的。

TB1 54 %    90880   41383   49497   46  98304   50 %    ONLINE  PERMANENT
Run Code Online (Sandbox Code Playgroud)

表空间有 3 个数据文件。

E:\ORACLE\ORADATA\xx\TB1.DBF    33554416    True    100 
F:\ORACLE\ORADATA\xx\TB1_2.DBF  33554416    True    100 
G:\ORACLE\ORADATA\xx\TB1_3.DBF  25344000    True    100
Run Code Online (Sandbox Code Playgroud)

如何缩小表空间以回收可用的 40GB(磁盘上的数据文件)?我不能有停机时间。

oracle shrink tablespaces oracle-12c

8
推荐指数
2
解决办法
5万
查看次数

表空间是否类似于逻辑卷?

我对 PostgreSQL 中的表空间感到困惑。是不是类似于 LVM?我的意思是当磁盘已满时,我们可以添加另一个磁盘,然后格式化CREATE TABLESPACE tblspace LOCATION /media/disk2/data吗?够了吗?或者我们应该手动使用ALTER数据库、表或索引来利用它?

postgresql tablespaces

6
推荐指数
1
解决办法
4013
查看次数

DBA_TABLESPACE_USAGE_METRICS 中使用了哪些单位?

Oracle静态数据字典视图中描述的使用量指标(USED_SPACETABLESPACE_SIZE列)中使用了哪些单位DBA_TABLESPACE_USAGE_METRICS

Oracle数据库参考只告诉他们是“由表所消耗的总空间”“表空间的总大小”,就不能不提单位。它们以字节为单位吗?兆字节?块?

oracle tablespaces

6
推荐指数
1
解决办法
2万
查看次数

当我已将新文件添加到 TEMP 表空间时,如何解决此 ORA-01652 错误?

我在 Oracle 数据库上继承了类似 DBA 的基本职责,但在尝试运行包含大量联接和分组的查询时遇到了 ORA-01652 错误。这是我得到的错误:

ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
01652. 00000 -  "unable to extend temp segment by %s in tablespace %s"
*Cause:    Failed to allocate an extent of the required number of blocks for
           a temporary segment in the tablespace indicated.
*Action:   Use ALTER TABLESPACE ADD DATAFILE statement to add one or more
           files to the tablespace indicated.
Run Code Online (Sandbox Code Playgroud)

我已经接受了错误消息的建议(或至少尝试过)并创建了一个新的数据文件。这是我用于此的命令:

ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/ABCDEFG/temp02.dbf'
SIZE 1024M REUSE AUTOEXTEND ON …
Run Code Online (Sandbox Code Playgroud)

oracle tablespaces

6
推荐指数
1
解决办法
11万
查看次数

ORA-01691(无法扩展 lob 段)即使我的表空间有 AUTOEXTEND

我收到一个错误:

ORA-01691: unable to extend lob segment ABC.SYS_LOB0000167347C00131$$ by 1024 in tablespace XYZ
Run Code Online (Sandbox Code Playgroud)

但这对我来说很奇怪,因为表空间打开了 AUTOEXTEND。发生这种情况的可能原因是什么,我该如何克服?

谢谢。

oracle tablespaces

6
推荐指数
1
解决办法
3万
查看次数

对于故意删除的 InnoDB 表,出现“无法打开只读数据文件”

我们已经记不清我们是如何准确到达这里的了,但是我们在 MySQL 启动时收到以下错误(尽管它仍然使用 InnoDB 启动服务):

[ERROR] InnoDB: Cannot open datafile for read-only: './oldschema/tablename.ibd' OS Error: 71
Run Code Online (Sandbox Code Playgroud)

它所引用的表曾经存在于那里,但被重命名为不同的模式,然后被删除,或者可能只是被删除(模糊内存),以便让对它的所有引用都跟随到其他模式中。最终,该表被替换为通过复制有意建立为副本的表。

它不会出现在信息模式中,不会出现在 SHOW TABLES 列表中,无法使用 SELECT 语句进行查询,并且无法在该模式中对该名称进行 DROP/ALTER TABLE(在获取视图后)让我们:

mysql> drop table oldschema.tablename;
ERROR 1051 (42S02): Unknown table 'oldschema.tablename'
mysql> ALTER TABLE oldschema.tablename DISCARD TABLESPACE;
ERROR 1146 (42S02): Table 'oldschema.tablename' doesn't exist
Run Code Online (Sandbox Code Playgroud)

...正如我们所期望的那样。然而,现在在它的位置有一个同名的视图(它引用另一个模式中的新表),并且它有一个相应的 .frm 文件,当然,没有 .ibd 文件,正如我们所期望的那样。

此外,新模式中的表正如预期一样工作,旧模式中为其别名的视图也是如此。事实上,据我们所知,这不会造成任何问题……我们只是不想再担心看到日志的人。我们甚至可以在其位置创建并删除一个表(在移动视图之后并将其放回之前),但仍然会出现该错误。

那么为什么 MySQL 需要在旧模式中使用该名称的 ibd 文件呢?

我们如何说服它忘记?

mysql innodb tablespaces

6
推荐指数
0
解决办法
6678
查看次数