文档视界 最新最全的文档下载
当前位置:文档视界 › Sybase数据库故障处理方法

Sybase数据库故障处理方法

Sybase数据库故障处理方法
Sybase数据库故障处理方法

Sybase数据库故障处理方法

一、Sybsystemprocs 库“挂起”解决办法

1.修改Sybase.cfg 文件,修改Sybase 数据库可以修改系统参数.

2.$ vi Sybase.cfg

查找“allow updates” ,将其修改为1.(缺省值为0).

既allow updates to system tables=1

重新启动系统.

3.用 isql 登录到sql server 中,修改master库中sysdatabases 表中

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 中,修改master库中sysdatabases 表中

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.将Sybase.cfg 中的”allow updates to system”的值改为0.

二、如何恢复master数据库

ASE can't setup and has no valid dump of master

1、编辑RUN_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 -s

(new_master_device_size以2K为单位)

6、编辑RUN_servername

将指定master设备指定为新创建的master设备,并删除在第1步中增加的参数。

7、删除/directory.spec/dbs、/directory.spec/usages文件中有关master、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

三、如何删除坏的用户数据库?(以pubs2为例)

当使用drop database无法删除数据库时,使用本文所示方法可

以删除。

(1)使用isql以sa注册SQL server

(2)设置允许修改系统表

1>sp_configure "allow updates",1

2>go

(3)把要删除的用户数据库置为"suspect"状态

1>use master

2>go

1>begin tran

2>go

1>update sysdatabases set status=256

2>where name="pubs2"

3>go

如果得到(1 row affected),则

1>commit

2>go

否则

1>rollback

2>go

(4)重启server,并用isql以sa注册。

(5)删除数据库

1>dbcc dbrepair(pubs2,dropdb)

2>go

(6)恢复允许修改系统表

1>sp_configure "allow updates",0

2>go

(7)结束

四、如何做 rebuild log

注意:这个过程可能会引起数据的不一致性。

(1)赋予sa用户sybase_ts_role的角色

isql -Usa -P

1>sp_role "grant","sybase_ts_role",sa

2>go

1>quit

(2)将数据库置为"bypass recovery"状态

isql -Usa -P

1>sp_configure "allow updates",1

2>go

1>use master

2>go

1>update sysdatabases set status=-32768

2>where name="database_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="database_name"

2>go

1>sp_configure "allow updates",0

2>go

1>shutdown with nowait

2>go

(5)在重启SQL server之后,如果数据库恢复正常,rebuild log工作将会成功完成,否则要恢复数据库备份,使用dump database或bcp命令。

五、数据库被标记为"suspect"时(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命令操作这个数据库的数据时, 出现

这个信息, 这是一个严重的

错误, 如果你要使用这个数据库的数据, 必须改正这个错误.

(2) 启动Backup Server, 后备master数据库

1>dump database master to

"/usr/sybase/master_dump.19991201"

2>go

(3) 用isql登录到SQL Server, 须用sa (本文以pubs2数据库

为例)

1>sp_configure "allow updates", 1

2>go

1>begin tran

2>go

1>update master..sysdatabases

2>set status = -32768

3>Where name="pubs2"

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="pubs2"

4>go

如果得到(1 row affected),则

1>commit

2>go

否则

1>rollback

2>go

1>sp_configure "allow updates" ,0

2>go

(4) 如果你的数据库原来有dboption(例如"select into","trunc log on chkpt"等),

你需要重新设置这些option..

(5) 运行dbcc命令检查数据库的一致性

isql -Usa -P -i dbcc.sql -o dbcc.out

dbcc.sql文件示例:

dbcc checkdb("pubs2")

go

dbcc checkalloc("pubs2")

go

dbcc checkcatalog("pubs2")

go

grep Msg dbcc.out

(6) 后备用户数据库

1>dump database pubs2 on

"/usr/sybase/pubs2_dump.19991201"

2>go

六、数据库被标记为"suspect"时(2) ---- 数据库设备损坏时的解决方案

现象: 926错误产生的原因有几种。本文讨论当数据库设备初始化失败( 设备文件丢失或文

件读写权限不正确 )时,导致数据库恢复失败,出现926错误的情况。

(1) 请先恢复数据库设备及读写权限。

(2) 启动Backup Server, 后备master数据库

1>dump database master to

"/usr/sybase/master_dump.19991201"

2>go

(3) 用isql登录到SQL Server, 须用sa (本文以pubs2数

据库为例)

1>sp_configure "allow updates", 1

2>go

1>begin tran

2>go

1>update master..sysdatabases

2>set status =status - 256

3>Where name="pubs2"

4>go

如果得到(1 row affected),则

1>commit

2>go

否则

1>rollback

2>go

(4) 重新启动SQL Server, 运行dbcc命令检查数据库的一

致性

编辑生成dbcc.sql文件:

dbcc checkdb("pubs2")

go

dbcc checkalloc("pubs2")

go

dbcc checkcatalog("pubs2")

go

isql -Usa -P -i dbcc.sql -o dbcc.out

grep Msg dbcc.out

(5) 后备用户数据库

1>dump database pubs2 on

"/usr/sybase/pubs2_dump.19991201"

七、如何终止数据库恢复过程

当某一正常运行的大事务(例如:update、delete操作)被终止,且重新启动server 后,运行该事务的数据库处于恢复状态,通常这种状态会持续很长时间,当在此恢复过程中没有出现任何异常时,建议用户耐心等待恢复过程完成。同时我们提供以下方法来终止此恢复过程,但请用户注意这些操作将带来数据的不一致性。必要时,希望用户用

完整、可靠的数据库备份恢复此数据库。

(1) 启动Backup Server, 后备master数据库(这一步很重要!)

1>dump database master to "/usr/sybase/master.dup"

2>go

(2) 用isql登录到SQL Server, 须用sa (本文以pubs2数据库为例)

1>sp_configure "allow updates", 1

2>go

1>begin tran

2>go

1> use master

2> go

1>update sysdatabases

2>set status = -32768

3>Where name="pubs2"

4>go

如果得到(1 row affected),则

1>commit

2>go

否则

1>rollback

2>go

(3)这时重新启动SQL Server, 再用sa登录到SQL Server.

1>dump tran pubs2 with no_log

2>go

1>begin tran

2>go

1> use master

2> go

1>update sysdatabases

2>set status=0

3>Where name="pubs2"

4>go

如果得到(1 row affected),则

1>commit

2>go

否则

1>rollback

2>go

1>sp_configure "allow updates" ,0

2>go

(4) 重新启动server

(5) 如果你的数据库原来有dboption(例如"select into","trunc log on

chkpt"等), 你需要重新设置这些option..

(6) 当数据库已经恢复可使用状态后,运行dbcc命令检查数据库的一

致性(参照"如何检查数据库中数据一致性"文章)

(7) 后备用户数据库

例如:

1>dump database pubs2 to "/usr/sybase/pubs2.dup"

2>go

八、如何检查数据库中数据的一致性

数据库一致性检查(dbcc)提供了一些命令用于检查数据库的逻辑和物理一致性。Dbcc主要有两个功能:

1.使用checkstorage 或checktable 及checkdb 在页一级和行一

级检查页链及数据指针。

2.使用checkstorage, checkalloc, 或checkverify, tablealloc, 及

indexalloc 检查页分配。

在下列情况中需要使用dbcc 命令:

1.作为数据库日常维护工作的一部分, 数据库部结构的完整性决

定于sa 或dbo 定期地运行dbcc 检查。

2.在系统报错以后, 确定数据库是否有损坏。

3.在备份数据库之前, 确保备份的完整性。

4.如果怀疑数据库有损坏时, 例如, 使用某个表时报出表损坏的

信息, 可以使用dbcc 确定数据库中其他表是否也有损坏。

下面是dbcc的简单用法:

?dbcc checktable (table_name)

检查指定的表, 检查索引和数据页是否正确, 索引是否正确排序, 所有指针是否一致, 每页的数据信息是否合理, 页偏移是否合理。

?dbcc checkdb (database_name)

对指定数据库的所有表做和checktable 一样的检查。

?dbcc checkalloc (database_name,fix|nofix)

检查指定数据库, 是否所有页面被正确分配, 是否被分配的页面没被使用。当使用"fix"选项时,在检查数据库的同时会自动修复有问题的页面。(若数据库数据量很大,则该过程会持续很长时间。)?dbcc tablealloc (table_name,fix|nofix)

检查指定的表, 是否所有页面被正确分配, 是否被分配的页面没被使用。是checkalloc 的缩小版本, 对指定的表做完整性检查。当使用"fix"

选项时,在检查数据表的同时会自动修复数据表中有问题的页面。

关于上述命令的其它选项及详细使用方法和checkstorage, checkverify, indexalloc 的详细使用方法, 请参阅有关命令手册。

举例1:Unix平台检查pubs2数据库的一致性

1.单用户模式启动Server:

$SYBASE/install startserver -f RUN_server_name -m

2.vi dbcc_db.sql

use master

go

sp_dboption pubs2,"single user",true

go

use pubs2

go

checkpoint

go

dbcc checkdb(pubs2)

go

dbcc checkalloc(pubs2,fix)

go

dbcc checkcatalog(pubs2)

go

use master

go

sp_dboption pubs2,"single user",false

go

use pubs2

go

checkpoint

go

quit

go

3.isql -Usa -Pxxxxxx -SSYBASE dbcc_db.out

4.grep Msg dbcc_db.out

举例2:Unix平台检查pubs2数据库中titles表的一致性

1.vi dbcc_table.sql

use pubs2

go

dbcc checktable(titles)

go

dbcc tablealloc(titles)

go

2.isql -Usa -Pxxxxxx -SSYBASE < dbcc_table.sql > dbcc_table.out grep Msg dbcc_table.out

九、如何做Rebuild Master(没有后备master库,而使用命令disk reinit,disk refit)

提示1:

如果有可能,在执行这个任务之前,请先做操作系统级SYBASE DEVICES的后备。UNIX操作系统可使用命令"dd"。因为如果disk reinit使用了错误的信息,那么,在执行了disk refit之后就会产生无法弥补的错误。倘若,存在一个SYBASE DEVICES的后备文件,将会给我们一个弥补的机会。例如:当disk reinit 使用了过小的size值,我们还可以重新恢复SYBASE DEVICES文件,重新做disk reint、disk refit。

提示2:

在使用disk reinit命令时,将覆盖SYBASE DEVICE(请参照以下语法),安全的做法是size值使用裸分区或系统文件的大小的最大值。如果使用的是UNIX裸分区,即使你不能确认SYBASE DEVICE最初大小是不是最大值,都要使用裸分区大小的最大值。

步骤:

1.获得将要被恢复的SYBASE DEVICE的信息。

这些信息被用来重建sysdevices,sysusages以及sysdatabases。

1.从error log的server启动信息中获得SYBASE DEVICE

的设备名、指定路径。

2.使用裸分区或系统文件的大小的最大值作为SYBASE

DEVICE的

大小。

3.以上信息也可以通过最近的sysdevices系统表的容来获

得。如果

对此信息怀有疑问,还是使用以上的方法比较稳妥。

2.做操作系统级的SYBASE DEVICE后备。UNIX操作系统,使

用"dd"命令实现。

3.配置一个新的ASE Server。在以后的步骤中会用到这个新的

master。

4.如果需要,请再配置一个Backup Server。

5.用单用户模式启动Server。

6.运行disk reinit,用来重建sysdevices系统表,而没有重新初始

化SYBASE DEVICE。

语法如下:

disk reinit

name="device_name",

physname="physical_name",

vdevno=virtual_device_number,

size=number_of_blocks

完成后,请查看error log。

7.确认重建的sysdevices系统表息正确:

——select * from sysdevices

比较表中的信息是否与error log或者保留的sysdevices中的信

息相同。

8.运行disk refit,用来重建sysdevices以及sysdatabases。

用法如下:

use master

go

disk refit

go

查看error log中是否有错误提示。

9.当disk refit完成后,会自动shut down ASE Server。

10.确认重建的系统表的信息是否正确:

——单用户模式启动ASE Server

——select * from sysusages、select * from sysdatabases

——sysusages系统表看起来是否正确?可以和以前保留的的信

息进行比较。如果没有这种可能,那么应该保证不出现显而易

见的错误。例如:是否缺少dbid;是否缺行;是否对于一个数

据库来说只有segmap=4(表示为日志行)的行等等。

——sysdatabases系统表看起来是否正确?是不是没有显而易

见的错误?

11、启动ASE Server,查看是否所有的数据库都已经正常恢复。

11.对所有的库做dbcc检查。

12 对所有库做后备。

删除约束:

alter table ORDERSCRIPT drop constraint CKC_DISCOUNT_ORDERSCR

主键:

alter table SLDETHIST

drop constraint PK_SLDETHIST

go

alter table shop.SLDETHIST

add constraint PK_SLDETHIST primary key nonclustered (SELSEQ,GDNO,SELNO,WORKDATE,SELTYPE)

go

数据库日常维护工作

数据库日常维护工作是系统管理员的重要职责。其内容主要包括以下几个部分: 一、备份系统数据 SYBASE 系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。SQL Server 提供了两种不同类型的恢复机制:一类是系统自动完成的恢复,这种措施在每次系统启动时都自动进行,保证了在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退;另一类是人工完成的恢复,这是通过 DUMP 和 LOAD 命令来执行人工备份和恢复工作。因此定期备份事务日志和数据库是一项十分重要的日常维护工作。 1、备份数据库 每一个数据库都应在创建之后卸出,从而提供一个装入基点。在此之后按排定的时间周期表卸出。比如每周五卸出数据库。对一般数据库系统卸出数据库周期建议为每周一次。 除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。例如:·每次强制地运行了 DUMP TRAN WITH NO_LOG (因为数据库的磁盘空溢出); ·每次用 sp_dboption 允许 select into/bulkcopy 做快速拷贝,或用 SELECT INTO 命令创建一个永久性的表,或使用了 WRITETEXT 命令。 卸出数据库的命令为: DUMP DATABASE database_name TO dump_device database_name 是要卸出的数据库名称,dump_device 是卸出设备的名称。用系统过程 sp_helpdevice 可以获得设备的信息。 下面一条命令用来卸出数据库 my_db : DUMP DATABASE my_db TO db_bk_dev 2、备份事务日志 如果事务日志与数据库放在同一个设备上,则事务日志不应与数据库分开备份。master 数据库和小于 4M 的用户数据库就是这种情况。一般数据库系统的数据库和日志分别放在不同的设备上,因此,可以用 DUMP TRAN 命令单独备份日志。 备份事务日志的周期直接影响数据的恢复程度,因此建议每天备份。 备份事务日志的命令格式为: DUMP TRANsaction database_name [TO dump_device] [WITH TRUNCATE_ONL Y|WITH NO_LOG|WITH NO_TRUNCA TE] 其中 database_name 是要备份事务的数据库名称,dump_device 是备份设备名称,仅当包含了 WITH TRUNCA TE_ONL Y 或 WITH NO_LOG 子句时,才可以备份到设备。 注意:如果总是用 DUMP DA TEBASE (备份数据库及其日志),而不用 DUMP TRAN ,事务日志将不会刷新,而变得非常庞大。

Oracle数据库日常维护工作

文档编号
Oracle 数据库日常维护工作
凌群电脑有限公司 凌群电脑有限公司 2004 年 12 月 15 日

数据库日常维护工作》 《Oracle 数据库日常维护工作》

1.1 1.2 1.3 1.4 1.5 1.6

1. DBA 日常维护工作 ..................................................................................................................... 3 检查已经打开的所有实例 .................................................................................................... 3 检查最新的警告日志 ............................................................................................................ 7 检查数据库备份是否正确 .................................................................................................... 8 检查备份到磁带中的文件是否正确 .................................................................................... 9 检查数据库的性能是否合理,系统资源是否充足 ............................................................ 9 仔细阅读 ORACLE 标准文档 ............................................................................................... 10
2.晚间维护工作 晚间维护工作.............................................................................................................................. 10 晚间维护工作 2.1 收集相关表的统计数据 ....................................................................................................... 10 3.每周维护工作 每周维护工作.............................................................................................................................. 10 每周维护工作 3.1 检查异常的对象................................................................................................................... 10 3.1.1 检查现有的 NEXT_EXTENT 情况:............................................................................ 10 3.1.2 检查已有的 EXTENTS: .............................................................................................. 11 3.1.3 查看哪些表没有主键 .................................................................................................... 11 3.1.4 查找哪些主键是没有发挥作用的 ................................................................................ 12 3.1.5 所有作索引的主键都应是唯一的 ................................................................................ 12 3.2 检查是否有不安全的问题 ................................................................................................... 12 3.3 检查是否有错误 SQL*NET 日志 ....................................................................................... 13 3.4 归档当前告警日志 ............................................................................................................... 13 3.5 访问供应商站点................................................................................................................... 13 4.月维护工作 月维护工作.................................................................................................................................. 13 月维护工作 4.1 检查是否有异常的空间增长 ............................................................................................... 13 4.2 回顾以前数据库性能优化的调整 ....................................................................................... 14 4.3 检查 IO 瓶颈 ........................................................................................................................ 14 4.4 检查碎片的问题(8I 系统) ............................................................................................... 15
2

Sybase数据库死锁对策

Sybase 数据库死锁对策 死锁的发生对系统的性能和吞吐量都有重要影响,经检测发现,管理信息系统的死锁主要是因为两个或多个线程(登录)抢占同一表数据资源。引起长时间抢占同一资源不是因为我们需要处理的事务太复杂,时间太长,而往往是因为我们在前端应用程序对数据库作操作时忘了提交.本文介绍一种处理解决这种死锁的方法。 Sybase 封锁原理 数据共享与数据一致性是一对不可调和的矛盾,为了达到数据共享与数据一致,必须进行并发控制。并发控制的任务就是为了避免共享冲突而引起的数据不一致。Sybase SQL Server 并发控制的方法是加锁机制(LOCKING ). 锁的类型 Sybase SQL Server 有三种封锁类型:排它锁(exclusive lock,简称X 锁);共享锁(share lock,简称S 锁);更新锁(update lock,简称U 锁)。这三种锁的相容矩阵表如下: ×:表示不兼容。∨:表示兼容。 Sybase SQL Server 是自动决定加锁类型的。一般来说, 读(SELECT )操作使用S 锁,写(UPDATE,INSERT 和delete )操作使用X 锁。U 它在一个更新操作开始时获得,当要修改这些页时,U 锁会升级为X 锁。 锁的力度 SQL Server 有两级锁:页锁和表锁。通常页锁比表锁的限制更少(或更小)。页锁对本页的所有行进行锁定,而表锁则锁定整个表。为了减小用户间的数据争用和改进并发性,SQL Server 试图尽可能地使用页锁。 当SQL Server 决定一个语句将访问整个表或表的大多数页时,它用表锁来提供更有效的锁定。锁定策略直接受查询方案约束,如果update 或delete 语句没有可用的索引,它就执行表扫描或请求一个表锁定。如果update 或delete 语句使用了索引,它就通过请求页锁来开始,如果影响到大多数行,它就要请求表锁。一旦一个语句积累的页锁超过锁提升阈值,SQL Server 就设法给该对象分配一个表锁。如果成功了,页锁就不再必要了,因此被释放。表锁也在页层提供避免锁冲突的方法。对于有些命令SQL Server 自动使用表锁。 锁的状态 SQL SERVER 加锁有三种状态: 1)意向锁(intend )—是一种表级锁,它表示在一个数据页上获得一个S 或X 锁的意向。意向锁可以防止其他事务在该数据页的表上获得排它锁。 2)阻塞(blocking,简记blk )—它表明目前加锁进程的状态,带有blk 后缀的锁说明该进程目前正阻塞另一个需要获得锁的进程,只有这一进程完成,其他进程才可以进行。 3)需求锁(demand )—表示此时该进程企图得到一个排它锁。它可以防止 可申请的锁 已有的锁 S U X S ∨ ∨ × U ∨ × × X × × ×

ORACLE数据库日常维护与管理手册

全球眼?(MEGAEYES)网络图像管理系统2.0 ORACLE日常维护与管理手册 北京互信互通信息技术有限公司 2004-08-08

目录 全球眼?(MEGAEYES)网络图像管理系统2.0 (1) 1引言 (3) 1.1 目的 (3) 1.2 范围 (3) 1.3 参考资料 (3) 2日常维护与管理说明 (3) 2.1 运行环境 (3) 2.1.1硬件环境 (3) 2.1.2软件环境 (3) 2.2 数据库日常维护 (4) 2.2.1数据库初始设置 (4) 2.2.2每日工作内容 (5) 2.2.3每周工作内容 (6) 2.2.4每月工作内容 (7)

1引言 1.1目的 对于重要的商业系统来说,数据库系统的正常运行是保证商业应用平稳运行的关键。但是数据库在运行过程中可能会因为种种原因发生问题。这时,数据库的管理与日常维护工作将变得尤为重要。 为了指导数据库管理员做好日常维护工作,保证数据库系统的正常运行,特制定本文档。当然,数据库的日常维护是复杂和繁琐的,本文仅涉及一些常见的数据库日常维护的内容,在实际工作中,数据库管理员还需要做更多的工作。 1.2范围 本文档使用的人员:数据库维护管理人员和相关人员。 本文档涉及内容:oracle数据库的日常维护与管理解决方案。 1.3参考资料 中国电信网络视频监控技术(暂行)规范 2日常维护与管理说明 2.1运行环境 程序的运行环境包括硬件运行环境和软件运行环境。 2.1.1硬件环境 ◆CPU类型:Intel及其兼容系列CPU ◆内存容量:剩余内存要达2G以上 ◆硬盘容量:剩余硬盘容量要达1G以上 ◆网卡类型:100M网卡 2.1.2软件环境 ◆操作系统:RedHat Linux AS 3.0 ◆数据库:Oracle9i Database Release 2 (9.2.0.4.0) for Linux x86

SYBASE数据库故障处理方法

SYBASE数据库故障处理方法 Sybase数据库故障处理方法 一、 Sybsystemprocs 库“挂起”解决办法 1. 修改Sybase.cfg 文件,修改Sybase 数据库可以修改系统参数. 2. $ vi Sybase.cfg 查找―allow updates‖ ,将其修改为1.(缺省值为0). 既 allow updates to system tables=1 重新启动系统. 3. 用 isql 登录到sql server 中,修改 master库中sysdatabases 表中 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 中,修改 master库中sysdatabases 表中 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. 将Sybase.cfg 中的‖allow updates to system‖ 的值改为0. 二、如何恢复master数据库 ASE can't setup and has no valid dump of master 1、编辑RUN_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

数据库日常维护

数据库日常维护(参考) 数据库日常维护工作是系统管理员的重要职责。其内容主要包括以下几个部分: 一、备份系统数据 SYBASE 系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。SQL Server 提供了两种不同类型的恢复机制:一类是系统自动完成的恢复,这种措施在每次系统启动时都自动进行,保证了在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退;另一类是人工完成的恢复,这是通过DUMP 和LOAD 命令来执行人工备份和恢复工作。因此定期备份事务日志和数据库是一项十分重要的日常维护工作。 1、备份数据库 每一个数据库都应在创建之后卸出,从而提供一个装入基点。在此之后按排定的时间周期表卸出。比如每周五卸出数据库。对一般数据库系统卸出数据库周期建议为每周一次。 除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。例如: ·每次强制地运行了DUMP TRAN WITH NO_LOG (因为数据库的磁盘空溢出); ·每次用sp_dboption 允许select into/bulkcopy 做快速拷贝,或用SELECT INTO 命令创建一个永久性的表,或使用了WRITETEXT 命令。 卸出数据库的命令为: DUMP DATABASE database_name TO dump_device database_name 是要卸出的数据库名称,dump_device 是卸出设备的名称。用系统过程sp_helpdevice 可以获得设备的信息。 下面一条命令用来卸出数据库my_db : DUMP DATABASE my_db TO db_bk_dev 2、备份事务日志

Sybase数据库故障处理方法

Sybase数据库故障处理方法 一、Sybsystemprocs 库“挂起”解决办法 1.修改Sybase.cfg 文件,修改Sybase 数据库可以修改系统参数. 2.$ vi Sybase.cfg 查找―allow updates‖ ,将其修改为1.(缺省值为0). 既allow updates to system tables=1 重新启动系统. 3.用 isql 登录到sql server 中,修改master库中sysdatabases 表中 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 中,修改master库中sysdatabases 表中 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.将Sybase.cfg 中的‖allow updates to system‖的值改为0. 二、如何恢复master数据库 ASE can't setup and has no valid dump of master 1、编辑RUN_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

SYBASE数据库常见的问题总结

SYBASE 数据库常见问题总结 SYBASE 数据库常见问题总结 ..................................................................... 错误!未定义书签。 1. SYSLOGS日志满了进不了系统,如何清除日志启动系统 .................... 错误!未定义书签。 2. 数据库日志损坏时重建日志启动数据库的解决办法.............................. 错误!未定义书签。 3. 数据库处于可疑状态的解决方法.............................................................. 错误!未定义书签。4.Sybase系统崩溃了,没有备份,但设备文件还存在,如何恢复数据库?错误!未定义书签。 5.不小心直接删除了日志的设备文件,如何恢复数据库?..................... 错误!未定义书签。6.sa密码忘记了导致isql -Usa -P******进不去怎么办?......................... 错误!未定义书签。7.关于sybase的配置-(数据库慢的请留意) ........................................ 错误!未定义书签。8.设备路径更改的方法................................................................................. 错误!未定义书签。9.dump文件load后数据库访问不了解决办法........................................ 错误!未定义书签。10.sybase数据库备份方案........................................................................... 错误!未定义书签。11.master数据库状态被置为-32768后的处理方法 ................................... 错误!未定义书签。 1. SYSLOGS日志满了进不了系统,如何清除日志启动系统 业务系统数据库不能正常启动,对于这一类问题,我们按照如下步骤解决: 第一步,启用allow updates to system tables,这样可以使具有系统管理员角色的用户能够改变系统表并可创建和修改系统表的存储过程,其中系统表包括master数据库中所有Sybase 提供的表以及用户数据库中所有以“sys”开头的表和在sysobjects表中其ID值小于或等于100的表。系统表的不正确变更会导致数据库损坏和数据丢失,修改系统表时务必要使用begin transaction来保护数据库不受可能损坏数据库的错误影响,完成修改后应立即禁用allow updates to system tables。 1>sp_configure "allow update",1 2>go 第二步,Adaptive Server中的每个数据库在sysdatabases中都有相应的一行,安装Adaptive Server后,master数据库、model数据库、sybsystemprocs和tempdb数据库在sysdatabases 中都将有相应的条目,如果已经安装审计功能,sybsecurity数据库也将在其中有相应的条目。修改sysdatabases表,将testdb的状态修改为-32768,然后在关闭Adaptive Server后重新启动Adaptive Server。 1> update sysdatabases set status=-32768 where name = "testdb" 2>go 1>shutdown 2>go 第三步,由于事务日志已经很满,不能使用常规方法转储此事务日志,如果使用了dump

ORACLE数据库日常维护与管理手册

全球眼(MEGAEYES网络图像管理系统2.0 ORACLE S常维护与管理手册 北京互信互通信息技术有限公司 2004-08-08 目录

1 引言 1.1 目的 对于重要的商业系统来说, 数据库系统的正常运行是保证商业应用平稳运行 的关键。但是 数据库在运行过程中可能会因为种种原因发生问题。 这时,数据库 的管理与日常维护工作将变得尤为重要。 为了指导数据库管理员做好日常维护工作, 保证数据库系统的正常运行, 特 制定本文档。 当然, 数据库的日常维护是复杂和繁琐的, 本文仅涉及一些常见的 数据库日常维护的内容,在实际工作中,数据库管理员还需要做更多的工作。 1.2 范围 本文档使用的人员:数据库维护管理人员和相关人员。 本文档涉及内容: oracle 数据库的 日常维护与管理解决方案。 1.3 参考资料 中国电信网络视频监控技术(暂行)规范 2 日常维护与管理说明 2.1 运行环境 程序的运行环境包括硬件运行环境和软件运行环境。 2.1.1 硬件环境 Intel 及其兼容系列 CPU 剩余内存要达2G 以上 剩余硬盘容量要达 1G 以上 100 M 网卡 2.1.2 软件环境 CPU 类型: 内存容量: 硬盘容量: 网卡类型:

: RedHatLinuxAS3.0 Oracle9iDatabaseRelease2forLinuxx86 2.2数据库日常维护 数据库的日常维护工作主要包括管理员每日的工作内容, 每周的工作内容以 及每月的工作内容。 2.2.1数据库初始设置 基于数据安全性的考虑,需要对数据库进行如下的初始设置。 1数据库设为归档模式 1) 以管理员身份连接数据库 SQL>>connectsys/sys@数据库例程 SIDassysdba 2) 察看数据库是否处于存档模式 SQL>>archiveloglist 说明:该命令会提示以下信息,注意灰色部分显示的状态。 DatabaselogmodeNoArchiveMode AutomaticarchivalDisabled Archivedest in ati on Oldest on li nelogseque nce31 Curren tlogseque nce33 3) 如果处于非归档模式则设为归档模式 SQL>>shutdow nimmediate; SQL>>start upmount; SQL>>alterdatabaseachivelog; 4) 如果处于非自动归档状态则设为自动归档 SQL>>altersystemsetlog_archive_start=TRUESC OP E=s pfile; 5重新启动数据库 SQL>>shutdow nimmediate; SQL>>startu p; 2控制文件设置 每一个数据库都必须有一个控制档。它是一个小型二进制档案,用来描述 Oracle9i 实体结构。主要是储存数据库名称,数据库建立时间,资料文件名称 与所在位置,重置日志文件名称与所在位置,目前的日志序列码 (logsequeneenumber ),检查点信息。因此开启Oracle9i 数据库时一定要读取控 制文件才能取得所有数据库实体档案相关信息。 一旦控制文件不幸毁损,数据库 便无法顺利开启。也因为如此,控制档的管理与维护工作显得格外重要。 通常的设置建议为:每个数据库最好拥有两个以上控制档,并各自存放在不 同磁盘上。系统默认有三个控制文件 controlOl.ctI , control02.ctl , con trol03.ctl 。 如果需要增加更多的控制文件,最简单的方式就是先将既有控制文件复制到 目的位置,然后将控制文件名称加入起始参数档的 CONTROLFILE 之中()。同 理,如果想更改控制档名称,也可以先将控制文件复制到目的位置后予以更名, 再更新操作系统: 数据库:

Sybase数据库故障处理方法

Sybase数据库故障处理方法 一、 Sybsystemprocs 库“挂起”解决办法 1.修改文件,修改Sybase 数据库可以修改系统参数. 2.$ vi 查找“allow updates” ,将其修改为1.(缺省值为0). 既 allow updates to system tables=1 重新启动系统. 3.用isql 登录到sql server 中,修改 master库中sysdatabases 表中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 中,修改 master库中sysdatabases 表中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、编辑RUN_servername 在命令行最后加入:-T3607 2、单用户模式启动ASE $cd install $startserver -f RUN_servername -m 3、bcp out系统表 $bcp master..sysdevices out /devs -Usa -P -c $bcp master..sysdatabases out /dbs -Usa -P -c $bcp master..sysusages out /usages -Usa -P -c $bcp master..syslogins out /logins -Usa -P -c $bcp master..sysconfigures out /configures -Usa -P -c $bcp master..syscharsets out /charsets -Usa -P -c 4、shutdownASE 5、创建新master设备 $buildmaster -d -s (new_master_device_size以2K为单位) 6、编辑RUN_servername 将指定master设备指定为新创建的master设备,并删除在第1步中增加的参数。 7、删除/dbs、/usages文件中有关master、tempdb、model的内容。

DM数据库日常维护管理规范

DM数据库日常维护管理规范 使用工具:DM数据库系统,linux系统,TongWeb 5.0 目的:数据库管理操作,TongWeb5.0部署 内容:数据库启动和关闭,备份和还原,数据迁移操作 一.DM数据库启动和关闭 图形方式: 【达梦数据库】——〉【DM控制台工具console】——〉【DM 控制台】——〉【DM 服务】 在其右侧框右键,【DM DATABASE SERVICE】状态即数据库系统启动/关闭。Linux 命令方式: 终端输入: 开启数据库: /etc/init.d/dmserverd start 关闭数据库: /etc/init.d/dmserverd stop 重启数据库:/etc/init.d/dmserverd restart 提示: 在命令模式下,输入#init 3 ,系统进入图形界面模式 在图形界面下,打开终端,输入#init 5,系统进入命令界面模式 #init 0 关闭服务器。

二.数据库备份和还原(图形界面下) 备份数据库: 方法1:DM数据库控制台console(需要关闭数据库运行) 1.进入DM数据库控制台console,停止DM数据库运行 2.右键【新建备份】 3.开启DM数据库运行,操作完成。 方法2:DM数据库管理工具 Manager(不需要关闭数据库运行) 1.进入DM数据库管理工具 2.选中数据库名称,右键选中【备份】 3.备份完成 PS:备份文件名统一格式:库名+服务器名+日期+时间+备份操作人首拼字母,如“RHIN-213-20110916-14h-cqy” 还原数据库: 方法1:dm控制台console还原(用于本地还原) 1.进入DM数据库控制台console,停止DM数据库运行 2.右键【从指定位置还原】,找到还原包,设置还原路径为DM程序默认安装路 径 3.开启DM数据库运行 4.打开【DB管理工具manager】——〉本地服务器——〉数据库——〉RHIN——〉用户——〉新添加RHIN用户信息和权限(若用户名已存在,则选择该用户名登陆权限,点确定;若不存在,则新建一个RHIN用户名)——〉完成。 5.操作完成。 方法2:脱机还原(用于远程还原) 1.通过CRT软件登录系统,后台命令关闭TongWeb5.0服务进程 2.登录DM数据库管理工具 Manager,备份数据库,名称为RHIN-A.bak,路径统 一为系统默认:/opt/dmdbms/data/ 3.右键数据库【脱机】 4.通过CRT将还原数据库包RHIN-B.bak放入/opt/dmdbms/data/下,重命名 RHIN-A.bak为其他,将RHIN-B.bak重命名为RHIN-A.bak 5.管理工具 Manager 脱机状态下,右键还原RHIN-A.bak 6.联机 7.重启DM数据库和TongWeb5.0应用。 8.完成。

日常工作中使用PowerBuilder和sybase遇到的问题

日常工作中使用PowerBuilder和sybase遇到的问题 (例子中的数据库名称为yanglao) 1.在PowerBuilder使用数据管道 在sybase中进行数据导入导出时,使用数据管道是最方便的一种方法,但也有缺点,数据量过大时,执行效率慢,甚至有时一张表需要几十个小时。如果Database Devices创建的不合理,数据库文件和日志文件不够大,在使用数据管道时,在途会停止操作。如果出现这种情况,先查看一下数据库的log space,如下图: 看一下Free(MB)是否有剩余,如果用完需要清楚日志。在SQL Advantage中执行下面语句:dump transaction yanglao with no_log 附数据管道的报错信息(百度中可搜索) Start()函数返回一个integer值时数据管道的运行是否成功,返回值的意义为: 1 函数执行成功 -1 打不开数据管道 -2 列数太多

-3 要创建的表已经存在 -4 要增加数据的表不存在 -5 未建立与数据库的连接 -6 参数错误 -7 列不匹配 -8 访问源数据库的sql语句致命错误 -9 访问目标数据库的sql语句致命错误 -10 已经达到指定的最大错误数 -12 不正确的表达法 -13 需要关键字、但未指定关键字 -15 数据管道已经在运行 -16 源数据库出错 -17 目标数据库出错 -18 目标数据库处于只读状态,不能写入数据 2.小写字符替换成大写字符 update table1 set sfz=str_replace(sfz,'x','X') str_replace(string要被替换的字符串, string用于替换的字符串,string替换成的字符串) 3.在sybase(版本sybase12.5)中创建database device后,找不到设备 业务情形:创建database后,重新启动数据库系统,在database device管理中找不到该设备。 原因:创建的设备超过2G 解决方法:将超过2G的设备进行分解,例如:需要建10G的设备的,可以建5个2G的设备 4.先打开workspace,再连接数据库报错: 提示信息为: DBMS SYC Adaptive Server Enterprise is not supported in your current installation 解决方法: 百度了许多中方法,都没有解决。自己给powerbuilder打上补丁,问题解决 5.关于sybase的客户端字符属性的问题 字符集的安装 设置默认字符 sp_configure 'default character set id',171 具体步骤: ?(这里SYBASE的安装路径为c:\sybase) c:\>cd \sybase\charsets\cp936 ?c:\sybase\charsets\cp936> charset -U用户名(默认sa) -P密码-S数据库服务器名称 binary.srt cp936 更改默认字符集为cp936(在SQL环境中). ?执行select name,id from syscharsets(会列出字符集对应的id号) ?找到name为cp936对应的id(假设为171) ?执行sp_configure "default character set id",171 6. 重启server两次(注:第一次启动后, server会自动宕掉,需要第二次重启后才能使用) 6.备份还原sybase数据库

解决Sybase数据库死锁

解决Sybase数据库死锁 2005-10-19 17:29 ChinaUnix 我要评论(1)字号:T | T 死锁的发生对系统的性能和吞吐量都有重要影响,经检测发现,管理信息系统的死锁主要是因为两个或多个线程(登录)抢占同一表数据资源。 AD: 死锁的发生对系统的性能和吞吐量都有重要影响,经检测发现,管理信息系统的死锁主要是因为两个或多个线程(登录)抢占同一表数据资源。引起长时间抢占同一资源不是因为我们需要处理的事务太复杂,时间太长,而往往是因为我们在前端应用程序对数据库作操作时忘了提交.本文介绍一种处理解决这种死锁的方法。 Sybase封锁原理 数据共享与数据一致性是一对不可调和的矛盾,为了达到数据共享与数据一致,必须进行并发控制。并发控制的任务就是为了避免共享冲突而引起的数据不一致。Sybase SQL Server并发控制的方法是加锁机制(LOCKING)。 锁的类型可申请的锁已有的锁 S U X S ∨∨× U ∨×× X ××× Sybase SQL Server有三种封锁类型:排它锁(exclusive lock,简称X锁);共享锁(share lock,简称S锁);更新锁(update lock,简称U锁)。这三种锁的相容矩阵表如下: ×:表示不兼容。∨:表示兼容。Sybase SQL Server是自动决定加锁类型的。一般来说,读(SELECT)操作使用S锁,写(UPDATE,INSERT和delete)操作使用X锁。U锁是建立在页级上的,它在一个更新操作开始时获得,当要修改这些页时,U锁会升级为X锁。 锁的力度 SQL Server有两级锁:页锁和表锁。通常页锁比表锁的限制更少(或更小)。页锁对本页的所有行进行锁定,而表锁则锁定整个表。为了减小用户间的数据争用和改进并发性,SQL Server 试图尽可能地使用页锁。 当SQL Server决定一个语句将访问整个表或表的大多数页时,它用表锁来提供更有效的锁定。锁定策略直接受查询方案约束,如果update或delete语句没有可用的索引,它就执行表扫描或请求一个表锁定。如果update或delete语句使用了索引,它就通过请求页锁来开始,如果影响

SQL Server数据库维护计划的实施步骤

作为网管员,无论其管理的网络的规模是大还是小,在日常的管理中除了维护网络平稳运行、及时排除网络故障、保护网络安全等工作以外,备份网络中关键数据也是其中的一个 非常非常重要的工作环节。 网络中的各种故障无非就分两种:软件故障和硬件故障。对于“硬件故障”可以通过维修或更换硬件设备得到及时解决;对于“软件故障”则可以通过重新安装或升级软件、重做网络或应用软件系统等方法及时解决,而且用此方法来解决网络故障大多需要一些基础的、关键的数据支持才能得以恢复正常。但是,网络中诸如此类的关键数据(特别是“应用软件系统”中的关键数据)的损坏或丢失,绝大部分是无法恢复和弥补的。即使可以恢复部分数据,弥补它们所花费的代价(诸如时间、人力、财力、物力等)都可能远远超出了公司的承受 能力。 所以说,注重数据的备份工作是网管员日常管理工作中的必须时刻关注的一项任务,也 是必须周期性重复操作的一项工作。 目录 现行备份策略 具体实现步骤 结束语 现行备份策略 我公司在组建局域网时,考虑到商业企业的特点,仔细考量了购、销、存三大环节中发生的各种数据及其存储问题后,选定了以Windows 2000 Server为操作系统,SQL Server 2000为数据库平台来搭建局域网的应用系统的软件平台,以网线为载体将购、销、存等核心部门的计算机通过局域网平台紧密地连接起来。这样,各个核心部门每天的任何一笔业务都及时地、动态地存储到公司局域网的核心Dell服务器上的SQL Server 2000数据库中,并以此 为基础平台向各方提供所需的各种数据服务。 因此,自公司局域网开始正式运作之日起,作为网管员的我就非常注重对局域网中的关键数据——特别是这些业务数据的备份工作。同时,我也希望备份数据的软件能够实现以下 自动功能。 功能1:能够在每天的某个固定的时刻(如夜晚0:00:00,当然这个时间是可以自主设定的)对包含所有业务数据库在内的所有关键数据库进行一次“完全备份”。 功能2:能够在每天的0:00:00至23:59:59这段时间内,每间隔1个小时对功能1中所涉及到的各个数据库的事务日志进行“差异备份”。

相关文档
相关文档 最新文档