Expdp :ORA-39171: Job is experiencing a resumable wait.? - oracle

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.
C:\Users\Administrator>expdp USERNAME/*****#db FULL=Y VERSION=12.1 DIRECTORY=Load_Dump DUMPFILE=fNAMe.DMP LOGFILE=NAme.log parallel=4
Export: Release 12.1.0.2.0 - Production on Mon Jul 20 11:11:57 2020
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
WARNING: Oracle Data Pump operations are not typically needed when connected to the root or seed of a container database.
......
------------------------------------------------------------------------------
Resumable stmt status: SUSPENDED
Resumable stmt start: 07/20/20 11:14:02 stmt suspend: 07/20/20 11:14:03
ORA-39171: Job is experiencing a resumable wait.
Resumable error: ORA-01691: unable to extend lob segment DBUSER.SYS_LOB0000109481C00100$$ by 128 in tablespace DBTBS
Resumable stmt: INSERT INTO "DBUSER"."SYS_EXPORT_FULL_01" (object_type_path, object_path_seqno, dump_fileid, dump_position,dump_length, dump_orig_length, dump_allocation, process_order, duplicate, object_row, object_type, object_schema, original_object_schema, object_name, object_long_name, original_object_name, partition_name, subpartition_name, object_tablespace, grantor, flags, processing_state, processing_status, base_process_order, base_object_type, base_object_schema, base_object_name, domain_process_order, xml_clob, ancestor_process_order, property, trigflag, size_estimate, creation_level, parent_process_order, value_n, object_int_oid, metadata_io, tde_rewrapped_key, option_tag, orig_base_object_schema, parallelization, unload_method) VALUES(:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :13, :16, :17, :18, :19, :20, :21, :22, :23, :24, :25, :26, :27, :28, :29, :30, :31, :32, :33, :34, :35, :36, :37, :38, :39, :40, :41, :42, :43)

You don't have a problem with Datapump, rather a storage issue. Datapump jobs will be suspended until the issue is solved.
Your clue:
ORA-01691: unable to extend lob segment DBUSER.SYS_LOB0000109481C00100$$ by 128 in tablespace DBTBS
A resumable error in datapump is a recoverable error, it means that the job is suspended until the issue that produced the suspension is fixed.
Increase the tablespace DBTBS and your job will resume.

As #Roberto mentioned this is due to the tablespace size issue, you can extend the table space size. In my case, I had the autoextend ON but the max size got breached. You can extend the max table space size and resume the import process.
ALTER TABLESPACE DBTBS
ADD DATAFILE 'DBTBS.dbf'
SIZE 200m
autoextend ON NEXT 1000M maxsize 4000M;
Assuming 4000M would be the max limit for your DB import.

Related

Oracle stored procedure ORA-00972: identifier is too long

I've imported some customer DB using Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production. Now I need to create a procedure with identifier length > 30 but this is failing with the following error : "ORA-00972: identifier is too long". I read that in oracle 12.1.x and lower the limitation was 30 bytes and in 12.2.0.1.0 size is increased to 128 bytes. I ran 'describe all_objects/describe user_objects' on the DB and it's showing that identifier size is set to 128
DB all_objects result. However, it is still failing to create...Is it possible that the export was created in 12.1 and retained the 30 char limit even though it's showing 128 when imported into my local 12.2 db server. Any ideas?

How to solve this error signaled in parallel query server ORA-12801 when delete

When i run this delete statement
delete /*+ PARALLEL(19) */
from billing_lines
where id_service in (select before_line from number_change)
and id_service not in (select max(a.new_line)
from number_change a, number_change bef
where a.new_line = bef.before_line
and not exists(select null from billing_lines f where f.id_contract= a.id_contract)
group by a.id_contract);
I get this error
ORA-12801: error signaled in parallel query server P003
ORA-12853: insufficient memory for PX buffers: current 12192K, max needed 6255360K
ORA-04031: unable to allocate 65560 bytes of shared memory ("
ORA-06512: at line 28
What is the problem. Do I have to increase the memory?
Any suggestion to solve this problem. Thanks in advance.
Oracle version
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE 11.2.0.4.0 Production"
TNS for HPUX: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
We need memory for each parallel thread in order to pass data between the threads and back to the coordinator. The more threads you have, the more memory you need.
"parallel 19" could give you up to 38 processes (19 producers, 19 consumers). Try reducing that, otherwise you probably need to bump up your SGA

Oracle SQL: Running insert statements from a large text file

I have a large text file (around 50mb). This text file has thousands of insert statements. I tried to open the text file in Oracle SQL Developer, but it is too large. How do I insert the data into my tables without opening the file in SQL Developer?
I tried to loop through the insert statements one by one and insert them into my table like this:
DECLARE
V1 VARCHAR2(32767);
fileVariable UTL_FILE.FILE_TYPE;
BEGIN
fileVariable := UTL_FILE.FOPEN('h:/Documents',
'clob_export.sql',
'R',
32760);
UTL_FILE.GET_LINE(fileVariable,V1,32767);
UTL_FILE.FCLOSE(fileVariable);
END;
But this doesn't seem to work. I can't create directories on the machine, and anyways, the text file is on the computer where I am running SQL Developer and SQL Developer is connected remotely to the database.
The simplest way - from my point of view - is to run it from SQL*Plus, such as:
c:\Temp>sqlplus scott/tiger
SQL*Plus: Release 11.2.0.2.0 Production on Uto Sij 26 22:20:18 2021
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL> #insert_data.sql
1 row created.
1 row created.
<snip>
presuming that insert_data.sql contains something like
insert into dept values (1, 'Dept 1', 'NY');
insert into dept values (2, 'Dept 2', 'London');
...
Use sqlplus and if where are too much text use options to log only in the file not on screen
SET TERMOUT OFF;
spool M:\Documents\test.log;
Call the file with # instead of trying to open the file. You may also want to disable feedback to avoid many thousands of "1 row inserted" messages.
set feedback off;
#c:\users\jon\Desktop\test.sql
The above commands are SQL*Plus syntax, but Oracle SQL Developer worksheets understand basic SQL*Plus commands. If you need to frequently run large scripts then you might want to learn the command line SQL*Plus, but if this is just a one-time task then stick with SQL Developer.

Lost Redologs and Archivelogs

I am using Oracle XE 11g R2 and due to a mistake all the archivelogs where deleted by running delete archivelog all; command on RMAN.
Also one set of redo logs were deleted i.e. redo_g02a.log, redo_g02b.log and redo_g02c.log
Other redolog are available i.e. redo_g01a.log, redo_g01b.log, redo_g01c.log and redo_g03a.log, redo_g03b.log and redo_g03c.log
Is there a way I can startup the database now? It is a production database and I am really worried.
I tried copying from redo_g01a.log to redo_g02a.log ... but alert logs say:
ORA-00312: online log 2 thread 1: '/u01/app/oracle/fast_recovery_area/XE/onlinelog/redo_g02a.log'
USER (ospid: 30663): terminating the instance due to error 341
Any help will be much much appreciated.
First make a copy of your datafiles, redo logs, and control file. That way you can get back to this point.
If the database was shut down clean you can try clearing the group and it will be recreated for you.
SQL> connect / as sysdba
Connected to an idle instance.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2260048 bytes
Variable Size 675283888 bytes
Database Buffers 385875968 bytes
Redo Buffers 5517312 bytes
Database mounted.
SQL> alter database clear logfile group 2;
Database altered.
SQL> alter database open;
Database altered.
SQL>
If not you will need to recover and open with the resetlogs option. Unfortunately because you lost an entire log group you may also have lost data.

Unable to alter Oracle Parameters

I am unable to add more than 200 datafiles in my database because of these parameters:
select records_total from v$controlfile_record_section where type = 'DATAFILE';
select value from v$parameter where name = 'db_files';
Both of these give me an output of 200. I need to increase this to 400 so I have tried:
alter system set records_total = 400 where name = 'db_files';
alter system set value= 400 where type = 'DATAFILE';
but I am getting
S
QL Error: ORA-02065: illegal option for ALTER SYSTEM
02065. 00000 - "illegal option for ALTER SYSTEM"
*Cause: The option specified for ALTER SYSTEM is not supported
*Action: refer to the user manual for option supported
Am I able to change these parameters and how?
You probably want to use commands like this:
C:\Users\jonearles>sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Fri Jul 10 13:07:16 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> show parameter db_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_files integer 200
SQL> alter system set db_files=400 scope=spfile;
System altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1048576000 bytes
Fixed Size 3053584 bytes
Variable Size 662702064 bytes
Database Buffers 377487360 bytes
Redo Buffers 5332992 bytes
Database mounted.
Database opened.
SQL> show parameter db_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_files integer 400
SQL>
This assumes you are using an SPFILE (or else you will need to manually edit the init.ora file and restart) and you are not using RAC (or else you will need to use a command like srvctl stop database -d my_sid).
As ditto mentioned, it can help to look at the ALTER syntax. It may also help to look at the Oracle Database Reference, which will tell you if the command is dynamic (meaning it can be run without restarting the database).

Resources