Error
Error Code:
ORA-28388
Oracle ORA-28388: Read/Write Required
Description
The ORA-28388 error indicates an attempt to perform wallet operations on an Oracle database that is not open in read/write mode. Wallet operations, such as creating, opening, or modifying wallets, require the database to be in a read/write state.
Error Message
database is not open in read/write mode
Known Causes
3 known causesDatabase in Read-Only
The database was intentionally opened in read-only mode, preventing any write operations, including wallet management. 🔒
Mount Stage
The database is in the mount stage, which allows for administrative tasks but not full read/write access to data. ⚙
Restricted Session
Connected to the database with a restricted session that limits operations to those necessary for database administration. 💻
Solutions
4 solutions available1. Open Database in Read/Write Mode easy
Directly alter the database to open in read/write mode.
1
Connect to the Oracle database as a user with SYSDBA or SYSOPER privileges.
sqlplus / as sysdba
2
Check the current database status.
SELECT open_mode FROM v$database;
3
If the database is not in READ WRITE mode, alter it. This command will close the database if it's not already mounted or open, and then open it in read/write mode.
SHUTDOWN IMMEDIATE;
STARTUP;
4
Verify the database is now open in read/write mode.
SELECT open_mode FROM v$database;
2. Restart the Oracle Instance medium
A full restart can resolve transient issues preventing read/write access.
1
Connect to the Oracle database as a user with SYSDBA or SYSOPER privileges.
sqlplus / as sysdba
2
Perform a clean shutdown of the instance.
SHUTDOWN IMMEDIATE;
3
Start the Oracle instance.
STARTUP;
4
Confirm the database is open in read/write mode.
SELECT open_mode FROM v$database;
3. Check Listener and TNSNames Configuration medium
Ensure the listener is running and TNSNames is correctly configured to allow connections.
1
On the database server, check the status of the Oracle Listener. Replace 'LISTENER' with your actual listener name if it's different.
lsnrctl status LISTENER
2
If the listener is not running, start it.
lsnrctl start LISTENER
3
On the client machine, verify the TNSNames.ora file is correctly configured for the database service name and host/port.
YOUR_DB_ALIAS = (
DESCRIPTION = (
ADDRESS = (PROTOCOL = TCP)(HOST = your_db_host)(PORT = 1521)
(CONNECT_DATA = (
SID = ORCL
))
)
)
4
Attempt to connect to the database again using SQL*Plus or another client tool.
sqlplus username/password@your_db_alias
4. Investigate Database Mount and Open Parameters advanced
Review the initialization parameters related to database opening for potential misconfigurations.
1
Connect to the Oracle database as a user with SYSDBA or SYSOPER privileges.
sqlplus / as sysdba
2
Check the current initialization parameters related to opening the database.
SHOW PARAMETER SEC_CASE_SENSITIVE;
SHOW PARAMETER DB_BLOCK_CHECKSUM;
SHOW PARAMETER DB_LOST_WRITE_PROTECT;
SHOW PARAMETER LOG_ARCHIVE_FORMAT;
3
If any of these parameters are set to values that might restrict read/write operations (e.g., incorrect settings for data integrity checks that are causing issues), consider adjusting them. This is a more advanced step and requires a deep understanding of these parameters and their impact. For example, if `DB_LOST_WRITE_PROTECT` is enabled and experiencing issues, it might need to be disabled temporarily for troubleshooting, but this carries risks.
ALTER SYSTEM SET DB_LOST_WRITE_PROTECT = OFF SCOPE=SPFILE;
-- After changing SPFILE, a restart is required:
SHUTDOWN IMMEDIATE;
STARTUP;
4
Consult Oracle documentation for the specific parameters and their implications before making changes.
text