Resultate des Stresstests in Zusammenfassung:
OID und LDAP scheinen die schnelleren Lösungen zu sein und haben während der Lasttests keinerlei Probleme gemacht. ONS hat sich unter starker Last als sehr unzuverlässig erwiesen (daher Versuch abgebrochen). Bei 100-150 Requests pro Sekunde wurde der Versuch bei OID/LDAP abgebrochen, da man sonst noch mehr Clients hätte vorbereiten müssen. Diese Zahl ist aber jenseits sämtlicher je gebrauchter Werte. Server kam in keinerlei Art und Weise an den Anschlag.
Um Aussagen betreffend der Zufverlässigkeit von OID/LDAP zu machen müsste man Langzeitversuche machen (z.B. alle Testsystem auf OID/LDAP umstellen).
Das Handling von LDAP ist meines Erachtens sehr einfach und schnell zu implementieren. Migration weg von ONS ist kein grosses Problem. Know-How-Aufbau ist gering im Gegensatz zu OID?
PDF (43.5 kByte)Works only < 10g
SELECT userid, password FROM sys.link$; USERID PASSWORD ------------- ---------- DWHSMG abcdrs3 CDWH abcdrs2 APR abcdrs1 COLUMN file_name FORMAT a60 SELECT file_id, file_name FROM dba_data_files; FILE_ID FILE_NAME --------- ---------------------------- 1 /u02/oradata/DB01/system01.dbf 2 /u02/oradata/DB01/undotbs01.dbf 3 /u02/oradata/DB01/tools01.dbf ... $ strings /u02/oradata/DB01/system01.dbf | grep abcdrs3 abcdrs3 $ cp /u02/oradata/DB01/system01.dbf ~/tmp/ cp: cannot open /u02/oradata/DB01/system01.dbf: Permission denied $ split -b 10m system01.dbf $ultraedit xaa COLUMN segment_name FORMAT a30 SELECT segment_name, file_id, block_id, bytes, blocks, bytes/blocks, block_id*bytes/blocks FROM dba_extents WHERE segment_name = 'LINK$'; SEGMENT_NAME FILE_ID BLOCK_ID BYTES BLOCKS BYTES/BLOCKS BLOCK_ID*BYTES/BLOCKS ------------ ------- -------- ----- ------ ------------ --------------------- LINK$ 1 753 65536 8 8192 6168576 LINK$ 1 52585 65536 8 8192 430776320 6168576 + 16384 = 6184960 (Block seems to be filled from the end???) (0x5e5f60 = 6184800 = 5.9 MB) 005e5f60h: 00 00 00 00 00 00 00 00 00 2C 01 07 02 C1 39 0C ; .........,...Á9. 005e5f70h: 50 44 57 48 44 32 2E 57 4F 52 4C 44 07 78 69 07 ; PRODB2.WORLD.xi. 005e5f80h: 0C 11 33 33 06 50 44 57 48 44 32 03 41 50 52 07 ; ..33.PRODB2.APR. 005e5f90h: EE EE EE EE EE EE EE 01 80 2C 00 07 02 C1 39 0C ; abcdrs1......Á9. 005e5fa0h: 50 44 57 48 43 31 2E 57 4F 52 4C 44 07 78 69 07 ; PRODB1.WORLD.xi. 005e5fb0h: 0C 11 33 33 06 50 44 57 48 43 31 04 43 44 57 48 ; ..33.PRODB1.CDWH 005e5fc0h: 07 EE EE EE EE EE EE EE 01 80 2C 00 07 02 C1 39 ; .abcdrs2.?,...Á9 005e5fd0h: 0C 44 44 57 48 53 32 2E 57 4F 52 4C 44 07 78 69 ; .DEVDB2.WORLD.xi 005e5fe0h: 07 0C 11 33 33 06 44 44 57 48 53 32 06 44 57 48 ; ...33.DEVDB2.DWH 005e5ff0h: 53 4D 47 06 EE EE EE EE EE EE EE 80 14 CD 06 01 ; SMG.abcdrs3..... 005e6000h: 00 02 00 00 00 00 02 F3 00 00 00 00 00 00 01 05 ; .......ó........ 005e6010h: 03 F5 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; .õ.............. |
Problem: System starts SWAPing due to Oracle Processes consuming to much memory while using Job Queue Processes.
SQL> -- Memory actually used SQL> host top -d 1 | sed '1,3d' | sed '2,99d' SQL> -- Processes using most memory SQL> host ps -eo vsz,rss,pcpu,time,pid,ppid,user,comm | sort -n SQL> -- Number of job queue processes SQL> host ps -ef | grep ora_j | grep <SID> | wc -l SQL> -- Max job queue processes allowed SQL> show parameter job_queue_processes SQL> -- Set job queue processes to zero SQL> ALTER SYSTEM SET job_queue_processes=0; SQL> -- Number of job queue processes again SQL> host ps -ef | grep ora_j | grep <SID> | wc -l SQL> -- Reset job queue processes to old value SQL> ALTER SYSTEM SET job_queue_processes=<n>; SQL> -- Check memory consumption now SQL> host top -d 1 | sed '1,3d' | sed '2,99d' |
$ nohup sqlplus -s ${OWNER}/${DESTINATION_PWD}@${DESTINATION_DB} << _EOI SELECT * FROM dual; EXIT _EOI & |
$ sqlplus system/manager@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ABC) (PORT=1521))(CONNECT_DATA=(SID=ABC))) |
SELECT c.table_name, c.constraint_name, i.index_name , i.tablespace_name, i.uniqueness FROM dba_constraints c, sys.con$ co, sys.cdef$ cd, dba_objects o, dba_indexes i WHERE c.table_name LIKE UPPER('&tab_name') AND c.constraint_name = co.name AND co.con# = cd.con# AND cd.enabled = o.object_id AND o.owner = i.owner AND o.object_name = i.index_name and i.uniqueness != 'UNIQUE' ORDER BY c.table_name, c.constraint_name, i.index_name; |
SELECT TO_CHAR(first_time, 'YYYY.MM.DD') day , TRUNC(SUM(blocks*block_size)/1024/1024) mbytes FROM v$archived_log GROUP BY TO_CHAR(first_time, 'YYYY.MM.DD') ORDER BY TO_CHAR(first_time, 'YYYY.MM.DD'); SELECT TO_CHAR(first_time, 'YYYY.MM.DD HH24') day_hr , TRUNC(SUM(blocks*block_size)/1024/1024) mbytes FROM v$archived_log WHERE TO_CHAR(first_time, 'YYYY.MM.DD') = '2000.11.03' GROUP BY TO_CHAR(first_time, 'yyyy.mm.dd hh24') ORDER BY TO_CHAR(first_time, 'yyyy.mm.dd hh24'); |
SELECT a.file#, phyrds, phywrts, phyblkrd, phyblkwrt, name FROM v$filestat a, v$datafile b WHERE a.file#= b.file# ORDER BY 2; |
SELECT 'SELECT COUNT(*) FROM ' || table_name || ';' || CHR(10) || 'SELECT SYSDATE FROM dual;' FROM dba_tables WHERE owner = 'XYZ'; |