Monday, June 13, 2011

How to enable partitioning in Oracle

Let's say that you exported some data with exp of some database with no errors or warnings, and when you're importing it in other database you get an ORA-00439 error:

Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production

Export file created by EXPORT:V10.02.01 via direct path
import done in WE8ISO8859P1 character set and AL16UTF16 NCHAR character set
export client uses US7ASCII character set (possible charset conversion)
. importing MYUSER's objects into MYUSER
. . importing table "MYTABLE"
0 rows imported
. . importing table "ATABLE"
0 rows imported
. . importing table "ONETABLE"
22 rows imported
IMP-00017: following statement failed with ORACLE error 439:
"CREATE TABLE "BADTABLE" ("LOGDATE" CHAR(8), "SOMEINFO" CHAR(6)
"ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 TABLESPACE "MYTABLES"
"PACE" LOGGING PARTITION BY RANGE ("LOGDATE" ) (PARTITION "ONE""
" VALUES LESS THAN ('20050301') PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 2"
"55 STORAGE(INITIAL 655360 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT"
") TABLESPACE "MYTABLESPACE" LOGGING NOCOMPRESS, PARTITION "TWO" VALUE"
"S LESS THAN ('20040301') PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STO"
"RAGE(INITIAL 655360 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABL"
"ESPACE "MYTABLESPACE" LOGGING NOCOMPRESS )"
IMP-00003: ORACLE error 439 encountered
ORA-00439: feature not enabled: Partitioning

This error means you have to enable partitioning in the Oracle Database engine in order to use this feature, and if you didn't so at installation time you can enable it with this commands:

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk part_on
make -f ins_rdbms.mk ioracle

It would be better to shut down all Oracle instances before doing this; below there is an example of enabling partitioning in an Oracle Database 11g engine and checking it:

$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk part_on
/usr/bin/ar d /oracle_11g/product/11.1.0/rdbms/lib/libknlopt.a ksnkkpo.o
/usr/bin/ar cr /oracle_11g/product/11.1.0/rdbms/lib/libknlopt.a /oracle_11g/product/11.1.0/rdbms/lib/kkpoban.o
$ make -f ins_rdbms.mk ioracle
chmod 755 /oracle_11g/product/11.1.0/bin

- Linking Oracle
rm -f /oracle_11g/product/11.1.0/rdbms/lib/oracle
gcc -o /oracle_11g/product/11.1.0/rdbms/lib/oracle -L/oracle_11g/product/11.1.0/rdbms/lib/ -L/oracle_11g/product/11.1.0/lib/ -L/oracle_11g/product/11.1.0/lib/stubs/ -Wl,-E /oracle_11g/product/11.1.0/rdbms/lib/opimai.o /oracle_11g/product/11.1.0/rdbms/lib/ssoraed.o /oracle_11g/product/11.1.0/rdbms/lib/ttcsoi.o -Wl,--whole-archive -lperfsrv11 -Wl,--no-whole-archive /oracle_11g/product/11.1.0/lib/nautab.o /oracle_11g/product/11.1.0/lib/naeet.o /oracle_11g/product/11.1.0/lib/naect.o /oracle_11g/product/11.1.0/lib/naedhs.o /oracle_11g/product/11.1.0/rdbms/lib/config.o -lserver11 -lodm11 -lcell11 -lnnet11 -lskgxp11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11 -lvsn11 -lcommon11 -lgeneric11 -lknlopt `if /usr/bin/ar tv /oracle_11g/product/11.1.0/rdbms/lib/libknlopt.a | grep xsyeolap.o > /dev/null 2>&1 ; then echo "-loraolap11" ; fi` -lslax11 -lpls11 -lrt -lplp11 -lserver11 -lclient11 -lvsn11 -lcommon11 -lgeneric11 `if [ -f /oracle_11g/product/11.1.0/lib/libavserver11.a ] ; then echo "-lavserver11" ; else echo "-lavstub11"; fi` `if [ -f /oracle_11g/product/11.1.0/lib/libavclient11.a ] ; then echo "-lavclient11" ; fi` -lknlopt -lslax11 -lpls11 -lrt -lplp11 -ljavavm11 -lserver11 -lwwg `cat /oracle_11g/product/11.1.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /oracle_11g/product/11.1.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11 -lmm -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lztkg11 `cat /oracle_11g/product/11.1.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /oracle_11g/product/11.1.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `if /usr/bin/ar tv /oracle_11g/product/11.1.0/rdbms/lib/libknlopt.a | grep "kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo11"; fi` -L/oracle_11g/product/11.1.0/ctx/lib/ -lctxc11 -lctx11 -lzx11 -lgx11 -lctx11 -lzx11 -lgx11 -lordimt11 -lclsra11 -ldbcfg11 -lhasgen11 -lcore11 -lskgxn2 -locr11 -locrb11 -locrutl11 -lhasgen11 -lcore11 -lskgxn2 -loraz -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lsnls11 -lunls11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -laio `cat /oracle_11g/product/11.1.0/lib/sysliblist` -Wl,-rpath,/oracle_11g/product/11.1.0/lib -lm `cat /oracle_11g/product/11.1.0/lib/sysliblist` -ldl -lm -L/oracle_11g/product/11.1.0/lib
test ! -f /oracle_11g/product/11.1.0/bin/oracle ||\
mv -f /oracle_11g/product/11.1.0/bin/oracle /oracle_11g/product/11.1.0/bin/oracleO
mv /oracle_11g/product/11.1.0/rdbms/lib/oracle /oracle_11g/product/11.1.0/bin/oracle
chmod 6751 /oracle_11g/product/11.1.0/bin/oracle
$ sqlplus / as sysdba

SQL*Plus: Release 11.1.0.7.0 - Production on Thu Jun 9 17:33:48 2011

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning option

SQL> column PARAMETER format a30
SQL> column VALUE format a30
SQL> select * from v$option where parameter = 'Partitioning';

PARAMETER VALUE
------------------------------ ------------------------------
Partitioning TRUE

More information:

ORA-00439: feature not enabled: Partitioning

No comments:

Post a Comment