错误信息:
Msg 1105, Level 17, State 1:
Can't allocate space for object 'table_n1' in database
'sybdb' because the 'default' segment is full. If you ran out of
space in syslogs, dump the transaction log. Otherwise, use ALTER
DATABASE or sp_extendsegment to increase the size of the segment.

 

Sybase 的解决方案
http://www.sybase.com/detail?id=2887
以下有些步骤我没有尝试,在生产系统上改变segment的映射风险太大了.正在寻求好的解决办法
----------------------------------------------------------------
Error 1105 While Building the System Procedures Database During 10.x to 11.x Upgrade

If you used alter database to increase the size of the sybsystemprocs database, you may need to manually extend the log segment. Alter database extends only the data segment, resulting in an 1105 out-of-space error for the log.

 

Contents
The Upgrade Phase Where the Problem Occurs
The installation utility sybinit performs the following upgrade phases:

Phase I: Running the preupgrade check and booting the 11.0.x SQL Server
Phase II: Upgrading system and user databases
Phase III: Remapping compiled objects (4.9.2 only)
Phase IV: Running scripts to build the master, model, and stored procedure databases
This technotes describes a problem which may occur when sybinit runs the installmaster script during Phase IV.

Description of the Problem
System 11 requires you to increase the size the stored procedure database by at least 3MB from its System 10 size. You can do this by using the alter database command to extend the database onto a new device fragment.
However, the alter database command extends only the system and data segments onto the new device, not the log segment. None of the new space is devoted to the transaction log, so you may run out of log space during upgrade.

This problem occurs only on 10.x upgrades; during 4.x upgrades, the upgrade process builds a new stored procedure database.


Sample sybinit Error Log
The following is a fragment of a sybinit error log showing an 1105 out-of-space error while running installmaster:
02/24/97 02:40:52 PM Installing Sybase system stored procedures 02/24/97 02:57:53 PM SQL Server message: msg 1105, level 17, state 3 02/24/97 04:00:51 PM SERVER ERROR: "Can't allocate space for object `syslogs' in database `sybsystemprocs' because the `logsegment' segment is full. If you ran out of space in syslogs, dump the transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to increase the size of the segment." 02/24/97 04:00:54 PM SQL Server message: msg 1141, level 26, state 1 02/24/97 04:01:07 PM SERVER ERROR: "Unexpected value returned to page manager routine: 0." 02/24/97 04:01:09 PM CONNECTIVITY ERROR: Error sending SQL to server `REL1002'. 02/24/97 04:01:10 PM CONNECTIVITY ERROR: DB-Library error: `DBPROCESS is dead or not enabled.'. 02/24/97 04:01:13 PM Task failed: install system stored procedures. Terminating configuration.

Workaround
To recover from this failure, you need to change the segment label of the new fragment. You do this by changing the value in the segmap column of the sysusages system table from 3 to 7. (The segmap is a numerical value that indicates the type of data to place in the database fragment.) Follow these steps to change the segmap value of the new fragment of the stored procedures database to allow log data to be placed there:

At this point, your 11.0.2 SQL Server has been started and is running. Use isql to connect to it, then enter:
1> sp_configure "allow updates", 1

2> go


Check the sysusages system table before making any changes.

1> select * from sysusages

2> where dbid=db_id(`sybsystemprocs')

2> go


Substitute the correct stored procedure database name on PC platforms.
In the segmap column, a value of 3 means that the segment contains data, 4 means log, and 7 means both log and data. You will probably see a segmap value of 3 for the stored procedures database on the new device.


Change the segmap value of the new stored procedures database fragment from 3 (data only) to 7 (data and log):
1> begin tran

2> go


1> update sysusages

2> set segmap = 7

3> where dbid = db_id(`sybsystemprocs')

 and segmap = 3

4> go


If the output says that only one row is affected, enter:

1> commit tran

2> go


If more than one row is affected, enter:

1> rollback

2> go

 

--------------------------------------------------------------------------------
WARNING!
If you are not able to correct the segmap value at this point, or have any questions about the procedure, stop and call Technical Support. Updates to system tables are usually advised against; however, this workaround is necessary to continue the upgrade without rebuilding the stored procedures database.
--------------------------------------------------------------------------------

Shut down, then restart the 11.0.2 SQL Server.

--------------------------------------------------------------------------------
WARNING!
Be careful to start the 11.0.2 SQL Server using the 11.0.2 RUN_SERVER file. Starting an earlier version of SQL Server after the databases have been upgraded to 11.0.2 causes corruption in the log. If this happens, you must restore your 10.x SQL Server from dumps and repeat the upgrade.
--------------------------------------------------------------------------------

Run the installmaster and installmodel scripts. At the operating system command line, enter:
UNIX:


isql -Usa -Psa_password -i$SYBASE/scripts/installmaster


isql -Usa -Psa_password -i$SYBASE/scripts/installmodel


VMS:


isql /usr=`sa' /password=` '

 /input=SYBASE_SYSTEM:[sybase.scripts]installmaster


isql /usr=`sa' /password=` '

 /input=SYBASE_SYSTEM:[sybase.scripts]installmodel


The upgrade is now complete.
--------------------------------------------------------------------

 

 

posted on 2005-02-06 10:54  xpoint  阅读(1125)  评论(0编辑  收藏  举报