ORA-00062: DML full-table lock cannot be acquired; DML_LOCKS is 0
Error
ORA-00062: DML full-table lock cannot be acquired; DML_LOCKS is 0
SQL> startup force
ORACLE instance started.
Total System Global Area 1610609744 bytes
Fixed Size 9028688 bytes
Variable Size 1207959552 bytes
Database Buffers 385875968 bytes
Redo Buffers 7745536 bytes
Database mounted.
ORA-00603: ORACLE server session terminated by fatal error
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00604: error occurred at recursive SQL level 1
ORA-00062: DML full-table lock cannot be acquired; DML_LOCKS is 0
Process ID: 8216
Session ID: 296 Serial number: 54715
Cause:
You DML_LOCKS parameter is set to zero value. You must be in postive integer value.
Solution
Two method:
1. By using modifing PFILE and SPFILE.
2. By using ALTER Command.
By using PFILE and SPFILE
1. Create a pfile from spfile.
create pfile='E:\pfile.txt' from spfile;
2. Alter the DML_LOCKS parater or Edit the PFILE DML_LOCKS value to 5000 and save it.
Edit Pfile and save it.
3. Create SPFILE from pfile and start the database.
--Create spfile from pfile
Create spfile from pfile='E:\pfile.txt';
--start the database
Startup
By Using ALTER command
1. Shutdown the Database
Shutdown immediate
2. Startup in nomount stage.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 1610609744 bytes
Fixed Size 9028688 bytes
Variable Size 1207959552 bytes
Database Buffers 385875968 bytes
Redo Buffers 7745536 bytes
3. Alter the parameter DML_LOCKS.
SQL> alter system set DML_LOCKS=5000 scope=spfile;
System altered.
4. Then mount and open the database
-- Shutdown the database
shutdown immediate
--Startup the database
startup