75
© 2011 IBM Corporation September 9, 2010 Server Side Performance Enhancements Scott Pickett – WW IDS Technical Sales For questions about this presentation contact: [email protected]

Server Side Performance Enhancements

  • Upload
    yannis

  • View
    58

  • Download
    0

Embed Size (px)

DESCRIPTION

Scott Pickett – WW IDS Technical Sales For questions about this presentation contact: [email protected]. Server Side Performance Enhancements. Agenda. C/UDR Pre-load Autonomic DBA Procedures Partition De-Fragmenter Connection Time Enhancements Unique Event Alarms - PowerPoint PPT Presentation

Citation preview

Page 1: Server Side Performance Enhancements

© 2011 IBM CorporationSeptember 9, 2010

Server Side Performance Enhancements

Scott Pickett – WW IDS Technical SalesFor questions about this presentation contact: [email protected]

Page 2: Server Side Performance Enhancements

© 2010 IBM Corporation2

Agenda

C/UDR Pre-load Autonomic DBA Procedures Partition De-Fragmenter Connection Time Enhancements Unique Event Alarms Prevent Accidental Instance Re-Initialization Dbimport/Dbexport/Dbschema Enhancements Linux Large Page Support Enterprise Replication Supports Online UTF8 Conversion Dbaccess Packaged with CSDK Define the Esc Character

Page 3: Server Side Performance Enhancements

© 2011 IBM CorporationSeptember 9, 2010

C/UDR – Library Pre-load

Page 4: Server Side Performance Enhancements

© 2010 IBM Corporation4

What Does Pre-loading a C-UDR Shared Library Do?

Pre-loading a C-UDR shared library allows IDS threads to migrate from one cpuvp to another during the execution of the C-UDR.

Without this feature, the thread executing the UDR is bound to the cpuvp for the duration of the C-UDR execution.

Allowing thread migration during C-UDR execution can increase performance.

Page 5: Server Side Performance Enhancements

© 2010 IBM Corporation5

How do you Pre-load a C-UDR Shared Library?

PRELOAD_DLL_FILE - onconfig parameter:– This parameter is repeatable, once for each shared library.

– Directory location of the library is its value.

PRELOAD_DLL_FILE $INFORMIXDIR/extend/test.udr

PRELOAD_DLL_FILE /work4/jmcmahon/foo.so

Page 6: Server Side Performance Enhancements

© 2010 IBM Corporation6

Verifying the C-UDR Shared Library is Preloaded

online.log during server startup:

14:23:41 Loading Module </work4/jmcmahon/test.udr> 14:23:41 The C Language Module </work4/jmcmahon/test.udr> loaded

onstat –g dll new flags:– ‘P’ represents preloaded.

– ‘M’ represents thread can migrate.

Datablades: addr slot vp baseaddr flags filename 0x4b247310 15 1 0x2a985e3000 PM /work4/jmcmahon/test.udr 0x4c2bc310 15 2 0x2a985e3000 PM 0x4c2e5310 15 3 0x2a985e3000 PM

Page 7: Server Side Performance Enhancements

© 2010 IBM Corporation7

Limitations

Know which shared libraries to preload at server startup.

You cannot dynamically change PRELOAD_DLL_FILE with onmode –wm command.

If preloaded, remains so until the server is brought offline.

Unix, Linux, and MacOSX platforms can benefit from this feature.

You can still preload shared libraries on Windows: Threads executing UDRs are already unbound on the

Windows platform. The benefit to this feature is already realized on Windows.

Page 8: Server Side Performance Enhancements

© 2010 IBM Corporation8

Questions?

Page 9: Server Side Performance Enhancements

© 2011 IBM CorporationSeptember 9, 2010

New Autonomic DBA Procedures

Page 10: Server Side Performance Enhancements

© 2010 IBM Corporation10

Agenda

Idle User Time Out Bad Index Alerts Auto CPUVP Configuration Auto Compress/Repack/Shrink & Defrag Alerts for In Place Alters Needing Completion

Page 11: Server Side Performance Enhancements

© 2010 IBM Corporation11

Idle User Time-out

Terminate database user sessions that have been idle for a configurable amount of time.

By default this task is disabled. To enable the task simply update the sysadmin:ph_task table and set the tk_enable column to ‘T'.

Example:

DATABASE sysadmin;

UPDATE ph_task SET tk_enable = ‘T';

WHERE tk_name = 'idle_user_timeout';

Or click the ‘Enable Task’ box for the task idle_user_timeout in the task scheduler wizard entry in the Open Admin Tool (OAT).

The default idle value is 60 minutes.

112

2

3

45

67

8

9

10

11

Page 12: Server Side Performance Enhancements

© 2010 IBM Corporation12

Bad Index Alert

By default this task is scheduled to run once a day and looks for indexes which had been marked as unusable.

The task will create an entry in the sysadmin:ph_alert table for each index it finds.

Page 13: Server Side Performance Enhancements

© 2010 IBM Corporation13

Auto CPU VP Configuration

This task is run at system startup and will add additional CPU VPS based on the number of system cpus.

The task is disabled by default.

To turn on this functionality requires updating the table sysadmin:ph_task and setting the tk_enable column to 'T'

DATABASE sysadmin;UPDATE ph_task SET tk_enable = 'T' WHERE tk_name = 'auto_tune_cpu_vps';

Or click the ‘Enable Task’ box for the task auto_tune_cpu_vps in the task scheduler wizard entry in the Open Admin Tool (OAT).

Page 14: Server Side Performance Enhancements

© 2010 IBM Corporation14

Auto CPU VP Configuration

The number of CPU VPS to be added is determined by calculating the difference between the 'target' number of CPU VPS and the currently configured number of CPU VPS. The target number is calculated as 50% of the system cpus.

The target number of CPU VPS is limited to 8.

System CPU's Target CPU VPS. Currently ConfiguredCPU VPS

Number to be automatically added.

8 4 3 1

3 2 2 0

24 8 6 2

Page 15: Server Side Performance Enhancements

© 2010 IBM Corporation15

Auto Compress/Repack/Shrink and Defrag (1)

The purpose of this task is to automatically compress, repack, shrink and defragment tables / fragments in the database server that meet qualifying criteria.

Each operation can be enabled, disabled and configured via specific entries in the sysadmin:ph_threshold table.

Page 16: Server Side Performance Enhancements

© 2010 IBM Corporation16

Auto Compress/Repack/Shrink & Defrag (2)

By default this task is disabled. To enable the task, simply update the sysadmin:ph_task table and set the tk_enable column to ‘T'.

Example:

• DATABASE sysadmin;• UPDATE ph_task SET tk_enable = ‘T'

• WHERE tk_name = 'auto_crsd';

Page 17: Server Side Performance Enhancements

© 2010 IBM Corporation17

Auto Compress/Repack/Shrink and Defrag (3) Compress

To enable auto compression, update the table sysadmin:ph_threshold and change the value to ‘T' for the AUTOCOMPRESS_ENABLED row.

• DATABASE sysadmin;• UPDATE ph_threshold

SET value = ‘T' WHERE name = 'AUTOCOMPRESS_ENABLED';

Default value = ‘F’

Page 18: Server Side Performance Enhancements

© 2010 IBM Corporation18

Auto Compress/Repack/Shrink and Defrag (4)

Compress (cont'd)

The criteria for auto compressing a table/fragment is the number of rows. The default is 50000.

The name of this sysadmin:ph_threshold parameter is 'AUTOCOMPRESS_ROWS'

To change the value, update sysadmin:ph_threshold

• DATABASE sysadmin;• UPDATE ph_threshold

SET value = '10000' WHERE name = 'AUTOCOMPRESS_ROWS';

Page 19: Server Side Performance Enhancements

© 2010 IBM Corporation19

Auto Compress/Repack/Shrink and Defrag (5)

Repack

To enable auto repack, update the sysadmin:ph_threshold table and change the value to ‘T' for the AUTOREPACK_ENABLED row.

• DATABASE sysadmin;

• UPDATE ph_threshold SET value = ‘T' WHERE name = 'AUTOREPACK_ENABLED';

Default value is ‘F’

Page 20: Server Side Performance Enhancements

© 2010 IBM Corporation20

Auto Compress/Repack/Shrink and Defrag (6)

Repack (cont'd) The criteria for auto repacking a table/fragment is when

the percentage of non-contiguous storage exceeds the user defined threshold. The default is 50.

The name of this sysadmin:ph_threshold parameter is 'AUTOREPACK_SPACE'.

To change the percentage value, update sysadmin:ph_threshold .

• DATABASE sysadmin;

• UPDATE ph_threshold SET value = '90' WHERE name = 'AUTOREPACK_SPACE';

Page 21: Server Side Performance Enhancements

© 2010 IBM Corporation21

Auto Compress/Repack/Shrink and Defrag (7) Shrink To enable auto shrink, update the sysadmin:ph_threshold

table and change the value to ‘T' for the AUTOSHRINK_ENABLED row.

DATABASE sysadmin;

• UPDATE ph_threshold SET value = ‘T' WHERE name = 'AUTOSHRINK_ENABLED';

Default is ‘F’

Page 22: Server Side Performance Enhancements

© 2010 IBM Corporation22

Auto Compress/Repack/Shrink and Defrag (8)

Shrink (cont'd) The criteria for auto shrinking a table/fragment is configured

as the percentage of unused allocated space. The default is 50.

The name of this sysadmin:ph_threshold parameter is 'AUTOSHRINK_UNUSED'.

To change the percentage value, update sysadmin:ph_threshold

• DATABASE sysadmin;

• UPDATE ph_threshold SET value = '90' WHERE name = 'AUTOSHRINK_UNUSED';

Page 23: Server Side Performance Enhancements

© 2010 IBM Corporation23

Auto Compress/Repack/Shrink and Defrag (9) Defrag To enable auto defrag, update the sysadmin:ph_threshold

table and change the value to ‘T' for the AUTODEFRAG_ENABLED row.

• DATABASE sysadmin;

• UPDATE ph_threshold SET value = ‘T' WHERE name = 'AUTODEFRAG_ENABLED';

The default is ‘F’

Page 24: Server Side Performance Enhancements

© 2010 IBM Corporation24

Auto Compress/Repack/Shrink and Defrag(10)

Defrag (cont'd) The criteria for auto defragging a table/fragment is

when the number of extents exceeds the user defined value for sysadmin:ph_threshold threshold.

The name of this sysadmin:ph_threshold parameter is 'AUTODEFRAG_EXTENTS'.

To change the value update sysadmin:ph_threshold

• DATABASE sysadmin;

• UPDATE ph_threshold SET value = '100' WHERE name = 'AUTODEFRAG_EXTENTS';

Default is 100.

Page 25: Server Side Performance Enhancements

© 2010 IBM Corporation25

Outstanding In Place Alter Alerts

By default this task is scheduled to run every 7 days and looks for tables that have In Place Alters outstanding. The task will create an entry in the sysadmin:ph_alert table for each table it finds that has an outstanding in place alter.

The task is called check_for_ipa.

Page 26: Server Side Performance Enhancements

© 2010 IBM Corporation26

Questions?

Page 27: Server Side Performance Enhancements

© 2011 IBM CorporationSeptember 9, 2010

Partition Defragmenter

Page 28: Server Side Performance Enhancements

© 2010 IBM Corporation28

Purpose

After appending to partitions, we may end up with many extents – over 200 – mapping a logical page number to physical address becomes slow.

Chunk allocations (allocating space from a chunk) is much slower if we have a lot of small extents – this is a very common operation.

Customer perception: partitions with too many extents are inefficient – why can’t I have a utility like I have on my PC?

Customer wants to de-fragment a heavily used partition for higher efficiency:

– In one step. – Similar to the defragmenter in Windows.– This is not a graphic utility.

Page 29: Server Side Performance Enhancements

© 2010 IBM Corporation29

Partition Layout

Partition Header

Partition Extent 1 (pages 1-8)

Partition Extent 2 (pages 9-16)

Partition Extent 3 (pages 17-24)

Partition Extent 4 (pages 25-32)

Partition Extent 5 (pages 33-40)

...

Page 30: Server Side Performance Enhancements

© 2010 IBM Corporation30

Defragmenter Syntax

EXECUTE FUNCTION task( “defragment”, “<database>:[<owner>.]<table>” OR

“<defragment partnum>”, <partition number list>);

For a single table: execute function task(“defragment”,”stores:scott.test”);

For a single partition number: execute function task(“defragment partnum”, “2098850”);

For a list of partitions: execute function task(“defragment partnum”,”2098850”,”6890890”);

You can use execute function admin as well for each of these.

Indexes can only be defragmented using their partnum.

Page 31: Server Side Performance Enhancements

© 2010 IBM Corporation31

Defragmenter Considerations (1)

No locking – page locks are not used.

Has to rollback, always leave chunk and partition consistent.

Has to roll-forward for HDR and Mach11.

One transaction cannot contain entire defragment – have to break it up.

After crash if defragmenter was running, a cleanup thread will remove all left over chunk extents – may take up to a minute or so.

Page 32: Server Side Performance Enhancements

© 2010 IBM Corporation32

Defragmenter Considerations (2)

Will try to work with extents that can’t cover entire partition.

Will always reduce the number of extents – or return a failure code.

Tries to reduce the maximum of number of extents given free extent of a certain size.

If there is nothing to do (already has 1 extent) – returns “ok” - no error.

Page 33: Server Side Performance Enhancements

© 2010 IBM Corporation33

Defragmenter Side Effects

Tends to use up the large contiguous extents.

Tends to move extents to the end of the chunk – so you might have to defragment then dbspace pack afterwards.

Only slows down access a bit while it is running.

Page 34: Server Side Performance Enhancements

© 2010 IBM Corporation34

Defragmenter Presumptions

Simply abort a utility or the defragmenter if a conflict is detected – don’t wait until the other utility finishes.

Conflicts with:– Compression– Truncate– Drop table– Pack table– Alter table– System catalog tables

Page 35: Server Side Performance Enhancements

© 2010 IBM Corporation35

Defragmenter – Logging

Logs each page move:– Can create a lot of log records.– May need additional logical log space.

Breaks up large defragment operations into many

transactions:– No long transaction issue will exist.

Rollforward / rollback work fine – “oncheck -ce” will indicate no “holes” are left in chunks.

Page 36: Server Side Performance Enhancements

© 2010 IBM Corporation36

Defragmenter Log Record Types

Start defrag on partition.

End defrag on partition.

Add new extent to partition (target extent).

Remove old extent from partition.

Move page.

Page 37: Server Side Performance Enhancements

© 2010 IBM Corporation37

Caveats

Currently will not defrag:– Temp dbspaces.– System catalog tables.

Attempts to do these generate -21539 ISAM errors presently. – Pseudo tables.– Any dbspace or chunk containing any of the above.

Tblspace tblspace does not de-fragment if need be.

Page 38: Server Side Performance Enhancements

© 2010 IBM Corporation38

onstat –g defragment

Displays information about active running requests to defragment partition extents:

IBM Informix Dynamic Server Version 11.70.UC1B6TL -- On-Line -- Up 21:21:29 -- 509852 Kbytes Defrag info id table name tid dbsnum partnum status substatus errnum 0 sysadmin:informix.sysprocbody 140 1 1048810 DEFRAG_FAILED 0 0 • id – the ID of defragment segment.• table name – fully qualified table name being fragmented.• tid – thread id running the operation.• dbsnum – dbspace number of the object being fragmented.• partnum – partition number of the object being fragmented.• status – status of the completed/in progress defragmentation operation, possible values:

SEARCHING_FOR_EXTENT MERGING_EXTENTS DEFRAG_COMPLETED DEFRAG_FAILED

• substatus - the detailed status number, if any.• errnum – the last error number returned from the defragmentation request.

Page 39: Server Side Performance Enhancements

© 2010 IBM Corporation39

Questions?

Page 40: Server Side Performance Enhancements

© 2011 IBM CorporationSeptember 9, 2010

Connection Time Enhancements

Page 41: Server Side Performance Enhancements

© 2010 IBM Corporation41

User Story At an independent client/server testing company, there were some IDS issues with a connect/disconnect benchmark. It is possible that the customer didn't do some O/S or IDS tuning. Nonetheless, we found things that could be improved in IDS from that benchmark.

Page 42: Server Side Performance Enhancements

© 2010 IBM Corporation42

ASF Performance Enhancement Solution:

Use the Network Name Service Caching.

Use multiple listener threads for DBSERVERNAME/ALIASES

Page 43: Server Side Performance Enhancements

© 2010 IBM Corporation43

New ONCONFIG Parameter NS_CACHE

– Used to define an expiration time measured in seconds for the database server to search for and then get host, service, user, and group information from the O/S Name Service Cache.

– Search the memory cache first before going to the operating system:

• Its much quicker than disk …… and almost always there these days.

– Example:

NS_CACHE host=900, service=900, user=900, group=900 (default)

onmode -wm/wf - redefine expire time and invalidate cache.

If each NS_CACHE argument is 0, or the expire time above is reached, then the server will go to the operating system for the data.

Monitor onstat –g glo, if the msc vp is high relative to the cpu vp, then you may need to set NS_CACHE.

Page 44: Server Side Performance Enhancements

© 2010 IBM Corporation44

NS_CACHE host=60,service=60,user=60,group=60mt_cache mechanismonstat -g cache Name 'Network Name Service HostByAddr' ID 'hstad' Total Mem 20K Used Mem 17K Mem Cap 2048K # buckets 128 Avg Len 0 # elements 3 Hits 149996 100.0 Misses 9 Total Acc 150005 Invalidates 0 Frees 0 Drains 2Alloc Misses 0Alloc Drains 2 Drain Fails 2 MaxChainLen 16 Rehash 0 Last Drain 04/26/2010.10:36

Page 45: Server Side Performance Enhancements

© 2010 IBM Corporation45

NS_CACHE host=60, service=60, user=60, group=60mt_cache mechanismonstat -g cache Name 'Network Name Service pwnam' ID 'pwnam' Total Mem 12K Used Mem 8K Mem Cap 0K # buckets 32 Avg Len 0 # elements 1 Hits 149994 100.0 Misses 2 Total Acc 149996 Invalidates 0 Frees 0 Drains 2Alloc Misses 0Alloc Drains 2 Drain Fails 2 MaxChainLen 16 Rehash 0 Last Drain 04/26/2010.10:36

Page 46: Server Side Performance Enhancements

© 2010 IBM Corporation46

New ONCONFIG Parameters To allocate new listener threads:

– DBSERVERNAME name[-n]– DBSERVERALIASES alias[-n],...

– Where 'n' is the number of FD threads allocated.

– FD threads are the listener threads.

– DBSERVERNAME ids-8

NUMFDSERVERS n - turns on/off multiple FD server feature.

Page 47: Server Side Performance Enhancements

© 2010 IBM Corporation47

Multiple Listener Threads• DBSERVERNAME ids-8 onstat -g ath 16 700000041c02b78 0 1 running 31soc*

soctcppoll

17 700000041c72178 0 1 running 32soc* soctcppoll

18 700000041c72708 0 1 running 33soc* soctcppoll

19 700000041c72c98 0 2 sleeping forever 1cpu* soctcplst

20 700000041ce54c0 0 2 sleeping forever 3cpu* soctcplst

21 700000041d0ac40 0 2 sleeping forever 4cpu* soctcplst

22 700000041d34418 0 2 sleeping forever 5cpu* soctcplst

23 700000041d59b20 0 2 sleeping forever 6cpu* soctcplst

24 700000041d84370 0 2 sleeping forever 7cpu* soctcplst

25 700000041da8a78 0 2 sleeping forever 8cpu* soctcplst

26 700000041dd32c8 0 2 sleeping forever 9cpu* soctcplst

Page 48: Server Side Performance Enhancements

© 2010 IBM Corporation48

ASF Performance Test Result (AIX) (1)

App Running Time Nightly Build TEMP Branch Build

Client 1 Linux 64 2m5s 27s

Client 2 Linux 64 1m59s 34s

Client 3 Linux 32 2m2s 26s

Client 4 Linux32 2m1s 23s

Client 5 Linux 32 1m58s 18s

Client 6 Sol 64 2m1s 24s

Each Application has 200 threads x 100 connections.

Server side connections from 1000/sec to 4800/sec.

Page 49: Server Side Performance Enhancements

© 2010 IBM Corporation49

ASF Performance Test Result (AIX) (2)

Running Time

Nightly ALL Feature

CACHE OFF

Single Listener

NSF Split Only

Client 1 2m5s 27s 32s 43s 38s

Client 2 1m59s 34s 51s 40s 50s

Client 3 2m2s 26s 52s 40s 50s

Client 4 2m1s 23s 52s 38s 48s

Client 5 1m58s 18s 54s 39s 50s

Client 6 2m1s 24s 56s 42s 53s

Each application has 200 threads x 100 connections.

Page 50: Server Side Performance Enhancements

© 2010 IBM Corporation50

ASF Performance Test Result (Linux64)

App Running Time Nightly Build FEA Branch Build

Client 1 Linux 64 10m11s 1m20s

Client 2 Linux 64 10m13s 1m27s

Client 3 Sol 64 10m14s 1m27s

Each application has 200 threads x 250 connections.

Server side connections from 250/sec to 1800/sec.

Page 51: Server Side Performance Enhancements

© 2010 IBM Corporation51

Network performance and scalability enhancements

This feature is also known as NSF table split.

Benefits:– Increased performance and scalability of network connections.– Allows to highly reduce or prevent NSF lock contention by splitting

the connections file descriptors’ NSF table across CPU VPs.

Especially works well for Informix environments with:– Many rapid network connects and disconnects occurring on UNIX-

based Informix servers.– High NSF locks contention issue.– Multiple CPU VPs.

Page 52: Server Side Performance Enhancements

© 2010 IBM Corporation52

Network performance and scalability enhancements

Use NUMFDSERVERS configuration (ONCONFIG) parameter:– Adjust the maximum number of poll threads for the server to use

when migrating TCP/IP connection across virtual processors (VPs).

– If you have multiple CPU VPs and poll treads and this results in NSF locking, increase NUMFDSERVERS and # of poll threads in NETTYPE to reduce/prevent NSF lock contention.

Take advantage of other Informix server network performance features:– FASTPOLL, NS_CACHE– To combine with the tuning of NETTYPE and the new

NUMFDSERVERS parameter.

Page 53: Server Side Performance Enhancements

© 2010 IBM Corporation53

Questions?

Page 54: Server Side Performance Enhancements

© 2011 IBM CorporationSeptember 9, 2010

Unique Event Alarms

Page 55: Server Side Performance Enhancements

© 2010 IBM Corporation55

IDS uses the event alarm mechanism to notify the DBA about any major problems or events in the database server.

Default alarm program scripts:

– $INFORMIXDIR/etc/alarmprogram.sh on UNIX

– %INFORMIXDIR%\etc\alarmprogram.bat on Windows

ONCONFIG parameters:

– ALARMPROGRAM

– SYSALARMPROGRAM

Unique Event Alarms - Overview

Page 56: Server Side Performance Enhancements

© 2010 IBM Corporation56

IDS 11.7 has 79 Event Class ID's.

For each of these event alarm classes, there could be multiple specific messages used by an event alarm class.

In previous releases, differentiating between two types of event alarms for the same event alarm class required the user to parse the specific message string which goes with the alarm program as one of its parameters.

Inconvenient for applications which deeply embed IDS.

IDS 11.7 provides unique numerical values for each specific message so that applications can interpret and take actions against each event alarm.

Unique Event Alarms - Overview

Page 57: Server Side Performance Enhancements

© 2010 IBM Corporation57

Structure of an IDS Event Alarm.

Class ID – Numeric identifier that classifies the type of event that has occurred.

Severity – Severity of the event.

Class Message – A brief message that describes the classification of the event.

Specific Message – Specific messages that describes the event that occurred.

See Also – A reference to a file that contains additional information about the event.

Event Unique ID – An unique event identifier for the specific message.

Unique Event Alarms - Overview

Page 58: Server Side Performance Enhancements

© 2010 IBM Corporation58

Default Alarm Program Script (alarmprogram.sh/.bat)

Event Unique ID = Argument #6

Unique Event Alarms – User Accessibility (1)

Page 59: Server Side Performance Enhancements

© 2010 IBM Corporation59

The sysadmin:ph_alert table has a new column to list event alarm unique IDs: alert_object_info (bigint)

For example, event alarm 23, ID 23001: SELECT * FROM ph_alerts WHERE alert_object_type=ALARM;

Id 34alert_task_id 18alert_task_seq 10alert_type INFOalert_color YELLOWalert_time 2010-03-08 12:05:48alert_state NEWalert_state_chang+ 2010-03-08 12:05:48alert_object_type ALARMalert_object_name 23alert_message Logical Log 12 Complete, timestamp: 0x8e6a1. alert_action_dbs sysadmin alert_action alert_object_info 23001

Unique Event Alarms – User Accessibility (2)

Page 60: Server Side Performance Enhancements

© 2010 IBM Corporation60

Unique Event Alarms – User Accessibility (3)

ID Severity

Messages

Class ID

3 Class message

1 Table failure: 'dbname:"owner".tabname'

Event ID

Specific message

1001 Page allocation error on 'object'

Class ID

3 Class message

1 Table failure: 'dbname:"owner".tabname'

Event ID

Specific message

1002 Row allocation error on 'object'

Class ID

3 Class message

1 Table failure: 'dbname:"owner".tabname'

Event ID

Specific message

1003 Slot allocation error for 'object'

Page 61: Server Side Performance Enhancements

© 2010 IBM Corporation61

Backwardly compatible with existing alarm program scripts.

Exception: – If users have programmed their alarm program scripts to

query the last argument, then they may need to revise their alarm program.

New event alarms class IDs 81 and 83 were added into the Informix Alarm Program system:

– Event alarm 81: Logical log corruption.– Event alarm 83: A shared disk secondary server could not

become the primary server because the primary was still active.

Unique Event Alarms – Considerations

Page 62: Server Side Performance Enhancements

© 2010 IBM Corporation62

Administration Enhancements

MAX_PDQPRIORITY value returned in a query to the SNMP rdbmsSrvParamTable– When you use the Simple Network Management Protocol (SNMP)

to query rdbmsSrvParamTable, SNMP now returns the current MAX_PDQPRIORITY value:

including changes made through onmode -D, -wm, and –wf.– If an error occurs, SNMP returns the value of -1.

Page 63: Server Side Performance Enhancements

© 2011 IBM CorporationSeptember 9, 2010

Prevent Accidental Instance Re-initialization

Page 64: Server Side Performance Enhancements

© 2010 IBM Corporation64

Preventing Accidental Instance Re-initialization You seen this slide before …… where we warn you not to

execute oninit –i when bringing up an existing instance, because of the total instance destruction that will occur to the existing instance.

Wouldn’t it be nice if you could prevent that possibility………

New onconfig parameter: FULL_DISK_INIT – two possible values:

– Default value is 0 – oninit –i will successfully execute only if there is not a page-0 in the root path location (the instance has not been previously initialized and does not exist).

– Value of 1 – oninit –i will successfully execute in all circumstances. Once the instance is successfully initialized the first time, this value is then changed to 0, to prevent accidental initialization of the new instance.

A message is written to online.log reporting unsuccessful re-initialization attempts.

Page 65: Server Side Performance Enhancements

© 2011 IBM CorporationSeptember 9, 2010

Miscellaneous

Page 66: Server Side Performance Enhancements

© 2010 IBM Corporation66

Miscellaneous

dbschema has been enhanced to allow schemas to be generated without stating the owner of a table. New option “-nw”:– dbschema –d stores_demo –t test –nw

dbschema has also been enhanced to allow schemas to be generated with the reproduction of their storage spaces, chunks, physical log, and logical log creations. New option “-c” and optional “-ns”:

– dbschema –d stores_demo –c Creates the admin API syntax creation of the physical objects.

– execute function task(‘add log’,’logdbs’,’9216’);

– dbschema –d stores_demo –c -ns Creates the command line version of the same.

– onparams –a –d logdbs –s 9216

Page 67: Server Side Performance Enhancements

© 2010 IBM Corporation67

Miscellaneous

dbexport has been enhanced to allow generation of schema and the data without the specification of an owner of the table. New option “-nw”: – dbexport stores_demo –nw – Owner is removed from create table statements, still present on

indexes and foreign key constraints.

Unlimited extents??? - If you have a table that needs more extents and the database server runs out of space on the partition header page, the database server now automatically allocates extended secondary partition header pages to accommodate new extent entries.

The database server can now allocate up to 32767 extents for any partition, unless the size of a table dictates a limit to the number of extents.

Page 68: Server Side Performance Enhancements

© 2010 IBM Corporation68

Miscellaneous Want to retrieve currently invalid character data in IDS 11.5

and 11.7 databases for your dblocale’s character set with the DB-Access, dbexport, or High Performance Loader utilities? Are you migrating from Version 10 to 11.7?

– New environment variable: IFX_UNLOAD_EILSEQ_MODE Allows you to unload character data and bypass the GLS validation that

normally occurs when you unload data using the Version 11.5 and 11.7 tools.

Particularly useful in Chinese character set locales, or environments where the original character set locale used to create the database is now a different character set locale. These character sets allowed data in V10 environments currently not allowed in IDS 11.5 or 11.7 environments due to GLS validation.

This value can be any non-empty string/number. Default is null (not set). Valid values:

– setenv IFX_UNLOAD_EILSEQ_MODE 1– setenv IFX_UNLOAD_EILSEQ_MODE on– setenv IFX_UNLOAD_EILSEQ_MODE yes

Similar to the parameter EILSEQ_COMPAT_MODE, in the onconfig, which handles data being loaded into a database.

Page 69: Server Side Performance Enhancements

© 2010 IBM Corporation69

Miscellaneous

Large Page Support for Linux - Large pages for non-message shared memory segments that reside in physical memory are now enabled by default on Linux platforms and previously, on AIX and Solaris systems:

– On Linux x86_64 the large pages used by Informix are defined by theHugepagesize entry in the /proc/meminfo file.

The use of large pages can provide huge performance benefits in large memory configurations. To enable or disable support for large pages, use the IFX_LARGE_PAGES environment variable.

The system administrator or DBSA must activate large pages in the operating system.

setenv IFX_LARGE_PAGES 1 – To activate (0 is default).

Page 70: Server Side Performance Enhancements

© 2010 IBM Corporation70

Enterprise Replication (ER) Support for UTF-8

More and more customers are moving to UNICODE. 11.70.xC3 makes this conversion to UNICODE much easier if they are in a multi-

node environment.

A 10 node ER domain with each node having 500GB of data, could easily take a week or so to convert all of the systems to UNICODE.

ER UTF8 support will provide the ability to make the ER transport always in UNICODE with the translation to/from UNICODE being done on the local node - thus allowing the customer to perform the UNICODE conversion in a roll-out manner.

Page 71: Server Side Performance Enhancements

© 2010 IBM Corporation71

Usability and Embeddability

To increase the usability of the IBM Informix Client SDK, we are now packaging the dbaccess executable along with the Client SDK so that users have an IBM supported server command line utility on the client side.

Page 72: Server Side Performance Enhancements

© 2010 IBM Corporation72

Specify the Default ESCAPE character

New onconfig parameter to specify the default escape character.

DEFAULTESCCHAR configuration parameter– Specifies the default escape character that is used.– Default:

• The backslash character ( \ )

Override default value in a session – SET ENVIRONMENT DEFAULTESCCHAR statement.– Syntax:

SET ENVIRONMENT DEFAULTESCCHAR '\'

Page 73: Server Side Performance Enhancements

© 2010 IBM Corporation73

Questions?

Page 74: Server Side Performance Enhancements

© 2010 IBM Corporation74

Logo

Page 75: Server Side Performance Enhancements

© 2010 IBM Corporation75

Logo