Friday, January 26, 2024

Exadata Scrubbing

 

1. Появление сбойных секторов на диске автоматически запускает дополнительный scrubbing:

8.2.4 Adaptive Scrubbing Schedule
In release 12.1.2.3.0, if a bad sector is found on a hard disk in a current scrubbing job, Oracle Exadata System Software will schedule a follow-up scrubbing job for that disk in one week. When no bad sectors are found in a scrubbing job for that disk, the schedule will fall back to the scrubbing schedule specified by the hardDiskScrubInterval attribute.If the user has changed the hardDiskScrubInterval to less than or equal to weekly, Oracle Exadata System Software will use the user-configured frequency instead of the weekly follow-up schedule even if bad sectors are found.

Exadata adaptively and automatically increase the frequency of scrubbing on that disk until all corruptions are repaired.

2. Scrubbing - не применяется к Flash-селлам

3. Работу по восстановлению избыточности выполняет ASM:  
If scrubbing detects a sector is corrupted, the storage server requests ASM to repair the sector from one of the mirrors on another storage server. This is reason why multiple ASM-mirrors are essential.
Получается, что если ASM остановлен, то Scrubbing не может исправить данные на дисках

4. Scrubbing is an automated process on Exadata that kicks in when the disks are idle ( less than 25% busy )

5. How do you see if scrubbing is in action?

CellCLI> list metriccurrent where name = 'CD_IO_BY_R_SCRUB_SEC' and metricObjectName like 'CD.*'

CD_IO_BY_R_SCRUB_SEC    CD_00_exadbm01celadm01  115 MB/sec  <<< scrubbing sectors at a rate of around 115MB/s.
CD_IO_BY_R_SCRUB_SEC    CD_01_exadbm01celadm01  118 MB/sec
CD_IO_BY_R_SCRUB_SEC    CD_02_exadbm01celadm01  117 MB/sec

     ...
The cell above represents an idle cell. If it were under load, the values on the right would drop to 0 MB/sec.


6. Hard disk drives in the High Capacity storage servers connect to a disk controller, which includes a 2G cache. AWR is reporting the number of IOPS serviced by the disk controller cache, not the physical IOPS serviced by the disk itself.

Wednesday, January 24, 2024

ORA-31603: object "SYS_NT#***" of type TABLE not found in schema"

Trying to get the DDL for a table we obtain the error:

SQL> select dbms_metadata.get_ddl('TABLE','SYS_NT#Y85_UAGY5$7BMV2SL63J7JM','&owner') from dual;

ERROR:
ORA-31603: object "SYS_NT#Y85_UAGY5$7BMV2SL63J7JM" of type TABLE not found in schema "&owner"
ORA-06512: at "SYS.DBMS_METADATA", line 6737
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: at "SYS.DBMS_METADATA", line 6724
ORA-06512: at "SYS.DBMS_METADATA", line 9740
ORA-06512: at line 1

no rows selected
 

Is the table exists?

SQL> select OBJECT_NAME Name, OBJECT_TYPE, STATUS from dba_objects where owner='...' and OBJECT_NAME like '%SYS_%';


NAME                           OBJECT_TYPE STATUS
------------------------------ ----------- ----------
SYS_NT#Y85_UAGY5$7BMV2SL63J7JM TABLE      
INVALID
 

Explanation: objects with name starting from SYS_NT# is "system generated nested tables ID"

Run the 2 queries, they show the PARENT_TABLE:

set lines 400

col TABLE_NAME          for a18
col TABLE_TYPE_OWNER    for a12
col TABLE_TYPE_NAME     for a24
col PARENT_TABLE_NAME   for a24
col PARENT_TABLE_COLUMN for a24

select TABLE_NAME,TABLE_TYPE_OWNER,TABLE_TYPE_NAME,PARENT_TABLE_NAME,PARENT_TABLE_COLUMN from dba_nested_tables where owner='&owner';

col owner        for a12
col nested_table for a24

select dio.owner,
     dio.object_name as nested_table,
     dio.status,
     nt.obj#,
     do.owner,
     do.object_name as parent_table
from dba_invalid_objects dio,
   ntab$ nt,
   dba_objects do
where dio.object_id=nt.ntab#
and nt.obj#=do.object_id
order by dio.object_id;



IPv6 is coming

Amazon will start charging for IPv4:

We are introducing a new charge for public IPv4 addresses. Effective February 1, 2024 there will be a charge of $0.005 per IP per hour for all public IPv4 addresses, whether attached to a service or not (there is already a charge for public IPv4 addresses you allocate in your account but don’t attach to an EC2 instance).

This change intended to encourage you to be a bit more frugal with your use of public IPv4 addresses and to think about accelerating your adoption of IPv6 as a modernization and conservation measure.. (https://aws.amazon.com/blogs/aws/new-aws-public-ipv4-address-charge-public-ip-insights/)

Thursday, January 18, 2024

The black/blank/blind window in runInstaller, dbca, sqldeveloper

 After installing the Linux 8.9 with default settings i obtained the black/blank/blind (it is difficult to explain) window in runInstaller, dbca and sqldeveloper. No content, no buttons :



Oracle Linux 8.9 in VirtualBox on my laptop.

Obviously the problem in Java settings.

$ java -version
openjdk version "17.0.9" 2023-10-17 LTS
OpenJDK Runtime Environment (Red_Hat-17.0.9.0.9-2.0.1) (build 17.0.9+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-17.0.9.0.9-2.0.1) (build 17.0.9+9-LTS, mixed mode, sharing)

 

SOLUTION is 

 export _JAVA_OPTIONS='-Dsun.java2d.xrender=false'

The investigation opened that runInstaller and DBCA don't need the Java/JDK installed into OS. The runInstaller and DBCA use java from ORACLE_HOME. So i remove them but runInstaller and DBCA works well:

 

 

The SQLDeveloper needs the external JDK.

After install OpenJDK the SQLDeveloper will show content in the windows. You don't need the Oracle Java/JDK to run SQLDeveloper:

# yum install java-17-openjdk
...
# java -version
openjdk version "17.0.9" 2023-10-17 LTS
OpenJDK Runtime Environment (Red_Hat-17.0.9.0.9-2.0.1) (build 17.0.9+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-17.0.9.0.9-2.0.1) (build 17.0.9+9-LTS, mixed mode, sharing)


How to disable/setup autostart parameters for specified instance ?

Q: We have a 4-node RAC. I need to disable autostart of the DB on one node only.    How to do it and how to see autostart parameters, confir...