Nützliche Sybase Helferlein

Hier eine kleine Sammlung an nützlichen Tipps rund um die Sybase Datenbank für die alltägliche Benutzung. Ist man bereits an Oracle gewöhnt kommt man mit ein bisschen Eingewöhnung auch ganz gut mit der Sybase Datenbank zurecht 😉

Datenbanken in der Systemumgebung aufspüren per dblocate:

[sybase@server]$ dblocate
SQL Anywhere Server Enumeration Utility Version 16.0.0.807
Server Name        Address
-----------        -------
sapdb01            sybaseprod.domain.org:2640
sapdb02            sybasekons.domain.org:2650
sapdb03            sybaseentw.domain.org:2640

Sybase Shell Login ähnlich sqlplus bei Oracle:

dbisql -d1 -nogui -c "uid=;pwd=;dbn=sapdb03;eng=sapb01;links=tcpip"

Systable auslesen und die Ausgabe in eine Datei umlenken:

(DBA)> select * from sys.systable; output to systable.txt;
Execution time: 0.015 seconds
Exporting data to "/sybase/systable.txt.txt"
428 rows written to "/sybase/systable.txt.txt"
Execution time: 0.44 seconds

(DBA)> exit

Systembenutzer auslesen und die Ausgabe in eine Datei umlenken:

(DBA)> select * from sys.sysuser; output to syuser.txt
Execution time: 0.016 seconds
Exporting data to "/sybase/syuser.txt"
118 rows written to "/sybase/syuser.txt"
Execution time: 0.033 seconds

(DBA)> exit

Auch ein select count sieht recht vertraut aus:

(SYBASEUSER)>  select count(*) from ZSYBASEUSER_TABELLE01;
select count(*) from ZSYBASEUSER_TABELLE01;
             count()
--------------------
                   9

(1 rows)
Execution time: 0.019 seconds
-- Execution time: 0.019 seconds

(SYBASEUSER)>

Datenbankupgrade (logisch) nach einer Systemkopie oder einem Sybase Softwareupgrade:

(DBA)> alter database upgrade;
Database upgrade started
Creating system views
Creation of system views completed
Creating DBO views
Creation of DBO views completed
Creating system procedures
Creation of system procedures completed
Creating system views
Creation of system views completed
Setting option values
Setting option values completed
Creating migration procedures
Creation of migration procedures completed
Creating jConnect procedures
Creation of jConnect procedures completed
29 row(s) affected
Execution time: 7.595 seconds

(DBA)>

Sybase Datenbankoptionen ändern – hier zum Beispiel Ausführungspläne als html Reports ablegen

(DBA)>set option public.Query_Plan_As_HTML_Directory='/sybase/data/sapnlsdb01/html';
SET TEMPORARY OPTION QUERY_PLAN_AS_HTML = ‘ON’;
(DBA)>

Einen VIEW SYBASEUSER.ZSYBASEUSER_TABELLE01 für eine Tabelle erstellen:

(DBA)>create view SYBASEUSER.ZSYBASEUSER_TABELLE01 as select * from SYBASEUSER.ZSYBASEUSER_TABELLE01__V0001;
(DBA)>commit;

Einen VIEW SYBASEUSER.ZSYBASEUSER_TABELLE01 für eine Tabelle löschen:

(DBA)>drop view "SYBASEUSER.ZSYBASEUSER_TABELLE01";
(DBA)>commit;

Einem Sybase User ein neues Passwort geben:

(DBA)>grant connect to SYBASEPROD identified by 'password';

Einem Sybase User ein neues Passwort geben:

(DBA)>grant connect to SYBASEPROD identified by 'password';

Einem Sybaser User Berechtigungen erteilen:

(DBA)>grant resource to PSYBASEPROD;
(DBA)>grant select on sys.systable to PSYBASEPROD;

Eine Tabelle einem anderen Benutzer zuordnen:

(DBA)>alter table SYBASEUSER.ZSYBASEUSER_TABELLE01 alter owner to SYBASENEW preserve permissions preserve foreign keys; 
(DBA)>commit;

Einen Index als Schemauser droppen (Hier wird der Tabellenmame und der Indexname der Tabelle komplett mit angegeben“:

use 'SID';
setuser 'SAPSCHEMA';
set quoted_identifier on;
drop index "TABELLENNAME"."INDEXNAME";

Eine Tabelle umbennenn:

(DBA)>sp_iqrename "SYBASEUSER.ZSYBASEUSER_TABELLE01", "SYBASENEW.ZSYBASEUSER_TABELLE01"; 
(DBA)>commit;

Einen Index neu aufbauen:

(DBA)>sp_iqrebuildindex '"SYBASEUSER.ZSYBASEUSER_INDEX01"' , 'column "Z_WHERE_CLAUSE" 0' ;
(DBA)>commit;

Sybase Datenbankversion per isql bestimmen:

(DBA)> select @@version;
@@version
--------------------------------------------------------------------------------------------------------------------------------
SAP IQ/16.0.0.807/140507/P/sp08/Enterprise Linux64 - x86_64 - 2.6.18-194.el5/64bit/2014-05-07 18:02:42

(1 rows)

Execution time: 0.062 seconds

(DBA)>

Datenbank-ID bestimmen:

(DBA)> select @@servername, getdate()
@@servername                                                                                                                  getdate()
-----------------------------------------------------------------------------------------------------------------------------------------------------
sapdb01                                                                                                                       2015-07-14 16:32:39.579

(1 rows)

Execution time: 0.013 seconds

(DBA)>

Als reines Nachschlagekompendium bietet sich das Sybase Infocenter an.