SYBASE数据库日志详解
数据库中的日志与日志分析方法

数据库中的日志与日志分析方法随着数据处理的需求越来越高,数据库技术在企业应用中的地位愈发重要。
在数据库管理的过程中,日志是一项关键性的技术。
本文将围绕数据库中的日志和日志分析方法,从如下三个方面进行探讨:其一,数据库日志的作用;其二,数据库日志分析的方法;其三,数据库日志分析所带来的好处。
一、数据库日志的作用日志是一个非常重要的概念,因为它可以帮助解释系统的行为。
在数据库技术中,日志是一个关键性的技术,它包括了所有的数据库操作信息。
日志的用途很广泛,其中最主要的有如下几个方面:1. 数据恢复:当数据库出现故障或者损坏时,可以通过数据库备份和日志文件来进行数据恢复。
2. 数据库追踪:在数据库中查询某个实例或者一系列查询的过程,可以通过日志文件来追踪数据库系统的行为,比如查询、删除、更新等。
3. 性能分析:通过日志文件的分析,可以更好的了解数据库系统的瓶颈,从而提高数据库系统的性能。
二、数据库日志分析的方法如何进行有效的数据库日志分析是一个非常值得探讨的问题,下面将介绍几种常见的数据库日志分析方法。
1. 事务分析法事务分析方案被广泛使用,其实质是建立在查看系统中每个用户所提交的事务这一前提之前。
这个方案可以帮助管理员判断哪些用户访问了自己所管辖的数据库,以及被访问的数据量多少。
然后根据分析出来的数据,去对数据库进行优化,提高其性能。
2. 死锁分析法死锁是指当两个或多个事务同时请求数据库资源,但是由于某些原因关键资源无法直接访问,因而进入了一种僵局的情况。
在数据库管理中,死锁是一个非常常见的情况。
死锁分析方案就是去了解死锁的发生原因,提出相应的解决方法,避免死锁的产生。
3. 性能分析法性能分析方案的目的是找出数据库中存在的性能瓶颈,以及进一步了解这些性能瓶颈产生的原因。
这个方案的核心在于查看系统的日志文件,然后找出日志文件中存在的性能瓶颈,进而针对性地进行优化调整。
三、数据库日志分析所带来的好处从上面的分析中,我们可以看出,数据库日志分析所带来的好处有很多,下面我们将一一介绍。
Sybase12日志满的解决办法2

Sybase12.5日志满问题的解决日志满分为两种情况:1.非master(用户库或者其他系统库sybsystemprocs)库的日志满,导致用户库不能访问;2.系统库master日志满,导致服务都不能正常启动。
针对以上情况要分别对待处理。
1.非master库日志满的处理:重庆数据库后台sybsystemprocs库日志报满:09:00000:01631:2011/11/13 06:45:36.16 server Error: 3475, Severity: 21, State: 709:00000:01631:2011/11/13 06:45:36.16 server There is no space available in SYSLOGS to log a record for which space has been reserved. This process will retry at intervals of one minute.11:00000:04104:2011/11/13 06:20:11.87 server Space available in the log segment has fallen critically low in database 'sybsystemprocs'. All future modifications to this database will be suspended until the log is successfully dumped and space becomes available.00:00000:02407:2011/11/13 06:20:11.89 server Error: 2812, Severity: 16, State: 500:00000:02407:2011/11/13 06:20:11.89 server Stored procedure 'sp_thresholdaction' not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).或某个用户库etoh2_cq的日志空间满报:00:00000:00001:2008/12/02 17:28:07.38 server<wbr style="line-height:21px; text-align:left"><span style="line-height:21px; text-align:left">Error: 1105, Severity: 17, State: 3</span><brstyle="line-height:21px; text-align:left"><span style="line-height:21px;text-align:left">00:00000:00001:2008/12/02 17:28:07.38 server</span><wbr style="line-height:21px; text-align:left"><span style="line-height:21px; text-align:left">Can't allocate space for object 'syslogs' in database 'etoh2_cq' because 'logsegment' segment is full/has no free extents. If you ran out of space in syslogs, dump the transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to increase size of the segment.</span><br style="line-height:21px; text-align:left"><spanstyle="line-height:21px; text-align:left">00:00000:00001:2008/12/02 17:28:07.38 server</span><wbr style="line-height:21px; text-align:left"><span style="line-height:21px; text-align:left">Error: 3475, Severity: 21, State: 7</span><br style="line-height:21px; text-align:left"><spanstyle="line-height:21px; text-align:left">00:00000:00001:2008/12/02 17:28:07.38 server</span><wbr style="line-height:21px; text-align:left"><span style="text-align:left">There is no space available in SYSLOGS for process 1 to log a record for which space has been reserved. This process will retry at intervals of one minute. The internal error number is -4.</span></wbr></wbr></wbr></wbr>处理方法步骤:1、马上增加日志设备,并把设备分配给数据库。
Sybase

Sybasejazy00基本过程很简单,如下:1.备份到本地硬盘:dump transaction with truncate_onlydump database … to …dump transaction。
2.当装载数据库和事务日志时,为防止其他用户对数据库的操作,须把数据库设置为 dbo use only。
进行装载时的顺序为:dump transaction with no_trunc ateload database database_name from ...load transac tion database_name from ...。
online database也可以用until指定恢复到某个时间使用阈值管理可以使用阈值管理,在阈值管理中安排当超过某个阈值时自动转储事务日志。
当超过阀值以后,SQL Serve中断或挂起试图写这个日志的用户事务。
对每一个挂起的事务向errorlog 发一条消息;然后执行sp_thresholdac tionsp_thresholdac tion用户自己编写create proc edure sp_thresholdac tion@dbname varc har(30),@segmentname v arc har(30),asdump transaction @dbname to "DEVICE"print "LOG DUMP: %1! for %2! dumped", @segmentname, @dbname其中参数:@dbname 为达到阀值的数据库名;@segmentname 为达到阀值的段名;用户数据库损坏的处理如果数据库处于suspect状态,无法用drop database 删除时:dbcc dbrepair (db_name, dropdb)create database db_name on dev_name for loadload database db_name from dump_dev icemaster库损坏的处理使用 buildmaster -m 重建一个新的 master 数据库;buildmaster 建立 master 设备并在这个设备上建立 master, model, tempdb 库。
sybase常用命令

70年代,随着大型共享数据库应用的普及,美国SYBASE公司基于当时的关系代数理论所提出的数据库关系模型,开发了Sybase数据库系统;Sybase是基于SQL(Structured Query Language)的著名关系模型数据库系统,是世界上最流行的DBMS软件之一;它能在多种计算机硬件平台上运行,并能通过连网形成分布式数据库环境;SQL Server是指运行在主机上,能提供SQL语言查询、修改或控制数据库中内容等操作的一个服务进程,形象地把它理解为一个数据库服务器;一般地数据库服务器有Data Server 和 Backup Server两个服务进程组成。
数据库就是一系列表格(关系)所描述的客观世界中事实的集合;Sybase中的系统数据库基本包括有:master、model、sysprocs、 tempdb,其它为用户库。
Sybase Adaptive Server Enterprise 12.5是Sybase公司开发的智能型数据库。
现场Sybase数据库系统结构1.1 参考资料《SYBASE 数据库维护快速参考手册 Version 1.1》,SYBASE公司出版2 基础操作、配置和维护2.1 安装Sybase 12.5包括安装前环境配置、安装过程说明、安装成功测试、卸载等。
(详细请参考V1.00》)2.2 访问SQL Server在安装配置好的Sybase服务器,可以通过以下操作开始访问SQL Server进行数据的查询和控制等操作:? % isql –U用户名–S服务名password: //该处输入该明户的密码2.3 Sybase的启动和关闭2.3.1 启动Sybase数据库在$SYBASE/ASE-12_5/install目录下执行startserver命令启动Sybase数据库,如:%$SYBASE/ASE-12_5/install/startserver -f RUN_服务名%$SYBASE/ASE-12_5/install/Startserver –f RUN_服务名_BAKUP2.3.2 关闭Sybase数据库使用isql命令登录Sybase数据库系统,在查询sysservers表查看可关闭的服务,如isql –Usa -SjoliPassword:1> select * from sysservers一般需要关闭的服务有:系统备份服务、系统主服务在isql提示里先关闭系统备份服务(默认为SYB_BACKUP),再关闭主服务(默认可以不输入主服务名),如:1>shutdown SYB_BACKUP2>go1>shutdown2>go2.4 Sybase用户管理2.4.1 创建登录用户(login)sp_addlogin login_name,passwd[,defaultdb[,deflanguage[,fullname]]] 例子:1> sp_addlogin joli,joli,joli_db2> go2.4.2 删除登录用户(login)例子:1> sp_droplogin test2> go2.4.3 创建数据库用户(user)sp_adduser login_name[,name_in_db[,grpname]]例子:1> sp_adduser joli,joli2> go2.4.4 删除数据库用户(user)例子:1> sp_dropuser test2> go2.4.5 修改该用户为该数据库dbo例子:1>use joli_db3> sp_changedbowner joli2.4.6 查看数据库用户信息sp_displaylogin [login_name]sp_helpuser例子:1> sp_helpuser2> go1> sp_displaylog joli2> go1> sp_who2.4.7 修改用户口令如果是修改sa口令,可用sa用户登录,然后执行以下命令修改1>sp_password “旧命令| null”,”new_password”2>go如果不是sa用户,则使用希望修改口令的user登录数据库,然后执行1> sp_password 旧命令,新命令2> go2.4.8 修改系统缺省设备? 关闭创建数据库master缺省设备:? 1>exec sp_diskdefault "master","defaultoff"? 指定user_db_dev为缺省设备:? 1>exec sp_diskdefault "user_db_dev","defaulton"2.5 创建、删除、修改Sybase设备、数据库2.5.1 创建设备例子:1> disk init2> name="joli_dev",3> physname="/opt/sybase/joli/joli_dev.dat",4> vdevno=9,5> size=512006> go说明:物理设备名称为:joli_dev物理设备文件路径为:/opt/Sybase/joli/joli_dev.dat设备编号(该号不能重复)为:9大小(单位为2K)为:100M(一般为用户数据库创建一个数字设备后,再单独为用户数据库创建一个日志设备)2.5.2 镜像设备例子:1> disk mirror2> name="joli_dev",3> mirror="/opt/sybase/joli/joli_dev_mirror.dat"4> go说明:创建设备joli_dev的镜像,镜像后的镜像设备为/opt/sybase/joli/joli_dev_mirror.dat。
SYBASE数据库日志详解-电脑资料

SYBASE数据库日志详解-电脑资料SYBASE公司是世界著名的数据库厂家,其关系数据库产品SYBASE SQL Server在中国大中型企事业单位中拥有大量的用户,。
笔者在多年的使用过程中,总结出SYBASE数据库管理和维护的一些经验,现拿出来与大家分享。
我们知道,SYBASE SQL Server用事务(Transaction)来跟踪所有数据库的变化。
事务是SQL Server的工作单元。
一个事务包含一条或多条作为整体执行的T-SQL语句。
每个数据库都有自己的事务日志(Transaction Log),即系统表(Syslogs)。
事务日志自动记录每个用户发出的每个事务。
日志对于数据库的数据安全性、完整性至关重要,我们进行数据库开发和维护必须熟知日志的相关知识。
一、SYBASE SQL Server如何记录和读取日志信息SYBASE SQL Server是先记Log的机制。
每当用户执行将修改数据库的语句时,SQL Server就会自动地把变化写入日志。
一条语句所产生的所有变化都被记录到日志后,它们就被写到数据页在缓冲区的拷贝里。
该数据页保存在缓冲区中,直到别的数据页需要该内存时,该数据页才被写到磁盘上。
若事务中的某条语句没能完成,SQL Server将回滚事务产生的所有变化。
这样就保证了整个数据库系统的一致性和完整性。
二、日志设备Log和数据库的Data一样,需要存放在数据库设备上,可以将Log和Data存放在同一设备上,也可以分开存放。
一般来说,应该将一个数据库的Data和Log存放在不同的数据库设备上。
这样做有如下好处:一是可以单独地备份Backup事务日志;二是防止数据库溢满;三是可以看到Log的空间使用情况。
所建Log设备的大小,没有十分精确的方法来确定。
一般来说,对于新建的数据库,Log的大小应为数据库大小的30%左右。
Log的大小还取决于数据库修改的频繁程度。
如果数据库修改频繁,则Log 的增长十分迅速。
数据库日志 总结

数据库日志总结
数据库日志是对数据库运行过程中的一系列操作进行记录和存储的文件,主要用于故障排查、数据恢复以及审计等。
以下是数据库日志的一些常见总结:
1. 操作记录:记录了数据库中进行的所有操作,包括增删改查等操作。
通过这些记录可以查看数据库的历史操作情况,及时发现和防止恶意操作或误操作。
2. 错误日志:记录了数据库运行过程中发生的错误和异常信息,如连接错误、查询错误等。
通过分析错误日志,可以及时发现和解决数据库问题,保证数据库的稳定运行。
3. 审计日志:记录了数据库中发生的所有审计事件,如登录记录、权限变更等。
通过审计日志可以了解数据库的安全状况,及时发现和防止安全漏洞。
4. 性能监控:记录了数据库的性能指标,如CPU使用率、内存使用率、磁
盘IO等。
通过分析性能监控日志,可以及时发现和解决性能问题,提高数
据库的性能和响应速度。
5. 备份日志:记录了数据库备份的相关信息,如备份时间、备份类型、备份大小等。
通过备份日志可以了解数据库的备份情况,及时发现和解决备份问题。
6. 事务日志:记录了数据库中发生的所有事务信息,包括事务的开始、提交和回滚等操作。
通过事务日志可以了解数据库的事务处理情况,保证数据的完整性和一致性。
总之,数据库日志是数据库管理的重要工具之一,通过对日志的分析和总结,可以及时发现和解决数据库问题,保证数据库的稳定、安全和高效运行。
sybase数据库简单操作命令和部分sql命令

sybase数据库简单操作命令和部分sql命令1、备份数据库dump database database_name to dump_device说明:database_name是要卸出的数据库名称,dump_device是卸出设备的名称。
用系统过程sp_helpdevice可以获得设备的信息。
2、备份事务日志dump transaction database_name[to dump_device][withtruncate_only|with no_log|with no_truncate]说明:其中database_name是要备份事务的数据库名称,dump_device是备份设备名称,仅当包含了with truncate_only或with no_log子句时,才可以备份到设备。
如果总是用dump datebase(备份数据库及其日志,而不用dump tran,事务日志将不会刷新,而变得非常庞大。
对于master数据库和小型数据库每次运行dump datebase之后应当运行dump transaction。
二、万一系统失败时恢复数据库系统如果用户数据库存储的设备失效,从而数据库被破坏或不可存取,通过装入最新的数据库备份以及后来的事务日志备份可以恢复数据库。
假设当前的事务日志存在于一个并没有毁坏的设备上,带着withno_truncatedump transaction命令卸出它。
要恢复数据库按如下步骤去做1、如果日志存在于一个分离的设备上,用带着no_truncatedump transaction命令卸出被毁坏的或者不可存取的用户数据库事务日志。
2、用下面的查询检查设备分配已毁坏数据库的设备使用情况。
必须为同一目的赋同样的空间块。
下面的查询显示了分配给数据库mydb设备使用和尺寸情况select segmap,size from sysusages where dbid=(select dbid from sysdatabases where name="mydb")3、检查查询的输出。
sybase日志清除

sybase中如何清除日志文件(2009-02-16 14:09:25)dump transaction master with no_loggodump transaction model with no_loggodump transaction sybsystemdb with no_loggodump transaction sybsystemprocs with no_loggodump transaction tempdb with no_loggo我们知道,SYBASE SQL Server用事务(Transaction)来跟踪所有数据库的变化。
事务是SQL Server的工作单元。
一个事务包含一条或多条作为整体执行的T-SQL语句。
每个数据库都有自己的事务日志(Transaction Log),即系统表(Syslogs)。
事务日志自动记录每个用户发出的每个事务。
日志对于数据库的数据安全性、完整性至关重要,我们进行数据库开发和维护必须熟知日志的相关知识。
一、SYBASE SQL Server 如何记录和读取日志信息SYBASE SQL Server是先记Log的机制。
每当用户执行将修改数据库的语句时,SQL Server就会自动地把变化写入日志。
一条语句所产生的所有变化都被记录到日志后,它们就被写到数据页在缓冲区的拷贝里。
该数据页保存在缓冲区中,直到别的数据页需要该内存时,该数据页才被写到磁盘上。
若事务中的某条语句没能完成,SQL Server将回滚事务产生的所有变化。
这样就保证了整个数据库系统的一致性和完整性。
二、日志设备Log和数据库的Data一样,需要存放在数据库设备上,可以将Log和Data存放在同一设备上,也可以分开存放。
一般来说,应该将一个数据库的Data和Log存放在不同的数据库设备上。
这样做有如下好处:一是可以单独地备份 Backup事务日志;二是防止数据库溢满;三是可以看到Log的空间使用情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SYBASE数据库日志详解
开发者在线 更新时间:2007-09-13作者: 来
源:
本文关键词:Sybase数据库日志
我们知道,SYBASE SQL Server用事务(Transaction)来跟踪所有数据库的变化。
事务是SQL Server 的工作单元。
一个事务包含一条或多条作为整体执行的 T-SQL语句。
每个数据库都有自己的事务日志(Transaction Log),即系统表(Syslogs)。
事务日志自动记录每个用户发出的每个事务。
日志对于数据库的数据安全性、完整性至关重要,我们进行数据库开发和维护必须熟知日志的相关知识。
一、SYBASE SQL Server 如何记录和读取日志信息
SYBASE SQL Server是先记Log的机制。
每当用户执行将修改数据库的语句时,SQL Server就会自动地把变化写入日志。
一条语句所产生的所有变化都被记录到日志后,它们就被写到数据页在缓冲区的拷贝里。
该数据页保存在缓冲区中,直到别的数据页需要该内存时,该数据页才被写到磁盘上。
若事务中的某条语句没能完成,SQL Server将回滚事务产生的所有变化。
这样就保证了整个数据库系统的一致性和完整性。
二、日志设备
Log和数据库的Data一样,需要存放在数据库设备上,可以将Log和Data存放在同一设备上,也可以分开存放。
一般来说,应该将一个数据库的Data和Log存放在不同的数据库设备上。
这样做有如下好处:一是可以单独地备份 Backup 事务日志;二是防止数据库溢满;三是可以看到Log的空间使用情况。
所建Log设备的大小,没有十分精确的方法来确定。
一般来说,对于新建的数据库,Log的大小应为数据库大小的30%左右。
Log的大小还取决于数据库修改的频繁程度。
如果数据库修改频繁,则Log 的增长十分迅速。
所以说Log 空间大小依赖于用户是如何使用数据库的。
此外,还有其它因素影响Log大小,我们应该根据实际操作情况估计Log大小,并间隔一段时间就对Log进行备份和清除。
三、日志的清除
随着数据库的使用,数据库的Log是不断增长的,必须在它占满空间之前将它们清除掉。
清除Log
有两种方法:
1.自动清除法
开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。
此方法的优点是无须人工干预,由SQL Server自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log
而不做备份。
2.手动清除法
执行命令“dump transaction”来清除Log。
以下两条命令都可以清除日志:
通常删除事务日志中不活跃的部分可使用“dump transaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。
SYBASE提供“dump transaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。
为了尽量确保数据库的一致性,你应将它作为“最后一招”。
以上两种方法只是清除日志,而不做日志备份,若想备份日志,应执行“dump transaction database_n ame to dumpdevice”命令。
四、管理庞大的事务
有些操作会大批量地修改数据,如大量数据的修改(Update)、删除一个表的所有数据(Delete)、大量数据的插入(Insert),这样会使Log增长速度很快,有溢满的危险。
下面笔者给大家介绍一下如何拆分大事务,以避免日志的溢满。
例如执行“update tab_a set col_a=0”命令时,若表tab_a很大,则此Update动作在未完成之前就可能使Log溢满,引起1105错误(Log Full),而且执行这种大的事务所产生的独占锁(Exclusive Table Lock),会阻止其他用户在执行Update操作期间修改这个表,这就有可能引起死锁。
为避免这些情况发生,我们可以把这个大的事务分成几个小的事务,并执行“dump transaction”动作。
上例中的情况就可以分成两个或多个小的事务:
这样,一个大的事务就被分成两个较小的事务。
按照上述方法可以根据需要任意拆分大的事务。
若这个事务需要备份到介质上,则不用“with
truncate_only”选项。
若执行“dump transaction with truncate_only”命令,应该先执行“dump database”。
以此类推,我们可以对表删除、表插入等大事务做相应的拆分。
查看本文来源。