sybase存储设备has not been correctly activated at startup time

针对Sybase数据库启动失败的问题,本文详细介绍了从错误排查到修复的全过程,包括存储设备权限调整、系统数据库重建等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天又有开发同事表示sybase数据库使用又出现故障,报错情况如下图



(1)客户端无法登陆sybase数据库,报错信息如下:
Device 'add_device' (with physical name '/data/databackup/add_dev.dat',and virtual device number 29) has not been correctly activated at startup time.

Please contact a user with SystemAdministrator (SA) role.Failed to allocate disk space for a work table indatabase 'sybsystemprocs'.

You may be able to free up space by usingthe DUMP TRANsaction command, or you may want to extend the size of thedatabase by using the ALTER DATABASE command.

(2)使用命令行登陆,查看数据库状态信息的命令也都无法使用:



1、  查看数据库日志:


系启动数据库时名为“add_device”的存储设备启动失败。

2、  查看数据库中存储设备权限状况:
(数据库的安装配置等,全部使用的是sybase用户进行操作,数据库启动也使用sybase用户;
数据库登录、存储设备创建使用:sa。)



系新建的存储设备权限被修改,需赋予正确权限:
1. 重新为存储设备授权:
使用root用户,进入存储设备所在路径,将需要修改权限的文件授权为sybase用户:
(或者直接为整个文件夹授权)
chown –R sybase:sybase databackup
2. 然后查看文件夹中文件权限状况,确认授权正确:



3. 重新使用“sybase”用户登录sybase服务器,并重启实例:
如下图,存储设备正常启动,实例正常启动:


 

1、  关于数据库报错
Database 'sybsystemprocs' has not been recovered yet

需重新创建下sybsystemprocs

操作过的步骤具体如下:

1.  启动数据库,提示如下:

Error: 840, Severity: 17, State: 1

evice 'sysprocsdev' (with physical name'/syb_data/sybproc.dat', and virtual device 

number 1) has not been correctly activatedat startup time


2、恢复过程

2.  单用户模式启动:

startserver -f RUN_DBSERVER –m

 

3.  进入数据库,执行命令,允许更改系统表:

1>sp_configure ‘allow updates to systemtables’,1

2>go


4.  删除sybsystemprocs

1>use master

2>go


1>drop database sybsystemprocs  

2>go


OR


1>dbcc dbrepair(sybsystemprocs,dropdb)

2>go


OR


1>delete sysdatabases where dbid=4

2>go

3>delete sysusages where dbid=4

4>go


5.      删除sysdevices表中sybproc.dat设备的定义

1>begin tran

2>delete sysdevices where name='sysprocsdev'

3>commit



6.  重新启动数据库

startserver -f RUN_DBSERVER –m


7.  新建数据库设备,名为'sysprocsdev'sybsystemprocs重新初始化设备:

isql -Usa -P –SDBSERVER


1>use master

2>go


1>disk init

2>name='sysprocsdev', #存储设备名称

3>physname='/data/databackup/sybproc.dat',#存储设备存放路径

4>vdevno=35,#存储设备编号

5>size=51200 #新建设备100M
6>go

6>go



8.  重建sybsystemprocs系统库

1>create database sybsystemprocs onsysprocsdev=90

2>go

效果如下图:




9.  重新启动数据库

startserver -f RUN_DBSERVER –m



10. 允许更改系统表:

1>sp_configure ‘allow updates to systemtables’,0

2>go

效果如下图:




11. 重建存储过程

isql -Usa -P -SDBSERVER -n -i/opt/sybase/ASE-15_0/scripts/installmaster

效果如下图:













### 解决 Ubuntu 上 scikit-learn 安装或构建失败的问题 #### 环境准备 为了确保 scikit-learn 能够顺利安装,在 Ubuntu 上需预先安装一系列依赖库。这些依赖对于编译和运行 Python 的科学计算包至关重要。 ```bash $ apt-get install -y python3-numpy python3-dev cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev python3-opengl libboost-all-dev libsdl2-dev swig ``` 此命令会安装多个必要的开发工具和库文件,有助于创建一个适合机器学习框架的环境[^1]。 #### 卸载旧版本并重置环境 如果有先前已安装过的不兼容版本存在,则可能导致新的安装过程出现问题。因此建议先移除现有的 `scikit-learn` 及其关联组件: ```bash sudo pip uninstall scikit-learn ``` 接着清理缓存中的 wheel 文件和其他残留数据来保证全新安装: ```bash rm -rf ~/.cache/pip/ ``` #### 更新 pip 工具链至最新稳定版 考虑到不同版本间的差异可能引发冲突,推荐升级到最新的 pip 版本以获得更好的支持和服务: ```bash pip install --upgrade pip setuptools wheel ``` 这一步骤可以有效减少由于软件包管理器本身带来的不确定性因素[^4]。 #### 正确安装 scikit-learn 完成上述准备工作之后,现在可以安全地通过 pip 来获取官方发布的最新版本: ```bash pip install scikit-learn ``` 或者指定特定版本号来进行精确控制: ```bash pip install scikit-learn==<desired_version> ``` #### 验证安装成功与否 最后验证新安装是否正常工作非常重要。可以通过简单的测试脚本来确认各个主要模块能否被正确加载: ```python python3 -c "import jupyter, matplotlib, numpy, pandas, scipy, sklearn" ``` 这段代码将会依次尝试引入几个常用的科学计算库,并报告任何潜在错误消息给终端窗口[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值