欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle 12c 32k 与 rman recover table之间的 Bug

程序员文章站 2022-06-16 17:17:53
...

OracleDatabase12cRelease1(12.1.0.1.0)forLinuxx86-64OS:RedhatLinux5Update864bit1.按官方手册,启用&nbsp..

Oracle Database 12c Release 1 (12.1.0.1.0) for Linux x86-64

OS: Redhat Linux 5 Update 8 64bit

1. 按官方手册,香港服务器,香港服务器,启用 varchar2 32k 支持

2. 使用 rman recover table 功能是,免备案空间,始终失败,报错如下:

RMAN-03015: error occurred in stored script Memory Script
RMAN-03009: failure of sql command on clone_default channel at 07/15/2013 13:03:14
RMAN-11003: failure during parse/execution of SQL statement: alter pluggable database PDB1 open read only
ORA-14693: The MAX_STRING_SIZE parameter must be EXTENDED.

3. 在未启用 varchar2 32k 支持时, rman recover table 成功。

经过多位朋友测试,均和我测试结果一致,证明是 Oracle 12.1.0.1.0 的Bug.

详细测试过程如下:

[oracle@AS5U8 trace]$ sqlplus gao/gao

SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 10 20:37:58 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Last Successful login time: Wed Jul 10 2013 19:34:02 +08:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

一 建立测试表

SQL> create table t1 (id number(1));

Table created.

SQL> insert into t1 values(1);

1 row created.

SQL> insert into t1 values(2);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from t1;

ID
———-
1
2

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YY
——————-
2013-07-10 20:38:46

二 进行一次 全备

[oracle@AS5U8 /]$ rman target sys/oracle

Recovery Manager: Release 12.1.0.1.0 – Production on Wed Jul 10 20:39:00 2013

Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.

connected to target database: NAIL (DBID=902387349)

RMAN> backup database format '/u01/backup/bak_%f';

Starting backup at 10-JUL-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=53 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/product/oradata/nail/system01.dbf
input datafile file number=00003 name=/u01/product/oradata/nail/sysaux01.dbf
input datafile file number=00004 name=/u01/product/oradata/nail/undotbs01.dbf
input datafile file number=00006 name=/u01/product/oradata/nail/users01.dbf
channel ORA_DISK_1: starting piece 1 at 10-JUL-13
channel ORA_DISK_1: finished piece 1 at 10-JUL-13
piece handle=/u01/backup/bak_6 tag=TAG20130710T203920 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:15
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 10-JUL-13
channel ORA_DISK_1: finished piece 1 at 10-JUL-13
piece handle=/u01/backup/bak_0 tag=TAG20130710T203920 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 10-JUL-13

三 继续写数据

SQL> insert into t1 values(3);

1 row created.

SQL> insert into t1 values(4);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from t1;

ID
———-
1
2
3
4

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YY
——————-
2013-07-10 20:41:20

SQL>

四 删除表
SQL> drop table t1 purge;

Table dropped.

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YY
——————-
2013-07-10 20:41:56

五 RMAN 恢复 (报错)

[oracle@AS5U8 /]$ rman target sys/oracle