Administration and Performance Guide
Adaptive Server® IQ
12.4.2
Contents
About This Book........................................................................................................................ xvii
CHAPTER 1
Overview of Adaptive Server IQ System Administration ............ 1
Introduction to Adaptive Server IQ................................................... 1
System administration tasks............................................................. 2
Security overview ............................................................................. 3
Types of users........................................................................... 4
Granting permissions ................................................................ 4
Tools for system administration........................................................ 4
The database server ........................................................................ 5
Catalogs and IQ ............................................................................... 5
The IQ Store.............................................................................. 6
The Temporary Store ................................................................ 6
The Catalog Store ..................................................................... 6
Concurrent operations...................................................................... 7
Stored procedures............................................................................ 7
Adaptive Server IQ stored procedures...................................... 8
Adaptive Server Enterprise system and catalog procedures .... 9
Catalog stored procedures ...................................................... 11
System tables and views................................................................ 12
Commands and Functions ............................................................. 16
Types of SQL statements........................................................ 16
Functions................................................................................. 16
Message logging............................................................................ 17
The utility database........................................................................ 18
Compatibility with earlier versions.................................................. 19
CHAPTER 2
Running Adaptive Server IQ ........................................................ 21
Starting the database server .......................................................... 21
Server command lines ................................................................... 22
Starting the server on UNIX ........................................................... 23
Using the startup utility............................................................ 24
Typing the server startup command........................................ 25
iii
Contents
Starting the server on Windows NT ............................................... 26
Starting the server from the NT Start menu ............................ 26
Typing the server startup command........................................ 26
Running the server outside the current session...................... 27
Using command-line switches........................................................ 28
Naming the server and databases .......................................... 31
Controlling performance from the command line .................... 33
Controlling permissions from the command line ..................... 36
Setting a maximum Catalog page size.................................... 37
Setting up a client/server environment.................................... 38
Starting a server in forced recovery mode .............................. 40
Starting a server from DBISQL................................................ 40
Starting multiple servers or clients on the same machine....... 41
Monitoring server activity ............................................................... 41
Stopping the database server ........................................................ 43
Who can stop the server? ....................................................... 45
Shutting down operating system sessions .............................. 45
Starting and stopping databases.................................................... 46
Starting the asiqdemo database .................................................... 47
Starting and stopping Sybase Central............................................ 48
Connecting a plug-in ............................................................... 49
Stopping Sybase Central......................................................... 50
Introduction to connections ............................................................ 50
How connections are established............................................ 51
Connection parameters specify connections........................... 52
Connection parameters are passed as connection strings ..... 52
Connection parameters are passed as connection strings ..... 53
Simple connection examples ......................................................... 53
Connecting to a database from DBISQL................................. 54
Connecting to other databases from DBISQL......................... 56
Connecting to an embedded database ................................... 57
Connecting using a data source.............................................. 59
Connecting to a server on a network....................................... 60
Using default connection parameters...................................... 61
Connecting from Adaptive Server IQ utilities........................... 62
Working with ODBC data sources.................................................. 63
DSNs and FILEDSNs.............................................................. 64
Creating and editing ODBC data sources...................................... 65
Configuring ODBC data sources............................................. 67
Creating a File Data Source........................................................... 71
Using ODBC data sources on UNIX .............................................. 72
Connection parameters.................................................................. 73
Connection parameter priorities .............................................. 76
How Adaptive Server IQ makes connections................................. 77
iv
Contents
Steps in establishing a connection.......................................... 77
Locating the interface library ................................................... 78
Assembling a list of connection parameters............................ 79
Locating a server..................................................................... 81
Locating the database............................................................. 83
Server name caching for faster connections........................... 84
Interactive SQL connections ................................................... 85
Connecting from other databases.................................................. 85
Using an integrated login ............................................................... 86
Using integrated logins............................................................ 87
Security concerns: unrestricted database access................... 90
Setting temporary public options for added security ............... 91
Network aspects of integrated logins ...................................... 92
Creating a default integrated login user .................................. 92
Troubleshooting startup, shutdown, and connections.................... 93
What to do if you can’t start Adaptive Server IQ...................... 93
What to do if you can’t connect to a database......................... 95
Stopping a database server in an emergency (UNIX)............. 96
Resolving problems with your DBISQL window on UNIX........ 96
CHAPTER 3
Working with Database Objects .................................................. 99
Building Your Adaptive Server IQ Databases ................................ 99
Designing your database......................................................... 99
Tools for working with database objects ............................... 100
A step-by-step overview of database setup .......................... 101
Extending data definition privileges....................................... 103
Selecting a device type ......................................................... 104
Allocating space for databases ............................................. 104
Working with databases............................................................... 106
Creating a database.............................................................. 107
Adding dbspaces................................................................... 114
Dropping dbspaces ............................................................... 116
Dropping a database............................................................. 118
Working with tables...................................................................... 118
Creating tables ...................................................................... 118
Altering tables........................................................................ 123
Dropping tables ..................................................................... 124
Creating primary and foreign keys ........................................ 125
Table information in the system tables.................................. 127
Working with views....................................................................... 127
Creating views....................................................................... 128
Using views ........................................................................... 129
Modifying views..................................................................... 130
Permissions on views............................................................ 130
v
Contents
Deleting views ....................................................................... 131
Views in the system tables.................................................... 131
Working with indexes ................................................................... 132
Introduction to indexes .......................................................... 132
Creating indexes ................................................................... 133
Indexes in the system tables................................................. 133
Removing indexes................................................................. 134
CHAPTER 4
Adaptive Server IQ Indexes ........................................................ 135
Overview of indexes..................................................................... 135
Adaptive Server IQ index types............................................. 135
Benefits over traditional indexes ........................................... 137
Creating Adaptive Server IQ indexes........................................... 138
The CREATE INDEX statement............................................ 138
Creating an index with Sybase Central ................................. 139
Creating indexes concurrently............................................... 139
Choosing an index type................................................................ 140
Number of unique values in the index................................... 141
Types of queries.................................................................... 141
Indexing criteria: disk space usage ....................................... 143
Data types in the index.......................................................... 143
Combining index types.......................................................... 144
Adaptive Server IQ index types.................................................... 144
Default column index............................................................. 145
The Low_Fast (LF) index type............................................... 145
The High_Group (HG) index type.......................................... 146
The High_Non_Group (HNG) index type .............................. 148
Optimizing performance for ad hoc joins............................... 149
Selecting an index................................................................. 150
Adding column indexes after inserting data ................................. 151
Using join indexes........................................................................ 151
Join indexes improve query performance ............................. 151
How join indexes are used for queries .................................. 152
Relationships in join indexes................................................. 152
When a join becomes ad hoc................................................ 152
Join hierarchy overview......................................................... 152
Columns in the join index ...................................................... 153
The join hierarchy in query resolution ................................... 154
Multiple table joins and performance..................................... 156
Steps in creating a join index ................................................ 157
Synchronizing join indexes.................................................... 158
Defining join relationships between tables ............................ 159
Issuing the CREATE JOIN INDEX statement ....................... 162
Creating a join index in Sybase Central ................................ 164
vi
Contents
Types of join hierarchies ....................................................... 164
Modifying tables included in a join index............................... 167
Inserting or deleting from tables in a join index..................... 168
Table versioning controls access to join indexes .................. 169
Estimating the size of a join index................................................ 169
CHAPTER 5
Moving Data In and Out of Databases....................................... 171
Import and export overview.......................................................... 171
Import and export methods ................................................... 171
Input and output data formats ............................................... 172
Permissions for modifying data ............................................. 173
Scheduling database updates............................................... 173
Exporting data from a database................................................... 174
Using output redirection ........................................................ 174
NULL value output................................................................. 175
Bulk loading data using the LOAD TABLE statement.................. 175
Interpreting notification messages......................................... 187
Memory message.................................................................. 187
Main IQ Store blocks messages............................................ 188
IQ Temporary Store blocks message.................................... 188
Main buffer cache activity message ...................................... 188
Temporary buffer cache message......................................... 189
Controlling message logging................................................. 189
Using the INSERT statement....................................................... 190
Inserting specified values row by row .......................................... 190
Inserting selected rows from the database .................................. 191
Inserting from a different database........................................ 192
Importing data interactively .......................................................... 195
Inserting into tables of a join index............................................... 195
Inserting into primary and foreign key columns............................ 196
Partial-width insertions................................................................. 197
Partial-width insertion rules ................................................... 198
Converting data on insertion ........................................................ 202
Inserting data from pre-Version 12 Adaptive Server IQ ........ 204
Load conversion options ....................................................... 204
Column width issues ............................................................. 208
Using the ASCII conversion option........................................ 208
The DATE Option.................................................................. 210
The DATETIME conversion option........................................ 212
Working With NULLS ............................................................ 215
Other factors affecting the display of data.................................... 216
Matching Adaptive Server Enterprise data types......................... 217
Unsupported Adaptive Server Enterprise data types ............ 217
Adaptive Server Enterprise data type equivalents ................ 218
vii
Contents
Handling conversion errors on data import ........................... 220
Tuning bulk loading of data.......................................................... 221
Improving load performance during database definition ....... 221
Setting server startup options................................................ 222
Adjusting your environment at load time ............................... 222
Reducing Main IQ Store space use in incremental loads...... 223
Changing data using UPDATE..................................................... 224
Deleting data................................................................................ 225
Importing data by replication........................................................ 226
CHAPTER 6
Using Procedures and Batches.................................................. 229
Overview of procedures ............................................................... 229
Benefits of procedures ................................................................. 230
Introduction to procedures ........................................................... 230
Creating procedures.............................................................. 231
Calling procedures ................................................................ 232
Dropping procedures............................................................. 232
Permissions to execute procedures ...................................... 233
Returning procedure results in parameters........................... 233
Returning procedure results in result sets............................. 234
Introduction to user-defined functions.......................................... 235
Creating user-defined functions ............................................ 235
Calling user-defined functions............................................... 236
Dropping user-defined functions ........................................... 237
Permissions to execute user-defined functions..................... 237
Introduction to batches................................................................. 238
Control statements....................................................................... 239
Using compound statements................................................. 240
Declarations in compound statements .................................. 241
Atomic compound statements............................................... 242
The structure of procedures......................................................... 243
SQL statements allowed in procedures................................. 243
Declaring parameters for procedures.................................... 244
Passing parameters to procedures ....................................... 245
Passing parameters to functions........................................... 245
Returning results from procedures............................................... 246
Returning a value using the RETURN statement.................. 246
Returning results as procedure parameters.......................... 247
Returning result sets from procedures .................................. 249
Returning multiple result sets from procedures..................... 250
Returning variable result sets from procedures..................... 250
Using cursors in procedures ........................................................ 251
Cursor management overview .............................................. 252
Cursor positioning ................................................................. 252
viii
Contents
Using cursors on SELECT statements in procedures........... 253
Errors and warnings in procedures .............................................. 255
Default error handling in procedures..................................... 256
Error handling with ON EXCEPTION RESUME.................... 258
Default handling of warnings in procedures .......................... 260
Using exception handlers in procedures ............................... 261
Nested compound statements and exception handlers ........ 263
Using the EXECUTE IMMEDIATE statement in procedures ....... 264
Transactions and savepoints in procedures................................. 265
Some tips for writing procedures.................................................. 265
Check if you need to change the command delimiter ........... 265
Remember to delimit statements within your procedure ....... 266
Use fully-qualified names for tables in procedures................ 266
Specifying dates and times in procedures............................. 266
Verifying procedure input arguments .................................... 267
Statements allowed in batches .................................................... 267
Using SELECT statements in batches .................................. 268
Calling external libraries from procedures.................................... 268
Creating procedures and functions with external calls.......... 269
External function declarations ............................................... 270
How parameters are passed to the external function............ 271
Special considerations when passing character types.......... 272
CHAPTER 7
Ensuring Data Integrity .............................................................. 273
Data integrity overview................................................................. 273
How data can become invalid ............................................... 273
Integrity constraints belong in the database.......................... 274
How database contents get changed.................................... 275
Data integrity tools................................................................. 275
SQL statements for implementing integrity constraints......... 276
Using table and column constraints ............................................. 277
Using UNIQUE constraints on columns or tables.................. 277
Using IQ UNIQUE constraint on columns ............................. 278
Using CHECK conditions on columns................................... 278
Column CHECK conditions from user-defined data types .... 279
Working with column constraints in Sybase Central ............. 280
Using CHECK conditions on tables....................................... 280
Modifying and deleting CHECK conditions............................ 280
Declaring entity and referential integrity....................................... 281
Enforcing entity integrity........................................................ 282
If a client application breaches entity integrity....................... 282
Primary keys enforce entity integrity ..................................... 283
Declaring referential integrity................................................. 283
How you define foreign keys ................................................. 284
ix
Contents
Referential integrity is unenforced......................................... 284
Integrity rules in the system tables............................................... 285
CHAPTER 8
Transactions and Versioning ..................................................... 287
Overview of transactions and versioning ..................................... 287
Introduction to transactions ................................................... 287
Introduction to concurrency................................................... 290
Introduction to versioning ...................................................... 291
Versioning prevents inconsistencies............................................ 299
How locking works ....................................................................... 299
Locks for DML operations ..................................................... 299
Locks for DDL operations...................................................... 300
Primary keys and locking ...................................................... 302
Isolation levels.............................................................................. 302
Checkpoints, savepoints, and transaction rollback ...................... 303
Checkpoints........................................................................... 304
Savepoints within transactions.............................................. 305
Rolling back transactions ...................................................... 307
System recovery.................................................................... 307
How transaction information aids recovery ........................... 308
Performance implications............................................................. 309
Overlapping versions and deletions ...................................... 310
Cursors in transactions ................................................................ 311
Cursors and versioning ......................................................... 312
Cursor sensitivity................................................................... 312
Cursor scrolling ..................................................................... 312
Hold cursors .......................................................................... 313
Positioned operations............................................................ 313
Cursor command syntax and examples................................ 313
Controlling message logging for cursors............................... 313
CHAPTER 9
International Languages and Character Sets ........................... 315
Introduction to international languages and character sets.......... 315
Adaptive Server IQ international features ............................. 315
Using the default collation ..................................................... 316
Character set questions and answers................................... 316
Understanding character sets in software.................................... 317
Pieces in the character set puzzle......................................... 317
Language issues in client/server computing ......................... 318
Code pages in Windows and Windows NT ........................... 319
Multibyte character sets ........................................................ 321
Sorting characters using collations........................................ 322
International aspects of case sensitivity................................ 322
x
Contents
Understanding locales.................................................................. 323
Introduction to locales ........................................................... 323
Understanding the locale language....................................... 324
Understanding the locale character set................................. 325
Understanding the locale collation label................................ 328
Setting the SQLLOCALE environment variable .................... 328
Understanding collations.............................................................. 328
Displaying collations.............................................................. 328
Supplied collations ................................................................ 329
ANSI or OEM?....................................................................... 331
Notes on ANSI collations....................................................... 332
Notes on OEM collations....................................................... 334
Using multibyte collations...................................................... 336
Understanding character set translation ...................................... 336
Character translation for database messages....................... 336
Connection strings and character sets.................................. 338
Avoiding character-set translation......................................... 338
Collation internals......................................................................... 339
Comment lines ...................................................................... 340
The title line........................................................................... 340
The collation sequence section............................................. 341
The Encodings section.......................................................... 342
The Properties section .......................................................... 343
International language and character set tasks ........................... 344
Finding the default collation................................................... 344
Configuring your character set environment ......................... 344
Determining locale information.............................................. 345
Setting locales....................................................................... 346
Creating a database with a named collation ......................... 346
Starting a database server using character set translation ... 348
Using ODBC code page translation ...................................... 348
Character set translation for Sybase Central and DBISQL ... 349
Creating a custom collation................................................... 349
Creating a database with a custom collation......................... 351
Compatibility issues ..................................................................... 351
Performance issues ..................................................................... 352
CHAPTER 10
Managing User IDs and Permissions........................................ 353
An overview of database permissions.......................................... 353
DBA authority overview......................................................... 354
RESOURCE authority overview............................................ 355
Ownership permissions overview.......................................... 355
Table and views permissions overview................................. 355
Group permissions overview................................................. 356
xi
Contents
Managing individual user IDs and permissions............................ 356
Creating new users ............................................................... 357
Changing a password............................................................ 357
Granting DBA and resource authority ................................... 358
Granting permissions on tables and views............................ 359
Granting users the right to grant permissions ....................... 360
Granting permissions on procedures .................................... 361
Revoking user permissions ................................................... 362
Managing groups ......................................................................... 363
Creating groups..................................................................... 363
Granting group membership to users.................................... 364
Permissions of groups........................................................... 365
Referring to tables owned by groups..................................... 365
Groups without passwords.................................................... 366
Special groups....................................................................... 367
Database object names and prefixes........................................... 367
Using views and procedures for extra security ............................ 369
Using views for tailored security............................................ 370
Using procedures for tailored security................................... 371
How user permissions are assessed ........................................... 372
Managing the resources connections use.................................... 372
Users and permissions in the system tables................................ 374
CHAPTER 11
Backup and Data Recovery ........................................................ 377
Backup protects your data ........................................................... 377
Backing up your database............................................................ 378
Types of backups .................................................................. 378
Selecting archive devices...................................................... 380
Preparing for backup............................................................. 381
Concurrency and backups..................................................... 383
The BACKUP statement........................................................ 383
Backup Examples.................................................................. 388
Recovery from errors during backup..................................... 389
After you complete a backup................................................. 390
Performing backups with non-Sybase products.................... 390
Performing system-level backups ................................................ 391
Shutting down the database.................................................. 391
Backing up the right files ....................................................... 392
Restoring from a system-level backup .................................. 392
Validating your database.............................................................. 393
Interpreting results................................................................. 394
Concurrency issues for sp_iqcheckdb................................... 395
Restoring your databases ............................................................ 396
Before you restore................................................................. 396
xii
Contents
The RESTORE statement..................................................... 399
Restoring in the correct order................................................ 403
Renaming the transaction log after you restore .................... 405
Validating the database after you restore.............................. 406
Restore requires exclusive write access ............................... 406
Displaying header information............................................... 407
Recovery from errors during restore ..................................... 408
Using Symbolic Links (UNIX Only)........................................ 408
Unattended backup...................................................................... 409
Getting information about backups and restores ......................... 410
Locating the backup log ........................................................ 410
Content of the backup log ..................................................... 411
Maintaining the backup log.................................................... 412
Viewing the backup log in Sybase Central............................ 412
Recording dbspace names.................................................... 412
Determining your data backup and recovery strategy.................. 413
Scheduling routine backups .................................................. 414
Designating Backup and Restore Responsibilities................ 415
Improving performance for backup and restore .................... 415
CHAPTER 12
Managing System Resources.................................................... 419
Introduction to performance terms ............................................... 419
Designing for performance.......................................................... 419
Overview of memory use ............................................................. 420
Paging increases available memory...................................... 420
Utilities to monitor swapping.................................................. 421
Server memory...................................................................... 421
Managing buffer caches........................................................ 422
Determining the sizes of the buffer caches ........................... 422
Setting buffer cache sizes ..................................................... 427
Specifying page size ............................................................. 429
Saving memory ..................................................................... 431
Optimizing for large numbers of users .................................. 432
Platform-specific memory options ......................................... 434
Other ways to get more memory........................................... 438
The process threading model....................................................... 439
Insufficient threads error........................................................ 440
IQ options for managing thread usage.................................. 440
Balancing I/O................................................................................ 441
Raw I/O (on UNIX operating systems) .................................. 441
Using disk striping ................................................................. 442
Internal striping...................................................................... 443
Using multiple dbspaces ....................................................... 445
Strategic file locations ........................................................... 446
xiii
Contents
Working space for inserting, deleting, and synchronizing ..... 447
Options for tuning resource use................................................... 448
Restricting concurrent queries............................................... 448
Limiting a query’s memory use.............................................. 449
Limiting queries by rows returned ......................................... 449
Forcing cursors to be non-scrolling ....................................... 449
Limiting the number of cursors.............................................. 450
Limiting the number of statements ........................................ 450
Lowering a connection’s priority ............................................ 450
Prefetching cache pages....................................................... 450
Optimizing for typical usage .................................................. 451
Other ways to improve resource use ........................................... 451
Restricting database access ................................................. 451
Disk caching.......................................................................... 451
Using RAM disk..................................................................... 452
Indexing tips................................................................................. 452
Picking the right index type ................................................... 452
Using join indexes ................................................................. 453
Allowing enough disk space for deletions ............................. 453
Managing database size and structure ........................................ 454
Managing the size of your database ..................................... 454
Denormalizing for performance............................................. 454
Denormalization has risks ..................................................... 455
Disadvantages of denormalization ........................................ 455
Performance benefits of denormalization.............................. 455
Deciding to denormalize........................................................ 456
Improving your queries................................................................. 456
Tips for structuring queries.................................................... 456
Planning queries.................................................................... 457
Setting query optimization options ........................................ 458
Network performance................................................................... 459
Improving large data transfers............................................... 459
Isolate heavy network users.................................................. 460
Put small amounts of data in small packets .......................... 461
Put large amounts of data in large packets........................... 462
Process at the server level.................................................... 463
CHAPTER 13
Monitoring and Tuning Performance......................................... 465
Viewing the Adaptive Server IQ environment .............................. 465
Getting information using stored procedures ........................ 465
Monitoring the buffer caches........................................................ 467
Starting the buffer cache monitor .......................................... 467
Stopping the buffer cache monitor ........................................ 472
Examining and saving monitor results................................... 472
xiv
Contents
Examples of monitor results.................................................. 473
Avoiding buffer manager thrashing .............................................. 476
Monitoring paging on Windows NT systems ......................... 477
Monitoring paging on UNIX systems..................................... 477
System utilities to monitor CPU use............................................. 479
CHAPTER 14
Adaptive Server IQ as a Data Server......................................... 481
Client/server interfaces to Adaptive Server IQ............................. 481
Configuring IQ Servers with DSEDIT .................................... 483
Sybase applications and Adaptive Server IQ........................ 488
Open Client applications and Adaptive Server IQ................. 488
Setting up Adaptive Server IQ as an Open Server ...................... 489
System requirements ............................................................ 489
Starting the database server as an Open Server.................. 489
Configuring your database for use with Open Client............. 490
Characteristics of Open Client and jConnect connections........... 491
Servers with multiple databases............................................ 493
Index ........................................................................................................................................... 495
xv
xvi
About This Book
This book, Adaptive Server IQ Administration and Performance Guide,
presents administrative concepts and procedures and performance tuning
recommendations for Sybase Adaptive Server IQ, a high-performance
decision support server designed specifically for data warehouses and data
marts.
Audience
This guide is for system and database administrators or for anyone who
needs to set up or manage Adaptive Server IQ or understand performance
issues. Familiarity with relational database systems and introductory user-
level experience with Adaptive Server IQ is assumed.
How to use this book
The following table shows which chapters fit a particular interest or need.
xvii
Related documents
Table 1: Guide to using this book
To learn how to...
Read this chapter...
Understand the role of an Adaptive
Server IQ administrator
Chapter 1, “Overview of Adaptive
Server IQ System Administration”
Start and stop an IQ database server,
and set up user connections
Chapter 2, “Running Adaptive Server
IQ”
Create an Adaptive Server IQ database Chapter 3, “Working with Database
Objects”
Select Adaptive Server IQ indexes
Load data into your database
Create procedures and batches
Chapter 4, “Adaptive Server IQ
Indexes”
Chapter 5, “Moving Data In and Out
of Databases”
Chapter 6, “Using Procedures and
Batches”
Add users and assign them privileges Chapter 10, “Managing User IDs and
Permissions”
Specify constraints on the data in your Chapter 7, “Ensuring Data Integrity”
tables
Understand how transactions work
Chapter 8, “Transactions and
Versioning”
Set up your database for the language Chapter 9, “International Languages
you work in
and Character Sets”
Back up and restore databases
Chapter 11, “Backup and Data
Recovery”
Tune Adaptive Server IQ for
maximum performance
Chapter 12, “Managing System
Resources”; see also performance
tuning hints for specific features in all
chapters
Monitor and tune performance
Chapter 13, “Monitoring and Tuning
Performance”
Related documents
Documentation for Adaptive Server IQ:
•
Introduction to Adaptive Server IQ
Read and try the hands-on exercises if you are unfamiliar with Adaptive
Server IQ, with the Sybase Central database management tool, or with
Interactive SQL.
xviii
About This Book
•
•
•
•
•
Adaptive Server IQ Reference Manual
Read for a full description of the SQL language, utilities, stored
procedures, data types, and system tables supported by Adaptive Server
IQ.
Adaptive Server IQ Troubleshooting and Error Messages Guide
Read to solve problems, perform system recovery and database repair, and
understand error messages, which are referenced by by SQLCode,
SQLState and message text.
Adaptive Server IQ Installation and Configuration Guide
Read the edition for your platform before and while installing Adaptive
Server IQ, when migrating to a new version of Adaptive Server IQ, or
when configuring Adaptive Server IQ for a particular platform.
Adaptive Server IQ Multiplex User’s Guide
Read if you are using the multiplex feature, which lets you manage a very
large data warehouse consisting of a write server and multiple query
servers.
Adaptive Server IQ Release Bulletin
Read just before or after purchasing Adaptive Server IQ for an overview
of new features. Read for help if you encounter a problem.
Note Because Adaptive Server IQ is an extension of the Adaptive Server
Anywhere product, IQ and Anywhere support many of the same features. The
IQ documentation set refers the reader to Anywhere documentation where
appropriate.
Documentation for Adaptive Server Anywhere:
•
Adaptive Server Anywhere User’s Guide
Intended for all users of Adaptive Server Anywhere, including database
administrators and application developers, this book describes in depth
how to use Adaptive Server Anywhere.
•
Adaptive Server Anywhere Programming Interfaces
Intended for application developers writing programs that directly access
the ODBC, Embedded SQL, or Open Client interfaces, this book describes
how to develop applications for Adaptive Server Anywhere.
xix
Related documents
xx
C H A P T E R
1
Overview of Adaptive Server IQ
System Administration
About this chapter
This chapter provides a brief introduction to Adaptive Server IQ and an
overview of IQ system administration.
Introduction to Adaptive Server IQ
Adaptive Server IQ is a high-performance decision support server
designed specifically for data warehousing. This cross-platform product
runs on Windows NT as well as on Sun Solaris (SPARC), HP 9000/800
HP-UX, IBM RISC System/6000 AIX, Silicon Graphics IRIX, and
Compaq Tru64 systems.
Adaptive Server IQ is part of the Adaptive Server family that includes
Adaptive Server Enterprise for enterprise transaction and mixed
workload environments and Adaptive Server Anywhere, a small
footprint version of Adaptive Server often used for mobile and
occasionally connected computing.
Sybase database
architecture
Sybase database architecture provides a common code base for Adaptive
Server IQ and Adaptive Server Anywhere, with workload optimized data
stores. You use the IQ Store for data warehousing. You can also use
Adaptive Server Anywhere for transaction processing. These products
share a common command syntax and user interface, allowing easier
application development and user access.
1
System administration tasks
Rapid access to many
data sources
Adaptive Server IQ can integrate data from diverse sources—not just IQ
databases, but other databases in the Adaptive Server family, as well as non-
Sybase databases and flat files. You can import this data into your IQ database,
so that you can take advantage of IQ's rapid access capabilities. You can also
query other databases directly, using Adaptive Server IQ's remote data access
capabilities.
Note Some of these capabilities are currently available on Windows NT only.
See your Adaptive Server IQ Installation and Configuration Guide for more
information.
Data warehousing and
Adaptive Server IQ
Data warehouses are collections of data designed to allow business analysts
to analyze information. They are typically distinct from production databases,
to avoid interrupting daily operations. Data warehouses are often used as data
stores on which to build decision support systems (DSS). A decision support
system is a software application designed to allow an organization to analyze
data in order to support business decision making.
All of Adaptive Server IQ's capabilities are designed to facilitate DSS
applications. A unique indexing system speeds data analysis. Query
optimization gives you rapid responses, even when results include thousands
or millions of rows of data. Concurrent data access for multiple query users,
and the ability to update the database without interrupting query processing,
provide the 24–hour, 7–day access that users expect.
Learning more about
Adaptive Server IQ
This book explains how you manage an Adaptive Server IQ system, and gives
pointers for tuning your system for maximum performance. It is intended for
database administrators, and others who need to understand performance
issues. You may also want to refer to the other documentation described in
“About This Book”:
System administration tasks
Typically, the database administrator (DBA) is responsible for the tasks listed
on the left side of the following table. Look at the right side of the table to see
where these tasks are explained in this or other manuals.
2
CHAPTER 1 Overview of Adaptive Server IQ System Administration
Table 1-1: Administrative tasks
If you want to know how to...
Install and configure Adaptive Server Adaptive Server IQ Installation and
IQ for your platform Configuration Guide
Start and stop the database server, and Chapter 2, “Running Adaptive Server
set up user connections IQ”
Look in...
Create an Adaptive Server IQ database Chapter 3, “Working with Database
Objects”
Determine appropriate indexes for
your users' queries
Chapter 4, “Adaptive Server IQ
Indexes”
Load data into your database
Chapter 5, “Moving Data In and Out
of Databases”
Add users and assign them privileges Chapter 10, “Managing User IDs and
Permissions”
Ensure the integrity of data in your
tables
Chapter 7, “Ensuring Data Integrity”
Understand how transactions impact
concurrency
Chapter 8, “Transactions and
Versioning”
Set up your database for the language Chapter 9, “International Languages
you work in
and Character Sets”
Back up and restore databases
Chapter 11, “Backup and Data
Recovery”
Tune Adaptive Server IQ for
maximum performance
Chapter 12, “Managing System
Resources”; see also performance
tuning hints for specific features in all
chapters
Monitor IQ performance
Chapter 13, “Monitoring and Tuning
Performance”
Set up and manage a multiplex
configuration
Adaptive Server IQ Multiplex User’s
Guide
Security overview
The DBA is responsible for maintaining database security. Adaptive Server IQ
provides security controls by means of the privileges you can assign to users.
3
Tools for system administration
Types of users
Adaptive Server IQ recognizes three categories of users for each IQ database:
•
The database administrator, or DBA, has complete authority to perform all
operations on that database. This guide is addressed primarily to the DBA,
who typically carries out most administrative tasks.
•
•
The user who creates a particular database object is its owner, and can
perform any operation on that object.
All other users are considered public users. The owner of an object is
considered a public user for objects owned by other users.
Granting permissions
Except for the DBA, who can perform any task, users must be granted the
authority to perform specific tasks. For example, you need the proper authority
to:
•
•
•
•
•
•
Connect to a database.
Create database objects, such as a database, table, or index.
Alter the structure of database objects.
Insert or delete data.
Select (view) data.
Execute procedures.
The DBA can grant any type of authority to any user. Sometimes other users
can grant authority as well. For more information on what users can do, and
how the DBA manages users, see Chapter 10, “Managing User IDs and
Permissions”.
Tools for system administration
To help you manage your database, Adaptive Server IQ provides two primary
tools:
4
CHAPTER 1 Overview of Adaptive Server IQ System Administration
•
•
Sybase Central is an application for managing Sybase databases. It helps
you manage database objects and perform common administrative tasks
such as creating databases, backing up databases, adding users, adding
tables and indexes, and monitoring database performance. Sybase Central
has a Java-based graphical user interface, and can be used with any
operating system that allows graphical tools.
DBISQL, also called Interactive SQL, is an application that allows you to
enter SQL statements interactively and send them to a database. DBISQL
has a window-like user interface on all platforms.
The Introduction to Adaptive Server IQ explains how to use Sybase Central
and DBISQL to perform simple administrative tasks. If you are not already
familiar with these tools, you should read about them in the Introduction to
Adaptive Server IQ and use the tutorials provided there.
In addition to these tools, Adaptive Server IQ provides a number of stored
procedures that perform system management functions. See “Stored
procedures” for more information. You can also create your own procedures
and batches.
A few administrative tasks, such as selecting a collation, rely on command-line
utilities. These utilities are discussed in other chapters of this book, and
described in the Adaptive Server IQ Reference Manual.
The database server
The database server is the “brain” of your Adaptive Server IQ system. Users
access data through the database server, never directly. Requests for
information from a database are sent to the database server, which carries out
the instructions.
Catalogs and IQ
An Adaptive Server IQ database is a joint data store consisting of three parts:
•
•
The permanent IQ Store
The Temporary Store
5
Catalogs and IQ
•
The Catalog Store
When you create an IQ database, all three stores are created automatically. You
create IQ databases using the procedures described in Chapter 3, “Working
with Database Objects”.
The IQ Store
The IQ Store is the set of Adaptive Server IQ tables. You can have one or more
permanent IQ Stores, each in a separate database. Each IQ Store includes a set
of tables that organize your data. The table data is stored in indexes, which are
structured so as to allow rapid response to various types of analytical queries
on very large quantities of data.
The Temporary Store
The Temporary Store consists of a set of temporary tables. The database
server uses them for sorting and other temporary processing purposes; you
cannot store your data in them directly.
The Catalog Store
The Catalog Store contains all of the information required to manage an IQ
database. This information, which includes system tables and stored
procedures, resides in a set of tables that are compatible with Adaptive Server
Anywhere. These tables contain the metadata for the IQ database. Metadata
describes the layout of the IQ tables, columns, and indexes. The Catalog Store
is sometimes referred to simply as the Catalog.
Adaptive Server Anywhere and Adaptive Server IQ
The Catalog Store closely resembles an Adaptive Server Anywhere store.
Adaptive Server Anywhere is a relational database system that can exist with
or without IQ. You may have Adaptive Server Anywhere-style tables in your
Catalog Store along with your IQ tables, or you may have a separate Adaptive
Server Anywhere database.
6
CHAPTER 1 Overview of Adaptive Server IQ System Administration
Anywhere tables have a different format than IQ tables. While the commands
you use to create objects in an Anywhere database are the same as those for an
IQ Store, there are some differences in the features you can specify in those
commands. Always use the command syntax in this book or the Adaptive Server
IQ Reference Manual for operations in the IQ Store.
This book explains how you manage your IQ Store and its associated Catalog
Store. If you have an Anywhere database, or if you have Anywhere-style tables
in your Catalog Store, see the Adaptive Server Anywhere documentation for
details of how to create, maintain, and use them.
Concurrent operations
Adaptive Server IQ allows multiple users to query a database at the same time,
while another user inserts or deletes data, or backs up the database. Changes to
the structure of the database, such as creating, dropping, or altering tables,
temporarily exclude other users from those tables, but queries that only access
tables elsewhere in the database can proceed.
Adaptive Server IQ keeps your database consistent during these concurrent
operations by maintaining multiple versions of table data. To understand this
approach, see Chapter 8, “Transactions and Versioning”.
Stored procedures
Adaptive Server IQ stored procedures help you manage your system. Stored
procedures give you information about your database and users, and carry out
various operations on the database. This section briefly describes the stored
procedures. For more information, see the Adaptive Server IQ Reference
Manual.
A stored procedure typically operates on the database in which you execute it.
For example, if you run the stored procedure sp_addlogin in the asiqdemo
database, it adds a user to asiqdemo.
7
Stored procedures
You can also create your own stored procedures. See Chapter 6, “Using
Procedures and Batches” for details.
Note Statements shown in examples generally use the asiqdemo database, a
sample database installed as part of Adaptive Server IQ. For a diagram of this
database’s structure, see Introduction to Adaptive Server IQ.
Adaptive Server IQ stored procedures
The following procedures work specifically on the IQ Store. They are owned
by the DBA user ID.
Note Stored procedures that produce size information assume that the database
was created with the default block size, as described in “Block size”. If a
database was created with a non-default block size, the output from the
following stored procedures is inaccurate: sp_iqestjoin, sp_iqestdbspaces,
sp_iqestspace.
8
CHAPTER 1 Overview of Adaptive Server IQ System Administration
Table 1-2: Stored Procedures for the IQ Store
Procedure name
Purpose
sp_iqcheckdb
Checks the validity of the current
database and repairs indexes
sp_iqcommandstats
Gives statistics on execution of
various commands
sp_iqdbsize
Gives the size of the current database
sp_iqdbstatistics
Reports results of the most recent
sp_iqcheckdb
sp_iqestjoin
Estimates the space needed to create
join indexes for the tables you specify
sp_iqestdbspaces
Estimates the number and size of
dbspaces needed for a given total
index size
sp_iqestspace
sp_iqindex
Estimates the amount of space needed
to create a database, based on the
number of rows in the underlying
database tables.
Lists indexes and information about
them. Omitting the parameter lists all
indexes in the database. Specifying the
table_name parameter lists indexes for
this table only.
sp_iqindexsize
Gives the size of the specified index
sp_iqjoinindexsize
Gives the size of the specified join
index
sp_iqstatus
sp_iqtable
Displays miscellaneous status
information about the database
Lists tables and information about
them. Omitting the parameter lists all
tables in the database. Specifying the
table_name parameter lists columns
for this table only.
sp_iqtablesize
Gives the size of the specified table
Adaptive Server Enterprise system and catalog procedures
Adaptive Server Enterprise provides system and catalog procedures to carry
out many administrative functions and to obtain system information. Adaptive
Server IQ has implemented support for some of these procedures.
9
Stored procedures
System procedures are built-in stored procedures used for getting reports from
and updating system tables. Catalog stored procedures retrieve information
from the system tables in tabular form.
Note While these procedures perform the same functions as they do in
Adaptive Server Enterprise and pre-Version 12 Adaptive Server IQ, they are
not identical. If you have preexisting scripts that use these procedures, you may
want to examine the procedures. To see the text of a stored procedure, run
sp_helptext procedure_name
You may need to reset the width of your DBISQL output to see the full text, by
clicking Command→Options and entering a new Limit Display Columns
value.
Adaptive Server Enterprise system procedures
The following Adaptive Server Enterprise system procedures are provided in
Adaptive Server IQ. These stored procedures perform important system
management tasks.
System procedure
sp_addgroup
Description
Adds a group to a database
Adds a new user account to a database
sp_addlogin
sp_addmessage
Adds user-defined messages to
SYSUSERMESSAGES for use by stored
procedure PRINT and RAISERROR calls
sp_addtype
Creates a user-defined data type
Adds a new user to a database
sp_adduser
sp_changegroup
Changes a user’s group or adds a user to a
group
sp_dboption
Displays or changes database options
Drops a group from a database
Drops a user from a database
Drops user-defined messages
Drops a user-defined data type
Drops a user from a database
sp_dropgroup
sp_droplogin
sp_dropmessage
sp_droptype
sp_dropuser
sp_getmessage
Retrieves stored message strings from
SYSMESSAGES and
SYSUSERMESSAGES for PRINT and
RAISERROR statements.
10
CHAPTER 1 Overview of Adaptive Server IQ System Administration
System procedure
Description
sp_helptext
Displays the text of a system procedure or
view
sp_password
Adds or changes a password for a user ID
Adaptive Server Enterprise catalog procedures
Adaptive Server IQ implements all the Adaptive Server Enterprise catalog
procedures with the exception of the sp_column_privileges procedure. The
implemented catalog procedures are described in the following table.
The following list describes the supported Adaptive Server Enterprise catalog
procedures.
Catalog procedure
sp_column_privileges
sp_columns
Description
Unsupported
Returns the data types of the specified column
sp_fkeys
Returns foreign key information about the
specified table
sp_pkeys
Returns primary key information for a single
table
sp_special_columns
sp_sproc_columns
sp_stored_procedures
sp_tables
Returns the optimal set of columns that
uniquely identify a row in a table
Returns information about a stored procedure’s
input and return parameters
Returns information about one or more stored
procedures
Returns a list of objects that can appear in a
FROM clause
Catalog stored procedures
In addition to the Adaptive Server Enterprise Catalog stored procedures, there
are other system and catalog stored procedures. The following table lists the
ones you are most likely to use. For a complete list, see Chapter 14, “System
Procedures” in Adaptive Server IQ Reference Manual.
Procedure name
Purpose
sp_remote_columns
List remote tables columns and their
data types
sp_remote_tables
List tables on a remote server
11
System tables and views
Procedure name
Purpose
sp_servercaps
Display information about a remote
server’s capabilities
System tables and views
Adaptive Server IQ system tables contain all of the information the database
server needs to manage your IQ system. The system tables reside in the Catalog
Store, and are sometimes called catalog tables. For some system tables there
are also views that make it easier to display the information in the table. The
SYS user ID owns the system tables.
Among the information in the system tables is:
•
•
Database characteristics
Table characteristics, including table definitions and information about the
size and location of each table
•
•
Information about indexes
Current settings for database and DBISQL options
System tables include:
System table
Description
DUMMY
A table with exactly one row, useful
for extracting information from the
database
SYSARTICLE
Describes an article in a SQL Remote
publication
SYSARTICLECOL
SYSCOLLATION
Describes columns in each article in a
SQL Remote publication
Contains the complete collation
sequences available to Adaptive
Server IQ
SYSCOLLATIONMAPPINGS
SYSCOLUMN
Lists the collation sequences available
in Adaptive Server IQ and their GPG
and JDK mappings
Describes each column in every table
or view
12
CHAPTER 1 Overview of Adaptive Server IQ System Administration
System table
Description
SYSDOMAIN
Lists the number, name, ODBC type,
and precision of each predefined data
type
SYSFILE
Lists operating system files and
dbspace names for the database
SYSFKCOL
Associates each foreign key column
with a primary key column
SYSFOREIGNKEY
SYSGROUP
Contains general information about
each foreign key
Describes a many-to-many
relationship between groups and
members
SYSINDEX
Describes indexes in the database
Describes database characteristics
Lists backups and restores
SYSINFO
SYSIQBACKUP
SYSIQCOLUMN
Lists information on columns in every
table or view in the IQ Store
SYSIQFILE
SYSIQINDEX
SYSIQINFO
Lists information on operating system
files for the database
Lists internal information on indexes
in the database
Lists additional database
characteristics
SYSIQJINDEX
Describes join indexes in the database
SYSIQJOINIXCOLUMN
Describes columns that participate in
join indexes
SYSIQJOINIXTABLE
SYSIQTABLE
Lists the tables that participate in each
join index in the database
Describes each table or view in the IQ
Store
SYSIXCOL
Describes each index for each column
in the database
SYSJAR
Describes each jar file associated with
the database
SYSJARCOMPONENT
SYSJAVACLASS
Describes each jar component
associated with the database
Contains all information related to
Java classes
13
System tables and views
System table
Description
SYSLOGIN
Lists User Profile names that can
connect to the database with an
integrated login
SYSOPTION
Lists current SET OPTION settings
for all users including the PUBLIC
user
SYSPROCEDURE
SYSPROCPARM
Describes each procedure in the
database
Describes each parameter to every
procedure in the database
SYSPROCPERM
Lists each user granted permission to
call each procedure in the database
SYSPUBLICATION
SYSREMOTETYPE
SYSREMOTEUSER
Describes each SQL Remote
publication
Contains information about SQL
Remote
Describes user IDs with REMOTE
permissions and the status of their
SQL Remote messages
SYSSQLSERVERTYPE
Contains information relating to
compatibility with Adaptive Server
Enterprise
SYSSUBSCRIPTION
SYSTABLE
Relates each user ID with REMOTE
permissions to a publication
Describes one table or view in the
database
SYSTABLEPERM
SYSSQLSERVERTYPE
SYSUSERMESSAGES
SYSUSERPERM
Describes permissions granted on
each table in the database
Contains information on compatibility
with Adaptive Server Enterprise
Lists user-defined error messages and
their creators
Lists characteristics of each user ID.
Because it contains passwords, you
need DBA permissions to select from
this table
SYSUSERTYPE
Describes each user-defined data type
System views present the information from their corresponding system tables
in a more readable format. In some cases, they omit password information so
that they can be accessible to all users. System views include:
14
CHAPTER 1 Overview of Adaptive Server IQ System Administration
System view
Description
SYSCATALOG
Lists all tables and views from
SYSTABLE
SYSCOLAUTH
SYSCOLUMNS
SYSFOREIGNKEYS
SYSGROUPS
Presents column update permission
information from SYSCOLPERM
Presents a readable version of the table
SYSCOLUMN
Presents foreign key information from
SYSFOREIGNKEY and SYSFKCOL
Presents group information from
SYSGROUP
SYSINDEXES
Presents index information from
SYSINDEX and SYSIXCOL
SYSOPTIONS
Displays option settings contained in
the table SYSOPTION
SYSPROCPARMS
SYSREMOTEUSERS
SYSTABAUTH
SYSUSERAUTH
Lists all the procedure parameters
from SYSPROCPARM
Lists the information in
SYSREMOTEUSER
Presents table permission information
in SYSTABLEPERM
Displays all the information in the
table SYSUSERPERM except foruser
numbers. Because it contains
passwords, this system view does not
have PUBLIC select permission
SYSUSERLIST
Presents all information in
SYSUSERAUTH except for
passwords
SYSUSEROPTIONS
SYSUSERPERMS
Display effective permanent option
settings for each user
Contains exactly the same information
as the table SYS.SYSUSERPERM
except the password is omitted
SYSVIEWS
Lists views and their definitions
For a complete description of system tables and views and their contents, see
the Adaptive Server IQ Reference Manual.
15
Commands and Functions
Commands and Functions
All Adaptive Server IQ commands are SQL statements. SQL stands for
Structured Query Language, a language commonly used in database
applications. Adaptive Server IQ SQL uses the same syntax as Adaptive Server
Anywhere SQL; the only differences are for certain product capabilities that
are supported only for IQ or for Anywhere. Adaptive Server IQ SQL also offers
a high degree of compatibility with Transact-SQL, the SQL dialect used by
Adaptive Server Enterprise.
This section introduces the types of commands and functions you can use.
Other chapters of this book tell you about the commands you use to perform
various administrative tasks. For complete details of supported commands and
functions, see the Adaptive Server IQ Reference Manual.
Types of SQL statements
You use three basic types of SQL statements:
•
DDL (Data Definition Language) statements let you define and modify
your database schema and table and index definitions. Examples of DDL
statements include CREATE TABLE, CREATE INDEX, ALTER TABLE, and
DROP.
•
•
DML (Data Manipulation Language) statements let you query your data,
and move data into and out of the database. Examples of DML statements
include SELECT, SET, and INSERT.
Program control statements control the flow of program execution. They
do not operate directly on your IQ tables. Examples include IF, CALL, and
ROLLBACK.
Functions
Functions return information from the database. They are allowed anywhere an
expression is allowed. Adaptive Server IQ provides functions that:
•
•
Aggregate data (for example, AVG, COUNT, MAX, MIN, SUM)
Manipulate numeric data (for example, ABS, CEILING, SQRT,
TRUNCATE)
•
Manipulate string data (for example, LENGTH, SOUNDEX, UCASE)
16
CHAPTER 1 Overview of Adaptive Server IQ System Administration
•
•
Manipulate date and time data (for example, TODAY, DATEDIFF,
DATEPART, MINUTES)
Convert retrieved data from one format to another (CAST, CONVERT)
Message logging
A message log file exists for each database. The default name of this file is
dbname.iqmsg. The message log file is created when the database is created.
By default, Adaptive Server IQ logs all messages in the message log file,
including:
•
•
•
Error messages
Status messages
Insert notification messages
You can examine this file as you would any other text file. At the start of the
file you see output like the following:
2000-03-07 17:20:50 0000 OpenDatabase Completed
2000-03-07 17:20:50 0000 IQ cmd line srv opts:
2000-03-07 17:20:50 0000 DB: r/w, Buffs=1913, Pgsz=4096/512blksz/8bpc
2000-03-07 17:20:50 0000 DB: Frmt#: 23F/2T/1P (FF: 03/18/1999)
2000-03-07 17:20:50 0000 DB: Versn: 12.4.2/(32bit mode)/MS Windows NT 4.0/EBF
0000/Mar 02 2000, 02:17:37 2000-03-07 17:20:50 0000 DB: Name: C:\Program
Files\Sybase\ASIQ12\scripts\asiqdemo.db
The fourth line of the file contains version information:
Figure 1-1: Version string in message log
17
The utility database
The date and time of the software build appears in the version string in ISO
datetime format: YYYY-MM-DD hh:mm:sswhere
YYYY
MM
DD
4-digit year
2-digit month number (0-12)
2-digit day of month number (0-31)
hh
2-digit numbmer of complete hours that have passed since
midnight (00-23)
mm
ss
2-digit number of complete minutes that have passed since
the start of the hour (00-59)
2-digit number of complete seconds that have passed since
the start of the minute (00-59)
The message log continues to exist until you drop the database. If your message
log ever becomes too large, you can archive it while no users are connected to
the database, and then create a new, empty dbname.iqmsg file before allowing
another user to connect.
The utility database
The utility database is essentially a database that never holds data. The database
server uses it at times when it needs a database to connect to, but either no real
database exists, or none should be running. Adaptive Server IQ installation
creates the utility database automatically.
Be sure you do not delete this database. You need it to do any of these things:
•
Start the database server using the START ENGINE command with no
database specified
•
•
Create or drop a database when you have no other database to connect to
Start the database server or connect to a database when any other databases
you have are either corrupt or unavailable due to media failure
•
Restore a database
By default, the utility database has the user ID dba and the password sql. You
can change these to other values during installation, or later by editing the
connection parameters in the util_db.ini file in your executable directory.
18
CHAPTER 1 Overview of Adaptive Server IQ System Administration
For more information on the utility database, see Chapter 3, “Configuring
Client/Server Communications” in your Adaptive Server IQ Installation and
Configuration Guide.
Compatibility with earlier versions
Version 12 of Adaptive Server IQ differs markedly from earlier versions of IQ.
It offers many important new features, including the ability to update the
database concurrently with query use, Transact-SQL and Java support,
additional query and view support, and better front end support. It offers
syntactic compatibility with Adaptive Server Anywhere, allowing Anywhere
users to build on their existing knowledge base as they begin to use IQ. It also
includes a new, more efficient database format.
These last two features have special implications for users migrating from pre-
version 12 Adaptive Server IQ. When you migrate to version 12, you must:
•
Examine any scripts, applications, and procedures for differences in
syntax, and make the necessary changes.
•
Reload your IQ database, using the special migration procedure.
See the Adaptive Server IQ Installation and Configuration Guide and the
Adaptive Server IQ Release Bulletin for your platform for migration details.
19
Compatibility with earlier versions
20
C H A P T E R
About this chapter
2
Running Adaptive Server IQ
Three steps are required for you to start using Adaptive Server IQ:
•
•
•
The database server must be started.
The database must be started.
You must connect to the database.
Adaptive Server IQ gives you great flexibility in performing these three
steps. This chapter explains various options for accomplishing each of
these steps, and gives suggestions for which to choose, depending on your
situation.
With Adaptive Server IQ you will run in a client/server environment, in
which many users can connect to a database server across a network. You
may have multiple databases on a given database server. Likewise, you
may be able to connect to more than one database server. The server
startup and connection options you choose must take into account these
factors.
Starting the database server
The first step in running Adaptive Server IQ is to start the database server.
You can start the server in all of these ways:
•
Type a server startup command at the operating system prompt. See
“Server command lines” on page 22, as well as the section specific to
your operating system.
•
•
Start the server from the Windows NT Start menu. See “Starting the
server from the NT Start menu” on page 26.
Start the server with the Sybase-provided utility, start_asiq, that runs
the server as a UNIX background process. See “Starting the server on
UNIX” on page 23.
21
Server command lines
•
Start the server and the sample database with a Sybase-provided
configuration file. See “Starting the asiqdemo database” on page 47.
•
•
Place a server startup command in a shortcut or desktop icon.
Include a server startline in an ODBC data source. See “Creating and
editing ODBC data sources” on page 65.
•
•
Include a server startline in a utility command.
Issue a SQL command from Interactive SQL to start an additional server.
See “Starting a server from DBISQL” on page 40.
Note If you will be using remote data access capabilities to insert data from
other databases or to issue queries to other databases, see the Adaptive Server
IQ Release Bulletin for Windows NT for special startup requirements.
Server command lines
The general form for the server command line is as follows:
asiqsrv12 [ server-switches ] [ database-file
[ database-switches ], ...]
The elements of this command line are as follows:
•
server-switches include the database server name and other options that
control the behavior of the server, for all databases that are running on that
server.
•
database-file is the file name of the Catalog Store. You can omit this
option, or enter one or more database file names on the command line.
Each of these databases is loaded and available for applications. If the
starting directory contains the database file, you do not need to specify the
path; otherwise, you must specify the path. If you do not specify a file
extension in database-file, the extension .db is assumed.
•
database-switches are options that you can specify for each database file
you start, that control certain aspects of its behavior.
In examples throughout this chapter where there are several command-line
options, we show them for clarity on separate lines, as they could be written in
a configuration file. If you enter them directly on a command line, you must
enter them all on one line (that is, without any carriage returns).
22
CHAPTER 2 Running Adaptive Server IQ
You can choose from many command-line options or switches to specify such
features as permissions required to start a database or stop the server, and the
network protocols to use. The command-line switches are one means of tuning
Adaptive Server IQ behavior and performance.
There are slight variations in the basic command for different operating
systems, as well as a startup utility that runs this command automatically. See
the sections that follow for details.
Starting the server on UNIX
This section describes two methods for starting the database server that are
specific to UNIX platforms:
•
•
Use the startup utility start_asiq. This is the preferred method.
Enter the server startup command and the appropriate parameters (see
below).
You can also use any of the generic methods described elsewhere in this
chapter, provided that you set startup parameter defaults for each platform to
the settings used in start_asiq. These settings are listed in the Adaptive Server
IQ Installation and Configuration Guide.
Normally, you should always use the start_asiq utility to start the server on
UNIX platforms. If you do not, among the tasks you must do which the utility
normally does for you are:
•
Remove all limits, and then set limits on the stack size and descriptors. To
do so, go to the C shell and issue these commands:
% unlimit
% limit stacksize 8192
% limit descriptors 4096
Note Be aware that unlimit affects soft limits only. You must change any
hard limits by setting kernel parameters.
•
Set all server parameters appropriately in the asiqsrv12 command.
23
Starting the server on UNIX
Note the server
starting directory
Note what directory you are in when you start the server. The server startup
directory determines the location of any database files you create with relative
pathnames. If you start the server in a different directory, Adaptive Server IQ
cannot find those database files.
Any server startup scripts should change directory to a known location before
issuing the server startup command.
Using the startup utility
For most situations, the easiest way to start a database server on UNIX is by
using the startup script that Sybase provides. Using this script ensures that all
required parameters are set correctly, except in special situations described
later in this chapter.
❖
To start the server on UNIX using the startup utility:
1
2
Change to a writable directory.
Run the start_asiq utility at the system prompt. The simple form of this
command is:
start_asiq servername [ database ]
You can also include server switches or database switches, as discussed in the
next section.
This command starts the named server as a background process, starts the
named database if you specify it, and sets all required startup options. Once the
server starts, it sends a message to the window or console where you started the
server indicating that the server is running. It also displays the version of the
Open Client communications library that is in use, and “possible problems”
messages on failure to start. This message is saved in the stderr log. After that,
all server messages go to the server log. The server log is in
$ASLOGDIR/servername.nnn.svrlog, where nnn is the number of times the
server has been started. See Chapter 1, “Environment Variables and Registry
Entries” in Adaptive Server IQ Reference Manual for a description of
$ASLOGDIR and other environment variables you may need to set.
The start_asiq command displays messages as to whether the server started or
not, and
The start_asiq utility also adds the appropriate library path to the environment
and sets parameters that govern Adaptive Server IQ. Parameter settings vary
by platform. See your Adaptive Server IQ Installation and Configuration
Guide for a list of parameter settings for your platform.
24
CHAPTER 2 Running Adaptive Server IQ
For an explanation of commonly used startup parameters, see “Using
command-line switches” on page 28.
Typing the server startup command
You can also start the database server by entering the following command at
the UNIX prompt:
asiqsrv12 [ server-switches ] [ database-file [
database-switches ]]
This command starts the specified database:
•
•
On the specified server, if one is named in the startup command.
On the server associated with this database, if the startup parameters
specify a data source.
•
On the local server, if one is running and no other server is specified.
See “Using command-line switches” on page 28 for a description of
commonly used startup parameters.
Note To start the server without starting any database, you omit the database
file from the asiqsrv12 command and specify a servername. For ease of use,
however, it is preferable to start the database and server together, by specifying
the database name when you start the server. The server takes its name from the
database name by default, or you can specify a different name for the server.
See “Naming the server and databases” on page 31 for more information on
server and database names.
If you omit the database name, you must name the server explicitly using the
-n server switch. This method is appropriate when you are creating or restoring
a database. It is also used when you only want to control the starting and
stopping of the server, leaving database use to client software.
When you start the server with the asiqsrv12 command, it does not run in the
background, and messages do not automatically go to the server log. However,
if your include the -o filename server switch, messages are sent to the named
file in addition to the server window.
25
Starting the server on Windows NT
Starting the server on Windows NT
This section describes methods for starting the database server that are specific
to Windows NT systems. You can also use any of the generic methods
described elsewhere in this chapter.
Note the server
starting directory
Be sure to make note of what directory you are in when you start the server.
The location of any database files you create with relative pathnames depends
on the server startup directory. If you start the server in a different directory,
Adaptive Server IQ looks for those database files in the new startup directory.
Any server startup scripts should change directory to a known location before
issuing the server startup command.
Starting the server from the NT Start menu
The easiest way to start the server on NT is from the Start menu.
Click Start on the Task bar, and select Programs → Sybase → Adaptive Server
IQ 12.
From here, you can start the sample database, Sybase Central, Interactive SQL,
and the ODBC Administrator.
You can also place databases of your own in the Program group.
Typing the server startup command
You can use a Program Manager icon to hold a command line, or enter the
following command at the system command prompt:
asiqsrv12 [ server-switches ] [ path\database-file [
database-switches ]]
You must either enter the database-file or include the servername as one of the
server-switches.
This command starts the specified database:
•
•
On the specified server, if one is named in the startup command
On the server associated with this database, if the startup parameters
specify a data source
•
On the local server, if one is running and no other server is specified
26
CHAPTER 2 Running Adaptive Server IQ
See “Using command-line switches” on page 28 for a description of
commonly used startup parameters.
Note To start the server without starting any database, you omit the database
file from the asiqsrv12 command and specify a servername. See “Naming the
server and databases” on page 31 for a discussion of why it is preferable to
include both the database and server in the startup command.
If you supply no switches and no database file on Windows NT, a dialog box
is displayed, allowing you to use a Browse button to locate your database file.
To start the server in a separate session, use the Windows NT start command:
start asiqsrv12 [ server-switches ] database [
database-switches ]
Running the server outside the current session
When you log on to a computer using a user ID and a password, you establish
a session. When you start a database server, or any other application, it runs
within that session. When you log off the computer, all applications associated
with the session terminate.
In a production environment, IQ database servers must be available all the
time. To make this easier, you can run Adaptive Server IQ in such a way that,
when you log off the computer, the database server remains running. The way
you do this depends on your operating system.
•
Windows NT service
You can run the Windows NT database server
as a service. This has many convenient properties for running high
availability servers.
•
UNIX daemon
You can run the UNIX database server as a daemon by
using the -udcommand-line option, enabling the database server to run in
the background, and to continue running after you log off.
27
Using command-line switches
Running the UNIX database server as a daemon
To run the UNIX database server in the background, and enable it to run
independently of the current session, you run it as a daemon.
Note Do not use ’&’to run the database server in the background. It will not
work. You must instead run the database server as a daemon.
❖
To run the UNIX database server as a daemon:
•
Use the -udcommand-line option when starting the database server. For
example:
start_asiq -ud asiqdemo.db
Running the server as a Windows NT service
You can run the server as a service under Windows NT. This allows it to keep
running even when you log off the machine. For details of this and other NT-
specific features, see the Adaptive Server IQ Installation and Configuration
Guide.
Using command-line switches
You use command-line switches to define your Adaptive Server IQ
environment.
This section describes some of the most common command-line switches, and
points out when you may wish to use them. Switches described in this chapter
include:
For this switch
See this section
-c
“Catalog Store cache size”
-gb
“Other performance-related switches” (Windows NT
only)
-gc
-gd
-gk
-gm
-gn
“Checkpoint interval”
“Controlling permissions from the command line”
“Controlling permissions from the command line”
“Concurrent users”
“Controlling performance from the command line”
28
CHAPTER 2 Running Adaptive Server IQ
For this switch
See this section
-gp
“Setting a maximum Catalog page size”
“Recovery time”
-gr
-gu
“Controlling permissions from the command line”
“Concurrent queries”
-iqgovern
-iqmc
-iqtc
“Buffer caches and physical memory”
“Buffer caches and physical memory”
-iqsmem
“Unwired memory” (AIX, Compaq Tru64 UNIX, and
HP UNIX only)
-iqwmem
“Wired memory” (Compaq Tru64 UNIX, HP UNIX,
and Sun UNIX only)
-n
-p
-ti
-tl
-x
-z
“Naming the server and databases”
“Other performance-related switches”
“Setting the default client timeout”
“Setting the default network timeout”
“Selecting communications protocols”
“Debugging network communications startup
problems”
Some of the values you can set with command-line switches can also be
changed with the SET OPTION command. For details of this command and its
options, and for a complete list of command-line switches and full reference
information on them, see the Adaptive Server IQ Reference Manual.
Displaying command-
line options
To display all of the available command-line options, enter one of the
following commands at the operating system prompt:
•
On UNIX systems, enter:
asiqsrv12 -h
•
On Windows NT systems, enter:
asiqsrv12 /?
Case sensitivity
Command-line parameters are case sensitive.
Using configuration
files
If you use an extensive set of command-line options, you can store them in a
configuration file, and invoke that file on a server command line. Specify
switches in the configuration file as you would on the command line, with
these exceptions:
•
•
You can enter switches on multiple lines.
You must not include either single or double quotes in a configuration file.
29
Using command-line switches
For example, the following configuration file starts the database mydb.db, on
the database server named Elora, with a Catalog cache size of 16MB, TCP/IP
as a network protocol and a specified port number, user connections limited to
10, and a Catalog page size of 4096 bytes.
-n Elora
-c 16M
-x tcpip(port=2367
-gm 10
-gp 4096
path\mydb.db
If you name the file mydb.cfg, you could use these command-line options as
follows:
asiqsrv12 @mydb.cfg
In examples throughout this chapter where there are several command-line
options, we show them for clarity on separate lines as they could be written in
a configuration file. If you enter them directly on a command line, you must
enter them all on one line.
Note When you stop the server with the DBSTOP command, you need to
specify the same parameters as when you started the server. Using a
configuration file to start the server ensures that you will be able to find these
parameters when you need them.
Required command-
line switches
While most of the command-line switches described in the sections that follow
are optional, you must specify the -n, -c, -gp, and -gm switches to run Adaptive
Server IQ effectively.
For this release, recommended server startup values are:
asiqsrv12 -n servername -c 16M -gc 6000 -gd all -gm 10
-gp 4096 -gr 6000 -ti 4400 -tl 300 database
If you use TCP/IP to connect to the server, you should include network
connection parameters as well. If you start the server without the parameter -x
’tcpip(port=nnnn)’ set, then the server uses the default TCP/IP port number 2638.
On UNIX platforms, if you start the database server with the start_asiq
command, these parameters are included automatically with values shown
above, along with others specific to your platform. You can override these
values and include other parameters by specifying them on the start_asiq
command line.
30
CHAPTER 2 Running Adaptive Server IQ
Configuration file for
the sample database
The asiqdemo.cfg file, which you use to start the sample database, sets startup
parameters to the recommended defaults. You can also use this file as a
template for your own configuration files. Chapter 3, “Running and
Connecting to Servers”, Introduction to Adaptive Server IQ gives an example
of the sample database configuration file. This file is found in
demo/asiqdemo.cfg in your installation directory.
A note about defaults
In the discussion of individual server options that follows, “default” means the
value that applies if you start the server with the asiqsrv12 command, or from
the Windows NT Start menu, and do not specify a different value.
If you start the server with the start_asiq UNIX startup utility, or with
asiqdemo.cfg or your own configuration file, many of these options are set to
other values.
Naming restrictions
Do not use hyphenated names or reserved words for database names, user
identifiers or server names, even enclosed in quotation marks. For example, the
following are not allowed:
grant
june-1999-prospects
"foreign"
For a complete list of reserved words (keywords), see the Adaptive Server IQ
Reference Manual.
Naming the server and databases
You can use the -n command-line option as a database switch (to name the
database) or as a server switch (to name the server). The server switch is
required if you do not supply a database.
The server and database names are among the connection parameters that client
applications can use when connecting to a database. On Windows NT, the
server name appears on the desktop icon and on the title bar of the server
window.
Default names
If no server name is provided, the default server name is the name of the first
database started.
The default database name is the root of the Catalog Store file name (the file
name without a directory path or the .db extension). For example, in the
following command line the first database is named mydb, the second database
is sample, and the server is named mydb.
31
Using command-line switches
asiqsrv12 mydb.db sample.db
Naming databases
Naming the server
You can name databases by supplying a -n switch following the database file.
For example, the following command line starts a database and names it:
asiqsrv12 mydb.db -n MyDB
Naming a database lets you use a nickname in place of a file name that may be
difficult to remember.
You name the server by supplying a -n switch before the first database file. For
example, the following command line starts a server named Cambridge_sample
and the sample database on that server:
asiqsrv12 -n Cambridge_sample sample.db -gm 10 -gp 4096
Putting the host name, in this case Cambridge, at the start of the server name is
a useful convention. It is especially important in a multiuser, networked
environment where shared memory will be used for local database
connections. This convention ensures that all users will be able to connect to
the correct database, even when other databases with the same name have been
started on other host systems.
To allow Adaptive Server IQ to locate the server no matter what character set
is in use, include only seven-bit ASCII (lower page) characters in the server
name. For more information on character sets, see Chapter 9, “International
Languages and Character Sets”
Specifying a server name lets you start a database server with no database
loaded. The following command starts a server named Galt with no database
loaded:
asiqsrv12 -n Galt -gm 10 -gp 4096
Note Although you can start a server by relying on the default server name, it
is better to include both the server name and the database name, and to make
the two names different. This approach helps users distinguish between the
server and the databases running on it. You must specify the server name in
order to start the server without starting a specific database.
For information about starting databases on a running server, see “Starting and
stopping databases”.
Case sensitivity and
naming conventions
Server names and database names are case insensitive on Windows NT, and
case sensitive on UNIX.
32
CHAPTER 2 Running Adaptive Server IQ
You should adopt a set of naming conventions for your servers and databases,
as well as for all other database objects, that includes a case specification.
Enforcing naming conventions can prevent problems for users.
Controlling performance from the command line
Several command-line options can affect database server performance. Most of
the switches described in this section control resources for operations on the IQ
Store, which can have a major impact on performance. Switches that affect
only the resources available for operations on the Catalog Store may have a
minor impact on overall performance. If you need to specify switches that
affect the Catalog Store only, see the Adaptive Server IQ Reference Manual for
more information.
Performance tuning suggestions are given throughout this guide. See Chapter
12, “Managing System Resources” for a full discussion of how Adaptive
Server IQ uses memory, disk, and processors, the effect of user connections on
resource use, and options you can set to control resource use.
Some platform-specific tuning suggestions are presented in this guide. See also
the Adaptive Server IQ Installation and Configuration Guide for your
platform.
Setting memory switches
Adaptive Server IQ uses memory for a variety of purposes:
•
•
•
Buffers for data read from disk to resolve queries
Buffers for data read from disk when loading from flat files
Overhead for managing connections, transactions, buffers, and database
objects
The switches discussed below, as well as other options you can set once the
server is running, determine how much memory is available for these purposes.
IQ buffer cache sizes
Normally, you set the buffer cache size for the IQ main and temporary stores
using the SET OPTION command to set the Main_Cache_Memory_MB and
Temp_Cache_Memory_MB options. If you set IQ buffer cache sizes higher than
your system will accommodate, however, Adaptive Server IQ cannot open the
database.
33
Using command-line switches
To override these settings for the current server session, specify the server
startup options -iqmc (main cache size) and -iqtc (temp cache size) to open the
database and reset the defaults. The default sizes are 8MB for the main cache
and 4MB for the temporary cache, which are too low for any active database
use.
Concurrent users
Your license sets the absolute number of concurrent users. However, you must
also set the -gm switch. This required switch lets you limit the number of
concurrent user connections on a particular server.
The -gn switch sets the number of execution threads that will be used for the
Catalog Store and connectivity while running with multiple users. It applies to
all operating systems and servers.
On Windows NT you need to specify this parameter in the asiqsrv12 command.
To calculate its value use the following formula:
gn_value = gm_value - (( 2 * num_CPUs ) + 10)
Specify a minimum of 25.
On UNIX platforms, the start_asiq utility sets this parameter. See the Adaptive
Server IQ Installation and Configuration Guide for your platform for more
information.
There may be times when you want to tune performance for a particular
operation by limiting the number of user connections to fewer than your license
allows. Alternatively, you may want to use the -iqgovern switch to control
query use; see “Concurrent queries.”
Concurrent queries
Wired memory
The -iqgovern switch lets you specify the number of concurrent queries on a
particular server. This is not the same as the number of connections, which is
controlled by your license. By specifying the -iqgovern switch, you can help IQ
optimize paging of buffer data out to disk, and avoid overcommitting memory.
The default value of -iqgovern is (2 x the number of CPUs) +10.
The -iqwmem switch creates a pool of “wired” memory on certain UNIX
platforms only. This memory is locked down so that it cannot be paged. Wired
memory can improve performance on Tru64, HP and Sun platforms. Specify
this switch as the number of megabytes of wired memory.
Warning! Use this switch only if you have enough memory to dedicate some
of it for this purpose. Otherwise, you can cause serious performance
degradation.
34
CHAPTER 2 Running Adaptive Server IQ
Unwired memory
The -iqsmem switch creates a memory pool to increase total available memory.
This switch is available on all UNIX platforms, but is required in some cases:
•
On HP systems use -iqsmem if you want to use more than 2GB of memory.
The value should be between 500 and 1400MB.
•
On AIX systems always use -iqsmem. The value for -iqsmem should be
between 356 and 2560; otherwise, the server aborts.
Specify this switch as the number of megabytes of memory. The maximum
value for -iqsmem is 2000. For example, to add 1GB of unwired memory you
specify:
-iqsmem 1000
Number of processing
threads
Use the -iqmt switch to set the number of processing threads that Adaptive
Server IQ can use. Adaptive Server IQ assigns varying numbers of kernel
threads to each user connection, based on the type of processing being done by
that process, the total number of threads available, and the setting of various
options. Increasing the number of threads can improve performance.
Catalog Store cache
size
Use the -c switch to set the amount of memory in the cache for the Catalog
Store. The default initial cache size is computed based on the amount of
physical memory, the operating system, and the size of the database files. On
Windows NT, the database server takes additional cache for the Catalog when
the available cache is exhausted.
For many Adaptive Server IQ and Java applications, you need to raise the size
of the Catalog cache above the default value of 2MB. Any cache size less than
10000 is assumed to be in KB (1K =1024 bytes); any cache size 10000 or
greater is assumed to be in bytes. You can also specify the cache size asnK or
nM.
Both start_asiq and the asiqdemo.cfg configuration file set this parameter to
16MB.
Note The cache size for the IQ Store does not rely on the Catalog cache size.
See “IQ buffer cache sizes.”
Setting switches that affect timing
Checkpoint interval
Adaptive Server IQ uses checkpoints to generate reference points and other
information that it needs to recover databases. Use the -gc switch to set the
maximum desired length of time (in minutes) that the database server will run
without doing a checkpoint. The default value is 60 minutes.
35
Using command-line switches
When a database server is running with multiple databases, the checkpoint time
specified by the first database started will be used unless overridden by this
switch. If a value of 0 is entered, the default value of 60 minutes is used.
Recovery time
The -gr parameter lets you set the maximum number of minutes that the
database server will take to recover from system failure. When a database
server is running with multiple databases, the recovery time specified by the
first database started will be used unless overridden by this switch.
Other performance-related switches
Several switches help you tune network performance. They include -gb
(database process priority on Windows NT), and -p (maximum packet size).
Controlling permissions from the command line
Some command-line options control the permissions required to carry out
certain global operations.
Starting and stopping
databases
The -gd option allows you to limit the users who can start a database on a
running server to those with a certain level of permission in the database to
which they are already connected:
•
•
•
DBA (the default) —Only the DBA can start an extra database.
ALL—Any user can start and stop databases.
NONE—No one can start or stop a database on a running server.
Sybase recommends that only the DBA be allowed to start and stop production
databases.
Note If you do not set -gd ALL when you start the server, only the DBA can
start additional databases on that server. This means that users cannot connect
to databases that are not already started, either at the same time as the server,
or since then by the DBA.
Creating and deleting
databases
The -gu option allows you to limit the users who can stop the server to users
with a certain level of permission in the database to which they are connected.
•
•
•
DBA—Only the DBA can create and drop databases.
ALL (default)—Any user can create and drop databases.
NONE—No user can create or drop a database.
36
CHAPTER 2 Running Adaptive Server IQ
•
UTILITY_DB—Only those users who can connect to the utility_db database
can create and drop databases. See “The utility database” on page 18 for
information.
Stopping the server
The -gk option limits the users who can shut down a server to those with a
certain level of permission in the database.
•
•
•
DBA (default) —Only the DBA can stop the server.
ALL (default)—Any user can stop the server.
NONE—No user can shut down the server with the STOP ENGINE
command.
Setting a maximum Catalog page size
The database server cache is arranged in pages, which are fixed-size areas of
memory. Since the server uses a single cache for the Catalog Store until it is
shut down, all Catalog pages must have the same size.
A Catalog file is also arranged in pages, of size 1024, 2048, or 4096 bytes.
Every database page must fit into a cache page.
You use the -gp option to set the Catalog page size explicitly. By setting -gp to
the maximum size, 4096, you maximize the number of columns per table that
Adaptive Server IQ can support.
By default, the server page size is the same as the largest page size of the
databases on the command line. The -gp option overrides this default. Once the
server starts, you cannot load a database with a larger Catalog page size than
the server. Unless you specify -gp , an attempt to load a database file with a
Catalog page size larger than the databases started on the command line will
fail.
If you use larger page sizes, remember to increase your cache size. A cache of
the same size will accommodate only a fraction of the number of the larger
pages, leaving less flexibility in arranging the space.
Note The -gp option and the page sizes listed here apply to the Catalog Store
only. You set the page size for the IQ Store in the IQ PAGE SIZE parameter of
the CREATE DATABASE command. See “Choosing an IQ page size” for more
information.
37
Using command-line switches
Setting up a client/server environment
Three switches can help you set up your client/server environment.
•
•
•
-x specifies communication protocol options.
-tl sets the network connection timeout.
-ti sets the client connection timeout.
See the sections that follow for details.
Selecting communications protocols
Any communications between a client application and a database server
require a communications protocol. Adaptive Server IQ supports a set of
communications protocols for communications across networks and for same-
machine communications.
The database server supports the following protocols:
•
Shared memory is used for same-machine communications, and is loaded
by default (unless the -hs parameter is specified on startup).
•
•
TCP/IP is supported on all platforms.
IPX is supported on Windows NT (client and server) and Windows 95
(client only).
•
•
NetBIOS is supported on Windows NT (client and server) and Windows
95 (client only).
Named pipes is supported on Windows NT only. Named Pipes is provided
for same machine communications to and from Windows 3.x client
applications using ODBC or Embedded SQL.
Specifying protocols
By default, the database server starts up all available protocols. You can limit
the protocols available to a database server by using the –x command-line
switch. At the client side, many of the same options can be controlled using the
CommLinks connection parameter.
The following command starts a server using the TCP/IP protocol:
asiqsrv12 -x "tcpip"
The quotes are not strictly required in this example, but are needed if there are
spaces in any of the arguments to –x. If you omit this switch and you are using
TCP/IP, or if you do not specify a port number, the default port 2638 is used.
38
CHAPTER 2 Running Adaptive Server IQ
Additional parameters can be added to tune the behavior of the server for each
protocol. For example, the following command line instructs the server to use
two network cards, one with a specified port number. This command must be
entered all on one line, even though it appears on multiple lines here.
asiqsrv12
-x "tcpip(MyIP=192.75.209.12:2367,192.75.209.32)"
-gm 10 -gp 4096
path\asiqdemo.db
For detailed descriptions of network communications parameters that can
serve as part of the –x switch, see “Network communications parameters” in
the Adaptive Server IQ Reference Manual.
Limiting inactive connections
Adaptive Server IQ uses two parameters, -tl and -ti, to determine when it should
close user connections.
Setting the default
network timeout
A liveness packet is sent periodically across a client/server TCP/IP or IPX
communications protocol to confirm that a connection is intact. If the server
runs for a liveness timeout period (default 2 minutes) without detecting a
liveness packet, the communication is severed. The server drops any
connections associated with that client. There is no warning. All activity that
falls within any open transaction is rolled back.
The –tl switch on the server sets the liveness timeout, in seconds, for all clients
that do not specify a –tl switch when they connect. Liveness packets are sent at
an interval of the (liveness timeout)/4.
You may want to set a higher value for this switch at the server level. Many
users, especially those who have used earlier versions of Adaptive Server IQ,
will not expect to be disconnected after only 2 minutes of inactivity.
Try setting the liveness timeout to 300, together with the recommended value
for –ti discussed in the next section. Set this switch as follows:
-tl 300
If this value does not work well, try -tl 1200, which sets the liveness timeout to
20 minutes.
Note Users who are running a client and server on the same machine do not
experience a liveness timeout.
39
Using command-line switches
Setting the default
client timeout
Adaptive Server IQ disconnects client connections that have not submitted a
request for the number of minutes you specify with the -ti switch. By
disconnecting inactive connections, this option frees any locks those
connections hold. The default is 240 (4 hours). Raising this to the
recommended value, 4400 (about 73 hours), lets you start long runs at the
beginning of a weekend, for example, and ensure that any interim results will
not be rolled back.
Starting a server in forced recovery mode
Should you need to restart your server after a failure, you can usually do so
using the same startup options as usual.
On rare occasions, you may need to supply startup options to force recovery or
to recover leaked storage. To start the server with these options, see the chapter
“System Recovery and Database Repair” in the Adaptive Server IQ
Troubleshooting and Error Messages Guide.
Starting a server from DBISQL
If you are already connected to a running database server, you can start a new
server from DBISQL. Use the START ENGINE command to start a named
server from DBISQL.
Note This method is not recommended for most situations. If you use it be sure
you are starting the server on the system you intend, that you include
appropriate server parameters in the STARTLINE, and that environment
variables are set appropriately on the system where the server will start.
Example
The following DBISQL command, entered on one line, starts a database server,
names it jill_newserv, and specifies the network connection, number of
connections, and Catalog page size.
START ENGINE AS jill_newserv
STARTLINE ’asiqsrv12 -x tcpip(port=5678) -gm 10 -gp
4096’
40
CHAPTER 2 Running Adaptive Server IQ
Starting multiple servers or clients on the same machine
In a production environment, it would be unusual to have more than one server
running on the same system. In a development environment, however, this
situation can occur.
If you are running more than one server or client on the same UNIX machine,
and shared memory is enabled, you must take certain precautions to prevent
users from connecting to the wrong server. To avoid conflicts when using
shared memory, consider doing one or more of the following:
•
Create a temporary directory dedicated to each server. Make sure that each
client uses the same temporary directory as its server by setting the
ASTMP environment variable explicitly on both systems. For details
about setting environment variables, see the Adaptive Server IQ Reference
Manual.
•
Create a data source name in the .odbc.ini file (on UNIX) for each server
and provide detailed connection information. For details, see the Adaptive
Server IQ Installation and Configuration Guide.
•
•
Use connection strings that specify explicit parameters instead of relying
on defaults.
Confirm connections by issuing the following command:
SELECT "database name is" = db_name(),
"servername_is" = @@servername
Monitoring server activity
It may be helpful, especially for new users, to monitor server activity. Using
commands appropriate for your platform, you can direct Adaptive Server IQ to
capture server activity in a log file.
Unix server log file
When you start a server on a UNIX system with the start_asiq utility, server
activity is logged in an ASCII text file placed in the directory defined by
$ASLOGDIR. (If $ASLOGDIR is not defined, it defaults to $ASDIR/logfiles.)
The log file name has this format:
your_server_name.###.srvlog
Each time you start the server, the number is incremented. For example, your
directory may look like this:
41
Monitoring server activity
demo.001.srvlog demo.002.srvlog
janedemo.001.srvlog
For information about your most recent session, choose the log with the largest
number for the desired server. Issue a tail –f command to view the log contents.
For example:
% tail -f demo.002.srvlog
When you run start_asiq, specify the –z option to enhance the log file with
additional information about connections. This will help new users or those
troubleshooting connection problems.
On UNIX systems, there are two ways to check if a particular server is running:
•
Log into the machine where the server was started, and issue the
command:
% ps -eaf | grep asiqsrv12
maryc 24836 25554 0 Feb 09
asiqsrv12 -c 16m -gc 6000 -gd all
-gr 6000 -gm 10 -gp 4096 -ti 4400
-tl 300 -iqmt 450 -iqsmem 2560
@fnma.cfg asiqdemo.db
- 17:36
janed 28932 38122 0 11:39:24
asiqsrv12 -c 16m -gc 6000 -gr 6000
-gm 10 -gp 4096 -ti 4400
- 2:10
-tl 300 -iqsmem 2560 -n janedemo -gd all
-iqmt 256 -x tcpip(port=1872)
•
Use the stop_asiq utility, described in the following section, which
displays all Adaptive Server IQ processes running.
On Windows systems, look in the system tray for one or more Adaptive Server
IQ icons. Place the cursor over each icon and read the server name.
Windows server log
file
On Windows systems, use the -o parameter on the asiqserv12 startup command
to create a log file of server activity. For example, to save output to a file named
results, start the server as follows:
asiqsrv12 -o results
42
CHAPTER 2 Running Adaptive Server IQ
Stopping the database server
The preferred ways to stop the database server are:
•
In UNIX, use the stop_asiq utility. For details, see “Example — Stop a
server with stop_asiq”.
Note that when stop_asiq is used, the following message appears:
"Please note that ’stop_asiq’ will shutdown a server
completely without regard for users connections or load
processes status. For a finer level of detail the utility ’dbstop’
has the options to control whether a server is stopped based on
active connections."
•
In Windows NT, click Shutdown on the database server display or right-
click the IQ icon in the system tray and select Exit.
Normally, you should not shut down a server while it is still connected to one
or more clients. If you try this, you get a warning that any uncommitted
transactions will be lost. Disconnect or close all the clients and try again.
You can also stop the database server in the following ways:
•
At the operating system command line, issue the DBSTOP command with
appropriate parameters. Use the same parameters as when you started the
server. Without the proper connection parameters DBSTOP doesn't know
how to connect to the server to tell it to shutdown. For details on using
DBSTOP, see Chapter 4, “Database Administration Utilities” in the
Adaptive Server IQ Reference Manual.
•
•
In a DBISQL window or command file, issue the STOP ENGINE
command to stop a named database server.
In UNIX, in the window where the database server was started, type:
q
This command does not work if you have redirected input to a different
device.
43
Stopping the database server
Example — Stop a
server with stop_asiq
The following example uses the stop_asiq utility on UNIX systems to shut
down an Adaptive Server IQ server and close all user connections to it.
When you issue the stop_asiq command, Adaptive Server IQ lists all the
servers owned by other users, followed by the server(s) you own. It then asks
if you want to stop your server. For example:
% stop_asiq
Checking system for ASIQ 12 Servers ...
The following 3 server(s) are owned by other users.
##
Owner
PID Started CPU_Time
-- --------- ----- -------- -------- -----------------------
hsin 19895
Mar.21
1:33
asiqsrv12 -c 16m -gd all -gm 10 -gn 25 -gp 4096 -ti 4400 -tl 300
-n hsin -x tcp
qadaily 24754 01:25:07 1286:53
asiqsrv12 -gn 25 @/express1/qa/daily/engine/new.cfg asiqdemo.db
-o /express1/qa
washburn 28350
Apr.11
0:20
asiqsrv12 -gn 25 @asiqdemo.cfg -o
/express1/users/washburn/mysybase12.4.0/asiq1
The following 1 server(s) are owned by ’janed’
##
-- --------- ----- -------- -------- -----------------------
1: janed 2838 15:11:37 0:07
Owner
PID Started CPU_Time
asiqsrv12 -c 16m -gd all -gm 10 -gn 25 -gp 4096 -ti 4400 -tl 300 @asiqdemo.cfg
--
Please note that ’stop_asiq’ will shutdown a server completely
without regard for users connections or load processes status.
For a finer level of detail the utility ’dbstop’ has the options
to control whether a server is stopped based on active connections.
Do you want to stop the server displayed above <Y/N>?
To shut down the server, type Y(yes). Messages like the following display:
Shutting down server (2838) ...
Checkpointing server (2838) ...
Server shutdown.
To leave the server running, type N (no). You return to the system prompt and
IQ does not shut down the server.
44
CHAPTER 2 Running Adaptive Server IQ
If no running servers were started by your user ID, Adaptive Server IQ
displays information about servers run by other users, then a message like the
following:
There are no servers owned by ’janed’
Example —Stop a
server from DBISQL
The following example stops a server from DBISQL:
STOP ENGINE Ottawa UNCONDITIONALLY
The optional keyword UNCONDITIONALLY specifies that the database server
will be stopped even if there are connections to it.
Note You can stop a server from DBISQL if you are connected as DBA to one
of the databases running on that server (including the utility_db database), or if
the server was started with the -gk ALL option.
Who can stop the server?
When you start a server, you can use the -gk option to set the level of
permissions required for users to stop the server. The default level of
permissions required is DBA, but you can also set the value to ALL or NONE. If
you set it to NONE, even the DBA cannot execute STOP ENGINE. In a
production environment, Sybase strongly recommends that only the DBA be
allowed to stop the database server.
Interactively, of course, anyone at the machine where the server was started can
click Shutdown (NT only) or type q on the server window.
Shutting down operating system sessions
Always stop the database server explicitly before closing the operating system
session.
If you close an operating system session where a database server is running, or
if you use an operating system command to stop the database server (other than
the UNIX command shown in the previous section), the server shuts down, but
not cleanly. Next time the database is loaded, recovery happens automatically.
For information on system recovery, see Adaptive Server IQ Troubleshooting
and Error Messages Guide.
45
Starting and stopping databases
Examples of commands that do not stop a server cleanly include:
•
Stopping the process in the Windows NT Task Manager Processes
window.
•
Using a UNIX kill command.
Starting and stopping databases
You can start databases when you start the server, or after the server is running.
To start a database when you start the server, see “Starting the database server”
on page 21 for details.
A database server can have more than one database in use at a time. However,
it is more common to run one database per server, especially in a production
environment.
Starting a database on
a running server
There are several ways to start a database on a running server.
•
•
•
To start a database from DBISQL or Embedded SQL, use the START
DATABASE statement. For a description, see the chapter “SQL
Statements” in the Adaptive Server IQ Reference Manual.
To start and connect to a database from DBISQL or Sybase Central, use a
data source that specifies the database file. See “Working with ODBC data
sources”.
To start and connect to a database when you start DBISQL from a system
command prompt, include the parameter “DBF=db-file” in the connection
parameters. See “Connecting to a database from DBISQL”.
•
•
To start a database from Sybase Central, see Chapter 4, “Managing
Databases with Sybase Central” in Introduction to Adaptive Server IQ
To start an embedded database, while connected to a server, connect to a
database using a DBF parameter. This parameter specifies a database file
for a new connection. The database file is loaded onto the current server.
Page size limitations
The server holds database information in memory using pages of a fixed size.
Once a server has been started, you cannot load a database that has a larger
Catalog page size or IQ page size than the server. For this reason, you should
always set the Catalog page size to its maximum value, 4096 bytes, with the
-gp switch.
46
CHAPTER 2 Running Adaptive Server IQ
Permission limitations
Stopping a database
The -gd server command-line option determines the permission level required
to start databases. By default, this option is set to DBA, so that only users with
database administrator privileges can start IQ databases. However, you can
also set this option to ALL or NONE. ALL means that all users can start a
database. NONE means that no users, including the DBA, can start a database.
You can stop a database in the following ways:
•
Disconnect from a database started by a connection string. The database
stops automatically when the last user disconnects from it, unless you
explicitly set the AUTOSTOP connection parameter to NO.
•
From DBISQL or Embedded SQL, use the STOP DATABASE statement.
For information, see the Adaptive Server IQ Reference Manual.
Starting the asiqdemo database
You can start the server and the asiqdemo database easily, using the
configuration file that Adaptive Server IQ provides. This configuration file,
called asiqdemo.cfg, contains all the parameters necessary to start the sample
database.
❖
To start the server and asiqdemo database on UNIX operating systems:
•
From a command line, type the following command:
%cd $ASDIR/demo
%start_asiq @asiqdemo.cfg asiqdemo
These commands use the configuration file asiqdemo.cfg that is created
automatically at installation. You can edit this file to change the parameters you
use to start the sample database. For example, the server name in this file is
hostname_asiqdemo. You can rename the server to a unique name of your
choice, like janed_server.
❖
To start the server and asiqdemo database on a Windows NT system:
•
Click Start on the Taskbar, and select Programs→Adaptive Server IQ
12.0→ Sample Database.
Behind the scenes
The command that executes when you perform these steps is:
path\win32\asiqsrv12 @demo\asiqdemo.cfg
demo\asiqdemo.db
47
Starting and stopping Sybase Central
where path is your Adaptive Server IQ installation directory,
demo\asiqdemo.cfg specifies the configuration file, and demo\asiqdemo.db is
the sample database file. The asiqsrv12 command starts the server in a
dedicated window. You can start database servers by entering this command at
a system command prompt, as described elsewhere in this chapter.
Starting and stopping Sybase Central
If your system supports a graphical user interface, you will use Sybase Central
to perform many administrative tasks. This guide gives summary instructions
for using Sybase Central. For more information, see the Introduction to
Adaptive Server IQ, or use the online help available within Sybase Central.
Starting Sybase
Central on UNIX
Systems
To start Sybase Central, change directory to $SYBASE/sybcentral and type:
% scjview
If you have added $SYBASE/asiq12/bin or $SYBASE/bin to your path, as
instructed at the end of the installation, you can issue the scjview command
from any directory.
Starting Sybase
Central on Windows
NT Systems
To start Sybase Central, select Start→Programs→Adaptive Server IQ
12→Sybase Central Java Edition.
The main Sybase Central window appears.
48
CHAPTER 2 Running Adaptive Server IQ
Figure 2-1: The Sybase Central Hierarchy
Plug-ins for Sybase Central, such as the Adaptive Server IQ database
management system, occupy the first level in the Sybase Central hierarchy
after the root level. A plug-in is a graphical tool for managing a particular
product. When you install the product, you can also install its Sybase Central
plug-in. When you next start Sybase Central, the new product automatically
“plugs in” to Sybase Central and appears in the main window.
The right panel displays the contents of the container that has been selected in
the left panel.
Connecting a plug-in
If you do not see the plug-in for Adaptive Server IQ in the main Sybase Central
window, you can connect to it manually.
❖
Connecting to a plug-in
1
2
Select Tools → Adaptive Server IQ 12.
If you do not see Adaptive Server IQ on the Connect Menu, select Tools
→ Plug-ins.
49
Introduction to connections
3
If Adaptive Server IQ (ASIQ) is listed, select Register. If not, select Load.
Use the Browse button to find and select the file ASIQPlugin.jar. Click
OK.
Stopping Sybase Central
To stop Sybase Central, select File → Exit.
Introduction to connections
The remainder of this chapter describes how client applications connect to
databases. It contains information about connecting to databases from ODBC
applications and application development systems, as well as from Embedded
SQL applications.
Any client application that uses a database must establish a connection to that
database before any work can be done. The connection forms a channel
through which all activity from the client application takes place. For example,
your user ID determines permissions to carry out actions on the database—and
the database server has your user ID because it is part of the request to establish
a connection.
This sounds simple, but some client tools may not clearly indicate connection
status, and a failed command is your first indication that the connection does
not exist. For a novice user, a quick way to confirm the connection is by a
simple select db_name().
The syntax is:
select db_name()
to display the current database, or
select db_name([ database_id ])
to display any database you specify.
50
CHAPTER 2 Running Adaptive Server IQ
How connections are established
To establish a connection, the client application calls functions in one of the
supported interfaces. Adaptive Server IQ supports the following interfaces:
•
•
ODBC — ODBC connections are discussed in this chapter.
Embedded SQL — Embedded SQL connections are discussed in this
chapter.
•
•
Sybase Open Client — Open Client connections are not discussed in this
chapter. For information on connecting to IQ from Open Client
applications, see Chapter 14, “Adaptive Server IQ as a Data Server”
JDBC — JDBC connections are not discussed in this chapter. For
information on connecting via JDBC, see Chapter 4, “Managing
Databases with Sybase Central” in Introduction to Adaptive Server IQ. To
create JDBC data sources, see the chapter entitled “Data Access Using
JDBC” in the Adaptive Server Anywhere User’s Guide.
Note JDBC provides the link between the execution of Java objects and
database operations. For a description of Java support in Adaptive Server IQ,
see “Enabling Java in the database” on page 113.
The interface uses connection information included in the call from the client
application, perhaps together with information held on disk in a file data
source, to locate and connect to a server running the required database. The
following figure is a simplified representation of the pieces involved.
Learning about
connections
If you want ...
Consider reading ...
Some examples to get started quickly
“Simple connection examples”
51
Introduction to connections
If you want ...
Consider reading ...
A conceptual overview
“Connection parameters specify
connections”
To create data sources
“Working with ODBC data sources”
“Working with ODBC data sources”
To see an in-depth description of how
connections are established
To add users and grant them permissions “How Adaptive Server IQ makes
connections”
Todiagnosenetwork-specific connection “Troubleshooting network
issues
communications” in the Adaptive Server
IQ Troubleshooting and Error Messages
Guide
To learn about character set issues
affecting connections
“Connection strings and character sets”
on page 338
Connection parameters specify connections
When an application connects to a database, it uses a set of connection
parameters to define the connection. Connection parameters include
information such as the server name, the database name, and a user ID.
A keyword-value pair, of the form parameter=value, specifies each connection
parameter. For example, you specify the password connection parameter for
the default password as follows:
Password=sql
Connection parameters are passed as connection strings
Connection parameters are assembled into connection strings. In a connection
string, a semicolon separates each connection parameter, as follows:
ServerName=host_asiqdemo;DatabaseName=asiqdemo
Representing
connection strings
This chapter has many examples of connection strings, represented in the
following form:
parameter1=value1
parameter2=value2
...
This is equivalent to the following connection string:
parameter1=value1;parameter2=value2
52
CHAPTER 2 Running Adaptive Server IQ
You must enter a connection string on a single line, with the parameter settings
separated by semicolons.
Connection parameters are passed as connection strings
Connection parameters are passed to the interface library as a connection
string. This string consists of a set of parameters, separated by semicolons.
In general, the connection string built up by an application and passed to the
interface library does not correspond directly to the way a user enters the
information. Instead, a user may fill in a dialog box, or the application may read
connection information from an initialization file.
Certain Adaptive Server IQ utilities accept a connection string as the -c
command-line option and pass the connection string on to the interface library
without change. For example, the following is a typical Collation utility
(dbcollat) command line for Windows NT systems. It should be entered all on
one line.
dbcollat -c "uid=DBA;pwd=SQL;dbn=asiqdemo"
c:\temp\asiqdemo.col
Note DBISQL processes the connection string internally. It does not simply
pass on the connection parameters to the interface library. Do not use
Interactive SQL to test command strings from a command prompt.
Simple connection examples
Although the connection model for Adaptive Server IQ is configurable, and
can become complex, in many cases connecting to a database is very simple.
This section describes some simple cases of applications connecting to an
Adaptive Server IQ database. When you are getting started, this section may be
all you need, for example, if you are running the asiqdemo sample database on
a local server and are not connected to a network. However, in most IQ
environments, in order to ensure that you can connect and disconnect properly,
a very complete set of connection parameters is essential.
53
Simple connection examples
For steps in connecting to a database using Sybase Central, see the Introduction
to Adaptive Server IQ. For more detailed information on available connection
parameters and their use, see “Connection parameters” on page 73.
Connecting to a database from DBISQL
Many examples and exercises throughout the documentation start by
connecting to the sample database from Interactive SQL, also called DBISQL.
Here is how to carry out this step.
Note To avoid ambiguity, specify connection parameters for DBISQL instead
of relying on defaults. You can specify connection parameters in a command
line or an initialization file such as .odbc.ini or odbc.ini. For a complete list, see
Chapter 3, “Connection and Communication Parameters” in Adaptive Server
IQ Reference Manual.
If more than one database is started on a server, for example, you should
specify the database name. In a network with subnets, specify the CommLinks
parameter with protocol options including the host number.
In the .odbc.ini file, you must use the long form of each parameter. For
example, use DatabaseFile instead of DBF.
If your parameters are incomplete or incorrect, you may see an error such as
Database name required to start engine
❖
To connect from a UNIX system:
1
Make sure that your PATH and other environment variables are correctly
set, as described in Chapter 1, “File Locations and Installation Settings” in
the Adaptive Server IQ Reference Manual.
2
To ensure that the sample database is loaded on a running server, at the
UNIX prompt enter:
ps -eaf | grep asiqdemo
If you need to start the sample database, enter:
cd $ASDIR/demo
start_asiq @asiqdemo.cfg asiqdemo
3
If you have not already done so, change to your home directory ($HOME)
and issue the following command to copy the terminfo extension file
default.tix into it:
54
CHAPTER 2 Running Adaptive Server IQ
% cp $SYBASE/asiq12/tix/default.tix
This file controls key sequences for DBISQL and improves the command
window display. For more information, see Chapter 6, “Getting Started
with DBISQL” in Introduction to Adaptive Server IQ.
4
Start DBISQL by entering
dbisql -c
"uid=DBA;pwd=SQL;eng=servername;links=tcpip"
at the command line. Make sure that the value supplied for the servername
is the same server name that was supplied in the start_asiq command to
start the server.
The –c parameter specifies connection parameters. You can also specify
these parameters in a data source, as described later in this chapter.
Note links=tcpip(or CommLinks=tcpip) is only required if you use
TCP/IP to connect to the database. If you use the shared memory port to
connect to a local database you can omit the links parameter; however,
it is always safer—and required on some platforms—to include complete
network parameters.
To connect to a database on a foreign host, you must add the host. For
example:
dbisql -c "uid=DBA;pwd=SQL;eng=SERV1_asiqdemo;
links=tcpip(host=SERV2)"
If the host was started with a non-default port number (not 2638) then the
port number must be added also. For example:
dbisql -c "uid=DBA;pwd=SQL;eng=SERV1_asiqdemo;
links=tcpip(host=SERV2;port=1234)"
If you prefer, use this alternate form of the links clause, which has the same
result:
links=tcpip(host=SERV2:1234)"
❖
To connect from a Windows NT system
1
Select Start → Προγραµσ → Sybase Adaptive Server IQ 12 →
Interactive SQL, or at the NT command prompt enter
dbisql
55
Simple connection examples
You can include the -cparameter to specify connection parameters in the
dbisql command, as described in the procedure above for connecting to
UNIX. If you omit these parameters, the DBISQL logon window appears.
2
Enter the user ID
DBA
and the password
SQL
This is the default user ID and password for Adaptive Server IQ databases
when they are created.
3
Click the Database tab and type the server name (for example,
“hostname_asiqdemo” for the asiqdemo database).
4
If you use TCP/IP to connect to databases, on the Network tab, click on
TCPIP. (If you use the shared memory port for connecting, skip this step.)
If your database is on a remote machine, you must add host information in
the space beside TCPIP by typing “host=servername:nnnn” where
servername is the name of your system and nnnn is your port number. (The
default port number is 2638, but if the host was started with a different
number, use that instead.)
5
6
Click OK to connect to the database.
After you connect to the database, the DBISQL window appears. The
DBISQL window displays the database name, user ID, and server name
for the connection on its title bar. The words “Connected to database”
appear in the Statistics window along with a message displaying the
collation sequence used by the database.
You can connect to any database server that is already running in the same
manner. You can also specify a non-default character set and language.
For more information on using DBISQL, see the chapter “Getting Started with
DBISQL” in the Introduction to Adaptive Server IQ.
Connecting to other databases from DBISQL
The following procedure shows how to connect to a running database from
DBISQL.
56
CHAPTER 2 Running Adaptive Server IQ
❖
To connect to a database from DBISQL on UNIX:
1
Start the server and the database by typing at a system command prompt:
start_asiq dbname
2
Start DBISQL by typing at a system command prompt:
dbisql -c
"uid=userID;pwd=password;eng=dbname;links=tcpip"
For example, to connect to the sample database you would enter:
dbisql -c
"uid=DBA;pwd=SQL;eng=asiqdemo;links=tcpip"
The –c parameter specifies connection parameters. See “Connection
parameters” for more about connection parameters.
To connect to a system on a foreign host, you must add the host:
dbisql -c "uid=DBA;pwd=SQL;eng=dbname;
links=tcpip(host=hostname"
If the host was started with a non-default port number (not 2638) then the
port number must be added as well:
dbisql -c "uid=DBA;pwd=SQL;eng=anotherdb;
links=tcpip(host=hostname;port=nnnn)"
Connecting to an embedded database
An embedded database, designed for use by a single application, runs on the
same machine as the application and is largely hidden from the application
user.
When an application uses an embedded database, the database server is
generally not running when the application connects. In this case, you can start
the database using the connection string, and by specifying the database file in
the DatabaseFile (DBF) parameter of the connection string.
Using the DBF
parameter
The DBF parameter specifies which database file to use. The database file
automatically loads onto the default server, or starts a server if none is running.
The database unloads when there are no more connections to the database
(generally when the application that started the connection disconnects). If the
connection started the server, it stops once the database unloads.
57
Simple connection examples
The following connection parameters show how to load the sample database as
an embedded database:
dbf=path\asiqdemo.db
uid=dba
pwd=sql
where path is the name of your Adaptive Server IQ installation directory.
Using the Start
parameter
The following connection parameters show how you can customize the startup
of the sample database as an embedded database. This is useful if you wish to
use command-line options, such as the cache size:
Start=asiqsrv12 -gm 10 -gp 4096 -c 8M
dbf=path\asiqdemo.db
uid=dba
pwd=sql
Extra cache needed for Java
If you are using Java in an embedded database, you should use the start line to
provide more than the default cache size. For development purposes, a cache
size of 8 MB is sufficient.
Example: connecting
from DBSQL
In this example, the sample database is an embedded database within DBSQL.
❖
To connect to an embedded database from DBSQL in Windows NT:
1
Start DBISQL with no databases running. You can use either of the
following ways:
•
From the Windows NT Start menu, choose Sybase→Adaptive Server
Anywhere →Interactive SQL.
•
Type dbisqlat a system command prompt.
When DBISQL starts, it is not connected to any database.
2
3
4
Type CONNECT in the command window, and press F9 to execute the
command. The connection dialog appears.
If you have an ODBC data source for your database, select that data
source.
Enter DBAas the user ID and SQLas the password. Then click the Database
tab. Enter the full path of the sample database in the Database File field.
For example, if your installation directory is c:\sybase\asiq12 you should
enter the following:
c:\sybase\asiq12\asiqdemo.db
58
CHAPTER 2 Running Adaptive Server IQ
5
Leave all other fields blank, and click OK. Adaptive Server IQ starts up
and loads the sample database, and DBISQL connects to the database.
Connecting using a data source
You can save sets of connection parameters in a data source. Data sources can
be used by ODBC and Embedded SQL applications like DBISQL. You can
create data sources from the ODBC Administrator; see “Creating and editing
ODBC data sources” for details.
The following procedure shows how to connect to the sample database from
DBISQL using a data source.
❖
To connect using a data source:
1
Start DBISQL with no databases running.
•
•
On UNIX, type dbisql at a system command prompt.
On Windows NT, from the Start menu choose Programs→Sybase →
Adaptive Server IQ 12.0 → Interactive SQL.
2
3
Enter DBA as the user ID and SQL as the password.
Specify the data source. On Windows NT, you can select from the drop-
down list of ODBC data sources; for the sample database, select ASIQ12
Sample. On UNIX you must enter it in the ODBC Data Source field.
4
For the sample database, leave all other fields blank, and click OK.
Adaptive Server IQ starts up and loads the sample database, and
Interactive SQL connects to the database. For other databases you may
need to provide additional information, depending on your data source.
Note You can also specify the data source name by including the dsn
connection parameter in the dbisql command, as follows:
dbisql -c "dsn=ASIQ12 Sample"
The asiqdemo data
source
The asiqdemo data source holds a set of connection parameters, including the
database file and a Start parameter to start the sample database. The server
name in this data source is “hostname_asiqdemo” where hostname represents
your system name.
59
Simple connection examples
Connecting to a server on a network
To connect to a database running on a network server somewhere on a local or
wide area network, the client software must be able to locate the database
server. Adaptive Server IQ provides a network library (a DLL or shared
library) that handles this task.
Network connections occur over a network protocol. Several protocols are
supported, including TCP/IP, IPX, and NetBIOS.
Specifying the server
Adaptive Server IQ server names are unique on a local domain for a given
network protocol. The following connection parameters provide a simple
example for connecting to a server running elsewhere on a network:
eng=svr_name
dbn=db_name
uid=user_id
pwd=password
CommLinks=all
The client library first looks for a local server of the given name, and then looks
on the network for a server of the specified name.
The above example finds any server started using the default port number.
However, you can start servers using other port numbers by providing more
information in the CommLinks parameter. For information on this parameter,
see Chapter 3, “Connection and Communication Parameters” in Adaptive
Server IQ Reference Manual.
Specifying the
protocol
If several protocols are available, you can tell the network library which ones
to use. The following parameters use only the TCP/IP protocol:
eng=svr_name
dbn=db_name
uid=user_id
pwd=password
CommLinks=tcpip
60
CHAPTER 2 Running Adaptive Server IQ
The network library searches for a server by broadcasting over the network,
which can be a time-consuming process. Once the network library locates a
server, the client library stores its name and network address in a file. Users
should never need to use this file directly. Adaptive Server IQ reuses this entry
for subsequent connection attempts, which can be many times faster than a
connection that is achieved by broadcast.
Many other connection parameters are available to assist Adaptive Server IQ
in locating a server efficiently over a network. For more information see
“Network communications parameters” in the Adaptive Server IQ Reference
Manual.
To see how you can include connection parameters in an ODBC data source,
see “Creating and editing ODBC data sources”.
Note In a subnetted network environment, it is possible to have multiple
servers with the same name and port number running on different nodes in
different subnets. This is true because in most situations, routers are not
programmed to pass broadcast messages between subnets. If you are running
in a subnetted environment, it is always safest to use specific host, port
numbers, and server names to guarantee that you are connecting to the proper
server and database. This is particularly true when using default connection
parameters, and is required on AIX platforms.
Using default connection parameters
You can leave many connection parameters unspecified, and instead use the
default behavior to make a connection.
Note Be extremely cautious about relying on default behavior in production
environments, especially if you distribute your application to customers who
may install other Adaptive Server IQ or Adaptive Server Anywhere
applications on their machine.
Default database
server
If you are connecting to a database on your local server, and more than one
database has been started on that server, you need to specify the database you
wish to connect to, but you can leave the server as a default:
dbn=db_name
uid=user_id
61
Simple connection examples
pwd=password
Note Do not use these parameters if more than one local server is running, or
you may connect to the wrong server.
Default database
If more than one server is running, you need to specify which one you wish to
connect to. If only one database has been started on that server, you do not need
to specify the database name. The following connection string connects to a
named server, using the default database:
eng=server_name
uid=user_id
pwd=password
No defaults
The following connection string connects to a named server, using a named
database:
eng=server_name
dbn=db_name
uid=user_id
pwd=password
For more information about default behavior, see “How Adaptive Server IQ
makes connections”.
Connecting from Adaptive Server IQ utilities
Adaptive Server IQ database utilities that communicate with the server (rather
than acting directly on database files) do so using Embedded SQL. They follow
the procedure outlined in “How Adaptive Server IQ makes connections” when
connecting to a database.
How database utilities
obtain connection
parameter values
Many of the administration utilities obtain the connection parameter values by:
1
Using values specified on the command line (if there are any). For
example, the following command starts the collation utility on the sample
database on the default server, using the user ID DBA and the password SQL
and the asiqdemo.col collation file:
dbcollat -c "uid=DBA;pwd=SQL;dbn=asiqdemo"
c:\temp\asiqdemo.col
62
CHAPTER 2 Running Adaptive Server IQ
2
Using the SQLCONNECT environment variable settings if any command
line values are missing. Adaptive Server IQ database utilities do not set
this variable automatically. For a description of the SQLCONNECT
environment variable, see Chapter 1, “Environment Variables and
Registry Entries,” in Adaptive Server IQ Reference Manual.
3
Prompting you for a user ID and password to connect to the default
database on the default server, if parameters are not set in the command
line or the SQLCONNECT environment variable.
For a description of command-line switches for each database utility, see
Chapter 4, “Database Administration Utilities” in the Adaptive Server IQ
Reference Manual.
Working with ODBC data sources
You can store a set of Adaptive Server IQ connection parameters as a data
source. Data sources are required to use applications that connect using the
Open Database Connectivity (ODBC) interface.
Microsoft Corporation defines the ODBC interface, which is a standard
interface for connecting client applications to database management systems in
the Windows and Windows NT environments. Many client applications,
including application development systems, use the ODBC interface to access
a wide range of database systems.
Although data sources are especially designed for Windows and Windows NT,
Adaptive Server IQ allows you to create and use them on UNIX servers as well.
This allows ODBC–based client applications to connect to databases on UNIX
servers.
When you connect to a database using ODBC, you use an ODBC data source.
The data source contains a set of connection parameters. You need an ODBC
data source on the client computer for each database you will connect to.
If you have a data source, your connection string can simply name the data
source to use.
Embedded SQL can
use data sources
Embedded SQL applications such as Interactive SQL and the other Adaptive
Server IQ database administration utilities can also use ODBC data sources,
even though they are not ODBC applications.
63
Working with ODBC data sources
DSNs and FILEDSNs
You specify a data source either as a DSN (data source name) or as a FileDSN
(file data source name).
You can reference a data source in the Windows NT registry using the DSN
connection parameter:
DSN=my data source
You can reference a data source held in a file using the FileDSN connection
parameter:
FileDSN=mysource.dsn
DSNs and FileDSNs differ only in how they are stored, and how you create
them. With the exception of encrypted passwords, you can put identical
connection information in them. You can use both DSNs and FileDSNs on any
platform.
Where DSNs and
FileDSNs are stored
A DSN, or Data Source Name, is stored in the file odbc.ini and in the registry
on Windows NT systems. On UNIX platforms it is stored in the odbc.ini file
only.
A FileDSN, or File Data Source Name, is always stored on a file on all
platforms.
File data sources can
be distributed
File data sources can easily be distributed to end users, so that connection
information does not have to be reconstructed on each machine. It can be sent
via email, for example, but is not stored automatically in any public place. If
the file is placed in the default location for file data sources, it is picked up
automatically by ODBC. In this way, managing connections for many users
can be made simpler.
Note Because DSNs are stored in the NT registry, they are public information.
For this reason you should not put a password in a DSN, unless you encrypt it.
If you want to store your password in your data source, use a File DSN.
How you create DSNs
and FILEDSNs
To create DSNs on NT systems, use the ODBC Administrator; do not edit
odbc.ini directly. See “Creating and editing ODBC data sources” for details.
To create File DSNs on Windows NT systems, use the ODBC Administrator.
See “Creating and editing ODBC data sources”.
64
CHAPTER 2 Running Adaptive Server IQ
To create or edit DSNs or File DSNs on UNIX systems, use a text editor. For
DSNs you can edit the .odbc.ini file directly. For File DSNs, create a file with
the name you choose, using the file extension .dsn.
Note Sybase recommends that, to avoid ambiguity, you be as specific as
possible in creating ODBC and other data sources, whether you create them
using the ODBC Administrator, or by editing odbc.ini, .odbc.ini, or .dsn files
directly. If more than one database is started on a server, for example, you
should specify the database name, and in a network with subnets, specify the
CommLinks parameter including the host number when editing files; include
the host number in the network protocol options on the Network tab in the
ODBC Administrator.
If connection parameters are incomplete or incorrect, you may see an error
such as
Database name required to start engine
For a complete list of connection parameters, see Chapter 3, “Connection and
Communication Parameters” in Adaptive Server IQ Reference Manual.
Examples of
connection strings
using data sources
The following connection string specifies an ODBC Data Source Name and a
user ID.
DSN=ASIQ sample;uid=DBA
The following connection string specifies a File Data Source Name, with a user
ID and password.
FILEDSN=ASIQ on UNIX;uid=DBA;pwd=SQL
Creating and editing ODBC data sources
You need an ODBC data source on the client computer for each database you
wish to connect to. You probably already have an odbc.ini file on your system.
On Windows NT, the ODBC Administrator provides a central place for
managing ODBC data sources. The following procedure uses the ODBC
Administrator to add a new data source to your existing odbc.ini, or creates a
new file if necessary.
To create ODBC data sources on UNIX systems, see also “Using ODBC data
sources on UNIX”.
65
Creating and editing ODBC data sources
❖
To create an ODBC User Data Source:
1
Select Settings → Control Panel → ODBC or Select Programs → Sybase
→ Adaptive Server IQ → ODBC Administrator
2
3
4
In the ODBC Data Source Administrator, click Add on the User DSN tab.
Select the Adaptive Server IQ 12 from the list of drivers and click Finish.
In the Adaptive Server IQ ODBC Configuration box, type the Data Source
Name.
5
6
7
Now click the Login tab. Type the User ID and Password for your
database. For example, use “DBA” and “SQL”.
Click the Database tab. If the data source is on your local machine, type a
Start line and Database file, including the path.
If the data source is on a remote system, click the Network tab. Click the
box for the appropriate protocol and specify the options beside the box.
For example, to connect to a server on system PUSHKIN using TCP/IP
protocol and port 1870, you would click TCP/IP and type:
host=pushkin:1870
You could also use the host network address. For example:
host=157.133.66.75:1870
8
Click OK when you have finished defining your data source.
The ODBC Data Source Administrator returns you to the User DSN tab.
For details of the ODBC configuration box and its tabs, see “Configuring
ODBC data sources” on page 67
Note When specifying network connections, you need a different
systemname:port# combination for each database server. The port number
must match the one you started the server with.
❖
To test an ODBC Data Source
To test your data source, you must first start the database.
1
2
Start the database. For example, to start the Sample Database, select Start
→ Programs → Sybase → Adaptive Server IQ 12 → Start ASIQ Demo
Database.
In the ODBC Data Source Administrator, select your new data source from
the list of User Data Sources.
66
CHAPTER 2 Running Adaptive Server IQ
3
4
Click Configure.
On the ODBC Configuration dialog box, click Test Connection.
If you cannot access the Data Source, check that you have filled out the
various tabs with correct file and pathnames.
To edit a data source, select one from the list in the ODBC administrator
window and click Configure.
If you need to access Windows NT across a network in order to create an
ODBC data source, see the Adaptive Server IQ Installation and Configuration
Guide.
Configuring ODBC data sources
This section describes the meaning of each of the options on the ODBC
configuration dialog box, organized by tab.
ODBC tab
Data source name
The Data Source Name is used to identify the ODBC
data source. You can use any descriptive name for the data source (spaces are
allowed) but it is recommended that you keep the name short, as you may need
to enter it in connection strings.
For more information, see the DataSourceName connection parameter in the
Adaptive Server IQ Reference Manual.
Description
You can enter an optional longer description of the Data
Source.
Translator
Choose Adaptive Server IQ 12.0 Translator if your database
uses an OEM code page. If your database uses an ANSI code page, which is
the default, leave this unchecked.
Isolation level
The isolation level for an IQ data source is always
effectively 3. However, the default Catalog Store isolation level is 0.
For more information, see “Isolation levels” on page 302.
67
Creating and editing ODBC data sources
Microsoft applications (keys in SQL Statistics)
Check this box if you
wish foreign keys to be returned by SQL statistics. The ODBC specifications
states that primary and foreign keys should not be returned by SQL statistics,
however, some Microsoft applications (such as Visual Basic and Access)
assume that primary and foreign keys are returned by SQL statistics.
Delphi applications
Check this box to improve performance for Borland
Delphi applications. When this option is checked, one bookmark value is
assigned to each row, instead of the two that are otherwise assigned (one for
fetching forwards and a different one for fetching backwards).
Delphi cannot handle multiple bookmark values for a row. If the option is
unchecked, scrollable cursor performance can suffer since scrolling must
always take place from the beginning of the cursor to the row requested in order
to get the correct bookmark value.
Prevent Driver Not Capable errors
ODBC driver returns a
The Adaptive Server Anywhere
Driver not capable
error code because it does not support qualifiers. Some ODBC applications do
not handle this error properly. Check this box to disable this error code,
allowing such applications to work.
Delay AutoCommit until statement close
Check this box if you wish the
Adaptive Server Anywhere ODBC driver to delay the commit operation until
a statement has been closed.
Describe cursor behavior
Select how often you wish a cursor to be re-
described when a procedure is executed or resumed.
Test Connection
Tests if the information provided will result in a proper
connection. In order for the test to work a user ID and password must have been
specified.
68
CHAPTER 2 Running Adaptive Server IQ
Login tab
Use integrated login
Connects using an integrated login. The User ID and
password do not need to be specified. To use this type of login users must have
been granted integrated login permission. The database being connected to
must also be set up to accept integrated logins. Only users with DBA access
can administer integrated login permissions.
For more information, see “Using integrated logins” on page 87.
User ID
Provide a place for you to enter the User ID for the connection.
Provides a place for you to enter the password for the
Password
connection.
Encrypt password
Check this box if you wish the password to be stored
in encrypted form in the profile.
For more information, on User ID, Password, and Encrypt password, see the
chapter “Connection and Communication Parameters” in the Adaptive Server
IQ Reference Manual.
Database tab
Server name
Start line
Provides a place for you to enter the name of the IQ server.
Enter the server that should be started. Only provide a Start Line
parameter if a database server is being connected to that is not currently
running. For example:
C:\Program Files\Sybase\ASIQ12\win32\asiqsrv12.exe
-gm 10 -gp 4096 -c 8M
dbf=path\asiqdemo.db
uid=DBA pwd=SQL
Database name
Provides a place for you to enter the name of the Adaptive
Server IQ database that you wish to connect to.
Database file
Provides a place for you to enter the full path and name of
the Adaptive Server IQ database file on the server machine. You can also click
Browse to locate the file. For example:
C:\Program Files\Sybase\ASIQ12\demo\asiqdemo.db
Automatically shut down database after last disconnect
Selecting this
will cause the automatic shutdown of the server after the last user has
disconnected.
69
Creating and editing ODBC data sources
For more information on the parameters in the Database tab, see the
EngineName, StartLine, DatabaseName, DatabaseFile, and AutoStop
connection parameters in the chapter “Connection and Communication
Parameters” in the Adaptive Server IQ Reference Manual.
Network tab
Select the network protocol and specify any protocol specific options
where necessary
The TCP/IP, IPX, and NetBIOS check boxes specifies
what protocol or protocols the ODBC DSN will use to access a network
database server. In the adjacent boxes, you may enter communication
parameters that establish and tune connections from your client application to
a database.
For a TCP/IP example, see “To create an ODBC User Data Source:” on page
66. For more information see the CommLinks connection parameter, and
Network communications parameters, in the chapter “Connection and
Communication Parameters” in the Adaptive Server IQ Reference Manual.
Encrypt all network packets
Enables encryption of packets transmitted
from the client machine over the network. By default, network encryption
packets is set to OFF.
Liveness timeout
A liveness packet is sent across a client/server to
confirm that a connection is intact. If the client runs for the liveness timeout
period without detecting a liveness packet, the communication will be severed.
This parameter works only with network server and TCP/IP or IPX
communications protocols. The default is 120 seconds.
Buffer size
Set the maximum size of communication packets, in bytes.
Indicates the amount of space to allocate on startup for
Buffer space
network buffers, in kilobytes.
For more information on the Encryption, LivenessTimeout, CommBufferSize
and CommBufferSpace connection parameters, see the Adaptive Server IQ
Reference Manual.
Advanced tab
Connection name
The name of the connection that is being created.
Character set The name of the character set.
Allow multiple record fetching
Enables multiple records to be retrieved
at one time instead of individually. By default, multiple record fetching is
allowed.
70
CHAPTER 2 Running Adaptive Server IQ
Display debugging information in a log file
which the debugging information is to be saved.
The name of the file in
Additional connection parameters Enter any additional switches here.
Parameters set throughout the remainder of this dialog take precedence over
parameters typed here.
Creating a File Data Source
Data sources are stored in the system registry. File data sources are an
alternative, which are stored as files. File data sources typically have the
extension .dsn. They consist of sections, each section starting with a name
enclosed in square brackets. DSN files are very similar in layout to
initialization files.
Creating a file data
source from the
ODBC Administrator
On Windows NT systems, you can create a file data source using the following
procedure.
❖
To create an ODBC file data source:
1
Select Settings→Control Panel, and then click the ODBC icon to start the
ODBC Administrator.
2
3
4
From the File DSN tab, click Add.
Select Adaptive Server IQ 12 from the list of drivers, and click Next.
Follow the instructions to create the data source.
Creating a file data
source using a text
editor
A file data source is a text file, so it can be edited using any text editor. On
UNIX systems you must use a text editor to create file data sources. One
limitation to using a text editor is that you cannot store encrypted passwords in
the file.
Example of a file data
source
[Sample File Data Source]
ENG = asiqdemo
DBA = DBA
PWD = SQL
71
Using ODBC data sources on UNIX
Using ODBC data sources on UNIX
On UNIX operating systems, ODBC data sources are held in a file named
.odbc.ini. When creating a .odbc.ini file on any UNIX system, you must use the
long form of each identifier, for example:
[My Data Source]
EngineName=myserver
CommLinks=tcpip
UserID=DBA
Password=SQL
Network communications parameters are added as part of the CommLinks
parameter. For a complete list, see “Connection parameters” on page 73.
References to ODBC functions are resolved at run time. The database server
looks for the .odbc.ini file in:
1
2
3
The directory specified by the ODBCHOME environment variable
The directory specified by the HOME environment variables
The path
The database server ignores the ODBC_HOME, ODBC_INI and ODBCINI
environment variables.
Note On UNIX systems, Adaptive Server IQ installation installs only the
ODBC driver, and not the driver manager. The name of the driver file includes
an operating system-specific extension, for example, so for Solaris systems.
For example, on a Sun Solaris system, if you are using an ODBC application
that uses libodbc.so (libodbc.so.1) or libodbcinst.so (libodbcinst.so.1), simply
create symbolic links for these that point to $SYBASE/asiq12/lib/dbodbc6.so.1.
If you are creating a custom ODBC application, you can link directly to
dbodbc6.so.
If Adaptive Server IQ does not detect the presence of an ODBC driver
manager, it will use ~/.odbc.ini for data source information. Otherwise, it will
query the driver manager for data source information.
72
CHAPTER 2 Running Adaptive Server IQ
Connection parameters
Adaptive Server IQ connection parameters are listed in the following table. For
a full description of each of these connection parameters, see Chapter 3,
“Connection and Communication Parameters” in the Adaptive Server IQ
Reference Manual.
Short
Parameter
form
Argument
Description
AutoPreCommit
AutoPreC Yes/No
ommit
Force each statement to
commit before
execution
AutoStop
Astop
Yes/No
Yes/No
Integer
Prevent a database from
being unloaded as soon
as there are no more
open connections.
(Embedded databases)
CommAutoStop
CAstop
CBSize
Unload network
communications ports
as soon as there are no
more open connections
from the client machine.
CommBufferSize
Set the maximum size of
communication packets,
in bytes.
CommBufferSpace
CBSpace Integer
Specify the amount of
space to allocate on
startup for network
buffers, in kilobytes.
CommLinks
Links
CON
String
String
Specify network
communications links.
ConnectionName *
Name a connection to
make switching to it
easier in multi-
connection applications.
DatabaseFile
DBF
DBN
String
String
Identify a database file
to load and connect to
(for embedded
databases).
DatabaseName
Identify a loaded
database to which a
connection needs to be
made.
73
Connection parameters
Short
form
Parameter
Argument
Description
DatabaseSwitches
DBS
String
Provide database-
specific switches when
starting a database.
DataSourceName **
DSN
String
Tell the ODBC driver
manager where to look
in odbc.ini to find
ODBC data source
information.
Debug
DBG
Boolean
Provide diagnostic
information on
communications links
on startup.
DisableMultiRowFetch
DMRF
Boolean
String
Turn off multi-record
fetches across the
network.
EngineName
ENG
ENP
Identify server to
connect to
EncryptedPassword
Encrypted
string
Provide a password, and
store it in an encrypted
fashion in a data source.
Encryption
ENC
Boolean
Encrypt packets
transmitted from the
client machine over the
network.
EngineName / ServerName ENG
String
Name of the database
server.
FileDataSourceName
Integrated
FILEDSN String
Provide a file data
source name for the
connection.
INT
Yes/No
Enable integrated
logins. For a client
application to use an
integrated login, server
must be running with
LOGIN_MODE database
option set to Mixed or
Integrated.
LivenessTimeout
LTO
Integer
Control the termination
of connections when
they are no longer intact.
74
CHAPTER 2 Running Adaptive Server IQ
Short
Parameter
form
Argument
Description
Logfile
LOG
String
Send client error
messages and
debugging messages to
a file.
Password **
ServerName
StartLine
PWD
ENG
Start
String
String
String
Provide a password for
the connection
Specify server to
connect to
Start a database server
running from an
application (for
embedded databases).
Unconditional
Userid **
UNC
UID
Yes/No
String
Stop a server even if
connections are active
User ID with which you
log on to the database
* Not supported in ODBC connections
** Verbose form of keyword not supported in DSN and FILEDSN connection
parameters
Notes
•
Boolean (true or false) arguments are either YES, ON, 1, or TRUE if true,
or NO, OFF, 0, or FALSE if false.
•
•
Connection parameters and their values are case insensitive.
The connection parameters used by the interface library can be obtained
from the following places (in order of precedence):
•
•
•
Connection string
SQLCONNECT environment variable
Data sources
•
•
The server name must be composed of characters in the range 1 to 127 of
the ASCII character set. There is no such limitation on other parameters.
For more information on the character set issues, see “Connection strings
and character sets”.
The following rules govern the priority of parameters:
75
Connection parameters
•
•
The entries in a connection string are read left to right. If the same
parameter is specified more than once, the last one in the string
applies.
If a string contains a DSN or FILEDSN entry, the profile is read from
the configuration file, and the entries from the file are used if they are
not already set. For example, if a connection string contains a data
source name and sets some of the parameters contained in the data
source explicitly, then in case of conflict the explicit parameters are
used.
Connection parameter priorities
Connection parameters often provide more than one way of accomplishing a
given task. This is particularly the case with embedded databases, where a
database server is started by the connection string.
For example, if your connection starts a database, you can specify the database
name using the DBN connection parameter or using the DBS parameter.
Here are some recommendations and notes for situations where connection
parameters conflict:
•
Specify database files using DBF
You can specify a database file on
the Start parameter or using the DBF parameter. DBF is recommended.
•
Specify database names using DBN You can specify a database
name on the Start parameter, the DBS parameter, or using the DBN
parameter. DBN is recommended.
•
Use the Start parameter to specify cache size
Even though you
use the DBF connection parameter to specify a database file, you may still
want to tune the way in which it starts. You can use the Start parameter to
do this.
For example, if you are using the Java features of Adaptive Server IQ, you
should provide additional cache memory for the Catalog Store on the Start
parameter. The following sample set of embedded database connection
parameters describes a connection that may use Java features:
DBF=path\asademo.db
DBN=Sample
ENG=Sample Server
UID=DBA
PWD=SQL
Start=asiqsrv12 -c 8M
76
CHAPTER 2 Running Adaptive Server IQ
How Adaptive Server IQ makes connections
This section describes how the interface libraries establish connections.
Who needs to read
this section?
In many cases, establishing a connection to a database is straightforward using
the information presented in the preceding sections of this chapter. However, if
you are having problems establishing connections to a server, you may need to
understand how Adaptive Server IQ establishes connections in order to resolve
your problems.
Note If you have no problem establishing connections to your database, you
do not need to read this section.
The software follows exactly the same procedure for each of the following
types of client application:
•
Any ODBC application using the SQLDriverConnect function, which is the
common method of connection for ODBC applications. Many application
development systems, such as Sybase PowerBuilder and Power++, belong
to this class of application.
•
Any client application using Embedded SQL and using the recommended
function for connecting to a database (db_string_connect).
The SQL CONNECT statement is available for Embedded SQL
applications and in Interactive SQL. It has two forms: CONNECT AS... and
CONNECT USING... . All the database administration tools, including
utilities and Interactive SQL, use db_string_connect.
Steps in establishing a connection
To establish a connection to Adaptive Server IQ, the client application carries
out the following steps:
1
Locate the interface library. The client application must locate the ODBC
driver or Embedded SQL interface library.
2
Assemble a list of connection parameters. Connection parameters may be
provided in several places, such as data sources, a connection string
assembled by the application, and an environment variable. The ODBC
driver or Embedded SQL interface library assembles the parameters into a
single list.
77
How Adaptive Server IQ makes connections
3
4
Locate a server. Using the connection parameters, the ODBC driver or
Embedded SQL interface library must locate a database server on your
machine or over a network.
Locate the database. Once it locates the server, the ODBC driver or
Embedded SQL interface library must locate the database you are
connecting to.
The following sections describe each of these steps in detail.
Locating the interface library
The client application makes a call to one of the Adaptive Server IQ interface
libraries. In general, the location of this DLL or shared library is transparent to
the user. Here we describe how the library is located, in case of problems.
ODBC driver location
For ODBC, the interface library is also called an ODBC driver. An ODBC
client application calls the ODBC driver manager, and the driver manager
locates Adaptive Server IQ’s driver.
The ODBC driver manager looks in the supplied data source in the odbc.ini file
or registry to locate the driver. When you create a data source using the ODBC
Administrator, Adaptive Server IQ fills in the current location for your ODBC
driver.
Embedded SQL
interface library
location
Embedded SQL applications call the interface library by name. The name of
the Adaptive Server IQ Embedded SQL interface library is as follows:
•
•
Windows NT: dblib6t.dll
UNIX: dblib6 with an operating system-specific extension.
The locations that are searched depend on the operating system:
•
•
On Windows NT, the client application looks for files in the current
directory, in the system path, and in the Windows and Windows\system
directories.
On UNIX, the client application looks for files in the system path and the
user path.
When the library is
located
Once it locates the interface library, the client application passes a connection
string to it. The interface library uses the connection string to assemble a list of
connection parameters, which it uses to establish a connection to a server.
78
CHAPTER 2 Running Adaptive Server IQ
Assembling a list of connection parameters
The following figure illustrates how the interface libraries assemble the list of
connection parameters they will use to establish a connection.
Notes
Key points from the figure are as follows:
•
Precedence — Parameters held in more than one place are subject to the
following order of precedence:
Connection string > SQLCONNECT > profile
That is, if a parameter is supplied both in a data source and in a connection
string, the connection string value overrides the data source value.
•
•
Failure — Failure at this stage occurs only if you specify in the connection
string or in SQLCONNECT a data source that does not exist in the client
connection file.
Common parameters — Depending on other connections already in use,
some connection parameters may be ignored. These include the following:
•
•
AutoStop Ignored if the database is already loaded.
CommLinks The specifications for a network protocol are ignored if
another connection has already set parameters for that protocol.
•
CommBufferSize Ignored if another connection has already set this
parameter.
79
How Adaptive Server IQ makes connections
•
•
CommBufferSpace Ignored if another connection has already set this
parameter.
Unconditional Ignored if the database is already loaded or if the server
is already running.
The interface library uses the completed list of connection parameters to
attempt to connect.
80
|