520 likes | 661 Views
PeopleSoft for the DBA. David Kurtz Go-Faster Consultancy Ltd. david@go-faster.co.uk www.go-faster.co.uk. DBA Issues. Connectivity Two Data Dictionaries Keys & Indexing Tablespaces (Oracle) Space Management (Oracle) SQL Optimisation Rollback Segments (Oracle) Backup Considerations
E N D
PeopleSoft for the DBA David Kurtz Go-Faster Consultancy Ltd. david@go-faster.co.uk www.go-faster.co.uk
DBA Issues • Connectivity • Two Data Dictionaries • Keys & Indexing • Tablespaces (Oracle) • Space Management (Oracle) • SQL Optimisation • Rollback Segments (Oracle) • Backup Considerations • Performance Metrics
Connectivity • What happens when you connect • Usage of the word ‘database’ • Security • Tracing • PS/Query, Crystal & ODBC
What happens when you connect? • 2-tier Connection
What happens when you connect? Connect=H75D/PS/ EXECUTE :1 := SQLCQR_LOGINCHECK(:2) SELECT OWNERID FROM PS.PSDBOWNER WHERE DBNAME = ‘H75D’ SELECT OWNERID,TOOLSREL,TO_CHAR(LASTREFRESHDTTM,'YYYY-MM-DD HH24:MI:SS'), TO_CHAR(LASTCHANGEDTTM,'YYYY-MM-DD HH24:MI:SS'), SECURITY_OPTION FROM SYSADM.PSLOCK SELECT VERSION, OPRTYPE, OPERPSWD, ACCESSID, ACCESSPSWD FROM SYSADM.PSOPRDEFN WHERE OPRID = ‘PS’ Connect=H75D/SYSADM/ SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24.MI.SS."000000"') FROM PSCLOCK SELECT VERSION FROM PSLOCK
What happens when you connect? • 3-tier Connection
What happens when you connect? Connect=H75D/PS/ COM Stmt=EXECUTE :1 := SQLCQR_LOGINCHECK(:2) Bind-1 type=18 length=2 value=0 Bind-2 type=2 length=254 value= Stmt=SELECT OWNERID FROM PS.PSDBOWNER WHERE DBNAME = :1 Bind-1 type=2 length=4 value=H75D Stmt=SELECT OWNERID,TOOLSREL,TO_CHAR(LASTREFRESHDTTM,'YYYY-MM-DD HH24:MI:SS'), TO_CHAR(LASTCHANGEDTTM,'YYYY-MM-DD HH24:MI:SS'), SECURITY_OPTION FROM SYSADM.PSLOCK Stmt=SELECT VERSION, OPRTYPE, OPERPSWD, ACCESSID, ACCESSPSWD FROM SYSADM.PSOPRDEFN WHERE OPRID = :1 Bind-1 type=2 length=2 value=PS Disconnect Connect=H75D/SYSADM/ Stmt=SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24.MI.SS."000000"') FROM PSCLOCK
Usage of the word ‘database’ • It is possible to have many ‘PeopleSoft’ databases in a single Oracle database • Each PeopleSoft database resides in a single schema. • Different PS databases have different schema. • Not recommended for Oracle - Users in common between databases must have same passwords
Usage of the word ‘database’ • It is possible to have many ‘PeopleSoft’ databases in a single SQL Server • Limited to one SQL Server per NT machine. • Different databases can exist in different SQL Server databases within the same sever. • Same problem with users in common, they must share the same password
Security • PS database usually owned ‘sysadm’ or ‘sa’ • = root, sys, system • The password to this account is the key to the kingdom.
Tracing • Tracing administered via configuration manager • i.e.. via registry
PS/Query, Crystal & ODBC • PS ODBC driver • Only defined PS/Queries can be seen
Database Data Dictionary PeopleSoft Data Dictionary DDDAudit SYSAudit Two Data Dictionaries
Audit Reports • DDDAUDIT • Compares data dictionaries (not columns) • SYSAUDIT • Referential Integrity of Tools Tables • Remedies in PeopleBooks
Keys & Indexing • Implied from Record Definition • Key • Duplicate • List (not Tools 8) • Alternate Search • Descending • User Specified • Constraints • Suppressing Index build • Sparse Indexing
Implied from Record Definition • Key • Duplicate • List (not Tools 8) • Alternate Search
Search Dialogue SELECT DISTINCT DEPTID, DESCR, COMPANY, LOCATION FROM PS_DEPT_TBL WHERE DEPTID LIKE ‘10%’ ORDER BY COMPANY, DEPTID
Constraints • Unique • Implied by Unique Key Indexes • Mandatory/Not Null • Referential Integrity? • There aren’t any!
Sparse Indexing (Oracle) • Dates can be NULL
Tablespaces (Oracle) • Installation Scripts • Temporary Tablespaces
Temporary Tablespaces • Create tablespace ‘ORATEMP’ • Alter tablespace TEMPORARY • can only contain temporary segment • cannot contain any other object • no redo logging • alter temporary tablespace for all users • Don’t do this to PSTEMP
Space Management (Oracle/DB2) • DDL models • Default -v- Override parameters • Feeding back reality
DDL Models • System-wide default storage options
Parameters • PeopleSoft Parameters • Square Brackets • TBNAME, TBCOLLIST, IDXNAME, IDXCOLLIST, TBSPCNAME • User Parameters • ** delimited • Delivered (Oracle) INIT, NEXT, MAXEXT, PCT, INDEXSPC
Default -v- Override parameters • Overrides in application designer
How is the DDL/Overrides stored? • Space Model • Default Parameters • Record & Index Parameter Overrides
DDL Model • PSDDLMODEL
Default Parameters • PSDDLDEFPARMS
Record Parameter Overrides • PSRECDDLPARM
Index Parameter Overrides • PSIDXDDLPARM
Two Data Dictionaries • Compare • Database Catalogue • USER_TABLES, USER_INDEXES • PeopleTools • PSDDLDEFPARMS, PSRECDDLPARM, PSIDXDDLPARM
SQL Optimisation • Tracing • Extract SQLcleanup.exe • replay • Mass Change/AE/Cobol • SQR
Typical Trace Output 1-2285 0.861 Cur#1 RC=0 Dur=0.000 COM Stmt=SELECT VERSION, FIELDVALUE, TO_CHAR(EFFDT,'YYYY-MM-DD'), EFF_STATUS, XLATLONGNAME, XLATSHORTNAME, TO_CHAR(LASTUPDDTTM,'YYYY-MM-DD-HH24.MI.SS."000000"'), LASTUPDOPRID, FIELDNAME, LANGUAGE_CD, EFFDT FROM XLATTABLE WHERE FIELDNAME = :1 AND LANGUAGE_CD = :2 ORDER BY FIELDNAME, LANGUAGE_CD, FIELDVALUE, EFFDT 1-2286 0.000 Cur#1 RC=0 Dur=0.000 Bind-1 type=2 length=6 value=ACTION 1-2287 0.000 Cur#1 RC=0 Dur=0.000 Bind-2 type=2 length=3 value=ENG 1-2288 0.111 Cur#1 RC=0 Dur=0.000 COM Stmt=SELECT VERSION FROM PSLOCK
SQLCLEANUP.EXE SELECT VERSION, FIELDVALUE, TO_CHAR( EFFDT, 'YYYY-MM-DD' ), EFF_STATUS, XLATLONGNAME, XLATSHORTNAME, TO_CHAR( LASTUPDDTTM, 'YYYY-MM-DD-HH24.MI.SS."000000"' ), LASTUPDOPRID, FIELDNAME, LANGUAGE_CD, EFFDT FROM XLATTABLE WHERE FIELDNAME = :1 AND LANGUAGE_CD = :2 ORDER BY FIELDNAME, LANGUAGE_CD, FIELDVALUE, EFFDT \ ACTION,ENG /
Mass Change/AE/SQR • What you see in the code is what you get • All PS programs can be traced
SQL Optimisation (Oracle) • SQL_TRACE = TRUE; • Embed command • Trigger on processes via process scheduler • PSPRCSRQST • Set trace in session • 2-tier client is multithreaded • Small Private Application server
SQL_TRACE = TRUE; • Initialisation Parameter TIMED_STATISTICS = TRUE • In current session ALTER SESSION SET SQL_TRACE=TRUE; • In another session EXECUTE sys.dbms_system.set_sql_trace_in_session (<sid>,<serial#>,TRUE);
Trigger for via process scheduler • PSPRCSRQST create or replace trigger sysadm.set_trace before update of runstatus on sysadm.psprcsrqst for each row when (new.runstatus = 7 and old.runstatus != 7 and NOT new.prcstype IN(’Crystal’, ’PSJob’) ) begin sys.dbms_session.set_sql_trace(true); end; /
Set trace in session • 2-tier client is multithreaded • Small Private Application server • EXECUTE sys.dbms_system.set_sql_trace_in_session (<sid>,<serial#>,TRUE);
Backup Consideration • Connected Processes • Application Server • Process Scheduler • Batch Programs • 2-tier users