Labels

admin (1) aix (1) alert (1) always-on (2) Architecture (1) aws (3) Azure (1) backup (3) BI-DWH (10) Binary (3) Boolean (1) C# (1) cache (1) casting (3) cdc (1) certificate (1) checks (1) cloud (3) cluster (1) cmd (7) collation (1) columns (1) compilation (1) configurations (7) Connection-String (2) connections (6) constraint (6) copypaste (2) cpu (2) csv (3) CTE (1) data-types (1) datetime (23) db (547) DB2 (1) deadlock (2) Denali (7) device (6) dotNet (5) dynamicSQL (11) email (5) encoding (1) encryption (4) errors (124) excel (1) ExecutionPlan (10) extended events (1) files (7) FIPS (1) foreign key (1) fragmentation (1) functions (1) GCP (2) gMSA (2) google (2) HADR (1) hashing (3) in-memory (1) index (3) indexedViews (2) insert (3) install (10) IO (1) isql (6) javascript (1) jobs (11) join (2) LDAP (2) LinkedServers (8) Linux (15) log (6) login (1) maintenance (3) mariadb (1) memory (4) merge (3) monitoring (4) MSA (2) mssql (444) mssql2005 (5) mssql2008R2 (20) mssql2012 (2) mysql (36) MySQL Shell (5) network (1) NoSQL (1) null (2) numeric (9) object-oriented (1) offline (1) openssl (1) Operating System (4) oracle (7) ORDBMS (1) ordering (2) Outer Apply (1) Outlook (1) page (1) parameters (2) partition (1) password (1) Performance (103) permissions (10) pivot (3) PLE (1) port (4) PostgreSQL (14) profiler (1) RDS (3) read (1) Replication (12) restore (4) root (1) RPO (1) RTO (1) SAP ASE (48) SAP RS (20) SCC (4) scema (1) script (8) security (10) segment (1) server (1) service broker (2) services (4) settings (75) SQL (74) SSAS (1) SSIS (19) SSL (8) SSMS (4) SSRS (6) storage (1) String (35) sybase (57) telnet (2) tempdb (1) Theory (2) tips (120) tools (3) training (1) transaction (6) trigger (2) Tuple (2) TVP (1) unix (8) users (3) vb.net (4) versioning (1) windows (14) xml (10) XSD (1) zip (1)

SAP ASE (Sybase) - Cannot create device 'DEVICENAME': no available virtual device numbers (vdevnos)

What I did?
Create a device.

Error message:
Cannot create device 'DEVICENAME': no available virtual device numbers (vdevnos)

Solution:
exec sp_configure 'number of devices', 20 
-- replace 20 with a number that is bigger than what it set now.

Cause:
There is a limit of maximum number of devices - you probably get to it.

Check the number of devices:
exec sp_configure 'number of devices'

See the devices in the server:
select * from master..sysdevices

Linux - make a copy of a file

cp <FILENAME> <path>/<NEWFILENAME>

CMD - Copy Folder's files list to a texst file

dir /on/b > 1.txt

SAP ASE (Sybase) - reset sa password

For ASE 15.7:
alter login sa with password 'OLDPASSWORD' modify password 'NEWPASSWORD'

For other ASE:

sp_password 'OLDPASSWORD','NEWPASSWORD' ,sa


If you forgot the password and can't login:

1. go to <SAPFOLDER>/ASE-XX_X/install/
2. Edit the RUN_SID file, add new line in the end of it with: (p=password, sa=sa)
-psa
3. reset server. if you don't have a login to do that - restart the server machine.
4. start SAP ASE: 
<SAPFOLDER>/ASE-XX_X/install$ ./startserver -f RUN_SERVERNAME
5. while executing the startserver, a new password will be printed on the terminal screen:
New SSO password for sa:ldxsqzfammlsw2
6. login as sa with the new password
7. change password

SAP ASE (Sybase) - setup.bin: 2506: exec: /tmp/install.dir.48193/Linux/resource/jre/bin/java: not found

After running setup.bin for ASE server (I've got it in 15.7 isntallation), error message was raised:

$ ./setup.bin
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...

Launching installer...

./setup.bin: 2506: exec: /tmp/install.dir.48193/Linux/resource/jre/bin/java: not found

Cause:
This error occurs because the installer is a 32-bit binary and this casue problems on a 64-bit server.

Solution:
sudo apt-get install lib32ncurses5

After that - rerun setup and it will work.

SAP ASE (Sybase) - write to the server log - logprint

dbcc logprint('itai test errorlog')
-- will be written with severity=0
or:

sp_addmessage 20002, 'itai test sp_addmessage with_log'
raiserror 20002
-- will be written with severity=0

or:

sp_addmessage 20002, 'itai test sp_addmessage with_log', @with_log=TRUE
raiserror 20002
-- will be written with severity=16

or with parameters:
sp_addmessage 20003, 'itai %1! sp_addmessage with parameters', @with_log=TRUE
raiserror 20003, 'parameter'
-- will be written with severity=16

SAP ASE (Sybase) interfaces-sql.ini File

Windows:
sql.ini in <SAP_ASE_FOLDER>\ini

Linux:
<SAP_ASE_FOLDER>/interfaces


Looks like:

Linux:

MYSERVER
master tcp ether MyServer 5000
query tcp ether MyServer 5000

MYSERVER_BS
master tcp ether MyServer 5001
query tcp ether MyServer 5001

...

Windows:
[MYSERVER]
master=TCP,137.116.163.160,5000
master=TCP,137.116.163.160,5000

[MYSERVER_RS]
master=TCP,13.70.20.172,11753
query=TCP,13.70.20.172,11753

...

SAP ASE (Sybase) - set environment variables from SYBASE.sh in Unix

. SYBASE.sh

(instead of 
source SYBASE.sh
)

SAP ASE (Sybase) - The transaction log in database sales is almost full. Your transaction is being suspended until space is made available in the log.

Error message:
The transaction log in database sales is almost full.  Your transaction is being suspended until space is made available in the log.

Will be repuduced whan trying to work with a table in the database.

Cause: 
Log space is full.
Check it using:

sp_helpdb <DBNAME>
sp_helpdevice <DEVICENAME>

Solution:
use master
go
disk resize name = "<DEVICENAME>", size = "500M"
go
alter database sales log on <DEVICENAME> = "500M"
go

SAP ASE Installation

SAP ASE Installation steps:



1. Download SAP ASE from SAP site

https://support.sap.com/en/my-support/software-downloads.html



2. Create an user for sybase (DBAdmin)

create a user for sybase (DBAdmin)
create a folder for sybase and give privilage to the user.
$ sudo mkdir <SYBASEFOLDEER>
$ sudo chown -R DBAdmin: <SYBASEFOLDEER>


3. Copy the install file to the linux server (zip file).



4. Extract the ZIP file
regular unzip: unzip 51047759.ZIP

unzip to a folder: unzip 51047759.ZIP -d sybase51047888

( If required: zip installation in the server: sudo apt install zip ).


5. Check the share memory for the host

Check: sudo ipcs -lm
Set:
$ logout
root@SERVER# vi /etc/sysctl.conf
root@SERVER# sysctl -p
kernel.shmmax = 4294967296



6. Check that there is no running Firewall
# systemctl status firewalld


7. Go to the SAP ASE folder and run setup (using the user that was created in step 2).
./setup.bin

During the installation you'll need to set some definitions and choose which components to install.


8. cat SYBASE.sh >> ~/.profile
cd <SAPASEFOLDER>
cat SYBASE.sh >> ~/.profile


9.0 Checks and settings:

export LANG=
source SYBASE.sh

* check that sybase process is up:
ps -ef | grep -i syb

* check that ASE works:
isql64 -S SERVERNAME -Uusername -Ppassword
1> select @@version
2> go
-------------------------------------------------------------------------------
Adaptive Server Enterprise/16.0/EBF 22383 SMP/P/x86_64/Enterprise Linux/aseceph
eus/3530/64-bit/FBO/Sun Feb 16 06:09:40 2014

(1 row affected)


SAP ASE (Sybase) - cross join

There is no cross join in SAP ASE (Sybase).

select * 
from FirstTable
cross join LongRunTB
--> Incorrect syntax near 'LongRunTB'.


In order to perform "cross join":

select * 
from FirstTable, LongRunTB
--> works

SAP ASE (Sybase) - Foreign key list in the database

USE [DATABASENAME]
GO

-- Quick script
select * from sysobjects where type = 'RI'


-- Detailed script
select 
  tab.name    "table name",
  fko.name    "Foreign key name",
  par.name    "Referenced table name",
--  fk1.name  "FK column name",
--  pk1.name  "Ref column name",
  *
from  sysobjects      tab
JOIN  sysconstraints  con on tab.id        = con.tableid
JOIN  sysobjects      fko on con.constrid  = fko.id
JOIN  sysreferences   ref on con.constrid  = ref.constrid
JOIN  sysobjects      par on par.id        = ref.reftabid
--  ---- 1. Column
--  left join syscolumns  fk1 on ref.fokey1 = fk1.colid and ref.tableid = fk1.id
--  left joinsyscolumns   pk1 on ref.refkey1 = pk1.colid and ref.reftabid = pk1.id
-- etc. to more columns
where tab.type = 'U'
and   fko.type = 'RI'
--and   tab.name = 'TABLENAME'

SAP ASE (Sybase) - Create FOREIGN KEY on exists table

IF NOT EXISTS (select * from sysobjects where name = 'FK_NAME' and type = 'RI')
  ALTER TABLE [dbo].[TABLENAME] ADD CONSTRAINT FK_NAME FOREIGN KEY ([COLUMNNAME])
  REFERENCES [dbo].[REF_TABLENAME] ([REF_COLUMNNAME])
GO

SAP ASE (Sybase) - Update a license file


  1. Create the license file in SAP site. (You will need to enter the server HostID, name, IP).
  2. Save the license file in the server on : <SAP FOLDER>\SYSAM-2_0\licenses
  3. Edit properties file (<SAPFOLDER>/ASE-XX-X/<SERVERNAME>.properties: Set PE and LT (for enterprise: PE=EE, LT=CP).
  4. Restart SAP ASE database server (from services in windows or by ASE commands - stop and start)


Checking that the server is Enterprise (or other) now:

  1. Check the log after restart - it write in the begining which version is uploaded.
  2. exec sp_lmconfig 
    1. Check parameters 'edition' and 'license type' and properties PE (EE) and LT (CP).