2008年7月16日星期三

怎样设置自动清log,和temp的阀值

一般我们可以为某段设置多个阀值,但只需在达到最后机会阀值时作些空间清理的操作.
第一步,在你的数据库中设置阀值,并指定达到阀值后的处理过程:
查看当前数据库某段的最后机会阀值:
sp_helpthreshold "default"
或者察看其他段的信息。
修改某段的最后机会阀值:
sp_modifythreshold 数据库名,段名,自由空间名,[新过程名[,新自由空间名[,新段名]]]
sp_modifythreshold mydb,"default",200,NULL,175
将最后机会阀值由200页调整到175页。
具体其他操作,可以参考相关手册!
第二步,编写阀值处理过程:
create procedure sp_thresholdaction
@dbname varchar(30),
@segmentname varchar(30),
@space_left int,
@status int
as
declare @SpaceLeft varchar(20),
@Status varchar(20)
select @SpaceLeft=str(@space_left,6,0)
select @Status=str(@status,6,0)
print "Log is dumpped('%1!' for '%2!',SpaceLeft:'%3!',Status:'%4)',
and is dumped.",@segmentname,@dbname,@SpaceLeft,@Status
dump transaction tempdb to with truncate_only
return

不过,我还是不建议用最后机会阀值来进行自动维护。



17〉sybase 相关产品的中文显示问题:
问:
安装Sybase ASE 12.5时,如果是中文字符的话,显示方框字符的乱码,因为安装程序使用java制作,可能与什么有关,我不太懂?
答: 安装前将安装文件中此路径下的:shared-1_0\jre1.2.2\lib\font.properties.zh.NT4.0->;改为\shared-1_0\jre1.2.2\lib\font.properties.zh.NT5.0
试一下!
我的正版12.5没有出现这个问题,估计你的SYBASE12.5没有打包JRE吧!
补充说明:类似情况在安装 ASEIQ 和 sybase 客户端时视不同操作系统和机器都可能存在这个问题,出现这种情况,就得考虑打补丁或修改jre名字。
1 如何恢复受损的master数据库
  本实验描述了如何在master数据库毁坏的情况下,如何重建主设备,恢复master数据库,得以重新恢复系统。

这里假定:

l Master数据库已损坏,或主设备已损坏。

l有系统表的最新打印输出。

l主设备只包括master数据库、tempdb和model

l有master数据库的最新备份,且上次转储master数据库后没有初始化任何设备或创建、变更任何数据库。

关于恢复过程

l将主设备重建为第一次安装服务器时的缺省状态;

l将master数据库恢复为缺省状态;

l将master数据库恢复为上次备份时的状态;

注意:在恢复master数据库的早期阶段,不能使用系统存储过程。

恢复步骤

步骤1:查找系统表

查找已保存到文件的系统表sysdatabases、sysdevices、sysusages、sysloginroles和syslogins的副本。用这些副本可以保证在此过程结束时系统已经全部恢复。

步骤2:建立新的主设备

如果Adaptive Server正在运行,关闭它,然后重建主设备。重建主设备时,必须指定设备大小。开始重建前,记住以下几点:

l保留旧设备,以防遇到问题,旧设备可提供至关重要的信息。

l使用buildmaster命令之前应关闭Adaptive Server。

l不同操作系统上创建主设备的命令有所不同,如:buildmast(unix)、bldmaster(windows NT),并安装通用master数据库的副本。

l命令中给出主设备的全名和大小。

示例:重建一个30兆(15360个2k的页)

在Window NT上:

bldmastr -d d:\devices\master.dat –s15360

步骤3:以主恢复方式启动Adaptive Server

使用-m选项以主恢复方式启动Adaptive Server。在Window NT上,使用sqlsrvr命令从命令行启动Aadaptive Server。

Sqlsrvr.exe –d:\devices\master.dat –sserver_name –ed:\sybase\install\errorlog –id:\sybase\ini –MD:\sybase –m

说明:以主恢复方式启动Adaptive Server时,只允许一个用户(系统管理员)登录。

步骤4:重建master的设备分配

检查sysusages系统表的书面副本,如果有多行dbid=1的记录,则需要增加master的大小以便装载转储。最简单情况下,对master进行额外分配只需要使用alter database即可。复杂情况,必须为其它数据库分配空间,以便重新构造恢复master所需的正确的vstart值。

示例:


alter datbase master on master=2

步骤5:检查Backup Server和sysservers系统表信息。

使用空口令以“sa“用户登录服务器(如果Backup Server的网络名不是SYB_BACKUP,则必须更新sysservers以便Adaptive Server可以与其Backup Server通信)。

l检查interfaces文件中Backup Server的名称;

l并发出下面的命令:

select * from sysservers

where srvname=”SYB_BACKUP”

l检查此命令中输出结果的srvnetname。是否与服务器的backup Server的interfaces文件条目匹配,若匹配跳过步骤5;

l如不同,则必须更新sysservers

示例:

begin tranaction

updata sysserver

set srvnetname=”backupserver_name”

where srvname=”SYB_BACKUP”

l核实该命令,如果updata修改了多行,或者修改了不应修改的行,则发出rollback tranaction命令,然后尝试再次更新。

如果该命令正确修改了Backup Server的行,则发出commit transaction命令。

步骤6:核实Backup Server正在运行

Window NT平台上,本地安装的Sybase Central和服务管理器可以显示Backup Server是否正在运行。

步骤7:装载master数据库的备份

在Window NT上:

load database master from “d:\device\master.bck”

在load database成功完成后,Adaptive Server将关闭。

步骤8:更新number of devices配置参数

仅当使用的数据库设备比缺省值多时才执行此步骤。

步骤9:以主恢复方式方式重新启动Adaptive Server

Sqlsrvr.exe –d:\devices\master.dat –sserver_name –ed:\sybase\install\errorlog –id:\sybase\ini –MD:\sybase –m

注意:装载master的备份将使“sa”帐号恢复到以前的状态。如果sa帐号有口令,则口令恢复。

步骤10:检查系统表以检验master的当前备份

l如果发出最新的disk init、create database或alter database命令以后已备份了master数据库,则sysusages、sysdatabases、和sysdevice的内容将与书面副本匹配。

l如果副本中的任何设备未包含在已恢复的sysdevices中,则上次备份以后已添加了设备,必须运行disk reinit和disk refit。

步骤11:重新启动Adaptive Server

以常规(多用户)模式重新启动Adaptive Server

步骤12:检查Adaptive server

l将sysusages的书面副本与新联机版本比较

l将sysdatabase的书面副本与新联机版本比较

l在每个数据库上运行dbcc checkalloc

l检查每个数据库中重要的表

完全恢复master数据库并运行全部的dbcc完整性检查后,使用常规转储命令备份此数据库。

没有评论: