Quantcast
Channel: SCN : Document List - SAP Adaptive Server Enterprise (SAP ASE) for Custom Applications
Viewing all 49 articles
Browse latest View live

Configuring ASE for Thomson Reuters KONDOR+ Suite 3.2 and 3.3

$
0
0

The purpose of this document is to define and elaborate on the configuration recommendations from Thomson Reuters and Sybase, Inc. for running the Kondor+ Suite 3.2 & 3.3 on Sybase ASE 15.0.

View this Document


IBM DB2 to ASE Migration Guide

$
0
0

This document is primarily intended to assist with the application migration process from IBM DB2 to ASE. By migration, in this context, we mean the process of changing an application so that it uses ASE, rather than IBM DB2, as its underlying database management system; this involves moving the schema and data from IBM DB2 to ASE as well as re-directing the application. It is also intended to be of assistance to those software developers needing to develop applications that can be easily migrated between the products.

View this Document

PAM user authentication in ASE

$
0
0

This paper introduces the architecture and design of the PAM framework and then discusses how Adaptive Server® Enterprise (ASE) 12.5.2 has leveraged the PAM API to support a new authentication mechanism called PAM User Authentication (PAMUA) and drive down the overall total cost of ownership. This paper concludes with an example of how PAM custom service module can be written and used by ASE for authentication.

View this Document

Technical Challenges of Managing Application Security

$
0
0

This paper focusses on the technical challenges of managing application security and how Adaptive Server  provides applications the security foundation needed to perform safely in today's interconnected world.

View this Document

Configuring Kerberos for ASE

$
0
0

this document will provide a highlevel road map for creating a Kerberos setup between client and server. Additionally, this document will include setup information specific to CyberSafe, MIT Kerberos and MicroSoft Active Directory.

View this Document

User Authentication using LDAP and Active Directory Services for ASE

$
0
0

This paper talks about ASE's ability to use an LDAP Server for user authentication. Adaptive Server Enterprise version 12.5.2 further extends user authentication to Active Directory and improves authentication controls.

View this Document

Large Memory Support in ASE for Linux

$
0
0

This paper describes how ASE can take advantage of the PAE feature to further enhance performance and scalability by utilizing more memory in the system which in turn, delivers even more bang for the buck.With PAE, OS vendors have provided various mechanisms and APIs to allow applications to address more than 4GB.

View this Document

A White Paper on SCC

$
0
0

This paper talks about SAP® Control Center, its key capabilities and how it is able to help customers efficiently manage and monitor data.

View this Document


Getting Started with SAP Sybase Adaptive Server Enterprise (ASE)

$
0
0

 

Introduction

 

SAP Sybase ASE is a highly optimized relational database management system for mission critical transactional processing and operational reporting.  It delivers high performance at a low total cost of ownership (TCO) and is designed to run on any standard hardware and operating system. This document provides an overview of the setup for database installation and administration of an SAP Sybase Adaptive Server Enterprise (ASE)  database. The aim is to help in getting started as quickly as possible by providing concise information and links to further details. To successfully install and configure SAP Sybase ASE, use the configuration guide along with the installation guide.

 

Configuration Guide

The configuration guide provides instructions for: 

  • Reconfiguring certain attributes of your existing SAP Sybase ASE installation, Backup Server, SAP Sybase ASE  Monitor and XP Server to meet specific needs.
  • Creating network connections.                           
  • Configuring optional functionality.                           
  • Performing operating system administrative tasks.


Adaptive Server Enterprise 15.7 for Unix

Adaptive Server Enterprise 15.7 for Windows


Installation Guide

The SAP Sybase ASE installation guide explains how to unload the software from the distribution media to the hard disk, and perform the minimal set of additional tasks so that SAP Sybase ASE can be started on the previously decided machine.

 

Visit SyBooks Online and click on the platform-specific installation guide. For example, Adaptive Server Enterprise 15.7 for Linux.

 

Installation Workflows

 

Workflows define a complete path for planning, installing, and upgrading ASE. It is essential to choose the workflow that best describes the user’s scenario. Whether the plan is to install or upgrade SAP Sybase ASE:                           

 

  • Identify the components and options to install or upgrade.                   
  • Obtain a license. Installing SAP Sybase ASE for the First Time
  • Plan your installation and review system requirements.
  • Install SAP Sybase ASE.
  • Perform post installation tasks.

 

SAP Sybase ASE Editions

 

SAP offers various editions of Adaptive Server Enterprise:


  • Enterprise Edition – has no limit on scalability and can run all available options that can be purchased separately.                             
  • Small Business Edition – has limited scalability and does not have options that can be purchased separately.                             
  • Developer Edition – has limited scalability and includes many of the options that are included in the Enterprise Edition.   
  • Express Edition - has limited scalability and does not have options that can be purchased separately. 
  • The Express Edition is available on Linux x86, Linux x64 and Linux OpenPower.                         

 

See the SAP Sybase Software Asset Management Users Guide for information about unlocking editions and optional features. 

 

SAP Sybase ASE Options

 

SAP offers various optional features for Adaptive Server:


  • Data compression: Enables the use of less storage space for the same amount of data, reduces cache memory consumption and improves performance with lower I/O demands by compressing regular and large object data.
  • Security and directory services: Provides lightweight directory services and network-based authentication and encryption using SSL and Kerberos.
  • Partitions: Enables semantic partitioning for table row data.
  • Encrypted columns: Increases security parameters and allows for addition of data types.
  • Tivoli Storage Manager: Enables the database to back up and restore operations to IBM Tivoli Storage Manager.
  • In-memory database: Provides zero-disk-footprint in-memory database support that is fully integrated with SAP Sybase ASE for high-performance transactional applications. Relaxed durability properties provide performance enhancements to disk-resident databases.
  • SAP Sybase ASE editions and optional features are unlocked by SySAM licenses. See the SAP Sybase Software Asset Management Users Guide.

 

 

SAP Sybase ASE Licensing Options

 

SAP offers a stand-alone and run-time license for SAP Sybase ASE Enterprise Edition. To use ASE with a stand-alone license, a request has to be sent in to obtain licenses for the same ASE options as included in the run-time license in order to stay compliant.  The runtime license includes ASE options that are required for running the SAP Business Suite. The runtime license comes at an extremely favorable cost: the fee is 8% of the SAP application value (SAV). The SAP Sybase ASE installer automatically installs a SySAM license server if you choose the full installation option or enter a served license when prompted for the SySAM license key. You can also install the license server using the installer's custom installation option.

 

See the SAP Sybase Software Asset Management Users Guide to generate licenses.

 

Understanding License Generation

 

When you purchase SySAM 2–enabled SAP database products, you must generate, download, and deploy SySAM product licenses.

 

If you purchased your product from SAP-Sybase or an authorized SAP-Sybase reseller, go to the secure Sybase Product Download Center (SPDC) and log in to generate license keys. The license generation process may vary slightly, depending on whether you ordered directly from SAP-Sybase or from a SAP-Sybase reseller.

 

When you purchase SySAM2-licensed products from a SAP-Sybase reseller, your product package may include a Web key certificate that contains the location of the SPDC Web key login page and the activation string to use for the login name.

 

If you ordered your product under an SAP contract and were directed to download from SAP Service Marketplace (SMP), you can use SMP to generate license keys for Sybase products that use SySAM 2-based licenses. For further details on licensing and other information, please refer to the ASE installation guide

 

Managing ASE with SAP Control Center

 

SAP Control Center (SCC) provides a single, comprehensive, Web administration console for real-time performance, status, and availability monitoring of large-scale Sybase enterprise servers. SCC combines a modular architecture, a rich client administrative console, agents, common services, and tools for managing and controlling SAP products. It includes historical monitoring, threshold-based alerts and notifications, alert-based script execution, and intelligent tools for identifying performance and usage trends.

SAP Sybase Adaptive Server Enterprise on VMware vSphere - Essential Deployment Tips

$
0
0

This paper describes the advantages and technical considerations for running SAP Sybase ASE on the VMware vSphere platform. This document is written for architects and engineers who are responsible for SAP Sybase ASE and VMware virtualized environments. This paper assumes that the reader has basic knowledge of SAP database products and the VMware vSphere virtualization platform.

View this Document

Recording of ASE 15.7 SP100 Webinar

$
0
0

The latest release of SAP Sybase ASE is no exception to the continuous innovation happening at SAP.  Please listen to the technical webcast we did on June 4, 2013, to discuss about new capabilities to handle more users and bigger data and increased performance.  We have covered the new features in SAP Sybase ASE and explained how businesses can benefit from:

View this Demo

Duration: 00:58:40

Remediation for Moderation Frustration

$
0
0

A very smart colleague of mine from TeamSybase, Bruce Armstrong posted a very good doc - http://scn.sap.com/docs/DOC-42937 in the PowerBuilder space on overcoming the moderation issues some of us who are new to SCN are having.  Check it out!  Thanks Bruce!

The Truth about Databases: Getting to the Facts on SAP Sybase Adaptive Server Enterprise

$
0
0

Let's set the record straight. SAP competitors have propagated some myths about SAP Sybase ASE so herein are the facts about SAP Sybase ASE. No mud-slinging, no name calling, no innuendo — just the FACTS about SAP Sybase ASE costs, performance, efficiency, security, reliability, availability, and application suitability.

View this Document

HOWTO: Install SAP Sybase ASE 15.x and Linux Containers (LXC) - Ubuntu Server 13.04

$
0
0

REQUIREMENTS:

Host OS:

  • Ubuntu Server 13.04 x86-64 (64bit)
  • At least 4GB RAM
  • 300GB available disk space

Sybase Patches:

Install LXC and the bridge-utils to support a network bridge:

 

aptitude installlxc debootstrap bridge-utils

Create the network bridge br0:

 

cd/etc/network

Edit interfaces:
replace:

 

auto eth0

iface eth0 inet dhcp

with:

 

# LXC bridge

 

auto br0

iface br0 inet dhcp

    bridge_ports eth0

    bridge_stp off

    bridge_fd 0

    bridge_maxwait 0

 

auto eth0

iface eth0 inet manual

Restart networking:

 

service networking restart

 

Create lxc-default-sybase Apparmor profile:

 

cd/etc/apparmor.d/lxc

cplxc-default lxc-default-sybase

 

Edit lxc-default-sybase:
replace:

 

profile lxc-container-default flags=(attach_disconnected,mediate_deleted) {

 

with:

profile lxc-container-default-sybase flags=(attach_disconnected,mediate_deleted) {

replace/add only if using you’re using LXC version LOWER than 0.7.5-3ubuntu60 – see LXC bug 1021411:

 

deny @{PROC}/sys/kernel/** wklx,

 

with:

deny @{PROC}/sys/kernel/(^shm)** wklx,

Update the kernel with the new lxc-default-sybase profile

 

apparmor_parser -r /etc/apparmor.d/lxc-containers

 

Replace /etc/lxc/lxc.conf with:

 

lxc.network.type=veth

 

lxc.network.link=br0

lxc.network.flags=up

 

# caps

lxc.cgroup.memory.limit_in_bytes = 2G

lxc.cgroup.memory.memsw.limit_in_bytes = 4G

 

Assuming that volume group VG02 exists, let’s create the container with the name of “sybase”, and a logical volume of 100G using the xfs file system:

lxc-create -n sybase -t ubuntu -B lvm --lvname sybase --vgname VG02 --fstype xfs --fssize 100G

Before we start the ‘sybase’ container, we need to update the container configuration to use the lxc-container-default-sybase container:

cd/var/lib/lxc/sybase

Edit config:
replace:

#lxc.aa_profile = unconfined

with:

lxc.aa_profile = lxc-container-default-sybase

We’re ready to start the container in console mode (to start it as a daemon add -d):

lxc-start -n sybase

The default login credentials are ubuntu / ubuntu

Let’s switch to root so we can install the packages to support Sybase ASE 15.7:

sudosu- root

Enable up to 512MB of shared memory:

echo"kernel.shmmax = 536870912">> /etc/sysctl.conf

 

sysctl -p

Install the packages (nmon is a great os monitoring tool but if you don’t want it, don’t include it):

 

dpkg --add-architecture i386

 

apt-get update

apt-get installia32-libs

apt-get installaptitude libaio1 xauth ia32-libs libstdc++5 nmon ncompress

If you want to install PPA repositories:

apt-get installpython-software-properties

We need to set up the locale:

locale-gen en_US.UTF-8

 

echo'LANG="en_US.UTF-8"'> /etc/default/locale

Copy the sybase software to your new Linux Container and extract it into a temporary directory.

Because Ubuntu seems to think that gzip can uncompress files compressed with the ‘compress’ command (it really can’t btw), you need to alias the uncompress with /usr/bin/uncompress.real:

aliasuncompress='/usr/bin/uncompress.real'

From here, you would install and configure Sybase ASE 15.x as you normally would.

Determine ip address for eth0:

ifconfig|grep"inet addr"

 

In my case, the eth0 ip address is 192.168.0.115. You will either want to reserve this address with your DHCP server or setup a static ip in /etc/interfaces.

Assuming we want to keep the 192.168.0.115 address for this container, we need to modify the /etc/hosts file:
Replace:

127.0.0.1 localhost sybase

with:

127.0.0.1 localhost

 

192.168.0.115 sybase

http://froebe.net/blog/2013/01/12/howto-install-sap-sybase-ase-15-x-and-linux-containers-lxc-ubuntu-server-12-10/

How to Manually Drop a Corrupt Table in ASE

$
0
0

Steps for Dropping a Table

 


 

Note: The following steps involve an undocumented command DBCC extentzap, which deallocates the extents for an object.  Using extentzap requires both sa_role and sybase_ts_role permissions.

 


This process can be used when the DROP TABLE command fails.

 

Before you begin, it is a good idea to make sure you have a recent backup of the database.

 

Make sure the table is not in use. Then follow these steps:

 

  1. Turn on support for making changes to tables:

    sp_configure "allow updates to system tables", 1
  2. Use the database that contains the corrupt table:

    use database-name
  3. Run the following commands and write down the ID numbers; you will need these later:

    For the database ID: 

    select  db_id('database-name')

    For the ID of the corrupt table (if you don't already have the id from an error message):

    select id from sysobjects where name =  'bad-table-name'

    For the table's index IDs:

    select indid from sysindexes where id =bad-table-id
  4. The following step is optional but highly recommended in case you find you have made an error.
    Mark the start of a user-defined transaction:

    begin tran
  5. Delete all system catalog information for the object, including any object and procedure dependencies by creating and using all of this short
    script:

    declare @obj int
    select @obj = id from sysobjects where name = bad-table-name
    delete syscolumns where id = @obj
    delete sysindexes where  id = @obj
    delete sysobjects where id in (select constrid from sysconstraints where tableid = @obj)
    delete sysdepends where depid = @obj
    delete syskeys where id = @obj
    delete syskeys where depid = @obj
    delete sysprotects where id = @obj
    delete sysconstraints where tableid = @obj
    delete sysreferences where tableid = @obj
    delete sysattributes where object = @obj
    delete syspartitions where id = @obj
    delete sysstatistics where id = @obj
    delete systabstats where id = @obj
    delete syscomments where id in (select id from sysobjects where deltrig = @obj)
    delete syscomments where id in (select id from sysobjects where instrig = @obj)
    delete syscomments where id in (select id from sysobjects where updtrig = @obj)
    delete sysprocedures where id in (select id from sysobjects where deltrig = @obj)
    delete sysprocedures where id in (select id from sysobjects where instrig = @obj)
    delete sysobjects where deltrig = @obj
    delete sysobjects where instrig = @obj
    delete sysobjects where updtrig = @obj
    delete sysobjects where id = @obj

/* If you are using Adaptive Server version 15.0 or newer, */
/* you will need to add 3 more system tables to the script */
delete sysstatistics where id = @obj
delete systabstats where id = @obj
delete syspartitionkeys where id = @obj

Note: If you make a mistake, cancel the transaction using the rollback command; and then correct and submit the script again.

Mark the end of the transaction:

 

commit tran


6. Prepare to run dbcc, using the undocumented and unsupported option extentzap. Make the database read only by submitting each of the following commands:

use master
sp_dboption database-name, 'read only', true
use database-name

checkpoint

WARNING: When you execute dbcc extentzap, it clears all extents for a given object ID and indid.
The only way to recover the data is from a database backup or other external data source.

7. Assuming that you have the required sa_role and sybase_ts_role permissions, run dbcc extentzaptwice for each index - once with a final parameter of  "0" and again with a final parameter of "1". If the table uses the ALLPAGES lock scheme and has a clustered index, you also need to delete extents on index 0, even though that indid has no sysindexes entry. Use the following syntax, being very careful to use the correct object ID, that is, the object ID of the bad table:

 

set switch on 3604  /* to direct output to client so you can see any errors */
dbcc extentzap (database-id, object-id, index-id, 0)
dbcc extentzap (database-id, object-id, index-id, 1)

8. Clean up using the following commands:

use master

sp_configure "allow updates to system tables", 0
sp_dboption database-name, 'read only', false
use database-name
checkpoint

 


Changes to Scope and Semantics of Session-level Optmization Settings in ASE 15.0.2

$
0
0

'Optimization goals' are a central concept of the query processing engine in ASE 15, as they control the possible query plans that the query optimizer may consider for a query.  Therefore, the choice of optimization goal can make a major difference for the performance of a query.  The scope and semantics of specifying session-level settings for optimization goals (as well as for the underlying 'optimization criteria') have undergone some changes in ASE versions 15.0.2, as described in this document.   (insert blank line)  This document was originally published at www.sybase.com in 2008.

View this Document

SAP Sybase ASE 15 Best Practices: Query Processing & Optimization

$
0
0

This document discusses the important characteristics of the new ASE 15 Query Optimizer.  (insert blank line)   This document was first published on www.sybase.com in 2009.

View this Document

Using 'Compatibility Mode' For ASE 15 Migration

$
0
0

This whitepaper explores what Sybase ASE's 'compatibility mode' is, how it works and how it can be applied when migrating to ASE 15. "This document was originally published at www.sybase.com in 2009."

View this Document

Floating-Point Datatypes in ASE

$
0
0

Floating-Point Datatypes in SAP Sybase Adaptive Server Enterprise


Background


The floating point datatype was designed to hold a wide range of values and allow fairly rapid arithmetical operations on them, at the expense of absolute accuracy. This tends to make them a poor choice for storing financial data (numeric is usually a better choice) but works well for many scientific applications where it is understood that measurements have some degree of error and limits to precision. Imprecision is inherent in floating point datatypes, but the exact nature of the imprecision is a source of much confusion. This TechNote explains the nature of imprecision in this datatype. Some aspects of actual floating point implementation, such as the final two's-complement representation, have been simplified or ignored.


Note: Sybase did not develop the floating point datatype; it is a widely used IEEE standard. C or C++ programs on the same platform as Adaptive Server will demonstrate similar floating point behavior (see Question 5 in the FAQ section below).


Floating-point numbers


There are two common, standard types of floating point numbers: 4-byte reals and 8-byte doubles. reals and doubles store values in similar format: 1 sign bit, x exponent bits, and y mantissa bits. The only difference is that reals use smaller exponents and mantissas.

According to the IEEE standard for floating point, real datatypes have a 23 bit mantissa and a 9 bit exponent (total 32). double datatypes have a 53 bit mantissa and an 11 bit exponent (total 64).

Note:The first bit of the mantissa is implicit. It is not actually stored as it is always on.
 
Some platforms use different standards. On the VAX, for instance, a double uses a 56-bit mantissa, an 8-bit exponent, and one sign bit for a total of 64 bits.
Mantissa and exponent (ASE hasn't been supported on VAX for many years now).


The mantissa is a binary representation of the number, each bit representing a power of two. There is an additional implicit bit at the beginning (left hand side) of the mantissa, which is always on.

The exponent is a power of two that multiplies (or shifts) the mantissa to represent larger or smaller values. The first bit of the mantissa represents the value 2^<exponent>, the second bit 2^<exponent-1>, and so on.

After the mantissa bits needed to represent the whole number part of the number have been used, the fractional part of the number is represented with the remaining bits (if any), which have values of negative powers of two.


Example


For a simple demonstration of how a value is stored in a floating point datatype, consider an even smaller floating point format with a 12 bit mantissa (including one implicit bit), one sign bit, and four exponent bits for a total of 16 bits.  The hash marks ('#') represent bits with unknown values.

#  [1]########### ####
^   ^  ^            ^
|   |  |           exponent
|   |  |
|   | mantissa
|   |
|   virtual bit of mantissa (always on)
|
sign bit

 

To represent a number:


  1. First determine "is the number positive or negative?". If it is negative, set the sign bit.

  2. Next determine "what is the smallest power of 2 that is larger than the number?".

  3. Subtract one from that power to find the exponent of the implicit bit in the mantissa. Store that exponent in the exponent field.

  4. Subtract the value of the implicit bit (2^exponent) from the number.

  5. Compare 2^(exponent-1) to the remainder.

  6. If 2^(exponent-1) is less than the remainder, set the next bit and subtract the value of that bit from the number.

  7. Compare 2^(exponent-2) to the remainder.

  8. Repeat steps 5-7 in this manner until you run out of mantissa bits.


For instance, to represent 123.3:
 
The number is positive, so the sign bit is set to 0:

0 [1]########### ####

The smallest power of 2 that is larger than 123.3 is 128, or 2^7, so the exponent is 7-1, or 6. 2^6 is 64, the value of the implicit mantissa bit:

0 [1]########### 0110

123.3 - 64 is 59.3. 2^5 is 32, which is smaller than 59.3, so the next bit is set:

0 [1]1########## 0110

59.3-32 = 27.3. 2^4 is 16, which is smaller than 27.3, so the next bit is set:
0 [1]11######### 0110

27.3 - 16 = 11.3. 2^3 is 8, which is smaller than 11.3, so the next bit is set:

0 [1]111######## 0110

11.3 - 8 = 3.3. 2^2 is 4, which is larger than 3.3, so the next bit is not set:

0 [1]1110####### 0110

3.3 - 0 = 3.3. 2^1 is 2, which is smaller than 3.3, so the next bit is set:

0 [1]11101###### 0110

3.3 - 2 = 1.3. 2^0 is 1, which is smaller than 1.3, so the next bit is set:

0 [1]111011##### 0110

1.3 - 1 = 0.3. 2^-1 is 0.5, which is larger than 0.3, so the next bit is not set:

0 [1]1110110#### 0110

0.3 - 0 = 0.3. 2^-2 is 0.25, which is smaller than 0.3, so the next bit is set:

0 [1]11101101### 0110

0.3 - 0.25 = 0.05. 2^-3 is 0.125, which is larger than 0.05, so the next bit is not set:

0 [1]111011010## 0110

0.05 - 0 = 0.05. 2^-4 is 0.06125, which is larger then 0.05, so the next bit is not set:

0 [1]1110110100# 0110

0.05 - 0 = 0.05. 2^-5 is 0.030625, which is smaller than 0.05, so the next bit is set:

0 [1]11101101001 0110

 

This represents the actual value:

64 + 32 + 16 + 8 + 2 + 1 + 0.25 + 0.030625 = 123.280625

123.3 - 123.280625 is an error of 0.019375.

 

It may be possible to reduce the error by rounding up to the next larger number that can be represented (ie, add 2^-5). This works out to:

 

0 [1]11101101001 0110

+              1
0 [1]11101101010 0110

64 + 32 + 16 + 8 + 2 + 1 + 0.25 + 0.06125 = 123.31125

123.3 - 123.31125 is an error of -0.01125.


This is a smaller error, so the representation is rounded to:

 

0 [1]11101101010 0110 (123.31125) as the final representation.

The standard real and double floating point formats work in a similar manner, except they have wider mantissas that reduce the magnitude of the potential error, and wider exponents that extend the possible range of the number.


Frequently Asked Questions

 


1) Why doesn't round() work right with floating point?

 

There is garbage in the sixth decimal place when I round a floating point number, as in:


declare @x real
select @x = 123.31
select @x = round(@x,1)
select @x
go
-------------
123.300003
 
The decimal rounded value of 123.31 is 123.3, but the real datatype cannot store 123.3 exactly. The garbage is due to the imprecision inherent in the floating point format. There is also a display issue:  isql displays floats with 6 digits after the decimal point. Some front-end programs are more intelligent about this: they know how many digits of the number will be accurate and truncate or round the display at that point. You can use the T-SQL str() function for better control over the display of floating point data (str() is documented under "String Functions" in the ASE manuals.) For example, here we rounded to one decimal place, so there is no need to display past one decimal place:

select str(@x,8,1)
go
--------
123.3
(1 row affected)


2) So just how inaccurate are reals and doubles?


4-byte reals can store a number with a maximum error of (the number)*(2^-23). 8-byte doubles can store a number with a maximum error of (the number)*(2^-53).

As a rule of thumb, this means that you can expect the first 7 digits of a real to be correct, and the first 15 digits of a double to be correct. After that, you may start seeing signs of inaccuracy or "garbage."


3) When I declare a column or variable to be of type float, there is an optional [precision] specification. What effect does this have?


If precision is less than 16, the server will use a 4-byte real. If the precision is >= 16, the server will use an 8-byte double. You can explicitly tell the server to use type real or type double precision. If you do not specify a precision and use float, the server will default to a double.
Other than this, the [precision] specification has no effect. The syntax may seem somewhat pointless, but it allows for compatibility with DDL developed for other systems that interpret [precision] differently.

 

4) So floating point only has problems storing fractions, right?


That is not true. You can see problems with whole numbers too. For instance, reals have 23 bits in the mantissa, so they will have problems with numbers that require more than 23 bits to represent them correctly.
The smallest value for which we see this is 2^24+1. reals can store upto 2^24 with no problem (the implicit bit is on, the exponent is set to 24, and all the other mantissa bits are zeroed); but 2^24+1 requires 22 zero bits and a final bit following the implicit bit (24 bits total, only 23 available).

1> select power(2,24)-1, power(2,24), power(2,24)+1

2> go
----------- ----------- -----------
   16777215    16777216    16777217
(1 row affected)

1> create table float_test (x real, y real, z real)
2> go
1> insert float_test values (power(2,24)-1, power(2,24), power(2,24)+1)
2> go
(1 row affected)

1> select * from float_test
2> go
x                    y                    z
-------------------- -------------------- --------------------
     16777215.000000      16777216.000000      16777216.000000
(1 row affected)

Note that the closest representation of 2^24+1 in a real is equal to 2^24.


5) Why don't I see this same behavior in my C/C++ program?


You are probably not looking hard enough. In general, printf() in C and cout in C++ do not print out with enough precision to show the problems. The imprecision is hidden by the rounding done by the display process.


Try specifying a higher precision, as in these two sample programs:

 
=========================================

For C:
=========================================
main()
/* Program to demonstrate floating point imprecision */
{
float r;
double d ;
r = 123.3;
d = 123.3;
printf("As a %d-byte float (real):    123.3 is %48.24f \n",
sizeof(r),r);
printf("As a %d-byte double:  123.3 is %48.24f \n", sizeof(d),d);

}


Sample output on Solaris 2.5:

alliance1{bret}125: a.out
As a 4-byte real:    123.3 is
123.300003051757812500000000
As a 8-byte double:  123.3 is
123.299999999999997157829057

=========================================
For C++:
=========================================
#include <iostream.h>
#include <iomanip.h>

main()
-- Program to demonstrate floating point inaccuracy.
{

int precision;
float y;
y = 123.3;
        cout << "123.3 as a float printed with increasing precision" <<
endl;
        cout <<
"-------------------------------------------------------------" << endl;
        for (precision = 1; precision < 30; precision++)
        {
        cout.precision(precision);
        cout <<precision << "   " << y << endl;
        }
double x;
x = 123.3;
        cout << endl;
        cout << "123.3 as a double, printed with increasing precision"
<< endl;
        cout <<
"-------------------------------------------------------------" << endl;

        for (precision = 1; precision < 30; precision++)
        {
        cout.precision(precision);
        cout <<precision << "   " << x << endl;
        }
}

Sample output on Solaris 2.5:

alliance1{bret}140: a.out
123.3 as a float printed with increasing precision
-------------------------------------------------------------
1 1e+02
2 1.2e+02
3 123
4 123.3
5 123.3
6 123.3
7 123.3
8 123.3
9 123.300003
10 123.3000031
11 123.30000305
12 123.300003052
13 123.3000030518
14 123.30000305176
15 123.300003051758
16 123.3000030517578
17 123.30000305175781
18 123.300003051757812
19 123.3000030517578125
20 123.3000030517578125
21 123.3000030517578125
22 123.3000030517578125
23 123.3000030517578125
24 123.3000030517578125
25 123.3000030517578125
26 123.3000030517578125
27 123.3000030517578125
28 123.3000030517578125
29 123.3000030517578125

123.3 as a double, printed with increasing precision
-------------------------------------------------------------
1 1e+02
2 1.2e+02
3 123
4 123.3
5 123.3
6 123.3
7 123.3
8 123.3
9 123.3
10 123.3
11 123.3
12 123.3
13 123.3
14 123.3
15 123.3
16 123.3
17 123.3
18 123.299999999999997
19 123.2999999999999972
20 123.29999999999999716
21 123.299999999999997158
22 123.2999999999999971578
23 123.29999999999999715783
24 123.299999999999997157829
25 123.2999999999999971578291
26 123.29999999999999715782906
27 123.299999999999997157829057
28 123.299999999999997157829057
29 123.29999999999999715782905696

 

6) Where can I find more information on floating points?


Many books on assembly language programming go into great detail.
A search on the World Wide Web for keywords "IEEE" and "floating" will provide many documents of interest.

Core migration paths and typical things you may encounter are listed under the next 4 methods

$
0
0

Core migration paths and typical things you may encounter are listed under the next 4 methods

1. Binary overlay and what to expect

Many of you already know a binary overlay is an install to another directory and then copied over an older version of ASE.
OR Point the ASE to a newly installed version on the same box, that points to the older database files. Then start the ASE with the new version, the software will upgrade the databases for you. This method doesn't matter what your current ASE page size is since it will use the same as you already have.

What impact will this have with the new configuration settings in ASE 15.7 that are now ON by default? What are the new settings on by default?

   * The new Kernel Threaded mode is on by default is ASE 15.7. In the past Sybase has only offered process mode. This is covered in more detail later on in this document. * Only a few OS versions safely support ASE 12.5 and ASE 15.7. 

Here is a link to our certification site, to make sure you have the needed patches before attempting this method:http://certification.sybase.com/ucr/search.do

Steps to get this done:

     * Install the new version of ASE 15.7 #1 to a clean directory. * Be sure you shutdown your existing ASE and backup server. * Copy the files from the newly created ASE directory over the top of your existing ASE directory. * Source your variables with the new SYBASE.csh or SYBASE.sh that came from the ASE 15.7 #1 directory. * Then start your ASE. * The server will go through the upgrade process. 

For testing I am copying the install files to the same directory as the old version of ASE.

   * Shutdown ASE and Backup server * Copy the files into the old version of ASE directories, in my case links, a new directory is created ASE-15_0 for the files o Be careful not to copy dat, cfg or interfaces files from your new directory over your old. * Copy the RUN_server file and cfg from /sybase/ASE-12_5/install to /sybase/ASE-15_0/install, modify it to point to the new directory /work/rel125_test/ASE-15_0/bin/dataserver        -d/work/rel125_test/data/master.dat        -e/work/rel125_test/ASE-15_0/install/rfisher_125_test.log        -c/work/rel125_test/ASE-15_0/rfisher_125_test.cfg        -M/work/rel125_test/ASE-15_0        -srfisher_125_test * Start the server with the new RUN_file * Here is an example of how the errorlog will look when the server comes up with new threaded mode outputs: ....removed 00:0000:00000:00000:2012/05/23 13:31:09.82 kernel  Adaptive Server is using the threaded kernel mode. 00:0000:00000:00000:2012/05/23 13:31:09.85 kernel  Using 40000 file descriptors. 00:0000:00000:00000:2012/05/23 13:31:11.12 kernel  Adaptive Server Enterprise/15.7.0/EBF 19497 SMP /P/Sun_svr4/OS 5.10/ase157/2820/64-bit/FBO/Fri Sep 16 05:21:18 2011 ....removed 00:0000:00000:00000:2012/05/23 13:31:11.12 kernel  Using /work/rel125_test as the 'SYBASE' environment variable, found during startup. 00:0000:00000:00000:2012/05/23 13:31:11.12 kernel  Using OCS-15_0 as the 'SYBASE_OCS' environment variable, found during startup. 00:0000:00000:00000:2012/05/23 13:31:11.12 kernel  Using ASE-15_0 as the 'SYBASE_ASE' environment variable, found during startup. 00:0000:00000:00000:2012/05/23 13:31:11.12 kernel  ASE booted on host 'rfisher-sun.sybase.com' running SunOS release 5.10 version Generic_118833-24. 00:0000:00000:00000:2012/05/23 13:31:11.12 kernel  Using '/work/rel125_test/ASE-15_0/rfisher_125_test.cfg' for configuration information. 00:0000:00000:00000:2012/05/23 13:31:11.12 kernel  Logging ASE messages in file '/work/rel125_test/ASE-15_0/install/rfisher_125_test.log'. 00:0000:00000:00000:2012/05/23 13:31:11.34 kernel  Disk Controller Manager is online. 00:0000:00000:00000:2012/05/23 13:31:11.34 kernel  Network Controller Manager is online. 00:0000:00000:00000:2012/05/23 13:31:11.34 kernel  Ct-Lib Controller Manager is online. 00:0000:00000:00000:2012/05/23 13:31:11.75 kernel  Platform TCP network support seems IPv6-aware, IPv4/IPv6 are both enabled. 00:0000:00000:00000:2012/05/23 13:31:11.79 kernel  ASE booted with TCP_NODELAY enabled. 00:0000:00000:00000:2012/05/23 13:31:11.83 kernel  Network and device connection limit is 39985. 00:0000:00000:00000:2012/05/23 13:31:11.83 kernel  ASE - Dynamic Pluggable Component Interface is disabled 00:0000:00000:00000:2012/05/23 13:31:12.41 server  Configuration Error: Configuration file '/work/rel125_test/ASE-15_0/rfisher_125_test.cfg' has an unknown format on line 82. 00:0000:00000:00000:2012/05/23 13:31:12.45 kernel  Adaptive Server is running as process id 28749. 00:0000:00000:00000:2012/05/23 13:31:14.06 server  Number of blocks left for proc headers: 6920. 00:0000:00000:00000:2012/05/23 13:31:14.23 server  Proc header memory allocated 1384 pages for each per engine cache 00:0000:00000:00000:2012/05/23 13:31:14.56 kernel  Using value of 'number of engines at startup' (1) for size of syb_default_pool. 00:0000:00000:00000:2012/05/23 13:31:14.66 kernel  Create Thread Pool 4, "syb_aio_pool", type="Run To Completion", with 0 threads 00:0000:00000:00000:2012/05/23 13:31:14.69 kernel  Create Thread Pool 3, "syb_blocking_pool", type="Run To Completion", with 4 threads 00:0000:00000:00000:2012/05/23 13:31:14.94 kernel  Create Thread Pool 2, "syb_system_pool", type="Run To Completion", with 1 threads 00:0000:00000:00000:2012/05/23 13:31:14.94 kernel  Create Thread Pool 1, "syb_default_pool", type="Engine (Multiplexed)", with 1 threads 00:0016:00000:00000:2012/05/23 13:31:20.55 kernel  I/O controller 2 (NetController) is running as task 3876224 on thread 16 (LWP 32). 00:0000:00000:00000:2012/05/23 13:31:20.58 kernel  Enabling Sun Kernel asynchronous disk I/O strategy. ....removed 0:0006:00000:00001:2012/05/23 13:32:49.54 server  Database 'sybsystemprocs' is now online. 00:0006:00000:00007:2012/05/23 13:32:52.17 kernel  network name rfisher-sun, interface IPv4, address 10.168.131.19, type tcp, port 12500, filter NONE 00:0006:00000:00001:2012/05/23 13:32:52.33 server  Recovery complete. 00:0006:00000:00001:2012/05/23 13:32:52.46 server  ASE's default unicode sort order is 'binary'. 00:0006:00000:00001:2012/05/23 13:32:52.50 server  ASE's default sort order is: 00:0006:00000:00001:2012/05/23 13:32:52.50 server       'bin_iso_1' (ID = 50) 00:0006:00000:00001:2012/05/23 13:32:52.50 server  on top of default character set: 00:0006:00000:00001:2012/05/23 13:32:52.50 server       'iso_1' (ID = 1). 00:0006:00000:00001:2012/05/23 13:32:52.50 server  WARNING: *************************** 00:0006:00000:00001:2012/05/23 13:32:52.50 server  ASE booted against master device for different release. This message is to be expected during an upgrade. ASE version 15.7.0.0, Master device version 12.5.0.0 00:0006:00000:00001:2012/05/23 13:32:52.50 server  WARNING: *************************** 00:0006:00000:00001:2012/05/23 13:32:52.52 server  Master device size: 30 megabytes, or 15360 virtual pages. (A virtual page is 2048 bytes.) 00:0006:00000:00001:2012/05/23 13:32:52.59 kernel  Warning: Cannot set console to nonblocking mode, switching to blocking mode. 00:0006:00000:00001:2012/05/23 13:32:52.62 kernel  Console logging is disabled. This is controlled via the 'enable console logging' configuration parameter. 

In order for your database to be done upgrading you now have to run the following:

   * Run the upgrade utility to finish upgrading the database. Located in /sybase/ASE-15_0/upgrade: ./upgrade -Ppassword -Sservername  * Have you ever increased the default size of model DB, if not you will get the following: Database 'model': beginning upgrade step [ID   246]: clear unused columns (table sysindexes) Database 'model': beginning upgrade step [ID   248]: update system catalog protection data Database 'model': beginning upgrade step [ID  1502]: executing SQL statement ("if exists (select 1 from sysobjects...") Database 'model': beginning upgrade step [ID  1503]: executing SQL statement ("create view sysquerymetrics (uid, g...") Hit the last chance threshold on database 'model' for log segment during upgrade. Not spawning threshold action procedure. The transaction log in database model is almost full.  Your transaction is being suspended until space is made available in the log.  * From another session alter the model database by 1MB, increasing to 3MB. Then the process will continue.  * This time, I wasn't fast enough to clear the log when it filled on sybsystemprocs, so the upgrade completed the rest of the task, then reported an error Database 'sybsystemprocs': beginning upgrade step [ID    13]: alter table (table systabstats) Database 'sybsystemprocs': beginning upgrade step [ID    26]: alter table (table sysprocedures) Hit a threshold on database 'sybsystemprocs' for Invalid pointer param number 3, pointer value 0x5400434c45415245 segment during upgrade. Not spawning threshold action procedure. ***     Adaptive Server message 1105, state 5, severity 17: ***     Can't allocate space for object 'syslogs' in database 'sybsystemprocs' 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. ***     DB-LIBRARY error:  20018 ***     General server error: Check messages from the server. ***     Error 10: Command failed: "online database sybsystemprocs" ***     Upgrade will continue. ....removed to bottom of the log Upgrade to Adaptive Server 15.7.0.0 is complete. ***     The upgrade process encountered 1 error. ***     Evaluate the error and correct problems as necessary.  After ***     correcting problems, you can run this utility again to retry.  * I added a new 50MB device for sybsystemprocs since mine was already full, then ran the upgrade process again: Adding configuration variables to sysattributes. Updating sysconfigures and creating new file. Upgrade to Adaptive Server 15.7.0.0 is complete. Upgrade completed with no errors.  * recycle ASE to clear all the memory structures  * Run these scripts installmaster, installmodel,installdbccdb and possibly others depending on what features you use...  * Now that the upgrade is complete you will no longer report that master database was from and older version: 00:0006:00000:00001:2012/05/24 08:49:36.30 server  Checking external objects. 00:0006:00000:00001:2012/05/24 08:49:36.41 server  The transaction log in the database 'sybsystemprocs' will use I/O size of 2 Kb. 00:0006:00000:00001:2012/05/24 08:49:36.41 server  Database 'sybsystemprocs' is now online. 00:0006:00000:00008:2012/05/24 08:49:36.70 kernel  network name rfisher-sun, interface IPv4, address 10.168.131.19, type tcp, port 12500, filter NONE 00:0006:00000:00001:2012/05/24 08:49:36.72 server  Recovery complete. 00:0006:00000:00001:2012/05/24 08:49:36.75 server  ASE's default unicode sort order is 'binary'. 00:0006:00000:00001:2012/05/24 08:49:36.79 server  ASE's default sort order is: 00:0006:00000:00001:2012/05/24 08:49:36.79 server       'bin_iso_1' (ID = 50) 00:0006:00000:00001:2012/05/24 08:49:36.79 server  on top of default character set: 00:0006:00000:00001:2012/05/24 08:49:36.79 server       'iso_1' (ID = 1). 00:0006:00000:00001:2012/05/24 08:49:36.79 server  Master device size: 30 megabytes, or 15360 virtual pages. (A virtual page is 2048 bytes.) 00:0006:00000:00001:2012/05/24 08:49:36.83 kernel  Warning: Cannot set console to nonblocking mode, switching to blocking mode. 

2. Dump / Load problems with 12.5.4 #10 to 15.7 #1

Problems which are commonly due to activity in the source database when dump file was generated. To work around this, the following steps will help to clear most of these up:

   * Quiesce the ASE 12.5 source database or run after hours with as little activity as possible. * dump tran dbname with truncate_only * checkpoint all * Issue dump database again * Try to load to 15.7 again 

With this method it implies you already built and ASE 15.7 to load to. Be sure that you have updated the configurations parameters to at
or higher values than the current ASE version you are dumping from. Just running installmaster script, and this was logged based on server defaults:

     00:0006:00000:00022:2012/03/20 08:40:36.71 server  The configuration option 'allow updates to system tables' has been changed by 'sa' from '0' to '1'. 00:0006:00000:00022:2012/03/20 08:56:38.67 server  Increase the config parameter 'number of open objects' to avoid descriptor reuse. Reuse may result in performance degradation. 

Check for cross platform dump/loads. Be sure the following have been ran if you are loading a cross platform database dump:

   * sp_post_xpload * sp_indsuspect 

Here a link to what is considered cross platform this in the documentation guide:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc31644.1570/html/sag2/sag2419.htm

If you still have errors, collect the following:

   * sybdiag -Usa -P -Stestserver * Select @@version from old ASE * Create database DDL * Be sure to save a copy of the dump file in case we need it in house 

KnownCRs

   CR 371289  Adaptive Server does not support cross platform dump and load from one Adaptive Server version 15.0 to another. However, pre-15.0 to 15.0 platform dump and load is supported. CR 685636  Specific to IMDB licensed ASE. Requires 15.7 ESD#2 After upgrade from 12.5.4 to 15.7,status3,status4 of sysdatabases is incorrect for these databases. Here is the list of the platforms impacted: hpia64,ibmaix64,ibmlinux,linuxamd64,sunsparc64 

3. Sybmigrate Utility or BCP

Using Sybmigrate or BCP is a great method for taking advantage of using larger page sizes on your new cleanly built server.
The default page size changed after ASE 15.0 to 4K page size, this matches the default page size of most OS on the market.
These methods allow you to have freshly build databases. If you are planning on using the Sybmigrate utility to migrate from ASE 12.5.4 #10 to ASE 15.7 #1.
Be sure you are using the version of Sybmigrate that comes with the version you are migrating to.

Taking time to review the online documentation to see what Sybmigrate does and does not migrate for you is very important.

   * This link shows what Sybmigrate does do: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc30191.1570/html/utilityguide/utilityguide184.htm * Here is the link to what Sybmigrate won’t do: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc30191.1570/html/utilityguide/utilityguide185.htm

Before you begin sybmigrate requires:

   * JRE 1.4, jConnect for JDBC 6.0, ddlgen components, and Component Integration Services in the source Adaptive Server. * Server-to-server connections, two Adaptive Servers must be running. * Create all of your databases, devices, and segments on the target Adaptive Server. Our ddlgen utility will help you to extract these and run them on target. * Server and cache configurations must also be already installed on the target Adaptive Server. * All user defined data types will need to be dropped prior to using this method. * Keep in mind you will still need to drop and re-create old procedures and triggers to take advantage of the new optimizer changes. 

Here is an over view and example of the behavior you will see:

   * Add the interface entry of each server into each other. * Build a fresh target ASE. * Create your devices and databases. Be sure to use the ddlgen or defncopy to the source server, examples: o ddlgen -Usa -Psybase -Srfisher_125 -TDB * On target, configure memory and cache since default will not be high enough for good performance. o ddlgen -Ulogin -Ppassword -Sserver:port -TC -N% * The following is outputs based on GUI mode. It was very smooth. Has a progress bar to show time estimates. ./sybmigrate –m setup o Choose the source database, the ASE you are migrating from o Choose target, allows you to put in separate passwords. Even lets you set a new password if you like. o The sybmigrate database is built for you as well as a workdb. For testing I chose defaults for all. The processes failed due to settings not being high enough: Adaptive Server Enterprise/15.7.0/EBF 19805 SMP ESD#01 /P/x86_64/Enterprise Linux/aseasap/2918/64-bit/FBO/Wed Feb 2012/05/08 12:09:22.739|IDENTIFY_SESSION|WARNING|Attention: The target server is configured with a lower value than that of the source server for the config parameters 'number of open databases'. 2012/05/08 12:12:14.662|IDENTIFY_SESSION|WARNING|Attention: The target server is configured with a lower value than that of the source server for the config parameters 'number of open databases'. 2012/05/08 12:12:15.448|IDENTIFY_SESSION|WARNING|Attention: The target server does not have all the user defined caches configured as on the source server. If there are user objects bound to these caches on the source then the bindings will not be migrated unless these caches are configured on the target server. Missing caches: 'dbname_syslogs_cache, tempdb_cache'. 2012/05/08 12:35:19.698|TASK_REPOS_WRITE|WARNING|No objects of type 'Default' exist in the source database for path 'MSA_source --> MSA_source'. 2012/05/08 12:35:20.481|TASK_REPOS_WRITE|WARNING|No objects of type 'Rule' exist in the source database for path 'MSA_source --> MSA_source'. 2012/05/08 12:35:20.856|TASK_REPOS_WRITE|WARNING|No objects of type 'User Defined Type' exist in the source database for path 'MSA_source --> MSA_source'. 2012/05/08 12:35:31.091|TASK_REPOS_WRITE|WARNING|No objects of type 'Referential Constraint' exist in the source database for path 'MSA_source --> MSA_source'. 2012/05/08 12:35:31.931|TASK_REPOS_WRITE|WARNING|No objects of type 'View' exist in the source database for path 'MSA_source --> MSA_source'. 2012/05/08 12:35:33.473|TASK_REPOS_WRITE|WARNING|No objects of type 'Logical Keys' exist in the source database for path 'MSA_source --> MSA_source'. 2012/05/08 12:35:33.921|TASK_REPOS_WRITE|WARNING|No objects of type 'Trigger' exist in the source database for path 'MSA_source --> MSA_source'. 2012/05/08 12:35:33.921|TASK_REPOS_WRITE||Save selection to the repository database. 2012/05/08 12:35:34.566|TASK_REPOS_WRITE||Saved 0 of 32 tasks to the repository database. 2012/05/08 12:35:39.686|TASK_REPOS_WRITE||Saved 32 of 32 tasks to the repository database. 2012/05/08 12:35:39.687|TASK_REPOS_WRITE||Validate the migration selection for path 'MSA_source --> MSA_source'. 2012/05/08 12:35:51.973|EXECUTE_MIG_TASK|WARNING|Attention: Configuration check failed for migration of path 'MSA_source --> MSA_source'. The config parameter 'number of worker processes' should be configured to a minimum value '3' on the source server.  Once the settings have been adjusted I start it again and it runs to completion. All data and objects appear to have migrated. Next step is to validate all the data and objects have been brought over. 2012/05/08 13:07:50.839|TASK_REPOS_WRITE||Save selection to the repository database. 2012/05/08 13:07:51.605|TASK_REPOS_WRITE||Saved 0 of 30 tasks to the repository database. 2012/05/08 13:08:05.725|TASK_REPOS_WRITE||Saved 30 of 30 tasks to the repository database. 2012/05/08 13:08:05.725|TASK_REPOS_WRITE||Validate the migration selection for path 'MSA_source --> MSA_source'. 2012/05/08 13:08:12.021|EXECUTE_MIG_TASK||Start Validation for path 'MSA_source --> MSA_source'. 2012/05/08 13:08:12.022|TASK (1:3)||Validation of 'Table' for path 'MSA_source --> MSA_source' complete. 2012/05/08 13:08:12.022|EXECUTE_MIG_TASK||Started 5 threads. 2012/05/08 13:08:12.022|TASK (1:3)|DEBUG|U:5 Global.DDLGenTime 0 2012/05/08 13:08:12.022|TASK (1:3)||Validate 8 'Stored Procedure' tasks for path 'MSA_source --> MSA_source'. 2012/05/08 13:08:12.023|TASK (1:4)||Validation of 'Stored Procedure' for path 'MSA_source --> MSA_source' complete. 2012/05/08 13:08:12.023|TASK (1:4)|DEBUG|P:5 Global.DDLGenTime 0 2012/05/08 13:08:12.023|TASK (1:4)||Validate 6 'Index, Index Constraint' tasks for path 'MSA_source --> MSA_source'. 2012/05/08 13:08:15.006|TASK (1:2)||Validation of 'Index, Index Constraint' for path 'MSA_source --> MSA_source' complete. 2012/05/08 13:08:15.006|TASK (1:2)|DEBUG|I:5 Global.DDLGenTime 0 2012/05/08 13:08:15.006|TASK (1:2)||Validate 8 'User Table Data' tasks for path 'MSA_source --> MSA_source'. 2012/05/08 13:08:24.899|EXECUTE_MIG_TASK||Validation of 'User Table Data' for path 'MSA_source --> MSA_source' complete. 2012/05/08 13:08:24.899|EXECUTE_MIG_TASK|DEBUG|DAT:3 Global.DDLGenTime 0 2012/05/08 13:08:25.652|EXECUTE_MIG_TASK||Validation for path 'MSA_source --> MSA_source' complete. 2012/05/08 13:09:17.584|AWT-EventQueue-0|DEBUG|getMigrationSession: Auto_Model……. 

KnownCRs

   CR 695031  Aborts for lack of env SYBASE_JRE6. Fixed in ASE 15.5 #5 and ASE 15.7 #1 CR 676759  The version string output is incorrect. Fixed in ASE 15.7 #1 CR 670074  High spinlock contention on Resource- > rdbts_spin and Dbtable- > dbt_seqspin when running concurrent bcp-in jobs against a partitioned table. CR 678278  BCP into a range partitioned DOL table can result in excessive unused space. CR 663606  BCP-in performance on a large table having many indices is significantly worse than the performance achieved using 12.5.4 

>>>>>>Look for new sybmigrateCRsthat Shinde hit last week Java and recently

New trace flags

   o 4817 Enable fast logged bcp. o 4818 Disable sending COL2_INROW_LOB to bcp client for in row LOBs, so off row. Expected to be used when a bcp-client enabled with support for in-row LOBs (>= 15.7) bcps-in data to a table containing in-row LOB cols (ASE >=15.7) but for some reason wishes to trasmit and store the data as off-row LOBs. 

4. Upgrade using sqlupgrade(res)

Is this permitted? Yes, however you may run into a few problems. Here are the overview steps and example:

   * From your newly installed ASE 15.7 #1 or higher directory, make sure you have sourced your variables. * Then move to your bin directory and update your resource file (.rs) file. Samples of these are found in $SYBASE/ASE-15_0/bin. rfisher-sun2> vi sqlupgrade.adaptive_server.rs sybinit.release_directory: /work/rel125 sybinit.product: sqlsrv sqlsrv.server_name: rf_sun2_125 sqlsrv.new_config: no sqlsrv.sa_login: USE_DEFAULT sqlsrv.sa_password: USE_DEFAULT sqlsrv.do_reserved_word_check: yes sqlsrv.do_upgrade: yes 

Once done, if you try to run the file you will be asked to set the following:

     Please set the following environment variables and restart. ----------------------------------------------------------- (a) Set OLDSYBASE to your pre 12.5 release directory. (b) Set your OLDSYBASE_ASE to your ASE component version ONLY if you are upgrading from ASE 12.0 version and above. For e.g., set OLDSYBASE_ASE to ASE-12_0 if you are upgrading from ASE 12.0 If you are upgrading from 11.9.X and below, set OLDSYBASE_ASE to NULL value rfisher-sun2> setenv OLDSYBASE /work/rel125 rfisher-sun2> setenv OLDSYBASE_ASE ASE-12_5 

Try to run this again:

        rfisher-sun2> ./sqlupgraderes -r sqlupgrade.adaptive_server.rs Copying interfaces file entry to new directory... The interfaces file entry has been copied to the new directory. Running preupgrade program... Preupgrade Binary Version: Pre-Upgrade/15.7.0/EBF 19809 SMP ESD#01 /P/Solaris AMD64/OS 5.10/aseasap/2918/64-bit/OPT/Wed Feb  8 04:18:07 2012. Preupgrade Version: 15.7. Starting preupgrade of Adaptive Server. Checking the server's configuration against new requirements. ***ERROR: configuration parameter 'procedure cache size' is too low for upgrade. It is 3271, but must be at least 12000. **ERROR: configuration parameter 'number of aux scan descriptors' is too low for upgrade. It is 200, but must be at least 256. ***ERROR: configuration parameter 'stack size' is too low for upgrade. It is 73728, but must be at least 102400. ***ERROR: configuration parameter 'number of locks' is too low for upgrade. It is 5000, but must be at least 10000. Note: configuration parameter 'enable unicode conversions' is below the default (1). It is 0. (The minimum is 0, maximum is 2.) Note: configuration parameter 'default network packet size' is below the default (2048). It is 512. (The minimum is 512, maximum is 65024.) Note: configuration parameter 'max network packet size' is below the default (2048). It is 512. (The minimum is 512, maximum is 65024.) Note: configuration parameter 'permission cache entries' is below the default (64). It is 15. (The minimum is 1, maximum is 2147483647.) Note: configuration parameter 'histogram tuning factor' is below the default (20). It is 1. (The minimum is 1, maximum is 100.) Note: configuration parameter 'dtm detach timeout period' is below the default (5). It is 0. (The minimum is 0, maximum is 2147483647.) ...Checked 214 configuration parameters; found 4 errors, 6 warnings. Checking the server's max memory configuration against new requirements. Database 'master' is online. -------------------- these lines have been removed Checking space in all databases. ***ERROR: alter database master to add at least 15 MB of data space. ***ERROR: alter database tempdb to add at least 3 MB of data space. ***ERROR: alter database model to add at least 2 MB of data space. ***ERROR: alter database pubs2 to add at least 3 MB of data space. ***ERROR: alter database pubs3 to add at least 4 MB of data space. Database sybsystemdb has enough space for upgrade. ***ERROR: alter database sybsystemprocs to add at least 108 MB of data space. ***ERROR: There is insufficient space in 6 databases for upgrade to 15.7. This can be fixed by altering the databases listed above and restarting the upgrade. 

Log into the OLD ASE, run the configuration changes suggested above. Alter the listed databases to the sizes needed. Be sure to recycle the ASE as needed. Then start the upgrade process again.

Here is a link to the documentation on upgrading interactively with sqlupgrade, in case you need more in-depth details:

   http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc01165.1550/doc/html/san1254526895723.html

KnownCRs

   CR 621167  OLDSYBASE is not a valid SYBASE path Aka sqlupgrade fails to upgrade from 12.5.x to 15.5. Fixed in ASE 15.5 ESD #1 CR 696227  In-place upgrade from older versions of ASE to ASE 15.7 may fail because the new ASE fails to start with error "The configured value '4096' for parameter 'kernel resource memory' is too low.". This occurs when ASE is configured with large "number of user connections" and "open indexes" CR 695614  If the old RUN_<server> file has multiple -T arguments, sqlupgrade[res] only copies the last -T argument to the new RUN_<server> file. The work around is to manually add the missing trace flag arguments in new RUN_<server> file after the upgrade. Be sure the trace flags you do add back are pertinent to the new version. Most trace flags are no longer needed after upgrades like this. Best to open a case about your trace flags to verify they are still needed for 15.7. CR 688148  Sybmigrate setup migrate_server_data fails on duplicate row in sysusers, syslogins, or sysroles, but not everything is rolled back, causing customers to need help cleaning up the target so they can migrate database data in the migrate mode. Work around is to manually delete from system tables on target and reboot target ASE. This was reported in 15.5 ESD #4 and targeted to be fixed in 15.7 ESD#2. CR 648018  A 257 error, "Implicit conversion from datatype 'INT' to 'VARCHAR' is not allowed", may be raised when migrating a pre-15.0.2 server to ASE 15.0.2 or later versions. Fixed in 15.5 ESD #4 and in 15.7 ESD#2. 

Finally, here is the link to the recently updated ASE 15 Migration webpage (which includes useful checklists of items to do prior to upgrading):

   http://www.sybase.com/detail?id=1058962
Viewing all 49 articles
Browse latest View live


Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>