ORA-60019 : Creating initial extent of size 14 in tablespace of extent size 8 - clob

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
Seeking help from experts to resolve the following error:
CREATE TABLE "BUILD_FILT"
( "BUILD_ID" NUMBER(38,0),
"BUILD_NAME" VARCHAR2(200 CHAR),
"BUILD_IMPL" CLOB
)
ORA-60019 : Creating initial extent of size 14 in tablespace of extent size 8
*Cause: Creation of SECUREFILE segment failed due to small tablespace
extent size.
*Action: Create tablespace with larger extent size and reissue command.

The minimum extent size of the tablespace must be 1M when db_securefile is set to ALWAYS. If the extent size is less than 1M, the error ORA-60019 is reported.
For Oracle 12C, run the following command:
ALTER SYSTEM SET db_securefile=NEVER scope=both;

Related

Dropped table became permanently deleted

I'm new to this Oracle Database. Today I ran DROP TABLE table1; and tried to FLASHBACK it. But the Script Output returned this :
FLASHBACK TABLE TABLE1 TO BEFORE DROP
Error report -
ORA-38305: object not in RECYCLE BIN
38305. 00000 - "object not in RECYCLE BIN"
*Cause: Trying to Flashback Drop an object which is not in RecycleBin.
*Action: Only the objects in RecycleBin can be Flashback Dropped.
I thought that the recyclebin was somehow disabled. So I opened another connection and input this command :
ALTER SESSION SET recyclebin = ON;
and repeated the process again, the result was still the same. There was nothing in the recyclebin when I ran SELECT * FROM RECYCLEBIN;
Did I unintentionally mess up anything ?
The technique you're using is Oracle Flashback Drop. It's enabled when satisfying the following three conditions:
Parameter RECYCLEBIN='on'
Data not being stored in SYSTEM tablespace
Data must be stored in a locally managed tablespace
I guest that you're simulating your examples under SYS user (which has the default tablespace SYSTEM) leading to you can't flachback at all.
I did try to login as SYS user and simulating a small example as yours and do get the same error output as yours.
Try your lab under another user which default tablespace not SYSTEM.
You can verify the conditions by checking:
Recleclebin='on' with SQL*PLUS SQL> SHOW PARAMETER RECYCLEBIN;
Default Tablespace not SYSTEM with SQL> select default_tablespace
from dba_users where username='input_username';
Tablespace datafile is locally managed with SQL>select
extent_management from dba_tablespaces where
tablespace_name='input_tablespace_name';
you didn't mess up anything with the command ALTER SESSION SET recyclebin = ON; but it's late to invoke that command. I think your problem is due your default tablespace to be SYSTEM for tables.
Oracle Flashback Drop reverses the effects of a DROP TABLE operation. It can be used to recover after the accidental drop of a table. Flashback Drop is substantially faster than other recovery mechanisms that can be used in this situation, such as point-in-time recovery, and does not lead to any loss of recent transactions or downtime.
The table and its dependent objects will remain in the recycle bin until they are purged from the recycle bin. You can explicitly purge a table or other object from the recycle bin with the command:
DROP TABLE some_table PURGE;
Dropped objects are kept in the recycle bin until such time as no new extents can be allocated in the tablespace to which the objects belong without growing the tablespace. This condition is referred to as space pressure. Space pressure can also arise due to user quotas defined for a particular tablespace. A tablespace may have free space, but the user may have exhausted his or her quota on it.
When space pressure arises, the database selects objects for automatic purging from the recycle bin. Objects are selected for purging on a first-in, first-out basis, that is, the first objects dropped are the first selected for purging.
There is no fixed amount of space preallocated for the recycle bin. Therefore, there is no guaranteed minimum amount of time during which a dropped object will remain in the recycle bin.
To view only objects in the recycle bin, use the USER_RECYCLEBIN and DBA_RECYCLEBIN views.

issue while importing data into oracle (impdb)

I am getting these 2 statements while importing dump into orcle:
ORA-39171: Job is experiencing a resumable wait.
ORA-01653: unable to extend table DATA_TABLE by 8192 in tablespace TABLE_DATA
Please let me know the solution if you know.
When you run out of tablespace, impdp very politely pauses and informs you that you need to expand the tablespace. Once you have done so, impdp continues the import without additional intervention.
In your case, you need to expand tablespace TABLE_DATA. Log into another session, and either up the limit on the files associated with TABLE_DATA, or add a file. Say your data file is table_data_01.DBF and its max size is 500M. You could expand it to 1G with the following:
ALTER DATABASE
DATAFILE 'D:\ORACLE\ORADATA\xxxx\table_data_01.DBF AUTOEXTEND ON
NEXT 256M
MAXSIZE 1G;
If you wanted to add another data file to the tablespace, you could do so with the following:
ALTER TABLESPACE TABLE_DATA
ADD DATAFILE 'D:\ORACLE\ORADATA\xxxx\CIS_DATA_02.DBF'
SIZE 256M
AUTOEXTEND ON
NEXT 16M
MAXSIZE 1G;
Be sure to adjust the paths and sizes as appropriate for your environment.
Whereas the above does work, when using Oracle 12c (12.1.0.2.0) I left the import in it's resumable state and opened another sqlplus window. From there, I ran:
ALTER TABLESPACE DATA1
ADD DATAFILE
SIZE 52428800
AUTOEXTEND ON NEXT 8388608
MAXSIZE 30720M;
This added a fourth datafile to our tablespace and created the name since it is oracle managed filenames. Upon creation of the datafile the Oracle import immediately continued from it's resumable state. Of course, if you are uncomfortable with that import, simply drop the schema and do an entire re-import. The new tablespace that you created will still be there so you will not run into the Resumable wait error again.
Note also that the parameters for SIZE, AUTOEXTEND ON NEXT and MAXSIZE are different because I used the same parameters as our database files already in the tablespace.

What is the maximum size of temp tablespace in oracle database?

Trying to execute the next command
SELECT * FROM dba_temp_free_space
I am getting an error:
Error: ORA-01652: unable to extent temp segment by 128 in tablespace temp
and there are 32 GB of space is free, but when I ran a procedure I've got an error. When I check autoextending of the temp tablespace, it says YES..
What should I do to get maximum size of temp tablespace?
I think you are focusing on a solution, not the problem. A 32 GB tablespace should be adequate for most operations in a small OLTP database. You have not told us much about what is running when you get the error so I can only supply some diagnostics and test queries. The maximum size of any tablespace could be as much as 128 Terabyte or as small as 32 Terabyte with 8k block size.
Try this query while your problem object is running:
select TABLESPACE_NAME, BYTES_USED, BYTES_FREE from V$TEMP_SPACE_HEADER;
If you cannot change the problem object you can create a temporary tablespace group and add multiple temporary tablespaces to it.
Be sure to check what temporary tablespace the user who is running the object is using with a command like this:
ALTER USER scott TEMPORARY TABLESPACE temp;

Failed to allocate an extent of the required number of blocks for an index segment in the tablespace indicated

i tried to run a stored procedure as follows,
insert into process_state_archive select * from process_state
where tstamp BETWEEN trunc(ADD_MONTHS(SYSDATE, -12)) AND trunc(ADD_MONTHS(SYSDATE, -3))
Got below error :
Error report:
SQL Error: ORA-01654: Kan index WEBDEV.PROCESS_STAT_TSTAMP_ACTION niet uitbreiden met 8 in tabelruimte USERS.
01654. 00000 - "unable to extend index %s.%s by %s in tablespace %s"
*Cause: Failed to allocate an extent of the required number of blocks for
an index segment in the tablespace indicated.
*Action: Use ALTER TABLESPACE ADD DATAFILE statement to add one or more
files to the tablespace indicated.
But Yesterday i could able to run the procedure without any error.
Can any one please tell me the resolution for the above error ?
Your USERS tablespace is full. You may be able to free up some space by dropping something, possibly old objects - if this is a development environment in particular, see if you've been accumulating old objects in the recycle bin and purge any you no longer require.
If you can't fee up any space then you need to do what the error message tells you to do, add an additional data file to the tablespace, or increase the size of an existing data file, assuming you have sufficient disk space to do so.
The documentation has a section about managing data files, including adding data files and changing the size of existing data files. Which action is appropriate will depend on your circumstances, and you'll need to decide what size is appropriate. You might also want to consider creating a new dedicated tablespace for your application rather than using the USERS tablespace, but again depends on your circumstances and needs.

What Does This Oracle SQL Statement Do?

I am migrating a MSSQL script to Oracle SQL and I can't figure out what one line in the script is doing.
I am very new to SQL.
CREATE TABLE HA_BACKUP_PROCESSES
(
ID numeric (10, 0) NOT NULL ,
PROCESS_ID numeric (10, 0) NOT NULL ,
BACKUP_PROCESS_ID numeric (10, 0) NOT NULL ,
CONSTRAINT HA_BCK_PROC_PK PRIMARY KEY (ID)
USING INDEX TABLESPACE userdata001
)
In the above code, what is the 'USING INDEX TABLESPACE userdata001' statement doing?
This clause allows selection of the tablespace in which the index associated with a UNIQUE or PRIMARY KEY constraint will be created. If not specified, default_tablespace is used, or the database's default tablespace if default_tablespace is an empty string
Tablespaces are nothing more than logical containers for datafiles and indexes.
When setting up an Oracle instance, you must define your tablespaces before you can create datafiles. Then, when you create a table or index you must specify the tablespace you want to create the datafile in, or accept the default tablespace.
It instructs the database to store index information in the tablespace named "userdata001".
A helpful explanation can be found here:
A tablespace is a logical storage unit within an Oracle database. It is logical because a tablespace is not visible in the file system of the machine on which the database resides. A tablespace, in turn, consists of at least one datafile which, in turn, are physically located in the file system of the server. Btw, a datafile belongs to exactly one tablespace.
Each table, index and so on that is stored in an Oracle database belongs to a tablespace. The tablespace builds the bridge between the Oracle database and the filesystem in which the table's or index' data is stored.