ORA-39312: Cannot alter tablespace encryption. ORACLE 报错 故障修复 远程处理
文档解释
ORA-39312: Cannot alter tablespace encryption.
Cause: DBMS_METADATA_DIFF was comparing two tablespaces, one encrypted, one not. There is no SQL ALTER statement to change the encryption property of a tablespace.
Action: The difference cannot be eliminated with an SQL ALTER statement.
ORA-39312:不能更改表空间加密。
这是一个Oracle数据库的错误,指示你不能修改表空间加密。这是因为Oracle的安全规定禁止动态更改表空间加密设置。
官方解释
ORA-39312:“无法修改表空间加密”
该错误表明用户尝试以表空间级别修改表空间加密,但不允许这样做。表空间加密只能在创建表空间时设置。
常见案例
某用户试图使用alter表空间命令更改表空间加密:
ALTER TABLESPACE TAB1 ENCRYPTS
一般处理方法及步骤
要更改表空间加密,必须创建一个新的表空间、将所有表空间中的对象复制到新表空间中、重新索引,并将旧表空间删除。
1.使用以下Create表空间命令创建受加密的表空间,注意使用ENCRYPT关键字:
CREATE TABLESPACE tab2
DATAFILE ‘blahblah.dbf’ SIZE 100M
ENCRYPT;
2.将原表空间中的对象复制到新的受加密的表空间中:
ALTER TABLE tab1 MOVE TABLESPACE tab2;
3.重新创建索引,如果需要:
CREATE INDEX tab2_idx
ON tab1 (col1);
4.删除旧的(未加密的)表空间:
DROP TABLESPACE tab1 INCLUDING CONTENTS AND DATAFILES;