打印本文 打印本文 关闭窗口 关闭窗口
SYBASE 使用技巧集锦 FAQ by 杨冶军(4)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数676  更新时间:2009/4/22 23:09:11  文章录入:mintao  责任编辑:mintao
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、lstart以及size。
请在数据源系统上执行以下操作:

对所有的数据库进行数据一致性检查(DBCC),并后备所有的用户数据库。
保留master 数据库中数据表的内容,使用select * from table_name命令:
sysdevices,sysusages,sysdatabses
syslogins,sysservers,syssvrroles,sysloginroles,sysremotelogins
对于sysusages 表,请使用以下命令:
select * from sysusages order by dbid,lstart
对于sysdatabases 表,请使用以下命令:
select * from sysdatabases order by dbid
使用bcp命令拷贝(2)中所列出的系统表内容。
Unix:bcp master..table_name out file_name -Usa -Psa_password -c
Vms:bcp master..table_name out file_name /username="sa"/sa_password/char
保留sp_configure命令的执行结果
请在目标系统上执行以下操作:

安装并配置新的SQL Server和Backup Server。
确认所指定的master、tempdb、sybsystemprocs大小至少等于数据源系统上相应数据库的大小,同时确认
与数据源系统相同的语言模块以及字符集。
启动SQL Server,使之处于正常工作状态。参照数据源系统的配置(4中保留的执行结果)修改目标系统配
置与之相同,并确认''''device''''参数值至少等于源系统此参数值。
在model、sybsystemprocs数据库中任意执行几个动作以判断数据库工作正常。请不要添加用户、角色、修
改系统表。
重启SQL Server以测试新配置有效。
执行以下操作:
1> use master
2> go
1> sp_configure "allow updates",1
2> go
重启SQL Server。
使用bcp命令拷贝(2)中所列出的系统表内容。
Unix:bcp master..table_name in file_name -Usa -Psa_password -b 1 -c
Vms:bcp master..table_name in file_name /user="sa"/sa_password/char/batch=1
建数据库设备,大小至少等于源系统中相应数据库的大小。
运行create database和alter database的脚本(或者使用命令行)。注意create、alter顺序要与源系统
create、alter顺序一致,并使用与之相同的参数。完成后请对比源系统与目标系统中的sysdatabases、
sysusages,使之完全相同,否则要重新做12这步工作。(请参照N3提示)注意:
在10.0以及更高版本中segmap字段在做了数据库load之后会被修改。
在确定需要相同的dbid时,则要采用与在源系统中create、alter相同的顺序,在目标系统中做create、
alter,并且使用相同的参数值。而这种需求仅仅是当数据库中某些objects要参考不同的数据库中的
objects才会采用的。另外,这种需求只有在每一个数据库中都被采用,完成的结果才会使得sysusages表
中的segment、lastart、size字段,或者是fragment与源系统中数值相同。运行以下命令,与原系统的输
出进行比较:
select * from sysusages order by lstart
load用户数据库并执行dbcc检测。
执行以下操作:
1> sp_configure "allow updates",0
2> go
重启SQL Server。
后备master库以及用户数据库。

打印本文 打印本文 关闭窗口 关闭窗口