<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://petersap.nl/SybaseWiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Psap</id>
		<title>SybaseWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://petersap.nl/SybaseWiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Psap"/>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php/Special:Contributions/Psap"/>
		<updated>2026-04-04T20:52:55Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1998</id>
		<title>Sybase links</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1998"/>
				<updated>2023-08-25T14:24:15Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Links to other websites&lt;br /&gt;
&lt;br /&gt;
===Sybase documentation===&lt;br /&gt;
[http://infocenter.sybase.com/help/index.jsp Online documentation from Sybase]&lt;br /&gt;
&lt;br /&gt;
===Community sites===&lt;br /&gt;
[https://web.archive.org/web/20200921092620/http://www.sypron.nl/main.html Rob Verschoor's old site]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/mpeppler/DBD-Sybase DBD::Sybase]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/mpeppler/sybperl sybperl]&lt;br /&gt;
&lt;br /&gt;
[http://web.archive.org/web/20210305122314/http://peppler.org Sybase ASE on Linux FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.faqs.org/faqs/databases/sybase-faq/part1/ Sybase FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.rocket99.com/index.html Rocket99 Guide to Sybase, Oracle, UNIX, and More]&lt;br /&gt;
&lt;br /&gt;
[http://www.selectorweb.com/sybase.html Info from Lev Selector]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1997</id>
		<title>Sybase links</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1997"/>
				<updated>2023-08-25T14:19:02Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Links to other websites&lt;br /&gt;
&lt;br /&gt;
===Sybase documentation===&lt;br /&gt;
[http://infocenter.sybase.com/help/index.jsp Online documentation from Sybase]&lt;br /&gt;
&lt;br /&gt;
===Community sites===&lt;br /&gt;
[https://web.archive.org/web/20200921092620/http://www.sypron.nl/main.html Rob Verschoor's old site]&lt;br /&gt;
&lt;br /&gt;
DBD::Sybase and/or sybperl&lt;br /&gt;
[http://web.archive.org/web/20210305122314/http://peppler.org Sybase ASE on Linux FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.faqs.org/faqs/databases/sybase-faq/part1/ Sybase FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.rocket99.com/index.html Rocket99 Guide to Sybase, Oracle, UNIX, and More]&lt;br /&gt;
&lt;br /&gt;
[http://www.selectorweb.com/sybase.html Info from Lev Selector]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Miscellaneous&amp;diff=1996</id>
		<title>Miscellaneous</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Miscellaneous&amp;diff=1996"/>
				<updated>2023-08-25T13:55:29Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Patching the raspberrypi that hosts this wiki */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====Unix info====&lt;br /&gt;
&lt;br /&gt;
[[SunOsUnix info]] Some commands to get around on the SunOS (Solaris) operating system.&lt;br /&gt;
&lt;br /&gt;
====Two dutch language documents====&lt;br /&gt;
&lt;br /&gt;
[[RDBMS auto tuning]]&lt;br /&gt;
&lt;br /&gt;
[[RDBMS tuning]] (Manual)&lt;br /&gt;
&lt;br /&gt;
====Patching the raspberrypi that hosts this wiki====&lt;br /&gt;
 /etc/init.d/mysql stop&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Miscellaneous&amp;diff=1995</id>
		<title>Miscellaneous</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Miscellaneous&amp;diff=1995"/>
				<updated>2023-08-25T13:53:55Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====Unix info====&lt;br /&gt;
&lt;br /&gt;
[[SunOsUnix info]] Some commands to get around on the SunOS (Solaris) operating system.&lt;br /&gt;
&lt;br /&gt;
====Two dutch language documents====&lt;br /&gt;
&lt;br /&gt;
[[RDBMS auto tuning]]&lt;br /&gt;
&lt;br /&gt;
[[RDBMS tuning]] (Manual)&lt;br /&gt;
&lt;br /&gt;
====Patching the raspberrypi that hosts this wiki====&lt;br /&gt;
/etc/init.d/mysql stop&lt;br /&gt;
apt-get update&lt;br /&gt;
apt-get upgrade&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1994</id>
		<title>Sybase links</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1994"/>
				<updated>2023-08-24T19:45:12Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Links to other popular websites&lt;br /&gt;
&lt;br /&gt;
===Sybase documentation===&lt;br /&gt;
[http://infocenter.sybase.com/help/index.jsp Online documentation from Sybase]&lt;br /&gt;
&lt;br /&gt;
[http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookView Transact-SQL User's Guide (12.5)]&lt;br /&gt;
&lt;br /&gt;
[http://infocenter.sybase.com/help/topic/com.sybase.help.ase_15.0.sqlug/html/sqlug/title.htm Transact-SQL User's Guide (15.0)]&lt;br /&gt;
&lt;br /&gt;
===Community sites===&lt;br /&gt;
[https://web.archive.org/web/20200921081534/http://www.sypron.nl/closing.html Rob Verschoor's old site]&lt;br /&gt;
&lt;br /&gt;
[http://www.peppler.org/FAQ/linux.html Sybase ASE on Linux FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.faqs.org/faqs/databases/sybase-faq/part1/ Sybase FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.rocket99.com/index.html Rocket99 Guide to Sybase, Oracle, UNIX, and More]&lt;br /&gt;
&lt;br /&gt;
[http://www.selectorweb.com/sybase.html Info from Lev Selector]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Main_Page&amp;diff=1993</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Main_Page&amp;diff=1993"/>
				<updated>2022-05-27T14:23:20Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Other Pages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Welcome to the SybaseWiki=&lt;br /&gt;
&lt;br /&gt;
This wiki is created to provide additional information for the usage of various [http://www.sybase.com Sybase] products. It's maintained by [[User:Psap|Peter Sap]]. If you want to add or change content, just drop me a mail at mailto:peter@petersap.nl and I'll create an account for you. Thank you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Information in the wiki is grouped per product: &lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| ||&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:ASE|Adaptive server Enterprise]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:RepServer|Replication Server]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:IQ|Sybase IQ]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:OpenSwitch|OpenSwitch]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A special place has been created for GUI tools: [[:Category:GUI Tools|GUI Tools]]&lt;br /&gt;
&lt;br /&gt;
==Stay up to date==&lt;br /&gt;
The RSS feed is here: [http://www.petersap.nl/SybaseWiki/index.php?title=Special:Recentchanges&amp;amp;feed=rss Recent changes by RSS]&lt;br /&gt;
&lt;br /&gt;
Or follow Peter Sap on twitter: [https://twitter.com/intent/follow?region=follow_link&amp;amp;screen_name=petersap&amp;amp;source=followbutton&amp;amp;variant=2.0 @petersap]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Pages==&lt;br /&gt;
Links to other sites with Sybase info: [[Sybase links]]&lt;br /&gt;
&lt;br /&gt;
Miscellaneous pages: [[Miscellaneous]]&lt;br /&gt;
&lt;br /&gt;
PostgreSQL: [[PostgreSQL]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Main_Page&amp;diff=1992</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Main_Page&amp;diff=1992"/>
				<updated>2022-02-04T08:53:46Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Other Pages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Welcome to the SybaseWiki=&lt;br /&gt;
&lt;br /&gt;
This wiki is created to provide additional information for the usage of various [http://www.sybase.com Sybase] products. It's maintained by [[User:Psap|Peter Sap]]. If you want to add or change content, just drop me a mail at mailto:peter@petersap.nl and I'll create an account for you. Thank you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Information in the wiki is grouped per product: &lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| ||&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:ASE|Adaptive server Enterprise]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:RepServer|Replication Server]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:IQ|Sybase IQ]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:OpenSwitch|OpenSwitch]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A special place has been created for GUI tools: [[:Category:GUI Tools|GUI Tools]]&lt;br /&gt;
&lt;br /&gt;
==Stay up to date==&lt;br /&gt;
The RSS feed is here: [http://www.petersap.nl/SybaseWiki/index.php?title=Special:Recentchanges&amp;amp;feed=rss Recent changes by RSS]&lt;br /&gt;
&lt;br /&gt;
Or follow Peter Sap on twitter: [https://twitter.com/intent/follow?region=follow_link&amp;amp;screen_name=petersap&amp;amp;source=followbutton&amp;amp;variant=2.0 @petersap]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Pages==&lt;br /&gt;
Links to other sites with Sybase info: [[Sybase links]]&lt;br /&gt;
&lt;br /&gt;
Miscellaneous pages: [[Miscellaneous]]&lt;br /&gt;
&lt;br /&gt;
ProgreSQL: [[ProgreSQL]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Main_Page&amp;diff=1991</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Main_Page&amp;diff=1991"/>
				<updated>2022-02-04T08:51:29Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Welcome to the SybaseWiki=&lt;br /&gt;
&lt;br /&gt;
This wiki is created to provide additional information for the usage of various [http://www.sybase.com Sybase] products. It's maintained by [[User:Psap|Peter Sap]]. If you want to add or change content, just drop me a mail at mailto:peter@petersap.nl and I'll create an account for you. Thank you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Information in the wiki is grouped per product: &lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| ||&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:ASE|Adaptive server Enterprise]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:RepServer|Replication Server]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:IQ|Sybase IQ]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:OpenSwitch|OpenSwitch]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A special place has been created for GUI tools: [[:Category:GUI Tools|GUI Tools]]&lt;br /&gt;
&lt;br /&gt;
==Stay up to date==&lt;br /&gt;
The RSS feed is here: [http://www.petersap.nl/SybaseWiki/index.php?title=Special:Recentchanges&amp;amp;feed=rss Recent changes by RSS]&lt;br /&gt;
&lt;br /&gt;
Or follow Peter Sap on twitter: [https://twitter.com/intent/follow?region=follow_link&amp;amp;screen_name=petersap&amp;amp;source=followbutton&amp;amp;variant=2.0 @petersap]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Pages==&lt;br /&gt;
Links to other sites with Sybase info: [[Sybase links]]&lt;br /&gt;
&lt;br /&gt;
Miscellaneous pages: [[Miscellaneous]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Main_Page&amp;diff=1990</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Main_Page&amp;diff=1990"/>
				<updated>2022-02-04T08:50:59Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Welcome to the SybaseWiki */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Welcome to the SybaseWiki=&lt;br /&gt;
&lt;br /&gt;
This wiki is created to provide additional information for the usage of various [http://www.sybase.com Sybase] products. It's maintained by [[User:Psap|Peter Sap]]. If you want to add or change content, just drop me a mail at mailto:peter@petersap.nl and I'll create an account for you. Thank you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Information in the wiki is grouped per product: &lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| ||&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:ASE|Adaptive server Enterprise]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:RepServer|Replication Server]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:IQ|Sybase IQ]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:OpenSwitch|OpenSwitch]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A special place has been created for GUI tools: [[:Category:GUI Tools|GUI Tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stay up to date==&lt;br /&gt;
The RSS feed is here: [http://www.petersap.nl/SybaseWiki/index.php?title=Special:Recentchanges&amp;amp;feed=rss Recent changes by RSS]&lt;br /&gt;
&lt;br /&gt;
Or follow Peter Sap on twitter: [https://twitter.com/intent/follow?region=follow_link&amp;amp;screen_name=petersap&amp;amp;source=followbutton&amp;amp;variant=2.0 @petersap]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Pages==&lt;br /&gt;
Links to other sites with Sybase info: [[Sybase links]]&lt;br /&gt;
&lt;br /&gt;
Miscellaneous pages: [[Miscellaneous]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Miscellaneous&amp;diff=1989</id>
		<title>Miscellaneous</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Miscellaneous&amp;diff=1989"/>
				<updated>2021-12-14T12:46:09Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====Unix info====&lt;br /&gt;
&lt;br /&gt;
[[SunOsUnix info]] Some commands to get around on the SunOS (Solaris) operating system.&lt;br /&gt;
&lt;br /&gt;
====Two dutch language documents====&lt;br /&gt;
&lt;br /&gt;
[[RDBMS auto tuning]]&lt;br /&gt;
&lt;br /&gt;
[[RDBMS tuning]] (Manual)&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Bitmap_Failed_internal_checks&amp;diff=1988</id>
		<title>Bitmap Failed internal checks</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Bitmap_Failed_internal_checks&amp;diff=1988"/>
				<updated>2018-04-09T07:37:05Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: Created page with &amp;quot;When you get this error   I. 03/27 15:44:37. 0000021871 Exception Thrown from slib\s_bm.cxx:1855, Err# 1, tid 2047 origtid 2047  I. 03/27 15:44:37. 0000021871    O/S Err#: 0,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When you get this error&lt;br /&gt;
&lt;br /&gt;
 I. 03/27 15:44:37. 0000021871 Exception Thrown from slib\s_bm.cxx:1855, Err# 1, tid 2047 origtid 2047&lt;br /&gt;
 I. 03/27 15:44:37. 0000021871    O/S Err#: 0, ErrID: 2049 (sbm_exception); SQLCode: -1009045, SQLState: 'QSA45', Severity: 14&lt;br /&gt;
 I. 03/27 15:44:37. 0000021871 [20066]: Bitmap failed internal checks. You may have a damaged index. Please check your IQ message file for additional information.&lt;br /&gt;
 -- (slib\s_bm.cxx 1855)&lt;br /&gt;
&lt;br /&gt;
try setting the below option&lt;br /&gt;
&lt;br /&gt;
 SET option DML_Options14=8&lt;br /&gt;
&lt;br /&gt;
[[Category:IQ]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Linux_configuration_settings_for_Sybase_ASE&amp;diff=1987</id>
		<title>Linux configuration settings for Sybase ASE</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Linux_configuration_settings_for_Sybase_ASE&amp;diff=1987"/>
				<updated>2015-12-02T19:07:50Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* For connections to ASE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To run Sybase ASE successfully on a Linux environment you need to configure a number of items. Below you will find a few of these, but please note that this is by far not an full overview. There could be more improvements to be made.&lt;br /&gt;
&lt;br /&gt;
=Memory – Huge Pages=&lt;br /&gt;
The configuration of Huge Pages is needed to get an efficient translation from virtual memory pages to physical pages. When you configure for Huge Pages, the amount of memory assigned to Huge Pages is allocated and reserved for shared memory. Do not over configure to prevent swapping.&lt;br /&gt;
&lt;br /&gt;
When ASE reports the below message in the errorlog, you need to configure for huge pages:&lt;br /&gt;
&lt;br /&gt;
 Could not allocate memory using Huge Pages. Allocated using regular pages. For better performance, reboot the server after configuring enough Huge Pages.&lt;br /&gt;
&lt;br /&gt;
To get the values for huge pages first determine the maximum amount of memory you want to give to ASE. For instance, on a Linux server with 512Gb physical memory you can give 90% to ASE. &lt;br /&gt;
512 Gb x 90% = 460 Gb = 471040 Mb.&lt;br /&gt;
&lt;br /&gt;
Then determine the size of a single huge page:&lt;br /&gt;
&lt;br /&gt;
 cat /proc/meminfo | grep Hugepagesize &lt;br /&gt;
&lt;br /&gt;
Sample output:&lt;br /&gt;
&lt;br /&gt;
 Hugepagesize:       2048 kB&lt;br /&gt;
&lt;br /&gt;
In this case 1 huge page is 2 Mb, so the number of huge pages we need will be 471040 Mb / 2 Mb = 235520 &lt;br /&gt;
&lt;br /&gt;
Then set the correct value in /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
 vm.nr_hugepages = &amp;lt;value&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next step is to calculate the number of huge pages in Kb and give the “sybase” user permission to grab the memory. Take the number of huge pages as calculated above. Then multiply by 2048. That wil give you the number of pages in Kb. Example: 235520 x 2048 = 482344960. Then have it stored in /etc/security/limits.conf like this &lt;br /&gt;
&lt;br /&gt;
 sybase soft memlock 482344960 &lt;br /&gt;
 sybase hard memlock 482344960 &lt;br /&gt;
&lt;br /&gt;
In this example, &amp;quot;sybase&amp;quot; is assumed to be the unix user running ASE.&lt;br /&gt;
&lt;br /&gt;
Now reboot the Linux server to check if everything works as expected.&lt;br /&gt;
&lt;br /&gt;
To see the configured number of huge pages at runtime:&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/vm/nr_hugepages &lt;br /&gt;
&lt;br /&gt;
Notes: &lt;br /&gt;
* As per Sybase recommendation (CR 627114) “lock shared memory” must be switched off. &lt;br /&gt;
* When ASE uses huge pages, it will allocate memory to the nearest multiple of 256Mb so don’t configure the ASE exactly to the maximum number of huge pages, but leave a small amount unused (e.g. 300 Mb). In case a small increase in size is needed due to the change of a Sybase config you will not get into trouble. &lt;br /&gt;
&lt;br /&gt;
=Number of file descriptors=&lt;br /&gt;
You may need to increase the number of file descriptors per process if you get this error:&lt;br /&gt;
&lt;br /&gt;
 The number of file descriptors per ASE process required to support the current configuration exceeds the limit 4096 by 3955.&lt;br /&gt;
&lt;br /&gt;
Make the following changes to /etc/security/limits.conf&lt;br /&gt;
&lt;br /&gt;
 sybase soft nofile 16384 &lt;br /&gt;
 sybase hard nofile 16384 &lt;br /&gt;
&lt;br /&gt;
In this example, &amp;quot;sybase&amp;quot; is assumed to be the unix user running ASE.&lt;br /&gt;
&lt;br /&gt;
Log off and log on again to pick up the new settings.&lt;br /&gt;
&lt;br /&gt;
=DISK I/O=&lt;br /&gt;
==fs.aio-max-nr ==&lt;br /&gt;
fs.aio-max-nr is the maximum number of asynchronous I/Os.&lt;br /&gt;
&lt;br /&gt;
The recommended minimum value for fs.aio-max-nr is 1048576, but on a busy ASE with many engines you may need to have a higher number configured. &lt;br /&gt;
&lt;br /&gt;
In ASE, set these values as a starting point.&lt;br /&gt;
&lt;br /&gt;
* Set “disk i/o structures” to 1048576.&lt;br /&gt;
* Set “max async i/os per engine” to 8192.&lt;br /&gt;
* Keep &amp;quot;max async i/os per server&amp;quot; at it’s default value (2147483647).&lt;br /&gt;
&lt;br /&gt;
When you have multiple engines configured within ASE then use this formula to calculate the value for fs.aio-max-nr&lt;br /&gt;
&lt;br /&gt;
 (disk i/o structures + max async i/os per engine) * max online engines&lt;br /&gt;
&lt;br /&gt;
For example: (1048576 + 8192) * 32 engines = 33816576 &lt;br /&gt;
&lt;br /&gt;
Then set the value in /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
 fs.aio-max-nr = 33816576 &lt;br /&gt;
&lt;br /&gt;
To get the value at runtime&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/fs/aio-max-nr &lt;br /&gt;
&lt;br /&gt;
===Troubleshooting fs.aio-max-nr===&lt;br /&gt;
When the below messages appear in the ASE  errorlog, the configuration of fs.aio-max-nr is not correct:&lt;br /&gt;
 &lt;br /&gt;
 kernel asynchronous I/O not initialized. The io_setup() system call returned -22.&lt;br /&gt;
or &lt;br /&gt;
 kernel  kistartup: asynchronous I/O not available: No such file or directory&lt;br /&gt;
&lt;br /&gt;
Either recalculate the vale or reduce the Sybase related configuration options (“disk i/o structures” and/or “max async i/os per engine”) &lt;br /&gt;
&lt;br /&gt;
===Troubleshooting dstartio===&lt;br /&gt;
When this message appears in the errorlog&lt;br /&gt;
&lt;br /&gt;
 kernel  dstartio: I/O request repeatedly delayed; block number: &amp;lt;nr&amp;gt;, vdn: &amp;lt;nr&amp;gt;&lt;br /&gt;
then you need to increase &amp;quot;disk i/o structures&amp;quot; or &amp;quot;max async i/os per engine&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To determine if &amp;quot;disk i/o structures&amp;quot; or &amp;quot;max async i/os per engine&amp;quot; needs to be increased look at the output of sp_sysmon that was captured during the time that the message appeared. Snapshot of output: &lt;br /&gt;
&lt;br /&gt;
  I/Os Delayed by &lt;br /&gt;
    Disk I/O Structures               n/a           n/a           0      n/a &lt;br /&gt;
    Server Config Limit               n/a           n/a           0      n/a &lt;br /&gt;
    Engine Config Limit               n/a           n/a       24582      n/a &lt;br /&gt;
    Operating System Limit            n/a           n/a           0      n/a &lt;br /&gt;
&lt;br /&gt;
When a non-zero value is reported, increase the corresponding Sybase parameter.&lt;br /&gt;
Alternatively, you can run sp_monitorconfig “all” to see if the maximum number of “disk i/o structures” has reached (see column Max_Used).&lt;br /&gt;
&lt;br /&gt;
Be aware that the Linux setting for fs.aio-max-nr may need to be increased as well after changing the Sybase configuration settings. &lt;br /&gt;
&lt;br /&gt;
==Queue depth==&lt;br /&gt;
Per Linux volume used by ASE the queue depth must be configured. The default value is 128 but it must be set to 1024.&lt;br /&gt;
&lt;br /&gt;
You can only set the required value at boottime and, depending on the Linux distribution, you need to do it in /etc/init.d/boot.local (Suse) or /etc/init.d/rc.local (Ubuntu) or /etc/rc.d/rc.local (RedHat)&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 echo 1024 &amp;gt;/sys/block/sdb/queue/nr_requests &lt;br /&gt;
&lt;br /&gt;
To retrieve the runtime value:&lt;br /&gt;
&lt;br /&gt;
 cat /sys/block/sd*/queue/nr_requests &lt;br /&gt;
&lt;br /&gt;
=kernel.randomize_va_space=&lt;br /&gt;
This may be Suse and ASE 15.0.3 specific, but it may apply to other Linux / ASE version combinations as well.&lt;br /&gt;
&lt;br /&gt;
Due to a high I/O load you may see stacktraces referring to the cm_writedes module, see below snippet.&lt;br /&gt;
&lt;br /&gt;
 00:00000:00006:2012/11/11 01:18:41.45 kernel  pc: 0x00007ffff73a56a0 (null)+0x7ffff73a56a0()&lt;br /&gt;
 00:00000:00006:2012/11/11 01:18:41.45 kernel  pc: 0x00000000018fd036 cm_writedes+0x606()&lt;br /&gt;
&lt;br /&gt;
In the later versions of ASE 15.7 this should be fixed and an error message is printed.&lt;br /&gt;
To prevent the issue, set the value for  kernel.randomize_va_space to 0 in combination with a higher value of “cpu grace time” in ASE, like 1500. &lt;br /&gt;
To see the runtime value&lt;br /&gt;
 cat /proc/sys/kernel/randomize_va_space &lt;br /&gt;
To see the boottime value, check /etc/sysctl.conf there must be line like kernel.randomize_va_space = 0 &lt;br /&gt;
 &lt;br /&gt;
See also http://www.novell.com/support/kb/doc.php?id=7004855&lt;br /&gt;
&lt;br /&gt;
After changing kernel.randomize_va_space do a reboot of the Linux server, as that seems to be necessary. &lt;br /&gt;
&lt;br /&gt;
=Prevent a firewall from dropping idle connections=&lt;br /&gt;
==For connections to ASE==&lt;br /&gt;
When your Sybase server is behind a firewall there is always the risk that a connection from the client side (e.g. running isql) to ASE will be dropped when the firewall sees it as an idle session. This is regardless whether the session is really idle or that it is just a very long running query. To prevent it, put this in /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
 net.ipv4.tcp_keepalive_time = 300&lt;br /&gt;
&lt;br /&gt;
and activate it&lt;br /&gt;
&lt;br /&gt;
 sysctl -p&lt;br /&gt;
&lt;br /&gt;
==For ssh sessions==&lt;br /&gt;
===Putty===&lt;br /&gt;
Enable TCP keepalive. On the start screen of Putty click &amp;quot;Connection&amp;quot; and activate the check-box &amp;quot;Enable TCP keepalives&amp;quot;.&lt;br /&gt;
===ssh===&lt;br /&gt;
Create a config file in your ssh directory (~/.ssh/config) with the following content&lt;br /&gt;
 Host *&lt;br /&gt;
 ServerAliveInterval 60&lt;br /&gt;
 ServerAliveCountMax 1000&lt;br /&gt;
 TCPKeepAlive=yes&lt;br /&gt;
&lt;br /&gt;
Whenever you use ssh tell it to use the config file&lt;br /&gt;
 ssh -F ~/.ssh/config &amp;lt;server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Soft / Hard limits for memory allocation (Suse only)=&lt;br /&gt;
By default, no more than 80 % of available memory (RAM and swap) can be claimed by a single process. This is the soft-virtual limit. To check the setting: cat  /etc/sysconfig/ulimit and look for the value specified as SOFTVIRTUALLIMIT. Default is “80”. &lt;br /&gt;
&lt;br /&gt;
Increase the setting as setting as needed, or set to “0” for unlimited.&lt;br /&gt;
&lt;br /&gt;
Associated Sybase error message: &lt;br /&gt;
&lt;br /&gt;
 Attempt to attach shared memory (id 32768) at address (nil), with flags 0 failed&lt;br /&gt;
&lt;br /&gt;
[[category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Linux_configuration_settings_for_Sybase_ASE&amp;diff=1986</id>
		<title>Linux configuration settings for Sybase ASE</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Linux_configuration_settings_for_Sybase_ASE&amp;diff=1986"/>
				<updated>2015-12-02T16:12:13Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To run Sybase ASE successfully on a Linux environment you need to configure a number of items. Below you will find a few of these, but please note that this is by far not an full overview. There could be more improvements to be made.&lt;br /&gt;
&lt;br /&gt;
=Memory – Huge Pages=&lt;br /&gt;
The configuration of Huge Pages is needed to get an efficient translation from virtual memory pages to physical pages. When you configure for Huge Pages, the amount of memory assigned to Huge Pages is allocated and reserved for shared memory. Do not over configure to prevent swapping.&lt;br /&gt;
&lt;br /&gt;
When ASE reports the below message in the errorlog, you need to configure for huge pages:&lt;br /&gt;
&lt;br /&gt;
 Could not allocate memory using Huge Pages. Allocated using regular pages. For better performance, reboot the server after configuring enough Huge Pages.&lt;br /&gt;
&lt;br /&gt;
To get the values for huge pages first determine the maximum amount of memory you want to give to ASE. For instance, on a Linux server with 512Gb physical memory you can give 90% to ASE. &lt;br /&gt;
512 Gb x 90% = 460 Gb = 471040 Mb.&lt;br /&gt;
&lt;br /&gt;
Then determine the size of a single huge page:&lt;br /&gt;
&lt;br /&gt;
 cat /proc/meminfo | grep Hugepagesize &lt;br /&gt;
&lt;br /&gt;
Sample output:&lt;br /&gt;
&lt;br /&gt;
 Hugepagesize:       2048 kB&lt;br /&gt;
&lt;br /&gt;
In this case 1 huge page is 2 Mb, so the number of huge pages we need will be 471040 Mb / 2 Mb = 235520 &lt;br /&gt;
&lt;br /&gt;
Then set the correct value in /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
 vm.nr_hugepages = &amp;lt;value&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next step is to calculate the number of huge pages in Kb and give the “sybase” user permission to grab the memory. Take the number of huge pages as calculated above. Then multiply by 2048. That wil give you the number of pages in Kb. Example: 235520 x 2048 = 482344960. Then have it stored in /etc/security/limits.conf like this &lt;br /&gt;
&lt;br /&gt;
 sybase soft memlock 482344960 &lt;br /&gt;
 sybase hard memlock 482344960 &lt;br /&gt;
&lt;br /&gt;
In this example, &amp;quot;sybase&amp;quot; is assumed to be the unix user running ASE.&lt;br /&gt;
&lt;br /&gt;
Now reboot the Linux server to check if everything works as expected.&lt;br /&gt;
&lt;br /&gt;
To see the configured number of huge pages at runtime:&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/vm/nr_hugepages &lt;br /&gt;
&lt;br /&gt;
Notes: &lt;br /&gt;
* As per Sybase recommendation (CR 627114) “lock shared memory” must be switched off. &lt;br /&gt;
* When ASE uses huge pages, it will allocate memory to the nearest multiple of 256Mb so don’t configure the ASE exactly to the maximum number of huge pages, but leave a small amount unused (e.g. 300 Mb). In case a small increase in size is needed due to the change of a Sybase config you will not get into trouble. &lt;br /&gt;
&lt;br /&gt;
=Number of file descriptors=&lt;br /&gt;
You may need to increase the number of file descriptors per process if you get this error:&lt;br /&gt;
&lt;br /&gt;
 The number of file descriptors per ASE process required to support the current configuration exceeds the limit 4096 by 3955.&lt;br /&gt;
&lt;br /&gt;
Make the following changes to /etc/security/limits.conf&lt;br /&gt;
&lt;br /&gt;
 sybase soft nofile 16384 &lt;br /&gt;
 sybase hard nofile 16384 &lt;br /&gt;
&lt;br /&gt;
In this example, &amp;quot;sybase&amp;quot; is assumed to be the unix user running ASE.&lt;br /&gt;
&lt;br /&gt;
Log off and log on again to pick up the new settings.&lt;br /&gt;
&lt;br /&gt;
=DISK I/O=&lt;br /&gt;
==fs.aio-max-nr ==&lt;br /&gt;
fs.aio-max-nr is the maximum number of asynchronous I/Os.&lt;br /&gt;
&lt;br /&gt;
The recommended minimum value for fs.aio-max-nr is 1048576, but on a busy ASE with many engines you may need to have a higher number configured. &lt;br /&gt;
&lt;br /&gt;
In ASE, set these values as a starting point.&lt;br /&gt;
&lt;br /&gt;
* Set “disk i/o structures” to 1048576.&lt;br /&gt;
* Set “max async i/os per engine” to 8192.&lt;br /&gt;
* Keep &amp;quot;max async i/os per server&amp;quot; at it’s default value (2147483647).&lt;br /&gt;
&lt;br /&gt;
When you have multiple engines configured within ASE then use this formula to calculate the value for fs.aio-max-nr&lt;br /&gt;
&lt;br /&gt;
 (disk i/o structures + max async i/os per engine) * max online engines&lt;br /&gt;
&lt;br /&gt;
For example: (1048576 + 8192) * 32 engines = 33816576 &lt;br /&gt;
&lt;br /&gt;
Then set the value in /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
 fs.aio-max-nr = 33816576 &lt;br /&gt;
&lt;br /&gt;
To get the value at runtime&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/fs/aio-max-nr &lt;br /&gt;
&lt;br /&gt;
===Troubleshooting fs.aio-max-nr===&lt;br /&gt;
When the below messages appear in the ASE  errorlog, the configuration of fs.aio-max-nr is not correct:&lt;br /&gt;
 &lt;br /&gt;
 kernel asynchronous I/O not initialized. The io_setup() system call returned -22.&lt;br /&gt;
or &lt;br /&gt;
 kernel  kistartup: asynchronous I/O not available: No such file or directory&lt;br /&gt;
&lt;br /&gt;
Either recalculate the vale or reduce the Sybase related configuration options (“disk i/o structures” and/or “max async i/os per engine”) &lt;br /&gt;
&lt;br /&gt;
===Troubleshooting dstartio===&lt;br /&gt;
When this message appears in the errorlog&lt;br /&gt;
&lt;br /&gt;
 kernel  dstartio: I/O request repeatedly delayed; block number: &amp;lt;nr&amp;gt;, vdn: &amp;lt;nr&amp;gt;&lt;br /&gt;
then you need to increase &amp;quot;disk i/o structures&amp;quot; or &amp;quot;max async i/os per engine&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To determine if &amp;quot;disk i/o structures&amp;quot; or &amp;quot;max async i/os per engine&amp;quot; needs to be increased look at the output of sp_sysmon that was captured during the time that the message appeared. Snapshot of output: &lt;br /&gt;
&lt;br /&gt;
  I/Os Delayed by &lt;br /&gt;
    Disk I/O Structures               n/a           n/a           0      n/a &lt;br /&gt;
    Server Config Limit               n/a           n/a           0      n/a &lt;br /&gt;
    Engine Config Limit               n/a           n/a       24582      n/a &lt;br /&gt;
    Operating System Limit            n/a           n/a           0      n/a &lt;br /&gt;
&lt;br /&gt;
When a non-zero value is reported, increase the corresponding Sybase parameter.&lt;br /&gt;
Alternatively, you can run sp_monitorconfig “all” to see if the maximum number of “disk i/o structures” has reached (see column Max_Used).&lt;br /&gt;
&lt;br /&gt;
Be aware that the Linux setting for fs.aio-max-nr may need to be increased as well after changing the Sybase configuration settings. &lt;br /&gt;
&lt;br /&gt;
==Queue depth==&lt;br /&gt;
Per Linux volume used by ASE the queue depth must be configured. The default value is 128 but it must be set to 1024.&lt;br /&gt;
&lt;br /&gt;
You can only set the required value at boottime and, depending on the Linux distribution, you need to do it in /etc/init.d/boot.local (Suse) or /etc/init.d/rc.local (Ubuntu) or /etc/rc.d/rc.local (RedHat)&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 echo 1024 &amp;gt;/sys/block/sdb/queue/nr_requests &lt;br /&gt;
&lt;br /&gt;
To retrieve the runtime value:&lt;br /&gt;
&lt;br /&gt;
 cat /sys/block/sd*/queue/nr_requests &lt;br /&gt;
&lt;br /&gt;
=kernel.randomize_va_space=&lt;br /&gt;
This may be Suse and ASE 15.0.3 specific, but it may apply to other Linux / ASE version combinations as well.&lt;br /&gt;
&lt;br /&gt;
Due to a high I/O load you may see stacktraces referring to the cm_writedes module, see below snippet.&lt;br /&gt;
&lt;br /&gt;
 00:00000:00006:2012/11/11 01:18:41.45 kernel  pc: 0x00007ffff73a56a0 (null)+0x7ffff73a56a0()&lt;br /&gt;
 00:00000:00006:2012/11/11 01:18:41.45 kernel  pc: 0x00000000018fd036 cm_writedes+0x606()&lt;br /&gt;
&lt;br /&gt;
In the later versions of ASE 15.7 this should be fixed and an error message is printed.&lt;br /&gt;
To prevent the issue, set the value for  kernel.randomize_va_space to 0 in combination with a higher value of “cpu grace time” in ASE, like 1500. &lt;br /&gt;
To see the runtime value&lt;br /&gt;
 cat /proc/sys/kernel/randomize_va_space &lt;br /&gt;
To see the boottime value, check /etc/sysctl.conf there must be line like kernel.randomize_va_space = 0 &lt;br /&gt;
 &lt;br /&gt;
See also http://www.novell.com/support/kb/doc.php?id=7004855&lt;br /&gt;
&lt;br /&gt;
After changing kernel.randomize_va_space do a reboot of the Linux server, as that seems to be necessary. &lt;br /&gt;
&lt;br /&gt;
=Prevent a firewall from dropping idle connections=&lt;br /&gt;
==For connections to ASE==&lt;br /&gt;
When your Sybase server is behind a firewall there is always the risk that a connection from the client side (e.g. running isql) to ASE will be dropped when the firewall sees it as an idle session. This is regardless weather the session is really idle or that it is just a very long running query. To prevent it, put this in /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
 net.ipv4.tcp_keepalive_time = 300&lt;br /&gt;
&lt;br /&gt;
and activate it&lt;br /&gt;
&lt;br /&gt;
 sysctl -p&lt;br /&gt;
&lt;br /&gt;
==For ssh sessions==&lt;br /&gt;
===Putty===&lt;br /&gt;
Enable TCP keepalive. On the start screen of Putty click &amp;quot;Connection&amp;quot; and activate the check-box &amp;quot;Enable TCP keepalives&amp;quot;.&lt;br /&gt;
===ssh===&lt;br /&gt;
Create a config file in your ssh directory (~/.ssh/config) with the following content&lt;br /&gt;
 Host *&lt;br /&gt;
 ServerAliveInterval 60&lt;br /&gt;
 ServerAliveCountMax 1000&lt;br /&gt;
 TCPKeepAlive=yes&lt;br /&gt;
&lt;br /&gt;
Whenever you use ssh tell it to use the config file&lt;br /&gt;
 ssh -F ~/.ssh/config &amp;lt;server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Soft / Hard limits for memory allocation (Suse only)=&lt;br /&gt;
By default, no more than 80 % of available memory (RAM and swap) can be claimed by a single process. This is the soft-virtual limit. To check the setting: cat  /etc/sysconfig/ulimit and look for the value specified as SOFTVIRTUALLIMIT. Default is “80”. &lt;br /&gt;
&lt;br /&gt;
Increase the setting as setting as needed, or set to “0” for unlimited.&lt;br /&gt;
&lt;br /&gt;
Associated Sybase error message: &lt;br /&gt;
&lt;br /&gt;
 Attempt to attach shared memory (id 32768) at address (nil), with flags 0 failed&lt;br /&gt;
&lt;br /&gt;
[[category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Docker_-_How_to_run_Sybase_ASE_in_a_container&amp;diff=1985</id>
		<title>Docker - How to run Sybase ASE in a container</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Docker_-_How_to_run_Sybase_ASE_in_a_container&amp;diff=1985"/>
				<updated>2015-11-17T19:35:56Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* For data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will show you how SAP Sybase ASE (version 16.0 GA PL01) can be run in a docker container. You will also see how to work with docker images, containters and volumes.&lt;br /&gt;
&lt;br /&gt;
All tests have been carried out on a Linux Centos 7 environment, I expect little to no change if you need to run it on Redhat. You need about 10 Gb of free space to install the Sybase software, database devices, etc. Beware that you need to split this free space into several separately mounted filesystems.&lt;br /&gt;
&lt;br /&gt;
The Sybase ASE server will be called &amp;quot;ASE1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
No performance optimization has been done for docker nor for Sybase.&lt;br /&gt;
&lt;br /&gt;
Unless otherwise noted, all commands need to be run under &amp;quot;root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=Prepare the system=&lt;br /&gt;
Prepare your system to run docker and create the sybase user.&lt;br /&gt;
==Package update==&lt;br /&gt;
Under Centos / Redhat 7 firewalld can conflict with docker so we will remove it from the system.&lt;br /&gt;
 yum remove firewalld&lt;br /&gt;
&lt;br /&gt;
Make sure you have the latest patches installed. Reboot if a new kernel has been downloaded.&lt;br /&gt;
 yum update&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==Add sybase user and group==&lt;br /&gt;
Docker data volumes are separate filesystems on the Linux and are made available in a docker container. The sybase processes running in these containers must have the same uid/guid for the sybase user as on the host system (your Centos / Redhat server). Keep the uid/gid for the sybase user everywhere the same.&lt;br /&gt;
&lt;br /&gt;
 groupadd sybase -g &amp;lt;free-number&amp;gt;&lt;br /&gt;
 useradd -u &amp;lt;free-number&amp;gt; -g sybase sybase&lt;br /&gt;
&lt;br /&gt;
=Initial docker setup=&lt;br /&gt;
&lt;br /&gt;
Install docker, start it, and have it started when the Linux server boots.&lt;br /&gt;
&lt;br /&gt;
 yum install docker&lt;br /&gt;
 systemctl start docker&lt;br /&gt;
 systemctl enable docker&lt;br /&gt;
&lt;br /&gt;
If you run &amp;quot;docker images&amp;quot; you can see the available images. Download a basic docker image for centos.&lt;br /&gt;
&lt;br /&gt;
 docker images&lt;br /&gt;
 docker pull centos&lt;br /&gt;
 docker images&lt;br /&gt;
&lt;br /&gt;
=Create 2 docker images customized for Sybase=&lt;br /&gt;
We will create 2 new docker images based on the centos image that has been downloaded previously. The first image will be used to store data (database devices, dump files) and the second image is used to run the Sybase processes. It is technically possible to use just 1 image.&lt;br /&gt;
==For data==&lt;br /&gt;
Run the centos image and start a bash shell. Make a note of the container id that is shown at the prompt.&lt;br /&gt;
 docker run -t -i centos /bin/bash&lt;br /&gt;
&lt;br /&gt;
Sample output:&lt;br /&gt;
 docker run -t -i centos /bin/bash&lt;br /&gt;
 [root@2d0c8aae3341 /]#&lt;br /&gt;
In this case the container id is 2d0c8aae3341.&lt;br /&gt;
&lt;br /&gt;
 yum update&lt;br /&gt;
&lt;br /&gt;
Add the sybase group and user making sure that the uid and gid match with the host&lt;br /&gt;
 groupadd sybase -g &amp;lt;number&amp;gt;&lt;br /&gt;
 useradd -u &amp;lt;number&amp;gt; -g sybase sybase&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Create a new image based on the actions we have made&lt;br /&gt;
 docker commit -m &amp;quot;sybase data image&amp;quot; -a &amp;quot;Peter Sap&amp;quot; &amp;lt;container-ID&amp;gt; sybase_data/centos:v1&lt;br /&gt;
 docker images&lt;br /&gt;
&lt;br /&gt;
==For the Sybase processes==&lt;br /&gt;
Run the centos image once more to install the additional packages that are required to run Sybase processes.&lt;br /&gt;
 docker run -t -i centos /bin/bash&lt;br /&gt;
 yum update&lt;br /&gt;
 yum install glibc.i686 libaio&lt;br /&gt;
 groupadd sybase -g &amp;lt;free-number&amp;gt;&lt;br /&gt;
 useradd -u &amp;lt;free-number&amp;gt; -g sybase sybase&lt;br /&gt;
 exit&lt;br /&gt;
 docker commit -m &amp;quot;sybase server image&amp;quot; -a &amp;quot;Peter Sap&amp;quot; &amp;lt;2nd container-ID&amp;gt; sybase_server/centos:v1&lt;br /&gt;
 docker images&lt;br /&gt;
&lt;br /&gt;
=Setup storage=&lt;br /&gt;
In the test case that I have used a disk of 10 Gb was available at /dev/sdb. Modify all storage related instructions to your specific environment.&lt;br /&gt;
&lt;br /&gt;
 pvcreate /dev/sdb&lt;br /&gt;
 vgcreate docker_vg /dev/sdb&lt;br /&gt;
&lt;br /&gt;
=Create the docker container for the database files=&lt;br /&gt;
==Setup storage==&lt;br /&gt;
Create a filesystem of 2 Gb for the database files. Consider this as a bare minumum not sized for user databases nor for database dump files.&lt;br /&gt;
 lvcreate -L 2G -n ASE1_data docker_vg&lt;br /&gt;
 mkfs /dev/docker_vg/ASE1_data&lt;br /&gt;
 mkdir /ASE1_data&lt;br /&gt;
 mount /dev/docker_vg/ASE1_data /ASE1_data&lt;br /&gt;
 chown sybase:sybase /ASE1_data&lt;br /&gt;
&lt;br /&gt;
==Create a Dockerfile and the image==&lt;br /&gt;
 mkdir -p /var/docker_projects/sybase_data&lt;br /&gt;
 vi /var/docker_projects/sybase_data/Dockerfile&lt;br /&gt;
&lt;br /&gt;
 # Dockerfile for sybase data volume containers&lt;br /&gt;
 FROM sybase_data/centos:v1&lt;br /&gt;
 MAINTAINER peter@petersap.nl&lt;br /&gt;
 USER sybase&lt;br /&gt;
&lt;br /&gt;
Build the image&lt;br /&gt;
 docker build -t=&amp;quot;sybase/data:v1&amp;quot; /var/docker_projects/sybase_data&lt;br /&gt;
&lt;br /&gt;
==Create the container==&lt;br /&gt;
&lt;br /&gt;
 docker create --privileged=true -v /ASE1_data:/ASE1_data --name=ASE1_data -t -i sybase/data:v1&lt;br /&gt;
&lt;br /&gt;
=Create the container for the Sybase software=&lt;br /&gt;
&lt;br /&gt;
==Setup storage==&lt;br /&gt;
Create a filesystem of 6 Gb for the Sybase software.&lt;br /&gt;
 lvcreate -L 6G -n sybase-ase160.22544 docker_vg&lt;br /&gt;
 mkfs /dev/docker_vg/sybase-ase160.22544&lt;br /&gt;
 mkdir /sybase-ase160.22544&lt;br /&gt;
 mount /dev/docker_vg/sybase-ase160.22544 /sybase-ase160.22544&lt;br /&gt;
 chown sybase:sybase /sybase-ase160.22544&lt;br /&gt;
&lt;br /&gt;
==Install the Sybase software==&lt;br /&gt;
 su - sybase&lt;br /&gt;
 cd /sybase-ase160.22544&lt;br /&gt;
Copy the Sybase software into the current directory&lt;br /&gt;
 scp &amp;lt;user&amp;gt;@&amp;lt;server&amp;gt;:&amp;lt;directory&amp;gt;/EBF22544.tgz .&lt;br /&gt;
 tar -xf EBF22544.tgz&lt;br /&gt;
 rm EBF22544.tgz&lt;br /&gt;
 cd ebf22544&lt;br /&gt;
Run the installer, install the software in /sybase-ase160.22544. Do not configure any of the products.&lt;br /&gt;
 ./setup.bin&lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -Rf ebf22544&lt;br /&gt;
Type exit to go back to root&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Create the container==&lt;br /&gt;
Note that we use the &amp;quot;sybase/data:v1&amp;quot; image again, as we did when the container for the database files was created.&lt;br /&gt;
 docker create --privileged=true -v /sybase-ase160.22544:/sybase-ase160.22544 --name=ase160.22544 -t -i sybase/data:v1&lt;br /&gt;
&lt;br /&gt;
=Create the container to run Sybase ASE=&lt;br /&gt;
==Setup storage==&lt;br /&gt;
Create a filesystem of 2 Gb to store the errorlog files, startup scripts, etc.&lt;br /&gt;
 lvcreate -L 2G -n ASE1_server docker_vg&lt;br /&gt;
 mkfs /dev/docker_vg/ASE1_server&lt;br /&gt;
 mkdir /ASE1_server&lt;br /&gt;
 mount /dev/docker_vg/ASE1_server /ASE1_server&lt;br /&gt;
 chown sybase:sybase /ASE1_server&lt;br /&gt;
&lt;br /&gt;
==Create a Dockerfile==&lt;br /&gt;
 mkdir -p /var/docker_projects/sybase_server&lt;br /&gt;
 vi /var/docker_projects/sybase_server/Dockerfile&lt;br /&gt;
&lt;br /&gt;
 # Dockerfile for sybase server containers&lt;br /&gt;
 FROM sybase_server/centos:v1&lt;br /&gt;
 MAINTAINER peter@petersap.nl&lt;br /&gt;
 USER sybase&lt;br /&gt;
&lt;br /&gt;
==Build the image==&lt;br /&gt;
 docker build -t=&amp;quot;sybase/server:v1&amp;quot; /var/docker_projects/sybase_server&lt;br /&gt;
&lt;br /&gt;
==Create the container==&lt;br /&gt;
Change the ip-address 10.0.0.29 to match your own environment. The port numbers 5000 can also be changed. Remember to make the same changes later on.&lt;br /&gt;
&lt;br /&gt;
As you can see below, the &amp;quot;docker create&amp;quot; statement references to the containers that have already been created, using the --volumes-from option.&lt;br /&gt;
 docker create --hostname=ASE1_server --publish=10.0.0.29:5000:5000 --privileged=true --volumes-from ASE1_data --volumes-from ase160.22544 -v /ASE1_server:/ASE1_server --name=ASE1_server -t -i sybase/server:v1&lt;br /&gt;
&lt;br /&gt;
=Build the Sybase ASE server=&lt;br /&gt;
At this point we have created the containers for the Sybase software (with the software installed), a container for the database devices and a container to run ASE. Now we will start the container for running ASE and build the Sybase server.&lt;br /&gt;
==Start the container==&lt;br /&gt;
 docker start --attach=true --interactive=true ASE1_server&lt;br /&gt;
&lt;br /&gt;
You should get a bash shell while running the container.&lt;br /&gt;
&lt;br /&gt;
Source in the Sybase environment variables.&lt;br /&gt;
 . /sybase-ase160.22544/SYBASE.sh&lt;br /&gt;
==Create a resource file==&lt;br /&gt;
Create a resource file for building ASE&lt;br /&gt;
&lt;br /&gt;
 cd /ASE1_server&lt;br /&gt;
 vi ASE1.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: sqlsrv&lt;br /&gt;
 sqlsrv.server_name: ASE1&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 sqlsrv.new_config: yes&lt;br /&gt;
 sqlsrv.do_add_server: yes&lt;br /&gt;
 sqlsrv.network_protocol_list: tcp&lt;br /&gt;
 sqlsrv.network_hostname_list: ASE1_server&lt;br /&gt;
 sqlsrv.network_port_list: 5000&lt;br /&gt;
 sqlsrv.application_type: USE_DEFAULT&lt;br /&gt;
 sqlsrv.server_page_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.force_buildmaster: no&lt;br /&gt;
 sqlsrv.master_device_physical_name: /ASE1_data/master.dat&lt;br /&gt;
 sqlsrv.master_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.master_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.errorlog: /ASE1_server/ASE1.errorlog&lt;br /&gt;
 sqlsrv.do_upgrade: no&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_physical_name: /ASE1_data/sybsystemprocs.dat&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemprocs_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_device_physical_name: /ASE1_data/sybsystemdb.dat&lt;br /&gt;
 sqlsrv.sybsystemdb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.tempdb_device_physical_name: /ASE1_data/tempdb.dat&lt;br /&gt;
 sqlsrv.tempdb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.tempdb_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.default_backup_server: SYB_BACKUP&lt;br /&gt;
 #sqlsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
 sqlsrv.do_configure_pci: no&lt;br /&gt;
 sqlsrv.sybpcidb_device_physical_name: PUT_THE_PATH_OF_YOUR_SYBPCIDB_DATA_DEVICE_HERE&lt;br /&gt;
 sqlsrv.sybpcidb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybpcidb_database_size: USE_DEFAULT&lt;br /&gt;
 # If sqlsrv.do_optimize_config is set to yes, both sqlsrv.avail_physical_memory and sqlsrv.avail_cpu_num need to be set.&lt;br /&gt;
 sqlsrv.do_optimize_config: no&lt;br /&gt;
 sqlsrv.avail_physical_memory: PUT_THE_AVAILABLE_PHYSICAL_MEMORY_FOR_ASE_IN_OPTIMIZATION&lt;br /&gt;
 sqlsrv.avail_cpu_num: PUT_THE_AVAILABLE_NUMBER_CPU_FOR_ASE_IN_OPTIMIZATION&lt;br /&gt;
==Build ASE1==&lt;br /&gt;
 srvbuildres -r ASE1.rs&lt;br /&gt;
&lt;br /&gt;
Add an extra entry to the interfaces file to allow ASE to connect to the backupserver that will be running in another container. Remember to make changes to the ip-address and port number where needed.&lt;br /&gt;
&lt;br /&gt;
 vi $SYBASE/interfaces&lt;br /&gt;
&lt;br /&gt;
Add these lines&lt;br /&gt;
&lt;br /&gt;
 SYB_BACKUP_docker&lt;br /&gt;
        query tcp ether 10.0.0.29 5001&lt;br /&gt;
&lt;br /&gt;
Modify the corresponding entry in ASE. Also, configure &amp;quot;console logging&amp;quot; to capture the ASE errorlog inside the log file of the running container.&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 sp_addserver SYB_BACKUP,null,SYB_BACKUP_docker&lt;br /&gt;
 go&lt;br /&gt;
 sp_configure 'enable console logging',1&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
==Create a start script==&lt;br /&gt;
Create a script that will start ASE1 when the docker container is kicked off.&lt;br /&gt;
&lt;br /&gt;
 cd /ASE1_server&lt;br /&gt;
 vi start_ASE1.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Source in the Sybase environment variables&lt;br /&gt;
 &lt;br /&gt;
 . /sybase-ase160.22544/SYBASE.sh&lt;br /&gt;
 &lt;br /&gt;
 # Start ASE1&lt;br /&gt;
 ${SYBASE}/${SYBASE_ASE}/install/RUN_ASE1&lt;br /&gt;
 RET=$?&lt;br /&gt;
 &lt;br /&gt;
 exit ${RET}&lt;br /&gt;
&lt;br /&gt;
 chmod +x start_ASE1.sh&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
You should now be back at the root prompt of your Linux centos/redhat host.&lt;br /&gt;
&lt;br /&gt;
=Create a new container that will kick off ASE1 when the container starts=&lt;br /&gt;
As you have seen above, if you start the container you will get a bash prompt. Now we need to build the container once more with the ENTRYPOINT clause in the Dockerfile so start script is executed where container ASE1_server is started.&lt;br /&gt;
==Create a Dockerfile==&lt;br /&gt;
 mkdir -p /var/docker_projects/ASE1_server&lt;br /&gt;
 cp /var/docker_projects/sybase_server/Dockerfile /var/docker_projects/ASE1_server&lt;br /&gt;
&lt;br /&gt;
Add this line to the new Dockerfile (/var/docker_projects/ASE1_server/Dockerfile)&lt;br /&gt;
&lt;br /&gt;
 ENTRYPOINT /ASE1_server/start_ASE1.sh&lt;br /&gt;
&lt;br /&gt;
==Create image and container==&lt;br /&gt;
&lt;br /&gt;
 docker build -t=&amp;quot;sybase/ase1:v1&amp;quot; /var/docker_projects/ASE1_server&lt;br /&gt;
 docker rm ASE1_server&lt;br /&gt;
 docker create --hostname=ASE1_server --publish=10.0.0.29:5000:5000 --privileged=true --volumes-from ASE1_data --volumes-from ase160.22544 -v /ASE1_server:/ASE1_server --name=ASE1_server -t -i sybase/ase1:v1&lt;br /&gt;
==Start the container to run ASE1==&lt;br /&gt;
 docker start ASE1_server&lt;br /&gt;
Run &amp;quot;docker ps&amp;quot; to see the container running. If it is not running do &amp;quot;docker logs ASE1_server&amp;quot;.&lt;br /&gt;
 docker ps&lt;br /&gt;
&lt;br /&gt;
=Build the Sybase backup server=&lt;br /&gt;
==Create the container==&lt;br /&gt;
&lt;br /&gt;
 docker create --hostname=ASE1_BCK_server --publish=10.0.0.29:5001:5001 --privileged=true --volumes-from ASE1_server --name=ASE1_BCK_server -t -i sybase/server:v1&lt;br /&gt;
&lt;br /&gt;
==Build the Sybase backup server==&lt;br /&gt;
&lt;br /&gt;
 docker start --attach=true --interactive=true ASE1_BCK_server&lt;br /&gt;
&lt;br /&gt;
 . /sybase-ase160.22544/SYBASE.sh&lt;br /&gt;
 cd /ASE1_server&lt;br /&gt;
 vi SYB_BACKUP.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: bsrv&lt;br /&gt;
 bsrv.server_name: SYB_BACKUP&lt;br /&gt;
 bsrv.new_config: yes&lt;br /&gt;
 bsrv.do_add_backup_server: yes&lt;br /&gt;
 bsrv.do_upgrade: no&lt;br /&gt;
 bsrv.network_protocol_list: tcp&lt;br /&gt;
 bsrv.network_hostname_list: ASE1_BCK_server&lt;br /&gt;
 bsrv.network_port_list: 5001&lt;br /&gt;
 bsrv.allow_hosts_list: +&lt;br /&gt;
 bsrv.language: USE_DEFAULT&lt;br /&gt;
 bsrv.character_set: USE_DEFAULT&lt;br /&gt;
 bsrv.tape_config_file: USE_DEFAULT&lt;br /&gt;
 bsrv.errorlog: /ASE1_server/SYB_BACKUP.errorlog&lt;br /&gt;
 sqlsrv.related_sqlsrvr: ASE1&lt;br /&gt;
 sqlsrv.sa_login: sa&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 #bsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
&lt;br /&gt;
 srvbuildres -r SYB_BACKUP.rs&lt;br /&gt;
&lt;br /&gt;
==Create a start script==&lt;br /&gt;
Create a script that will start the backup server when the docker container is started&lt;br /&gt;
&lt;br /&gt;
 vi start_ASE1_BCK.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Source in the Sybase environment variables&lt;br /&gt;
 &lt;br /&gt;
 . /sybase-ase160.22544/SYBASE.sh&lt;br /&gt;
 &lt;br /&gt;
 # Start ASE1_BCK&lt;br /&gt;
 ${SYBASE}/${SYBASE_ASE}/install/RUN_SYB_BACKUP&lt;br /&gt;
 RET=$?&lt;br /&gt;
 &lt;br /&gt;
 exit ${RET}&lt;br /&gt;
&lt;br /&gt;
 chmod +x start_ASE1_BCK.sh&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Create a new container that will kick off ASE1_BCK when the container starts==&lt;br /&gt;
 mkdir -p /var/docker_projects/ASE1_BCK_server&lt;br /&gt;
 cp /var/docker_projects/sybase_server/Dockerfile /var/docker_projects/ASE1_BCK_server&lt;br /&gt;
&lt;br /&gt;
Add this line to the new Dockerfile (/var/docker_projects/ASE1_BCK_server/Dockerfile)&lt;br /&gt;
&lt;br /&gt;
 ENTRYPOINT /ASE1_server/start_ASE1_BCK.sh&lt;br /&gt;
&lt;br /&gt;
Create a new image and a new container, remember to change the ip-address and the port number.&lt;br /&gt;
&lt;br /&gt;
 docker build -t=&amp;quot;sybase/ase1_bck:v1&amp;quot; /var/docker_projects/ASE1_BCK_server&lt;br /&gt;
 docker rm ASE1_BCK_server&lt;br /&gt;
 docker create --hostname=ASE1_BCK_server --publish=10.0.0.29:5001:5001 --privileged=true --volumes-from ASE1_server --name=ASE1_BCK_server -t -i sybase/ase1_bck:v1&lt;br /&gt;
 docker start ASE1_BCK_server&lt;br /&gt;
&lt;br /&gt;
=How to manage the Sybase instances=&lt;br /&gt;
&lt;br /&gt;
Sybase ASE and backup server can be stopped and started with docker commands&lt;br /&gt;
 docker start ASE1_server&lt;br /&gt;
 docker start ASE1_BCK_server&lt;br /&gt;
 docker ps&lt;br /&gt;
 docker stop ASE1_server&lt;br /&gt;
 docker stop ASE1_BCK_server&lt;br /&gt;
&lt;br /&gt;
If you run the &amp;quot;shutdown&amp;quot; command in Sybase ASE the server will stop and the docker container will also end. Same for the backup server if you run &amp;quot;shutdown SYB_BACKUP&amp;quot; in ASE.&lt;br /&gt;
&lt;br /&gt;
If for some reason a server will not start (or crashes) you can examine the console log file&lt;br /&gt;
 docker logs ASE1_server&lt;br /&gt;
&lt;br /&gt;
All the Sybase files are also accesable on the Linux (centos/Redhat) host so if a container will not start anymore you can still make changes to the configuration.&lt;br /&gt;
&lt;br /&gt;
=Wrapping up=&lt;br /&gt;
&lt;br /&gt;
==add to /etc/fstab==&lt;br /&gt;
Add the filesystems to /etc/fstab&lt;br /&gt;
 /dev/docker_vg/sybase-ase160.22544 /sybase-ase160.22544 ext2 defaults 0 0&lt;br /&gt;
 /dev/docker_vg/ASE1_data /ASE1_data ext2 defaults 0 0&lt;br /&gt;
 /dev/docker_vg/ASE1_server /ASE1_server ext2 defaults 0 0&lt;br /&gt;
&lt;br /&gt;
[[category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1984</id>
		<title>Sybase links</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1984"/>
				<updated>2015-11-08T10:56:11Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Links to other popular websites&lt;br /&gt;
&lt;br /&gt;
===Sybase documentation===&lt;br /&gt;
[http://infocenter.sybase.com/help/index.jsp Online documentation from Sybase]&lt;br /&gt;
&lt;br /&gt;
[http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookView Transact-SQL User's Guide (12.5)]&lt;br /&gt;
&lt;br /&gt;
[http://infocenter.sybase.com/help/topic/com.sybase.help.ase_15.0.sqlug/html/sqlug/title.htm Transact-SQL User's Guide (15.0)]&lt;br /&gt;
&lt;br /&gt;
===Community sites===&lt;br /&gt;
[http://www.sypron.nl/main.html Sybase Tips, Tricks, Tools &amp;amp; Documentation by Rob Verschoor]&lt;br /&gt;
&lt;br /&gt;
[http://www.peppler.org/FAQ/linux.html Sybase ASE on Linux FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.faqs.org/faqs/databases/sybase-faq/part1/ Sybase FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.rocket99.com/index.html Rocket99 Guide to Sybase, Oracle, UNIX, and More]&lt;br /&gt;
&lt;br /&gt;
[http://www.selectorweb.com/sybase.html Info from Lev Selector]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1983</id>
		<title>Sybase links</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1983"/>
				<updated>2015-11-08T10:55:36Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Sybase */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Links to other popular websites&lt;br /&gt;
&lt;br /&gt;
===Sybase===&lt;br /&gt;
[http://www.sybase.com Database Management, Mobile Solutions and Messaging, Data Warehousing, Data Integration - Sybase Inc]&lt;br /&gt;
&lt;br /&gt;
===Sybase documentation===&lt;br /&gt;
[http://infocenter.sybase.com/help/index.jsp Online documentation from Sybase]&lt;br /&gt;
&lt;br /&gt;
[http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookView Transact-SQL User's Guide (12.5)]&lt;br /&gt;
&lt;br /&gt;
[http://infocenter.sybase.com/help/topic/com.sybase.help.ase_15.0.sqlug/html/sqlug/title.htm Transact-SQL User's Guide (15.0)]&lt;br /&gt;
&lt;br /&gt;
===Community sites===&lt;br /&gt;
[http://www.sypron.nl/main.html Sybase Tips, Tricks, Tools &amp;amp; Documentation by Rob Verschoor]&lt;br /&gt;
&lt;br /&gt;
[http://www.peppler.org/FAQ/linux.html Sybase ASE on Linux FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.faqs.org/faqs/databases/sybase-faq/part1/ Sybase FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.rocket99.com/index.html Rocket99 Guide to Sybase, Oracle, UNIX, and More]&lt;br /&gt;
&lt;br /&gt;
[http://www.selectorweb.com/sybase.html Info from Lev Selector]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1982</id>
		<title>Sybase links</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1982"/>
				<updated>2015-11-08T10:53:23Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Links to other popular websites&lt;br /&gt;
&lt;br /&gt;
===Sybase===&lt;br /&gt;
[http://www.sybase.com Database Management, Mobile Solutions and Messaging, Data Warehousing, Data Integration - Sybase Inc]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/user/SybaseInc Promotional videos from Sybase at YouTube]&lt;br /&gt;
&lt;br /&gt;
===Sybase documentation===&lt;br /&gt;
[http://infocenter.sybase.com/help/index.jsp Online documentation from Sybase]&lt;br /&gt;
&lt;br /&gt;
[http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookView Transact-SQL User's Guide (12.5)]&lt;br /&gt;
&lt;br /&gt;
[http://infocenter.sybase.com/help/topic/com.sybase.help.ase_15.0.sqlug/html/sqlug/title.htm Transact-SQL User's Guide (15.0)]&lt;br /&gt;
&lt;br /&gt;
===Community sites===&lt;br /&gt;
[http://www.sypron.nl/main.html Sybase Tips, Tricks, Tools &amp;amp; Documentation by Rob Verschoor]&lt;br /&gt;
&lt;br /&gt;
[http://www.peppler.org/FAQ/linux.html Sybase ASE on Linux FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.faqs.org/faqs/databases/sybase-faq/part1/ Sybase FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.rocket99.com/index.html Rocket99 Guide to Sybase, Oracle, UNIX, and More]&lt;br /&gt;
&lt;br /&gt;
[http://www.selectorweb.com/sybase.html Info from Lev Selector]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1981</id>
		<title>Sybase links</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Sybase_links&amp;diff=1981"/>
				<updated>2015-11-08T10:52:51Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Links to other popular websites&lt;br /&gt;
&lt;br /&gt;
===Sybase===&lt;br /&gt;
[http://www.sybase.com Database Management, Mobile Solutions and Messaging, Data Warehousing, Data Integration - Sybase Inc]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/user/SybaseInc Promotional videos from Sybase at YouTube]&lt;br /&gt;
&lt;br /&gt;
===Sybase documentation===&lt;br /&gt;
[http://infocenter.sybase.com/help/index.jsp Online documentation from Sybase]&lt;br /&gt;
&lt;br /&gt;
[http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookView Transact-SQL User's Guide (12.5)]&lt;br /&gt;
&lt;br /&gt;
[http://infocenter.sybase.com/help/topic/com.sybase.help.ase_15.0.sqlug/html/sqlug/title.htm Transact-SQL User's Guide (15.0)]&lt;br /&gt;
&lt;br /&gt;
===Tools===&lt;br /&gt;
[http://www.sqsh.org Sqsh Home Page]&lt;br /&gt;
&lt;br /&gt;
===Community sites===&lt;br /&gt;
[http://www.sypron.nl/main.html Sybase Tips, Tricks, Tools &amp;amp; Documentation by Rob Verschoor]&lt;br /&gt;
&lt;br /&gt;
[http://www.peppler.org/FAQ/linux.html Sybase ASE on Linux FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.faqs.org/faqs/databases/sybase-faq/part1/ Sybase FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://www.rocket99.com/index.html Rocket99 Guide to Sybase, Oracle, UNIX, and More]&lt;br /&gt;
&lt;br /&gt;
[http://www.selectorweb.com/sybase.html Info from Lev Selector]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Warm_Standby_setup_instructions&amp;diff=1979</id>
		<title>Warm Standby setup instructions</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Warm_Standby_setup_instructions&amp;diff=1979"/>
				<updated>2015-10-12T11:50:12Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Preparation of the Replication Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sybase Replication Server allows you to create and maintain a warm standby environment. The creation can be done with, for instance, the rs_init utility or Sybase Central. In some cases extra flexibility is needed and this can best be achieved when command line statements are used.&lt;br /&gt;
For various other reasons people prefer using this method.&lt;br /&gt;
&lt;br /&gt;
This page describes the steps to be taken to create a warm standby environment through a combination of commands given to ASE and Replication Server. It should be considered as a kind of worksheet. Feel free to make changes to suit your individual need. This might be needed when you are dealing with a database with big table(s) holding text or image datatypes or you want to optimize performance using replication definitions and subscriptions.&lt;br /&gt;
&lt;br /&gt;
==Assumptions of the environment==&lt;br /&gt;
* The setup makes the following assumptions: &lt;br /&gt;
* The Replication Server is already configured and running. &lt;br /&gt;
* Replication is done between ASE servers &lt;br /&gt;
* Materialization will be done with a dump-load scenario &lt;br /&gt;
* Replication is performed without replication definitions and subscriptions &lt;br /&gt;
* User activity will continue throughout the creation process &lt;br /&gt;
The setup is divided into a number of steps, where each step is a separate unit of work.&lt;br /&gt;
&lt;br /&gt;
==Preparation of the Sybase ASE-servers==&lt;br /&gt;
'''Create a maintenance user on both ASE's'''&lt;br /&gt;
&lt;br /&gt;
The maintenance user is used by the replication server to apply transactions. Make sure that the name and password of the maintenance user on both servers are identical. For practical reasons make the maintenance user aliased to &amp;quot;dbo&amp;quot; in the database. Since a dump-load scenario is used to materialize the standby database, make sure that the suid of the maintenance user on both servers are identical.&lt;br /&gt;
&lt;br /&gt;
 sp_addlogin &amp;quot;&amp;lt;maintenance_user&amp;gt;&amp;quot;,&amp;quot;&amp;lt;maintenance_user_password&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 grant role replication_role to &amp;quot;&amp;lt;maintenance_user&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 -- check the value of the suid&lt;br /&gt;
 select suser_id(&amp;quot;&amp;lt;maintenance_user&amp;gt;&amp;quot;)&lt;br /&gt;
 go&lt;br /&gt;
 use &amp;lt;database&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
 sp_addalias &amp;quot;&amp;lt;maintenance_user&amp;gt;&amp;quot;,&amp;quot;dbo&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
'''Install the replication server stored procedures and tables'''&lt;br /&gt;
&lt;br /&gt;
To do this, make a copy of the script rs_install_primary.sql located in the $SYBASE/$SYBASE_REP/scripts directory. Comment out 2 commands of the script: the dbcc settrunc and the sp_setreplicate commands. These can be found at the end of the file, or just above the definition of the rs_send_repserver_cmd stored procedure.&lt;br /&gt;
&lt;br /&gt;
The commands that are skipped will be executed at a later stage, when the replication agent is configured. Apply the script on the active server in the right database.&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -P&amp;lt;password&amp;gt; -S&amp;lt;active_server&amp;gt; -D&amp;lt;database&amp;gt; -i changed_rs_install_primary.sql &lt;br /&gt;
&lt;br /&gt;
'''Configure both servers for replication'''&lt;br /&gt;
&lt;br /&gt;
 sp_configure &amp;quot;enable rep agent threads&amp;quot;,1&lt;br /&gt;
&lt;br /&gt;
==Preparation of the Replication Server==&lt;br /&gt;
'''Create a logical connection on the replication server'''&lt;br /&gt;
&lt;br /&gt;
The name of it does not have to match with the name of the primary database server and database, but this convention is widely used. &lt;br /&gt;
&lt;br /&gt;
 create logical connection to &amp;lt;active_server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create a connection from the replication server to the active database'''&lt;br /&gt;
&lt;br /&gt;
 create connection to &amp;lt;active_server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
 set error class to rs_sqlserver_error_class&lt;br /&gt;
 set function string class to rs_sqlserver_function_class&lt;br /&gt;
 set username to &amp;lt;maintenance_user&amp;gt;&lt;br /&gt;
 set password to &amp;lt;maintenance_user_password&amp;gt;&lt;br /&gt;
 with log transfer on&lt;br /&gt;
 as active for &amp;lt;active_server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create a login in the replication server'''&lt;br /&gt;
&lt;br /&gt;
This login is used by the rep-agent running in the ASE to connect to the replication server. &lt;br /&gt;
&lt;br /&gt;
 create user &amp;lt;rep-agent_user&amp;gt;&lt;br /&gt;
 set password &amp;lt;rep-agent_password&amp;gt;&lt;br /&gt;
 set password_expiration to '0'&lt;br /&gt;
 go&lt;br /&gt;
 grant connect source to &amp;lt;rep-agent_user&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==Configure the RepAgent==&lt;br /&gt;
The configuration of the Replication Agent within the active ASE should now be done. All steps within this paragraph should be executed within a controlled time frame since the transaction log cannot be cleared between the execution of the first sp_config_rep_agent and the sp_start_rep_agent.&lt;br /&gt;
The configuration is only needed on the primary server. Since we use a dump-load scenario the configuration is copied to the standby server during the materialization phase.&lt;br /&gt;
&lt;br /&gt;
 use &amp;lt;database&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
 sp_config_rep_agent &amp;quot;&amp;lt;database&amp;gt;&amp;quot;, &amp;quot;enable&amp;quot;, &amp;quot;&amp;lt;repserver&amp;gt;&amp;quot;, &amp;quot;&amp;lt;rep-agent_user&amp;gt;&amp;quot;, &amp;quot;&amp;lt;rep-agent_password&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 sp_config_rep_agent &amp;quot;&amp;lt;database&amp;gt;&amp;quot;, &amp;quot;send warm standby xacts&amp;quot;, true&lt;br /&gt;
 go&lt;br /&gt;
 sp_setreplicate rs_marker,&amp;quot;true&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 sp_setreplicate rs_update_lastcommit,&amp;quot;true&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 sp_start_rep_agent &amp;quot;&amp;lt;database&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==Mark the database for replication and grant permissions==&lt;br /&gt;
Execute the sp_reptostandby stored procedure in the active ASE to activate replication from the active database to the replication server.&lt;br /&gt;
&lt;br /&gt;
We also need to grant permissions to a few stored procedures.&lt;br /&gt;
&lt;br /&gt;
 use &amp;lt;database&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
 grant execute on rs_update_lastcommit to public&lt;br /&gt;
 grant execute on rs_marker to public&lt;br /&gt;
 grant execute on rs_check_repl_stat to public&lt;br /&gt;
 go&lt;br /&gt;
 sp_reptostandby &amp;quot;&amp;lt;database&amp;gt;&amp;quot;,&amp;quot;all&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==Configure the replication server for the standby database==&lt;br /&gt;
All steps within this paragraph should be executed within a controlled time frame since the stable queue in the replication server cannot be cleared between the execution of the create connection and resume connection.&lt;br /&gt;
&lt;br /&gt;
'''Create a connection from the replication server to the standby server'''&lt;br /&gt;
&lt;br /&gt;
 create connection to &amp;lt;standby-server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
 set error class to rs_sqlserver_error_class&lt;br /&gt;
 set function string class to rs_sqlserver_function_class&lt;br /&gt;
 set username to &amp;lt;maintenance_user&amp;gt;&lt;br /&gt;
 set password to &amp;lt;maintenance_user_password&amp;gt;&lt;br /&gt;
 with log transfer on&lt;br /&gt;
 as standby for &amp;lt;active_server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
 use dump marker &lt;br /&gt;
&lt;br /&gt;
'''Dump the database on the active server so it can be loaded into the standby server''' &lt;br /&gt;
&lt;br /&gt;
 dump database &amp;lt;database&amp;gt; to &amp;quot;&amp;lt;file-name&amp;gt;&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Load the database dump into the standby server''' &lt;br /&gt;
&lt;br /&gt;
 load database &amp;lt;database&amp;gt; from &amp;quot;&amp;lt;file-name&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 online database &amp;lt;database&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
'''Start the connection from the replication server to the standby database'''&lt;br /&gt;
&lt;br /&gt;
 resume connection to &amp;lt;standby-server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Congratulations, you now have a working Warm Standby configuration!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RepServer]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Linux_configuration_settings_for_Sybase_ASE&amp;diff=1978</id>
		<title>Linux configuration settings for Sybase ASE</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Linux_configuration_settings_for_Sybase_ASE&amp;diff=1978"/>
				<updated>2015-10-09T12:09:11Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To run Sybase ASE successfully on a Linux environment you need to configure a number of items. Below you will find a few of these, but please note that this is by far not an full overview. There could be more improvements to be made.&lt;br /&gt;
&lt;br /&gt;
=Memory – Huge Pages=&lt;br /&gt;
The configuration of Huge Pages is needed to get an efficient translation from virtual memory pages to physical pages. When you configure for Huge Pages, the amount of memory assigned to Huge Pages is allocated and reserved for shared memory. Do not over configure to prevent swapping.&lt;br /&gt;
&lt;br /&gt;
When ASE reports the below message in the errorlog, you need to configure for huge pages:&lt;br /&gt;
&lt;br /&gt;
 Could not allocate memory using Huge Pages. Allocated using regular pages. For better performance, reboot the server after configuring enough Huge Pages.&lt;br /&gt;
&lt;br /&gt;
To get the values for huge pages first determine the maximum amount of memory you want to give to ASE. For instance, on a Linux server with 512Gb physical memory you can give 90% to ASE. &lt;br /&gt;
512 Gb x 90% = 460 Gb = 471040 Mb.&lt;br /&gt;
&lt;br /&gt;
Then determine the size of a single huge page:&lt;br /&gt;
&lt;br /&gt;
 cat /proc/meminfo | grep Hugepagesize &lt;br /&gt;
&lt;br /&gt;
Sample output:&lt;br /&gt;
&lt;br /&gt;
 Hugepagesize:       2048 kB&lt;br /&gt;
&lt;br /&gt;
In this case 1 huge page is 2 Mb, so the number of huge pages we need will be 471040 Mb / 2 Mb = 235520 &lt;br /&gt;
&lt;br /&gt;
Then set the correct value in /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
 vm.nr_hugepages = &amp;lt;value&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next step is to calculate the number of huge pages in Kb and give the “sybase” user permission to grab the memory. Take the number of huge pages as calculated above. Then multiply by 2048. That wil give you the number of pages in Kb. Example: 235520 x 2048 = 482344960. Then have it stored in /etc/security/limits.conf like this &lt;br /&gt;
&lt;br /&gt;
 sybase soft memlock 482344960 &lt;br /&gt;
 sybase hard memlock 482344960 &lt;br /&gt;
&lt;br /&gt;
In this example, &amp;quot;sybase&amp;quot; is assumed to be the unix user running ASE.&lt;br /&gt;
&lt;br /&gt;
Now reboot the Linux server to check if everything works as expected.&lt;br /&gt;
&lt;br /&gt;
To see the configured number of huge pages at runtime:&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/vm/nr_hugepages &lt;br /&gt;
&lt;br /&gt;
Notes: &lt;br /&gt;
* As per Sybase recommendation (CR 627114) “lock shared memory” must be switched off. &lt;br /&gt;
* When ASE uses huge pages, it will allocate memory to the nearest multiple of 256Mb so don’t configure the ASE exactly to the maximum number of huge pages, but leave a small amount unused (e.g. 300 Mb). In case a small increase in size is needed due to the change of a Sybase config you will not get into trouble. &lt;br /&gt;
&lt;br /&gt;
=Number of file descriptors=&lt;br /&gt;
You may need to increase the number of file descriptors per process if you get this error:&lt;br /&gt;
&lt;br /&gt;
 The number of file descriptors per ASE process required to support the current configuration exceeds the limit 4096 by 3955.&lt;br /&gt;
&lt;br /&gt;
Make the following changes to /etc/security/limits.conf&lt;br /&gt;
&lt;br /&gt;
 sybase soft nofile 16384 &lt;br /&gt;
 sybase hard nofile 16384 &lt;br /&gt;
&lt;br /&gt;
In this example, &amp;quot;sybase&amp;quot; is assumed to be the unix user running ASE.&lt;br /&gt;
&lt;br /&gt;
Log off and log on again to pick up the new settings.&lt;br /&gt;
&lt;br /&gt;
=DISK I/O=&lt;br /&gt;
==fs.aio-max-nr ==&lt;br /&gt;
fs.aio-max-nr is the maximum number of asynchronous I/Os.&lt;br /&gt;
&lt;br /&gt;
The recommended minimum value for fs.aio-max-nr is 1048576, but on a busy ASE with many engines you may need to have a higher number configured. &lt;br /&gt;
&lt;br /&gt;
In ASE, set these values as a starting point.&lt;br /&gt;
&lt;br /&gt;
* Set “disk i/o structures” to 1048576.&lt;br /&gt;
* Set “max async i/os per engine” to 8192.&lt;br /&gt;
* Keep &amp;quot;max async i/os per server&amp;quot; at it’s default value (2147483647).&lt;br /&gt;
&lt;br /&gt;
When you have multiple engines configured within ASE then use this formula to calculate the value for fs.aio-max-nr&lt;br /&gt;
&lt;br /&gt;
 (disk i/o structures + max async i/os per engine) * max online engines&lt;br /&gt;
&lt;br /&gt;
For example: (1048576 + 8192) * 32 engines = 33816576 &lt;br /&gt;
&lt;br /&gt;
Then set the value in /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
 fs.aio-max-nr = 33816576 &lt;br /&gt;
&lt;br /&gt;
To get the value at runtime&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/fs/aio-max-nr &lt;br /&gt;
&lt;br /&gt;
===Troubleshooting fs.aio-max-nr===&lt;br /&gt;
When the below messages appear in the ASE  errorlog, the configuration of fs.aio-max-nr is not correct:&lt;br /&gt;
 &lt;br /&gt;
 kernel asynchronous I/O not initialized. The io_setup() system call returned -22.&lt;br /&gt;
or &lt;br /&gt;
 kernel  kistartup: asynchronous I/O not available: No such file or directory&lt;br /&gt;
&lt;br /&gt;
Either recalculate the vale or reduce the Sybase related configuration options (“disk i/o structures” and/or “max async i/os per engine”) &lt;br /&gt;
&lt;br /&gt;
===Troubleshooting dstartio===&lt;br /&gt;
When this message appears in the errorlog&lt;br /&gt;
&lt;br /&gt;
 kernel  dstartio: I/O request repeatedly delayed; block number: &amp;lt;nr&amp;gt;, vdn: &amp;lt;nr&amp;gt;&lt;br /&gt;
then you need to increase &amp;quot;disk i/o structures&amp;quot; or &amp;quot;max async i/os per engine&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To determine if &amp;quot;disk i/o structures&amp;quot; or &amp;quot;max async i/os per engine&amp;quot; needs to be increased look at the output of sp_sysmon that was captured during the time that the message appeared. Snapshot of output: &lt;br /&gt;
&lt;br /&gt;
  I/Os Delayed by &lt;br /&gt;
    Disk I/O Structures               n/a           n/a           0      n/a &lt;br /&gt;
    Server Config Limit               n/a           n/a           0      n/a &lt;br /&gt;
    Engine Config Limit               n/a           n/a       24582      n/a &lt;br /&gt;
    Operating System Limit            n/a           n/a           0      n/a &lt;br /&gt;
&lt;br /&gt;
When a non-zero value is reported, increase the corresponding Sybase parameter.&lt;br /&gt;
Alternatively, you can run sp_monitorconfig “all” to see if the maximum number of “disk i/o structures” has reached (see column Max_Used).&lt;br /&gt;
&lt;br /&gt;
Be aware that the Linux setting for fs.aio-max-nr may need to be increased as well after changing the Sybase configuration settings. &lt;br /&gt;
&lt;br /&gt;
==Queue depth==&lt;br /&gt;
Per Linux volume used by ASE the queue depth must be configured. The default value is 128 but it must be set to 1024.&lt;br /&gt;
&lt;br /&gt;
You can only set the required value at boottime and, depending on the Linux distribution, you need to do it in /etc/init.d/boot.local (Suse) or /etc/init.d/rc.local (Ubuntu) or /etc/rc.d/rc.local (RedHat)&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 echo 1024 &amp;gt;/sys/block/sdb/queue/nr_requests &lt;br /&gt;
&lt;br /&gt;
To retrieve the runtime value:&lt;br /&gt;
&lt;br /&gt;
 cat /sys/block/sd*/queue/nr_requests &lt;br /&gt;
&lt;br /&gt;
=kernel.randomize_va_space=&lt;br /&gt;
This may be Suse and ASE 15.0.3 specific, but it may apply to other Linux / ASE version combinations as well.&lt;br /&gt;
&lt;br /&gt;
Due to a high I/O load you may see stacktraces referring to the cm_writedes module, see below snippet.&lt;br /&gt;
&lt;br /&gt;
 00:00000:00006:2012/11/11 01:18:41.45 kernel  pc: 0x00007ffff73a56a0 (null)+0x7ffff73a56a0()&lt;br /&gt;
 00:00000:00006:2012/11/11 01:18:41.45 kernel  pc: 0x00000000018fd036 cm_writedes+0x606()&lt;br /&gt;
&lt;br /&gt;
In the later versions of ASE 15.7 this should be fixed and an error message is printed.&lt;br /&gt;
To prevent the issue, set the value for  kernel.randomize_va_space to 0 in combination with a higher value of “cpu grace time” in ASE, like 1500. &lt;br /&gt;
To see the runtime value&lt;br /&gt;
 cat /proc/sys/kernel/randomize_va_space &lt;br /&gt;
To see the boottime value, check /etc/sysctl.conf there must be line like kernel.randomize_va_space = 0 &lt;br /&gt;
 &lt;br /&gt;
See also http://www.novell.com/support/kb/doc.php?id=7004855&lt;br /&gt;
&lt;br /&gt;
After changing kernel.randomize_va_space do a reboot of the Linux server, as that seems to be necessary. &lt;br /&gt;
&lt;br /&gt;
=Soft / Hard limits for memory allocation (Suse only)=&lt;br /&gt;
By default, no more than 80 % of available memory (RAM and swap) can be claimed by a single process. This is the soft-virtual limit. To check the setting: cat  /etc/sysconfig/ulimit and look for the value specified as SOFTVIRTUALLIMIT. Default is “80”. &lt;br /&gt;
&lt;br /&gt;
Increase the setting as setting as needed, or set to “0” for unlimited.&lt;br /&gt;
&lt;br /&gt;
Associated Sybase error message: &lt;br /&gt;
&lt;br /&gt;
 Attempt to attach shared memory (id 32768) at address (nil), with flags 0 failed&lt;br /&gt;
&lt;br /&gt;
[[category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=RepServer_show_changed_configuration_options&amp;diff=1977</id>
		<title>RepServer show changed configuration options</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=RepServer_show_changed_configuration_options&amp;diff=1977"/>
				<updated>2015-09-09T13:46:57Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: Created page with &amp;quot;You can use the below SQL statement to see the changes to the Replication Server configuration as they have been made by either rs_configure (on the ASE side) or &amp;quot;configure re...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can use the below SQL statement to see the changes to the Replication Server configuration as they have been made by either rs_configure (on the ASE side) or &amp;quot;configure replication server&amp;quot; (on the Replication Server side).&lt;br /&gt;
&lt;br /&gt;
It is assumed that you use ASE as the Replication Server System Database.&lt;br /&gt;
&lt;br /&gt;
 select optionname as &amp;quot;Option&amp;quot;,&lt;br /&gt;
        convert(varchar(16),dv) as &amp;quot;Default Value&amp;quot;,&lt;br /&gt;
        convert(varchar(16),charvalue) as &amp;quot;Config value&amp;quot;&lt;br /&gt;
        from    rs_config c&lt;br /&gt;
                join rs_tvalues t&lt;br /&gt;
                on      c.optionname = t.name&lt;br /&gt;
                and     c.charvalue  != t.dv&lt;br /&gt;
        where   t.type  = &amp;quot;CF&amp;quot;&lt;br /&gt;
        and     t.value = 1&lt;br /&gt;
        and     not ((c.optionname = &amp;quot;cm_fadeout_time&amp;quot; and charvalue = &amp;quot;300&amp;quot;)&lt;br /&gt;
                or (c.optionname = &amp;quot;exec_nrm_request_limit&amp;quot; and c.charvalue = &amp;quot;8388608&amp;quot;)&lt;br /&gt;
                or (c.optionname = &amp;quot;id_security_mechanism&amp;quot; and c.charvalue = &amp;quot;&amp;quot;)&lt;br /&gt;
                or (c.optionname = &amp;quot;init_sqm_write_delay&amp;quot; and c.charvalue = &amp;quot;100&amp;quot;)&lt;br /&gt;
                or (c.optionname = &amp;quot;init_sqm_write_max_delay&amp;quot; and c.charvalue = &amp;quot;1000&amp;quot;)&lt;br /&gt;
                or (c.optionname = &amp;quot;mat_report_interval&amp;quot; and c.charvalue = &amp;quot;60&amp;quot;)&lt;br /&gt;
                or (c.optionname = &amp;quot;mem_thr_exec&amp;quot; and c.charvalue = &amp;quot;90&amp;quot;)&lt;br /&gt;
                or (c.optionname = &amp;quot;mem_thr_sqt&amp;quot; and c.charvalue = &amp;quot;85&amp;quot;)&lt;br /&gt;
                or (c.optionname = &amp;quot;memory_limit&amp;quot; and c.charvalue = &amp;quot;2047&amp;quot;)&lt;br /&gt;
                or (c.optionname = &amp;quot;sqm_cmd_cache_size&amp;quot; and c.charvalue = &amp;quot;20971520&amp;quot;)&lt;br /&gt;
                or (c.optionname = &amp;quot;sqt_max_cache_size&amp;quot; and c.charvalue = &amp;quot;20971520&amp;quot;)&lt;br /&gt;
                or (c.optionname = &amp;quot;sqt_max_prs_size&amp;quot; and c.charvalue = &amp;quot;2147483647&amp;quot;))&lt;br /&gt;
        order by 1&lt;br /&gt;
&lt;br /&gt;
Sample output&lt;br /&gt;
&lt;br /&gt;
 Option                         Default Value    Config value     &lt;br /&gt;
 ------------------------------ ---------------- ---------------- &lt;br /&gt;
 cm_max_connections             144              128              &lt;br /&gt;
 disallowed_prev_passwords      0                12               &lt;br /&gt;
 max_failed_logins              0                3                &lt;br /&gt;
 memory_limit                   80               8192             &lt;br /&gt;
 min_password_len               6                8                &lt;br /&gt;
 num_client_connections         30               128              &lt;br /&gt;
 num_mutexes                    1024             16777216         &lt;br /&gt;
 num_stable_queues              32               40               &lt;br /&gt;
 password_lowercase_required    false            true             &lt;br /&gt;
 password_numeric_required      false            true             &lt;br /&gt;
 password_uppercase_required    false            true             &lt;br /&gt;
 simple_passwords_allowed       true             false            &lt;br /&gt;
 sqm_recover_segs               1                4                &lt;br /&gt;
 sqm_write_flush                on               dio              &lt;br /&gt;
 sqt_max_cache_size             1048576          200000000        &lt;br /&gt;
 sts_cachesize                  1000             30000            &lt;br /&gt;
 sts_full_cache_rs_columns      off              on               &lt;br /&gt;
 sts_full_cache_rs_config       off              on               &lt;br /&gt;
 sts_full_cache_rs_databases    off              on               &lt;br /&gt;
 sts_full_cache_rs_diskaffinity off              on               &lt;br /&gt;
 sts_full_cache_rs_objects      off              on               &lt;br /&gt;
 sts_full_cache_rs_queues       off              on               &lt;br /&gt;
 &lt;br /&gt;
 (22 rows affected)&lt;br /&gt;
&lt;br /&gt;
[[Category:RepServer]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Docker_-_How_to_run_Sybase_ASE_in_a_container&amp;diff=1976</id>
		<title>Docker - How to run Sybase ASE in a container</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Docker_-_How_to_run_Sybase_ASE_in_a_container&amp;diff=1976"/>
				<updated>2015-06-22T11:43:05Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: Created page with &amp;quot;This page will show you how SAP Sybase ASE (version 16.0 GA PL01) can be run in a docker container. You will also see how to work with docker images, containters and volumes. ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will show you how SAP Sybase ASE (version 16.0 GA PL01) can be run in a docker container. You will also see how to work with docker images, containters and volumes.&lt;br /&gt;
&lt;br /&gt;
All tests have been carried out on a Linux Centos 7 environment, I expect little to no change if you need to run it on Redhat. You need about 10 Gb of free space to install the Sybase software, database devices, etc. Beware that you need to split this free space into several separately mounted filesystems.&lt;br /&gt;
&lt;br /&gt;
The Sybase ASE server will be called &amp;quot;ASE1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
No performance optimization has been done for docker nor for Sybase.&lt;br /&gt;
&lt;br /&gt;
Unless otherwise noted, all commands need to be run under &amp;quot;root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=Prepare the system=&lt;br /&gt;
Prepare your system to run docker and create the sybase user.&lt;br /&gt;
==Package update==&lt;br /&gt;
Under Centos / Redhat 7 firewalld can conflict with docker so we will remove it from the system.&lt;br /&gt;
 yum remove firewalld&lt;br /&gt;
&lt;br /&gt;
Make sure you have the latest patches installed. Reboot if a new kernel has been downloaded.&lt;br /&gt;
 yum update&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==Add sybase user and group==&lt;br /&gt;
Docker data volumes are separate filesystems on the Linux and are made available in a docker container. The sybase processes running in these containers must have the same uid/guid for the sybase user as on the host system (your Centos / Redhat server). Keep the uid/gid for the sybase user everywhere the same.&lt;br /&gt;
&lt;br /&gt;
 groupadd sybase -g &amp;lt;free-number&amp;gt;&lt;br /&gt;
 useradd -u &amp;lt;free-number&amp;gt; -g sybase sybase&lt;br /&gt;
&lt;br /&gt;
=Initial docker setup=&lt;br /&gt;
&lt;br /&gt;
Install docker, start it, and have it started when the Linux server boots.&lt;br /&gt;
&lt;br /&gt;
 yum install docker&lt;br /&gt;
 systemctl start docker&lt;br /&gt;
 systemctl enable docker&lt;br /&gt;
&lt;br /&gt;
If you run &amp;quot;docker images&amp;quot; you can see the available images. Download a basic docker image for centos.&lt;br /&gt;
&lt;br /&gt;
 docker images&lt;br /&gt;
 docker pull centos&lt;br /&gt;
 docker images&lt;br /&gt;
&lt;br /&gt;
=Create 2 docker images customized for Sybase=&lt;br /&gt;
We will create 2 new docker images based on the centos image that has been downloaded previously. The first image will be used to store data (database devices, dump files) and the second image is used to run the Sybase processes. It is technically possible to use just 1 image.&lt;br /&gt;
==For data==&lt;br /&gt;
Run the centos image and start a bash shell. Make a note of the container id that is shown at the prompt.&lt;br /&gt;
 docker run -t -i centos /bin/bash&lt;br /&gt;
&lt;br /&gt;
 yum update&lt;br /&gt;
&lt;br /&gt;
Add the sybase group and user making sure that the uid and gid match with the host&lt;br /&gt;
 groupadd sybase -g &amp;lt;number&amp;gt;&lt;br /&gt;
 useradd -u &amp;lt;number&amp;gt; -g sybase sybase&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Create a new image based on the actions we have made&lt;br /&gt;
 docker commit -m &amp;quot;sybase data image&amp;quot; -a &amp;quot;Peter Sap&amp;quot; &amp;lt;container-ID&amp;gt; sybase_data/centos:v1&lt;br /&gt;
 docker images&lt;br /&gt;
&lt;br /&gt;
==For the Sybase processes==&lt;br /&gt;
Run the centos image once more to install the additional packages that are required to run Sybase processes.&lt;br /&gt;
 docker run -t -i centos /bin/bash&lt;br /&gt;
 yum update&lt;br /&gt;
 yum install glibc.i686 libaio&lt;br /&gt;
 groupadd sybase -g &amp;lt;free-number&amp;gt;&lt;br /&gt;
 useradd -u &amp;lt;free-number&amp;gt; -g sybase sybase&lt;br /&gt;
 exit&lt;br /&gt;
 docker commit -m &amp;quot;sybase server image&amp;quot; -a &amp;quot;Peter Sap&amp;quot; &amp;lt;2nd container-ID&amp;gt; sybase_server/centos:v1&lt;br /&gt;
 docker images&lt;br /&gt;
&lt;br /&gt;
=Setup storage=&lt;br /&gt;
In the test case that I have used a disk of 10 Gb was available at /dev/sdb. Modify all storage related instructions to your specific environment.&lt;br /&gt;
&lt;br /&gt;
 pvcreate /dev/sdb&lt;br /&gt;
 vgcreate docker_vg /dev/sdb&lt;br /&gt;
&lt;br /&gt;
=Create the docker container for the database files=&lt;br /&gt;
==Setup storage==&lt;br /&gt;
Create a filesystem of 2 Gb for the database files. Consider this as a bare minumum not sized for user databases nor for database dump files.&lt;br /&gt;
 lvcreate -L 2G -n ASE1_data docker_vg&lt;br /&gt;
 mkfs /dev/docker_vg/ASE1_data&lt;br /&gt;
 mkdir /ASE1_data&lt;br /&gt;
 mount /dev/docker_vg/ASE1_data /ASE1_data&lt;br /&gt;
 chown sybase:sybase /ASE1_data&lt;br /&gt;
&lt;br /&gt;
==Create a Dockerfile and the image==&lt;br /&gt;
 mkdir -p /var/docker_projects/sybase_data&lt;br /&gt;
 vi /var/docker_projects/sybase_data/Dockerfile&lt;br /&gt;
&lt;br /&gt;
 # Dockerfile for sybase data volume containers&lt;br /&gt;
 FROM sybase_data/centos:v1&lt;br /&gt;
 MAINTAINER peter@petersap.nl&lt;br /&gt;
 USER sybase&lt;br /&gt;
&lt;br /&gt;
Build the image&lt;br /&gt;
 docker build -t=&amp;quot;sybase/data:v1&amp;quot; /var/docker_projects/sybase_data&lt;br /&gt;
&lt;br /&gt;
==Create the container==&lt;br /&gt;
&lt;br /&gt;
 docker create --privileged=true -v /ASE1_data:/ASE1_data --name=ASE1_data -t -i sybase/data:v1&lt;br /&gt;
&lt;br /&gt;
=Create the container for the Sybase software=&lt;br /&gt;
&lt;br /&gt;
==Setup storage==&lt;br /&gt;
Create a filesystem of 6 Gb for the Sybase software.&lt;br /&gt;
 lvcreate -L 6G -n sybase-ase160.22544 docker_vg&lt;br /&gt;
 mkfs /dev/docker_vg/sybase-ase160.22544&lt;br /&gt;
 mkdir /sybase-ase160.22544&lt;br /&gt;
 mount /dev/docker_vg/sybase-ase160.22544 /sybase-ase160.22544&lt;br /&gt;
 chown sybase:sybase /sybase-ase160.22544&lt;br /&gt;
&lt;br /&gt;
==Install the Sybase software==&lt;br /&gt;
 su - sybase&lt;br /&gt;
 cd /sybase-ase160.22544&lt;br /&gt;
Copy the Sybase software into the current directory&lt;br /&gt;
 scp &amp;lt;user&amp;gt;@&amp;lt;server&amp;gt;:&amp;lt;directory&amp;gt;/EBF22544.tgz .&lt;br /&gt;
 tar -xf EBF22544.tgz&lt;br /&gt;
 rm EBF22544.tgz&lt;br /&gt;
 cd ebf22544&lt;br /&gt;
Run the installer, install the software in /sybase-ase160.22544. Do not configure any of the products.&lt;br /&gt;
 ./setup.bin&lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -Rf ebf22544&lt;br /&gt;
Type exit to go back to root&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Create the dontainer==&lt;br /&gt;
Note that we use the &amp;quot;sybase/data:v1&amp;quot; image again, as we did when the container for the database files was created.&lt;br /&gt;
 docker create --privileged=true -v /sybase-ase160.22544:/sybase-ase160.22544 --name=ase160.22544 -t -i sybase/data:v1&lt;br /&gt;
&lt;br /&gt;
=Create the container to run Sybase ASE=&lt;br /&gt;
==Setup storage==&lt;br /&gt;
Create a filesystem of 2 Gb to store the errorlog files, startup scripts, etc.&lt;br /&gt;
 lvcreate -L 2G -n ASE1_server docker_vg&lt;br /&gt;
 mkfs /dev/docker_vg/ASE1_server&lt;br /&gt;
 mkdir /ASE1_server&lt;br /&gt;
 mount /dev/docker_vg/ASE1_server /ASE1_server&lt;br /&gt;
 chown sybase:sybase /ASE1_server&lt;br /&gt;
&lt;br /&gt;
==Create a Dockerfile==&lt;br /&gt;
 mkdir -p /var/docker_projects/sybase_server&lt;br /&gt;
 vi /var/docker_projects/sybase_server/Dockerfile&lt;br /&gt;
&lt;br /&gt;
 # Dockerfile for sybase server containers&lt;br /&gt;
 FROM sybase_server/centos:v1&lt;br /&gt;
 MAINTAINER peter@petersap.nl&lt;br /&gt;
 USER sybase&lt;br /&gt;
&lt;br /&gt;
==Build the image==&lt;br /&gt;
 docker build -t=&amp;quot;sybase/server:v1&amp;quot; /var/docker_projects/sybase_server&lt;br /&gt;
&lt;br /&gt;
==Create the container==&lt;br /&gt;
Change the ip-address 10.0.0.29 to match your own environment. The port numbers 5000 can also be changed. Remember to make the same changes later on.&lt;br /&gt;
&lt;br /&gt;
As you can see below, the &amp;quot;docker create&amp;quot; statement references to the containers that have already been created, using the --volumes-from option.&lt;br /&gt;
 docker create --hostname=ASE1_server --publish=10.0.0.29:5000:5000 --privileged=true --volumes-from ASE1_data --volumes-from ase160.22544 -v /ASE1_server:/ASE1_server --name=ASE1_server -t -i sybase/server:v1&lt;br /&gt;
&lt;br /&gt;
=Build the Sybase ASE server=&lt;br /&gt;
At this point we have created the containers for the Sybase software (with the software installed), a container for the database devices and a container to run ASE. Now we will start the container for running ASE and build the Sybase server.&lt;br /&gt;
==Start the container==&lt;br /&gt;
 docker start --attach=true --interactive=true ASE1_server&lt;br /&gt;
&lt;br /&gt;
You should get a bash shell while running the container.&lt;br /&gt;
&lt;br /&gt;
Source in the Sybase environment variables.&lt;br /&gt;
 . /sybase-ase160.22544/SYBASE.sh&lt;br /&gt;
==Create a resource file==&lt;br /&gt;
Create a resource file for building ASE&lt;br /&gt;
&lt;br /&gt;
 cd /ASE1_server&lt;br /&gt;
 vi ASE1.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: sqlsrv&lt;br /&gt;
 sqlsrv.server_name: ASE1&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 sqlsrv.new_config: yes&lt;br /&gt;
 sqlsrv.do_add_server: yes&lt;br /&gt;
 sqlsrv.network_protocol_list: tcp&lt;br /&gt;
 sqlsrv.network_hostname_list: ASE1_server&lt;br /&gt;
 sqlsrv.network_port_list: 5000&lt;br /&gt;
 sqlsrv.application_type: USE_DEFAULT&lt;br /&gt;
 sqlsrv.server_page_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.force_buildmaster: no&lt;br /&gt;
 sqlsrv.master_device_physical_name: /ASE1_data/master.dat&lt;br /&gt;
 sqlsrv.master_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.master_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.errorlog: /ASE1_server/ASE1.errorlog&lt;br /&gt;
 sqlsrv.do_upgrade: no&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_physical_name: /ASE1_data/sybsystemprocs.dat&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemprocs_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_device_physical_name: /ASE1_data/sybsystemdb.dat&lt;br /&gt;
 sqlsrv.sybsystemdb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.tempdb_device_physical_name: /ASE1_data/tempdb.dat&lt;br /&gt;
 sqlsrv.tempdb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.tempdb_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.default_backup_server: SYB_BACKUP&lt;br /&gt;
 #sqlsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
 sqlsrv.do_configure_pci: no&lt;br /&gt;
 sqlsrv.sybpcidb_device_physical_name: PUT_THE_PATH_OF_YOUR_SYBPCIDB_DATA_DEVICE_HERE&lt;br /&gt;
 sqlsrv.sybpcidb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybpcidb_database_size: USE_DEFAULT&lt;br /&gt;
 # If sqlsrv.do_optimize_config is set to yes, both sqlsrv.avail_physical_memory and sqlsrv.avail_cpu_num need to be set.&lt;br /&gt;
 sqlsrv.do_optimize_config: no&lt;br /&gt;
 sqlsrv.avail_physical_memory: PUT_THE_AVAILABLE_PHYSICAL_MEMORY_FOR_ASE_IN_OPTIMIZATION&lt;br /&gt;
 sqlsrv.avail_cpu_num: PUT_THE_AVAILABLE_NUMBER_CPU_FOR_ASE_IN_OPTIMIZATION&lt;br /&gt;
==Build ASE1==&lt;br /&gt;
 srvbuildres -r ASE1.rs&lt;br /&gt;
&lt;br /&gt;
Add an extra entry to the interfaces file to allow ASE to connect to the backupserver that will be running in another container. Remember to make changes to the ip-address and port number where needed.&lt;br /&gt;
&lt;br /&gt;
 vi $SYBASE/interfaces&lt;br /&gt;
&lt;br /&gt;
Add these lines&lt;br /&gt;
&lt;br /&gt;
 SYB_BACKUP_docker&lt;br /&gt;
        query tcp ether 10.0.0.29 5001&lt;br /&gt;
&lt;br /&gt;
Modify the corresponding entry in ASE. Also, configure &amp;quot;console logging&amp;quot; to capture the ASE errorlog inside the log file of the running container.&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 sp_addserver SYB_BACKUP,null,SYB_BACKUP_docker&lt;br /&gt;
 go&lt;br /&gt;
 sp_configure 'enable console logging',1&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
==Create a start script==&lt;br /&gt;
Create a script that will start ASE1 when the docker container is kicked off.&lt;br /&gt;
&lt;br /&gt;
 cd /ASE1_server&lt;br /&gt;
 vi start_ASE1.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Source in the Sybase environment variables&lt;br /&gt;
 &lt;br /&gt;
 . /sybase-ase160.22544/SYBASE.sh&lt;br /&gt;
 &lt;br /&gt;
 # Start ASE1&lt;br /&gt;
 ${SYBASE}/${SYBASE_ASE}/install/RUN_ASE1&lt;br /&gt;
 RET=$?&lt;br /&gt;
 &lt;br /&gt;
 exit ${RET}&lt;br /&gt;
&lt;br /&gt;
 chmod +x start_ASE1.sh&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
You should now be back at the root prompt of your Linux centos/redhat host.&lt;br /&gt;
&lt;br /&gt;
=Create a new container that will kick off ASE1 when the container starts=&lt;br /&gt;
As you have seen above, if you start the container you will get a bash prompt. Now we need to build the container once more with the ENTRYPOINT clause in the Dockerfile so start script is executed where container ASE1_server is started.&lt;br /&gt;
==Create a Dockerfile==&lt;br /&gt;
 mkdir -p /var/docker_projects/ASE1_server&lt;br /&gt;
 cp /var/docker_projects/sybase_server/Dockerfile /var/docker_projects/ASE1_server&lt;br /&gt;
&lt;br /&gt;
Add this line to the new Dockerfile (/var/docker_projects/ASE1_server/Dockerfile)&lt;br /&gt;
&lt;br /&gt;
 ENTRYPOINT /ASE1_server/start_ASE1.sh&lt;br /&gt;
&lt;br /&gt;
==Create image and container==&lt;br /&gt;
&lt;br /&gt;
 docker build -t=&amp;quot;sybase/ase1:v1&amp;quot; /var/docker_projects/ASE1_server&lt;br /&gt;
 docker rm ASE1_server&lt;br /&gt;
 docker create --hostname=ASE1_server --publish=10.0.0.29:5000:5000 --privileged=true --volumes-from ASE1_data --volumes-from ase160.22544 -v /ASE1_server:/ASE1_server --name=ASE1_server -t -i sybase/ase1:v1&lt;br /&gt;
==Start the container to run ASE1==&lt;br /&gt;
 docker start ASE1_server&lt;br /&gt;
Run &amp;quot;docker ps&amp;quot; to see the container running. If it is not running do &amp;quot;docker logs ASE1_server&amp;quot;.&lt;br /&gt;
 docker ps&lt;br /&gt;
&lt;br /&gt;
=Build the Sybase backup server=&lt;br /&gt;
==Create the container==&lt;br /&gt;
&lt;br /&gt;
 docker create --hostname=ASE1_BCK_server --publish=10.0.0.29:5001:5001 --privileged=true --volumes-from ASE1_server --name=ASE1_BCK_server -t -i sybase/server:v1&lt;br /&gt;
&lt;br /&gt;
==Build the Sybase backup server==&lt;br /&gt;
&lt;br /&gt;
 docker start --attach=true --interactive=true ASE1_BCK_server&lt;br /&gt;
&lt;br /&gt;
 . /sybase-ase160.22544/SYBASE.sh&lt;br /&gt;
 cd /ASE1_server&lt;br /&gt;
 vi SYB_BACKUP.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: bsrv&lt;br /&gt;
 bsrv.server_name: SYB_BACKUP&lt;br /&gt;
 bsrv.new_config: yes&lt;br /&gt;
 bsrv.do_add_backup_server: yes&lt;br /&gt;
 bsrv.do_upgrade: no&lt;br /&gt;
 bsrv.network_protocol_list: tcp&lt;br /&gt;
 bsrv.network_hostname_list: ASE1_BCK_server&lt;br /&gt;
 bsrv.network_port_list: 5001&lt;br /&gt;
 bsrv.allow_hosts_list: +&lt;br /&gt;
 bsrv.language: USE_DEFAULT&lt;br /&gt;
 bsrv.character_set: USE_DEFAULT&lt;br /&gt;
 bsrv.tape_config_file: USE_DEFAULT&lt;br /&gt;
 bsrv.errorlog: /ASE1_server/SYB_BACKUP.errorlog&lt;br /&gt;
 sqlsrv.related_sqlsrvr: ASE1&lt;br /&gt;
 sqlsrv.sa_login: sa&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 #bsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
&lt;br /&gt;
 srvbuildres -r SYB_BACKUP.rs&lt;br /&gt;
&lt;br /&gt;
==Create a start script==&lt;br /&gt;
Create a script that will start the backup server when the docker container is started&lt;br /&gt;
&lt;br /&gt;
 vi start_ASE1_BCK.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Source in the Sybase environment variables&lt;br /&gt;
 &lt;br /&gt;
 . /sybase-ase160.22544/SYBASE.sh&lt;br /&gt;
 &lt;br /&gt;
 # Start ASE1_BCK&lt;br /&gt;
 ${SYBASE}/${SYBASE_ASE}/install/RUN_SYB_BACKUP&lt;br /&gt;
 RET=$?&lt;br /&gt;
 &lt;br /&gt;
 exit ${RET}&lt;br /&gt;
&lt;br /&gt;
 chmod +x start_ASE1_BCK.sh&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Create a new container that will kick off ASE1_BCK when the container starts==&lt;br /&gt;
 mkdir -p /var/docker_projects/ASE1_BCK_server&lt;br /&gt;
 cp /var/docker_projects/sybase_server/Dockerfile /var/docker_projects/ASE1_BCK_server&lt;br /&gt;
&lt;br /&gt;
Add this line to the new Dockerfile (/var/docker_projects/ASE1_BCK_server/Dockerfile)&lt;br /&gt;
&lt;br /&gt;
 ENTRYPOINT /ASE1_server/start_ASE1_BCK.sh&lt;br /&gt;
&lt;br /&gt;
Create a new image and a new container, remember to change the ip-address and the port number.&lt;br /&gt;
&lt;br /&gt;
 docker build -t=&amp;quot;sybase/ase1_bck:v1&amp;quot; /var/docker_projects/ASE1_BCK_server&lt;br /&gt;
 docker rm ASE1_BCK_server&lt;br /&gt;
 docker create --hostname=ASE1_BCK_server --publish=10.0.0.29:5001:5001 --privileged=true --volumes-from ASE1_server --name=ASE1_BCK_server -t -i sybase/ase1_bck:v1&lt;br /&gt;
 docker start ASE1_BCK_server&lt;br /&gt;
&lt;br /&gt;
=How to manage the Sybase instances=&lt;br /&gt;
&lt;br /&gt;
Sybase ASE and backup server can be stopped and started with docker commands&lt;br /&gt;
 docker start ASE1_server&lt;br /&gt;
 docker start ASE1_BCK_server&lt;br /&gt;
 docker ps&lt;br /&gt;
 docker stop ASE1_server&lt;br /&gt;
 docker stop ASE1_BCK_server&lt;br /&gt;
&lt;br /&gt;
If you run the &amp;quot;shutdown&amp;quot; command in Sybase ASE the server will stop and the docker container will also end. Same for the backup server if you run &amp;quot;shutdown SYB_BACKUP&amp;quot; in ASE.&lt;br /&gt;
&lt;br /&gt;
If for some reason a server will not start (or crashes) you can examine the console log file&lt;br /&gt;
 docker logs ASE1_server&lt;br /&gt;
&lt;br /&gt;
All the Sybase files are also accesable on the Linux (centos/Redhat) host so if a container will not start anymore you can still make changes to the configuration.&lt;br /&gt;
&lt;br /&gt;
=Wrapping up=&lt;br /&gt;
&lt;br /&gt;
==add to /etc/fstab==&lt;br /&gt;
Add the filesystems to /etc/fstab&lt;br /&gt;
 /dev/docker_vg/sybase-ase160.22544 /sybase-ase160.22544 ext2 defaults 0 0&lt;br /&gt;
 /dev/docker_vg/ASE1_data /ASE1_data ext2 defaults 0 0&lt;br /&gt;
 /dev/docker_vg/ASE1_server /ASE1_server ext2 defaults 0 0&lt;br /&gt;
&lt;br /&gt;
[[category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.7&amp;diff=1975</id>
		<title>Installation guidelines ASE 15.7</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.7&amp;diff=1975"/>
				<updated>2015-02-20T12:31:59Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to install and configure a Sybase ASE server version 15.7. You will also learn how to connect to the server, stop and restart it.&lt;br /&gt;
&lt;br /&gt;
==Get the software==&lt;br /&gt;
First download ASE.&lt;br /&gt;
&lt;br /&gt;
For a licensed version you need to go here: http://sybase.subscribenet.com (account required) or to the eShop at sybase.com: http://eshop.sybase.com/eshop/buy?id=19517&lt;br /&gt;
&lt;br /&gt;
To get a free download you can go to this page http://www.sybase.com/ase_1500devel. You can download ASE 15.7 for various operating systems and chipsets. When you install ASE you can choose to run without a license (limited features) or install a licenced version and buy a license from Sybase.&lt;br /&gt;
&lt;br /&gt;
Downloads are also available at the Sybase download center at http://downloads.sybase.com/swd/base.do?client=support. Once registered you can download the latest EBF (patch) for the desired platform. An EBF can also be used for a full installation. &lt;br /&gt;
&lt;br /&gt;
==Prepare the Operating System==&lt;br /&gt;
Make sure that the filesystem for the Sybase software is big enough. A full installation needs approx. 1.5 Gb so 4 Gb should give you enough room to handle upgrades too. In this case we install the software in /opt/sybase/ase157. Database files will be stored /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Become root and add a group &amp;quot;sybase&amp;quot; and a user &amp;quot;sybase&amp;quot; to the system. Also create the needed directories.&lt;br /&gt;
Strictly spoken, the usage of the username and groupname called &amp;quot;sybase&amp;quot; is not needed, any username is fine.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/sybase&lt;br /&gt;
 mkdir -p /var/sybase&lt;br /&gt;
 groupadd sybase&lt;br /&gt;
 useradd -g sybase -d /opt/sybase sybase&lt;br /&gt;
 passwd sybase&lt;br /&gt;
 chown sybase:sybase /opt/sybase&lt;br /&gt;
 chown sybase:sybase /var/sybase&lt;br /&gt;
&lt;br /&gt;
Enable the operating system to allow more than the default value for shared memory.&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
====Shared Memory====&lt;br /&gt;
To see the current value of shared memory:&lt;br /&gt;
 sysctl kernel.shmmax&lt;br /&gt;
&lt;br /&gt;
To configure a shared memory segment of 4 Gb&lt;br /&gt;
 sysctl -w kernel.shmmax=4294967296&lt;br /&gt;
&lt;br /&gt;
Then add kernel.shmmax=4294967296 to /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
See also [[Linux configuration settings for Sybase ASE]], but these settings can be done when the installation and configuration has been completed.&lt;br /&gt;
&lt;br /&gt;
====32 bit libraries====&lt;br /&gt;
When installing Sybase ASE 64 bit version on Linux, you need to install the 32 bit shared libraries as well. This will prevent problems when running isql or bcp.&lt;br /&gt;
&lt;br /&gt;
=====Debian based systems=====&lt;br /&gt;
 apt-get install ia32-libs&lt;br /&gt;
=====RedHat based systems=====&lt;br /&gt;
 yum install glibc.i686&lt;br /&gt;
&lt;br /&gt;
===Solaris (pre version 10)===&lt;br /&gt;
/etc/system&lt;br /&gt;
 set shmsys:shminfo_shmmax = 4294967296&lt;br /&gt;
&lt;br /&gt;
===Solaris (system 10)===&lt;br /&gt;
/etc/project&lt;br /&gt;
 projadd -c &amp;quot;sybase&amp;quot; 'user.sybase'&lt;br /&gt;
 projmod -s -K &amp;quot;project.max-shm-memory={privileged,4GB,deny}&amp;quot; 'user.sybase'&lt;br /&gt;
&lt;br /&gt;
==Raw devices or filesystem files==&lt;br /&gt;
Sybase recommends to store all database files on raw devices except for temporary databases like tempdb. Some Unix adminstrators do not like raw devices and then you need to put everything on filesystems. Also, consult your storage administrator when in doubt.&lt;br /&gt;
&lt;br /&gt;
===Raw devices===&lt;br /&gt;
When you use raw devices, create the following:&lt;br /&gt;
* master (100 Mb)&lt;br /&gt;
* sybsystemprocs (172M)&lt;br /&gt;
* sybsystemdb (6M)&lt;br /&gt;
* data01 (for instance 10G but for testing purposes 100Mb is also good. You can always add more)&lt;br /&gt;
* log01(for instance 2G but for testing purposes 20Mb is also good. You can always add more).&lt;br /&gt;
Do not forget to chown the raw devices to the sybase user. Check if this setting is persistent after a reboot.&lt;br /&gt;
&lt;br /&gt;
===Temporory databases===&lt;br /&gt;
Files for temporary databases (like tempdb) should be stored on the filesystem. Allow at least  100Mb but, depending on your application, several Gb's or much more is not uncommon.&lt;br /&gt;
&lt;br /&gt;
==Determine your license policy==&lt;br /&gt;
Since ASE 15.0 you cannot run a production server without a license file. License files can reside on the network or on the local system. Think about the license policy that suits you best. Most sites choose for license files on each Unix server.&lt;br /&gt;
&lt;br /&gt;
When there is no valid license, ASE will run with a grace time of 30 days. After that it will shutdown and it cannot be rebooted anymore until you install a license, or change the license settings revert to the Express Edition.&lt;br /&gt;
&lt;br /&gt;
==Installation of the software==&lt;br /&gt;
Now, switch to the newly created user:&lt;br /&gt;
 su - sybase&lt;br /&gt;
You should now be in the directory /opt/sybase. Make a work directory and put the downloaded Sybase software in it.&lt;br /&gt;
 mkdir install&lt;br /&gt;
 cd install&lt;br /&gt;
 &amp;lt;put the software in this directory&amp;gt;&lt;br /&gt;
 tar -xf &amp;lt;software-distro&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the installation (when using an EBF download as installation file you may need to go into a subdirectory)&lt;br /&gt;
&lt;br /&gt;
 ./setup.bin&lt;br /&gt;
&lt;br /&gt;
When you get a message like &amp;quot;A suitable JVM could not be found&amp;quot; or “exec: 2470: /tmp/install.dir.1392/Linux/resource/jre/bin/java: not found” check the following document for a solution: [[Ubuntu 64 bit ASE installation]]&lt;br /&gt;
&lt;br /&gt;
Use /opt/sybase/ase157 as the destination directory, do a full installation. At the list of possible servers to configure, deselect all options. We will do a manual configuration.&lt;br /&gt;
&lt;br /&gt;
When the installation has finished successful you can safely remove the work directory and the installation package.&lt;br /&gt;
&lt;br /&gt;
==Setup your environment==&lt;br /&gt;
In /opt/sybase/ase157 you will find files like SYBASE.csh, SYBASE.sh and SYBASE.env. Depending on the type of shell you use you need to source in one of these. For instance, when your default shell is bash you should do this:&lt;br /&gt;
&lt;br /&gt;
 . /opt/sybase/ase157/SYBASE.sh&lt;br /&gt;
&lt;br /&gt;
By doing:&lt;br /&gt;
&lt;br /&gt;
 echo $SYBASE&lt;br /&gt;
&lt;br /&gt;
it should return /opt/sybase/ase157.&lt;br /&gt;
Is is fairly common to activate the SYBASE.sh script (or similar one) from your login script. &lt;br /&gt;
&lt;br /&gt;
When you have generated a licence file through http://sybase.subscribenet.com install it in the directory $SYBASE/SYSAM-2_0/licenses&lt;br /&gt;
&lt;br /&gt;
==Create the ASE server==&lt;br /&gt;
Most installations, especially for development purposes, run multiple ASE's and backup servers from a single Sybase software installation. For a good overview it is quite handy to store files that are specific for a server in it's own directory. In this example we create two servers: an ASE called ASE1 and a backupserver called SYB_BACKUP. Configuration files and the errorlog are stored in the admin directory, database files are stored in /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Create the directories for these servers:&lt;br /&gt;
 cd /opt/sybase&lt;br /&gt;
 mkdir admin&lt;br /&gt;
 mkdir admin/ASE1&lt;br /&gt;
 mkdir admin/SYB_BACKUP&lt;br /&gt;
 mkdir /var/sybase/ASE1&lt;br /&gt;
&lt;br /&gt;
When you choose to use raw device it's quite handy when you create symbolic links from /var/sybase/ASE1 to those devices. For example:&lt;br /&gt;
 ln -s /dev/hda4 /var/sybase/ASE1/master.dat&lt;br /&gt;
Do this also for the other raw devices that you have made.&lt;br /&gt;
&lt;br /&gt;
Now go to the &amp;quot;/opt/sybase/admin/ASE1&amp;quot; directory and create a resource file. Use the following template as an example, call it ASE1.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.adaptive_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: sqlsrv&lt;br /&gt;
 sqlsrv.server_name: ASE1&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 sqlsrv.new_config: yes&lt;br /&gt;
 sqlsrv.do_add_server: yes&lt;br /&gt;
 sqlsrv.network_protocol_list: tcp&lt;br /&gt;
 sqlsrv.network_hostname_list: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 sqlsrv.network_port_list: 4000&lt;br /&gt;
 sqlsrv.application_type: MIXED&lt;br /&gt;
 sqlsrv.server_page_size: 4096&lt;br /&gt;
 sqlsrv.force_buildmaster: no&lt;br /&gt;
 sqlsrv.master_device_physical_name: /var/sybase/ASE1/master.dev&lt;br /&gt;
 sqlsrv.master_device_size: 100&lt;br /&gt;
 sqlsrv.master_database_size: 60&lt;br /&gt;
 sqlsrv.errorlog: /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 sqlsrv.do_upgrade: no&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_physical_name: /var/sybase/ASE1/sybsystemprocs.dev&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemprocs_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_device_physical_name: /var/sybase/ASE1/sybsystemdb.dev&lt;br /&gt;
 sqlsrv.sybsystemdb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.tempdb_device_physical_name: /var/sybase/ASE1/tempdb.dev&lt;br /&gt;
 sqlsrv.tempdb_device_size: 100&lt;br /&gt;
 sqlsrv.tempdb_database_size: 100&lt;br /&gt;
 sqlsrv.default_backup_server: SYB_BACKUP&lt;br /&gt;
 #sqlsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
 sqlsrv.do_configure_pci: no&lt;br /&gt;
 sqlsrv.sybpcidb_device_physical_name: PUT_THE_PATH_OF_YOUR_SYBPCIDB_DATA_DEVICE_HERE&lt;br /&gt;
 sqlsrv.sybpcidb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybpcidb_database_size: USE_DEFAULT&lt;br /&gt;
 # If sqlsrv.do_optimize_config is set to yes, both sqlsrv.avail_physical_memory and sqlsrv.avail_cpu_num need to be set.&lt;br /&gt;
 sqlsrv.do_optimize_config: yes&lt;br /&gt;
 sqlsrv.avail_physical_memory: 256&lt;br /&gt;
 sqlsrv.avail_cpu_num: 1&lt;br /&gt;
&lt;br /&gt;
This resource file will a create a Sybase server with the following characteristics:&lt;br /&gt;
* The name of the server will be ASE1, can be changed later with the sp_addserver stored procedure.&lt;br /&gt;
* The server will have a listener on the ip-address as indicated with &amp;lt;hostname&amp;gt; and port 4000. This can be changed later in the interfaces file located at $SYBASE/interfaces.&lt;br /&gt;
* Application type is mixed, so you expect both oltp and dss type of queries. This can be changed later by modification of the “optimization goal” setting with sp_configure).&lt;br /&gt;
* Server page size will be 4 Kb. The default is 2 Kb but with today’s hardware this will give sub-optimal performance. Once the server has been created it cannot be changed, a complete server rebuild is needed then.&lt;br /&gt;
* The master device will be 100 Mb, the size of the master database will be 60 Mb. The master devices will contain the master database, the master database contains important meta-data about the server. It’s very unusual to increase the size of the master device or the master database.&lt;br /&gt;
* The location of the errorlog is /opt/sybase/admin/ASE1/errorlog, can be changed later in the configuration file.&lt;br /&gt;
* A device of 172 Mb will be created for the sybsystemprocs database, also with a size of 172 Mb. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A device of 6 Mb will be created for the sybsystemdb database. The size of the database will actually be 12Mb as a small portion will also reside on the master device. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A temporary database 'tempdb' will be created on a device with a size of 100 Mb, the database will also be 100 Mb. In fact, it will be a bit larger since also a small portion will reside on the master device. Again, the device and the tempdb database can be increased in size. You can also create multiple temporary databases for improved concurrency.&lt;br /&gt;
* We will build a backup server called SYB_BACKUP. The name can be changed later with sp_addserver.&lt;br /&gt;
* We will not use a PCI (Pluggable Component Interface) database. This database is mainly used for Java in the server.&lt;br /&gt;
* Use the optimize configuration feature and tune for 256 Mb of memory and 1 cpu.&lt;br /&gt;
&lt;br /&gt;
Now build the server with the command:&lt;br /&gt;
 srvbuildres -r ASE1.rs&lt;br /&gt;
&lt;br /&gt;
When the srvbuildres command fails with:&lt;br /&gt;
 Task failed&lt;br /&gt;
 Unable to boot server 'ASE1'.  &lt;br /&gt;
 Server 'ASE1' was not created.&lt;br /&gt;
then go to this page for tips how to solve this: [[srvbuildres task failed]].&lt;br /&gt;
&lt;br /&gt;
After a successful creation you can connect to the server using the command line tool isql. The login “sa&amp;quot; has been created, with the password that was specified in ASE.rs file. At the prompt of isql you can type a command or execute a stored procedure. Type exit to exit.&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 sp_helpdb&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Basic ASE configuration==&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration files to the admin directory. First shutdown ASE&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 shutdown&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
 cd $SYBASE/$SYBASE_ASE&lt;br /&gt;
 mv ASE1.cfg /opt/sybase/admin/ASE1&lt;br /&gt;
 rm ASE1.*&lt;br /&gt;
 cd install&lt;br /&gt;
&lt;br /&gt;
Modify RUN_ASE1 and make the following changes:&lt;br /&gt;
* Make the -s flag the first option. This has the advantage that a listing of running processes on the system will show the name of the Sybase server.&lt;br /&gt;
* Change the location of the configuration files, as specified with the -c flag, to the admin directory&lt;br /&gt;
Each line must end with a backslash.&lt;br /&gt;
Example RUN_ASE1 file:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # ASE page size (KB):   4096&lt;br /&gt;
 # Master device path:   /var/sybase/ASE1/master.dev&lt;br /&gt;
 # Error log path:       /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 # Configuration file path:      /opt/sybase/ase157/ASE-15_0/ASE1.cfg&lt;br /&gt;
 # Directory for shared memory files:    /opt/sybase/ase157/ASE-15_0&lt;br /&gt;
 # Adaptive Server name: ASE1&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase157/ASE-15_0/bin/dataserver \&lt;br /&gt;
 -sASE1 \&lt;br /&gt;
 -d/var/sybase/ASE1/master.dev \&lt;br /&gt;
 -e/opt/sybase/admin/ASE1/errorlog \&lt;br /&gt;
 -c/opt/sybase/admin/ASE1/ASE1.cfg \&lt;br /&gt;
 -M/opt/sybase/ase157/ASE-15_0 \&lt;br /&gt;
&lt;br /&gt;
Now restart the Sybase server&lt;br /&gt;
 ./startserver -f ./RUN_ASE1&lt;br /&gt;
&lt;br /&gt;
===Load instmsg.ebf file===&lt;br /&gt;
The instmsgs.ebf file contains the latest update for Sybase error messages. You can load it with isql.&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1 &amp;lt; $SYBASE/$SYBASE_ASE/scripts/instmsgs.ebf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Create the backup server==&lt;br /&gt;
Create the backup server using the following steps.&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;quot;/opt/sybase/admin/SYB_BACKUP&amp;quot; directory and create a resource file. Use the following template as an example, call it SYB_BACKUP.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.backup_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: bsrv&lt;br /&gt;
 bsrv.server_name: SYB_BACKUP&lt;br /&gt;
 bsrv.new_config: yes&lt;br /&gt;
 bsrv.do_add_backup_server: yes&lt;br /&gt;
 bsrv.do_upgrade: no&lt;br /&gt;
 bsrv.network_protocol_list: tcp&lt;br /&gt;
 bsrv.network_hostname_list: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 bsrv.network_port_list: 4001&lt;br /&gt;
 bsrv.language: USE_DEFAULT&lt;br /&gt;
 bsrv.character_set: USE_DEFAULT&lt;br /&gt;
 bsrv.tape_config_file: USE_DEFAULT&lt;br /&gt;
 bsrv.errorlog: /opt/sybase/admin/SYB_BACKUP/SYB_BACKUP.log&lt;br /&gt;
 sqlsrv.related_sqlsrvr: ASE1&lt;br /&gt;
 sqlsrv.sa_login: sa&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 #bsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
&lt;br /&gt;
Build the server with the command:&lt;br /&gt;
 srvbuildres -r SYB_BACKUP.rs&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration file to the admin directory. First shutdown the backup server:&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 shutdown SYB_BACKUP&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Modify the file RUN_SYB_BACKUP, located at $SYBASE/$SYBASE_ASE/install. Move the line with the -s flag to the top. Sample RUN_SYB_BACKUP:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # Error log path:       /opt/sybase/ase157/ASE-15_0/install/SYB_BACKUP.log&lt;br /&gt;
 # Maximum number of network connections:        25&lt;br /&gt;
 # Maximum number of server connections: 20&lt;br /&gt;
 # Multibuf executable path:     /opt/sybase/ase157/ASE-15_0/bin/sybmultbuf&lt;br /&gt;
 # Backup Server name:   SYB_BACKUP&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase157/ASE-15_0/bin/backupserver \&lt;br /&gt;
 -SSYB_BACKUP \&lt;br /&gt;
 -e/opt/sybase/admin/SYB_BACKUP/SYB_BACKUP.log \&lt;br /&gt;
 -N25 \&lt;br /&gt;
 -C20 \&lt;br /&gt;
 -M/opt/sybase/ase157/ASE-15_0/bin/sybmultbuf \&lt;br /&gt;
 &lt;br /&gt;
Restart the backupserver&lt;br /&gt;
 startserver -f $SYBASE/$SYBASE_ASE/install/RUN_SYB_BACKUP&lt;br /&gt;
&lt;br /&gt;
==Create a user database==&lt;br /&gt;
 disk init name = data01,size=&amp;quot;1G&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/data01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 disk init name = log01,size=&amp;quot;100M&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/log01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 create database my_database on data01=&amp;quot;1G&amp;quot; log on log01 = &amp;quot;100M&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
==All done==&lt;br /&gt;
Happy Sybase-ing with your new server!!&lt;br /&gt;
&lt;br /&gt;
Further reading:&lt;br /&gt;
&lt;br /&gt;
Installation guide for Linux http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc30119.1570/doc/html/title.html&lt;br /&gt;
&lt;br /&gt;
Sybase System administration http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc31654.1570/html/sag1/title.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:ASE]]&lt;br /&gt;
[[category:Installation Guidelines]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_IQ_15.0_and_15.1&amp;diff=1974</id>
		<title>Installation guidelines IQ 15.0 and 15.1</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_IQ_15.0_and_15.1&amp;diff=1974"/>
				<updated>2013-11-08T11:46:14Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to install and configure a Sybase IQ server, version 15.0 and 15.1&lt;br /&gt;
&lt;br /&gt;
==Get the software==&lt;br /&gt;
First download IQ.&lt;br /&gt;
&lt;br /&gt;
For a licensed version you need to go http://sybase.subscribenet.com (account required) or to the Sybase eShop http://eshop.sybase.com/eshop/buy?id=48151&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can download an EBF for Sybase IQ 15 at http://downloads.sybase.com (registration required). Then click on “Sybase IQ” and download an EBF/Patch, for instance EBF16926. With an EBF/Patch you can install a full version as well.&lt;br /&gt;
&lt;br /&gt;
==Prepare the Operating System==&lt;br /&gt;
Make sure that the filesystem for the Sybase software is big enough. A full installation needs approx. 850 Mb so 2 Gb should give you enough room to handle upgrades too. In this case we install the software in /opt/sybase/iq150. Database files will be stored on raw devices and in /var/sybase. &lt;br /&gt;
&lt;br /&gt;
Become root and add a group &amp;quot;sybase&amp;quot; and a user &amp;quot;sybase&amp;quot; to the system. Also create the needed directories.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/sybase&lt;br /&gt;
 mkdir -p /var/sybase&lt;br /&gt;
 groupadd sybase&lt;br /&gt;
 useradd -g sybase -d /opt/sybase sybase&lt;br /&gt;
 chown sybase:sybase /opt/sybase&lt;br /&gt;
 chown sybase:sybase /var/sybase&lt;br /&gt;
&lt;br /&gt;
Check that your operating system has the required patches and configuration settings. Look in the installation documentation at http://infocenter.sybase.com/help/topic/com.sybase.help.infocenter.iq.15.0/title.htm for detailed instructions. When you run the IQ installation, it will also check for some required packages.&lt;br /&gt;
&lt;br /&gt;
==Prepare the Installation==&lt;br /&gt;
Now, switch to the newly created user: &lt;br /&gt;
 su - sybase&lt;br /&gt;
You should now be in the directory /opt/sybase. Make a work directory and put the downloaded Sybase software in it. &lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir iq150&lt;br /&gt;
 cd work&lt;br /&gt;
 &amp;lt;put the software in this directory&amp;gt;&lt;br /&gt;
 tar -xf &amp;lt;software-distro&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
Go into the directory with the installed software. Run the installer (for instance ./setupLinuxAMD64).&lt;br /&gt;
 ./setupLinuxAMD64&lt;br /&gt;
Answer the questions and install into /opt/sybase/iq150. You can select what license type you need, Licensed or Evaluation. For the licenced version you need an account at http://sybase.subscribenet.com. The evaluation license allows you to run IQ with all its features for 30 days.&lt;br /&gt;
&lt;br /&gt;
To use the installar on Unix you may need to set the DISPLAY variable.&lt;br /&gt;
&lt;br /&gt;
Once the installation is complete you can remove the work directory and its content.&lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -Rf work&lt;br /&gt;
==Setup your environment==&lt;br /&gt;
In /opt/sybase/iq150/IQ-15_0 you will find a few files, like IQ-15_0.csh and IQ-15_0.sh. Depending on the type of shell you use, you need to source in one of these. For instance, when your default shell is bash you should do this: &lt;br /&gt;
 . /opt/sybase/iq150/IQ-15_0/IQ-15_0.sh&lt;br /&gt;
Is is fairly common to activate such a script from your login script.&lt;br /&gt;
==Create raw devices==&lt;br /&gt;
For performance reasons you should use raw devices for the IQ Main and Temporary store. For testing purposes use 2Gb for the Main store and 1 Gb for the Temporary store. You can always add more when needed. Do not forget to chown the raw devices to the sybase user. Check if this setting is persistent after a reboot. Note: contrary to Sybase ASE behaviour, Sybase IQ will only accept raw devices and not &amp;quot;block special&amp;quot;. Check the filetype with the &amp;quot;file&amp;quot; command. When needed, bind a block special device to a raw device with the &amp;quot;raw&amp;quot; command. &lt;br /&gt;
==Start the IQ server (utility database only)==&lt;br /&gt;
Before you can create a database the IQ server must be started with only the utility database active. Use  the start_iq  command, but specify the name of server as well using the -n flag. In this example the Sybase recommendation is followed to distinguish the name of the IQ server from the name of the database. For the IQ server IQ2_srv is used, and for the database IQ2_db.&lt;br /&gt;
 start_iq -n IQ2_srv&lt;br /&gt;
==Create a database==&lt;br /&gt;
Create a directory where server and database specific files will be stored &lt;br /&gt;
 mkdir /var/sybase/IQ2_srv&lt;br /&gt;
&lt;br /&gt;
Create a connection to the IQ server with dbisql (Windows look and feel) or dbisqlc (very basic gui). Specify DBA as the user ID, use “sql” (lower case) as the password and “utility_db” as the name of the database. Once connected you can create a database. The create database command has several option that can have a big impact on performance. See notes below or study the Sybase documentation to get the best result.&lt;br /&gt;
Example:&lt;br /&gt;
 create database '/var/sybase/IQ2_srv/IQ2_db.db'&lt;br /&gt;
 transaction log on '/var/sybase/IQ2_srv/IQ2_db.log'&lt;br /&gt;
 mirror '/var/sybase/IQ2_srv/IQ2_db_mirror.log'&lt;br /&gt;
 iq path '/var/sybase/IQ2_srv/IQ2_db_01.iq'&lt;br /&gt;
 iq size 2000&lt;br /&gt;
 message path '/var/sybase/IQ2_srv/IQ2_db.iqmsg'&lt;br /&gt;
 temporary path '/var/sybase/IQ2_srv/IQ2_db_01.iqtmp'&lt;br /&gt;
 temporary size 1000&lt;br /&gt;
When the database has been successfully created, exit from dbisql or dbisqlc. &lt;br /&gt;
Then shutdown the IQ server. &lt;br /&gt;
 stop_iq&lt;br /&gt;
===Notes for the &amp;quot;create database&amp;quot; command.===&lt;br /&gt;
* Sybase recommends to create the IQ_SYSTEM_MAIN with at least 100Gb for any serious production databases. For development servers you can use approx. 5 % of total expected IQ storage. The size can be specified with the &amp;quot;iq size&amp;quot; clause.&lt;br /&gt;
* The default page size for IQ files (.iq and .iqtmp files) is 128 Kb. When a single table in the database is expected to grow above 8 Tb or will have more than 4 billion rows choose the next bigger IQ page size of 256Kb.&lt;br /&gt;
* When creating a database or a dbspace you can ommit the fully specified path to the filename. When you use filenames relative to the IQ server it is more easy to move a database to another server.&lt;br /&gt;
* When the iq stores are created on raw devices and those raw devices are located on a disk array (as will be the case most of the time) then choose the next greater block size than the default value. When the IQ stores are on filesystem check the I/O size of the filesystem and choose that block size. A non-default block size can improve performance at the expense of disk space. The block size can be specified with the &amp;quot;block size&amp;quot; clause.&lt;br /&gt;
* When using raw devices do not use the clause &amp;quot;iq size&amp;quot; and/or &amp;quot;temporary size&amp;quot;. IQ will determine the size of the raw device and use it completely.&lt;br /&gt;
* When the database is created and you know that it will grow after some time, add the “iq reserve” clause to the “create database” command. This will create a contiguous free list that is already large enough for the future size of the database and so prevents a fragmented free list. Do the same when the user dbspace is created (see below). Then add the “reserve” clause. Not needed for the temporary store.&lt;br /&gt;
* Be carefull when using a non-default page size for the catalog store (.db file). It can lead to inefficient memory use.&lt;br /&gt;
&lt;br /&gt;
==Create a configuration file==&lt;br /&gt;
In the directory /var/sybase/IQ2_srv create a configuration file called params.cfg with at least the following content &lt;br /&gt;
 -n IQ2_srv&lt;br /&gt;
 -iqmc 60&lt;br /&gt;
 -iqtc 140&lt;br /&gt;
 -x tcpip{port=4000}&lt;br /&gt;
This configuration file sets the name of the server, the main cache size to 60Mb, the temp cache size to 140Mb and a port number for TCP/IP traffic. Specify as much memory as you can but leave a safe margin for other processes. Sybase recommends to keep the ration between main and temp cache 3:7. &lt;br /&gt;
Then start the database &lt;br /&gt;
 start_iq @/var/sybase/IQ2_srv/params.cfg /var/sybase/IQ2_srv/IQ2_db.db&lt;br /&gt;
&lt;br /&gt;
==Create a user dbspace==&lt;br /&gt;
Create a user space where all tables for the application should be created. Example:&lt;br /&gt;
&lt;br /&gt;
 create dbspace user_main&lt;br /&gt;
 using file user_main_1 '/var/sybase/IQ2_srv/user_main_1.iq'&lt;br /&gt;
 size 10000 MB&lt;br /&gt;
 iq store;&lt;br /&gt;
&lt;br /&gt;
 set option public.default_dbspace = ‘user_main‘;&lt;br /&gt;
 grant create on user_main to public;&lt;br /&gt;
 revoke create on iq_system_main from public;&lt;br /&gt;
&lt;br /&gt;
When the user db space becomes to small, additional space can be added by running this:&lt;br /&gt;
 alter dbspace user_main&lt;br /&gt;
 add file user_main_x '/var/sybase/IQ2_srv/user_main_2.iq'&lt;br /&gt;
 size 10000 MB iq store&lt;br /&gt;
&lt;br /&gt;
Try to keep all the files in a user dbspace the same size to achieve a situation that all files are more or less filled at the same capacity. Also, use a reseonable set of files to achive parallellism.&lt;br /&gt;
&lt;br /&gt;
==(Optional) Configure striping==&lt;br /&gt;
For performance reasons it is best to have IQ handle the striped writes rather than a SAN storage system. Doing striped writes from both sides (SAN and IQ) may be counter productive. When you want to do striping within IQ you should prepare the disk layout for it.&lt;br /&gt;
&lt;br /&gt;
IQ Stripe sizes as suggested below are based on the expected write activity to the various IQ stores.&lt;br /&gt;
&lt;br /&gt;
IQ_SYSTEM_MAIN - 32 Kb&lt;br /&gt;
&lt;br /&gt;
IQ_SYSTEM_TEMP - 64 Kb&lt;br /&gt;
&lt;br /&gt;
User defined dbspace - 128 Kb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When the main store has been created striping is on by default but the stripesize is 1 Kb. The IQ main store will not store any user data but only IQ internal information and therefore the amount of data to be written will be far less when compared to iq system temp or a user dbspace.&lt;br /&gt;
&lt;br /&gt;
 alter dbspace IQ_SYSTEM_MAIN&lt;br /&gt;
 striping on&lt;br /&gt;
 stripesizekb 32&lt;br /&gt;
&lt;br /&gt;
This setting may not have any effect when the IQ store consists of 1 file. Hoewever, when an additional file is added to the main store striping will kick in.&lt;br /&gt;
&lt;br /&gt;
 alter dbspace IQ_SYSTEM_TEMP&lt;br /&gt;
 striping on&lt;br /&gt;
 stripesizekb 64&lt;br /&gt;
&lt;br /&gt;
Do the same for the user_main db space.&lt;br /&gt;
&lt;br /&gt;
 alter dbspace user_main&lt;br /&gt;
 striping on&lt;br /&gt;
 stripesizekb 128&lt;br /&gt;
&lt;br /&gt;
==Set database options==&lt;br /&gt;
 set option PUBLIC.APPEND_LOAD=’ON’;&lt;br /&gt;
 set option PUBLIC.FORCE_NO_SCROLL_CURSORS = 'ON';&lt;br /&gt;
 set option PUBLIC.QUERY_PLAN = 'OFF';&lt;br /&gt;
 set option PUBLIC.QUERY_DETAIL = 'OFF';&lt;br /&gt;
 set option PUBLIC.QUERY_TIMING = 'OFF';&lt;br /&gt;
 set option PUBLIC.QUERY_TEMP_SPACE_LIMIT=5000; -- Value in Mb, recommended value is 1/4 of the total size of the temporary store.&lt;br /&gt;
 set option PUBLIC.MAIN_RESERVED_DBSPACE_MB=500; -- Recommended value is 20% of the size of IQ_SYSTEM_MAIN.&lt;br /&gt;
 set option PUBLIC.TEMP_RESERVED_DBSPACE_MB=500;&lt;br /&gt;
 set option PUBLIC.LOAD_MEMORY_MB=100;&lt;br /&gt;
&lt;br /&gt;
When the IQ stores are on filesystem (not on raw devices) you can set the option OS_FILE_CACHE_BUFFERING to off.&lt;br /&gt;
Example (IQ reboot required to activate):&lt;br /&gt;
&lt;br /&gt;
 set option PUBLIC.OS_FILE_CACHE_BUFFERING = 'OFF';&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* QUERY_TEMP_SPACE_LIMIT sets the amount of temporary store space that an individual query is allowed to use in the temporary store, for storing intermediate results and for sort operations. This value can be set higher than 5000 if enough temporary store is available. It is not recommended to set this value to 0 (= “unlimited”) because in that case carthesian products can fill the temporary store completely, which will prevent other queries to run.&lt;br /&gt;
* In IQ 15 a new option MAX_TEMP_SPACE_PER_CONNECTION has been introduced. When a single connection starts up more queries at the same time use this option.&lt;br /&gt;
&lt;br /&gt;
==How to extend the size of the temporary store==&lt;br /&gt;
Since IQ 15 there can be only 1 dbspace for the temporary store. To increase the size of the IQ temporary store you need to alter the dbspace and add a file to it. Example:&lt;br /&gt;
 alter dbspace IQ_SYSTEM_TEMP&lt;br /&gt;
 add file temp_02 '/var/sybase/IQ2_srv/IQ2_db_02.iqtmp'&lt;br /&gt;
 size 2000 MB ;&lt;br /&gt;
&lt;br /&gt;
Try to keep all the files the same size to achieve a situation that all files are more or less filled at the same capacity. Also, use a reseonable set of files to achive parallellism.&lt;br /&gt;
&lt;br /&gt;
Note: If raw volumes are used for Main/Temporary store, then specify the full paths to the raw volumes and omit the IQ SIZE and TEMPORARY SIZE clauses. The full raw volumes will automatically be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
*In this example the mirror of the IQ transaction log is on the same physical device at the transaction log itself. Do not create such a situation on a production system. &lt;br /&gt;
*The Sybase IQ logfiles are by default created in the directory $IQDIR15/logfiles. Since the logfiles can become very big, its best to set the variable IQLOGDIR15 to /var/sybase/IQ2_srv before starting the IQ server. &lt;br /&gt;
[[category:IQ]]&lt;br /&gt;
[[category:Installation Guidelines]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_IQ_12.6_and_12.7&amp;diff=1973</id>
		<title>Installation guidelines IQ 12.6 and 12.7</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_IQ_12.6_and_12.7&amp;diff=1973"/>
				<updated>2013-11-08T11:45:49Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to install and configure a Sybase IQ server.&lt;br /&gt;
&lt;br /&gt;
==Get the software==&lt;br /&gt;
First download IQ.&lt;br /&gt;
&lt;br /&gt;
For a licensed version you need to go http://sybase.subscribenet.com (account required) or to the Sybase eShop  http://eshop.sybase.com/eshop/buy?id=48151&lt;br /&gt;
&lt;br /&gt;
Members of ISUG are entitled to a free download of a developers edition of Sybase IQ 12.6 and 12.7.&lt;br /&gt;
&lt;br /&gt;
==Prepare the Operating System==&lt;br /&gt;
Make sure that the filesystem for the Sybase software is big enough. A full installation needs approx. 500 Mb so 1.2 Gb should give you enough room to handle upgrades too. In this case we install the software in /opt/sybase/iq127. Database files will be stored on raw devices and in /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Become root and add a group &amp;quot;sybase&amp;quot; and a user &amp;quot;sybase&amp;quot; to the system. Also create the needed directories.&lt;br /&gt;
 mkdir -p /opt/sybase&lt;br /&gt;
 mkdir -p /var/sybase&lt;br /&gt;
 groupadd sybase&lt;br /&gt;
 useradd -g sybase -d /opt/sybase sybase&lt;br /&gt;
 chown sybase:sybase /opt/sybase&lt;br /&gt;
 chown sybase:sybase /var/sybase&lt;br /&gt;
The shell script to start Sybase iq (start_asiq) also needs &amp;quot;csh&amp;quot; so make sure it is installed.&lt;br /&gt;
When you install IQ on a Debian type system (like Ubuntu) you need to create a /usr/tmp directory. When the directory does not exists, or is not writeble by the IQ installation software, the installation will fail.&lt;br /&gt;
&lt;br /&gt;
==Prepare the Installation==&lt;br /&gt;
Now, switch to the newly created user:&lt;br /&gt;
 su - sybase&lt;br /&gt;
You should now be in the directory /opt/sybase. Make a work directory and put the downloaded Sybase software in it.&lt;br /&gt;
 mkdir work&lt;br /&gt;
 mkdir iq127&lt;br /&gt;
 cd work&lt;br /&gt;
 &amp;lt;put the software in this directory&amp;gt;&lt;br /&gt;
 tar -xf &amp;lt;software-distro&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
Set the SYBASE variable before installation to the directory where the software will be installed.&lt;br /&gt;
 export SYBASE=/opt/sybase/iq127&lt;br /&gt;
Start the installation by running sybinstall.&lt;br /&gt;
When you have the option on the first screen to choose &amp;quot;Sybase IQ ETL Server&amp;quot;, then do not choose that option, but select &amp;quot;Sybase IQ server&amp;quot;. During installation you can specify a new password for the DBA account.&lt;br /&gt;
 ./sybinstall&lt;br /&gt;
&lt;br /&gt;
When the installation has finished succesful you can safely remove the work directory.&lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -Rf work&lt;br /&gt;
&lt;br /&gt;
==Setup your environment==&lt;br /&gt;
In /opt/sybase/iq127/ASIQ-12_7 you will find a few files, like ASIQ-12_7.csh and ASIQ-12_7.sh. Depending on the type of shell you use, you need to source in one of these. For instance, when your default shell is bash you should do this:&lt;br /&gt;
&lt;br /&gt;
 . $SYBASE/ASIQ-12_7/ASIQ-12_7.sh&lt;br /&gt;
&lt;br /&gt;
Is is fairly common to activate such a script from your login script.&lt;br /&gt;
&lt;br /&gt;
==Install optional EBF's==&lt;br /&gt;
At the time of writing a few EBF's have already been released for IQ 12.7 You can download these from http://downloads.sybase.com&lt;br /&gt;
To install an EBF just untar the file and run sybinstall.&lt;br /&gt;
&lt;br /&gt;
==Install OpenClient software==&lt;br /&gt;
When you have installed Sybase IQ, check if the OpenClient software is also installed. You should see a directory called &amp;quot;OCS-15_0&amp;quot; in $SYBASE. When it's not there, follow these steps to install it.&lt;br /&gt;
* Get hold of an ASE installation package. Linux users may retrieve one at http://www.sybase.com/linuxpromo&lt;br /&gt;
* Put the software in a work directory and untar (tar -xf &amp;lt;file&amp;gt;)&lt;br /&gt;
* ./setup -console&lt;br /&gt;
* Within &amp;quot;setup&amp;quot; choose &amp;quot;Custom&amp;quot; as type to setup,  then deselect all features except connectivity and Language modules. Finish setup.&lt;br /&gt;
You should now see some extra directories and files in $SYBASE&lt;br /&gt;
&lt;br /&gt;
==Create raw devices==&lt;br /&gt;
For performance reasons you should use raw devices for the IQ Main and Temporary store. For testing purposes use 2Gb for the Main store and 1 Gb for the Temporary store. You can always add more when needed.&lt;br /&gt;
Do not forget to chown the raw devices to the sybase user. Check if this setting is persistent after a reboot.&lt;br /&gt;
Note: contrary to Sybase ASE behaviour, Sybase IQ will only accept raw devices and not &amp;quot;block special&amp;quot;. Check the filetype with the &amp;quot;file&amp;quot; command. When needed, bind a block special device to a raw device with the &amp;quot;raw&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
==Start the IQ server (utility database only)==&lt;br /&gt;
Before you can create a database the IQ server must be started with only the utility database active.&lt;br /&gt;
 start_asiq -n IQ1&lt;br /&gt;
&lt;br /&gt;
==Create a database==&lt;br /&gt;
Create a directory where server specific files will be stored&lt;br /&gt;
 cd /var/sybase&lt;br /&gt;
 mkdir IQ1&lt;br /&gt;
 cd IQ1&lt;br /&gt;
Create a connection to the IQ server with dbisqlc.&lt;br /&gt;
 dbisqlc&lt;br /&gt;
On the first screen do &amp;quot;Cancel&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Image:dbisqlc1.gif]]&lt;br /&gt;
&lt;br /&gt;
On the next screen click on &amp;quot;Command&amp;quot; and &amp;quot;Connect…&amp;quot;.  Fill in the username / password combination as specified during sybinstall, use &amp;quot;utility_db&amp;quot; as database name.&lt;br /&gt;
&lt;br /&gt;
[[Image:dbisqlc2.gif]]&lt;br /&gt;
&lt;br /&gt;
In the command section of the screen you can now type the command to create a database. See screenshot below for the beginning of the command, see text further down for full command.&lt;br /&gt;
&lt;br /&gt;
[[Image:dbisqlc3.gif]]&lt;br /&gt;
&lt;br /&gt;
This example creates a database of 2000 Mb and a temporary store of 1000 Mb.&lt;br /&gt;
 create database '/var/sybase/IQ1/IQ1.db'&lt;br /&gt;
 transaction log on '/var/sybase/IQ1/IQ1.log'&lt;br /&gt;
 mirror '/var/sybase/IQ1/IQ1_mirror.log'&lt;br /&gt;
 iq path '/var/sybase/IQ1/IQ1_01.iq'&lt;br /&gt;
 iq size 2000&lt;br /&gt;
 message path '/var/sybase/IQ1/IQ1.iqmsg'&lt;br /&gt;
 temporary path '/var/sybase/IQ1/IQ1_01.iqtmp'&lt;br /&gt;
 temporary size 1000&lt;br /&gt;
When the database has been successfully created, exit from dbisqlc.&lt;br /&gt;
&lt;br /&gt;
Then shutdown the IQ server.&lt;br /&gt;
 stop_asiq&lt;br /&gt;
&lt;br /&gt;
==Create a configuration file==&lt;br /&gt;
In the directory /var/sybase/IQ1 create a configuration file called params.cfg with at least the following content&lt;br /&gt;
 -n IQ1&lt;br /&gt;
 -iqmc 60&lt;br /&gt;
 -iqtc 140&lt;br /&gt;
 -x tcpip{port=4000}&lt;br /&gt;
This configuration file sets the name of the server, the main cache size to 60Mb, the temp cache size to 140Mb and a port number for TCP/IP traffic. Specify as much memory as you can. Sybase recommends to keep the ration between main and temp cache 3:7.&lt;br /&gt;
&lt;br /&gt;
Then start the database&lt;br /&gt;
 start_asiq @params.cfg IQ1.db&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* In this example the mirror of the IQ transaction log is on the same physical device at the transaction log itself. Do not create such a situation on a production system.&lt;br /&gt;
* The Sybase IQ logfiles are created in the directory $ASDIR/logfiles. Since the logfiles can become very big, its best to set the variable ASLOGDIR to /var/sybase/IQ1 before starting the IQ server.&lt;br /&gt;
&lt;br /&gt;
Recommended further reading: [[Sybase Central and the IQ Agent for Sybase IQ]]&lt;br /&gt;
 &lt;br /&gt;
[[Category:IQ]]&lt;br /&gt;
[[category:Installation Guidelines]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_RepServer_15.7.1&amp;diff=1972</id>
		<title>Installation guidelines RepServer 15.7.1</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_RepServer_15.7.1&amp;diff=1972"/>
				<updated>2013-11-08T11:45:18Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to install and configure a Sybase Replication Server version 15.7.1. You will also learn how to connect to the server, stop and restart it.&lt;br /&gt;
&lt;br /&gt;
==Get the software==&lt;br /&gt;
First download the software for Replication Server.&lt;br /&gt;
&lt;br /&gt;
For a licensed version you need to go here: http://sybase.subscribenet.com (account required) or to the eShop at sybase.com: http://eshop.sybase.com/eshop/buy?id=22574&lt;br /&gt;
Downloads are also available at the Sybase download center at http://downloads.sybase.com/swd/base.do?client=support. Once registered you can download the latest EBF (patch) for the desired platform. An EBF can sometimes also be used for a full installation. &lt;br /&gt;
&lt;br /&gt;
==Storage requirements==&lt;br /&gt;
Make sure that the filesystem for the Sybase software is big enough. A full installation needs approx. 570 Mb so 2 Gb should give you enough room to handle upgrades too. In this case we install the software in /opt/sybase/rep1571.&lt;br /&gt;
&lt;br /&gt;
Replication server partitions (stable devices) will be stored /var/sybase. The mininum size of the initial partition is 20 Mb.&lt;br /&gt;
Additional partitions that may be needed to queue up data must be taken into account as well. The requirements vary per environment and usage. When you run out of space in partitions you can always add more.&lt;br /&gt;
&lt;br /&gt;
The partitions can be created on raw devices or on filesystem files (opened with Direct I/O).&lt;br /&gt;
&lt;br /&gt;
==Memory requirements==&lt;br /&gt;
When running replication server on a virtualized environment, you need 300 Mb of RAM as a bare minimum. Increase memory when needed.&lt;br /&gt;
==Prepare the operating system==&lt;br /&gt;
&lt;br /&gt;
Become root and add a group &amp;quot;sybase&amp;quot; and a user &amp;quot;sybase&amp;quot; to the system. Also create the needed directories.&lt;br /&gt;
Strictly spoken, the usage of the username and groupname called &amp;quot;sybase&amp;quot; is not needed, any username is fine.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/sybase&lt;br /&gt;
 mkdir -p /var/sybase&lt;br /&gt;
 groupadd sybase&lt;br /&gt;
 useradd -g sybase -d /opt/sybase sybase&lt;br /&gt;
 passwd sybase&lt;br /&gt;
 chown sybase:sybase /opt/sybase&lt;br /&gt;
 chown sybase:sybase /var/sybase&lt;br /&gt;
&lt;br /&gt;
==Installation of the software==&lt;br /&gt;
Now, switch to the newly created user:&lt;br /&gt;
 su - sybase&lt;br /&gt;
You should now be in the directory /opt/sybase. Make a work directory and put the downloaded Sybase software in it.&lt;br /&gt;
 mkdir install&lt;br /&gt;
 cd install&lt;br /&gt;
 &amp;lt;put the software in this directory&amp;gt;&lt;br /&gt;
 tar -xf &amp;lt;software-distro&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the installation (when using an EBF download as installation file you may need to go into a subdirectory)&lt;br /&gt;
&lt;br /&gt;
 ./setup.bin&lt;br /&gt;
&lt;br /&gt;
Use /opt/sybase/rep1571 as the destination directory, do a full installation, and continue installation without a license key, no e-mail alerts. Do not start the sample replication server as we will do a manual configuration.&lt;br /&gt;
&lt;br /&gt;
When the installation has finished successful you can safely remove the work directory and the installation package.&lt;br /&gt;
&lt;br /&gt;
===Errors when running setup.bin===&lt;br /&gt;
====java not found====&lt;br /&gt;
When you get an error like this&lt;br /&gt;
&lt;br /&gt;
 exec: 2508: /tmp/install.dir.527/Linux/resource/jre/bin/java: not found&lt;br /&gt;
&lt;br /&gt;
you need to install software to run 32 bit binaries on a 64 bit machine. Become root again and install the required packages.&lt;br /&gt;
&lt;br /&gt;
On ubuntu:&lt;br /&gt;
&lt;br /&gt;
 apt-get install ia32-libs&lt;br /&gt;
&lt;br /&gt;
On Redhat&lt;br /&gt;
&lt;br /&gt;
 yum install glibc-devel.i386&lt;br /&gt;
&lt;br /&gt;
====Fontconfig error====&lt;br /&gt;
Ignore the error &amp;quot;Fontconfig error: Cannot load default config file&amp;quot; if you get it.&lt;br /&gt;
&lt;br /&gt;
==Setup your environment==&lt;br /&gt;
In /opt/sybase/rep1571 you will find files like SYBASE.csh, SYBASE.sh and SYBASE.env. Depending on the type of shell you use you need to source in one of these. For instance, when your default shell is bash you should do this:&lt;br /&gt;
&lt;br /&gt;
 . /opt/sybase/rep1571/SYBASE.sh&lt;br /&gt;
&lt;br /&gt;
By doing:&lt;br /&gt;
&lt;br /&gt;
 echo $SYBASE&lt;br /&gt;
&lt;br /&gt;
it should return /opt/sybase/rep1571.&lt;br /&gt;
Is is fairly common to activate the SYBASE.sh script (or similar one) from your login script. &lt;br /&gt;
&lt;br /&gt;
When you have generated a licence file through http://sybase.subscribenet.com install it in the directory $SYBASE/SYSAM-2_0/licenses&lt;br /&gt;
&lt;br /&gt;
You can run without a license for 30 days (grace period).&lt;br /&gt;
&lt;br /&gt;
==Create the Replication Server==&lt;br /&gt;
A Replication Server needs an system database (RSSD) to store its definitions. You can choose between a Sybase ASE (RSSD) or an embedded SQL Anywhere database (ERSSD).&lt;br /&gt;
The choice between them depends on licensing costs, availabity of hardware or personal preference. After configuring replication server with either RSSD or ERSSD you cannot switch between them.&lt;br /&gt;
&lt;br /&gt;
When you select an ERSSD you do not need to manage it, it is all handled automatically. When choosing an RSSD (Sybase ASE) there is an extra layer of software that you need to install, manage and probably pay for as well. &lt;br /&gt;
&lt;br /&gt;
In this document an ERSSD server will be used for the Replication Server System Database.&lt;br /&gt;
&lt;br /&gt;
Create the directories for these servers:&lt;br /&gt;
 cd /opt/sybase&lt;br /&gt;
 mkdir admin&lt;br /&gt;
 mkdir admin/REP1&lt;br /&gt;
 mkdir admin/REP1_ERSSD&lt;br /&gt;
 mkdir /var/sybase/REP1&lt;br /&gt;
 mkdir -p /var/sybase/REP1_ERSSD/database&lt;br /&gt;
 mkdir /var/sybase/REP1_ERSSD/translog&lt;br /&gt;
 mkdir /var/sybase/REP1_ERSSD/backup&lt;br /&gt;
&lt;br /&gt;
Now go to the &amp;quot;/opt/sybase/admin/REP1&amp;quot; directory and create a resource file. Use the following template as an example, call it REP1.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_REP/init/rs/install.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.product: rs&lt;br /&gt;
 rs.rs_operation: rs_install&lt;br /&gt;
 rs.rs_idserver_name: REP1&lt;br /&gt;
 rs.rs_id_server_is_rs_server: yes&lt;br /&gt;
 # Password for rs_REP1_id_user (RS to RS connectivity)&lt;br /&gt;
 rs.rs_idserver_pass: secret123&lt;br /&gt;
 rs.rs_name: REP1&lt;br /&gt;
 # Password for &amp;quot;sa&amp;quot; user&lt;br /&gt;
 rs.rs_rs_sa_pass: secret123&lt;br /&gt;
 rs.rs_needs_repagent: yes&lt;br /&gt;
 rs.rs_rs_errorlog: /opt/sybase/admin/REP1/REP1.errorlog&lt;br /&gt;
 rs.rs_rs_cfg_file: /opt/sybase/admin/REP1/REP1.cfg&lt;br /&gt;
 rs.rs_rssd_embedded: yes&lt;br /&gt;
 rs.rs_erssd_name: REP1_ERSSD&lt;br /&gt;
 rs.rs_erssd_database_dir: /var/sybase/REP1_ERSSD/database&lt;br /&gt;
 rs.rs_erssd_translog_dir: /var/sybase/REP1_ERSSD/translog&lt;br /&gt;
 rs.rs_erssd_backup_dir: /var/sybase/REP1_ERSSD/backup&lt;br /&gt;
 rs.rs_erssd_errorlog_dir: /opt/sybase/admin/REP1_ERSSD&lt;br /&gt;
 # Password for REP1_RSSD_prim&lt;br /&gt;
 rs.rs_rssd_prim_pass: secret123&lt;br /&gt;
 # Password for REP1_RSSD_maint&lt;br /&gt;
 rs.rs_rssd_maint_pass: secret123&lt;br /&gt;
 rs.rs_diskp_name: /var/sybase/REP1/part1.dat&lt;br /&gt;
 rs.rs_diskp_lname: part1&lt;br /&gt;
 # Password for REP1_rsi&lt;br /&gt;
 rs.rs_rs_pass: secret123&lt;br /&gt;
 # Password for REP1_ltm&lt;br /&gt;
 rs.rs_ltm_rs_pass: secret123&lt;br /&gt;
 rs.rs_id_server_network_protocol_list: tcp&lt;br /&gt;
 rs.rs_idserver_hostname: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 rs.rs_idserver_port: 5000&lt;br /&gt;
 rs.rs_rs_port: 5000&lt;br /&gt;
&lt;br /&gt;
When the partition as defined by &amp;quot;rs.rs_diskp_name&amp;quot; is on filesystem, you need to create the file with the &amp;quot;touch&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
 touch /var/sybase/REP1/part1.dat&lt;br /&gt;
&lt;br /&gt;
Add the entries for repserver and ERSSD to $SYBASE/interfaces&lt;br /&gt;
&lt;br /&gt;
 REP1&lt;br /&gt;
 	master tcp ether &amp;lt;put your hostname here&amp;gt; 5000&lt;br /&gt;
 	query tcp ether &amp;lt;put your hostname here&amp;gt; 5000&lt;br /&gt;
 &lt;br /&gt;
 REP1_ERSSD&lt;br /&gt;
 	query tcp ether &amp;lt;put your hostname here&amp;gt; 5001&lt;br /&gt;
&lt;br /&gt;
Now build the server with the command:&lt;br /&gt;
 $SYBASE/$SYBASE_REP/install/rs_init -r REP1.rs&lt;br /&gt;
&lt;br /&gt;
After a successful creation you can connect to the replication server using the command line tool isql. The login “sa&amp;quot; has been created, with the password that was specified in REP1.rs file. At the prompt of isql you can type a command or type exit to exit.&lt;br /&gt;
 isql -Usa -Psecret123 -SREP1&lt;br /&gt;
 admin who&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
To connect to the ERSSD server cou can use the REP1_RSSD_prim login.&lt;br /&gt;
 isql -UREP1_RSSD_prim -Psecret123 -SREP1_ERSSD&lt;br /&gt;
 sa_conn_info&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Basic Replication server tasks==&lt;br /&gt;
&lt;br /&gt;
===To shutdown Replication Server===&lt;br /&gt;
 isql -Usa -Psecret123 -SREP1&lt;br /&gt;
 shutdown&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
===To start Replication Server===&lt;br /&gt;
 cd /opt/sybase/admin/REP1&lt;br /&gt;
 nohup ./RUN_REP1 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
===Check status===&lt;br /&gt;
When replication server has been started you can check if the status is ok by running the &amp;quot;admin health&amp;quot; command. It should return &amp;quot;HEALTHY&amp;quot;. When the status is not healthy check the errorlog file (at /opt/sybase/admin/REP1/REP1.errorlog) for the cause.&lt;br /&gt;
Please note that immediately after a start of replication server it may take a couple of minutes before all processes are up and running.&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -Psecret123 -SREP1&lt;br /&gt;
 admin health&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Recommended settings==&lt;br /&gt;
The following settings are recommended to improve stability and performance. To change a setting, use isql and log on with the sa account&lt;br /&gt;
 isql -Usa -Psecret123 -SREP1&lt;br /&gt;
&lt;br /&gt;
===Enable direct i/o===&lt;br /&gt;
Set sqm_write_flush to dio to enable direct I/O on the partitions. A reboot is needed to activate the setting.&lt;br /&gt;
&lt;br /&gt;
 configure replication server set sqm_write_flush to 'dio'&lt;br /&gt;
 go&lt;br /&gt;
 shutdown&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
===sqt_max_cache_size===&lt;br /&gt;
Increase sqt_max_cache_size when the following message is shown the errorlog:&lt;br /&gt;
&lt;br /&gt;
 WARNING #24068 SQT(105:1 DIST PRIM.tpcc) - t/sqtint.c(1333)&lt;br /&gt;
 SQT cache size is too low to load more than one transaction into the cache.&lt;br /&gt;
&lt;br /&gt;
As a rule of thumb you can double the value (default is 1048576 for 32 bit, 20971520 for 64 bit) but don't overdo it. Retrieve the current value with&lt;br /&gt;
&lt;br /&gt;
 admin config,sqt_max_cache_size&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
 configure replication server set sqt_max_cache_size to '41943040'&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
Increasing the value may require that you increase the allocated amount of memory for replication server (setting memory_limit).&lt;br /&gt;
===sts_cachesize===&lt;br /&gt;
Increase the value for sts_cachesize when this message is printed in the errorlog:&lt;br /&gt;
&lt;br /&gt;
 I. 2013/01/12 15:39:53. A cached row for system table ‘rs_columns’ was swapped out of the cache in order to accomodate another row.&lt;br /&gt;
&lt;br /&gt;
 configure replication server set sts_cachesize to '2000'&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
You can retrieve the current value with&lt;br /&gt;
&lt;br /&gt;
 admin config,sts_cachesize&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==All done==&lt;br /&gt;
Happy Sybase-ing with your new server!!&lt;br /&gt;
&lt;br /&gt;
Further reading:&lt;br /&gt;
&lt;br /&gt;
Installation guide for Unix http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32237.1571/doc/html/title.html&lt;br /&gt;
&lt;br /&gt;
Getting started http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc10114.1571/doc/html/title.html&lt;br /&gt;
&lt;br /&gt;
Reference manual http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32410.1571/doc/html/title.html&lt;br /&gt;
&lt;br /&gt;
[[Category:RepServer]]&lt;br /&gt;
[[category:Installation Guidelines]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.7&amp;diff=1971</id>
		<title>Installation guidelines ASE 15.7</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.7&amp;diff=1971"/>
				<updated>2013-11-08T11:44:41Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* All done */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to install and configure a Sybase ASE server version 15.7. You will also learn how to connect to the server, stop and restart it.&lt;br /&gt;
&lt;br /&gt;
==Get the software==&lt;br /&gt;
First download ASE.&lt;br /&gt;
&lt;br /&gt;
For a licensed version you need to go here: http://sybase.subscribenet.com (account required) or to the eShop at sybase.com: http://eshop.sybase.com/eshop/buy?id=19517&lt;br /&gt;
&lt;br /&gt;
To get a free download you can go to this page http://www.sybase.com/ase_1500devel. You can download ASE 15.7 for various operating systems and chipsets. When you install ASE you can choose to run without a license (limited features) or install a licenced version and buy a license from Sybase.&lt;br /&gt;
&lt;br /&gt;
Downloads are also available at the Sybase download center at http://downloads.sybase.com/swd/base.do?client=support. Once registered you can download the latest EBF (patch) for the desired platform. An EBF can also be used for a full installation. &lt;br /&gt;
&lt;br /&gt;
==Prepare the Operating System==&lt;br /&gt;
Make sure that the filesystem for the Sybase software is big enough. A full installation needs approx. 1.5 Gb so 4 Gb should give you enough room to handle upgrades too. In this case we install the software in /opt/sybase/ase157. Database files will be stored /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Become root and add a group &amp;quot;sybase&amp;quot; and a user &amp;quot;sybase&amp;quot; to the system. Also create the needed directories.&lt;br /&gt;
Strictly spoken, the usage of the username and groupname called &amp;quot;sybase&amp;quot; is not needed, any username is fine.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/sybase&lt;br /&gt;
 mkdir -p /var/sybase&lt;br /&gt;
 groupadd sybase&lt;br /&gt;
 useradd -g sybase -d /opt/sybase sybase&lt;br /&gt;
 passwd sybase&lt;br /&gt;
 chown sybase:sybase /opt/sybase&lt;br /&gt;
 chown sybase:sybase /var/sybase&lt;br /&gt;
&lt;br /&gt;
Enable the operating system to allow more than the default value for shared memory.&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
To see the current value of shared memory:&lt;br /&gt;
 sysctl kernel.shmmax&lt;br /&gt;
&lt;br /&gt;
To configure a shared memory segment of 4 Gb&lt;br /&gt;
 sysctl -w kernel.shmmax=4294967296&lt;br /&gt;
&lt;br /&gt;
Then add kernel.shmmax=4294967296 to /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
See also [[Linux configuration settings for Sybase ASE]], but these settings can be done when the installation and configuration has been completed.&lt;br /&gt;
&lt;br /&gt;
When installing Sybase ASE 64 bit version on Linux, you may want to install the 32 bit shared libraries as well. This will prevent problems when running isql or bcp.&lt;br /&gt;
 apt-get install ia32-libs&lt;br /&gt;
&lt;br /&gt;
===Solaris (pre version 10)===&lt;br /&gt;
/etc/system&lt;br /&gt;
 set shmsys:shminfo_shmmax = 4294967296&lt;br /&gt;
&lt;br /&gt;
===Solaris (system 10)===&lt;br /&gt;
/etc/project&lt;br /&gt;
 projadd -c &amp;quot;sybase&amp;quot; 'user.sybase'&lt;br /&gt;
 projmod -s -K &amp;quot;project.max-shm-memory={privileged,4GB,deny}&amp;quot; 'user.sybase'&lt;br /&gt;
&lt;br /&gt;
==Raw devices or filesystem files==&lt;br /&gt;
Sybase recommends to store all database files on raw devices except for temporary databases like tempdb. Some Unix adminstrators do not like raw devices and then you need to put everything on filesystems. Also, consult your storage administrator when in doubt.&lt;br /&gt;
&lt;br /&gt;
===Raw devices===&lt;br /&gt;
When you use raw devices, create the following:&lt;br /&gt;
* master (100 Mb)&lt;br /&gt;
* sybsystemprocs (172M)&lt;br /&gt;
* sybsystemdb (6M)&lt;br /&gt;
* data01 (for instance 10G but for testing purposes 100Mb is also good. You can always add more)&lt;br /&gt;
* log01(for instance 2G but for testing purposes 20Mb is also good. You can always add more).&lt;br /&gt;
Do not forget to chown the raw devices to the sybase user. Check if this setting is persistent after a reboot.&lt;br /&gt;
&lt;br /&gt;
===Temporory databases===&lt;br /&gt;
Files for temporary databases (like tempdb) should be stored on the filesystem. Allow at least  100Mb but, depending on your application, several Gb's or much more is not uncommon.&lt;br /&gt;
&lt;br /&gt;
==Determine your license policy==&lt;br /&gt;
Since ASE 15.0 you cannot run a production server without a license file. License files can reside on the network or on the local system. Think about the license policy that suits you best. Most sites choose for license files on each Unix server.&lt;br /&gt;
&lt;br /&gt;
When there is no valid license, ASE will run with a grace time of 30 days. After that it will shutdown and it cannot be rebooted anymore until you install a license, or change the license settings revert to the Express Edition.&lt;br /&gt;
&lt;br /&gt;
==Installation of the software==&lt;br /&gt;
Now, switch to the newly created user:&lt;br /&gt;
 su - sybase&lt;br /&gt;
You should now be in the directory /opt/sybase. Make a work directory and put the downloaded Sybase software in it.&lt;br /&gt;
 mkdir install&lt;br /&gt;
 cd install&lt;br /&gt;
 &amp;lt;put the software in this directory&amp;gt;&lt;br /&gt;
 tar -xf &amp;lt;software-distro&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the installation (when using an EBF download as installation file you may need to go into a subdirectory)&lt;br /&gt;
&lt;br /&gt;
 ./setup.bin&lt;br /&gt;
&lt;br /&gt;
When you get a message like &amp;quot;A suitable JVM could not be found&amp;quot; or “exec: 2470: /tmp/install.dir.1392/Linux/resource/jre/bin/java: not found” check the following document for a solution: [[Ubuntu 64 bit ASE installation]]&lt;br /&gt;
&lt;br /&gt;
Use /opt/sybase/ase157 as the destination directory, do a full installation. At the list of possible servers to configure, deselect all options. We will do a manual configuration.&lt;br /&gt;
&lt;br /&gt;
When the installation has finished successful you can safely remove the work directory and the installation package.&lt;br /&gt;
&lt;br /&gt;
==Setup your environment==&lt;br /&gt;
In /opt/sybase/ase157 you will find files like SYBASE.csh, SYBASE.sh and SYBASE.env. Depending on the type of shell you use you need to source in one of these. For instance, when your default shell is bash you should do this:&lt;br /&gt;
&lt;br /&gt;
 . /opt/sybase/ase157/SYBASE.sh&lt;br /&gt;
&lt;br /&gt;
By doing:&lt;br /&gt;
&lt;br /&gt;
 echo $SYBASE&lt;br /&gt;
&lt;br /&gt;
it should return /opt/sybase/ase157.&lt;br /&gt;
Is is fairly common to activate the SYBASE.sh script (or similar one) from your login script. &lt;br /&gt;
&lt;br /&gt;
When you have generated a licence file through http://sybase.subscribenet.com install it in the directory $SYBASE/SYSAM-2_0/licenses&lt;br /&gt;
&lt;br /&gt;
==Create the ASE server==&lt;br /&gt;
Most installations, especially for development purposes, run multiple ASE's and backup servers from a single Sybase software installation. For a good overview it is quite handy to store files that are specific for a server in it's own directory. In this example we create two servers: an ASE called ASE1 and a backupserver called SYB_BACKUP. Configuration files and the errorlog are stored in the admin directory, database files are stored in /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Create the directories for these servers:&lt;br /&gt;
 cd /opt/sybase&lt;br /&gt;
 mkdir admin&lt;br /&gt;
 mkdir admin/ASE1&lt;br /&gt;
 mkdir admin/SYB_BACKUP&lt;br /&gt;
 mkdir /var/sybase/ASE1&lt;br /&gt;
&lt;br /&gt;
When you choose to use raw device it's quite handy when you create symbolic links from /var/sybase/ASE1 to those devices. For example:&lt;br /&gt;
 ln -s /dev/hda4 /var/sybase/ASE1/master.dat&lt;br /&gt;
Do this also for the other raw devices that you have made.&lt;br /&gt;
&lt;br /&gt;
Now go to the &amp;quot;/opt/sybase/admin/ASE1&amp;quot; directory and create a resource file. Use the following template as an example, call it ASE1.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.adaptive_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: sqlsrv&lt;br /&gt;
 sqlsrv.server_name: ASE1&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 sqlsrv.new_config: yes&lt;br /&gt;
 sqlsrv.do_add_server: yes&lt;br /&gt;
 sqlsrv.network_protocol_list: tcp&lt;br /&gt;
 sqlsrv.network_hostname_list: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 sqlsrv.network_port_list: 4000&lt;br /&gt;
 sqlsrv.application_type: MIXED&lt;br /&gt;
 sqlsrv.server_page_size: 4096&lt;br /&gt;
 sqlsrv.force_buildmaster: no&lt;br /&gt;
 sqlsrv.master_device_physical_name: /var/sybase/ASE1/master.dev&lt;br /&gt;
 sqlsrv.master_device_size: 100&lt;br /&gt;
 sqlsrv.master_database_size: 60&lt;br /&gt;
 sqlsrv.errorlog: /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 sqlsrv.do_upgrade: no&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_physical_name: /var/sybase/ASE1/sybsystemprocs.dev&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemprocs_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_device_physical_name: /var/sybase/ASE1/sybsystemdb.dev&lt;br /&gt;
 sqlsrv.sybsystemdb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.tempdb_device_physical_name: /var/sybase/ASE1/tempdb.dev&lt;br /&gt;
 sqlsrv.tempdb_device_size: 100&lt;br /&gt;
 sqlsrv.tempdb_database_size: 100&lt;br /&gt;
 sqlsrv.default_backup_server: SYB_BACKUP&lt;br /&gt;
 #sqlsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
 sqlsrv.do_configure_pci: no&lt;br /&gt;
 sqlsrv.sybpcidb_device_physical_name: PUT_THE_PATH_OF_YOUR_SYBPCIDB_DATA_DEVICE_HERE&lt;br /&gt;
 sqlsrv.sybpcidb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybpcidb_database_size: USE_DEFAULT&lt;br /&gt;
 # If sqlsrv.do_optimize_config is set to yes, both sqlsrv.avail_physical_memory and sqlsrv.avail_cpu_num need to be set.&lt;br /&gt;
 sqlsrv.do_optimize_config: yes&lt;br /&gt;
 sqlsrv.avail_physical_memory: 256&lt;br /&gt;
 sqlsrv.avail_cpu_num: 1&lt;br /&gt;
&lt;br /&gt;
This resource file will a create a Sybase server with the following characteristics:&lt;br /&gt;
* The name of the server will be ASE1, can be changed later with the sp_addserver stored procedure.&lt;br /&gt;
* The server will have a listener on the ip-address as indicated with &amp;lt;hostname&amp;gt; and port 4000. This can be changed later in the interfaces file located at $SYBASE/interfaces.&lt;br /&gt;
* Application type is mixed, so you expect both oltp and dss type of queries. This can be changed later by modification of the “optimization goal” setting with sp_configure).&lt;br /&gt;
* Server page size will be 4 Kb. The default is 2 Kb but with today’s hardware this will give sub-optimal performance. Once the server has been created it cannot be changed, a complete server rebuild is needed then.&lt;br /&gt;
* The master device will be 100 Mb, the size of the master database will be 60 Mb. The master devices will contain the master database, the master database contains important meta-data about the server. It’s very unusual to increase the size of the master device or the master database.&lt;br /&gt;
* The location of the errorlog is /opt/sybase/admin/ASE1/errorlog, can be changed later in the configuration file.&lt;br /&gt;
* A device of 172 Mb will be created for the sybsystemprocs database, also with a size of 172 Mb. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A device of 6 Mb will be created for the sybsystemdb database. The size of the database will actually be 12Mb as a small portion will also reside on the master device. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A temporary database 'tempdb' will be created on a device with a size of 100 Mb, the database will also be 100 Mb. In fact, it will be a bit larger since also a small portion will reside on the master device. Again, the device and the tempdb database can be increased in size. You can also create multiple temporary databases for improved concurrency.&lt;br /&gt;
* We will build a backup server called SYB_BACKUP. The name can be changed later with sp_addserver.&lt;br /&gt;
* We will not use a PCI (Pluggable Component Interface) database. This database is mainly used for Java in the server.&lt;br /&gt;
* Use the optimize configuration feature and tune for 256 Mb of memory and 1 cpu.&lt;br /&gt;
&lt;br /&gt;
Now build the server with the command:&lt;br /&gt;
 srvbuildres -r ASE1.rs&lt;br /&gt;
&lt;br /&gt;
When the srvbuildres command fails with:&lt;br /&gt;
 Task failed&lt;br /&gt;
 Unable to boot server 'ASE1'.  &lt;br /&gt;
 Server 'ASE1' was not created.&lt;br /&gt;
then go to this page for tips how to solve this: [[srvbuildres task failed]].&lt;br /&gt;
&lt;br /&gt;
After a successful creation you can connect to the server using the command line tool isql. The login “sa&amp;quot; has been created, with the password that was specified in ASE.rs file. At the prompt of isql you can type a command or execute a stored procedure. Type exit to exit.&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 sp_helpdb&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Basic ASE configuration==&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration files to the admin directory. First shutdown ASE&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 shutdown&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
 cd $SYBASE/$SYBASE_ASE&lt;br /&gt;
 mv ASE1.cfg /opt/sybase/admin/ASE1&lt;br /&gt;
 rm ASE1.*&lt;br /&gt;
 cd install&lt;br /&gt;
&lt;br /&gt;
Modify RUN_ASE1 and make the following changes:&lt;br /&gt;
* Make the -s flag the first option. This has the advantage that a listing of running processes on the system will show the name of the Sybase server.&lt;br /&gt;
* Change the location of the configuration files, as specified with the -c flag, to the admin directory&lt;br /&gt;
Each line must end with a backslash.&lt;br /&gt;
Example RUN_ASE1 file:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # ASE page size (KB):   4096&lt;br /&gt;
 # Master device path:   /var/sybase/ASE1/master.dev&lt;br /&gt;
 # Error log path:       /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 # Configuration file path:      /opt/sybase/ase157/ASE-15_0/ASE1.cfg&lt;br /&gt;
 # Directory for shared memory files:    /opt/sybase/ase157/ASE-15_0&lt;br /&gt;
 # Adaptive Server name: ASE1&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase157/ASE-15_0/bin/dataserver \&lt;br /&gt;
 -sASE1 \&lt;br /&gt;
 -d/var/sybase/ASE1/master.dev \&lt;br /&gt;
 -e/opt/sybase/admin/ASE1/errorlog \&lt;br /&gt;
 -c/opt/sybase/admin/ASE1/ASE1.cfg \&lt;br /&gt;
 -M/opt/sybase/ase157/ASE-15_0 \&lt;br /&gt;
&lt;br /&gt;
Now restart the Sybase server&lt;br /&gt;
 ./startserver -f ./RUN_ASE1&lt;br /&gt;
&lt;br /&gt;
===Load instmsg.ebf file===&lt;br /&gt;
The instmsgs.ebf file contains the latest update for Sybase error messages. You can load it with isql.&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1 &amp;lt; $SYBASE/$SYBASE_ASE/scripts/instmsgs.ebf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Create the backup server==&lt;br /&gt;
Create the backup server using the following steps.&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;quot;/opt/sybase/admin/SYB_BACKUP&amp;quot; directory and create a resource file. Use the following template as an example, call it SYB_BACKUP.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.backup_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: bsrv&lt;br /&gt;
 bsrv.server_name: SYB_BACKUP&lt;br /&gt;
 bsrv.new_config: yes&lt;br /&gt;
 bsrv.do_add_backup_server: yes&lt;br /&gt;
 bsrv.do_upgrade: no&lt;br /&gt;
 bsrv.network_protocol_list: tcp&lt;br /&gt;
 bsrv.network_hostname_list: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 bsrv.network_port_list: 4001&lt;br /&gt;
 bsrv.language: USE_DEFAULT&lt;br /&gt;
 bsrv.character_set: USE_DEFAULT&lt;br /&gt;
 bsrv.tape_config_file: USE_DEFAULT&lt;br /&gt;
 bsrv.errorlog: /opt/sybase/admin/SYB_BACKUP/SYB_BACKUP.log&lt;br /&gt;
 sqlsrv.related_sqlsrvr: ASE1&lt;br /&gt;
 sqlsrv.sa_login: sa&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 #bsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
&lt;br /&gt;
Build the server with the command:&lt;br /&gt;
 srvbuildres -r SYB_BACKUP.rs&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration file to the admin directory. First shutdown the backup server:&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 shutdown SYB_BACKUP&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Modify the file RUN_SYB_BACKUP, located at $SYBASE/$SYBASE_ASE/install. Move the line with the -s flag to the top. Sample RUN_SYB_BACKUP:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # Error log path:       /opt/sybase/ase157/ASE-15_0/install/SYB_BACKUP.log&lt;br /&gt;
 # Maximum number of network connections:        25&lt;br /&gt;
 # Maximum number of server connections: 20&lt;br /&gt;
 # Multibuf executable path:     /opt/sybase/ase157/ASE-15_0/bin/sybmultbuf&lt;br /&gt;
 # Backup Server name:   SYB_BACKUP&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase157/ASE-15_0/bin/backupserver \&lt;br /&gt;
 -SSYB_BACKUP \&lt;br /&gt;
 -e/opt/sybase/admin/SYB_BACKUP/SYB_BACKUP.log \&lt;br /&gt;
 -N25 \&lt;br /&gt;
 -C20 \&lt;br /&gt;
 -M/opt/sybase/ase157/ASE-15_0/bin/sybmultbuf \&lt;br /&gt;
 &lt;br /&gt;
Restart the backupserver&lt;br /&gt;
 startserver -f $SYBASE/$SYBASE_ASE/install/RUN_SYB_BACKUP&lt;br /&gt;
&lt;br /&gt;
==Create a user database==&lt;br /&gt;
 disk init name = data01,size=&amp;quot;1G&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/data01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 disk init name = log01,size=&amp;quot;100M&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/log01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 create database my_database on data01=&amp;quot;1G&amp;quot; log on log01 = &amp;quot;100M&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
==All done==&lt;br /&gt;
Happy Sybase-ing with your new server!!&lt;br /&gt;
&lt;br /&gt;
Further reading:&lt;br /&gt;
&lt;br /&gt;
Installation guide for Linux http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc30119.1570/doc/html/title.html&lt;br /&gt;
&lt;br /&gt;
Sybase System administration http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc31654.1570/html/sag1/title.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:ASE]]&lt;br /&gt;
[[category:Installation Guidelines]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.5&amp;diff=1970</id>
		<title>Installation guidelines ASE 15.5</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.5&amp;diff=1970"/>
				<updated>2013-11-08T11:44:11Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* All done */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to install and configure a Sybase ASE server version 15.5.&lt;br /&gt;
&lt;br /&gt;
==Get the software==&lt;br /&gt;
First download ASE.&lt;br /&gt;
&lt;br /&gt;
For a licensed version you need to go here: http://sybase.subscribenet.com (account required) or to the eShop at sybase.com: http://eshop.sybase.com/eshop/buy?id=19517&lt;br /&gt;
&lt;br /&gt;
To get a free download you can go to this page http://www.sybase.com/ase_1500devel. You can download ASE 15.5 for various operating systems and chipsets. When you install ASE you can choose to run without a license (limited features) or install a licenced version and buy a license from Sybase.&lt;br /&gt;
&lt;br /&gt;
Downloads are also available at the Sybase download center at http://downloads.sybase.com/swd/base.do?client=support. Once registered you can download the latest EBF (patch) for the desired platform. An EBF can also be used for a full installation. &lt;br /&gt;
&lt;br /&gt;
==Prepare the Operating System==&lt;br /&gt;
Make sure that the filesystem for the Sybase software is big enough. A full installation needs approx. 1.2 Gb so 4 Gb should give you enough room to handle upgrades too. In this case we install the software in /opt/sybase/ase155. Database files will be stored on raw devices and/or in /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Become root and add a group &amp;quot;sybase&amp;quot; and a user &amp;quot;sybase&amp;quot; to the system. Also create the needed directories.&lt;br /&gt;
Strictly spoken, the usage of the username and groupname called &amp;quot;sybase&amp;quot; is not needed, any username is fine.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/sybase&lt;br /&gt;
 mkdir -p /var/sybase&lt;br /&gt;
 groupadd sybase&lt;br /&gt;
 useradd -g sybase -d /opt/sybase sybase&lt;br /&gt;
 passwd sybase&lt;br /&gt;
 chown sybase:sybase /opt/sybase&lt;br /&gt;
 chown sybase:sybase /var/sybase&lt;br /&gt;
&lt;br /&gt;
Enable the operating system to allow more than the default value for shared memory.&lt;br /&gt;
&lt;br /&gt;
*Solaris (pre version 10) /etc/system&lt;br /&gt;
set shmsys:shminfo_shmmax = 4294967295&lt;br /&gt;
&lt;br /&gt;
*Solaris (system 10) /etc/project&lt;br /&gt;
 projadd -c &amp;quot;sybase&amp;quot; 'user.sybase'&lt;br /&gt;
 projmod -s -K &amp;quot;project.max-shm-memory={privileged,4GB,deny}&amp;quot; 'user.sybase'&lt;br /&gt;
&lt;br /&gt;
*Linux:&lt;br /&gt;
Use &amp;quot;sysctl kernel.shmmax&amp;quot; to see the current value.&lt;br /&gt;
Configure a new value with &amp;quot;sysctl -w kernel.shmmax=78643200&amp;quot;&lt;br /&gt;
Then add kernel.shmmax=78643200 to /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
==Raw devices or filesystem files==&lt;br /&gt;
Sybase recommends, and I fully 100% agree, to store all database files on raw devices except for temporary databases like tempdb. Some Unix adminstrators do not like raw devices and then you need to put everything on filesystems.&lt;br /&gt;
&lt;br /&gt;
===Raw devices===&lt;br /&gt;
When you use raw devices, create the following:&lt;br /&gt;
* master (60Mb but 100Mb is better)&lt;br /&gt;
* sybsystemprocs (200M)&lt;br /&gt;
* sybsystemdb (20M)&lt;br /&gt;
* data01 (for instance 32G but for testing purposes 100Mb is also good. You can always add more)&lt;br /&gt;
* log01(for instance 5G but for testing purposes 20Mb is also good. You can always add more).&lt;br /&gt;
Do not forget to chown the raw devices to the sybase user. Check if this setting is persistent after a reboot.&lt;br /&gt;
===Temporory databases===&lt;br /&gt;
Files for temporary databases (like tempdb) should be stored on the filesystem. Allow at least for 200Mb but, depending on your application, several Gb's or much more is not uncommon.&lt;br /&gt;
&lt;br /&gt;
==Determine your license policy==&lt;br /&gt;
Since ASE 15.0 you cannot run a production server without license file. License files can reside on the network or on the local system. Think about the license policy that suits you best. For small sites choose for license files on each Unix server.&lt;br /&gt;
&lt;br /&gt;
When there is no valid license after the installation ASE will run with a grace time of 30 days. After that it will shutdown and it cannot be rebooted anymore until you install a license.&lt;br /&gt;
&lt;br /&gt;
==Installation of the software==&lt;br /&gt;
Now, switch to the newly created user:&lt;br /&gt;
 su - sybase&lt;br /&gt;
You should now be in the directory /opt/sybase. Make a work directory and put the downloaded Sybase software in it.&lt;br /&gt;
 mkdir install&lt;br /&gt;
 cd install&lt;br /&gt;
 &amp;lt;put the software in this directory&amp;gt;&lt;br /&gt;
 tar -xf &amp;lt;software-distro&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the installation (when using an EBF download as installation file you may need to go into a subdirectory)&lt;br /&gt;
&lt;br /&gt;
 ./setup.bin&lt;br /&gt;
&lt;br /&gt;
When you get a message like &amp;quot;A suitable JVM could not be found&amp;quot; or “exec: 2470: /tmp/install.dir.1392/Linux/resource/jre/bin/java: not found” check the following document for a solution: [[Ubuntu 64 bit ASE installation]]&lt;br /&gt;
&lt;br /&gt;
Use /opt/sybase/ase155 as the destination directory, do a full installation. At the list of possible servers to configure, deselect all options. We will do a manual configuration.&lt;br /&gt;
&lt;br /&gt;
When the installation has finished successful you can safely remove the work directory.&lt;br /&gt;
&lt;br /&gt;
==Setup your environment==&lt;br /&gt;
In /opt/sybase/ase155 you will find files like SYBASE.csh, SYBASE.sh and SYBASE.env. Depending on the type of shell you use you need to source in one of these. For instance, when your default shell is bash you should do this:&lt;br /&gt;
&lt;br /&gt;
 . /opt/sybase/ase155/SYBASE.sh&lt;br /&gt;
&lt;br /&gt;
By doing:&lt;br /&gt;
&lt;br /&gt;
 echo $SYBASE&lt;br /&gt;
&lt;br /&gt;
it should return /opt/sybase/ase155.&lt;br /&gt;
Is is fairly common to activate the SYBASE.sh script (or similar one) from your login script. &lt;br /&gt;
&lt;br /&gt;
When you have generated a licence file through http://sybase.subscribenet.com install it in the directory $SYBASE/SYSAM-2_0/licences&lt;br /&gt;
==Create the ASE server==&lt;br /&gt;
Most installations run multiple ASE's and backup servers from a single Sybase software installation. For a good overview it is quite handy to store files that are specific for a server in it's own directory. In this example we create two servers: an ASE called ASE1 and a backupserver called SYB_BACKUP. Configuration files and the errorlog are stored in the admin directory, database files are stored in /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Create the directories for these servers:&lt;br /&gt;
 cd /opt/sybase&lt;br /&gt;
 mkdir admin&lt;br /&gt;
 mkdir admin/ASE1&lt;br /&gt;
 mkdir admin/SYB_BACKUP&lt;br /&gt;
 mkdir /var/sybase/ASE1&lt;br /&gt;
&lt;br /&gt;
When you choose to use raw device it's quite handy when you create symbolic links from /var/sybase/ASE1 to those devices. For example:&lt;br /&gt;
 ln -s /dev/hda4 /var/sybase/ASE1/master.dat&lt;br /&gt;
Do this also for the other raw devices that you have made.&lt;br /&gt;
&lt;br /&gt;
Now go to the &amp;quot;/opt/sybase/admin/ASE1&amp;quot; directory and create a resource file. Use the following template as an example, call it ASE1.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.adaptive_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: sqlsrv&lt;br /&gt;
 sqlsrv.server_name: ASE1&lt;br /&gt;
 sqlsrv.new_config: yes&lt;br /&gt;
 sqlsrv.do_add_server: yes&lt;br /&gt;
 sqlsrv.network_protocol_list: tcp&lt;br /&gt;
 sqlsrv.network_hostname_list: &amp;lt;your hostname&amp;gt;&lt;br /&gt;
 sqlsrv.network_port_list: 4000&lt;br /&gt;
 sqlsrv.application_type: MIXED&lt;br /&gt;
 sqlsrv.server_page_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.force_buildmaster: no&lt;br /&gt;
 sqlsrv.master_device_physical_name: /var/sybase/ASE1/master.dev&lt;br /&gt;
 sqlsrv.master_device_size: 100&lt;br /&gt;
 sqlsrv.master_database_size: 60&lt;br /&gt;
 sqlsrv.errorlog: /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 sqlsrv.do_upgrade: no&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_physical_name: /var/sybase/ASE1/sybsystemprocs.dev&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_size: 200&lt;br /&gt;
 sqlsrv.sybsystemprocs_database_size: 200&lt;br /&gt;
 sqlsrv.sybsystemdb_device_physical_name: /var/sybase/ASE1/sybsystemdb.dev&lt;br /&gt;
 sqlsrv.sybsystemdb_device_size: 20&lt;br /&gt;
 sqlsrv.sybsystemdb_database_size: 20&lt;br /&gt;
 sqlsrv.tempdb_device_physical_name: /var/sybase/ASE1/tempdb.dev&lt;br /&gt;
 sqlsrv.tempdb_device_size: 100&lt;br /&gt;
 sqlsrv.tempdb_database_size: 100M&lt;br /&gt;
 sqlsrv.default_backup_server: SYB_BACKUP&lt;br /&gt;
 #sqlsrv.addl_cmdline_parameters:&lt;br /&gt;
 sqlsrv.do_configure_pci: no&lt;br /&gt;
 sqlsrv.sybpcidb_device_physical_name: PUT_THE_PATH_OF_YOUR_SYBPCIDB_DATA_DEVICE_HERE&lt;br /&gt;
 sqlsrv.sybpcidb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybpcidb_database_size: USE_DEFAULT&lt;br /&gt;
 # If sqlsrv.do_optimize_config is set to yes, both sqlsrv.avail_physical_memory and sqlsrv.avail_cpu_num need to be set.&lt;br /&gt;
 sqlsrv.do_optimize_config: no&lt;br /&gt;
 sqlsrv.avail_physical_memory: PUT_THE_AVAILABLE_PHYSICAL_MEMORY_FOR_ASE_IN_OPTIMIZATION&lt;br /&gt;
 sqlsrv.avail_cpu_num: PUT_THE_AVAILABLE_NUMBER_CPU_FOR_ASE_IN_OPTIMIZATION&lt;br /&gt;
&lt;br /&gt;
This resource file will a create a Sybase server with the following characteristics:&lt;br /&gt;
* The name of the server will be ASE1, can be changed later with the sp_addserver stored procedure.&lt;br /&gt;
* The server will have a listener on the ip-address as indicated with &amp;lt;hostname&amp;gt; and port 4000. This can be changed later in the interfaces file.&lt;br /&gt;
* Application type is mixed, so you expect both oltp and dss type of queries. This can be changed later by modification of the “optimization goal” setting with sp_configure).&lt;br /&gt;
* Server page size will be 4 Kb, which is the default. This cannot be changed, a complete server rebuild is needed then.&lt;br /&gt;
* The master device will be 100 Mb, the size of the master database will be 60 Mb. The master devices will contain the master database, the master database contains important meta-data about the server. The master device can be increased with the “disk resize” command, the master database can be increased with the “alter database” command. There are no documented methods for shrinking devices or databases.&lt;br /&gt;
* The location of the errorlog is /opt/sybase/admin/ASE1/errorlog, can be changed later in the configuration file.&lt;br /&gt;
* A device of 200 Mb will be created for the sybsystemprocs database, also with a size of 200 Mb. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A device of 20 Mb will be created for the sybsystemdb database, also with a size of 20 Mb. A small portion will also reside on the master device. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A temporary database 'tempdb' will be created on a device with a size of 100 Mb, the database will also be 100 Mb. In fact, it will be a bit larger since also a small portion will reside on the master device. Again, the device and the tempdb database can be increased in size. You can also create multiple temporary databases for improved concurrency.&lt;br /&gt;
* We will build a backup server called SYB_BACKUP. The name can be changed later with sp_addserver.&lt;br /&gt;
* We will not use a PCI (Pluggable Component Interface) database. This database is mainly used for Java in the server.&lt;br /&gt;
* We will not use the optimize configuration feature now. When trying to use this feature through sqlsrv.do_optimize_config: yes can expect the error “Unable to find SQL file to run optimization task”. Configuration of the server will be done at a later stage.&lt;br /&gt;
&lt;br /&gt;
Now build the server with the command:&lt;br /&gt;
 srvbuildres -r ASE1.rs&lt;br /&gt;
&lt;br /&gt;
When the srvbuildres command fails with:&lt;br /&gt;
 Task failed&lt;br /&gt;
 Unable to boot server 'ASE1'.  &lt;br /&gt;
 Server 'ASE1' was not created.&lt;br /&gt;
or&lt;br /&gt;
 Optimizing server configuration...&lt;br /&gt;
 Unable to find SQL file to run optimization task.&lt;br /&gt;
 Task failed&lt;br /&gt;
then go to this page for tips how to solve this: [[srvbuildres task failed]].&lt;br /&gt;
&lt;br /&gt;
After a successful creation you can connect to the server using the command line tool isql. At the prompt of isql you can type a command or execute a stored procedure. Type exit to exit.&lt;br /&gt;
 isql -Usa -P -SASE1&lt;br /&gt;
 sp_helpdb&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Basic ASE configuration==&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration files to the admin directory. First shutdown ASE&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -P -SASE1&lt;br /&gt;
 shutdown&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
 cd $SYBASE/$SYBASE_ASE&lt;br /&gt;
 mv ASE1.cfg /opt/sybase/admin/ASE1&lt;br /&gt;
 rm ASE1.*&lt;br /&gt;
 cd install&lt;br /&gt;
&lt;br /&gt;
Modify RUN_ASE1 and make the following changes:&lt;br /&gt;
* Make the -s flag the first option. This has the advantage that a listing of running processes on the system will show the name of the Sybase server.&lt;br /&gt;
* Change the location of the configuration files, as specified with the -c flag, to the admin directory&lt;br /&gt;
Each line must end with a backslash.&lt;br /&gt;
Example RUN_ASE1 file:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # ASE page size (KB):   2K&lt;br /&gt;
 # Master device path:   /var/sybase/ASE1/master.dev&lt;br /&gt;
 # Error log path:       /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 # Configuration file path:      /opt/sybase/ase155/ASE-15_0/ASE1.cfg&lt;br /&gt;
 # Directory for shared memory files:    /opt/sybase/ase155/ASE-15_0&lt;br /&gt;
 # Adaptive Server name: ASE1&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase155/ASE-15_0/bin/dataserver \&lt;br /&gt;
 -sASE1 \&lt;br /&gt;
 -d/var/sybase/ASE1/master.dev \&lt;br /&gt;
 -e/opt/sybase/admin/ASE1/errorlog \&lt;br /&gt;
 -c/opt/sybase/admin/ASE1/ASE1.cfg \&lt;br /&gt;
 -M/opt/sybase/ase155/ASE-15_0 \&lt;br /&gt;
&lt;br /&gt;
Now restart the Sybase server&lt;br /&gt;
 ./startserver -f ./RUN_ASE1&lt;br /&gt;
&lt;br /&gt;
===Load instmsg.ebf file===&lt;br /&gt;
The instmsgs.ebf file contains the latest update for Sybase error messages. You can load it with isql.&lt;br /&gt;
 isql -Usa -P -SASE1 &amp;lt; $SYBASE/$SYBASE_ASE/scripts/instmsgs.ebf&lt;br /&gt;
&lt;br /&gt;
===Configure the server using optase.sh===&lt;br /&gt;
With the tool optase.sh you can configure your server. You need to supply the following information:&lt;br /&gt;
* The amount of memory that the Sybase server can use. A rough guideline is approx 80 % of total physical memory but lower the value if your other servers or application software at the same time.&lt;br /&gt;
* The number of CPU's that the Sybase server can use. Again, leave a safe margin for other processes and the operating system.&lt;br /&gt;
* The pagesize of the ASE server, as specified in the ASE1.rs file. When you have used the default page size it will be 4Kb.&lt;br /&gt;
* Type of product edition. Some ASE features are not available in certain editions.&lt;br /&gt;
* Application type, as specified in the ASE1.rs file.&lt;br /&gt;
You can run optase.sh and have you prompted per item, or supply all the required information when you start the tool.&lt;br /&gt;
Example&lt;br /&gt;
 $SYBASE/$SYBASE_ASE/bin/optase.sh 1024 2 2 EE MIXED /tmp/config.sql&lt;br /&gt;
&lt;br /&gt;
When done, run the configuration script.&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -P -SASE1 -i /tmp/config.sql&lt;br /&gt;
&lt;br /&gt;
Then reboot the ASE server, stop it first&lt;br /&gt;
 isql -Usa -P -SASE1&lt;br /&gt;
 shutdown&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
Start again&lt;br /&gt;
 startserver -f $SYBASE/$SYBASE_ASE/install/RUN_ASE1&lt;br /&gt;
&lt;br /&gt;
==Create the backup server==&lt;br /&gt;
Create the backup server using the following steps.&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;quot;/opt/sybase/admin/SYB_BACKUP&amp;quot; directory and create a resource file. Use the following template as an example, call it SYB_BACKUP.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.backup_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: bsrv&lt;br /&gt;
 bsrv.server_name: SYB_BACKUP&lt;br /&gt;
 bsrv.new_config: yes&lt;br /&gt;
 bsrv.do_add_backup_server: yes&lt;br /&gt;
 bsrv.do_upgrade: no&lt;br /&gt;
 bsrv.network_protocol_list: tcp&lt;br /&gt;
 bsrv.network_hostname_list: prd-syb-ase2&lt;br /&gt;
 bsrv.network_port_list: 4001&lt;br /&gt;
 bsrv.language: USE_DEFAULT&lt;br /&gt;
 bsrv.character_set: USE_DEFAULT&lt;br /&gt;
 bsrv.tape_config_file: USE_DEFAULT&lt;br /&gt;
 bsrv.errorlog: USE_DEFAULT&lt;br /&gt;
 sqlsrv.related_sqlsrvr: ASE1&lt;br /&gt;
 sqlsrv.sa_login: sa&lt;br /&gt;
 sqlsrv.sa_password: USE_DEFAULT&lt;br /&gt;
 #bsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
&lt;br /&gt;
Build the server with the command:&lt;br /&gt;
 srvbuildres -r SYB_BACKUP.rs&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration files to the admin directory. First shutdown the backup server:&lt;br /&gt;
 isql -Usa -P -SASE1&lt;br /&gt;
 shutdown SYB_BACKUP&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Modify the RUN_SYB_BACKUP, located at $SYBASE/$SYBASE_ASE/install. Change the location of the log file,as specified with the -e flag. Change it to the admin directory. Also, move the line with the -s flag to the top. Sample RUN_SYB_BACKUP:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # Error log path:       /opt/sybase/ase155/ASE-15_0/install/SYB_BACKUP.log&lt;br /&gt;
 # Maximum number of network connections:        25&lt;br /&gt;
 # Maximum number of server connections: 20&lt;br /&gt;
 # Multibuf executable path:     /opt/sybase/ase155/ASE-15_0/bin/sybmultbuf&lt;br /&gt;
 # Backup Server name:   SYB_BACKUP&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase155/ASE-15_0/bin/backupserver \&lt;br /&gt;
 -SSYB_BACKUP \&lt;br /&gt;
 -e/opt/sybase/admin/SYB_BACKUP/SYB_BACKUP.log \&lt;br /&gt;
 -N25 \&lt;br /&gt;
 -C20 \&lt;br /&gt;
 -M/opt/sybase/ase155/ASE-15_0/bin/sybmultbuf \&lt;br /&gt;
 &lt;br /&gt;
Remove the old log file&lt;br /&gt;
 rm $SYBASE/$SYBASE_ASE/install/SYB_BACKUP.log&lt;br /&gt;
&lt;br /&gt;
Restart the backupserver&lt;br /&gt;
 startserver -f $SYBASE/$SYBASE_ASE/install/RUN_SYB_BACKUP&lt;br /&gt;
&lt;br /&gt;
==Create a user database==&lt;br /&gt;
 disk init name = data01,size=&amp;quot;1G&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/data01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 disk init name = log01,size=&amp;quot;100M&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/log01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 create database my_database on data01=&amp;quot;1G&amp;quot; log on log01 = &amp;quot;100M&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
==All done==&lt;br /&gt;
Happy Sybase-ing with your new server!!&lt;br /&gt;
&lt;br /&gt;
Further reading:&lt;br /&gt;
&lt;br /&gt;
Installatin guide for Linux http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc30119.1550/doc/html/title.html&lt;br /&gt;
&lt;br /&gt;
Sybase System administration http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc31654.1550/html/sag1/title.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:ASE]]&lt;br /&gt;
[[category:Installation Guidelines]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.0&amp;diff=1969</id>
		<title>Installation guidelines ASE 15.0</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.0&amp;diff=1969"/>
				<updated>2013-11-08T11:43:40Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to install and configure a Sybase ASE server.&lt;br /&gt;
&lt;br /&gt;
==Get the software==&lt;br /&gt;
First download ASE.&lt;br /&gt;
&lt;br /&gt;
For a licensed version you need to go here: http://sybase.subscribenet.com (account required) or to the eShop at sybase.com: http://eshop.sybase.com/eshop/buy?id=19517&lt;br /&gt;
&lt;br /&gt;
To get a free download you can go to this page http://www.sybase.com/detail?id=1052712&lt;br /&gt;
At the Linux promotion page from Sybase http://www.sybase.com/linuxpromo you can download ASE 15.0.2 in both 32 and 64 bit versions.&lt;br /&gt;
&lt;br /&gt;
Some alternative locations are described here http://www.sypron.nl/get_ase_soft.html&lt;br /&gt;
&lt;br /&gt;
==Prepare the Operating System==&lt;br /&gt;
Make sure that the filesystem for the Sybase software is big enough. A full installation needs approx. 800 Mb so 3 Gb should give you enough room to handle upgrades too. In this case we install the software in /opt/sybase/ase15. Database files will be stored on raw devices and/or in /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Become root and add a group &amp;quot;sybase&amp;quot; and a user &amp;quot;sybase&amp;quot; to the system. Also create the needed directories.&lt;br /&gt;
 mkdir -p /opt/sybase&lt;br /&gt;
 mkdir -p /var/sybase&lt;br /&gt;
 groupadd sybase&lt;br /&gt;
 useradd -g sybase -d /opt/sybase sybase&lt;br /&gt;
 chown sybase:sybase /opt/sybase&lt;br /&gt;
 chown sybase:sybase /var/sybase&lt;br /&gt;
&lt;br /&gt;
Enable the operating system to allow more than the default value for shared memory.&lt;br /&gt;
&lt;br /&gt;
*Solaris (pre version 10) /etc/system&lt;br /&gt;
set shmsys:shminfo_shmmax = 4294967295&lt;br /&gt;
&lt;br /&gt;
*Linux: modify /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;sysctl kernel.shmmax&amp;quot; to see the current value.&lt;br /&gt;
Configure a new value with &amp;quot;sysctl -w kernel.shmmax=78643200&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Raw devices or filesystem files==&lt;br /&gt;
Sybase recommends, and I fully 100% agree, to store all database files on raw devices except for temporary databases like tempdb. Some Unix adminstrators do not like raw devices and then you need to put everything on filesystems. Whenever possible, use directio when the mounted filesystem allows it.&lt;br /&gt;
===Raw devices===&lt;br /&gt;
When you do raw devices, create the following:&lt;br /&gt;
* master (60Mb but 100Mb is better)&lt;br /&gt;
* sybsystemprocs(150M)&lt;br /&gt;
* sybsystemdb(20M)&lt;br /&gt;
* data01 (for instance 32G but for testing purposes 100Mb is also good. You can always add more)&lt;br /&gt;
* log01(for instance 5G but for testing purposes 20Mb is also good. You can always add more).&lt;br /&gt;
Do not forget to chown the raw devices to the sybase user. Check if this setting is persistent after a reboot.&lt;br /&gt;
===File system files===&lt;br /&gt;
Make sure you have a filesystem that's big enough to store the files mentioned in the 'Raw devices' section.&lt;br /&gt;
===Temporory databases===&lt;br /&gt;
Files for temporary databases (like tempdb) should be stored on the filesystem. Allow at least for 100Mb but, depending on your application, 1Gb is not uncommon.&lt;br /&gt;
&lt;br /&gt;
==Determine your license policy==&lt;br /&gt;
Since ASE 15 you cannot run a production server with no license file. License files can reside on the network or on the local system. Think about the license policy that suits you best.&lt;br /&gt;
&lt;br /&gt;
When there is no valid license after the installation ASE will run with a grace time of 30 days. After that it will shutdown and it cannot be rebooted anymore until you install a license.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
Now, switch to the newly created user:&lt;br /&gt;
 su - sybase&lt;br /&gt;
You should now be in the directory /opt/sybase. Make a work directory and put the downloaded Sybase software in it.&lt;br /&gt;
 mkdir work&lt;br /&gt;
 cd work&lt;br /&gt;
 &amp;lt;put the software in this directory&amp;gt;&lt;br /&gt;
 tar -xf &amp;lt;software-distro&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the installation.&lt;br /&gt;
&lt;br /&gt;
 ./setup -console&lt;br /&gt;
&lt;br /&gt;
When you get a message like &amp;quot;A suitable JVM could not be found&amp;quot; check the following documents for a possible solution&lt;br /&gt;
* [[Running a 32 bit ASE executable with a 64 bit chip]]&lt;br /&gt;
* [[Ubuntu 64 bit ASE installation]]&lt;br /&gt;
&lt;br /&gt;
Use /opt/sybase/ase15 as the destination directory, do a full installation.&lt;br /&gt;
Assuming you store Sybase licenses on your local system, answer No at &amp;quot;Will licenses be obtained from the License Server?&amp;quot;.&lt;br /&gt;
Also, at &amp;quot;Do you want to configure email alerts?&amp;quot; answer No.&lt;br /&gt;
&lt;br /&gt;
At the possible options of the Product Edition choose the one that suits your situation. After installation you can reconfigure it, in case you picked the wrong option.&lt;br /&gt;
&lt;br /&gt;
At the list of possible servers to configure, deselect all options. We will do it manually.&lt;br /&gt;
&lt;br /&gt;
When the installation has finished succesful you can safely remove the work directory.&lt;br /&gt;
&lt;br /&gt;
==Setup your environment==&lt;br /&gt;
In /opt/sybase/ase15 you will find a few files, like SYBASE.csh, SYBASE.sh and SYBASE.env. Depending on the type of shell you use you need to source in one of these. For instance, when your default shell is bash you should do this:&lt;br /&gt;
&lt;br /&gt;
 . /opt/sybase/ase15/SYBASE.sh&lt;br /&gt;
&lt;br /&gt;
By doing:&lt;br /&gt;
&lt;br /&gt;
 echo $SYBASE&lt;br /&gt;
&lt;br /&gt;
it should return /opt/sybase/ase15.&lt;br /&gt;
Is is fairly common to activite the SYBASE.sh script (or similar one) from your login script.&lt;br /&gt;
&lt;br /&gt;
When you have generated a licence file through http://sybase.subscribenet.com install it in the directory $SYBASE/$SYBASE_SYSAM/licences&lt;br /&gt;
==Create the server==&lt;br /&gt;
Most installations run multiple ASE's and backup servers from a single Sybase software tree. For a good overview it is quite handy to store files that are specific for a server in it's own directory. In this example we create two servers: an ASE called ASE1 and a backupserver called SYB_BACKUP. Configuration files and the errorlog are stored in the admin directory, database files are stored in /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Create the directories for these servers:&lt;br /&gt;
 cd /opt/sybase&lt;br /&gt;
 mkdir admin&lt;br /&gt;
 mkdir admin/ASE1&lt;br /&gt;
 mkdir admin/SYB_BACKUP&lt;br /&gt;
 mkdir /var/sybase/ASE1&lt;br /&gt;
&lt;br /&gt;
When you choose to use raw device it's quite handy when you create symbolic links from /var/sybase/ASE1 to those devices. For example:&lt;br /&gt;
 ln -s /dev/hda4 /var/sybase/ASE1/master.dat&lt;br /&gt;
Do this also for the other raw devices that you made.&lt;br /&gt;
&lt;br /&gt;
Now go to the &amp;quot;/opt/sybase/admin/ASE1&amp;quot; directory and create a resource file. Use the following template as an example, call it ASE1.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.adaptive_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: sqlsrv&lt;br /&gt;
 sqlsrv.server_name: ASE1&lt;br /&gt;
 sqlsrv.new_config: yes&lt;br /&gt;
 sqlsrv.do_add_server: yes&lt;br /&gt;
 sqlsrv.network_protocol_list: tcp&lt;br /&gt;
 sqlsrv.network_hostname_list: PUT_YOUR_HOSTNAME_HERE&lt;br /&gt;
 sqlsrv.network_port_list: 4000&lt;br /&gt;
 sqlsrv.server_page_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.force_buildmaster: no&lt;br /&gt;
 sqlsrv.master_device_physical_name: /var/sybase/ASE1/master.dat&lt;br /&gt;
 sqlsrv.master_device_size: 60&lt;br /&gt;
 sqlsrv.master_database_size: 30&lt;br /&gt;
 sqlsrv.errorlog: /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 sqlsrv.do_upgrade: no&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_physical_name: /var/sybase/ASE1/sybsystemprocs.dat&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_size: 150&lt;br /&gt;
 sqlsrv.sybsystemprocs_database_size: 150&lt;br /&gt;
 sqlsrv.sybsystemdb_device_physical_name: /var/sybase/ASE1/sybsystemdb.dat&lt;br /&gt;
 sqlsrv.sybsystemdb_device_size: 20&lt;br /&gt;
 sqlsrv.sybsystemdb_database_size: 20&lt;br /&gt;
 sqlsrv.default_backup_server: SYB_BACKUP&lt;br /&gt;
 sqlsrv.addl_cmdline_parameters:&lt;br /&gt;
&lt;br /&gt;
Please note that the option sqlsrv.addl_cmdline_parameters was added in 15.0.2 so you do not need to specify this for older releases.&lt;br /&gt;
&lt;br /&gt;
Build the server with the command:&lt;br /&gt;
 srvbuildres -r ASE1.rs&lt;br /&gt;
&lt;br /&gt;
When the srvbuildres command fails with:&lt;br /&gt;
 Task failed&lt;br /&gt;
 Unable to boot server 'ASE1'.  &lt;br /&gt;
 Server 'ASE1' was not created.&lt;br /&gt;
then go to this page for tips how to solve this: [[srvbuildres task failed]].&lt;br /&gt;
&lt;br /&gt;
After a succesful creation you can connect to the server:&lt;br /&gt;
 isql -Usa -P -SASE1&lt;br /&gt;
&lt;br /&gt;
==Basic configuration==&lt;br /&gt;
===Load additional files===&lt;br /&gt;
Often forgotten, but you should load this file too:&lt;br /&gt;
 isql -Usa -P -SASE1 &amp;lt; $SYBASE/$SYBASE_ASE/scripts/instmsgs.ebf&lt;br /&gt;
&lt;br /&gt;
Load the monitoring tables (automatically done since 15.0.2), like this:&lt;br /&gt;
Pre 15.0, create a loopback server&lt;br /&gt;
 isql -Usa -P -SASE1&lt;br /&gt;
 sp_addserver loopback,null,@@servername&lt;br /&gt;
 go&lt;br /&gt;
 quit&lt;br /&gt;
Since 12.5.0.3, load the monitoring tables:&lt;br /&gt;
 isql -Usa -P -SASE1 &amp;lt; $SYBASE/$SYBASE_ASE/scripts/installmontables&lt;br /&gt;
&lt;br /&gt;
===Increase the size of tempdb===&lt;br /&gt;
Log on with isql and do the following:&lt;br /&gt;
 disk init name = temp01,physname=&amp;quot;/var/sybase/ASE1/temp01.dat&amp;quot;,dsync=false,size=&amp;quot;100M&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 alter database tempdb on temp01=100&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
For a more advanced configuration of tempdb, go here: [[Tempdb space management]].&lt;br /&gt;
===Create a user database===&lt;br /&gt;
 disk init name = data01,size=&amp;quot;1G&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/data01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 disk init name = log01,size=&amp;quot;100M&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/log01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 create database my_database on data01=&amp;quot;1G&amp;quot; log on log01 = &amp;quot;100M&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
===Very basic server configuration===&lt;br /&gt;
Set some common options and increase memory size. Depending on your situation you need to increase the given values.&lt;br /&gt;
 sp_configure &amp;quot;max memory&amp;quot;,100000&lt;br /&gt;
 go&lt;br /&gt;
 sp_cacheconfig &amp;quot;default data cache&amp;quot;,&amp;quot;20M&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 sp_poolconfig &amp;quot;default data cache&amp;quot;,&amp;quot;5M&amp;quot;,&amp;quot;4K&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 sp_poolconfig &amp;quot;default data cache&amp;quot;,&amp;quot;5M&amp;quot;,&amp;quot;16K&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 sp_configure &amp;quot;procedure cache size&amp;quot;,14000&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
These values provide only a minimal starting point and should not be used in a production environment. Consult your local DBA for further assistance.&lt;br /&gt;
&lt;br /&gt;
==Create the backup server==&lt;br /&gt;
Create the backup server using the following steps.&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;quot;/opt/sybase/admin/SYB_BACKUP&amp;quot; directory and create a resource file. Use the following template as an example, call it SYB_BACKUP.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.backup_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: bsrv&lt;br /&gt;
 bsrv.server_name: SYB_BACKUP&lt;br /&gt;
 bsrv.new_config: yes&lt;br /&gt;
 bsrv.do_add_backup_server: yes&lt;br /&gt;
 bsrv.do_upgrade: no&lt;br /&gt;
 bsrv.network_protocol_list: tcp&lt;br /&gt;
 bsrv.network_hostname_list: PUT_YOUR_HOSTNAME_HERE&lt;br /&gt;
 bsrv.network_port_list: 4001&lt;br /&gt;
 bsrv.language: USE_DEFAULT&lt;br /&gt;
 bsrv.character_set: USE_DEFAULT&lt;br /&gt;
 bsrv.tape_config_file: USE_DEFAULT&lt;br /&gt;
 bsrv.errorlog: /opt/sybase/admin/SYB_BACKUP/errorlog&lt;br /&gt;
 sqlsrv.related_sqlsrvr: ASE1&lt;br /&gt;
 sqlsrv.sa_login: sa&lt;br /&gt;
 sqlsrv.sa_password: USE_DEFAULT&lt;br /&gt;
 bsrv.addl_cmdline_parameters: &lt;br /&gt;
&lt;br /&gt;
Please note that the option bsrv.addl_cmdline_parameters was added in 15.0.2 so you do not need to specify this for older releases.&lt;br /&gt;
&lt;br /&gt;
Build the server with the command:&lt;br /&gt;
 srvbuildres -r SYB_BACKUP.rs&lt;br /&gt;
&lt;br /&gt;
==All done==&lt;br /&gt;
Happy Sybase-ing with your new server!!&lt;br /&gt;
&lt;br /&gt;
Further reading: http://infocenter.sybase.com/help/topic/com.sybase.dc30119_1501/html/installnx/title.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:ASE]]&lt;br /&gt;
[[category:Installation Guidelines]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Category:Installation_Guidelines&amp;diff=1968</id>
		<title>Category:Installation Guidelines</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Category:Installation_Guidelines&amp;diff=1968"/>
				<updated>2013-11-08T11:42:37Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: Created page with &amp;quot;This page lists the various Installation Guidelines available in the SybaseWiki.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists the various Installation Guidelines available in the SybaseWiki.&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_IQ_16&amp;diff=1967</id>
		<title>Installation guidelines IQ 16</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_IQ_16&amp;diff=1967"/>
				<updated>2013-11-08T11:41:13Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: Created page with &amp;quot;This page describes how to install and configure a Sybase IQ server, version 16.0.  If you are new to Sybase IQ, it will also give some information about the product and termi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to install and configure a Sybase IQ server, version 16.0.&lt;br /&gt;
&lt;br /&gt;
If you are new to Sybase IQ, it will also give some information about the product and terminology.&lt;br /&gt;
&lt;br /&gt;
==About Sybase IQ==&lt;br /&gt;
===About the product===&lt;br /&gt;
Here are 2 videos that might be worth watching.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| ||&lt;br /&gt;
|-&lt;br /&gt;
|{{#ev:youtube|Bbcl8uY3tj4|500}}&lt;br /&gt;
|{{#ev:youtube|9V8bmtWtY8M|500}}&lt;br /&gt;
|-&lt;br /&gt;
|To get a basic feeling of the product you can watch this sales video from SAP&lt;br /&gt;
|This video is more targeted towards DBA's who already have experience with Sybase IQ and it highlights the new features in version 16. (you might want to skip the first 5 minutes as this is mostly sales talk).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Some terminology===&lt;br /&gt;
Sybase IQ stores it's data in various places, here is a very brief overview of them:&lt;br /&gt;
* Catalog store or SYSTEM dbspace, holds the meta data of the system, the table definitions, the stored procedures, etc. This is the .db file.&lt;br /&gt;
* Transactionlog, holds transactional information of activity in the catalog store. This is the .log file.&lt;br /&gt;
* Mirror logfile. An optional (but recommended) file that mirrors the transactionlog. There is no default file extension so use .mirror.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then we have various dbspaces where the user data is stored, sorts are taking place, etc.&lt;br /&gt;
* IQ_SYSTEM_MAIN, holds various internal structures for checkpointing, backups, etc. These are the .iq files.&lt;br /&gt;
* IQ_SYSTEM_TEMP, holds temporary tables and is used for sorting data. These are the .iqtmp files.&lt;br /&gt;
* IQ_SHARED_TEMP, holds temporary data if you use Distributed Query Processing.&lt;br /&gt;
* User main, this dbspace holds your data. No default file extension here so use .iq.&lt;br /&gt;
&lt;br /&gt;
Each dbspace (execept for SYSTEM) consists of various files.&lt;br /&gt;
&lt;br /&gt;
==Get the software== &lt;br /&gt;
First download IQ. &lt;br /&gt;
&lt;br /&gt;
For a licensed version you need to go http://sybase.subscribenet.com (account required) or to the Sybase eShop http://eshop.sybase.com/eshop/buy?id=48151 &lt;br /&gt;
&lt;br /&gt;
A trial version can be downloaded here: http://scn.sap.com/community/developer-center/analytic-server &lt;br /&gt;
&lt;br /&gt;
==Sample directory structure==&lt;br /&gt;
In this document the following directory structure is used:&lt;br /&gt;
&lt;br /&gt;
* /opt/sybase/iq	- holds the Sybase IQ software&lt;br /&gt;
* /var/sybase/IQ1 – holds logfiles for the IQ instance and the for the catalog store&lt;br /&gt;
* /var/sybase/IQ1/iq_files – holds the dbspaces or symbolic links to raw devices.&lt;br /&gt;
&lt;br /&gt;
==Prepare the Operating System== &lt;br /&gt;
Before installing Sybase IQ 16 for a production environment, make sure you have read and followed the recommendations in the hardware size guide http://scn.sap.com/docs/DOC-41455&lt;br /&gt;
&lt;br /&gt;
Check that the filesystem for the Sybase software is big enough. A full installation needs approx. 1.5 Gb so 4 Gb should give you enough room to handle upgrades too. In this case we install the software in /opt/sybase/iq16. Database files will be stored on raw devices and in a subdirectory in /var/sybase. &lt;br /&gt;
&lt;br /&gt;
Become root and add a group &amp;quot;sybase&amp;quot; and a user &amp;quot;sybase&amp;quot; to the system. Also create the needed directories. &lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/sybase &lt;br /&gt;
 mkdir -p /var/sybase &lt;br /&gt;
 groupadd sybase &lt;br /&gt;
 useradd -g sybase -d /opt/sybase sybase &lt;br /&gt;
 chown sybase:sybase /opt/sybase &lt;br /&gt;
 chown sybase:sybase /var/sybase &lt;br /&gt;
&lt;br /&gt;
Check that your operating system has the required patches and configuration settings. Look in the installation documentation at http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc10083.1600/doc/html/title.html for detailed instructions. When you run the IQ installation, it will also check for some required packages.&lt;br /&gt;
&lt;br /&gt;
==Required packages==&lt;br /&gt;
For RedHat / Centos, you need to install these packages:&lt;br /&gt;
 yum install csh&lt;br /&gt;
 yum install file&lt;br /&gt;
 yum install libaio&lt;br /&gt;
 yum install libXext&lt;br /&gt;
 yum install libXrender&lt;br /&gt;
 yum install libXtst&lt;br /&gt;
 yum install libXi&lt;br /&gt;
&lt;br /&gt;
Based on Ubuntu Linux (unsupported but seems to work), you need to install these packages:&lt;br /&gt;
 &lt;br /&gt;
 apt-get install libaio1 &lt;br /&gt;
 apt-get install csh &lt;br /&gt;
 apt-get install libxrender1&lt;br /&gt;
 apt-get install libxtst6&lt;br /&gt;
 apt-get install ia32-libs &lt;br /&gt;
&lt;br /&gt;
==Prepare the Installation== &lt;br /&gt;
Now, switch to the newly created user: &lt;br /&gt;
 su - sybase &lt;br /&gt;
You should now be in the directory /opt/sybase. Make a work directory and put the downloaded Sybase software in it. &lt;br /&gt;
 mkdir work &lt;br /&gt;
 mkdir iq16 &lt;br /&gt;
 cd work &lt;br /&gt;
 &amp;lt;put the software in this directory&amp;gt; &lt;br /&gt;
 tar -xf &amp;lt;software-distro&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Installation== &lt;br /&gt;
Go into the directory with the installed software. Run the installer (for instance ./setup.bin). &lt;br /&gt;
 ./setup.bin &lt;br /&gt;
Answer the questions and install into /opt/sybase/iq16, select Typical or Full as Install Set. You can select what license type you need, Licensed or Evaluation. For the licenced version you need an account at http://sybase.subscribenet.com to generate the license keys. The evaluation license allows you to run IQ with all its features for 30 days. &lt;br /&gt;
Accept the default port numbers for Sybase Control Center, and specify the password for the SCC administrator. Do not start Sybase Control Center.&lt;br /&gt;
&lt;br /&gt;
Once the installation is complete you can remove the work directory and its content. &lt;br /&gt;
 cd /opt/sybase &lt;br /&gt;
 rm -Rf work &lt;br /&gt;
===Errors when running setup.bin=== &lt;br /&gt;
====java not found==== &lt;br /&gt;
&lt;br /&gt;
When you get an error like this &lt;br /&gt;
&lt;br /&gt;
 exec: 2508: /tmp/install.dir.10616/Linux/resource/jre/bin/java: not found &lt;br /&gt;
&lt;br /&gt;
you need to install software to run 32 bit binaries on a 64 bit machine. Become root again and install the required packages. &lt;br /&gt;
&lt;br /&gt;
On ubuntu: &lt;br /&gt;
&lt;br /&gt;
 apt-get install ia32-libs &lt;br /&gt;
 &lt;br /&gt;
On Redhat &lt;br /&gt;
&lt;br /&gt;
 yum install glibc-devel.i386 &lt;br /&gt;
&lt;br /&gt;
====Fontconfig error==== &lt;br /&gt;
&lt;br /&gt;
Ignore the error &amp;quot;Fontconfig error: Cannot load default config file&amp;quot; if you get it. &lt;br /&gt;
&lt;br /&gt;
==Setup your environment== &lt;br /&gt;
In /opt/sybase/iq16 you will find files like IQ.sh and IQ.csh. Depending on the type of shell you use, you need to source in one of these. For instance, when your default shell is bash you should do this: &lt;br /&gt;
 . /opt/sybase/iq16/IQ.sh &lt;br /&gt;
Is is fairly common to activate such a script from your login script. &lt;br /&gt;
&lt;br /&gt;
==Create raw devices== &lt;br /&gt;
Raw devices are recommended and you need them for the IQ Main Store, the Temporary Store and the User Stores.&lt;br /&gt;
For testing purposes use 2Gb for the Main store and 1 Gb for the Temporary store. You can always add more when needed, but plan well ahead in case you want to run any serious production.&lt;br /&gt;
&lt;br /&gt;
The number of files in a dbspace are important, as well as the size and expected size in the future. In this example we will use 2 files per dbspace but use 8 to 12 files in production environments, each placed on a separate LUN.&lt;br /&gt;
&lt;br /&gt;
Do not forget to chown the raw devices to the sybase user. Check if this setting is persistent after a reboot.&lt;br /&gt;
&lt;br /&gt;
==Start the IQ server (utility database only)== &lt;br /&gt;
Create a directory where server and database specific files will be stored &lt;br /&gt;
 mkdir /var/sybase/IQ1&lt;br /&gt;
 cd /var/sybase/IQ1&lt;br /&gt;
 mkdir iq_files&lt;br /&gt;
&lt;br /&gt;
Set the variable IQLOGDIR16 to a directory where the logfiles will be stored. When you do not set the variable, they will go to $IQDIR16/logfiles (/opt/sybase/iq16/IQ-16_0/logfiles).&lt;br /&gt;
&lt;br /&gt;
 export IQLOGDIR16=/var/sybase/IQ1&lt;br /&gt;
&lt;br /&gt;
Start the IQ server with only the (virtual) utility database active. Use the start_iq command and specify the name of the server using the -n flag. &lt;br /&gt;
&lt;br /&gt;
 start_iq -n IQ1&lt;br /&gt;
&lt;br /&gt;
==Connect to the IQ server== &lt;br /&gt;
Use dbisql to connect to the IQ server. You may need to set the DISPLAY variable.&lt;br /&gt;
 dbisql&lt;br /&gt;
&lt;br /&gt;
When you get the error “Could not initialize class java.awt.Toolkit” make sure that the required packages are installed. See above section.&lt;br /&gt;
&lt;br /&gt;
Specify “DBA” for the User ID, “sql” for the password, choose “Connect to a running database on this computer” and “utility_db” as the database name. Click Connect.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use dbisqlc with a basic gui or iqisql but both of these tools are deprecated.&lt;br /&gt;
 &lt;br /&gt;
==Create a database== &lt;br /&gt;
&lt;br /&gt;
The create database command has several option that can have a big impact on performance. See notes below or study the Sybase documentation to get the best result. &lt;br /&gt;
Example: &lt;br /&gt;
 create database 'IQ1.db' &lt;br /&gt;
 transaction log on 'IQ1.log' &lt;br /&gt;
 mirror 'IQ1.mirror' &lt;br /&gt;
 message path 'IQ1.iqmsg' &lt;br /&gt;
 iq path 'iq_files/IQ1_01.iq' &lt;br /&gt;
 iq size 2000&lt;br /&gt;
 iq reserve 2000 &lt;br /&gt;
 temporary path 'iq_files/IQ1_01.iqtmp' &lt;br /&gt;
 temporary size 1000&lt;br /&gt;
 temporary reserve 1000&lt;br /&gt;
 dba user 'DBA'&lt;br /&gt;
 dba password '4yourEyes' &lt;br /&gt;
&lt;br /&gt;
When the database has been successfully created you can stop the IQ server&lt;br /&gt;
 stop engine&lt;br /&gt;
and then exit from dbisql.&lt;br /&gt;
 exit &lt;br /&gt;
===Notes for the &amp;quot;create database&amp;quot; command.=== &lt;br /&gt;
* The default page size for IQ files (.iq and .iqtmp files) is 128 Kb. When a single table in the database is expected to grow above 8 Tb or will have more than 4 billion rows choose the next bigger IQ page size of 256Kb. &lt;br /&gt;
* When creating a database or a dbspace you can ommit the fully specified path to the filename. When you use filenames relative to the IQ server it is more easy to move a database to another server. &lt;br /&gt;
* When using raw devices do not use the clause &amp;quot;iq size&amp;quot; and/or &amp;quot;temporary size&amp;quot;. IQ will determine the size of the raw device and use it completely. &lt;br /&gt;
* When the database is created and you know that it will grow after some time, add the “iq reserve” clause to the “create database” command. This will create a contiguous free list that is already large enough for the future size of the database and so prevents a fragmented free list. Do the same when the user dbspace is created (see below). Then add the “reserve” clause.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Create a configuration file== &lt;br /&gt;
In the directory /var/sybase/IQ1 create a configuration file called params.cfg with at least the following content &lt;br /&gt;
 -n IQ1 &lt;br /&gt;
 -iqmc 4000 &lt;br /&gt;
 -iqtc 6000 &lt;br /&gt;
&lt;br /&gt;
This configuration file sets the name of the server, the main cache size to 4000Mb, the temp cache size to 6000Mb. Specify as much memory as you can but leave a safe margin for other processes. Sybase recommends to keep the ration between main and temp cache 3:7 or 4:6 but it really depends on the type of activity on the IQ instance.&lt;br /&gt;
Then start the database &lt;br /&gt;
 start_iq @./params.cfg ./IQ1.db &lt;br /&gt;
&lt;br /&gt;
==Create a user dbspace== &lt;br /&gt;
Log on with dbisql and use the username/password combination as specified with the create database command. Then create a user space where all tables for the application should be stored. Example: &lt;br /&gt;
&lt;br /&gt;
 create dbspace user_main &lt;br /&gt;
 using file user_main_01 'iq_files/user_main_01.iq' &lt;br /&gt;
 size 5000 MB&lt;br /&gt;
 reserve 5000 MB&lt;br /&gt;
 iq store; &lt;br /&gt;
&lt;br /&gt;
As we do not want to store any user data in IQ_SYSTEM_MAIN transfer the privileges to create objects to user_main.&lt;br /&gt;
&lt;br /&gt;
 set option public.default_dbspace = 'user_main'; &lt;br /&gt;
 grant create on user_main to public; &lt;br /&gt;
 revoke create on iq_system_main from public; &lt;br /&gt;
&lt;br /&gt;
==Extend the db spaces with a second file==&lt;br /&gt;
For performance reasons you should use multiple files per dbspace. Here are examples to extend the 3 different dbspaces: IQ_SYSTEM_MAIN, IQ_SYSTEM_TEMP and user_main.&lt;br /&gt;
&lt;br /&gt;
 alter dbspace IQ_SYSTEM_MAIN &lt;br /&gt;
 add file main_02 'iq_files/IQ1_02.iq' &lt;br /&gt;
 size 2000 MB reserve 2000 MB; &lt;br /&gt;
&lt;br /&gt;
 alter dbspace IQ_SYSTEM_TEMP &lt;br /&gt;
 add file temp_02 'iq_files/IQ1_02.iqtmp' &lt;br /&gt;
 size 1000 MB reserve 1000 MB; &lt;br /&gt;
&lt;br /&gt;
 alter dbspace user_main &lt;br /&gt;
 add file user_main_02 'iq_files/user_main_02.iq' &lt;br /&gt;
 size 5000 MB&lt;br /&gt;
 reserve 5000 MB;&lt;br /&gt;
&lt;br /&gt;
Try to keep all the files in any dbspace to the same size to achieve a situation that all files are more or less filled at the same capacity. &lt;br /&gt;
&lt;br /&gt;
By default, Sybase IQ stripes the date over the various files within a dbspace. For performance reasons it is best to have IQ handle the striped writes rather than a SAN storage system. Doing striped writes from both sides (SAN and IQ) may be counter productive.  &lt;br /&gt;
&lt;br /&gt;
You can run these stored procedures to view the dbspaces and their files&lt;br /&gt;
&lt;br /&gt;
 exec sp_iqfile;&lt;br /&gt;
 exec sp_iqdbspace;&lt;br /&gt;
&lt;br /&gt;
==Getting started with users and tables==&lt;br /&gt;
&lt;br /&gt;
 create user develop identified by 'GoodLuck';&lt;br /&gt;
 grant create any object to develop;&lt;br /&gt;
&lt;br /&gt;
Log off from dbisql and reconnect with the credentials of the new user. Then create the first table.&lt;br /&gt;
&lt;br /&gt;
 create table company(&lt;br /&gt;
 company_id	int		not null,&lt;br /&gt;
 company_name	varchar(30)	not null);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:IQ]] &lt;br /&gt;
[[category:Installation Guidelines]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Could_not_find_or_load_the_physical_store_DLL&amp;diff=1966</id>
		<title>Could not find or load the physical store DLL</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Could_not_find_or_load_the_physical_store_DLL&amp;diff=1966"/>
				<updated>2013-11-04T19:47:14Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Make sure that asynchronous I/O is enabled */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When you get this error&lt;br /&gt;
&lt;br /&gt;
 Unable to start specified database: Could not find or load the physical store DLL.&lt;br /&gt;
&lt;br /&gt;
You might want to investigate 2 things&lt;br /&gt;
&lt;br /&gt;
==Do not use shared memory==&lt;br /&gt;
Remove the iqwmem switch from the params.cfg file for the IQ server when you are *not* on Solaris or HP-UX. Example:&lt;br /&gt;
&lt;br /&gt;
 -iqwmem 500&lt;br /&gt;
&lt;br /&gt;
See http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc00169.1600/doc/html/san1281545678021.html for more information.&lt;br /&gt;
&lt;br /&gt;
==Make sure that asynchronous I/O is enabled==&lt;br /&gt;
Asynchronous I/O must be enabled on the server where the IQ instance is running.&lt;br /&gt;
&lt;br /&gt;
On RedHat / Centos / Fedora&lt;br /&gt;
&lt;br /&gt;
 yum install libaio&lt;br /&gt;
&lt;br /&gt;
On Ubuntu:&lt;br /&gt;
&lt;br /&gt;
 apt-get install libaio1&lt;br /&gt;
&lt;br /&gt;
==Before you try again==&lt;br /&gt;
In both cases you need to reboot the IQ instance to activate the changed configuration&lt;br /&gt;
&lt;br /&gt;
[[Category:IQ]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Main_Page&amp;diff=1965</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Main_Page&amp;diff=1965"/>
				<updated>2013-10-19T16:03:09Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Welcome to the SybaseWiki=&lt;br /&gt;
&lt;br /&gt;
This wiki is created to provide additional information for the usage of various [http://www.sybase.com Sybase] products. It's maintained by [[User:Psap|Peter Sap]]. If you want to add or change content, just drop me a mail at mailto:peter@petersap.nl and I'll create an account for you. Thank you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Information in the wiki is grouped per product: &lt;br /&gt;
{|&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| ||&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:ASE|Adaptive server Enterprise]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:RepServer|Replication Server]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:IQ|Sybase IQ]]&lt;br /&gt;
|-&lt;br /&gt;
|[[:Category:OpenSwitch|OpenSwitch]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A special place has been created for GUI tools: [[:Category:GUI Tools|GUI Tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stay up to date==&lt;br /&gt;
Through [http://www.feedburner.com FeedBurner (from Google)] you can subscribe to updates about new pages and changes to SybaseWiki. Follow this link to subscribe to this free service:&lt;br /&gt;
&lt;br /&gt;
[http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1613549&amp;amp;amp;loc=en_US Subscribe to SybaseWiki - Recent changes by Email]&lt;br /&gt;
&lt;br /&gt;
The RSS feed is here: [http://www.petersap.nl/SybaseWiki/index.php?title=Special:Recentchanges&amp;amp;feed=rss Recent changes by RSS]&lt;br /&gt;
&lt;br /&gt;
Or follow Peter Sap on twitter: [https://twitter.com/intent/follow?region=follow_link&amp;amp;screen_name=petersap&amp;amp;source=followbutton&amp;amp;variant=2.0 @petersap]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Pages==&lt;br /&gt;
Links to other sites with Sybase info: [[Sybase links]]&lt;br /&gt;
&lt;br /&gt;
Miscellaneous pages: [[Miscellaneous]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Could_not_find_or_load_the_physical_store_DLL&amp;diff=1964</id>
		<title>Could not find or load the physical store DLL</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Could_not_find_or_load_the_physical_store_DLL&amp;diff=1964"/>
				<updated>2013-10-02T19:31:39Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: Created page with 'When you get this error   Unable to start specified database: Could not find or load the physical store DLL.  You might want to investigate 2 things  ==Do not use shared memory==…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When you get this error&lt;br /&gt;
&lt;br /&gt;
 Unable to start specified database: Could not find or load the physical store DLL.&lt;br /&gt;
&lt;br /&gt;
You might want to investigate 2 things&lt;br /&gt;
&lt;br /&gt;
==Do not use shared memory==&lt;br /&gt;
Remove the iqwmem switch from the params.cfg file for the IQ server when you are *not* on Solaris or HP-UX. Example:&lt;br /&gt;
&lt;br /&gt;
 -iqwmem 500&lt;br /&gt;
&lt;br /&gt;
See http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc00169.1600/doc/html/san1281545678021.html for more information.&lt;br /&gt;
&lt;br /&gt;
==Make sure that asynchronous I/O is enabled==&lt;br /&gt;
Asynchronous I/O must be enabled on the server where the IQ instance is running.&lt;br /&gt;
&lt;br /&gt;
On Ubuntu:&lt;br /&gt;
&lt;br /&gt;
 apt-get install libaio1&lt;br /&gt;
&lt;br /&gt;
==Before you try again==&lt;br /&gt;
In both cases you need to reboot the IQ instance to activate the changed configuration&lt;br /&gt;
&lt;br /&gt;
[[Category:IQ]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_RepServer_15.7.1&amp;diff=1963</id>
		<title>Installation guidelines RepServer 15.7.1</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_RepServer_15.7.1&amp;diff=1963"/>
				<updated>2013-04-29T10:03:39Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: Created page with 'This page describes how to install and configure a Sybase Replication Server version 15.7.1. You will also learn how to connect to the server, stop and restart it.  ==Get the sof…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to install and configure a Sybase Replication Server version 15.7.1. You will also learn how to connect to the server, stop and restart it.&lt;br /&gt;
&lt;br /&gt;
==Get the software==&lt;br /&gt;
First download the software for Replication Server.&lt;br /&gt;
&lt;br /&gt;
For a licensed version you need to go here: http://sybase.subscribenet.com (account required) or to the eShop at sybase.com: http://eshop.sybase.com/eshop/buy?id=22574&lt;br /&gt;
Downloads are also available at the Sybase download center at http://downloads.sybase.com/swd/base.do?client=support. Once registered you can download the latest EBF (patch) for the desired platform. An EBF can sometimes also be used for a full installation. &lt;br /&gt;
&lt;br /&gt;
==Storage requirements==&lt;br /&gt;
Make sure that the filesystem for the Sybase software is big enough. A full installation needs approx. 570 Mb so 2 Gb should give you enough room to handle upgrades too. In this case we install the software in /opt/sybase/rep1571.&lt;br /&gt;
&lt;br /&gt;
Replication server partitions (stable devices) will be stored /var/sybase. The mininum size of the initial partition is 20 Mb.&lt;br /&gt;
Additional partitions that may be needed to queue up data must be taken into account as well. The requirements vary per environment and usage. When you run out of space in partitions you can always add more.&lt;br /&gt;
&lt;br /&gt;
The partitions can be created on raw devices or on filesystem files (opened with Direct I/O).&lt;br /&gt;
&lt;br /&gt;
==Memory requirements==&lt;br /&gt;
When running replication server on a virtualized environment, you need 300 Mb of RAM as a bare minimum. Increase memory when needed.&lt;br /&gt;
==Prepare the operating system==&lt;br /&gt;
&lt;br /&gt;
Become root and add a group &amp;quot;sybase&amp;quot; and a user &amp;quot;sybase&amp;quot; to the system. Also create the needed directories.&lt;br /&gt;
Strictly spoken, the usage of the username and groupname called &amp;quot;sybase&amp;quot; is not needed, any username is fine.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/sybase&lt;br /&gt;
 mkdir -p /var/sybase&lt;br /&gt;
 groupadd sybase&lt;br /&gt;
 useradd -g sybase -d /opt/sybase sybase&lt;br /&gt;
 passwd sybase&lt;br /&gt;
 chown sybase:sybase /opt/sybase&lt;br /&gt;
 chown sybase:sybase /var/sybase&lt;br /&gt;
&lt;br /&gt;
==Installation of the software==&lt;br /&gt;
Now, switch to the newly created user:&lt;br /&gt;
 su - sybase&lt;br /&gt;
You should now be in the directory /opt/sybase. Make a work directory and put the downloaded Sybase software in it.&lt;br /&gt;
 mkdir install&lt;br /&gt;
 cd install&lt;br /&gt;
 &amp;lt;put the software in this directory&amp;gt;&lt;br /&gt;
 tar -xf &amp;lt;software-distro&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the installation (when using an EBF download as installation file you may need to go into a subdirectory)&lt;br /&gt;
&lt;br /&gt;
 ./setup.bin&lt;br /&gt;
&lt;br /&gt;
Use /opt/sybase/rep1571 as the destination directory, do a full installation, and continue installation without a license key, no e-mail alerts. Do not start the sample replication server as we will do a manual configuration.&lt;br /&gt;
&lt;br /&gt;
When the installation has finished successful you can safely remove the work directory and the installation package.&lt;br /&gt;
&lt;br /&gt;
===Errors when running setup.bin===&lt;br /&gt;
====java not found====&lt;br /&gt;
When you get an error like this&lt;br /&gt;
&lt;br /&gt;
 exec: 2508: /tmp/install.dir.527/Linux/resource/jre/bin/java: not found&lt;br /&gt;
&lt;br /&gt;
you need to install software to run 32 bit binaries on a 64 bit machine. Become root again and install the required packages.&lt;br /&gt;
&lt;br /&gt;
On ubuntu:&lt;br /&gt;
&lt;br /&gt;
 apt-get install ia32-libs&lt;br /&gt;
&lt;br /&gt;
On Redhat&lt;br /&gt;
&lt;br /&gt;
 yum install glibc-devel.i386&lt;br /&gt;
&lt;br /&gt;
====Fontconfig error====&lt;br /&gt;
Ignore the error &amp;quot;Fontconfig error: Cannot load default config file&amp;quot; if you get it.&lt;br /&gt;
&lt;br /&gt;
==Setup your environment==&lt;br /&gt;
In /opt/sybase/rep1571 you will find files like SYBASE.csh, SYBASE.sh and SYBASE.env. Depending on the type of shell you use you need to source in one of these. For instance, when your default shell is bash you should do this:&lt;br /&gt;
&lt;br /&gt;
 . /opt/sybase/rep1571/SYBASE.sh&lt;br /&gt;
&lt;br /&gt;
By doing:&lt;br /&gt;
&lt;br /&gt;
 echo $SYBASE&lt;br /&gt;
&lt;br /&gt;
it should return /opt/sybase/rep1571.&lt;br /&gt;
Is is fairly common to activate the SYBASE.sh script (or similar one) from your login script. &lt;br /&gt;
&lt;br /&gt;
When you have generated a licence file through http://sybase.subscribenet.com install it in the directory $SYBASE/SYSAM-2_0/licenses&lt;br /&gt;
&lt;br /&gt;
You can run without a license for 30 days (grace period).&lt;br /&gt;
&lt;br /&gt;
==Create the Replication Server==&lt;br /&gt;
A Replication Server needs an system database (RSSD) to store its definitions. You can choose between a Sybase ASE (RSSD) or an embedded SQL Anywhere database (ERSSD).&lt;br /&gt;
The choice between them depends on licensing costs, availabity of hardware or personal preference. After configuring replication server with either RSSD or ERSSD you cannot switch between them.&lt;br /&gt;
&lt;br /&gt;
When you select an ERSSD you do not need to manage it, it is all handled automatically. When choosing an RSSD (Sybase ASE) there is an extra layer of software that you need to install, manage and probably pay for as well. &lt;br /&gt;
&lt;br /&gt;
In this document an ERSSD server will be used for the Replication Server System Database.&lt;br /&gt;
&lt;br /&gt;
Create the directories for these servers:&lt;br /&gt;
 cd /opt/sybase&lt;br /&gt;
 mkdir admin&lt;br /&gt;
 mkdir admin/REP1&lt;br /&gt;
 mkdir admin/REP1_ERSSD&lt;br /&gt;
 mkdir /var/sybase/REP1&lt;br /&gt;
 mkdir -p /var/sybase/REP1_ERSSD/database&lt;br /&gt;
 mkdir /var/sybase/REP1_ERSSD/translog&lt;br /&gt;
 mkdir /var/sybase/REP1_ERSSD/backup&lt;br /&gt;
&lt;br /&gt;
Now go to the &amp;quot;/opt/sybase/admin/REP1&amp;quot; directory and create a resource file. Use the following template as an example, call it REP1.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_REP/init/rs/install.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.product: rs&lt;br /&gt;
 rs.rs_operation: rs_install&lt;br /&gt;
 rs.rs_idserver_name: REP1&lt;br /&gt;
 rs.rs_id_server_is_rs_server: yes&lt;br /&gt;
 # Password for rs_REP1_id_user (RS to RS connectivity)&lt;br /&gt;
 rs.rs_idserver_pass: secret123&lt;br /&gt;
 rs.rs_name: REP1&lt;br /&gt;
 # Password for &amp;quot;sa&amp;quot; user&lt;br /&gt;
 rs.rs_rs_sa_pass: secret123&lt;br /&gt;
 rs.rs_needs_repagent: yes&lt;br /&gt;
 rs.rs_rs_errorlog: /opt/sybase/admin/REP1/REP1.errorlog&lt;br /&gt;
 rs.rs_rs_cfg_file: /opt/sybase/admin/REP1/REP1.cfg&lt;br /&gt;
 rs.rs_rssd_embedded: yes&lt;br /&gt;
 rs.rs_erssd_name: REP1_ERSSD&lt;br /&gt;
 rs.rs_erssd_database_dir: /var/sybase/REP1_ERSSD/database&lt;br /&gt;
 rs.rs_erssd_translog_dir: /var/sybase/REP1_ERSSD/translog&lt;br /&gt;
 rs.rs_erssd_backup_dir: /var/sybase/REP1_ERSSD/backup&lt;br /&gt;
 rs.rs_erssd_errorlog_dir: /opt/sybase/admin/REP1_ERSSD&lt;br /&gt;
 # Password for REP1_RSSD_prim&lt;br /&gt;
 rs.rs_rssd_prim_pass: secret123&lt;br /&gt;
 # Password for REP1_RSSD_maint&lt;br /&gt;
 rs.rs_rssd_maint_pass: secret123&lt;br /&gt;
 rs.rs_diskp_name: /var/sybase/REP1/part1.dat&lt;br /&gt;
 rs.rs_diskp_lname: part1&lt;br /&gt;
 # Password for REP1_rsi&lt;br /&gt;
 rs.rs_rs_pass: secret123&lt;br /&gt;
 # Password for REP1_ltm&lt;br /&gt;
 rs.rs_ltm_rs_pass: secret123&lt;br /&gt;
 rs.rs_id_server_network_protocol_list: tcp&lt;br /&gt;
 rs.rs_idserver_hostname: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 rs.rs_idserver_port: 5000&lt;br /&gt;
 rs.rs_rs_port: 5000&lt;br /&gt;
&lt;br /&gt;
When the partition as defined by &amp;quot;rs.rs_diskp_name&amp;quot; is on filesystem, you need to create the file with the &amp;quot;touch&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
 touch /var/sybase/REP1/part1.dat&lt;br /&gt;
&lt;br /&gt;
Add the entries for repserver and ERSSD to $SYBASE/interfaces&lt;br /&gt;
&lt;br /&gt;
 REP1&lt;br /&gt;
 	master tcp ether &amp;lt;put your hostname here&amp;gt; 5000&lt;br /&gt;
 	query tcp ether &amp;lt;put your hostname here&amp;gt; 5000&lt;br /&gt;
 &lt;br /&gt;
 REP1_ERSSD&lt;br /&gt;
 	query tcp ether &amp;lt;put your hostname here&amp;gt; 5001&lt;br /&gt;
&lt;br /&gt;
Now build the server with the command:&lt;br /&gt;
 $SYBASE/$SYBASE_REP/install/rs_init -r REP1.rs&lt;br /&gt;
&lt;br /&gt;
After a successful creation you can connect to the replication server using the command line tool isql. The login “sa&amp;quot; has been created, with the password that was specified in REP1.rs file. At the prompt of isql you can type a command or type exit to exit.&lt;br /&gt;
 isql -Usa -Psecret123 -SREP1&lt;br /&gt;
 admin who&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
To connect to the ERSSD server cou can use the REP1_RSSD_prim login.&lt;br /&gt;
 isql -UREP1_RSSD_prim -Psecret123 -SREP1_ERSSD&lt;br /&gt;
 sa_conn_info&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Basic Replication server tasks==&lt;br /&gt;
&lt;br /&gt;
===To shutdown Replication Server===&lt;br /&gt;
 isql -Usa -Psecret123 -SREP1&lt;br /&gt;
 shutdown&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
===To start Replication Server===&lt;br /&gt;
 cd /opt/sybase/admin/REP1&lt;br /&gt;
 nohup ./RUN_REP1 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
===Check status===&lt;br /&gt;
When replication server has been started you can check if the status is ok by running the &amp;quot;admin health&amp;quot; command. It should return &amp;quot;HEALTHY&amp;quot;. When the status is not healthy check the errorlog file (at /opt/sybase/admin/REP1/REP1.errorlog) for the cause.&lt;br /&gt;
Please note that immediately after a start of replication server it may take a couple of minutes before all processes are up and running.&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -Psecret123 -SREP1&lt;br /&gt;
 admin health&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Recommended settings==&lt;br /&gt;
The following settings are recommended to improve stability and performance. To change a setting, use isql and log on with the sa account&lt;br /&gt;
 isql -Usa -Psecret123 -SREP1&lt;br /&gt;
&lt;br /&gt;
===Enable direct i/o===&lt;br /&gt;
Set sqm_write_flush to dio to enable direct I/O on the partitions. A reboot is needed to activate the setting.&lt;br /&gt;
&lt;br /&gt;
 configure replication server set sqm_write_flush to 'dio'&lt;br /&gt;
 go&lt;br /&gt;
 shutdown&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
===sqt_max_cache_size===&lt;br /&gt;
Increase sqt_max_cache_size when the following message is shown the errorlog:&lt;br /&gt;
&lt;br /&gt;
 WARNING #24068 SQT(105:1 DIST PRIM.tpcc) - t/sqtint.c(1333)&lt;br /&gt;
 SQT cache size is too low to load more than one transaction into the cache.&lt;br /&gt;
&lt;br /&gt;
As a rule of thumb you can double the value (default is 1048576 for 32 bit, 20971520 for 64 bit) but don't overdo it. Retrieve the current value with&lt;br /&gt;
&lt;br /&gt;
 admin config,sqt_max_cache_size&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
 configure replication server set sqt_max_cache_size to '41943040'&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
Increasing the value may require that you increase the allocated amount of memory for replication server (setting memory_limit).&lt;br /&gt;
===sts_cachesize===&lt;br /&gt;
Increase the value for sts_cachesize when this message is printed in the errorlog:&lt;br /&gt;
&lt;br /&gt;
 I. 2013/01/12 15:39:53. A cached row for system table ‘rs_columns’ was swapped out of the cache in order to accomodate another row.&lt;br /&gt;
&lt;br /&gt;
 configure replication server set sts_cachesize to '2000'&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
You can retrieve the current value with&lt;br /&gt;
&lt;br /&gt;
 admin config,sts_cachesize&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==All done==&lt;br /&gt;
Happy Sybase-ing with your new server!!&lt;br /&gt;
&lt;br /&gt;
Further reading:&lt;br /&gt;
&lt;br /&gt;
Installation guide for Unix http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32237.1571/doc/html/title.html&lt;br /&gt;
&lt;br /&gt;
Getting started http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc10114.1571/doc/html/title.html&lt;br /&gt;
&lt;br /&gt;
Reference manual http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32410.1571/doc/html/title.html&lt;br /&gt;
&lt;br /&gt;
[[Category:RepServer]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.7&amp;diff=1962</id>
		<title>Installation guidelines ASE 15.7</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.7&amp;diff=1962"/>
				<updated>2013-04-10T12:40:49Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to install and configure a Sybase ASE server version 15.7. You will also learn how to connect to the server, stop and restart it.&lt;br /&gt;
&lt;br /&gt;
==Get the software==&lt;br /&gt;
First download ASE.&lt;br /&gt;
&lt;br /&gt;
For a licensed version you need to go here: http://sybase.subscribenet.com (account required) or to the eShop at sybase.com: http://eshop.sybase.com/eshop/buy?id=19517&lt;br /&gt;
&lt;br /&gt;
To get a free download you can go to this page http://www.sybase.com/ase_1500devel. You can download ASE 15.7 for various operating systems and chipsets. When you install ASE you can choose to run without a license (limited features) or install a licenced version and buy a license from Sybase.&lt;br /&gt;
&lt;br /&gt;
Downloads are also available at the Sybase download center at http://downloads.sybase.com/swd/base.do?client=support. Once registered you can download the latest EBF (patch) for the desired platform. An EBF can also be used for a full installation. &lt;br /&gt;
&lt;br /&gt;
==Prepare the Operating System==&lt;br /&gt;
Make sure that the filesystem for the Sybase software is big enough. A full installation needs approx. 1.5 Gb so 4 Gb should give you enough room to handle upgrades too. In this case we install the software in /opt/sybase/ase157. Database files will be stored /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Become root and add a group &amp;quot;sybase&amp;quot; and a user &amp;quot;sybase&amp;quot; to the system. Also create the needed directories.&lt;br /&gt;
Strictly spoken, the usage of the username and groupname called &amp;quot;sybase&amp;quot; is not needed, any username is fine.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/sybase&lt;br /&gt;
 mkdir -p /var/sybase&lt;br /&gt;
 groupadd sybase&lt;br /&gt;
 useradd -g sybase -d /opt/sybase sybase&lt;br /&gt;
 passwd sybase&lt;br /&gt;
 chown sybase:sybase /opt/sybase&lt;br /&gt;
 chown sybase:sybase /var/sybase&lt;br /&gt;
&lt;br /&gt;
Enable the operating system to allow more than the default value for shared memory.&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
To see the current value of shared memory:&lt;br /&gt;
 sysctl kernel.shmmax&lt;br /&gt;
&lt;br /&gt;
To configure a shared memory segment of 4 Gb&lt;br /&gt;
 sysctl -w kernel.shmmax=4294967296&lt;br /&gt;
&lt;br /&gt;
Then add kernel.shmmax=4294967296 to /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
See also [[Linux configuration settings for Sybase ASE]], but these settings can be done when the installation and configuration has been completed.&lt;br /&gt;
&lt;br /&gt;
When installing Sybase ASE 64 bit version on Linux, you may want to install the 32 bit shared libraries as well. This will prevent problems when running isql or bcp.&lt;br /&gt;
 apt-get install ia32-libs&lt;br /&gt;
&lt;br /&gt;
===Solaris (pre version 10)===&lt;br /&gt;
/etc/system&lt;br /&gt;
 set shmsys:shminfo_shmmax = 4294967296&lt;br /&gt;
&lt;br /&gt;
===Solaris (system 10)===&lt;br /&gt;
/etc/project&lt;br /&gt;
 projadd -c &amp;quot;sybase&amp;quot; 'user.sybase'&lt;br /&gt;
 projmod -s -K &amp;quot;project.max-shm-memory={privileged,4GB,deny}&amp;quot; 'user.sybase'&lt;br /&gt;
&lt;br /&gt;
==Raw devices or filesystem files==&lt;br /&gt;
Sybase recommends to store all database files on raw devices except for temporary databases like tempdb. Some Unix adminstrators do not like raw devices and then you need to put everything on filesystems. Also, consult your storage administrator when in doubt.&lt;br /&gt;
&lt;br /&gt;
===Raw devices===&lt;br /&gt;
When you use raw devices, create the following:&lt;br /&gt;
* master (100 Mb)&lt;br /&gt;
* sybsystemprocs (172M)&lt;br /&gt;
* sybsystemdb (6M)&lt;br /&gt;
* data01 (for instance 10G but for testing purposes 100Mb is also good. You can always add more)&lt;br /&gt;
* log01(for instance 2G but for testing purposes 20Mb is also good. You can always add more).&lt;br /&gt;
Do not forget to chown the raw devices to the sybase user. Check if this setting is persistent after a reboot.&lt;br /&gt;
&lt;br /&gt;
===Temporory databases===&lt;br /&gt;
Files for temporary databases (like tempdb) should be stored on the filesystem. Allow at least  100Mb but, depending on your application, several Gb's or much more is not uncommon.&lt;br /&gt;
&lt;br /&gt;
==Determine your license policy==&lt;br /&gt;
Since ASE 15.0 you cannot run a production server without a license file. License files can reside on the network or on the local system. Think about the license policy that suits you best. Most sites choose for license files on each Unix server.&lt;br /&gt;
&lt;br /&gt;
When there is no valid license, ASE will run with a grace time of 30 days. After that it will shutdown and it cannot be rebooted anymore until you install a license, or change the license settings revert to the Express Edition.&lt;br /&gt;
&lt;br /&gt;
==Installation of the software==&lt;br /&gt;
Now, switch to the newly created user:&lt;br /&gt;
 su - sybase&lt;br /&gt;
You should now be in the directory /opt/sybase. Make a work directory and put the downloaded Sybase software in it.&lt;br /&gt;
 mkdir install&lt;br /&gt;
 cd install&lt;br /&gt;
 &amp;lt;put the software in this directory&amp;gt;&lt;br /&gt;
 tar -xf &amp;lt;software-distro&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the installation (when using an EBF download as installation file you may need to go into a subdirectory)&lt;br /&gt;
&lt;br /&gt;
 ./setup.bin&lt;br /&gt;
&lt;br /&gt;
When you get a message like &amp;quot;A suitable JVM could not be found&amp;quot; or “exec: 2470: /tmp/install.dir.1392/Linux/resource/jre/bin/java: not found” check the following document for a solution: [[Ubuntu 64 bit ASE installation]]&lt;br /&gt;
&lt;br /&gt;
Use /opt/sybase/ase157 as the destination directory, do a full installation. At the list of possible servers to configure, deselect all options. We will do a manual configuration.&lt;br /&gt;
&lt;br /&gt;
When the installation has finished successful you can safely remove the work directory and the installation package.&lt;br /&gt;
&lt;br /&gt;
==Setup your environment==&lt;br /&gt;
In /opt/sybase/ase157 you will find files like SYBASE.csh, SYBASE.sh and SYBASE.env. Depending on the type of shell you use you need to source in one of these. For instance, when your default shell is bash you should do this:&lt;br /&gt;
&lt;br /&gt;
 . /opt/sybase/ase157/SYBASE.sh&lt;br /&gt;
&lt;br /&gt;
By doing:&lt;br /&gt;
&lt;br /&gt;
 echo $SYBASE&lt;br /&gt;
&lt;br /&gt;
it should return /opt/sybase/ase157.&lt;br /&gt;
Is is fairly common to activate the SYBASE.sh script (or similar one) from your login script. &lt;br /&gt;
&lt;br /&gt;
When you have generated a licence file through http://sybase.subscribenet.com install it in the directory $SYBASE/SYSAM-2_0/licenses&lt;br /&gt;
&lt;br /&gt;
==Create the ASE server==&lt;br /&gt;
Most installations, especially for development purposes, run multiple ASE's and backup servers from a single Sybase software installation. For a good overview it is quite handy to store files that are specific for a server in it's own directory. In this example we create two servers: an ASE called ASE1 and a backupserver called SYB_BACKUP. Configuration files and the errorlog are stored in the admin directory, database files are stored in /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Create the directories for these servers:&lt;br /&gt;
 cd /opt/sybase&lt;br /&gt;
 mkdir admin&lt;br /&gt;
 mkdir admin/ASE1&lt;br /&gt;
 mkdir admin/SYB_BACKUP&lt;br /&gt;
 mkdir /var/sybase/ASE1&lt;br /&gt;
&lt;br /&gt;
When you choose to use raw device it's quite handy when you create symbolic links from /var/sybase/ASE1 to those devices. For example:&lt;br /&gt;
 ln -s /dev/hda4 /var/sybase/ASE1/master.dat&lt;br /&gt;
Do this also for the other raw devices that you have made.&lt;br /&gt;
&lt;br /&gt;
Now go to the &amp;quot;/opt/sybase/admin/ASE1&amp;quot; directory and create a resource file. Use the following template as an example, call it ASE1.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.adaptive_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: sqlsrv&lt;br /&gt;
 sqlsrv.server_name: ASE1&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 sqlsrv.new_config: yes&lt;br /&gt;
 sqlsrv.do_add_server: yes&lt;br /&gt;
 sqlsrv.network_protocol_list: tcp&lt;br /&gt;
 sqlsrv.network_hostname_list: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 sqlsrv.network_port_list: 4000&lt;br /&gt;
 sqlsrv.application_type: MIXED&lt;br /&gt;
 sqlsrv.server_page_size: 4096&lt;br /&gt;
 sqlsrv.force_buildmaster: no&lt;br /&gt;
 sqlsrv.master_device_physical_name: /var/sybase/ASE1/master.dev&lt;br /&gt;
 sqlsrv.master_device_size: 100&lt;br /&gt;
 sqlsrv.master_database_size: 60&lt;br /&gt;
 sqlsrv.errorlog: /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 sqlsrv.do_upgrade: no&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_physical_name: /var/sybase/ASE1/sybsystemprocs.dev&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemprocs_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_device_physical_name: /var/sybase/ASE1/sybsystemdb.dev&lt;br /&gt;
 sqlsrv.sybsystemdb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.tempdb_device_physical_name: /var/sybase/ASE1/tempdb.dev&lt;br /&gt;
 sqlsrv.tempdb_device_size: 100&lt;br /&gt;
 sqlsrv.tempdb_database_size: 100&lt;br /&gt;
 sqlsrv.default_backup_server: SYB_BACKUP&lt;br /&gt;
 #sqlsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
 sqlsrv.do_configure_pci: no&lt;br /&gt;
 sqlsrv.sybpcidb_device_physical_name: PUT_THE_PATH_OF_YOUR_SYBPCIDB_DATA_DEVICE_HERE&lt;br /&gt;
 sqlsrv.sybpcidb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybpcidb_database_size: USE_DEFAULT&lt;br /&gt;
 # If sqlsrv.do_optimize_config is set to yes, both sqlsrv.avail_physical_memory and sqlsrv.avail_cpu_num need to be set.&lt;br /&gt;
 sqlsrv.do_optimize_config: yes&lt;br /&gt;
 sqlsrv.avail_physical_memory: 256&lt;br /&gt;
 sqlsrv.avail_cpu_num: 1&lt;br /&gt;
&lt;br /&gt;
This resource file will a create a Sybase server with the following characteristics:&lt;br /&gt;
* The name of the server will be ASE1, can be changed later with the sp_addserver stored procedure.&lt;br /&gt;
* The server will have a listener on the ip-address as indicated with &amp;lt;hostname&amp;gt; and port 4000. This can be changed later in the interfaces file located at $SYBASE/interfaces.&lt;br /&gt;
* Application type is mixed, so you expect both oltp and dss type of queries. This can be changed later by modification of the “optimization goal” setting with sp_configure).&lt;br /&gt;
* Server page size will be 4 Kb. The default is 2 Kb but with today’s hardware this will give sub-optimal performance. Once the server has been created it cannot be changed, a complete server rebuild is needed then.&lt;br /&gt;
* The master device will be 100 Mb, the size of the master database will be 60 Mb. The master devices will contain the master database, the master database contains important meta-data about the server. It’s very unusual to increase the size of the master device or the master database.&lt;br /&gt;
* The location of the errorlog is /opt/sybase/admin/ASE1/errorlog, can be changed later in the configuration file.&lt;br /&gt;
* A device of 172 Mb will be created for the sybsystemprocs database, also with a size of 172 Mb. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A device of 6 Mb will be created for the sybsystemdb database. The size of the database will actually be 12Mb as a small portion will also reside on the master device. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A temporary database 'tempdb' will be created on a device with a size of 100 Mb, the database will also be 100 Mb. In fact, it will be a bit larger since also a small portion will reside on the master device. Again, the device and the tempdb database can be increased in size. You can also create multiple temporary databases for improved concurrency.&lt;br /&gt;
* We will build a backup server called SYB_BACKUP. The name can be changed later with sp_addserver.&lt;br /&gt;
* We will not use a PCI (Pluggable Component Interface) database. This database is mainly used for Java in the server.&lt;br /&gt;
* Use the optimize configuration feature and tune for 256 Mb of memory and 1 cpu.&lt;br /&gt;
&lt;br /&gt;
Now build the server with the command:&lt;br /&gt;
 srvbuildres -r ASE1.rs&lt;br /&gt;
&lt;br /&gt;
When the srvbuildres command fails with:&lt;br /&gt;
 Task failed&lt;br /&gt;
 Unable to boot server 'ASE1'.  &lt;br /&gt;
 Server 'ASE1' was not created.&lt;br /&gt;
then go to this page for tips how to solve this: [[srvbuildres task failed]].&lt;br /&gt;
&lt;br /&gt;
After a successful creation you can connect to the server using the command line tool isql. The login “sa&amp;quot; has been created, with the password that was specified in ASE.rs file. At the prompt of isql you can type a command or execute a stored procedure. Type exit to exit.&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 sp_helpdb&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Basic ASE configuration==&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration files to the admin directory. First shutdown ASE&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 shutdown&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
 cd $SYBASE/$SYBASE_ASE&lt;br /&gt;
 mv ASE1.cfg /opt/sybase/admin/ASE1&lt;br /&gt;
 rm ASE1.*&lt;br /&gt;
 cd install&lt;br /&gt;
&lt;br /&gt;
Modify RUN_ASE1 and make the following changes:&lt;br /&gt;
* Make the -s flag the first option. This has the advantage that a listing of running processes on the system will show the name of the Sybase server.&lt;br /&gt;
* Change the location of the configuration files, as specified with the -c flag, to the admin directory&lt;br /&gt;
Each line must end with a backslash.&lt;br /&gt;
Example RUN_ASE1 file:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # ASE page size (KB):   4096&lt;br /&gt;
 # Master device path:   /var/sybase/ASE1/master.dev&lt;br /&gt;
 # Error log path:       /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 # Configuration file path:      /opt/sybase/ase157/ASE-15_0/ASE1.cfg&lt;br /&gt;
 # Directory for shared memory files:    /opt/sybase/ase157/ASE-15_0&lt;br /&gt;
 # Adaptive Server name: ASE1&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase157/ASE-15_0/bin/dataserver \&lt;br /&gt;
 -sASE1 \&lt;br /&gt;
 -d/var/sybase/ASE1/master.dev \&lt;br /&gt;
 -e/opt/sybase/admin/ASE1/errorlog \&lt;br /&gt;
 -c/opt/sybase/admin/ASE1/ASE1.cfg \&lt;br /&gt;
 -M/opt/sybase/ase157/ASE-15_0 \&lt;br /&gt;
&lt;br /&gt;
Now restart the Sybase server&lt;br /&gt;
 ./startserver -f ./RUN_ASE1&lt;br /&gt;
&lt;br /&gt;
===Load instmsg.ebf file===&lt;br /&gt;
The instmsgs.ebf file contains the latest update for Sybase error messages. You can load it with isql.&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1 &amp;lt; $SYBASE/$SYBASE_ASE/scripts/instmsgs.ebf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Create the backup server==&lt;br /&gt;
Create the backup server using the following steps.&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;quot;/opt/sybase/admin/SYB_BACKUP&amp;quot; directory and create a resource file. Use the following template as an example, call it SYB_BACKUP.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.backup_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: bsrv&lt;br /&gt;
 bsrv.server_name: SYB_BACKUP&lt;br /&gt;
 bsrv.new_config: yes&lt;br /&gt;
 bsrv.do_add_backup_server: yes&lt;br /&gt;
 bsrv.do_upgrade: no&lt;br /&gt;
 bsrv.network_protocol_list: tcp&lt;br /&gt;
 bsrv.network_hostname_list: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 bsrv.network_port_list: 4001&lt;br /&gt;
 bsrv.language: USE_DEFAULT&lt;br /&gt;
 bsrv.character_set: USE_DEFAULT&lt;br /&gt;
 bsrv.tape_config_file: USE_DEFAULT&lt;br /&gt;
 bsrv.errorlog: /opt/sybase/admin/SYB_BACKUP/SYB_BACKUP.log&lt;br /&gt;
 sqlsrv.related_sqlsrvr: ASE1&lt;br /&gt;
 sqlsrv.sa_login: sa&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 #bsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
&lt;br /&gt;
Build the server with the command:&lt;br /&gt;
 srvbuildres -r SYB_BACKUP.rs&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration file to the admin directory. First shutdown the backup server:&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 shutdown SYB_BACKUP&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Modify the file RUN_SYB_BACKUP, located at $SYBASE/$SYBASE_ASE/install. Move the line with the -s flag to the top. Sample RUN_SYB_BACKUP:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # Error log path:       /opt/sybase/ase157/ASE-15_0/install/SYB_BACKUP.log&lt;br /&gt;
 # Maximum number of network connections:        25&lt;br /&gt;
 # Maximum number of server connections: 20&lt;br /&gt;
 # Multibuf executable path:     /opt/sybase/ase157/ASE-15_0/bin/sybmultbuf&lt;br /&gt;
 # Backup Server name:   SYB_BACKUP&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase157/ASE-15_0/bin/backupserver \&lt;br /&gt;
 -SSYB_BACKUP \&lt;br /&gt;
 -e/opt/sybase/admin/SYB_BACKUP/SYB_BACKUP.log \&lt;br /&gt;
 -N25 \&lt;br /&gt;
 -C20 \&lt;br /&gt;
 -M/opt/sybase/ase157/ASE-15_0/bin/sybmultbuf \&lt;br /&gt;
 &lt;br /&gt;
Restart the backupserver&lt;br /&gt;
 startserver -f $SYBASE/$SYBASE_ASE/install/RUN_SYB_BACKUP&lt;br /&gt;
&lt;br /&gt;
==Create a user database==&lt;br /&gt;
 disk init name = data01,size=&amp;quot;1G&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/data01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 disk init name = log01,size=&amp;quot;100M&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/log01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 create database my_database on data01=&amp;quot;1G&amp;quot; log on log01 = &amp;quot;100M&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
==All done==&lt;br /&gt;
Happy Sybase-ing with your new server!!&lt;br /&gt;
&lt;br /&gt;
Further reading:&lt;br /&gt;
&lt;br /&gt;
Installation guide for Linux http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc30119.1570/doc/html/title.html&lt;br /&gt;
&lt;br /&gt;
Sybase System administration http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc31654.1570/html/sag1/title.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.7&amp;diff=1961</id>
		<title>Installation guidelines ASE 15.7</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.7&amp;diff=1961"/>
				<updated>2013-04-10T11:23:58Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to install and configure a Sybase ASE server version 15.7. You will also learn how to connect to the server, stop and restart it.&lt;br /&gt;
&lt;br /&gt;
==Get the software==&lt;br /&gt;
First download ASE.&lt;br /&gt;
&lt;br /&gt;
For a licensed version you need to go here: http://sybase.subscribenet.com (account required) or to the eShop at sybase.com: http://eshop.sybase.com/eshop/buy?id=19517&lt;br /&gt;
&lt;br /&gt;
To get a free download you can go to this page http://www.sybase.com/ase_1500devel. You can download ASE 15.7 for various operating systems and chipsets. When you install ASE you can choose to run without a license (limited features) or install a licenced version and buy a license from Sybase.&lt;br /&gt;
&lt;br /&gt;
Downloads are also available at the Sybase download center at http://downloads.sybase.com/swd/base.do?client=support. Once registered you can download the latest EBF (patch) for the desired platform. An EBF can also be used for a full installation. &lt;br /&gt;
&lt;br /&gt;
==Prepare the Operating System==&lt;br /&gt;
Make sure that the filesystem for the Sybase software is big enough. A full installation needs approx. 1.5 Gb so 4 Gb should give you enough room to handle upgrades too. In this case we install the software in /opt/sybase/ase157. Database files will be stored /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Become root and add a group &amp;quot;sybase&amp;quot; and a user &amp;quot;sybase&amp;quot; to the system. Also create the needed directories.&lt;br /&gt;
Strictly spoken, the usage of the username and groupname called &amp;quot;sybase&amp;quot; is not needed, any username is fine.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/sybase&lt;br /&gt;
 mkdir -p /var/sybase&lt;br /&gt;
 groupadd sybase&lt;br /&gt;
 useradd -g sybase -d /opt/sybase sybase&lt;br /&gt;
 passwd sybase&lt;br /&gt;
 chown sybase:sybase /opt/sybase&lt;br /&gt;
 chown sybase:sybase /var/sybase&lt;br /&gt;
&lt;br /&gt;
Enable the operating system to allow more than the default value for shared memory.&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
To see the current value of shared memory:&lt;br /&gt;
 sysctl kernel.shmmax&lt;br /&gt;
&lt;br /&gt;
To configure a shared memory segment of 4 Gb&lt;br /&gt;
 sysctl -w kernel.shmmax=4294967296&lt;br /&gt;
&lt;br /&gt;
Then add kernel.shmmax=4294967296 to /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
See also [[Linux configuration settings for Sybase ASE]], but these settings can be done when the installation and configuration has been completed.&lt;br /&gt;
&lt;br /&gt;
===Solaris (pre version 10)===&lt;br /&gt;
/etc/system&lt;br /&gt;
 set shmsys:shminfo_shmmax = 4294967296&lt;br /&gt;
&lt;br /&gt;
===Solaris (system 10)===&lt;br /&gt;
/etc/project&lt;br /&gt;
 projadd -c &amp;quot;sybase&amp;quot; 'user.sybase'&lt;br /&gt;
 projmod -s -K &amp;quot;project.max-shm-memory={privileged,4GB,deny}&amp;quot; 'user.sybase'&lt;br /&gt;
&lt;br /&gt;
==Raw devices or filesystem files==&lt;br /&gt;
Sybase recommends to store all database files on raw devices except for temporary databases like tempdb. Some Unix adminstrators do not like raw devices and then you need to put everything on filesystems. Also, consult your storage administrator when in doubt.&lt;br /&gt;
&lt;br /&gt;
===Raw devices===&lt;br /&gt;
When you use raw devices, create the following:&lt;br /&gt;
* master (100 Mb)&lt;br /&gt;
* sybsystemprocs (172M)&lt;br /&gt;
* sybsystemdb (6M)&lt;br /&gt;
* data01 (for instance 10G but for testing purposes 100Mb is also good. You can always add more)&lt;br /&gt;
* log01(for instance 2G but for testing purposes 20Mb is also good. You can always add more).&lt;br /&gt;
Do not forget to chown the raw devices to the sybase user. Check if this setting is persistent after a reboot.&lt;br /&gt;
&lt;br /&gt;
===Temporory databases===&lt;br /&gt;
Files for temporary databases (like tempdb) should be stored on the filesystem. Allow at least  100Mb but, depending on your application, several Gb's or much more is not uncommon.&lt;br /&gt;
&lt;br /&gt;
==Determine your license policy==&lt;br /&gt;
Since ASE 15.0 you cannot run a production server without a license file. License files can reside on the network or on the local system. Think about the license policy that suits you best. Most sites choose for license files on each Unix server.&lt;br /&gt;
&lt;br /&gt;
When there is no valid license, ASE will run with a grace time of 30 days. After that it will shutdown and it cannot be rebooted anymore until you install a license, or change the license settings revert to the Express Edition.&lt;br /&gt;
&lt;br /&gt;
==Installation of the software==&lt;br /&gt;
Now, switch to the newly created user:&lt;br /&gt;
 su - sybase&lt;br /&gt;
You should now be in the directory /opt/sybase. Make a work directory and put the downloaded Sybase software in it.&lt;br /&gt;
 mkdir install&lt;br /&gt;
 cd install&lt;br /&gt;
 &amp;lt;put the software in this directory&amp;gt;&lt;br /&gt;
 tar -xf &amp;lt;software-distro&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the installation (when using an EBF download as installation file you may need to go into a subdirectory)&lt;br /&gt;
&lt;br /&gt;
 ./setup.bin&lt;br /&gt;
&lt;br /&gt;
When you get a message like &amp;quot;A suitable JVM could not be found&amp;quot; or “exec: 2470: /tmp/install.dir.1392/Linux/resource/jre/bin/java: not found” check the following document for a solution: [[Ubuntu 64 bit ASE installation]]&lt;br /&gt;
&lt;br /&gt;
Use /opt/sybase/ase157 as the destination directory, do a full installation. At the list of possible servers to configure, deselect all options. We will do a manual configuration.&lt;br /&gt;
&lt;br /&gt;
When the installation has finished successful you can safely remove the work directory and the installation package.&lt;br /&gt;
&lt;br /&gt;
==Setup your environment==&lt;br /&gt;
In /opt/sybase/ase157 you will find files like SYBASE.csh, SYBASE.sh and SYBASE.env. Depending on the type of shell you use you need to source in one of these. For instance, when your default shell is bash you should do this:&lt;br /&gt;
&lt;br /&gt;
 . /opt/sybase/ase157/SYBASE.sh&lt;br /&gt;
&lt;br /&gt;
By doing:&lt;br /&gt;
&lt;br /&gt;
 echo $SYBASE&lt;br /&gt;
&lt;br /&gt;
it should return /opt/sybase/ase157.&lt;br /&gt;
Is is fairly common to activate the SYBASE.sh script (or similar one) from your login script. &lt;br /&gt;
&lt;br /&gt;
When you have generated a licence file through http://sybase.subscribenet.com install it in the directory $SYBASE/SYSAM-2_0/licenses&lt;br /&gt;
&lt;br /&gt;
==Create the ASE server==&lt;br /&gt;
Most installations, especially for development purposes, run multiple ASE's and backup servers from a single Sybase software installation. For a good overview it is quite handy to store files that are specific for a server in it's own directory. In this example we create two servers: an ASE called ASE1 and a backupserver called SYB_BACKUP. Configuration files and the errorlog are stored in the admin directory, database files are stored in /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Create the directories for these servers:&lt;br /&gt;
 cd /opt/sybase&lt;br /&gt;
 mkdir admin&lt;br /&gt;
 mkdir admin/ASE1&lt;br /&gt;
 mkdir admin/SYB_BACKUP&lt;br /&gt;
 mkdir /var/sybase/ASE1&lt;br /&gt;
&lt;br /&gt;
When you choose to use raw device it's quite handy when you create symbolic links from /var/sybase/ASE1 to those devices. For example:&lt;br /&gt;
 ln -s /dev/hda4 /var/sybase/ASE1/master.dat&lt;br /&gt;
Do this also for the other raw devices that you have made.&lt;br /&gt;
&lt;br /&gt;
Now go to the &amp;quot;/opt/sybase/admin/ASE1&amp;quot; directory and create a resource file. Use the following template as an example, call it ASE1.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.adaptive_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: sqlsrv&lt;br /&gt;
 sqlsrv.server_name: ASE1&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 sqlsrv.new_config: yes&lt;br /&gt;
 sqlsrv.do_add_server: yes&lt;br /&gt;
 sqlsrv.network_protocol_list: tcp&lt;br /&gt;
 sqlsrv.network_hostname_list: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 sqlsrv.network_port_list: 4000&lt;br /&gt;
 sqlsrv.application_type: MIXED&lt;br /&gt;
 sqlsrv.server_page_size: 4096&lt;br /&gt;
 sqlsrv.force_buildmaster: no&lt;br /&gt;
 sqlsrv.master_device_physical_name: /var/sybase/ASE1/master.dev&lt;br /&gt;
 sqlsrv.master_device_size: 100&lt;br /&gt;
 sqlsrv.master_database_size: 60&lt;br /&gt;
 sqlsrv.errorlog: /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 sqlsrv.do_upgrade: no&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_physical_name: /var/sybase/ASE1/sybsystemprocs.dev&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemprocs_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_device_physical_name: /var/sybase/ASE1/sybsystemdb.dev&lt;br /&gt;
 sqlsrv.sybsystemdb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.tempdb_device_physical_name: /var/sybase/ASE1/tempdb.dev&lt;br /&gt;
 sqlsrv.tempdb_device_size: 100&lt;br /&gt;
 sqlsrv.tempdb_database_size: 100&lt;br /&gt;
 sqlsrv.default_backup_server: SYB_BACKUP&lt;br /&gt;
 #sqlsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
 sqlsrv.do_configure_pci: no&lt;br /&gt;
 sqlsrv.sybpcidb_device_physical_name: PUT_THE_PATH_OF_YOUR_SYBPCIDB_DATA_DEVICE_HERE&lt;br /&gt;
 sqlsrv.sybpcidb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybpcidb_database_size: USE_DEFAULT&lt;br /&gt;
 # If sqlsrv.do_optimize_config is set to yes, both sqlsrv.avail_physical_memory and sqlsrv.avail_cpu_num need to be set.&lt;br /&gt;
 sqlsrv.do_optimize_config: yes&lt;br /&gt;
 sqlsrv.avail_physical_memory: 256&lt;br /&gt;
 sqlsrv.avail_cpu_num: 1&lt;br /&gt;
&lt;br /&gt;
This resource file will a create a Sybase server with the following characteristics:&lt;br /&gt;
* The name of the server will be ASE1, can be changed later with the sp_addserver stored procedure.&lt;br /&gt;
* The server will have a listener on the ip-address as indicated with &amp;lt;hostname&amp;gt; and port 4000. This can be changed later in the interfaces file located at $SYBASE/interfaces.&lt;br /&gt;
* Application type is mixed, so you expect both oltp and dss type of queries. This can be changed later by modification of the “optimization goal” setting with sp_configure).&lt;br /&gt;
* Server page size will be 4 Kb. The default is 2 Kb but with today’s hardware this will give sub-optimal performance. Once the server has been created it cannot be changed, a complete server rebuild is needed then.&lt;br /&gt;
* The master device will be 100 Mb, the size of the master database will be 60 Mb. The master devices will contain the master database, the master database contains important meta-data about the server. It’s very unusual to increase the size of the master device or the master database.&lt;br /&gt;
* The location of the errorlog is /opt/sybase/admin/ASE1/errorlog, can be changed later in the configuration file.&lt;br /&gt;
* A device of 172 Mb will be created for the sybsystemprocs database, also with a size of 172 Mb. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A device of 6 Mb will be created for the sybsystemdb database. The size of the database will actually be 12Mb as a small portion will also reside on the master device. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A temporary database 'tempdb' will be created on a device with a size of 100 Mb, the database will also be 100 Mb. In fact, it will be a bit larger since also a small portion will reside on the master device. Again, the device and the tempdb database can be increased in size. You can also create multiple temporary databases for improved concurrency.&lt;br /&gt;
* We will build a backup server called SYB_BACKUP. The name can be changed later with sp_addserver.&lt;br /&gt;
* We will not use a PCI (Pluggable Component Interface) database. This database is mainly used for Java in the server.&lt;br /&gt;
* Use the optimize configuration feature and tune for 256 Mb of memory and 1 cpu.&lt;br /&gt;
&lt;br /&gt;
Now build the server with the command:&lt;br /&gt;
 srvbuildres -r ASE1.rs&lt;br /&gt;
&lt;br /&gt;
When the srvbuildres command fails with:&lt;br /&gt;
 Task failed&lt;br /&gt;
 Unable to boot server 'ASE1'.  &lt;br /&gt;
 Server 'ASE1' was not created.&lt;br /&gt;
then go to this page for tips how to solve this: [[srvbuildres task failed]].&lt;br /&gt;
&lt;br /&gt;
After a successful creation you can connect to the server using the command line tool isql. The login “sa&amp;quot; has been created, with the password that was specified in ASE.rs file. At the prompt of isql you can type a command or execute a stored procedure. Type exit to exit.&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 sp_helpdb&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Basic ASE configuration==&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration files to the admin directory. First shutdown ASE&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 shutdown&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
 cd $SYBASE/$SYBASE_ASE&lt;br /&gt;
 mv ASE1.cfg /opt/sybase/admin/ASE1&lt;br /&gt;
 rm ASE1.*&lt;br /&gt;
 cd install&lt;br /&gt;
&lt;br /&gt;
Modify RUN_ASE1 and make the following changes:&lt;br /&gt;
* Make the -s flag the first option. This has the advantage that a listing of running processes on the system will show the name of the Sybase server.&lt;br /&gt;
* Change the location of the configuration files, as specified with the -c flag, to the admin directory&lt;br /&gt;
Each line must end with a backslash.&lt;br /&gt;
Example RUN_ASE1 file:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # ASE page size (KB):   4096&lt;br /&gt;
 # Master device path:   /var/sybase/ASE1/master.dev&lt;br /&gt;
 # Error log path:       /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 # Configuration file path:      /opt/sybase/ase157/ASE-15_0/ASE1.cfg&lt;br /&gt;
 # Directory for shared memory files:    /opt/sybase/ase157/ASE-15_0&lt;br /&gt;
 # Adaptive Server name: ASE1&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase157/ASE-15_0/bin/dataserver \&lt;br /&gt;
 -sASE1 \&lt;br /&gt;
 -d/var/sybase/ASE1/master.dev \&lt;br /&gt;
 -e/opt/sybase/admin/ASE1/errorlog \&lt;br /&gt;
 -c/opt/sybase/admin/ASE1/ASE1.cfg \&lt;br /&gt;
 -M/opt/sybase/ase157/ASE-15_0 \&lt;br /&gt;
&lt;br /&gt;
Now restart the Sybase server&lt;br /&gt;
 ./startserver -f ./RUN_ASE1&lt;br /&gt;
&lt;br /&gt;
===Load instmsg.ebf file===&lt;br /&gt;
The instmsgs.ebf file contains the latest update for Sybase error messages. You can load it with isql.&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1 &amp;lt; $SYBASE/$SYBASE_ASE/scripts/instmsgs.ebf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Create the backup server==&lt;br /&gt;
Create the backup server using the following steps.&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;quot;/opt/sybase/admin/SYB_BACKUP&amp;quot; directory and create a resource file. Use the following template as an example, call it SYB_BACKUP.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.backup_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: bsrv&lt;br /&gt;
 bsrv.server_name: SYB_BACKUP&lt;br /&gt;
 bsrv.new_config: yes&lt;br /&gt;
 bsrv.do_add_backup_server: yes&lt;br /&gt;
 bsrv.do_upgrade: no&lt;br /&gt;
 bsrv.network_protocol_list: tcp&lt;br /&gt;
 bsrv.network_hostname_list: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 bsrv.network_port_list: 4001&lt;br /&gt;
 bsrv.language: USE_DEFAULT&lt;br /&gt;
 bsrv.character_set: USE_DEFAULT&lt;br /&gt;
 bsrv.tape_config_file: USE_DEFAULT&lt;br /&gt;
 bsrv.errorlog: /opt/sybase/admin/SYB_BACKUP/SYB_BACKUP.log&lt;br /&gt;
 sqlsrv.related_sqlsrvr: ASE1&lt;br /&gt;
 sqlsrv.sa_login: sa&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 #bsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
&lt;br /&gt;
Build the server with the command:&lt;br /&gt;
 srvbuildres -r SYB_BACKUP.rs&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration file to the admin directory. First shutdown the backup server:&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 shutdown SYB_BACKUP&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Modify the file RUN_SYB_BACKUP, located at $SYBASE/$SYBASE_ASE/install. Move the line with the -s flag to the top. Sample RUN_SYB_BACKUP:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # Error log path:       /opt/sybase/ase157/ASE-15_0/install/SYB_BACKUP.log&lt;br /&gt;
 # Maximum number of network connections:        25&lt;br /&gt;
 # Maximum number of server connections: 20&lt;br /&gt;
 # Multibuf executable path:     /opt/sybase/ase157/ASE-15_0/bin/sybmultbuf&lt;br /&gt;
 # Backup Server name:   SYB_BACKUP&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase157/ASE-15_0/bin/backupserver \&lt;br /&gt;
 -SSYB_BACKUP \&lt;br /&gt;
 -e/opt/sybase/admin/SYB_BACKUP/SYB_BACKUP.log \&lt;br /&gt;
 -N25 \&lt;br /&gt;
 -C20 \&lt;br /&gt;
 -M/opt/sybase/ase157/ASE-15_0/bin/sybmultbuf \&lt;br /&gt;
 &lt;br /&gt;
Restart the backupserver&lt;br /&gt;
 startserver -f $SYBASE/$SYBASE_ASE/install/RUN_SYB_BACKUP&lt;br /&gt;
&lt;br /&gt;
==Create a user database==&lt;br /&gt;
 disk init name = data01,size=&amp;quot;1G&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/data01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 disk init name = log01,size=&amp;quot;100M&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/log01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 create database my_database on data01=&amp;quot;1G&amp;quot; log on log01 = &amp;quot;100M&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
==All done==&lt;br /&gt;
Happy Sybase-ing with your new server!!&lt;br /&gt;
&lt;br /&gt;
Further reading:&lt;br /&gt;
&lt;br /&gt;
Installation guide for Linux http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc30119.1570/doc/html/title.html&lt;br /&gt;
&lt;br /&gt;
Sybase System administration http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc31654.1570/html/sag1/title.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE&amp;diff=1960</id>
		<title>Installation guidelines ASE</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE&amp;diff=1960"/>
				<updated>2013-04-10T10:32:10Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: Redirected page to Installation guidelines ASE 15.7&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Installation guidelines ASE 15.7]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.7&amp;diff=1959</id>
		<title>Installation guidelines ASE 15.7</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.7&amp;diff=1959"/>
				<updated>2013-04-10T07:50:30Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to install and configure a Sybase ASE server version 15.7. You will also learn how to connect to the server, stop and restart it.&lt;br /&gt;
&lt;br /&gt;
==Get the software==&lt;br /&gt;
First download ASE.&lt;br /&gt;
&lt;br /&gt;
For a licensed version you need to go here: http://sybase.subscribenet.com (account required) or to the eShop at sybase.com: http://eshop.sybase.com/eshop/buy?id=19517&lt;br /&gt;
&lt;br /&gt;
To get a free download you can go to this page http://www.sybase.com/ase_1500devel. You can download ASE 15.7 for various operating systems and chipsets. When you install ASE you can choose to run without a license (limited features) or install a licenced version and buy a license from Sybase.&lt;br /&gt;
&lt;br /&gt;
Downloads are also available at the Sybase download center at http://downloads.sybase.com/swd/base.do?client=support. Once registered you can download the latest EBF (patch) for the desired platform. An EBF can also be used for a full installation. &lt;br /&gt;
&lt;br /&gt;
==Prepare the Operating System==&lt;br /&gt;
Make sure that the filesystem for the Sybase software is big enough. A full installation needs approx. 1.5 Gb so 4 Gb should give you enough room to handle upgrades too. In this case we install the software in /opt/sybase/ase157. Database files will be stored /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Become root and add a group &amp;quot;sybase&amp;quot; and a user &amp;quot;sybase&amp;quot; to the system. Also create the needed directories.&lt;br /&gt;
Strictly spoken, the usage of the username and groupname called &amp;quot;sybase&amp;quot; is not needed, any username is fine.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/sybase&lt;br /&gt;
 mkdir -p /var/sybase&lt;br /&gt;
 groupadd sybase&lt;br /&gt;
 useradd -g sybase -d /opt/sybase sybase&lt;br /&gt;
 passwd sybase&lt;br /&gt;
 chown sybase:sybase /opt/sybase&lt;br /&gt;
 chown sybase:sybase /var/sybase&lt;br /&gt;
&lt;br /&gt;
Enable the operating system to allow more than the default value for shared memory.&lt;br /&gt;
&lt;br /&gt;
*For Linux systems see [[Linux configuration settings for Sybase ASE]]&lt;br /&gt;
&lt;br /&gt;
*Solaris (pre version 10) /etc/system&lt;br /&gt;
 set shmsys:shminfo_shmmax = 4294967295&lt;br /&gt;
&lt;br /&gt;
*Solaris (system 10) /etc/project&lt;br /&gt;
 projadd -c &amp;quot;sybase&amp;quot; 'user.sybase'&lt;br /&gt;
 projmod -s -K &amp;quot;project.max-shm-memory={privileged,4GB,deny}&amp;quot; 'user.sybase'&lt;br /&gt;
&lt;br /&gt;
==Raw devices or filesystem files==&lt;br /&gt;
Sybase recommends to store all database files on raw devices except for temporary databases like tempdb. Some Unix adminstrators do not like raw devices and then you need to put everything on filesystems. Also, consult your storage administrator when in doubt.&lt;br /&gt;
&lt;br /&gt;
===Raw devices===&lt;br /&gt;
When you use raw devices, create the following:&lt;br /&gt;
* master (100 Mb)&lt;br /&gt;
* sybsystemprocs (172M)&lt;br /&gt;
* sybsystemdb (6M)&lt;br /&gt;
* data01 (for instance 10G but for testing purposes 100Mb is also good. You can always add more)&lt;br /&gt;
* log01(for instance 2G but for testing purposes 20Mb is also good. You can always add more).&lt;br /&gt;
Do not forget to chown the raw devices to the sybase user. Check if this setting is persistent after a reboot.&lt;br /&gt;
&lt;br /&gt;
===Temporory databases===&lt;br /&gt;
Files for temporary databases (like tempdb) should be stored on the filesystem. Allow at least  100Mb but, depending on your application, several Gb's or much more is not uncommon.&lt;br /&gt;
&lt;br /&gt;
==Determine your license policy==&lt;br /&gt;
Since ASE 15.0 you cannot run a production server without a license file. License files can reside on the network or on the local system. Think about the license policy that suits you best. Most sites choose for license files on each Unix server.&lt;br /&gt;
&lt;br /&gt;
When there is no valid license, ASE will run with a grace time of 30 days. After that it will shutdown and it cannot be rebooted anymore until you install a license, or change the license settings revert to the Express Edition.&lt;br /&gt;
&lt;br /&gt;
==Installation of the software==&lt;br /&gt;
Now, switch to the newly created user:&lt;br /&gt;
 su - sybase&lt;br /&gt;
You should now be in the directory /opt/sybase. Make a work directory and put the downloaded Sybase software in it.&lt;br /&gt;
 mkdir install&lt;br /&gt;
 cd install&lt;br /&gt;
 &amp;lt;put the software in this directory&amp;gt;&lt;br /&gt;
 tar -xf &amp;lt;software-distro&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the installation (when using an EBF download as installation file you may need to go into a subdirectory)&lt;br /&gt;
&lt;br /&gt;
 ./setup.bin&lt;br /&gt;
&lt;br /&gt;
When you get a message like &amp;quot;A suitable JVM could not be found&amp;quot; or “exec: 2470: /tmp/install.dir.1392/Linux/resource/jre/bin/java: not found” check the following document for a solution: [[Ubuntu 64 bit ASE installation]]&lt;br /&gt;
&lt;br /&gt;
Use /opt/sybase/ase157 as the destination directory, do a full installation. At the list of possible servers to configure, deselect all options. We will do a manual configuration.&lt;br /&gt;
&lt;br /&gt;
When the installation has finished successful you can safely remove the work directory and the installation package.&lt;br /&gt;
&lt;br /&gt;
==Setup your environment==&lt;br /&gt;
In /opt/sybase/ase157 you will find files like SYBASE.csh, SYBASE.sh and SYBASE.env. Depending on the type of shell you use you need to source in one of these. For instance, when your default shell is bash you should do this:&lt;br /&gt;
&lt;br /&gt;
 . /opt/sybase/ase157/SYBASE.sh&lt;br /&gt;
&lt;br /&gt;
By doing:&lt;br /&gt;
&lt;br /&gt;
 echo $SYBASE&lt;br /&gt;
&lt;br /&gt;
it should return /opt/sybase/ase157.&lt;br /&gt;
Is is fairly common to activate the SYBASE.sh script (or similar one) from your login script. &lt;br /&gt;
&lt;br /&gt;
When you have generated a licence file through http://sybase.subscribenet.com install it in the directory $SYBASE/SYSAM-2_0/licenses&lt;br /&gt;
&lt;br /&gt;
==Create the ASE server==&lt;br /&gt;
Most installations, especially for development purposes, run multiple ASE's and backup servers from a single Sybase software installation. For a good overview it is quite handy to store files that are specific for a server in it's own directory. In this example we create two servers: an ASE called ASE1 and a backupserver called SYB_BACKUP. Configuration files and the errorlog are stored in the admin directory, database files are stored in /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Create the directories for these servers:&lt;br /&gt;
 cd /opt/sybase&lt;br /&gt;
 mkdir admin&lt;br /&gt;
 mkdir admin/ASE1&lt;br /&gt;
 mkdir admin/SYB_BACKUP&lt;br /&gt;
 mkdir /var/sybase/ASE1&lt;br /&gt;
&lt;br /&gt;
When you choose to use raw device it's quite handy when you create symbolic links from /var/sybase/ASE1 to those devices. For example:&lt;br /&gt;
 ln -s /dev/hda4 /var/sybase/ASE1/master.dat&lt;br /&gt;
Do this also for the other raw devices that you have made.&lt;br /&gt;
&lt;br /&gt;
Now go to the &amp;quot;/opt/sybase/admin/ASE1&amp;quot; directory and create a resource file. Use the following template as an example, call it ASE1.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.adaptive_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: sqlsrv&lt;br /&gt;
 sqlsrv.server_name: ASE1&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 sqlsrv.new_config: yes&lt;br /&gt;
 sqlsrv.do_add_server: yes&lt;br /&gt;
 sqlsrv.network_protocol_list: tcp&lt;br /&gt;
 sqlsrv.network_hostname_list: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 sqlsrv.network_port_list: 4000&lt;br /&gt;
 sqlsrv.application_type: MIXED&lt;br /&gt;
 sqlsrv.server_page_size: 4096&lt;br /&gt;
 sqlsrv.force_buildmaster: no&lt;br /&gt;
 sqlsrv.master_device_physical_name: /var/sybase/ASE1/master.dev&lt;br /&gt;
 sqlsrv.master_device_size: 100&lt;br /&gt;
 sqlsrv.master_database_size: 60&lt;br /&gt;
 sqlsrv.errorlog: /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 sqlsrv.do_upgrade: no&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_physical_name: /var/sybase/ASE1/sybsystemprocs.dev&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemprocs_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_device_physical_name: /var/sybase/ASE1/sybsystemdb.dev&lt;br /&gt;
 sqlsrv.sybsystemdb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.tempdb_device_physical_name: /var/sybase/ASE1/tempdb.dev&lt;br /&gt;
 sqlsrv.tempdb_device_size: 100&lt;br /&gt;
 sqlsrv.tempdb_database_size: 100&lt;br /&gt;
 sqlsrv.default_backup_server: SYB_BACKUP&lt;br /&gt;
 #sqlsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
 sqlsrv.do_configure_pci: no&lt;br /&gt;
 sqlsrv.sybpcidb_device_physical_name: PUT_THE_PATH_OF_YOUR_SYBPCIDB_DATA_DEVICE_HERE&lt;br /&gt;
 sqlsrv.sybpcidb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybpcidb_database_size: USE_DEFAULT&lt;br /&gt;
 # If sqlsrv.do_optimize_config is set to yes, both sqlsrv.avail_physical_memory and sqlsrv.avail_cpu_num need to be set.&lt;br /&gt;
 sqlsrv.do_optimize_config: yes&lt;br /&gt;
 sqlsrv.avail_physical_memory: 256&lt;br /&gt;
 sqlsrv.avail_cpu_num: 1&lt;br /&gt;
&lt;br /&gt;
This resource file will a create a Sybase server with the following characteristics:&lt;br /&gt;
* The name of the server will be ASE1, can be changed later with the sp_addserver stored procedure.&lt;br /&gt;
* The server will have a listener on the ip-address as indicated with &amp;lt;hostname&amp;gt; and port 4000. This can be changed later in the interfaces file located at $SYBASE/interfaces.&lt;br /&gt;
* Application type is mixed, so you expect both oltp and dss type of queries. This can be changed later by modification of the “optimization goal” setting with sp_configure).&lt;br /&gt;
* Server page size will be 4 Kb. The default is 2 Kb but with today’s hardware this will give sub-optimal performance. Once the server has been created it cannot be changed, a complete server rebuild is needed then.&lt;br /&gt;
* The master device will be 100 Mb, the size of the master database will be 60 Mb. The master devices will contain the master database, the master database contains important meta-data about the server. It’s very unusual to increase the size of the master device or the master database.&lt;br /&gt;
* The location of the errorlog is /opt/sybase/admin/ASE1/errorlog, can be changed later in the configuration file.&lt;br /&gt;
* A device of 172 Mb will be created for the sybsystemprocs database, also with a size of 172 Mb. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A device of 6 Mb will be created for the sybsystemdb database. The size of the database will actually be 12Mb as a small portion will also reside on the master device. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A temporary database 'tempdb' will be created on a device with a size of 100 Mb, the database will also be 100 Mb. In fact, it will be a bit larger since also a small portion will reside on the master device. Again, the device and the tempdb database can be increased in size. You can also create multiple temporary databases for improved concurrency.&lt;br /&gt;
* We will build a backup server called SYB_BACKUP. The name can be changed later with sp_addserver.&lt;br /&gt;
* We will not use a PCI (Pluggable Component Interface) database. This database is mainly used for Java in the server.&lt;br /&gt;
* Use the optimize configuration feature and tune for 256 Mb of memory and 1 cpu.&lt;br /&gt;
&lt;br /&gt;
Now build the server with the command:&lt;br /&gt;
 srvbuildres -r ASE1.rs&lt;br /&gt;
&lt;br /&gt;
When the srvbuildres command fails with:&lt;br /&gt;
 Task failed&lt;br /&gt;
 Unable to boot server 'ASE1'.  &lt;br /&gt;
 Server 'ASE1' was not created.&lt;br /&gt;
then go to this page for tips how to solve this: [[srvbuildres task failed]].&lt;br /&gt;
&lt;br /&gt;
After a successful creation you can connect to the server using the command line tool isql. The login “sa&amp;quot; has been created, with the password that was specified in ASE.rs file. At the prompt of isql you can type a command or execute a stored procedure. Type exit to exit.&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 sp_helpdb&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Basic ASE configuration==&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration files to the admin directory. First shutdown ASE&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 shutdown&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
 cd $SYBASE/$SYBASE_ASE&lt;br /&gt;
 mv ASE1.cfg /opt/sybase/admin/ASE1&lt;br /&gt;
 rm ASE1.*&lt;br /&gt;
 cd install&lt;br /&gt;
&lt;br /&gt;
Modify RUN_ASE1 and make the following changes:&lt;br /&gt;
* Make the -s flag the first option. This has the advantage that a listing of running processes on the system will show the name of the Sybase server.&lt;br /&gt;
* Change the location of the configuration files, as specified with the -c flag, to the admin directory&lt;br /&gt;
Each line must end with a backslash.&lt;br /&gt;
Example RUN_ASE1 file:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # ASE page size (KB):   4096&lt;br /&gt;
 # Master device path:   /var/sybase/ASE1/master.dev&lt;br /&gt;
 # Error log path:       /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 # Configuration file path:      /opt/sybase/ase157/ASE-15_0/ASE1.cfg&lt;br /&gt;
 # Directory for shared memory files:    /opt/sybase/ase157/ASE-15_0&lt;br /&gt;
 # Adaptive Server name: ASE1&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase157/ASE-15_0/bin/dataserver \&lt;br /&gt;
 -sASE1 \&lt;br /&gt;
 -d/var/sybase/ASE1/master.dev \&lt;br /&gt;
 -e/opt/sybase/admin/ASE1/errorlog \&lt;br /&gt;
 -c/opt/sybase/admin/ASE1/ASE1.cfg \&lt;br /&gt;
 -M/opt/sybase/ase157/ASE-15_0 \&lt;br /&gt;
&lt;br /&gt;
Now restart the Sybase server&lt;br /&gt;
 ./startserver -f ./RUN_ASE1&lt;br /&gt;
&lt;br /&gt;
===Load instmsg.ebf file===&lt;br /&gt;
The instmsgs.ebf file contains the latest update for Sybase error messages. You can load it with isql.&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1 &amp;lt; $SYBASE/$SYBASE_ASE/scripts/instmsgs.ebf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Create the backup server==&lt;br /&gt;
Create the backup server using the following steps.&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;quot;/opt/sybase/admin/SYB_BACKUP&amp;quot; directory and create a resource file. Use the following template as an example, call it SYB_BACKUP.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.backup_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: bsrv&lt;br /&gt;
 bsrv.server_name: SYB_BACKUP&lt;br /&gt;
 bsrv.new_config: yes&lt;br /&gt;
 bsrv.do_add_backup_server: yes&lt;br /&gt;
 bsrv.do_upgrade: no&lt;br /&gt;
 bsrv.network_protocol_list: tcp&lt;br /&gt;
 bsrv.network_hostname_list: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 bsrv.network_port_list: 4001&lt;br /&gt;
 bsrv.language: USE_DEFAULT&lt;br /&gt;
 bsrv.character_set: USE_DEFAULT&lt;br /&gt;
 bsrv.tape_config_file: USE_DEFAULT&lt;br /&gt;
 bsrv.errorlog: /opt/sybase/admin/SYB_BACKUP/SYB_BACKUP.log&lt;br /&gt;
 sqlsrv.related_sqlsrvr: ASE1&lt;br /&gt;
 sqlsrv.sa_login: sa&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 #bsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
&lt;br /&gt;
Build the server with the command:&lt;br /&gt;
 srvbuildres -r SYB_BACKUP.rs&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration file to the admin directory. First shutdown the backup server:&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 shutdown SYB_BACKUP&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Modify the file RUN_SYB_BACKUP, located at $SYBASE/$SYBASE_ASE/install. Move the line with the -s flag to the top. Sample RUN_SYB_BACKUP:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # Error log path:       /opt/sybase/ase157/ASE-15_0/install/SYB_BACKUP.log&lt;br /&gt;
 # Maximum number of network connections:        25&lt;br /&gt;
 # Maximum number of server connections: 20&lt;br /&gt;
 # Multibuf executable path:     /opt/sybase/ase157/ASE-15_0/bin/sybmultbuf&lt;br /&gt;
 # Backup Server name:   SYB_BACKUP&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase157/ASE-15_0/bin/backupserver \&lt;br /&gt;
 -SSYB_BACKUP \&lt;br /&gt;
 -e/opt/sybase/admin/SYB_BACKUP/SYB_BACKUP.log \&lt;br /&gt;
 -N25 \&lt;br /&gt;
 -C20 \&lt;br /&gt;
 -M/opt/sybase/ase157/ASE-15_0/bin/sybmultbuf \&lt;br /&gt;
 &lt;br /&gt;
Restart the backupserver&lt;br /&gt;
 startserver -f $SYBASE/$SYBASE_ASE/install/RUN_SYB_BACKUP&lt;br /&gt;
&lt;br /&gt;
==Create a user database==&lt;br /&gt;
 disk init name = data01,size=&amp;quot;1G&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/data01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 disk init name = log01,size=&amp;quot;100M&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/log01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 create database my_database on data01=&amp;quot;1G&amp;quot; log on log01 = &amp;quot;100M&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
==All done==&lt;br /&gt;
Happy Sybase-ing with your new server!!&lt;br /&gt;
&lt;br /&gt;
Further reading:&lt;br /&gt;
&lt;br /&gt;
Installation guide for Linux http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc30119.1570/doc/html/title.html&lt;br /&gt;
&lt;br /&gt;
Sybase System administration http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc31654.1570/html/sag1/title.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Linux_configuration_settings_for_Sybase_ASE&amp;diff=1958</id>
		<title>Linux configuration settings for Sybase ASE</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Linux_configuration_settings_for_Sybase_ASE&amp;diff=1958"/>
				<updated>2013-03-12T07:47:09Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To run Sybase ASE successfully on a Linux environment you need to configure a number of items. Below you will find a few of these, but please note that this is by far not an full overview. There could be more improvements to be made.&lt;br /&gt;
&lt;br /&gt;
=Memory – Huge Pages=&lt;br /&gt;
The configuration of Huge Pages is needed to get an efficient translation from virtual memory pages to physical pages. When you configure for Huge Pages, the amount of memory assigned to Huge Pages is allocated and reserved for shared memory. Do not over configure to prevent swapping.&lt;br /&gt;
&lt;br /&gt;
When ASE reports the below message in the errorlog, you need to configure for huge pages:&lt;br /&gt;
&lt;br /&gt;
 Could not allocate memory using Huge Pages. Allocated using regular pages. For better performance, reboot the server after configuring enough Huge Pages.&lt;br /&gt;
&lt;br /&gt;
To get the values for huge pages first determine the maximum amount of memory you want to give to ASE. For instance, on a Linux server with 512Gb physical memory you can give 90% to ASE. &lt;br /&gt;
512 Gb x 90% = 460 Gb = 471040 Mb.&lt;br /&gt;
&lt;br /&gt;
Then determine the size of a single huge page:&lt;br /&gt;
&lt;br /&gt;
 cat /proc/meminfo | grep Hugepagesize &lt;br /&gt;
&lt;br /&gt;
Sample output:&lt;br /&gt;
&lt;br /&gt;
 Hugepagesize:       2048 kB&lt;br /&gt;
&lt;br /&gt;
In this case 1 huge page is 2 Mb, so the number of huge pages we need will be 471040 Mb / 2 Mb = 235520 &lt;br /&gt;
&lt;br /&gt;
Then set the correct value in /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
 vm.nr_hugepages = &amp;lt;value&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next step is to calculate the number of huge pages in Kb and give the “sybase” user permission to grab the memory. Take the number of huge pages as calculated above. Then multiply by 2048. That wil give you the number of pages in Kb. Example: 235520 x 2048 = 482344960. Then have it stored in /etc/security/limits.conf like this &lt;br /&gt;
&lt;br /&gt;
 sybase soft memlock 482344960 &lt;br /&gt;
 sybase hard memlock 482344960 &lt;br /&gt;
&lt;br /&gt;
In this example, &amp;quot;sybase&amp;quot; is assumed to be the unix user running ASE.&lt;br /&gt;
&lt;br /&gt;
Now reboot the Linux server to check if everything works as expected.&lt;br /&gt;
&lt;br /&gt;
To see the configured number of huge pages at runtime:&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/vm/nr_hugepages &lt;br /&gt;
&lt;br /&gt;
Notes: &lt;br /&gt;
* As per Sybase recommendation (CR 627114) “lock shared memory” must be switched off. &lt;br /&gt;
* When ASE uses huge pages, it will allocate memory to the nearest multiple of 256Mb so don’t configure the ASE exactly to the maximum number of huge pages, but leave a small amount unused (e.g. 300 Mb). In case a small increase in size is needed due to the change of a Sybase config you will not get into trouble. &lt;br /&gt;
&lt;br /&gt;
=DISK I/O=&lt;br /&gt;
==fs.aio-max-nr ==&lt;br /&gt;
fs.aio-max-nr is the maximum number of asynchronous I/Os.&lt;br /&gt;
&lt;br /&gt;
The recommended minimum value for fs.aio-max-nr is 1048576, but on a busy ASE with many engines you may need to have a higher number configured. &lt;br /&gt;
&lt;br /&gt;
In ASE, set these values as a starting point.&lt;br /&gt;
&lt;br /&gt;
* Set “disk i/o structures” to 1048576.&lt;br /&gt;
* Set “max async i/os per engine” to 8192.&lt;br /&gt;
* Keep &amp;quot;max async i/os per server&amp;quot; at it’s default value (2147483647).&lt;br /&gt;
&lt;br /&gt;
When you have multiple engines configured within ASE then use this formula to calculate the value for fs.aio-max-nr&lt;br /&gt;
&lt;br /&gt;
 (disk i/o structures + max async i/os per engine) * max online engines&lt;br /&gt;
&lt;br /&gt;
For example: (1048576 + 8192) * 32 engines = 33816576 &lt;br /&gt;
&lt;br /&gt;
Then set the value in /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
 fs.aio-max-nr = 33816576 &lt;br /&gt;
&lt;br /&gt;
To get the value at runtime&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/fs/aio-max-nr &lt;br /&gt;
&lt;br /&gt;
===Troubleshooting fs.aio-max-nr===&lt;br /&gt;
When the below messages appear in the ASE  errorlog, the configuration of fs.aio-max-nr is not correct:&lt;br /&gt;
 &lt;br /&gt;
 kernel asynchronous I/O not initialized. The io_setup() system call returned -22.&lt;br /&gt;
or &lt;br /&gt;
 kernel  kistartup: asynchronous I/O not available: No such file or directory&lt;br /&gt;
&lt;br /&gt;
Either recalculate the vale or reduce the Sybase related configuration options (“disk i/o structures” and/or “max async i/os per engine”) &lt;br /&gt;
&lt;br /&gt;
===Troubleshooting dstartio===&lt;br /&gt;
When this message appears in the errorlog&lt;br /&gt;
&lt;br /&gt;
 kernel  dstartio: I/O request repeatedly delayed; block number: &amp;lt;nr&amp;gt;, vdn: &amp;lt;nr&amp;gt;&lt;br /&gt;
then you need to increase &amp;quot;disk i/o structures&amp;quot; or &amp;quot;max async i/os per engine&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To determine if &amp;quot;disk i/o structures&amp;quot; or &amp;quot;max async i/os per engine&amp;quot; needs to be increased look at the output of sp_sysmon that was captured during the time that the message appeared. Snapshot of output: &lt;br /&gt;
&lt;br /&gt;
  I/Os Delayed by &lt;br /&gt;
    Disk I/O Structures               n/a           n/a           0      n/a &lt;br /&gt;
    Server Config Limit               n/a           n/a           0      n/a &lt;br /&gt;
    Engine Config Limit               n/a           n/a       24582      n/a &lt;br /&gt;
    Operating System Limit            n/a           n/a           0      n/a &lt;br /&gt;
&lt;br /&gt;
When a non-zero value is reported, increase the corresponding Sybase parameter.&lt;br /&gt;
Alternatively, you can run sp_monitorconfig “all” to see if the maximum number of “disk i/o structures” has reached (see column Max_Used).&lt;br /&gt;
&lt;br /&gt;
Be aware that the Linux setting for fs.aio-max-nr may need to be increased as well after changing the Sybase configuration settings. &lt;br /&gt;
&lt;br /&gt;
==Queue depth==&lt;br /&gt;
Per Linux volume used by ASE the queue depth must be configured. The default value is 128 but it must be set to 1024.&lt;br /&gt;
&lt;br /&gt;
You can only set the required value at boottime and, depending on the Linux distribution, you need to do it in /etc/init.d/boot.local (Suse) or /etc/init.d/rc.local (Ubuntu) or /etc/rc.d/rc.local (RedHat)&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 echo 1024 &amp;gt;/sys/block/sdb/queue/nr_requests &lt;br /&gt;
&lt;br /&gt;
To retrieve the runtime value:&lt;br /&gt;
&lt;br /&gt;
 cat /sys/block/sd*/queue/nr_requests &lt;br /&gt;
&lt;br /&gt;
=kernel.randomize_va_space=&lt;br /&gt;
This may be Suse and ASE 15.0.3 specific, but it may apply to other Linux / ASE version combinations as well.&lt;br /&gt;
&lt;br /&gt;
Due to a high I/O load you may see stacktraces referring to the cm_writedes module, see below snippet.&lt;br /&gt;
&lt;br /&gt;
 00:00000:00006:2012/11/11 01:18:41.45 kernel  pc: 0x00007ffff73a56a0 (null)+0x7ffff73a56a0()&lt;br /&gt;
 00:00000:00006:2012/11/11 01:18:41.45 kernel  pc: 0x00000000018fd036 cm_writedes+0x606()&lt;br /&gt;
&lt;br /&gt;
In the later versions of ASE 15.7 this should be fixed and an error message is printed.&lt;br /&gt;
To prevent the issue, set the value for  kernel.randomize_va_space to 0 in combination with a higher value of “cpu grace time” in ASE, like 1500. &lt;br /&gt;
To see the runtime value&lt;br /&gt;
 cat /proc/sys/kernel/randomize_va_space &lt;br /&gt;
To see the boottime value, check /etc/sysctl.conf there must be line like kernel.randomize_va_space = 0 &lt;br /&gt;
 &lt;br /&gt;
See also http://www.novell.com/support/kb/doc.php?id=7004855&lt;br /&gt;
&lt;br /&gt;
After changing kernel.randomize_va_space do a reboot of the Linux server, as that seems to be necessary. &lt;br /&gt;
&lt;br /&gt;
=Soft / Hard limits for memory allocation (Suse only)=&lt;br /&gt;
By default, no more than 80 % of available memory (RAM and swap) can be claimed by a single process. This is the soft-virtual limit. To check the setting: cat  /etc/sysconfig/ulimit and look for the value specified as SOFTVIRTUALLIMIT. Default is “80”. &lt;br /&gt;
&lt;br /&gt;
Increase the setting as setting as needed, or set to “0” for unlimited.&lt;br /&gt;
&lt;br /&gt;
Associated Sybase error message: &lt;br /&gt;
&lt;br /&gt;
 Attempt to attach shared memory (id 32768) at address (nil), with flags 0 failed&lt;br /&gt;
&lt;br /&gt;
[[category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=ASE_Cache_stalls&amp;diff=1957</id>
		<title>ASE Cache stalls</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=ASE_Cache_stalls&amp;diff=1957"/>
				<updated>2013-03-12T07:46:18Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A cache stall in Sybase ASE may occur when a read from disk has to wait for a write to complete so that it can reuse the buffer. The page that needs to be written to disk has passed the wash marker in the cache and is scheduled to be written asynchronously to disk. The tasks in ASE dealing with that are the housekeeper and the checkpoint process.&lt;br /&gt;
&lt;br /&gt;
When a stall occurs the process that requires the data to be read, just has to wait until the preceding writes are completed. Obviously, this is not good for performance.&lt;br /&gt;
&lt;br /&gt;
Here is a simple query to see if your system is suffering from stalls:&lt;br /&gt;
&lt;br /&gt;
 select CacheName,&lt;br /&gt;
        convert(char(3),IOBufferSize / 1024) + &amp;quot;Kb&amp;quot; as &amp;quot;IO Size&amp;quot;,&lt;br /&gt;
        Stalls&lt;br /&gt;
        from    master..monCachePool&lt;br /&gt;
        where   Stalls &amp;gt; 0&lt;br /&gt;
        order   by CacheName, IOBufferSize&lt;br /&gt;
&lt;br /&gt;
Sample output&lt;br /&gt;
&lt;br /&gt;
 CacheName                      IO Size Stalls     &lt;br /&gt;
 ------------------------------ ------- -----------&lt;br /&gt;
 tempdb cache                   8  Kb            92&lt;br /&gt;
 tempdb cache                   64 Kb            15&lt;br /&gt;
  &lt;br /&gt;
 (2 rows affected)&lt;br /&gt;
&lt;br /&gt;
==Potential solutions==&lt;br /&gt;
===Increase the wash size===&lt;br /&gt;
By increasing the wash size of a pool within a cache, the modified page will be triggered at an earlier stage to be written to disk. To see the definition of a cache run sp_cacheconfig followed by the name of the cache.&lt;br /&gt;
&lt;br /&gt;
 sp_cacheconfig &amp;quot;tempdb cache&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
Sample output&lt;br /&gt;
&lt;br /&gt;
 Cache Name   Status   Type             Config Value   Run Value   &lt;br /&gt;
 ------------ -------- ---------------- -------------- ------------&lt;br /&gt;
 tempdb cache Active   Mixed, HK Ignore  51200.00 Mb    51200.00 Mb&lt;br /&gt;
                                       ------------ ------------&lt;br /&gt;
                       Total    51200.0 Mb   51200.0 Mb  &lt;br /&gt;
 ==========================================================================&lt;br /&gt;
 Cache: tempdb cache,   Status: Active,   Type: Mixed, HK Ignore&lt;br /&gt;
       Config Size: 51200.00 Mb,   Run Size: 51200.00 Mb&lt;br /&gt;
       Config Replacement: relaxed LRU,   Run Replacement: relaxed LRU&lt;br /&gt;
       Config Partition:           64,   Run Partition:           64&lt;br /&gt;
  IO Size  Wash Size     Config Size  Run Size     APF Percent&lt;br /&gt;
  -------- ------------- ------------ ------------ -----------&lt;br /&gt;
      8 Kb    3932160 Kb      0.00 Mb  25300.00 Mb     15     &lt;br /&gt;
     16 Kb      61440 Kb    300.00 Mb    300.00 Mb     15     &lt;br /&gt;
     64 Kb    3932160 Kb  25600.00 Mb  25600.00 Mb     15     &lt;br /&gt;
 (return status = 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The washsize can be increased by running sp_poolconfig as in this example:&lt;br /&gt;
&lt;br /&gt;
 sp_poolconfig &amp;quot;tempdb cache&amp;quot;, &amp;quot;8K&amp;quot;, &amp;quot;wash_size=5G&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
The configuration change is immediate and no reboot is required. Do not make the wash area to big as it may be counterproductive.&lt;br /&gt;
&lt;br /&gt;
===Tuning the housekeeper or checkpoint process===&lt;br /&gt;
Alternatively, you may need to tune the housekeeper or the checkpoint process. There is a good document for this here: http://www.sybase.com/files/White_Papers/Managing-DBMS-Workloads-v1.0-WP.pdf&lt;br /&gt;
&lt;br /&gt;
But beware, a cache can be marked to be ignored by the housekeeper, as is the case in the example above. To configure such a state, add a line &amp;quot;cache status = HK ignore cache&amp;quot; to the ASE configuration file.&lt;br /&gt;
&lt;br /&gt;
[[category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Linux_configuration_settings_for_Sybase_ASE&amp;diff=1956</id>
		<title>Linux configuration settings for Sybase ASE</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Linux_configuration_settings_for_Sybase_ASE&amp;diff=1956"/>
				<updated>2013-03-11T12:52:18Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: Created page with 'To run Sybase ASE successfully on a Linux environment you need to configure a number of items. Below you will find a few of these, but please note that this is by far not an full…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To run Sybase ASE successfully on a Linux environment you need to configure a number of items. Below you will find a few of these, but please note that this is by far not an full overview. There could be more improvements to be made.&lt;br /&gt;
&lt;br /&gt;
=Memory – Huge Pages=&lt;br /&gt;
The configuration of Huge Pages is needed to get an efficient translation from virtual memory pages to physical pages. When you configure for Huge Pages, the amount of memory assigned to Huge Pages is allocated and reserved for shared memory. Do not over configure to prevent swapping.&lt;br /&gt;
&lt;br /&gt;
When ASE reports the below message in the errorlog, you need to configure for huge pages:&lt;br /&gt;
&lt;br /&gt;
 Could not allocate memory using Huge Pages. Allocated using regular pages. For better performance, reboot the server after configuring enough Huge Pages.&lt;br /&gt;
&lt;br /&gt;
To get the values for huge pages first determine the maximum amount of memory you want to give to ASE. For instance, on a Linux server with 512Gb physical memory you can give 90% to ASE. &lt;br /&gt;
512 Gb x 90% = 460 Gb = 471040 Mb.&lt;br /&gt;
&lt;br /&gt;
Then determine the size of a single huge page:&lt;br /&gt;
&lt;br /&gt;
 cat /proc/meminfo | grep Hugepagesize &lt;br /&gt;
&lt;br /&gt;
Sample output:&lt;br /&gt;
&lt;br /&gt;
 Hugepagesize:       2048 kB&lt;br /&gt;
&lt;br /&gt;
In this case 1 huge page is 2 Mb, so the number of huge pages we need will be 471040 Mb / 2 Mb = 235520 &lt;br /&gt;
&lt;br /&gt;
Then set the correct value in /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
 vm.nr_hugepages = &amp;lt;value&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Next step is to calculate the number of huge pages in Kb and give the “sybase” user permission to grab the memory. Take the number of huge pages as calculated above. Then multiply by 2048. That wil give you the number of pages in Kb. Example: 235520 x 2048 = 482344960. Then have it stored in /etc/security/limits.conf like this &lt;br /&gt;
&lt;br /&gt;
 sybase soft memlock 482344960 &lt;br /&gt;
 sybase hard memlock 482344960 &lt;br /&gt;
&lt;br /&gt;
In this example, &amp;quot;sybase&amp;quot; is assumed to be the unix user running ASE.&lt;br /&gt;
&lt;br /&gt;
Now reboot the Linux server to check if everything works as expected.&lt;br /&gt;
&lt;br /&gt;
To see the configured number of huge pages at runtime:&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/vm/nr_hugepages &lt;br /&gt;
&lt;br /&gt;
Notes: &lt;br /&gt;
* As per Sybase recommendation (CR 627114) “lock shared memory” must be switched off. &lt;br /&gt;
* When ASE uses huge pages, it will allocate memory to the nearest multiple of 256Mb so don’t configure the ASE exactly to the maximum number of huge pages, but leave a small amount unused (e.g. 300 Mb). In case a small increase in size is needed due to the change of a Sybase config you will not get into trouble. &lt;br /&gt;
&lt;br /&gt;
=DISK I/O=&lt;br /&gt;
==fs.aio-max-nr ==&lt;br /&gt;
fs.aio-max-nr is the maximum number of asynchronous I/Os.&lt;br /&gt;
&lt;br /&gt;
The recommended minimum value for fs.aio-max-nr is 1048576, but on a busy ASE with many engines you may need to have a higher number configured. &lt;br /&gt;
&lt;br /&gt;
In ASE, set these values as a starting point.&lt;br /&gt;
&lt;br /&gt;
* Set “disk i/o structures” to 1048576.&lt;br /&gt;
* Set “max async i/os per engine” to 8192.&lt;br /&gt;
* Keep &amp;quot;max async i/os per server&amp;quot; at it’s default value (2147483647).&lt;br /&gt;
&lt;br /&gt;
When you have multiple engines configured within ASE then use this formula to calculate the value for fs.aio-max-nr&lt;br /&gt;
&lt;br /&gt;
 (disk i/o structures + max async i/os per engine) * max online engines&lt;br /&gt;
&lt;br /&gt;
For example: (1048576 + 8192) * 32 engines = 33816576 &lt;br /&gt;
&lt;br /&gt;
Then set the value in /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
 fs.aio-max-nr = 33816576 &lt;br /&gt;
&lt;br /&gt;
To get the value at runtime&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/fs/aio-max-nr &lt;br /&gt;
&lt;br /&gt;
===Troubleshooting fs.aio-max-nr===&lt;br /&gt;
When the below messages appear in the ASE  errorlog, the configuration of fs.aio-max-nr is not correct:&lt;br /&gt;
 &lt;br /&gt;
 kernel asynchronous I/O not initialized. The io_setup() system call returned -22.&lt;br /&gt;
or &lt;br /&gt;
 kernel  kistartup: asynchronous I/O not available: No such file or directory&lt;br /&gt;
&lt;br /&gt;
Either recalculate the vale or reduce the Sybase related configuration options (“disk i/o structures” and/or “max async i/os per engine”) &lt;br /&gt;
&lt;br /&gt;
===Troubleshooting dstartio===&lt;br /&gt;
When this message appears in the errorlog&lt;br /&gt;
&lt;br /&gt;
 kernel  dstartio: I/O request repeatedly delayed; block number: &amp;lt;nr&amp;gt;, vdn: &amp;lt;nr&amp;gt;&lt;br /&gt;
then you need to increase &amp;quot;disk i/o structures&amp;quot; or &amp;quot;max async i/os per engine&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To determine if &amp;quot;disk i/o structures&amp;quot; or &amp;quot;max async i/os per engine&amp;quot; needs to be increased look at the output of sp_sysmon that was captured during the time that the message appeared. Snapshot of output: &lt;br /&gt;
&lt;br /&gt;
  I/Os Delayed by &lt;br /&gt;
    Disk I/O Structures               n/a           n/a           0      n/a &lt;br /&gt;
    Server Config Limit               n/a           n/a           0      n/a &lt;br /&gt;
    Engine Config Limit               n/a           n/a       24582      n/a &lt;br /&gt;
    Operating System Limit            n/a           n/a           0      n/a &lt;br /&gt;
&lt;br /&gt;
When a non-zero value is reported, increase the corresponding Sybase parameter.&lt;br /&gt;
Alternatively, you can run sp_monitorconfig “all” to see if the maximum number of “disk i/o structures” has reached (see column Max_Used).&lt;br /&gt;
&lt;br /&gt;
Be aware that the Linux setting for fs.aio-max-nr may need to be increased as well after changing the Sybase configuration settings. &lt;br /&gt;
&lt;br /&gt;
==Queue depth==&lt;br /&gt;
Per Linux volume used by ASE the queue depth must be configured. The default value is 128 but it must be set to 1024.&lt;br /&gt;
&lt;br /&gt;
You can only set the required value at boottime and, depending on the Linux distribution, you need to do it in /etc/init.d/boot.local (Suse) or /etc/init.d/rc.local (Ubuntu) or /etc/rc.d/rc.local (RedHat)&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 echo 1024 &amp;gt;/sys/block/sdb/queue/nr_requests &lt;br /&gt;
&lt;br /&gt;
To retrieve the runtime value:&lt;br /&gt;
&lt;br /&gt;
 cat /sys/block/sd*/queue/nr_requests &lt;br /&gt;
&lt;br /&gt;
=kernel.randomize_va_space=&lt;br /&gt;
This may be Suse and ASE 15.0.3 specific, but it may apply to other Linux / ASE version combinations as well.&lt;br /&gt;
&lt;br /&gt;
Due to a high I/O load you may see stacktraces referring to the cm_writedes module, see below snippet.&lt;br /&gt;
&lt;br /&gt;
 00:00000:00006:2012/11/11 01:18:41.45 kernel  pc: 0x00007ffff73a56a0 (null)+0x7ffff73a56a0()&lt;br /&gt;
 00:00000:00006:2012/11/11 01:18:41.45 kernel  pc: 0x00000000018fd036 cm_writedes+0x606()&lt;br /&gt;
&lt;br /&gt;
In the later versions of ASE 15.7 this should be fixed and an error message is printed.&lt;br /&gt;
To prevent the issue, set the value for  kernel.randomize_va_space to 0 in combination with a higher value of “cpu grace time” in ASE, like 1500. &lt;br /&gt;
To see the runtime value&lt;br /&gt;
 cat /proc/sys/kernel/randomize_va_space &lt;br /&gt;
To see the boottime value, check /etc/sysctl.conf there must be line like kernel.randomize_va_space = 0 &lt;br /&gt;
 &lt;br /&gt;
See also http://www.novell.com/support/kb/doc.php?id=7004855&lt;br /&gt;
&lt;br /&gt;
After changing kernel.randomize_va_space do a reboot of the Linux server, as that seems to be necessary. &lt;br /&gt;
&lt;br /&gt;
=Soft / Hard limits for memory allocation (Suse only)=&lt;br /&gt;
By default, no more than 80 % of available memory (RAM and swap) can be claimed by a single process. This is the soft-virtual limit. To check the setting: cat  /etc/sysconfig/ulimit and look for the value specified as SOFTVIRTUALLIMIT. Default is “80”. &lt;br /&gt;
&lt;br /&gt;
Increase the setting as setting as needed, or set to “0” for unlimited.&lt;br /&gt;
&lt;br /&gt;
Associated Sybase error message: &lt;br /&gt;
&lt;br /&gt;
 Attempt to attach shared memory (id 32768) at address (nil), with flags 0 failed&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Warm_Standby_setup_instructions&amp;diff=1955</id>
		<title>Warm Standby setup instructions</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Warm_Standby_setup_instructions&amp;diff=1955"/>
				<updated>2013-02-27T12:29:05Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sybase Replication Server allows you to create and maintain a warm standby environment. The creation can be done with, for instance, the rs_init utility or Sybase Central. In some cases extra flexibility is needed and this can best be achieved when command line statements are used.&lt;br /&gt;
For various other reasons people prefer using this method.&lt;br /&gt;
&lt;br /&gt;
This page describes the steps to be taken to create a warm standby environment through a combination of commands given to ASE and Replication Server. It should be considered as a kind of worksheet. Feel free to make changes to suit your individual need. This might be needed when you are dealing with a database with big table(s) holding text or image datatypes or you want to optimize performance using replication definitions and subscriptions.&lt;br /&gt;
&lt;br /&gt;
==Assumptions of the environment==&lt;br /&gt;
* The setup makes the following assumptions: &lt;br /&gt;
* The Replication Server is already configured and running. &lt;br /&gt;
* Replication is done between ASE servers &lt;br /&gt;
* Materialization will be done with a dump-load scenario &lt;br /&gt;
* Replication is performed without replication definitions and subscriptions &lt;br /&gt;
* User activity will continue throughout the creation process &lt;br /&gt;
The setup is divided into a number of steps, where each step is a separate unit of work.&lt;br /&gt;
&lt;br /&gt;
==Preparation of the Sybase ASE-servers==&lt;br /&gt;
'''Create a maintenance user on both ASE's'''&lt;br /&gt;
&lt;br /&gt;
The maintenance user is used by the replication server to apply transactions. Make sure that the name and password of the maintenance user on both servers are identical. For practical reasons make the maintenance user aliased to &amp;quot;dbo&amp;quot; in the database. Since a dump-load scenario is used to materialize the standby database, make sure that the suid of the maintenance user on both servers are identical.&lt;br /&gt;
&lt;br /&gt;
 sp_addlogin &amp;quot;&amp;lt;maintenance_user&amp;gt;&amp;quot;,&amp;quot;&amp;lt;maintenance_user_password&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 grant role replication_role to &amp;quot;&amp;lt;maintenance_user&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 -- check the value of the suid&lt;br /&gt;
 select suser_id(&amp;quot;&amp;lt;maintenance_user&amp;gt;&amp;quot;)&lt;br /&gt;
 go&lt;br /&gt;
 use &amp;lt;database&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
 sp_addalias &amp;quot;&amp;lt;maintenance_user&amp;gt;&amp;quot;,&amp;quot;dbo&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
'''Install the replication server stored procedures and tables'''&lt;br /&gt;
&lt;br /&gt;
To do this, make a copy of the script rs_install_primary.sql located in the $SYBASE/$SYBASE_REP/scripts directory. Comment out 2 commands of the script: the dbcc settrunc and the sp_setreplicate commands. These can be found at the end of the file, or just above the definition of the rs_send_repserver_cmd stored procedure.&lt;br /&gt;
&lt;br /&gt;
The commands that are skipped will be executed at a later stage, when the replication agent is configured. Apply the script on the active server in the right database.&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -P&amp;lt;password&amp;gt; -S&amp;lt;active_server&amp;gt; -D&amp;lt;database&amp;gt; -i changed_rs_install_primary.sql &lt;br /&gt;
&lt;br /&gt;
'''Configure both servers for replication'''&lt;br /&gt;
&lt;br /&gt;
 sp_configure &amp;quot;enable rep agent threads&amp;quot;,1&lt;br /&gt;
&lt;br /&gt;
==Preparation of the Replication Server==&lt;br /&gt;
'''Create a logical connection on the replication server'''&lt;br /&gt;
&lt;br /&gt;
The name of it does not have to match with the name of the primary database server and database, but this convention is widely used. &lt;br /&gt;
&lt;br /&gt;
 create logical connection to &amp;lt;active_server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create a connection from the replication server to the active database'''&lt;br /&gt;
&lt;br /&gt;
 create connection to &amp;lt;active_server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
 set error class to rs_sqlserver_error_class&lt;br /&gt;
 set function string class to rs_sqlserver_function_class&lt;br /&gt;
 set username to &amp;lt;maintenance_user&amp;gt;&lt;br /&gt;
 set password to &amp;lt;maintenance_user_password&amp;gt;&lt;br /&gt;
 with log transfer on&lt;br /&gt;
 as active for &amp;lt;active_server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create a login in the replication server'''&lt;br /&gt;
&lt;br /&gt;
This login is used by the rep-agent running in the ASE to connect to the replication server. &lt;br /&gt;
&lt;br /&gt;
 create user &amp;lt;rep-agent_user&amp;gt; set password &amp;lt;rep-agent_password&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
 grant connect source to &amp;lt;rep-agent_user&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==Configure the RepAgent==&lt;br /&gt;
The configuration of the Replication Agent within the active ASE should now be done. All steps within this paragraph should be executed within a controlled time frame since the transaction log cannot be cleared between the execution of the first sp_config_rep_agent and the sp_start_rep_agent.&lt;br /&gt;
The configuration is only needed on the primary server. Since we use a dump-load scenario the configuration is copied to the standby server during the materialization phase.&lt;br /&gt;
&lt;br /&gt;
 use &amp;lt;database&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
 sp_config_rep_agent &amp;quot;&amp;lt;database&amp;gt;&amp;quot;, &amp;quot;enable&amp;quot;, &amp;quot;&amp;lt;repserver&amp;gt;&amp;quot;, &amp;quot;&amp;lt;rep-agent_user&amp;gt;&amp;quot;, &amp;quot;&amp;lt;rep-agent_password&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 sp_config_rep_agent &amp;quot;&amp;lt;database&amp;gt;&amp;quot;, &amp;quot;send warm standby xacts&amp;quot;, true&lt;br /&gt;
 go&lt;br /&gt;
 sp_setreplicate rs_marker,&amp;quot;true&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 sp_setreplicate rs_update_lastcommit,&amp;quot;true&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 sp_start_rep_agent &amp;quot;&amp;lt;database&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==Mark the database for replication and grant permissions==&lt;br /&gt;
Execute the sp_reptostandby stored procedure in the active ASE to activate replication from the active database to the replication server.&lt;br /&gt;
&lt;br /&gt;
We also need to grant permissions to a few stored procedures.&lt;br /&gt;
&lt;br /&gt;
 use &amp;lt;database&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
 grant execute on rs_update_lastcommit to public&lt;br /&gt;
 grant execute on rs_marker to public&lt;br /&gt;
 grant execute on rs_check_repl_stat to public&lt;br /&gt;
 go&lt;br /&gt;
 sp_reptostandby &amp;quot;&amp;lt;database&amp;gt;&amp;quot;,&amp;quot;all&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==Configure the replication server for the standby database==&lt;br /&gt;
All steps within this paragraph should be executed within a controlled time frame since the stable queue in the replication server cannot be cleared between the execution of the create connection and resume connection.&lt;br /&gt;
&lt;br /&gt;
'''Create a connection from the replication server to the standby server'''&lt;br /&gt;
&lt;br /&gt;
 create connection to &amp;lt;standby-server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
 set error class to rs_sqlserver_error_class&lt;br /&gt;
 set function string class to rs_sqlserver_function_class&lt;br /&gt;
 set username to &amp;lt;maintenance_user&amp;gt;&lt;br /&gt;
 set password to &amp;lt;maintenance_user_password&amp;gt;&lt;br /&gt;
 with log transfer on&lt;br /&gt;
 as standby for &amp;lt;active_server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
 use dump marker &lt;br /&gt;
&lt;br /&gt;
'''Dump the database on the active server so it can be loaded into the standby server''' &lt;br /&gt;
&lt;br /&gt;
 dump database &amp;lt;database&amp;gt; to &amp;quot;&amp;lt;file-name&amp;gt;&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Load the database dump into the standby server''' &lt;br /&gt;
&lt;br /&gt;
 load database &amp;lt;database&amp;gt; from &amp;quot;&amp;lt;file-name&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 online database &amp;lt;database&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
'''Start the connection from the replication server to the standby database'''&lt;br /&gt;
&lt;br /&gt;
 resume connection to &amp;lt;standby-server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Congratulations, you now have a working Warm Standby configuration!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RepServer]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=ASE_Cache_stalls&amp;diff=1954</id>
		<title>ASE Cache stalls</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=ASE_Cache_stalls&amp;diff=1954"/>
				<updated>2013-02-10T16:50:04Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: Created page with 'A cache stall in Sybase ASE may occur when a read from disk has to wait for a write to complete so that it can reuse the buffer. The page that needs to be written to disk has pas…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A cache stall in Sybase ASE may occur when a read from disk has to wait for a write to complete so that it can reuse the buffer. The page that needs to be written to disk has passed the wash marker in the cache and is scheduled to be written asynchronously to disk. The tasks in ASE dealing with that are the housekeeper and the checkpoint process.&lt;br /&gt;
&lt;br /&gt;
When a stall occurs the process that requires the data to be read, just has to wait until the preceding writes are completed. Obviously, this is not good for performance.&lt;br /&gt;
&lt;br /&gt;
Here is a simple query to see if your system is suffering from stalls:&lt;br /&gt;
&lt;br /&gt;
 select CacheName,&lt;br /&gt;
        convert(char(3),IOBufferSize / 1024) + &amp;quot;Kb&amp;quot; as &amp;quot;IO Size&amp;quot;,&lt;br /&gt;
        Stalls&lt;br /&gt;
        from    master..monCachePool&lt;br /&gt;
        where   Stalls &amp;gt; 0&lt;br /&gt;
        order   by CacheName, IOBufferSize&lt;br /&gt;
&lt;br /&gt;
Sample output&lt;br /&gt;
&lt;br /&gt;
 CacheName                      IO Size Stalls     &lt;br /&gt;
 ------------------------------ ------- -----------&lt;br /&gt;
 tempdb cache                   8  Kb            92&lt;br /&gt;
 tempdb cache                   64 Kb            15&lt;br /&gt;
  &lt;br /&gt;
 (2 rows affected)&lt;br /&gt;
&lt;br /&gt;
==Potential solutions==&lt;br /&gt;
===Increase the wash size===&lt;br /&gt;
By increasing the wash size of a pool within a cache, the modified page will be triggered at an earlier stage to be written to disk. To see the definition of a cache run sp_cacheconfig followed by the name of the cache.&lt;br /&gt;
&lt;br /&gt;
 sp_cacheconfig &amp;quot;tempdb cache&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
Sample output&lt;br /&gt;
&lt;br /&gt;
 Cache Name   Status   Type             Config Value   Run Value   &lt;br /&gt;
 ------------ -------- ---------------- -------------- ------------&lt;br /&gt;
 tempdb cache Active   Mixed, HK Ignore  51200.00 Mb    51200.00 Mb&lt;br /&gt;
                                       ------------ ------------&lt;br /&gt;
                       Total    51200.0 Mb   51200.0 Mb  &lt;br /&gt;
 ==========================================================================&lt;br /&gt;
 Cache: tempdb cache,   Status: Active,   Type: Mixed, HK Ignore&lt;br /&gt;
       Config Size: 51200.00 Mb,   Run Size: 51200.00 Mb&lt;br /&gt;
       Config Replacement: relaxed LRU,   Run Replacement: relaxed LRU&lt;br /&gt;
       Config Partition:           64,   Run Partition:           64&lt;br /&gt;
  IO Size  Wash Size     Config Size  Run Size     APF Percent&lt;br /&gt;
  -------- ------------- ------------ ------------ -----------&lt;br /&gt;
      8 Kb    3932160 Kb      0.00 Mb  25300.00 Mb     15     &lt;br /&gt;
     16 Kb      61440 Kb    300.00 Mb    300.00 Mb     15     &lt;br /&gt;
     64 Kb    3932160 Kb  25600.00 Mb  25600.00 Mb     15     &lt;br /&gt;
 (return status = 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The washsize can be increased by running sp_poolconfig as in this example:&lt;br /&gt;
&lt;br /&gt;
 sp_poolconfig &amp;quot;tempdb cache&amp;quot;, &amp;quot;8K&amp;quot;, &amp;quot;wash_size=5G&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
The configuration change is immediate and no reboot is required. Do not make the wash area to big as it may be counterproductive.&lt;br /&gt;
&lt;br /&gt;
===Tuning the housekeeper or checkpoint process===&lt;br /&gt;
Alternatively, you may need to tune the housekeeper or the checkpoint process. There is a good document for this here: http://www.sybase.com/files/White_Papers/Managing-DBMS-Workloads-v1.0-WP.pdf&lt;br /&gt;
&lt;br /&gt;
But beware, a cache can be marked to be ignored by the housekeeper, as is the case in the example above. To configure such a state, add a line &amp;quot;cache status = HK ignore cache&amp;quot; to the ASE configuration file.&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Special_Features_for_ASE&amp;diff=1953</id>
		<title>Special Features for ASE</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Special_Features_for_ASE&amp;diff=1953"/>
				<updated>2012-11-08T08:09:41Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sybase ASE has quite some special features that are not very well known. This page lists some of them (in alphabetical order) and provides a hyperlink to the white papers provided by Sybase.&lt;br /&gt;
Some of the features have been significantly enhanced or extended after publication of the white paper. Please visit http://www.sybase.com for the latest documentation.&lt;br /&gt;
&lt;br /&gt;
Depending on your ASE license, some of the features can only be used after you bought the appropiate licence key. Contact Sybase sales or support for more information.&lt;br /&gt;
&lt;br /&gt;
* Archived databases http://www.sybase.com/files/Product_Overviews/Sybase-ISUG-101707.pdf&lt;br /&gt;
* Cluster edition: http://www.sybase.com/files/White_Papers/Sybase_ASE_Cluster_TechWP.pdf&lt;br /&gt;
* Content management (a.k.a. external file access) http://www.sybase.com/content/1019936/ASEContMgmtPkg.pdf&lt;br /&gt;
* Cross platform dump and load http://www.sybase.com/content/1033627/18XPDL_1253_WP.pdf&lt;br /&gt;
* Distributed transactions http://infocenter.sybase.com/help/topic/com.sybase.help.ase_15.0.dtm/dtm.pdf&lt;br /&gt;
* Encrypted columns http://www.sybase.com/files/White_Papers/Sybase_ASE_Encrypt_3PSS_wp.pdf&lt;br /&gt;
* Fine grained access control: http://www.sybase.com/content/1013009/new_security_wp.pdf&lt;br /&gt;
* Full Text Search http://infocenter.sybase.com/help/topic/com.sybase.help.ase_15.0.verity/verity.pdf&lt;br /&gt;
* High Availability http://www.sybase.com/content/1019940/ASEHA.pdf&lt;br /&gt;
* In memory databases http://www.sybase.com/files/White_Papers/ASE-IMBD-WP.pdf&lt;br /&gt;
* Java in the database (15.0.3) http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc31652.1503/pdf/java.pdf&lt;br /&gt;
* Java in the database (pre 15.0.3) http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc31652.1502/pdf/java.pdf&lt;br /&gt;
* Job Scheduler http://www.sybase.com/content/1026304/job_scheduler_wp.pdf&lt;br /&gt;
* Kerberos/PAM http://www.sybase.com/content/1030018/ASE_1252_Security_wp.pdf&lt;br /&gt;
* LDAP / Active Directory http://www.sybase.com/content/1026313/SYSD1039LDAP_WP.pdf&lt;br /&gt;
* Light weight replicator http://infocenter.sybase.com/help/topic/com.sybase.help.ase_15.0.rl15ug/rl15ug.pdf (will go end-of-support at 9/30/2010)&lt;br /&gt;
* Partitions: http://www.sybase.com/files/White_Papers/ASE-Partitions-040307-wp.pdf&lt;br /&gt;
* SSL http://www.sybase.com/content/1013009/new_security_wp.pdf&lt;br /&gt;
* WebServices http://www.sybase.com/content/1017876/ASEWebServices.pdf&lt;br /&gt;
* XML http://www.sybase.com/content/20519/xml_wp-v2.pdf&lt;br /&gt;
&lt;br /&gt;
[[Category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Bypasssing_cross_platform_load_issues&amp;diff=1952</id>
		<title>Bypasssing cross platform load issues</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Bypasssing_cross_platform_load_issues&amp;diff=1952"/>
				<updated>2012-11-03T10:18:09Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: /* Stacktrace in modules make_log_consistent and rec_build_recovery_info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When loading an ASE database dump made on another platform you may run into problems. For instance, this can happen when the dump is made on an Intel x86 platform but you want to load it into an ASE running on Solaris Sparc. As documented by Sybase, you need to prepare a dump for this situation before attempting to load it.&lt;br /&gt;
&lt;br /&gt;
See: http://www.sybase.com/detail?id=1033627 or go straight to this whitepaper http://www.sybase.com/content/1033627/18XPDL_1253_WP.pdf&lt;br /&gt;
&lt;br /&gt;
When you do not follow the required steps before making the database dump you may get this error:&lt;br /&gt;
&lt;br /&gt;
 Started cross-platform conversion for log records.&lt;br /&gt;
 Msg 3151, Level 16, State 2:&lt;br /&gt;
 Server 'TEST', Line 1:&lt;br /&gt;
 Adaptive Server cannot load this database because the database that was dumped&lt;br /&gt;
 was not quiescent when the dump was performed. Run sp_flushstats before DUMP&lt;br /&gt;
 DATABASE and ensure that the database is not updated during the dump. &lt;br /&gt;
&lt;br /&gt;
Under some circumstances you may not want to follow the required steps and force ASE to bring the database online anyway. Below are the steps how you can do that. The name of database in the example is 'testdb'. You may run into some problems, see section below for solutions.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT''' This method may result in some loss of data or a an unusable database on the ASE where you load the database dump into. It's recommended to use it only for testing and query purposes.&lt;br /&gt;
&lt;br /&gt;
==Bypassing Msg 3151==&lt;br /&gt;
After loading the database and Msg 3151 is reported follow these steps:&lt;br /&gt;
&lt;br /&gt;
 use master&lt;br /&gt;
 go&lt;br /&gt;
 sp_configure &amp;quot;allow updates&amp;quot;,1&lt;br /&gt;
 go&lt;br /&gt;
 update sysdatabases set status = -32768,status3=131072 where name = &amp;quot;testdb&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
Shutdown the server and start it up again.&lt;br /&gt;
&lt;br /&gt;
A message in the errorlog indicates that recovery is not done for the database:&lt;br /&gt;
&lt;br /&gt;
 00:00000:00001:2011/04/05 16:07:54.38 server&lt;br /&gt;
 *** Bypassing recovery of database id 4&lt;br /&gt;
&lt;br /&gt;
Log on to ASE and rebuild the transaction log for the database&lt;br /&gt;
 dbcc traceon(3604)&lt;br /&gt;
 go&lt;br /&gt;
 dbcc save_rebuild_log(testdb)&lt;br /&gt;
 go&lt;br /&gt;
 update sysdatabases set status = 0 where name = &amp;quot;testdb&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
Shutdown the server and start it up again.&lt;br /&gt;
&lt;br /&gt;
The database will now be brought online, watch the errorlog for any problems.&lt;br /&gt;
Now the database should be recovered succesfully.&lt;br /&gt;
&lt;br /&gt;
Log on to the server and:&lt;br /&gt;
 update sysdatabases set status3=524288 where name = &amp;quot;testdb&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 use testdb&lt;br /&gt;
 go&lt;br /&gt;
 sp_post_xpload&lt;br /&gt;
 go&lt;br /&gt;
 update sysdatabases set status3=0 where name = &amp;quot;testdb&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
All done now, you should be able to use the database for querying data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Problems and potential solutions==&lt;br /&gt;
&lt;br /&gt;
===Transactionlog full during recovery===&lt;br /&gt;
&lt;br /&gt;
 00:00000:00013:2011/04/05 16:18:00.14 server  Error: 1105, Severity: 17, State: 4&lt;br /&gt;
 00:00000:00013:2011/04/05 16:18:00.14 server  Can't allocate space for object 'syslogs' in database 'testdb' because 'logsegment' segment is full/has no free extents. If you ran out of space in syslogs, dump the transaction log. Otherwise, use ALTER DATABASE to increase the size of the segment.&lt;br /&gt;
 00:00000:00013:2011/04/05 16:18:00.14 server  This database requires upgrade, but its log is nearly full. Extend the log, or try 'DUMP TRAN testdb WITH NO_LOG', then retry ONLINE DATABASE.&lt;br /&gt;
&lt;br /&gt;
Change the segment status for the database.&lt;br /&gt;
&lt;br /&gt;
 use master&lt;br /&gt;
 go&lt;br /&gt;
 update sysusages set segmap = 7 where dbid = db_id(&amp;quot;testdb&amp;quot;)&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
Now reload the database with the &amp;quot;load database&amp;quot; command and reboot ASE. Then:&lt;br /&gt;
&lt;br /&gt;
 use master&lt;br /&gt;
 go&lt;br /&gt;
 update sysdatabases&lt;br /&gt;
 set status3 = status3 - 67108864,&lt;br /&gt;
 status = -32768&lt;br /&gt;
 where name = &amp;quot;testdb&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
===Stacktrace in modules make_log_consistent and rec_build_recovery_info===&lt;br /&gt;
when an error in the errorlog appears like this:&lt;br /&gt;
&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  Current process (0x30003) infected with signal 11 (SIGSEGV)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  Address 0x00000000803b80fc (xls_open+0xdc), siginfo (code, address) = (1, 0x00000000000000ac)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  Saved signal context address 0x0000010001b08280&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  pc=0x00000000803b80fc  npc=0x00000000803b8100&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  g0-g2 0x0000000000000000 0x0000000000000008 0x00000000825fd000&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  g3-g5 0x0000000000000038 0x0000000081b3f9d0 0x00000000000001c0&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  g6-g7 0x0000000000000000 0xffffffff7eb00200&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  o0-o2 0x0000000000000000 0x000001001c99e6c0 0x000001001c83ab50&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  o3-o5 0x000001001d5dfc48 0x0000000000000000 0x0000000000000008&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  o6-o7 0x0000010001b07e61 0x00000000803b80f4&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  l0-l2 0x0000000080ddb5a0 0x00000000825c2c00 0x000001001e26a458&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  l3-l5 0x0000000000000000 0x0000000004000000 0x00000000825fd000&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  l6-l7 0x00000000822cc000 0x0000000004000000&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  i0-i2 0x0000000000000001 0x0000000000000000 0x0000000000000001&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  i3-i5 0x000001001e26a158 0x0000000000000104 0x0000000000000006&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  i6-i7 0x0000010001b07f11 0x0000000080ddb5f0&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  ************************************&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  SQL causing error : use master&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  ************************************&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 server  SQL Text: use master&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  curdb = 5 tempdb = 2 pstat = 0x1000&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  lasterror = 0 preverror = 0 transtate = 1&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  curcmd = 0 program =&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  extended error information: hostname:  login:&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  pc: 0x0000000080f412e4 pcstkwalk+0x24(0x0000010001b06fa0, 0x0000010001b04e18, 0x000000000000270f, 0x0000000000000002, 0x0000000000000000)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  pc: 0x0000000080f4112c ucstkgentrace+0x1d0(0x000001001d5dfc48, 0x0000000000000002, 0x000000000000270f, 0x0000000000000000, 0x0000000000000000)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  pc: 0x0000000080eccb5c ucbacktrace+0xb4(0x0000000000000000, 0x0000000000000001, 0x0000000000007c00, 0x000001001d5dfc48, 0x000001001df6d540)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  pc: 0x0000000080594f74 terminate_process+0x131c(0x0000000000007400, 0xffffffffffffffff, 0x000001001d5dfc48, 0x0000000000008000,  0x0000000081b2e588)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  pc: 0x0000000080f05c2c kisignal+0x27c(0x0000000000000058, 0x0000010001b08560, 0x0000010001b08280, 0x0000000000030003, 0x0000000000000000)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  pc: 0x00000000803b80fc xls_open+0xdc(0x0000000000000001, 0x0000000000000000, 0x0000000000000001, 0x000001001e26a158, 0x0000000000000104)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  [Handler pc: 0x0000000080de8c00 rec_handle installed by the following function:-]&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  pc: 0x0000000080ddb5f0 '''make_log_consistent'''+0xd8(0x0000000000000005, 0x00000000825c1c00, 0x0000000000000005, 0x000001001e26a158,  0x0000000000000005)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  pc: 0x0000000080ddc4e4 '''rec_build_recovery_info'''+0xc7c(0x00000000000000f0, 0x0000000000000000, 0x0000000000008000, 0x0000000000008000, 0x000000000000c000)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  [Handler pc: 0x0000000080deccd0 rec__caller_hdlr installed by the following function:-]&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  pc: 0x0000000080de0d98 dorecover+0x118(0x000001001d5dfc48, 0x0000000000001000, 0x0000000000008090, 0x0000000081b2e400, 0x0000000000000000)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  pc: 0x00000000805988d4 ds__recoverdbs+0x660(0x000001001d5dfc48, 0x00000000000094d8, 0x000001001c97efc0, 0x0000000000000001, 0x0000000081d58514)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  pc: 0x0000000080591438 dsinit+0xa80(0x000001000002ec98, 0x0000000081b2e400, 0x0000000000000001, 0x0000000000000032, 0x0000000081d58514)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  pc: 0x0000000080f57c0c _coldstart(0x0000000000000000, 0x00000000805909b8, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000)&lt;br /&gt;
 00:00000:00001:2011/03/25 16:56:17.04 kernel  end of stack trace, spid 1, kpid 196611, suid 0&lt;br /&gt;
&lt;br /&gt;
Then run these commands:&lt;br /&gt;
&lt;br /&gt;
 use master&lt;br /&gt;
 go&lt;br /&gt;
 update sysdatabases set status3 = 131072&lt;br /&gt;
 where name = &amp;quot;testdb&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
Reboot ASE, then&lt;br /&gt;
&lt;br /&gt;
 dbcc rebuild_log(testdb,1,1)&lt;br /&gt;
 go&lt;br /&gt;
 update sysdatabases set status = 0 where name = &amp;quot;testdb&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
Reboot ASE once more.&lt;br /&gt;
&lt;br /&gt;
===Transactionlog full===&lt;br /&gt;
When the database is accessible but the transactionlog becomes full, check the states:&lt;br /&gt;
 use testdb&lt;br /&gt;
 go&lt;br /&gt;
 sp_helpsgement logsegment&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
When a negative value of free space is reported you may need to rebuild the transaction log.&lt;br /&gt;
 dbcc save_rebuild_log(testdb)&lt;br /&gt;
 go&lt;br /&gt;
 use master&lt;br /&gt;
 go&lt;br /&gt;
 sp_dboption testdb,&amp;quot;single&amp;quot;,true&lt;br /&gt;
 go&lt;br /&gt;
 use testdb&lt;br /&gt;
 go&lt;br /&gt;
 dbcc tablealloc(syslogs,full,fix)&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
[[category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Warm_Standby_setup_instructions&amp;diff=1951</id>
		<title>Warm Standby setup instructions</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Warm_Standby_setup_instructions&amp;diff=1951"/>
				<updated>2012-10-30T11:23:29Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sybase Replication Server allows you to create and maintain a warm standby environment. The creation can be done with, for instance, the rs_init utility or Sybase Central. In some cases extra flexibility is needed and this can best be achieved when command line statements are used.&lt;br /&gt;
For various other reasons people prefer using this method.&lt;br /&gt;
&lt;br /&gt;
This page describes the steps to be taken to create a warm standby environment through a combination of commands given to ASE and Replication Server. It should be considered as a kind of worksheet. Feel free to make changes to suit your individual need. This might be needed when you are dealing with a database with big table(s) holding text or image datatypes or you want to optimize performance using replication definitions and subscriptions.&lt;br /&gt;
&lt;br /&gt;
==Assumptions of the environment==&lt;br /&gt;
* The setup makes the following assumptions: &lt;br /&gt;
* The Replication Server is already configured and running. &lt;br /&gt;
* Replication is done between ASE servers &lt;br /&gt;
* Materialization will be done with a dump-load scenario &lt;br /&gt;
* Replication is performed without replication definitions and subscriptions &lt;br /&gt;
* User activity will continue throughout the creation process &lt;br /&gt;
The setup is divided into a number of steps, where each step is a separate unit of work.&lt;br /&gt;
&lt;br /&gt;
==Preparation of the Sybase ASE-servers==&lt;br /&gt;
'''Create a maintenance user on both ASE's'''&lt;br /&gt;
&lt;br /&gt;
The maintenance user is used by the replication server to apply transactions. Make sure that the name and password of the maintenance user on both servers are identical. For practical reasons make the maintenance user aliased to &amp;quot;dbo&amp;quot; in the database. Since a dump-load scenario is used to materialize the standby database, make sure that the suid of the maintenance user on both servers are identical.&lt;br /&gt;
&lt;br /&gt;
 sp_addlogin &amp;quot;&amp;lt;maintenance_user&amp;gt;&amp;quot;,&amp;quot;&amp;lt;maintenance_user_password&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 grant role replication_role to &amp;quot;&amp;lt;maintenance_user&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 -- check the value of the suid&lt;br /&gt;
 select suser_id(&amp;quot;&amp;lt;maintenance_user&amp;gt;&amp;quot;)&lt;br /&gt;
 go&lt;br /&gt;
 use &amp;lt;database&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
 sp_addalias &amp;quot;&amp;lt;maintenance_user&amp;gt;&amp;quot;,&amp;quot;dbo&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
'''Install the replication server stored procedures and tables'''&lt;br /&gt;
&lt;br /&gt;
To do this, make a copy of the script rs_install_primary.sql located in the $SYBASE/$SYBASE_REP/scripts directory. Comment out 2 commands of the script: the dbcc settrunc and the sp_setreplicate commands. These can be found at the end of the file, or just above the definition of the rs_send_repserver_cmd stored procedure.&lt;br /&gt;
&lt;br /&gt;
The commands that are skipped will be executed at a later stage, when the replication agent is configured. Apply the script on the active server in the right database.&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -P&amp;lt;password&amp;gt; -S&amp;lt;active_server&amp;gt; -D&amp;lt;database&amp;gt; -i changed_rs_install_primary.sql &lt;br /&gt;
&lt;br /&gt;
'''Configure both servers for replication'''&lt;br /&gt;
&lt;br /&gt;
 sp_configure &amp;quot;enable rep agent threads&amp;quot;,1&lt;br /&gt;
&lt;br /&gt;
==Preparation of the Replication Server==&lt;br /&gt;
'''Create a logical connection on the replication server'''&lt;br /&gt;
&lt;br /&gt;
The name of it does not have to match with the name of the primary database server and database, but this convention is widely used. &lt;br /&gt;
&lt;br /&gt;
 create logical connection to &amp;lt;active_server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create a connection from the replication server to the active database'''&lt;br /&gt;
&lt;br /&gt;
 create connection to &amp;lt;active_server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
 set error class to rs_sqlserver_error_class&lt;br /&gt;
 set function string class to rs_sqlserver_function_class&lt;br /&gt;
 set username to &amp;lt;maintenance_user&amp;gt;&lt;br /&gt;
 set password to &amp;lt;maintenance_user_password&amp;gt;&lt;br /&gt;
 with log transfer on&lt;br /&gt;
 as active for &amp;lt;active_server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Create a login in the replication server'''&lt;br /&gt;
&lt;br /&gt;
This login is used by the rep-agent running in the ASE to connect to the replication server. &lt;br /&gt;
&lt;br /&gt;
 create user &amp;lt;rep-agent_user&amp;gt; set password &amp;lt;rep-agent_password&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
 grant connect source to &amp;lt;rep-agent_user&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==Configure the RepAgent==&lt;br /&gt;
The configuration of the Replication Agent within the active ASE should now be done. All steps within this paragraph should be executed within a controlled time frame since the transaction log cannot be cleared between the execution of the first sp_config_rep_agent and the sp_start_rep_agent.&lt;br /&gt;
The configuration is only needed on the primary server. Since we use a dump-load scenario the configuration is copied to the standby server during the materialization phase.&lt;br /&gt;
&lt;br /&gt;
 use &amp;lt;database&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
 sp_config_rep_agent &amp;quot;&amp;lt;database&amp;gt;&amp;quot;, &amp;quot;enable&amp;quot;, &amp;quot;&amp;lt;repserver&amp;gt;&amp;quot;, &amp;quot;&amp;lt;rep-agent_user&amp;gt;&amp;quot;, &amp;quot;&amp;lt;rep-agent_password&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 sp_config_rep_agent &amp;quot;&amp;lt;database&amp;gt;&amp;quot;, &amp;quot;send warm standby xacts&amp;quot;, true&lt;br /&gt;
 go&lt;br /&gt;
 sp_setreplicate rs_marker,&amp;quot;true&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 sp_setreplicate rs_update_lastcommit,&amp;quot;true&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 sp_start_rep_agent &amp;quot;&amp;lt;database&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==Mark the database for replication==&lt;br /&gt;
Execute the sp_reptostandby stored procedure in the active ASE to activate replication from the active database to the replication server.&lt;br /&gt;
&lt;br /&gt;
 use &amp;lt;database&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
 sp_reptostandby &amp;quot;&amp;lt;database&amp;gt;&amp;quot;,&amp;quot;all&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==Configure the replication server for the standby database==&lt;br /&gt;
All steps within this paragraph should be executed within a controlled time frame since the stable queue in the replication server cannot be cleared between the execution of the create connection and resume connection.&lt;br /&gt;
&lt;br /&gt;
'''Create a connection from the replication server to the standby server'''&lt;br /&gt;
&lt;br /&gt;
 create connection to &amp;lt;standby-server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
 set error class to rs_sqlserver_error_class&lt;br /&gt;
 set function string class to rs_sqlserver_function_class&lt;br /&gt;
 set username to &amp;lt;maintenance_user&amp;gt;&lt;br /&gt;
 set password to &amp;lt;maintenance_user_password&amp;gt;&lt;br /&gt;
 with log transfer on&lt;br /&gt;
 as standby for &amp;lt;active_server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
 use dump marker &lt;br /&gt;
&lt;br /&gt;
'''Dump the database on the active server so it can be loaded into the standby server''' &lt;br /&gt;
&lt;br /&gt;
 dump database &amp;lt;database&amp;gt; to &amp;quot;&amp;lt;file-name&amp;gt;&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'''Load the database dump into the standby server''' &lt;br /&gt;
&lt;br /&gt;
 load database &amp;lt;database&amp;gt; from &amp;quot;&amp;lt;file-name&amp;gt;&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 online database &amp;lt;database&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
'''Start the connection from the replication server to the standby database'''&lt;br /&gt;
&lt;br /&gt;
 resume connection to &amp;lt;standby-server&amp;gt;.&amp;lt;database&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Congratulations, you now have a working Warm Standby configuration!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RepServer]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Dbcc_traceflags&amp;diff=1950</id>
		<title>Dbcc traceflags</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Dbcc_traceflags&amp;diff=1950"/>
				<updated>2012-10-26T08:49:16Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With dbcc traceflags you can do many different things, like change the behaviour of the server, see why a certain query plan is choosen or fine-tune the optimizer.&lt;br /&gt;
This page shows you how to use them and provides a list of known traceflags.&lt;br /&gt;
&lt;br /&gt;
==Using traceflags==&lt;br /&gt;
You can set a traceflag in two ways&lt;br /&gt;
===At boottime===&lt;br /&gt;
Usually a server is booted through the runserver file. In this file (default location is $SYBASE/$SYBASE_ASE/install) you can add a traceflag by specifying a -T flag and one or more comma separated values.&lt;br /&gt;
===At run time===&lt;br /&gt;
When you are logged in to ASE you can set a traceflag with the dbcc traceon command. Example:&lt;br /&gt;
&lt;br /&gt;
 dbcc traceon(3604)&lt;br /&gt;
&lt;br /&gt;
You can specify multiple values, comma separated.&lt;br /&gt;
To turn a traceflag off, use traceoff&lt;br /&gt;
&lt;br /&gt;
 dbcc traceoff(3604)&lt;br /&gt;
&lt;br /&gt;
===Which traceflags are active===&lt;br /&gt;
To see which traceflags are active for your own session use the dbcc traceflags command&lt;br /&gt;
&lt;br /&gt;
 dbcc traceflags&lt;br /&gt;
&lt;br /&gt;
To see the traceflags of other sessions as well&lt;br /&gt;
&lt;br /&gt;
 dbcc traceflags(2)&lt;br /&gt;
&lt;br /&gt;
==List of known traceflags==&lt;br /&gt;
Below you will find a list of currently known traceflags. But beware of the following:&lt;br /&gt;
&lt;br /&gt;
'''WARNING'''&lt;br /&gt;
&lt;br /&gt;
* Most traceflags are undocumented and not supported by Sybase, use at your own risk. Certain traceflags can severely harm your databases.&lt;br /&gt;
* Some traceflags are obsolete and are replaced by configuration parameters.&lt;br /&gt;
* Certain traceflags should be used when you start the server, others are meant for a specific session, when known this is indicated in the list.&lt;br /&gt;
* Experiment first on a test server, use only on production systems when either the traceflag is documented by Sybase or when you have consulted Sybase Technical Support.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ '''List of dbcc traceflags'''&lt;br /&gt;
!  !! Explanation !! Since version !! Untill Version !! Boot time !! Run time&lt;br /&gt;
|-&lt;br /&gt;
| 100&lt;br /&gt;
| Display a parse tree for each command                                 ||      || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 108&lt;br /&gt;
| Allow dynamic and host variables in create view statements            || 12.5 || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 116&lt;br /&gt;
| Print the text of the abstract query plan. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00729_1500/html/errMessageAdvRes/BACDDIDE.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 200&lt;br /&gt;
| Display messages about the before image of the query-tree             ||      || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 201&lt;br /&gt;
| Display messages about the after image of the query tree              ||      || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 208&lt;br /&gt;
| Show types of locks taken                                             ||      || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 217&lt;br /&gt;
| Display a warning message for using the T-SQL extension of queries with grouped aggregates and columns in the select list which are not in the GROUP BY clause.                                             || 15.0.2 ESD 2 || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 241&lt;br /&gt;
| Compress all query-trees when ASE is started                          ||      || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 243&lt;br /&gt;
| Do not expand select * to column names when creating a compiled object||      || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 244&lt;br /&gt;
| When set, the maximum length of the returned value of str_replace() is 16384, otherwise it is 255. When Msg 511 is incorrectly raised with this flag on, upgrade to 15.0.2 ESD 6.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 260&lt;br /&gt;
| Reduce TDS (Tabular Data Stream) overhead in stored procedures. Turn off done-in-behaviour packets. See also [[Send doneinproc tokens]].|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 291&lt;br /&gt;
| Changes the hierarchy and casting of datatypes to pre-11.5.1 behaviour. There was an issue is some very rare cases where a wrong result could occur, but that's been cleared up in 11.9.2 and above.|| || 11.9.2 || ||&lt;br /&gt;
|-&lt;br /&gt;
| 292&lt;br /&gt;
| Never send doneinproc tokens. See also [[Send doneinproc tokens]].|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 298&lt;br /&gt;
| Display an error message when a query uses a correlated variable as an inner or outer member of an outer join.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 299&lt;br /&gt;
| Do not recompile a stored procedure that inherits a temp table from a parent procedure.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 302&lt;br /&gt;
| Print trace information on index selection, supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc20022_1251/html/monitoring/X24199.htm see documentation]|| ||12.5 unless using compatibility mode in ASE 15|| ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 303&lt;br /&gt;
| Display optimizer OR strategy             || || 12.5 || ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 304&lt;br /&gt;
| Revert special &amp;quot;or&amp;quot; optimizer strategy to the strategy used in pre-System 11 (this traceflag resolved several bug issues in System 11, most of these bugs are fixed in ASE 11.0.3.2)|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 310&lt;br /&gt;
| Show the plan as choosen by the optimizer, as well as I/O costs. Supported by Sybase [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc20022_1251/html/monitoring/X24199.htm see documentation] || ||12.5 unless using compatibility mode in ASE 15|| ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 311&lt;br /&gt;
| Display optimizers expected I/O cost|| ||12.5 unless using compatibility mode in ASE 15|| ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 317&lt;br /&gt;
| Show all considered plans. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc20022_1251/html/monitoring/X37588.htm see documentation] || ||12.5 unless using compatibility mode in ASE 15|| ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 319&lt;br /&gt;
| Display optimizer reformatting strategy|| ||12.5 unless using compatibility mode in ASE 15.|| ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 320&lt;br /&gt;
| Turn off join order heuristics|| ||12.5|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 321&lt;br /&gt;
| Display optimizers reformatting strategy briefly|| ||12.5 unless using compatibility mode in ASE 15.|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 324&lt;br /&gt;
| Turn off the like optimization for ad-hoc queries using local variables|| ||12.5|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 326&lt;br /&gt;
| Instructs the server to use arithmetic averaging when calculating density instead of a geometric weighted average when updating statistics. Useful for building better stats when an index has skew on the leading column. Use only for updating the stats of a table/index with known skewed data.|| ||11.5|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 329&lt;br /&gt;
| Turns on a strategy for fast first row return for queries using cursors with an ORDERBY.||15.0 ESD 2|| ||Y||N&lt;br /&gt;
|-&lt;br /&gt;
| 333&lt;br /&gt;
| Disables min-max optimization|| ||12.5|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 334&lt;br /&gt;
| Enable merge joins|| ||12.5 unless using compatibility mode in ASE 15.|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 353&lt;br /&gt;
| Turn off transitive closure|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 364&lt;br /&gt;
| Use range density instead of total density|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 370&lt;br /&gt;
| Use min-max index as an alternative to the table scan for single table queries. Does not perform aggregation optimization for joins.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 384&lt;br /&gt;
| Enable JTC||12.0||12.5 unless using compatibility mode in ASE 15.|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 396&lt;br /&gt;
| Use min-max optimization for single table queries.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 441&lt;br /&gt;
| queries where literal autoparametrization applies will be processed in full compatibility mode when enabled. Supported by Sybase, [http://www.sybase.com/files/White_Papers/Sybase-ASE-Compatibility-Mode-072309-WP.pdf see documentation]||15.0.3 ESD 1|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 446&lt;br /&gt;
| Disable restricted compatibility mode. Supported by Sybase, [http://www.sybase.com/files/White_Papers/Sybase-ASE-Compatibility-Mode-072309-WP.pdf see documentation]||15.0.3 ESD 1|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 450&lt;br /&gt;
| Sort a group by operation in the order of the groups||15|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 457&lt;br /&gt;
| Try to use worktables for a select in a cursor in order to isolate the selected data from the base table (12.5 behaviour)||15.0.2 ESD 6|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 467&lt;br /&gt;
| Do not cache a statement in the statement cache when a temp tables is referenced.||15.0.2 ESD 5|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 477&lt;br /&gt;
| When using compatibility mode, print a message about the type being used. Supported by Sybase, [http://www.sybase.com/files/White_Papers/Sybase-ASE-Compatibility-Mode-072309-WP.pdf see documentation]||15.0.3 ESD 1|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 516&lt;br /&gt;
| Print mapping between xchg operators and worker processes when using parallel execution. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00743_1500/html/qp_abstrpln/qp_abstrpln106.htm see documentation] ||15|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 526&lt;br /&gt;
| Print semi-graphical execution operator tree when showplan is enabled. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc34982_1500/html/mig_gde/mig_gde161.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 589&lt;br /&gt;
| Close a cursor implicitly during a cursor fetch and after an error was hit.||15.0.2 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 602&lt;br /&gt;
| Prints out diagnostic information for deadlock prevention.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 603&lt;br /&gt;
| Prints out diagnostic information when avoiding deadlock.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 615&lt;br /&gt;
| When a read of a page does not indicate it's right identity a second read is done. When the identity is now correct the related device is suspect and ASE turns on additional diagnostic checks. The check can be turned off with the traceflag.||12.5.3 ESD 5 and 15.0 ESD 2|| ||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
| 625&lt;br /&gt;
| When hitting Msg 12328, do not regenerate the row-offset table||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 646&lt;br /&gt;
| Turn off the new space allocation method as introduced in 12.5.3 for partitioned DOL tables||12.5.3|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 699&lt;br /&gt;
| Turn off transaction logging || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 712&lt;br /&gt;
| Disable procedure cache optimisation|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 722&lt;br /&gt;
| ASE (debug version) will perform additional checks on the heap memory to detect possible memory corruption.||15.0 ESD 2|| ||Y||N&lt;br /&gt;
|-&lt;br /&gt;
| 833&lt;br /&gt;
| Do not report Msg 880 &amp;quot;Your query is blocked because it tried to write and database '&amp;lt;dbname&amp;gt;' is in quiesce state. Your query will proceed after the DBA performs QUIESCE DATABASE RELEASE.&amp;quot;.||15.0 ESD 2||Y||N||&lt;br /&gt;
|-&lt;br /&gt;
| 990&lt;br /&gt;
| Allow only access to the server with the &amp;quot;sa&amp;quot; account. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc35892_1500/html/instalibm/instalibm108.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1116&lt;br /&gt;
| Suppress Msg 1131. (The OAM page does not belong to object with index.....)|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1202&lt;br /&gt;
| Also show the blocked lock requests in master..syslocks|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1204&lt;br /&gt;
| Print deadlock information into errorlog|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1205&lt;br /&gt;
| Prints deadlock information by printing stacktraces.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1206&lt;br /&gt;
| Disable lock promotion.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1212&lt;br /&gt;
| Shows info about locks granted and released|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1213&lt;br /&gt;
| Used with dbcc object_stats|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1217&lt;br /&gt;
| Show info about locks being acquired|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1603&lt;br /&gt;
| Turns off async i/o and forces standard unix io. Can be useful if symptoms include transient corruption errors that may be caused by bad drives or controllers.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1605&lt;br /&gt;
| Start secondary engines by hand|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1606&lt;br /&gt;
| Create a debug engine start file. This allows you to start up a debug engine which can access the server's shared memory for running diagnostics.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1608&lt;br /&gt;
| Instructs server engine 0 to not on-line any other dataserver engines|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1610&lt;br /&gt;
| Boot the server with TCP_NODELAY enabled.|| || ||Y||&lt;br /&gt;
|-&lt;br /&gt;
| 1611&lt;br /&gt;
| If possible, pin shared memory -- check errorlog for success/failure.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1613&lt;br /&gt;
| Set affinity of the ASE engine's onto particular CPUs usually pins engine 0 to processor 0, engine 1 to processor 1, etc|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1615&lt;br /&gt;
| SGI only: turn on recoverability to filesystem devices.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1625&lt;br /&gt;
| Linux only: Revert to using cached filesystem I/O.  By default, ASE on Linux opens filesystem devices using O_SYNC, unlike other Unix based releases, which means it is safe to use filesystems devices for production systems.||11.9.2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1630&lt;br /&gt;
| SuSE 32 bit Linux (SuSE 9 SP1 or later), ASE incorrectly identifies AIO to be KAIO while using Posix AIO. Can lead to ASE hang. Start with this trace flag.||12.5.3 ESD 5 and 15.0 ESD 2|| ||Y||N&lt;br /&gt;
|-&lt;br /&gt;
| 1642&lt;br /&gt;
| Reserve one third of the sockets for EJB.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1648&lt;br /&gt;
| Enable DIRECT IO for block devices under on Linux|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1649&lt;br /&gt;
| (linux on Intel, amd and IBM P) When set ASE uses Linux Kernel Asynchronous IO, rather than POSIX AIO||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1656&lt;br /&gt;
| (Sun only) ASE will not boot when Intimate Shared Memory is not available.||12.5.4 ESD 10, 15.0.2 ESD 6|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2205&lt;br /&gt;
| Show HA debugging output, supported by Sybase [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.ha_avail/html/ha_avail/ha_avail223.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2209&lt;br /&gt;
| Used when upgrading ASE configured with high availability|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2511&lt;br /&gt;
| Suppress Msg 15082 during DBCC checks||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2512&lt;br /&gt;
| Instructs dbcc checkalloc to skip the syslogs table during processing.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2513&lt;br /&gt;
| Instructs dbcc checkalloc, tablealloc and indexalloc to check for whether foreign objects are stranded on a particular segment within a database. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00729_1500/html/errMessageAdvRes/X100548.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2703&lt;br /&gt;
| When using update statistics with sampling and the index/column does not have existing statistics, set join density and total density to values from the sample rather then to defaults.||15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2716&lt;br /&gt;
| Generate statistics for private temp tables||15.0.3 ESD 3|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2720&lt;br /&gt;
| When set, do not allow &amp;quot;update statistics&amp;quot; to be run within a multi-statement transaction||15.0.3 ESD 3|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3100&lt;br /&gt;
| Load a database even when the characterset or sort order of a dump file is incompatible with the server.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3199&lt;br /&gt;
| When ONLINE DATABASE fails with Msg 2610 (Could not find leaf row in nonclustered index partition ...) after a cross-platform database load, set the traceflag on, reload the dump and online again.||15.0 ESD 2|| || ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 3300&lt;br /&gt;
| Display each log record that is being processed during recovery. You may wish to redirect stdout because it can be a lot of information.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3500&lt;br /&gt;
| Disable checkpointing.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3502&lt;br /&gt;
| Write an entry in the errorlog when a databases is checkpointed|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3601&lt;br /&gt;
| Write a stacktrace to the errorlog every time an error is raised.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3604&lt;br /&gt;
| Send trace output to the session of the client. Supported by Sybase [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc20022_1251/html/monitoring/monitoring244.htm see documentation] || || || ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 3605&lt;br /&gt;
| Send trace output to the errorlog of the server. Supported by Sybase [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00743_1500/html/qp_abstrpln/CIHCEIJA.htm see documentation] || || || ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 3607&lt;br /&gt;
| Do not start recovery when booting ASE.|| || ||Y||&lt;br /&gt;
|-&lt;br /&gt;
| 3608&lt;br /&gt;
| Recover only the master database. Do not clear tempdb or start up checkpoint process.|| || ||Y||&lt;br /&gt;
|-&lt;br /&gt;
| 3609&lt;br /&gt;
| Recover all databases. Do not clear tempdb or start up checkpoint process.|| || ||||&lt;br /&gt;
|-&lt;br /&gt;
| 3610&lt;br /&gt;
| Pre-System 10 behaviour: divide by zero to result in NULL instead of error|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3620&lt;br /&gt;
| Do not kill infected processes.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3637&lt;br /&gt;
| Connection time averages for LDAPUA are printed||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3706&lt;br /&gt;
| Performance improvement of drop table in tempdb.||15.0 ESD 2|| ||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
| 3710&lt;br /&gt;
| Improve the performance of DROP INDEX and CREATE INDEX by releasing the system catalog locks when not in DDL-IN-TRAN mode after the commit of the transaction but before post commit work started.||12.5.4 ESD 10, 15.0.2 ESD 4|| ||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
| 4001&lt;br /&gt;
| Display a message in the errorlog when a loginrecord is recieved|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4012&lt;br /&gt;
| Don't spawn chkptproc.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4013&lt;br /&gt;
| Write a message to the errorlog when a login takes place.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4020&lt;br /&gt;
| Boot without recover.|| || ||Y||&lt;br /&gt;
|-&lt;br /&gt;
| 4044&lt;br /&gt;
| Allows to log into ASE when the &amp;quot;sa&amp;quot; login is locked|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4072&lt;br /&gt;
| Disable the global login trigger||15|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4073&lt;br /&gt;
| Export the result of certain &amp;quot;set&amp;quot; command within a login trigger to the session.||15.0 ESD 2|| ||Y||&lt;br /&gt;
|-&lt;br /&gt;
| 4080&lt;br /&gt;
| When an UPDATE using tsequal() is done within a stored procedure, tsequal() no longer returns a timestamp value unless the trace flag is set.||12.5.3 ESD 5 + 15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4082&lt;br /&gt;
| When set printing messages to console is made non-blocking||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4083&lt;br /&gt;
| Disable SQLDBGR.||12.5.4 ESD 10|| ||Y||N&lt;br /&gt;
|-&lt;br /&gt;
| 4084&lt;br /&gt;
| Console logging will be disabled if setting console to nonblocking fails.||12.5.4 ESD 10, 15.0.2 ESD 5|| ||Y||N&lt;br /&gt;
|-&lt;br /&gt;
| 4413&lt;br /&gt;
| Trace queries in a 12.5 server that are join-order dependent.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| 4419&lt;br /&gt;
| In some cases, outer join on view or derived table with CASE expression may perform slower due to view materialization.The workaround is to use traceflag 4419.||12.5.4 ESD#6|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 5101&lt;br /&gt;
| Forces all I/O requests to go through engine 0. This removes the contention between processors but could create a bottleneck if engine 0 becomes busy with non-I/O tasks.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 5102&lt;br /&gt;
| Prevents engine 0 from running any non-affinitied tasks.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7103&lt;br /&gt;
| Disable table lock promotion for text columns.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7703&lt;br /&gt;
| When assinging a value from a table into a local variable, go through the whole resultset rather than jump to last row and assing the value once.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7717&lt;br /&gt;
| Disable check of client compatibility in ASE 15. See [[Version 15 client compatibility]] ||15.0.1|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7738&lt;br /&gt;
| Support plan sharing of cached statements across different users.||15.0.2 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7741&lt;br /&gt;
| Avoid Msg 257 when using statement cache and a parameterized statement without &amp;quot;dynamic prepare&amp;quot; and a incompatible parameter is specified as null.||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7815&lt;br /&gt;
| logs address connection requests and host / name lookups.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7841&lt;br /&gt;
| Make ASE IPv6 aware. No longer needed since 15.0.2 ESD 5|| ||15.0.2 ESD 5|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 7844&lt;br /&gt;
| Enable/disable concurrent Kerberos authentication|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7850&lt;br /&gt;
| When set, timeout after 60 s when no Kerberos security opaque token is received from client||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 8003&lt;br /&gt;
| prints info on RPC calls|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 8203&lt;br /&gt;
| Display statement and transaction locks on a deadlock error.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 8399&lt;br /&gt;
| Instructs the dbcc monitor command to insert a valid description into the field_name column in the sysmonitors table. Not intended for use by users. Appears in the errorlog when sp_sysmon is used.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 9217&lt;br /&gt;
| When set, RepAgent will not stop after reporting error 9289 due to an inconsistent log record found. Instead it will attempt to continue after reporting error 9290 in the error log. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00729_1500/html/errMessageAdvRes/BABDABEI.htm see documentation] ||15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 9531&lt;br /&gt;
| Dump expensive buffer allocation analysis||15.0.2 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11201&lt;br /&gt;
| Logs client connect events, disconnect events, and attention events. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.omni_ug/html/omni_ug/omni_ug120.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11202&lt;br /&gt;
| Logs client language, cursor declare, dynamic prepare, and dynamic execute-immediate text. '''Very useful for tracing incoming statements into the ASE errorlog.''' Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11203&lt;br /&gt;
| Logs client rpc events. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11204&lt;br /&gt;
| Logs all messages routed to client. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11205&lt;br /&gt;
| Logs all interaction with remote server. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11206&lt;br /&gt;
| Show messages about query processing for file access. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11207&lt;br /&gt;
| Log the processing of text and image datatypes from remote servers. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm/omni_ug120.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11208&lt;br /&gt;
| Prevents the create index and drop table statements from being transmitted to a remote server. sysindexes is updated anyway. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11209&lt;br /&gt;
| When running &amp;quot;update statistics&amp;quot; on remote tables update only the rowcount.  Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11210&lt;br /&gt;
| Disables Component Integration Services enhanced remote query optimization.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11211&lt;br /&gt;
| Prevents the drop table syntax from being forwarded to remote servers if the table was created using the create table at location syntax. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11212&lt;br /&gt;
| Prevents escape on underscores in table names. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11213&lt;br /&gt;
| Prevents generation of column and table constraints. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11214&lt;br /&gt;
| Disables Component Integration Services recovery at start-up. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || ||Y||&lt;br /&gt;
|-&lt;br /&gt;
| 11215&lt;br /&gt;
| Sets enhanced remote optimization for servers of class db2.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11216&lt;br /&gt;
| For the session, disables enhanced remote optimization. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation]|| || || ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 11217&lt;br /&gt;
| For the server, disables enhanced remote optimization. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11218&lt;br /&gt;
| Any query that is part of a declare cursor command, and that references proxy tables, is read only by default. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11220&lt;br /&gt;
| Disables constraint checking of remote tables on the local server. This avoids duplicate checking. Setting this trace flag on ensures that queries are not rejected by the quickpass mode because of constraints. (spid) Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11221&lt;br /&gt;
| Disables alter table commands to the remote server when ON. This allows users to modify type, length, and nullability of columns in a local table without changing columns in the remote table. Use trace flag 11221 with caution. It may lead to tables that are “out of sync.” (spid). Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11223&lt;br /&gt;
| Disables proxy table index creation during create existing table or create proxy_table command execution. If this flag is set on, no index metadata is imported from the remote site referenced by the proxy table, and no indexes for the proxy table are created. This trace flag should be used with care and turned off when no longer necessary. (global) Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11228&lt;br /&gt;
| A 2762 error, &amp;quot;CREATE TABLE command is not allowed within multiple statement transaction&amp;quot; may be reported when executing a SQL INSERT..SELECT from proxy table mapped to a RPC. This traceflag has to be turned on to allow CREATE TABLE command in the remote procedure (for the session)||12.5.3. ESD 5 and 15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11229&lt;br /&gt;
| Use pre-12.5.3 behaviour to import statistics for proxy tables. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] ||12.5.3|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11231&lt;br /&gt;
| CIS: Connections to remote servers are not disconnected and remain engine affinitied until the client session terminates. The connections can now be dropped and detached from an engine after executing a statement to the remote server by enabling this flag. Exceptions are when the statement is participating in cursor, transaction or stored procedure operations; or when ASE is in either HA failover or failback states.||15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11232&lt;br /&gt;
| A 2762 error, &amp;quot;CREATE TABLE command is not allowed within multiple statement transaction&amp;quot; may be reported when executing a SQL INSERT..SELECT from proxy table mapped to a RPC. This traceflag has to be turned on to allow CREATE TABLE command in the remote procedure (serverwide)||12.5.3. ESD 5 and 15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11237&lt;br /&gt;
| Only for proxy tables to Oracle, do not append unneeded &amp;quot;null clause&amp;quot; to &amp;quot;alter table modify&amp;quot; command||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11299&lt;br /&gt;
| Allows connection information to be logged when a connection to a remote server fails. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11906&lt;br /&gt;
| Informational messages from REORG will no longer be printed to the errorlog.||15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 12628&lt;br /&gt;
| Data insertion into DOL tables having nonclustered index will be done with the index prepend mode splits disabled, in order to improve disk space utilization.||15.0 ESD 2|| ||Y||N&lt;br /&gt;
|-&lt;br /&gt;
| 15302&lt;br /&gt;
| When a subquery appears in the ON clause of an outer join query, the performance may not be efficient. ASE will do optimization for subquery attachment to achieve more favorable performance when turned on.||15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 15303&lt;br /&gt;
| Possible performance improvement on a SELECT statement when a BIT column is involved in the WHERE clause.||15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 15322&lt;br /&gt;
| Use 12.5 behaviour when assigning variables in combination with subqueries.||15.0.2 ESD 6|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 15371&lt;br /&gt;
| When set, bug fix for a sub-optimal plan is chosen when the query contains a subquery from an IF EXISTS clause.||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 15381&lt;br /&gt;
| When set, the warning message 307, &amp;quot;Index &amp;lt;index_name&amp;gt; specified as optimizer hint in the FROM clause of table &amp;lt;table_name&amp;gt; does not exist. Optimizer will choose another index instead.&amp;quot; is disabled.||15.0.2 ESD 4|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 15382&lt;br /&gt;
| Disable &amp;quot;special OR strategy&amp;quot; (see release notes for the fine details)||15.0.2 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 15556&lt;br /&gt;
| Allow dump and load in ASE cluster edition with multiple instances active||cluster edition|| || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Dbcc_traceflags&amp;diff=1949</id>
		<title>Dbcc traceflags</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Dbcc_traceflags&amp;diff=1949"/>
				<updated>2012-10-26T08:39:35Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With dbcc traceflags you can do many different things, like change the behaviour of the server, see why a certain query plan is choosen or fine-tune the optimizer.&lt;br /&gt;
This page shows you how to use them and provides a list of known traceflags.&lt;br /&gt;
&lt;br /&gt;
==Using traceflags==&lt;br /&gt;
You can set a traceflag in two ways&lt;br /&gt;
===At boottime===&lt;br /&gt;
Usually a server is booted through the runserver file. In this file (default location is $SYBASE/$SYBASE_ASE/install) you can add a traceflag by specifying a -T flag and one or more comma separated values.&lt;br /&gt;
===At run time===&lt;br /&gt;
When you are logged in to ASE you can set a traceflag with the dbcc traceon command. Example:&lt;br /&gt;
&lt;br /&gt;
 dbcc traceon(3604)&lt;br /&gt;
&lt;br /&gt;
You can specify multiple values, comma separated.&lt;br /&gt;
To turn a traceflag off, use traceoff&lt;br /&gt;
&lt;br /&gt;
 dbcc traceoff(3604)&lt;br /&gt;
&lt;br /&gt;
===Which traceflags are active===&lt;br /&gt;
To see which traceflags are active for your own session use the dbcc traceflags command&lt;br /&gt;
&lt;br /&gt;
 dbcc traceflags&lt;br /&gt;
&lt;br /&gt;
To see the traceflags of other sessions as well&lt;br /&gt;
&lt;br /&gt;
 dbcc traceflags(2)&lt;br /&gt;
&lt;br /&gt;
==List of known traceflags==&lt;br /&gt;
Below you will find a list of currently known traceflags. But beware of the following:&lt;br /&gt;
&lt;br /&gt;
'''WARNING'''&lt;br /&gt;
&lt;br /&gt;
* Most traceflags are undocumented and not supported by Sybase, use at your own risk. Certain traceflags can severely harm your databases.&lt;br /&gt;
* Some traceflags are obsolete and are replaced by configuration parameters.&lt;br /&gt;
* Certain traceflags should be used when you start the server, others are meant for a specific session, when known this is indicated in the list.&lt;br /&gt;
* Experiment first on a test server, use only on production systems when either the traceflag is documented by Sybase or when you have consulted Sybase Technical Support.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ '''List of dbcc traceflags'''&lt;br /&gt;
!  !! Explanation !! Since version !! Untill Version !! Boot time !! Run time&lt;br /&gt;
|-&lt;br /&gt;
| 100&lt;br /&gt;
| Display a parse tree for each command                                 ||      || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 108&lt;br /&gt;
| Allow dynamic and host variables in create view statements            || 12.5 || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 116&lt;br /&gt;
| Print the text of the abstract query plan. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00729_1500/html/errMessageAdvRes/BACDDIDE.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 200&lt;br /&gt;
| Display messages about the before image of the query-tree             ||      || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 201&lt;br /&gt;
| Display messages about the after image of the query tree              ||      || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 208&lt;br /&gt;
| Show types of locks taken                                             ||      || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 217&lt;br /&gt;
| Display a warning message for using the T-SQL extension of queries with grouped aggregates and columns in the select list which are not in the GROUP BY clause.                                             || 15.0.2 ESD 2 || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 241&lt;br /&gt;
| Compress all query-trees when ASE is started                          ||      || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 243&lt;br /&gt;
| Do not expand select * to column names when creating a compiled object||      || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 244&lt;br /&gt;
| When set, the maximum length of the returned value of str_replace() is 16384, otherwise it is 255. When Msg 511 is incorrectly raised with this flag on, upgrade to 15.0.2 ESD 6.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 260&lt;br /&gt;
| Reduce TDS (Tabular Data Stream) overhead in stored procedures. Turn off done-in-behaviour packets. See also [[Send doneinproc tokens]].|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 291&lt;br /&gt;
| Changes the hierarchy and casting of datatypes to pre-11.5.1 behaviour. There was an issue is some very rare cases where a wrong result could occur, but that's been cleared up in 11.9.2 and above.|| || 11.9.2 || ||&lt;br /&gt;
|-&lt;br /&gt;
| 292&lt;br /&gt;
| Never send doneinproc tokens. See also [[Send doneinproc tokens]].|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 298&lt;br /&gt;
| Display an error message when a query uses a correlated variable as an inner or outer member of an outer join.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 299&lt;br /&gt;
| Do not recompile a stored procedure that inherits a temp table from a parent procedure.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 302&lt;br /&gt;
| Print trace information on index selection, supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc20022_1251/html/monitoring/X24199.htm see documentation]|| ||12.5 unless using compatibility mode in ASE 15|| ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 303&lt;br /&gt;
| Display optimizer OR strategy             || || 12.5 || ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 304&lt;br /&gt;
| Revert special &amp;quot;or&amp;quot; optimizer strategy to the strategy used in pre-System 11 (this traceflag resolved several bug issues in System 11, most of these bugs are fixed in ASE 11.0.3.2)|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 310&lt;br /&gt;
| Show the plan as choosen by the optimizer, as well as I/O costs. Supported by Sybase [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc20022_1251/html/monitoring/X24199.htm see documentation] || ||12.5 unless using compatibility mode in ASE 15|| ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 311&lt;br /&gt;
| Display optimizers expected I/O cost|| ||12.5 unless using compatibility mode in ASE 15|| ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 317&lt;br /&gt;
| Show all considered plans. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc20022_1251/html/monitoring/X37588.htm see documentation] || ||12.5 unless using compatibility mode in ASE 15|| ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 319&lt;br /&gt;
| Display optimizer reformatting strategy|| ||12.5 unless using compatibility mode in ASE 15.|| ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 320&lt;br /&gt;
| Turn off join order heuristics|| ||12.5|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 321&lt;br /&gt;
| Display optimizers reformatting strategy briefly|| ||12.5 unless using compatibility mode in ASE 15.|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 324&lt;br /&gt;
| Turn off the like optimization for ad-hoc queries using local variables|| ||12.5|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 326&lt;br /&gt;
| Instructs the server to use arithmetic averaging when calculating density instead of a geometric weighted average when updating statistics. Useful for building better stats when an index has skew on the leading column. Use only for updating the stats of a table/index with known skewed data.|| ||11.5|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 329&lt;br /&gt;
| Turns on a strategy for fast first row return for queries using cursors with an ORDERBY.||15.0 ESD 2|| ||Y||N&lt;br /&gt;
|-&lt;br /&gt;
| 333&lt;br /&gt;
| Disables min-max optimization|| ||12.5|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 334&lt;br /&gt;
| Enable merge joins|| ||12.5 unless using compatibility mode in ASE 15.|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 353&lt;br /&gt;
| Turn off transitive closure|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 364&lt;br /&gt;
| Use range density instead of total density|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 370&lt;br /&gt;
| Use min-max index as an alternative to the table scan for single table queries. Does not perform aggregation optimization for joins.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 384&lt;br /&gt;
| Enable JTC||12.0||12.5 unless using compatibility mode in ASE 15.|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 396&lt;br /&gt;
| Use min-max optimization for single table queries.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 441&lt;br /&gt;
| queries where literal autoparametrization applies will be processed in full compatibility mode when enabled. Supported by Sybase, [http://www.sybase.com/files/White_Papers/Sybase-ASE-Compatibility-Mode-072309-WP.pdf see documentation]||15.0.3 ESD 1|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 446&lt;br /&gt;
| Disable restricted compatibility mode. Supported by Sybase, [http://www.sybase.com/files/White_Papers/Sybase-ASE-Compatibility-Mode-072309-WP.pdf see documentation]||15.0.3 ESD 1|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 450&lt;br /&gt;
| Sort a group by operation in the order of the groups||15|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 457&lt;br /&gt;
| Try to use worktables for a select in a cursor in order to isolate the selected data from the base table (12.5 behaviour)||15.0.2 ESD 6|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 467&lt;br /&gt;
| Do not cache a statement in the statement cache when a temp tables is referenced.||15.0.2 ESD 5|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 477&lt;br /&gt;
| When using compatibility mode, print a message about the type being used. Supported by Sybase, [http://www.sybase.com/files/White_Papers/Sybase-ASE-Compatibility-Mode-072309-WP.pdf see documentation]||15.0.3 ESD 1|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 516&lt;br /&gt;
| Print mapping between xchg operators and worker processes when using parallel execution. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00743_1500/html/qp_abstrpln/qp_abstrpln106.htm see documentation] ||15|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 526&lt;br /&gt;
| Print semi-graphical execution operator tree when showplan is enabled. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc34982_1500/html/mig_gde/mig_gde161.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 589&lt;br /&gt;
| Close a cursor implicitly during a cursor fetch and after an error was hit.||15.0.2 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 602&lt;br /&gt;
| Prints out diagnostic information for deadlock prevention.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 603&lt;br /&gt;
| Prints out diagnostic information when avoiding deadlock.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 615&lt;br /&gt;
| When a read of a page does not indicate it's right identity a second read is done. When the identity is now correct the related device is suspect and ASE turns on additional diagnostic checks. The check can be turned off with the traceflag.||12.5.3 ESD 5 and 15.0 ESD 2|| ||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
| 625&lt;br /&gt;
| When hitting Msg 12328, do not regenerate the row-offset table||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 646&lt;br /&gt;
| Turn off the new space allocation method as introduced in 12.5.3 for partitioned DOL tables||12.5.3|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 699&lt;br /&gt;
| Turn off transaction logging || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 712&lt;br /&gt;
| Disable procedure cache optimisation|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 722&lt;br /&gt;
| ASE (debug version) will perform additional checks on the heap memory to detect possible memory corruption.||15.0 ESD 2|| ||Y||N&lt;br /&gt;
|-&lt;br /&gt;
| 833&lt;br /&gt;
| Do not report Msg 880 &amp;quot;Your query is blocked because it tried to write and database '&amp;lt;dbname&amp;gt;' is in quiesce state. Your query will proceed after the DBA performs QUIESCE DATABASE RELEASE.&amp;quot;.||15.0 ESD 2||Y||N||&lt;br /&gt;
|-&lt;br /&gt;
| 990&lt;br /&gt;
| Allow only access to the server with the &amp;quot;sa&amp;quot; account. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc35892_1500/html/instalibm/instalibm108.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1116&lt;br /&gt;
| Suppress Msg 1131. (The OAM page does not belong to object with index.....)|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1202&lt;br /&gt;
| Also show the blocked lock requests in master..syslocks|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1204&lt;br /&gt;
| Print deadlock information into errorlog|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1205&lt;br /&gt;
| Prints deadlock information by printing stacktraces.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1206&lt;br /&gt;
| Disable lock promotion.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1212&lt;br /&gt;
| Shows info about locks granted and released|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1213&lt;br /&gt;
| Used with dbcc object_stats|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1217&lt;br /&gt;
| Show info about locks being acquired|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1603&lt;br /&gt;
| Turns off async i/o and forces standard unix io. Can be useful if symptoms include transient corruption errors that may be caused by bad drives or controllers.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1605&lt;br /&gt;
| Start secondary engines by hand|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1606&lt;br /&gt;
| Create a debug engine start file. This allows you to start up a debug engine which can access the server's shared memory for running diagnostics.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1608&lt;br /&gt;
| Instructs server engine 0 to not on-line any other dataserver engines|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1610&lt;br /&gt;
| Boot the server with TCP_NODELAY enabled.|| || ||Y||&lt;br /&gt;
|-&lt;br /&gt;
| 1611&lt;br /&gt;
| If possible, pin shared memory -- check errorlog for success/failure.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1613&lt;br /&gt;
| Set affinity of the ASE engine's onto particular CPUs usually pins engine 0 to processor 0, engine 1 to processor 1, etc|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1615&lt;br /&gt;
| SGI only: turn on recoverability to filesystem devices.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1625&lt;br /&gt;
| Linux only: Revert to using cached filesystem I/O.  By default, ASE on Linux opens filesystem devices using O_SYNC, unlike other Unix based releases, which means it is safe to use filesystems devices for production systems.||11.9.2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1630&lt;br /&gt;
| SuSE 32 bit Linux (SuSE 9 SP1 or later), ASE incorrectly identifies AIO to be KAIO while using Posix AIO. Can lead to ASE hang. Start with this trace flag.||12.5.3 ESD 5 and 15.0 ESD 2|| ||Y||N&lt;br /&gt;
|-&lt;br /&gt;
| 1642&lt;br /&gt;
| Reserve one third of the sockets for EJB.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1648&lt;br /&gt;
| Enable DIRECT IO for block devices under on Linux|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1649&lt;br /&gt;
| (linux on Intel, amd and IBM P) When set ASE uses Linux Kernel Asynchronous IO, rather than POSIX AIO||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1656&lt;br /&gt;
| (Sun only) ASE will not boot when Intimate Shared Memory is not available.||12.5.4 ESD 10, 15.0.2 ESD 6|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2205&lt;br /&gt;
| Show HA debugging output, supported by Sybase [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.ha_avail/html/ha_avail/ha_avail223.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2209&lt;br /&gt;
| Used when upgrading ASE configured with high availability|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2511&lt;br /&gt;
| Suppress Msg 15082 during DBCC checks||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2512&lt;br /&gt;
| Instructs dbcc checkalloc to skip the syslogs table during processing.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2513&lt;br /&gt;
| Instructs dbcc checkalloc, tablealloc and indexalloc to check for whether foreign objects are stranded on a particular segment within a database. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00729_1500/html/errMessageAdvRes/X100548.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2703&lt;br /&gt;
| When using update statistics with sampling and the index/column does not have existing statistics, set join density and total density to values from the sample rather then to defaults.||15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2716&lt;br /&gt;
| Generate statistics for private temp tables||15.0.3 ESD 3|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 2720&lt;br /&gt;
| When set, do not allow &amp;quot;update statistics&amp;quot; to be run within a multi-statement transaction||15.0.3 ESD 3|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3100&lt;br /&gt;
| Load a database even when the characterset or sort order of a dump file is incompatible with the server.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3199&lt;br /&gt;
| When ONLINE DATABASE fails with Msg 2610 (Could not find leaf row in nonclustered index partition ...) after a cross-platform database load, set the traceflag on, reload the dump and online again.||15.0 ESD 2|| || ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 3300&lt;br /&gt;
| Display each log record that is being processed during recovery. You may wish to redirect stdout because it can be a lot of information.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3500&lt;br /&gt;
| Disable checkpointing.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3502&lt;br /&gt;
| Write an entry in the errorlog when a databases is checkpointed|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3601&lt;br /&gt;
| Write a stacktrace to the errorlog every time an error is raised.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3604&lt;br /&gt;
| Send trace output to the session of the client. Supported by Sybase [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc20022_1251/html/monitoring/monitoring244.htm see documentation] || || || ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 3605&lt;br /&gt;
| Send trace output to the errorlog of the server. Supported by Sybase [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00743_1500/html/qp_abstrpln/CIHCEIJA.htm see documentation] || || || ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 3607&lt;br /&gt;
| Do not start recovery when booting ASE.|| || ||Y||&lt;br /&gt;
|-&lt;br /&gt;
| 3608&lt;br /&gt;
| Recover only the master database. Do not clear tempdb or start up checkpoint process.|| || ||Y||&lt;br /&gt;
|-&lt;br /&gt;
| 3609&lt;br /&gt;
| Recover all databases. Do not clear tempdb or start up checkpoint process.|| || ||||&lt;br /&gt;
|-&lt;br /&gt;
| 3610&lt;br /&gt;
| Pre-System 10 behaviour: divide by zero to result in NULL instead of error|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3620&lt;br /&gt;
| Do not kill infected processes.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3637&lt;br /&gt;
| Connection time averages for LDAPUA are printed||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 3706&lt;br /&gt;
| Performance improvement of drop table in tempdb.||15.0 ESD 2|| ||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
| 3710&lt;br /&gt;
| Improve the performance of DROP INDEX and CREATE INDEX by releasing the system catalog locks when not in DDL-IN-TRAN mode after the commit of the transaction but before post commit work started.||12.5.4 ESD 10, 15.0.2 ESD 4|| ||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
| 4001&lt;br /&gt;
| Display a message in the errorlog when a loginrecord is recieved|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4012&lt;br /&gt;
| Don't spawn chkptproc.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4013&lt;br /&gt;
| Write a message to the errorlog when a login takes place.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4020&lt;br /&gt;
| Boot without recover.|| || ||Y||&lt;br /&gt;
|-&lt;br /&gt;
| 4044&lt;br /&gt;
| Allows to log into ASE when the &amp;quot;sa&amp;quot; login is locked|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4072&lt;br /&gt;
| Disable the global login trigger||15|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4073&lt;br /&gt;
| Export the result of certain &amp;quot;set&amp;quot; command within a login trigger to the session.||15.0 ESD 2|| ||Y||&lt;br /&gt;
|-&lt;br /&gt;
| 4080&lt;br /&gt;
| When an UPDATE using tsequal() is done within a stored procedure, tsequal() no longer returns a timestamp value unless the trace flag is set.||12.5.3 ESD 5 + 15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4082&lt;br /&gt;
| When set printing messages to console is made non-blocking||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 4083&lt;br /&gt;
| Disable SQLDBGR.||12.5.4 ESD 10|| ||Y||N&lt;br /&gt;
|-&lt;br /&gt;
| 4084&lt;br /&gt;
| Console logging will be disabled if setting console to nonblocking fails.||12.5.4 ESD 10, 15.0.2 ESD 5|| ||Y||N&lt;br /&gt;
|-&lt;br /&gt;
| 4413&lt;br /&gt;
| Trace queries in a 12.5 server that are join-order dependent.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| 4419&lt;br /&gt;
| In some cases, outer join on view or derived table with CASE expression may perform slower due to view materialization.The workaround is to use traceflag 4419.||12.5.4 ESD#6|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 5101&lt;br /&gt;
| Forces all I/O requests to go through engine 0. This removes the contention between processors but could create a bottleneck if engine 0 becomes busy with non-I/O tasks.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 5102&lt;br /&gt;
| Prevents engine 0 from running any non-affinitied tasks.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7103&lt;br /&gt;
| Disable table lock promotion for text columns.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7703&lt;br /&gt;
| When assinging a value from a table into a local variable, go through the whole resultset rather than jump to last row and assing the value once.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7717&lt;br /&gt;
| Disable check of client compatibility in ASE 15. See [[Version 15 client compatibility]] ||15.0.1|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7738&lt;br /&gt;
| Support plan sharing of cached statements across different users.||15.0.2 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7741&lt;br /&gt;
| Avoid Msg 257 when using statement cache and a parameterized statement without &amp;quot;dynamic prepare&amp;quot; and a incompatible parameter is specified as null.||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7815&lt;br /&gt;
| logs address connection requests and host / name lookups.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7841&lt;br /&gt;
| Make ASE IPv6 aware. No longer needed since 15.0.2 ESD 5|| ||15.0.2 ESD 5|| ||&lt;br /&gt;
|-&lt;br /&gt;
| 7844&lt;br /&gt;
| Enable/disable concurrent Kerberos authentication|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7850&lt;br /&gt;
| When set, timeout after 60 s when no Kerberos security opaque token is received from client||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 8003&lt;br /&gt;
| prints info on RPC calls|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 8203&lt;br /&gt;
| Display statement and transaction locks on a deadlock error.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 8399&lt;br /&gt;
| Instructs the dbcc monitor command to insert a valid description into the field_name column in the sysmonitors table. Not intended for use by users. Appears in the errorlog when sp_sysmon is used.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 9217&lt;br /&gt;
| When set, RepAgent will not stop after reporting error 9289 due to an inconsistent log record found. Instead it will attempt to continue after reporting error 9290 in the error log. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00729_1500/html/errMessageAdvRes/BABDABEI.htm see documentation] ||15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 9531&lt;br /&gt;
| Dump expensive buffer allocation analysis||15.0.2 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11201&lt;br /&gt;
| Logs client connect events, disconnect events, and attention events. Supported by Sybase, [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.omni_ug/html/omni_ug/omni_ug120.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11202&lt;br /&gt;
| Logs client language, cursor declare, dynamic prepare, and dynamic execute-immediate text. '''Very useful for tracing incoming statements.''' Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11203&lt;br /&gt;
| Logs client rpc events. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11204&lt;br /&gt;
| Logs all messages routed to client. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11205&lt;br /&gt;
| Logs all interaction with remote server. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11206&lt;br /&gt;
| Show messages about query processing for file access. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11207&lt;br /&gt;
| Log the processing of text and image datatypes from remote servers. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm/omni_ug120.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11208&lt;br /&gt;
| Prevents the create index and drop table statements from being transmitted to a remote server. sysindexes is updated anyway. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11209&lt;br /&gt;
| When running &amp;quot;update statistics&amp;quot; on remote tables update only the rowcount.  Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11210&lt;br /&gt;
| Disables Component Integration Services enhanced remote query optimization.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11211&lt;br /&gt;
| Prevents the drop table syntax from being forwarded to remote servers if the table was created using the create table at location syntax. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11212&lt;br /&gt;
| Prevents escape on underscores in table names. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11213&lt;br /&gt;
| Prevents generation of column and table constraints. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11214&lt;br /&gt;
| Disables Component Integration Services recovery at start-up. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || ||Y||&lt;br /&gt;
|-&lt;br /&gt;
| 11215&lt;br /&gt;
| Sets enhanced remote optimization for servers of class db2.|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11216&lt;br /&gt;
| For the session, disables enhanced remote optimization. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation]|| || || ||Y&lt;br /&gt;
|-&lt;br /&gt;
| 11217&lt;br /&gt;
| For the server, disables enhanced remote optimization. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation]|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11218&lt;br /&gt;
| Any query that is part of a declare cursor command, and that references proxy tables, is read only by default. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11220&lt;br /&gt;
| Disables constraint checking of remote tables on the local server. This avoids duplicate checking. Setting this trace flag on ensures that queries are not rejected by the quickpass mode because of constraints. (spid) Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11221&lt;br /&gt;
| Disables alter table commands to the remote server when ON. This allows users to modify type, length, and nullability of columns in a local table without changing columns in the remote table. Use trace flag 11221 with caution. It may lead to tables that are “out of sync.” (spid). Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11223&lt;br /&gt;
| Disables proxy table index creation during create existing table or create proxy_table command execution. If this flag is set on, no index metadata is imported from the remote site referenced by the proxy table, and no indexes for the proxy table are created. This trace flag should be used with care and turned off when no longer necessary. (global) Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11228&lt;br /&gt;
| A 2762 error, &amp;quot;CREATE TABLE command is not allowed within multiple statement transaction&amp;quot; may be reported when executing a SQL INSERT..SELECT from proxy table mapped to a RPC. This traceflag has to be turned on to allow CREATE TABLE command in the remote procedure (for the session)||12.5.3. ESD 5 and 15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11229&lt;br /&gt;
| Use pre-12.5.3 behaviour to import statistics for proxy tables. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] ||12.5.3|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11231&lt;br /&gt;
| CIS: Connections to remote servers are not disconnected and remain engine affinitied until the client session terminates. The connections can now be dropped and detached from an engine after executing a statement to the remote server by enabling this flag. Exceptions are when the statement is participating in cursor, transaction or stored procedure operations; or when ASE is in either HA failover or failback states.||15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11232&lt;br /&gt;
| A 2762 error, &amp;quot;CREATE TABLE command is not allowed within multiple statement transaction&amp;quot; may be reported when executing a SQL INSERT..SELECT from proxy table mapped to a RPC. This traceflag has to be turned on to allow CREATE TABLE command in the remote procedure (serverwide)||12.5.3. ESD 5 and 15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11237&lt;br /&gt;
| Only for proxy tables to Oracle, do not append unneeded &amp;quot;null clause&amp;quot; to &amp;quot;alter table modify&amp;quot; command||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11299&lt;br /&gt;
| Allows connection information to be logged when a connection to a remote server fails. Supported by Sybase, [http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32702.1570/html/omni_ug/CHDJIJEC.htm see documentation] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 11906&lt;br /&gt;
| Informational messages from REORG will no longer be printed to the errorlog.||15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 12628&lt;br /&gt;
| Data insertion into DOL tables having nonclustered index will be done with the index prepend mode splits disabled, in order to improve disk space utilization.||15.0 ESD 2|| ||Y||N&lt;br /&gt;
|-&lt;br /&gt;
| 15302&lt;br /&gt;
| When a subquery appears in the ON clause of an outer join query, the performance may not be efficient. ASE will do optimization for subquery attachment to achieve more favorable performance when turned on.||15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 15303&lt;br /&gt;
| Possible performance improvement on a SELECT statement when a BIT column is involved in the WHERE clause.||15.0 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 15322&lt;br /&gt;
| Use 12.5 behaviour when assigning variables in combination with subqueries.||15.0.2 ESD 6|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 15371&lt;br /&gt;
| When set, bug fix for a sub-optimal plan is chosen when the query contains a subquery from an IF EXISTS clause.||12.5.4 ESD 10|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 15381&lt;br /&gt;
| When set, the warning message 307, &amp;quot;Index &amp;lt;index_name&amp;gt; specified as optimizer hint in the FROM clause of table &amp;lt;table_name&amp;gt; does not exist. Optimizer will choose another index instead.&amp;quot; is disabled.||15.0.2 ESD 4|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 15382&lt;br /&gt;
| Disable &amp;quot;special OR strategy&amp;quot; (see release notes for the fine details)||15.0.2 ESD 2|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| 15556&lt;br /&gt;
| Allow dump and load in ASE cluster edition with multiple instances active||cluster edition|| || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.7&amp;diff=1948</id>
		<title>Installation guidelines ASE 15.7</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php?title=Installation_guidelines_ASE_15.7&amp;diff=1948"/>
				<updated>2012-10-17T13:11:09Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: Created page with 'This page describes how to install and configure a Sybase ASE server version 15.7. You will also learn how to connect to the server, stop and restart it.  ==Get the software== Fi…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to install and configure a Sybase ASE server version 15.7. You will also learn how to connect to the server, stop and restart it.&lt;br /&gt;
&lt;br /&gt;
==Get the software==&lt;br /&gt;
First download ASE.&lt;br /&gt;
&lt;br /&gt;
For a licensed version you need to go here: http://sybase.subscribenet.com (account required) or to the eShop at sybase.com: http://eshop.sybase.com/eshop/buy?id=19517&lt;br /&gt;
&lt;br /&gt;
To get a free download you can go to this page http://www.sybase.com/ase_1500devel. You can download ASE 15.7 for various operating systems and chipsets. When you install ASE you can choose to run without a license (limited features) or install a licenced version and buy a license from Sybase.&lt;br /&gt;
&lt;br /&gt;
Downloads are also available at the Sybase download center at http://downloads.sybase.com/swd/base.do?client=support. Once registered you can download the latest EBF (patch) for the desired platform. An EBF can also be used for a full installation. &lt;br /&gt;
&lt;br /&gt;
==Prepare the Operating System==&lt;br /&gt;
Make sure that the filesystem for the Sybase software is big enough. A full installation needs approx. 1.5 Gb so 4 Gb should give you enough room to handle upgrades too. In this case we install the software in /opt/sybase/ase157. Database files will be stored /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Become root and add a group &amp;quot;sybase&amp;quot; and a user &amp;quot;sybase&amp;quot; to the system. Also create the needed directories.&lt;br /&gt;
Strictly spoken, the usage of the username and groupname called &amp;quot;sybase&amp;quot; is not needed, any username is fine.&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /opt/sybase&lt;br /&gt;
 mkdir -p /var/sybase&lt;br /&gt;
 groupadd sybase&lt;br /&gt;
 useradd -g sybase -d /opt/sybase sybase&lt;br /&gt;
 passwd sybase&lt;br /&gt;
 chown sybase:sybase /opt/sybase&lt;br /&gt;
 chown sybase:sybase /var/sybase&lt;br /&gt;
&lt;br /&gt;
Enable the operating system to allow more than the default value for shared memory.&lt;br /&gt;
&lt;br /&gt;
*Solaris (pre version 10) /etc/system&lt;br /&gt;
 set shmsys:shminfo_shmmax = 4294967295&lt;br /&gt;
&lt;br /&gt;
*Solaris (system 10) /etc/project&lt;br /&gt;
 projadd -c &amp;quot;sybase&amp;quot; 'user.sybase'&lt;br /&gt;
 projmod -s -K &amp;quot;project.max-shm-memory={privileged,4GB,deny}&amp;quot; 'user.sybase'&lt;br /&gt;
&lt;br /&gt;
*Linux:&lt;br /&gt;
Use &amp;quot;sysctl kernel.shmmax&amp;quot; to see the current value.&lt;br /&gt;
&lt;br /&gt;
Configure a new value with &amp;quot;sysctl -w kernel.shmmax=274877906944&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then add kernel.shmmax=274877906944 to /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
==Raw devices or filesystem files==&lt;br /&gt;
Sybase recommends to store all database files on raw devices except for temporary databases like tempdb. Some Unix adminstrators do not like raw devices and then you need to put everything on filesystems. Also, consult your storage administrator when in doubt.&lt;br /&gt;
&lt;br /&gt;
===Raw devices===&lt;br /&gt;
When you use raw devices, create the following:&lt;br /&gt;
* master (100 Mb)&lt;br /&gt;
* sybsystemprocs (172M)&lt;br /&gt;
* sybsystemdb (6M)&lt;br /&gt;
* data01 (for instance 10G but for testing purposes 100Mb is also good. You can always add more)&lt;br /&gt;
* log01(for instance 2G but for testing purposes 20Mb is also good. You can always add more).&lt;br /&gt;
Do not forget to chown the raw devices to the sybase user. Check if this setting is persistent after a reboot.&lt;br /&gt;
&lt;br /&gt;
===Temporory databases===&lt;br /&gt;
Files for temporary databases (like tempdb) should be stored on the filesystem. Allow at least  100Mb but, depending on your application, several Gb's or much more is not uncommon.&lt;br /&gt;
&lt;br /&gt;
==Determine your license policy==&lt;br /&gt;
Since ASE 15.0 you cannot run a production server without a license file. License files can reside on the network or on the local system. Think about the license policy that suits you best. Most sites choose for license files on each Unix server.&lt;br /&gt;
&lt;br /&gt;
When there is no valid license, ASE will run with a grace time of 30 days. After that it will shutdown and it cannot be rebooted anymore until you install a license, or change the license settings revert to the Express Edition.&lt;br /&gt;
&lt;br /&gt;
==Installation of the software==&lt;br /&gt;
Now, switch to the newly created user:&lt;br /&gt;
 su - sybase&lt;br /&gt;
You should now be in the directory /opt/sybase. Make a work directory and put the downloaded Sybase software in it.&lt;br /&gt;
 mkdir install&lt;br /&gt;
 cd install&lt;br /&gt;
 &amp;lt;put the software in this directory&amp;gt;&lt;br /&gt;
 tar -xf &amp;lt;software-distro&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the installation (when using an EBF download as installation file you may need to go into a subdirectory)&lt;br /&gt;
&lt;br /&gt;
 ./setup.bin&lt;br /&gt;
&lt;br /&gt;
When you get a message like &amp;quot;A suitable JVM could not be found&amp;quot; or “exec: 2470: /tmp/install.dir.1392/Linux/resource/jre/bin/java: not found” check the following document for a solution: [[Ubuntu 64 bit ASE installation]]&lt;br /&gt;
&lt;br /&gt;
Use /opt/sybase/ase157 as the destination directory, do a full installation. At the list of possible servers to configure, deselect all options. We will do a manual configuration.&lt;br /&gt;
&lt;br /&gt;
When the installation has finished successful you can safely remove the work directory and the installation package.&lt;br /&gt;
&lt;br /&gt;
==Setup your environment==&lt;br /&gt;
In /opt/sybase/ase157 you will find files like SYBASE.csh, SYBASE.sh and SYBASE.env. Depending on the type of shell you use you need to source in one of these. For instance, when your default shell is bash you should do this:&lt;br /&gt;
&lt;br /&gt;
 . /opt/sybase/ase157/SYBASE.sh&lt;br /&gt;
&lt;br /&gt;
By doing:&lt;br /&gt;
&lt;br /&gt;
 echo $SYBASE&lt;br /&gt;
&lt;br /&gt;
it should return /opt/sybase/ase157.&lt;br /&gt;
Is is fairly common to activate the SYBASE.sh script (or similar one) from your login script. &lt;br /&gt;
&lt;br /&gt;
When you have generated a licence file through http://sybase.subscribenet.com install it in the directory $SYBASE/SYSAM-2_0/licenses&lt;br /&gt;
&lt;br /&gt;
==Create the ASE server==&lt;br /&gt;
Most installations, especially for development purposes, run multiple ASE's and backup servers from a single Sybase software installation. For a good overview it is quite handy to store files that are specific for a server in it's own directory. In this example we create two servers: an ASE called ASE1 and a backupserver called SYB_BACKUP. Configuration files and the errorlog are stored in the admin directory, database files are stored in /var/sybase.&lt;br /&gt;
&lt;br /&gt;
Create the directories for these servers:&lt;br /&gt;
 cd /opt/sybase&lt;br /&gt;
 mkdir admin&lt;br /&gt;
 mkdir admin/ASE1&lt;br /&gt;
 mkdir admin/SYB_BACKUP&lt;br /&gt;
 mkdir /var/sybase/ASE1&lt;br /&gt;
&lt;br /&gt;
When you choose to use raw device it's quite handy when you create symbolic links from /var/sybase/ASE1 to those devices. For example:&lt;br /&gt;
 ln -s /dev/hda4 /var/sybase/ASE1/master.dat&lt;br /&gt;
Do this also for the other raw devices that you have made.&lt;br /&gt;
&lt;br /&gt;
Now go to the &amp;quot;/opt/sybase/admin/ASE1&amp;quot; directory and create a resource file. Use the following template as an example, call it ASE1.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.adaptive_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: sqlsrv&lt;br /&gt;
 sqlsrv.server_name: ASE1&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 sqlsrv.new_config: yes&lt;br /&gt;
 sqlsrv.do_add_server: yes&lt;br /&gt;
 sqlsrv.network_protocol_list: tcp&lt;br /&gt;
 sqlsrv.network_hostname_list: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 sqlsrv.network_port_list: 4000&lt;br /&gt;
 sqlsrv.application_type: MIXED&lt;br /&gt;
 sqlsrv.server_page_size: 4096&lt;br /&gt;
 sqlsrv.force_buildmaster: no&lt;br /&gt;
 sqlsrv.master_device_physical_name: /var/sybase/ASE1/master.dev&lt;br /&gt;
 sqlsrv.master_device_size: 100&lt;br /&gt;
 sqlsrv.master_database_size: 60&lt;br /&gt;
 sqlsrv.errorlog: /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 sqlsrv.do_upgrade: no&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_physical_name: /var/sybase/ASE1/sybsystemprocs.dev&lt;br /&gt;
 sqlsrv.sybsystemprocs_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemprocs_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_device_physical_name: /var/sybase/ASE1/sybsystemdb.dev&lt;br /&gt;
 sqlsrv.sybsystemdb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybsystemdb_database_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.tempdb_device_physical_name: /var/sybase/ASE1/tempdb.dev&lt;br /&gt;
 sqlsrv.tempdb_device_size: 100&lt;br /&gt;
 sqlsrv.tempdb_database_size: 100&lt;br /&gt;
 sqlsrv.default_backup_server: SYB_BACKUP&lt;br /&gt;
 #sqlsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
 sqlsrv.do_configure_pci: no&lt;br /&gt;
 sqlsrv.sybpcidb_device_physical_name: PUT_THE_PATH_OF_YOUR_SYBPCIDB_DATA_DEVICE_HERE&lt;br /&gt;
 sqlsrv.sybpcidb_device_size: USE_DEFAULT&lt;br /&gt;
 sqlsrv.sybpcidb_database_size: USE_DEFAULT&lt;br /&gt;
 # If sqlsrv.do_optimize_config is set to yes, both sqlsrv.avail_physical_memory and sqlsrv.avail_cpu_num need to be set.&lt;br /&gt;
 sqlsrv.do_optimize_config: yes&lt;br /&gt;
 sqlsrv.avail_physical_memory: 256&lt;br /&gt;
 sqlsrv.avail_cpu_num: 1&lt;br /&gt;
&lt;br /&gt;
This resource file will a create a Sybase server with the following characteristics:&lt;br /&gt;
* The name of the server will be ASE1, can be changed later with the sp_addserver stored procedure.&lt;br /&gt;
* The server will have a listener on the ip-address as indicated with &amp;lt;hostname&amp;gt; and port 4000. This can be changed later in the interfaces file located at $SYBASE/interfaces.&lt;br /&gt;
* Application type is mixed, so you expect both oltp and dss type of queries. This can be changed later by modification of the “optimization goal” setting with sp_configure).&lt;br /&gt;
* Server page size will be 4 Kb. The default is 2 Kb but with today’s hardware this will give sub-optimal performance. Once the server has been created it cannot be changed, a complete server rebuild is needed then.&lt;br /&gt;
* The master device will be 100 Mb, the size of the master database will be 60 Mb. The master devices will contain the master database, the master database contains important meta-data about the server. It’s very unusual to increase the size of the master device or the master database.&lt;br /&gt;
* The location of the errorlog is /opt/sybase/admin/ASE1/errorlog, can be changed later in the configuration file.&lt;br /&gt;
* A device of 172 Mb will be created for the sybsystemprocs database, also with a size of 172 Mb. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A device of 6 Mb will be created for the sybsystemdb database. The size of the database will actually be 12Mb as a small portion will also reside on the master device. The size of the device can be increased with the “disk resize” command, the database can be increased with the “alter database” command.&lt;br /&gt;
* A temporary database 'tempdb' will be created on a device with a size of 100 Mb, the database will also be 100 Mb. In fact, it will be a bit larger since also a small portion will reside on the master device. Again, the device and the tempdb database can be increased in size. You can also create multiple temporary databases for improved concurrency.&lt;br /&gt;
* We will build a backup server called SYB_BACKUP. The name can be changed later with sp_addserver.&lt;br /&gt;
* We will not use a PCI (Pluggable Component Interface) database. This database is mainly used for Java in the server.&lt;br /&gt;
* Use the optimize configuration feature and tune for 256 Mb of memory and 1 cpu.&lt;br /&gt;
&lt;br /&gt;
Now build the server with the command:&lt;br /&gt;
 srvbuildres -r ASE1.rs&lt;br /&gt;
&lt;br /&gt;
When the srvbuildres command fails with:&lt;br /&gt;
 Task failed&lt;br /&gt;
 Unable to boot server 'ASE1'.  &lt;br /&gt;
 Server 'ASE1' was not created.&lt;br /&gt;
then go to this page for tips how to solve this: [[srvbuildres task failed]].&lt;br /&gt;
&lt;br /&gt;
After a successful creation you can connect to the server using the command line tool isql. The login “sa&amp;quot; has been created, with the password that was specified in ASE.rs file. At the prompt of isql you can type a command or execute a stored procedure. Type exit to exit.&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 sp_helpdb&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
==Basic ASE configuration==&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration files to the admin directory. First shutdown ASE&lt;br /&gt;
&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 shutdown&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
 cd $SYBASE/$SYBASE_ASE&lt;br /&gt;
 mv ASE1.cfg /opt/sybase/admin/ASE1&lt;br /&gt;
 rm ASE1.*&lt;br /&gt;
 cd install&lt;br /&gt;
&lt;br /&gt;
Modify RUN_ASE1 and make the following changes:&lt;br /&gt;
* Make the -s flag the first option. This has the advantage that a listing of running processes on the system will show the name of the Sybase server.&lt;br /&gt;
* Change the location of the configuration files, as specified with the -c flag, to the admin directory&lt;br /&gt;
Each line must end with a backslash.&lt;br /&gt;
Example RUN_ASE1 file:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # ASE page size (KB):   4096&lt;br /&gt;
 # Master device path:   /var/sybase/ASE1/master.dev&lt;br /&gt;
 # Error log path:       /opt/sybase/admin/ASE1/errorlog&lt;br /&gt;
 # Configuration file path:      /opt/sybase/ase157/ASE-15_0/ASE1.cfg&lt;br /&gt;
 # Directory for shared memory files:    /opt/sybase/ase157/ASE-15_0&lt;br /&gt;
 # Adaptive Server name: ASE1&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase157/ASE-15_0/bin/dataserver \&lt;br /&gt;
 -sASE1 \&lt;br /&gt;
 -d/var/sybase/ASE1/master.dev \&lt;br /&gt;
 -e/opt/sybase/admin/ASE1/errorlog \&lt;br /&gt;
 -c/opt/sybase/admin/ASE1/ASE1.cfg \&lt;br /&gt;
 -M/opt/sybase/ase157/ASE-15_0 \&lt;br /&gt;
&lt;br /&gt;
Now restart the Sybase server&lt;br /&gt;
 ./startserver -f ./RUN_ASE1&lt;br /&gt;
&lt;br /&gt;
===Load instmsg.ebf file===&lt;br /&gt;
The instmsgs.ebf file contains the latest update for Sybase error messages. You can load it with isql.&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1 &amp;lt; $SYBASE/$SYBASE_ASE/scripts/instmsgs.ebf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Create the backup server==&lt;br /&gt;
Create the backup server using the following steps.&lt;br /&gt;
&lt;br /&gt;
Go to the &amp;quot;/opt/sybase/admin/SYB_BACKUP&amp;quot; directory and create a resource file. Use the following template as an example, call it SYB_BACKUP.rs. You can also use the Sybase supplied resource file, it's $SYBASE/$SYBASE_ASE/init/sample_resource_files/srvbuild.backup_server.rs&lt;br /&gt;
&lt;br /&gt;
 sybinit.release_directory: USE_DEFAULT&lt;br /&gt;
 sybinit.product: bsrv&lt;br /&gt;
 bsrv.server_name: SYB_BACKUP&lt;br /&gt;
 bsrv.new_config: yes&lt;br /&gt;
 bsrv.do_add_backup_server: yes&lt;br /&gt;
 bsrv.do_upgrade: no&lt;br /&gt;
 bsrv.network_protocol_list: tcp&lt;br /&gt;
 bsrv.network_hostname_list: &amp;lt;put your hostname here&amp;gt;&lt;br /&gt;
 bsrv.network_port_list: 4001&lt;br /&gt;
 bsrv.language: USE_DEFAULT&lt;br /&gt;
 bsrv.character_set: USE_DEFAULT&lt;br /&gt;
 bsrv.tape_config_file: USE_DEFAULT&lt;br /&gt;
 bsrv.errorlog: /opt/sybase/admin/SYB_BACKUP/SYB_BACKUP.log&lt;br /&gt;
 sqlsrv.related_sqlsrvr: ASE1&lt;br /&gt;
 sqlsrv.sa_login: sa&lt;br /&gt;
 sqlsrv.sa_password: secret123&lt;br /&gt;
 #bsrv.addl_cmdline_parameters: PUT_ANY_ADDITIONAL_COMMAND_LINE_PARAMETERS_HERE&lt;br /&gt;
&lt;br /&gt;
Build the server with the command:&lt;br /&gt;
 srvbuildres -r SYB_BACKUP.rs&lt;br /&gt;
&lt;br /&gt;
===Move and modify configuration files===&lt;br /&gt;
In this step we will move the configuration file to the admin directory. First shutdown the backup server:&lt;br /&gt;
 isql -Usa -Psecret123 -SASE1&lt;br /&gt;
 shutdown SYB_BACKUP&lt;br /&gt;
 go&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Modify the file RUN_SYB_BACKUP, located at $SYBASE/$SYBASE_ASE/install. Move the line with the -s flag to the top. Sample RUN_SYB_BACKUP:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # Error log path:       /opt/sybase/ase157/ASE-15_0/install/SYB_BACKUP.log&lt;br /&gt;
 # Maximum number of network connections:        25&lt;br /&gt;
 # Maximum number of server connections: 20&lt;br /&gt;
 # Multibuf executable path:     /opt/sybase/ase157/ASE-15_0/bin/sybmultbuf&lt;br /&gt;
 # Backup Server name:   SYB_BACKUP&lt;br /&gt;
 #&lt;br /&gt;
 /opt/sybase/ase157/ASE-15_0/bin/backupserver \&lt;br /&gt;
 -SSYB_BACKUP \&lt;br /&gt;
 -e/opt/sybase/admin/SYB_BACKUP/SYB_BACKUP.log \&lt;br /&gt;
 -N25 \&lt;br /&gt;
 -C20 \&lt;br /&gt;
 -M/opt/sybase/ase157/ASE-15_0/bin/sybmultbuf \&lt;br /&gt;
 &lt;br /&gt;
Restart the backupserver&lt;br /&gt;
 startserver -f $SYBASE/$SYBASE_ASE/install/RUN_SYB_BACKUP&lt;br /&gt;
&lt;br /&gt;
==Create a user database==&lt;br /&gt;
 disk init name = data01,size=&amp;quot;1G&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/data01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 disk init name = log01,size=&amp;quot;100M&amp;quot;,physname=&amp;quot;/var/sybase/ASE1/log01.dat&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
 create database my_database on data01=&amp;quot;1G&amp;quot; log on log01 = &amp;quot;100M&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
==All done==&lt;br /&gt;
Happy Sybase-ing with your new server!!&lt;br /&gt;
&lt;br /&gt;
Further reading:&lt;br /&gt;
&lt;br /&gt;
Installation guide for Linux http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc30119.1570/doc/html/title.html&lt;br /&gt;
&lt;br /&gt;
Sybase System administration http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc31654.1570/html/sag1/title.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:ASE]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	</feed>