ORA-12913: 无法创建字典管理的表空间
2011-04-22 08:21
288 查看
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 dictionarymanaged 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 temporarytablespaces and migration of SYSTEM tablespaces are not supported.
5.结论
如果你想在SYSTEM为本地管理表空间的数据库上建立字典管理的表空间,那么答案是 no way!!!
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 dictionarymanaged 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 temporarytablespaces and migration of SYSTEM tablespaces are not supported.
5.结论
如果你想在SYSTEM为本地管理表空间的数据库上建立字典管理的表空间,那么答案是 no way!!!
相关文章推荐
- ORA-30574: 无法利用 AUTO 段空间管理在表空间中创建回退段
- 无法创建字典管理表空间
- ora-01658 :无法为表空间USERS 中的段创建INITIAL区
- ora-01658 :无法为表空间USERS 中的段创建INITIAL区
- PL/SQL基础编程之(十一)[表空间概述、说明、创建][本地管理和字典管理、切换管理方式]
- ORA-01658: 无法为表空间 DATA 中的段创建 INITIAL 区
- ora-01658 :无法为表空间USERS 中的段创建INITIAL区
- ORA-01658:无法为表空间users中的段创建initial区
- oracle用imp导入数据的时候报错:ORA-01658: 无法为表空间xxx中的段创建INITIAL区
- ORA-01658: 无法为表空间 UNDOTBS2 中的段创建 INITIAL 区
- ORA-01658: 无法为表空间 XXXX 中的段创建 INITIAL 区
- ORA-01658: 无法为表空间space中的段创建 INITIAL 区解决办法
- oracle建表后添加数据报错:ORA-01658:无法为表空间中的段创建INITIAL区
- ORA-01658: 无法为表空间space中的段创建 INITIAL 区
- ora-01658 :无法为表空间USERS 中的段创建INITIAL区
- ora-01658: 无法为表空间*****中的段创建 INITIAL 区
- 异常信息:ORA-01658: 无法为表空间 CWBASE001 中的段创建 INITIAL 区
- cmd 到数据库时出现ORA-01658: 无法为表空间 DHCT中的段创建 INITIAL 区
- oracle 10g\11g用imp导入数据的时候报错:ORA-01658: 无法为表空间 MAXDATA 中的段创建 INITIAL 区 错误解决
- ORA-01658: 无法为表空间 MAXDATA 中的段创建 INITIAL 区