SYBASE 使用技巧集锦 FAQ by 杨冶军[2]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

>对指定数据库的所有表做和checktable 一样的检查。
dbcc checkalloc (database_name,fix|nofix)
检查指定数据库, 是否所有页面被正确分配, 是否被分配的页面没被使用。当使用"fix"选项时,
在检查数据库的同时会自动修复有问题的页面。(若数据库数据量很大,则该过程会持续很长时间。)
dbcc tablealloc (table_name,fix|nofix)
检查指定的表, 是否所有页面被正确分配, 是否被分配的页面没被使用。是 checkalloc 的缩小版本,
对指定的表做完整性检查。当使用"fix"选项时,在检查数据表的同时会自动修复数据表中有问题的页
面。
关于上述命令的其它选项及详细使用方法和checkstorage, checkverify, indexalloc 的详细使用方
法, 请参阅有关命令手册。

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

单用户模式启动Server:
$SYBASE/install startserver -f RUN_server_name -m
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
isql -Usa -Pxxxxxx -SSYBASE dbcc_db.out
grep Msg dbcc_db.out
举例2: Unix平台检查pubs2数据库中titles表的一致性

vi dbcc_table.sql
use pubs2
go
dbcc checktable(titles)
go
dbcc tablealloc(titles)
go
isql -Usa -Pxxxxxx -SSYBASE < dbcc_table.sql > dbcc_table.out
grep Msg dbcc_table.out




Q.如何在Windows NT上手动卸载Sybase Server ?

A.关闭 Adaptive Server.
将Adaptive Server在Windows NT Services中由自动改为手动
重新启动 Windows NT server
运行sybedt32修改注册表, 删除以下内容:
\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\
\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\_BS
\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\_HS
\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\_MS
到注册表的如下结构下:
\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
删除DSLISTEN, DSQUERY, SYBASE, 并修改 LIB, INCLUDE, PATH删除SYBASE有关目录
删除如下注册键值:
\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
SYBSQL_
SYBXPS__XP
SYBBCK__BS
SYBMON__MS
SYBHIS__HS
重新启动 Windows NT server
使用 Start | Control Panel | Settings | Services 确认SYBASE已经卸载
删除SYBASE Server所用数据库设备文件及SYBASE系统文件




Q.如何更改SQL Server名称(在UNIX、OPENVMS平台上)?

A.在SYBASE产品中没有特定的函数或者存储过程用来更改SQL Server/ASE Server的名称,因此,只能手
工修改某些参数或者配置来完成此任务。

需要修改interfaces文件;更改RUN_server_name文件名,并修改其内容,例如:-s(UNIX)、/SERVER
(OpenVMS)后面所跟的参数(server 名称);更改配置文件名;更改errorlog文件名(如果需要);如
果server名称加在了表sysservers中,需要更改'srvname'、'srvnetname'列,可使用sp_dropserver、
sp_addserver存储过程来实现。

在OpenVMS系统中还要修改RUN_server_name文件中DSLISTEN的逻辑名称,以及在使用startserver过程中
/SERVER后面所跟的参数。然后,重启SQL/ASE Server。确认DSQUERY、DSLISTEN环境变量已经更改为所
需内容。

另外,如果SQL/ASE Server是被设置为远程服务器,还要修改与此server相关的系统表sysservers中的
字段以及interfaces文件。

理论上例如配置文件、RUN脚本、errorlog文件不需要指定server 名称(但是通常习惯指定server名
称)。在RUN startup脚本中要指定server名称。

您可以根据以下提纲完成此项任务:

如果server名称加在了表sysservers中,用sp_dropserver删除。
Shut down server
编辑 interfaces文件
更改RUN_server_name文件名,并修改其内容,-s(UNIX)、/SERVER(OpenVMS)后面所跟的参数(server
名称)
更改errorlog文件名(如果需要)
修改DSQUERY、DSLISTEN环境变量(如果需要)
更改配置文件名(server_name.cfg、server_name.bak、server_name.nnn),在SYBASE安装路径下Start
server
使用sp_addserver重新添加server(如果需要)
如果server是作为远程server使用的,还需要删除并重新添加。




Q.如何配置SQL Server来做远程备份?

A.在本地机器上:
(1).本地SQL Server和Backup Server能运行。
(2).在本地的Interfaces文件中,增加远程机器上的Backup Server名称,只需“Quary” 行,不允许使
用别名(aliases)。

请注意:在网络上每个Backup Server必须有一个唯一的名字,这个名字必须在 Interfaces文件之中,用
户可以通过查看服务器运行文件来检查它,它的选项是-S(unix) 或者/Server(VMS)。

(3).执行存储过程SP-helpServer SYB_BACKUP确认本地Backup Server具有正确的网络名称。远程Backup
Server不一定非要在系统表Syservers中有一条记录不可,但是有它便于测试。

请注意:不要修改SYB_BACKUP,使它指向远程Backup Server名字。

在远程机器上:

(1).确认远程Backup Server正在运行。
(2).确认远程Backup Server有与本地Backup Server不同的网络名字。

请注意:在远程机器上的Interfaces文件中,必须包含远程Backup Server的定义记录,但是它不需其他
Backup Server的定义。




Q.如何配置SQL Server 11,使得快速BCP具有更好的性能?

A.有几种方法可以改善BCP的性能:
(1)增加扩展分配(extent allocation)。缺省情况下,预分配2到31个扩展。在一个BCP批次中,未使用的
预分配扩展被释放。为了获得最佳BCP性能,设置BCP批次大小和 “number of preallocated extents”
预分配扩展个数,以消除空间重新释放。使用Sp_config number of pre-allocated exetents,nn 对于系
统10:buildmaster -ycpreallocext=nn
(2)对表进行分区
(3)配置OAM页面的缓冲策略,以减少对OAM(Object Allocation Map)页面的物理读。
(4)配置大I/O的缓冲池,例如16K:

Sp-poolconfig default, "16K" (5)使用-A标记,加大网络包大小:

bcp -A 16384




Q.如何将SQL/ASE SERVER移植到同种平台(相同操作系统)的系统上?

A.N1 这里所列出的所有步骤,并不需要按顺序执行,只是表明了在实验中成功完成这项任务的顺序。
N2 SYBASE 提示您保留直至今日的ISQL脚本,包括建立login、create database、disk init等等。使用
这些脚本会使您完成这项任务更加容易。这些脚本也可以通过master中系统表的内容来重新生成,可能
会繁琐一些。
N3 成功的关键在于目标系统中系统表的字段与源系统中相应系统表的字段相同。特别是:syslogins与
sysdatabases中的'suid 以及 'dbid';sysusages中所有行的segmap、l

本文关键:SYBASE 使用技巧集锦 FAQ by 杨冶军
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top