<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://petersap.nl/SybaseWiki/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages</id>
		<title>SybaseWiki - New pages [en]</title>
		<link rel="self" type="application/atom+xml" href="http://petersap.nl/SybaseWiki/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages"/>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php/Special:NewPages"/>
		<updated>2026-04-04T21:32:53Z</updated>
		<subtitle>From SybaseWiki</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>http://petersap.nl/SybaseWiki/index.php/Bitmap_Failed_internal_checks</id>
		<title>Bitmap Failed internal checks</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php/Bitmap_Failed_internal_checks"/>
				<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/RepServer_show_changed_configuration_options</id>
		<title>RepServer show changed configuration options</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php/RepServer_show_changed_configuration_options"/>
				<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/Docker_-_How_to_run_Sybase_ASE_in_a_container</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/Docker_-_How_to_run_Sybase_ASE_in_a_container"/>
				<updated>2015-06-22T11:43:05Z</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/Installation_guidelines_IQ_16</id>
		<title>Installation guidelines IQ 16</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php/Installation_guidelines_IQ_16"/>
				<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/Could_not_find_or_load_the_physical_store_DLL</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/Could_not_find_or_load_the_physical_store_DLL"/>
				<updated>2013-10-02T19:31:39Z</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/Installation_guidelines_RepServer_15.7.1</id>
		<title>Installation guidelines RepServer 15.7.1</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php/Installation_guidelines_RepServer_15.7.1"/>
				<updated>2013-04-29T10:03:39Z</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/Linux_configuration_settings_for_Sybase_ASE</id>
		<title>Linux configuration settings for Sybase ASE</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php/Linux_configuration_settings_for_Sybase_ASE"/>
				<updated>2013-03-11T12:52:18Z</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/ASE_Cache_stalls</id>
		<title>ASE Cache stalls</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php/ASE_Cache_stalls"/>
				<updated>2013-02-10T16:50:03Z</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/Installation_guidelines_ASE_15.7</id>
		<title>Installation guidelines ASE 15.7</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php/Installation_guidelines_ASE_15.7"/>
				<updated>2012-10-17T13:11:09Z</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/Bypasssing_cross_platform_load_issues</id>
		<title>Bypasssing cross platform load issues</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php/Bypasssing_cross_platform_load_issues"/>
				<updated>2012-08-31T09:14: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/Installation_guidelines_ASE_15.5</id>
		<title>Installation guidelines ASE 15.5</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php/Installation_guidelines_ASE_15.5"/>
				<updated>2010-10-24T18:40:38Z</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/Add_a_replicate_table_to_an_existing_replication_server</id>
		<title>Add a replicate table to an existing replication server</title>
		<link rel="alternate" type="text/html" href="http://petersap.nl/SybaseWiki/index.php/Add_a_replicate_table_to_an_existing_replication_server"/>
				<updated>2010-10-06T12:57:29Z</updated>
		
		<summary type="html">&lt;p&gt;Psap: Created page with 'With the replication server setup as described at this page Warm Standby setup instructions it is easy to add a replicate table to it. Follow these steps.  ==Mark the table t…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With the replication server setup as described at this page [[Warm Standby setup instructions]] it is easy to add a replicate table to it. Follow these steps.&lt;br /&gt;
&lt;br /&gt;
==Mark the table that hold the primary data for replication==&lt;br /&gt;
On the primary ASE that manages the data for the warm standby setup you need to mark each table for replication. For instance, when you want to replicate data changes for a table called ‘myTable’ run this command:&lt;br /&gt;
&lt;br /&gt;
 use &amp;lt;database&amp;gt;&lt;br /&gt;
 go&lt;br /&gt;
 sp_setreptable myTable,&amp;quot;true&amp;quot;&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==Prepare the replicate database==&lt;br /&gt;
If not already there, create a Sybase ASE server and a database that will be used to store the replicate table.&lt;br /&gt;
&lt;br /&gt;
This page assumes that the tables on the replicate ASE are created identical as those on the primary ASE.&lt;br /&gt;
When done, you need to run a Sybase supplied script to create some extra tables needed by replication server. The script is called rs_install_replicate.sql and is located at $SYBASE/$SYBASE_REP/scripts. Example how to load the script:&lt;br /&gt;
&lt;br /&gt;
 isql -U&amp;lt;login&amp;gt; -P&amp;lt;password&amp;gt; -S&amp;lt;server&amp;gt; -D&amp;lt;database&amp;gt; &amp;lt; $SYBASE/$SYBASE_REP/scripts/rs_install_replicate.sql&lt;br /&gt;
&lt;br /&gt;
==Create the maintenance user on the replicate ASE==&lt;br /&gt;
Create a login on the replicate ASE that will be used by replication server to maintain the data. It is the maintenance user.&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;
 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;,”dbo”&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==Check interfaces file==&lt;br /&gt;
Make sure that the interfaces file of the replication server has an entry to connect to the replicate ASE.&lt;br /&gt;
&lt;br /&gt;
==Create a connection==&lt;br /&gt;
Create a connection from the replication server to the ASE server and database.&lt;br /&gt;
 create connection to &amp;lt;replicate ASE&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;
 go&lt;br /&gt;
&lt;br /&gt;
==Create replication definition==&lt;br /&gt;
Create replication definitions for the table, see example below.&lt;br /&gt;
 create replication definition RD_myTable&lt;br /&gt;
 with primary at L1.peter&lt;br /&gt;
 with all tables named 'myTable'&lt;br /&gt;
 (&amp;quot;sequ&amp;quot; identity,&lt;br /&gt;
 &amp;quot;dt&amp;quot; datetime)&lt;br /&gt;
 primary key(&amp;quot;sequ&amp;quot;)&lt;br /&gt;
 replicate minimal columns&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
==Create subscription==&lt;br /&gt;
Create a subscription for the table&lt;br /&gt;
 create subscription A5_myTable&lt;br /&gt;
 for RD_myTable&lt;br /&gt;
 with replicate at A5.peter&lt;br /&gt;
 go&lt;br /&gt;
&lt;br /&gt;
That’s all.&lt;br /&gt;
[[Category:RepServer]]&lt;/div&gt;</summary>
		<author><name>Psap</name></author>	</entry>

	</feed>