-
Sybase
数据库故障处理方法
一、
Sybsystemprocs
库
“
挂起
”
解决办法
1.
修改
文件
,
修改
Sybase
数据库可以修改系统参数
.
2.
$$ vi
查找
―allow
updates‖ ,
将其修改为
1.(
缺省值为
0).
既
allow updates
to system tables=1
重新启动系统
.
3.
用
isql
登录到
sql
server
中
,
修改
<
/p>
master
库中
sysdatabas
es
sybsystemprocs
库对应的
status
的值为
-32768.
$$isql
–
Usa
–
P
1>
update master..sysdatabases
2>
set status =
-
32768 where name
=‖sybsystemprocs‖
1>go
1>shutdown with nowait
2>go
关闭数据库重新启动
.
4.
用
isql
登录到
sql
server
中
,
修改
<
/p>
master
库中
sysdatabas
es
sybsystemprocs
库对应的
status
的值为
0.
$$isql
–
Usa
–
P
1>update
master..sysdatabases
2>set
status = 0
where name
=‖sybsystemprocs‖
3>go
1>shutdown with nowait
2>go
关闭数据库重新启动
.
5.
将
中的
‖allow updates
to system‖
的值改为
0.
二、如何恢复
master
数据库
ASE
can't setup and has no valid dump of master
1
、编辑
R
UN_servername
在命令行最后加入:
-T3607
2
、单用户模式启动
ASE
$$cd install
$$startserver -f
RUN_servername -m
3
、
bcp
out
系统表
$$bcp
master..sysdevices out
/directory
.spec/devs -Usa -P -c
$$bcp master..sysdatabases out
/directory
.spec/dbs -Usa -P -c
$$bcp master..sysusages out
/directory
.spec/usages -Usa -P -c
表中
表中
$$bcp master..syslogins out
/directory
.spec/logins -Usa -P -c
$$bcp master..sysconfigures out
/directory
.spec/configures -Usa -P -c
$$bcp master..syscharsets out
/directory
.spec/charsets -Usa -P -c
4
、
shutdownASE
5
、创建新
master
设备
$$buildmaster
-d
(new_master_
device_size
以
2K
为单位
)
6
、编
辑
RUN_servername
将指定
master
设备指定为新创建的
master
设备,
并删除在第
1
步中
增加的参数。
7
< br>、删除
/directory
.spec/dbs
、
/directory
.spec/usa
ges
文件中有关
master
、
p>
tempdb
、
model
的内容。
8
、单用户模式启动
ASE
$$cd install
$$startserver -f
RUN_servername -m
9
、
bcp
in
系统表
$$ bcp
master..sysdevices in
/directory
.spec/devs -Usa -P -b 1 -c
$$bcp master..sysdatabases in
/directory
.spec/dbs -Usa -P -b 1 -c
$$bcp master..sysusages in
/directory
.spec/usages -Usa -P -b 1 -c
$$bcp master..syslogins in
/directory
.spec/logins -Usa -P -b 1 -c
$$bcp master..sysconfigures in
/directory
.spec/configures -Usa -P -b 1
-c
$$bcp master..syscharsets in
/directory
.spec/charsets -Usa -P -b 1
-c
10
、
shudown ASE
11
、执行
installmaster
脚本
$$isql -Usa -P <
$$SYBASE/scripts/installmaster
12
、启动
ASE
< br>三、如何删除坏的用户数据库?
(
以
pubs2
为例
)
当使用
drop
database<
/p>
无法删除数据库时,使用本文所示方法可
以删除。
(1)
使用
isql
以
sa
注册
SQL
server
(2)
设置允许修改系统表
1>sp_configure
2>go
(3)
把
要
删除的用户数据库置为
状态
1>use master
2>go
1>begin tran
2>go
1>update sysdatabases set status=256
2>where name=
3>go
如果得到
(1 row
affected),
则
1>commit
2>go
否则
1>rollback
2>go
(4)
重启
server,
并用
isql
以
sa
p>
注册。
(5)
删除数据库
1>dbcc dbrepair(pubs2,dropdb)
2>go
(6)
恢复允许修改系统表
1>sp_configure
2>go
(7)
结束
四、如何做
rebuild log
注意:这个过程可能会引起数据的不一致性。
(1)
赋予
sa
用户
sybase_ts_role
的角色
isql -Usa -P
1>sp_role
2>go
1>quit
(2)
将数据库置为
状态
isql -Usa -P
1>sp_configure
2>go
1>use master
2>go
1>update sysdatabases
set status=-32768
2>where
name=
3>go
1>shutdown with
nowait
2>go
(3)rebuild
数据库日志
重启
Server
isql
-Usa -P
1>use master
2>go
1>dbcc rebuild_log(database_name,1,1)
2>go
1>shutdown with nowait
2>go
(4)
重启
SQL server
1>use master
2>go
1>update sysdatabases set status=0
where name=
2>go
1>sp_configure
2>go
1>shutdown with nowait
2>go
(5)
在重启
SQL
server
之后
,
如果数据
库恢复正常,
rebuild
log
工作将会成功
完成,否则要恢复数据库备份,使用
dump d
atabase
或
bcp
命令。
五、数据库被标记为
时
(1) ----
一般解决方案
现象:
Error 926
Severity Level 14
Error
Message Text
Database 'xx' cannot be
opened - it has been marked SUSPECT by
recover Explanation
(1)
当你使用
Transact_SQL
< br>命令操作这个数据库的数据时
,
出现
这个信息
,
这是一个严重的
错误
,
如果你要使用这个数据库的数据
,
必须改正这个错误
.
(2)
启动
Backup Server,
后备
master
数据库
1>dump database master to
2>go
(3)
用
isql
登录到
SQL Server,
须用
sa
帐号
(
本文以
pubs2
数
据库为例
)
1>sp_configure
2>go
1>begin tran
2>go
1>update
master..sysdatabases
2>set
status =
-
32768
3>Where
name=
4>go
如果得到
(1 row
affected),
则
1>commit
2>go
否则
1>rollback
2>go
(4)
如果条件允许,
bcp out
用户数据或
dump
用户数据库
(5)
这时重新启动
SQL
Server,
再有
sa
帐号注册到
SQL Server.
1>begin tran
2>go
1>update master..sysdatabases
2>set status=0
3>Where name=
4>go
如果得到
(1 row
affected),
则
1>commit
2>go
否则
1>rollback
2>go
1>sp_configure
2>go
(4)
如果你的数据库原来有
dboption(
例如
into
等
),
你需要重新设置这些
option..
(5)
运行
dbcc
p>
命令检查数据库的一致性
isql -Usa -P -i -o
文件示例:
dbcc checkdb(
go
dbcc checkalloc(
go
dbcc
checkcatalog(
go
grep Msg
(6)
后备用户数据库
1>dump database pubs2 on
2>go
六、数据库被标记为
时
(2)
----
数据库设备损坏时的解决方
案
现象:
926
错误产生的原因有几种
。本文讨论当数据库设备初始
化失败
(
设备文件丢失或文
件读写权限不正确
)
p>
时,导致数据库恢复失败,出现
926
错误
的情况。
(1)
请先恢复数据库设备及读写权限。
(2)
启动
Backup Server,
后备
master
数据库
1>dump database master to
2>go
(3)
用
isql
登录到
SQL
Server,
须用
sa
帐号
(
本文以
pubs2
数据库为例
)
1>sp_configure
2>go
1>begin tran
2>go
1>update master..sysdatabases
2>set status =
status - 256
3>Where name=
4>go
如果得到
(1 row
affected),
则
1>commit
2>go
否则
1>rollback
2>go
(4)
重新启动
SQL Server,
运
行
dbcc
命令检查数据库的一
致性<
/p>
编辑
生成
文件:
dbcc
checkdb(
go
dbcc checkalloc(
go
dbcc
checkcatalog(
go
isql -Usa
-P -i -o
grep Msg
(5)
后备用户数据库
1>dump database pubs2 on
七、如何终止数据库恢复过程
当某一
正常运行的大事务(例如:
update
、
delete
操作)被终止,且重新启动
server
p>
后,运行该事务的数据库处于恢复状态,通常这种状态会持续很长时间,当在此恢复过
程中没有出现任何异常时,建议用户耐心等待恢复过程完成。同时我们提供以下方法来
终止此恢复过程,但请用户注意这些操作将带来数据的不一致性。必要时,希望用户用
完整、可靠的数据库备份恢复此数据库。
(1)
启动
Backup Server,
后备
master
数据库
(这一步很重
要!)
-
-
-
-
-
-
-
-
-
上一篇:牛津英语一年级上册复习过程
下一篇:人教版小学英语单词表大全