尝试将本地管理的表空间转换为字典管理表空间

1. 问题及环境

由于做一个测试需要用到字典管理的表空间,尝试在自己的测试库上建一个
jcq0>select * from v$version;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE    9.2.0.1.0       Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production

2. 小试牛刀

jcq0>show user
USER 为"SYS"
jcq0>create tablespace dictionary_t
  2  datafile 'D:\ORACLE\ORADATA\DB_NAMEX\dict.dbf' size 50M
  3  extent management dictionary
  4  default storage(initial 100k next 100k);
create tablespace dictionary_t
*
ERROR 位于第 1 行:
ORA-12913: 无法创建字典管理的表空间

查看错误解释

ORA-12913 Cannot create dictionary managed tablespace

Cause: An attempt was made to create a dictionary managed tablespace in a database whose SYSTEM tablespace is locally managed.

Action: Create a locally managed tablespace.

该信息告诉我们只能在SYSTEM表空间为字典管理时才能用以上语句创建字典管理的表空间

3.峰回路转

突然想到不是有个包可以在本地管理的表空间和字典管理的表空间之间迁移么,之后找到该包

DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_FROM_LOCAL
DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL

看来果然可以,于是马上动手

jcq0>execute DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_FROM_LOCAL('TEST10');
BEGIN DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_FROM_LOCAL('TEST10'); END;

*
ERROR 位于第 1 行:
ORA-12914: 无法将表空间移植到字典管理的类型中
ORA-06512: 在"SYS.DBMS_SPACE_ADMIN", line 0
ORA-06512: 在line 1

ORA-12914 Cannot migrate tablespace to dictionary managed type

Cause: An attempt was made to migrate a locally managed tablespace to dictionary managed type when the database has a locally managed SYSTEM tablespace.

Action: Such an operation cannot be issued.

同样的提示,所以先迁移SYSTEM表空间

jcq0>execute DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_FROM_LOCAL('SYSTEM');
BEGIN DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_FROM_LOCAL('SYSTEM'); END;

*
ERROR 位于第 1 行:
ORA-03251: 无法在 SYSTEM 表空间上提交此命令
ORA-06512: 在"SYS.DBMS_SPACE_ADMIN", line 0
ORA-06512: 在line 1

ORA-03251 Cannot issue this command on SYSTEM tablespace

Cause: It is not permitted to migrate SYSTEM tablespace from locally managed format to dictionary managed format or relocate bitmaps.

Action: Check the tablespace name and procedure name.

4.回到原点

翻到doc对该过程的说明可以得到同样的解释

The tablespace must be kept online and read/write during migration. Migration of temporary tablespaces and migration of SYSTEM tablespaces are not supported.

5.结论

 如果你想在SYSTEM为本地管理表空间的数据库上建立字典管理的表空间,那么答案是 no way!!!

(需要引用, 请注明出处:痴情甲骨文http://space.itpub.net/14130873)

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14130873/viewspace-530051/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14130873/viewspace-530051/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值