破落户
新新人类
帖子
5
精华
0
无忧币 29
积分 31
阅读权限 20
|
发表于:2007-10-11 10:30
标题:如何移植master设备(sybase)
<上一帖 |
下一帖>
以下步骤说明了如何将master设备移植到不同的磁盘上。在执行此项任务的同时,请参看sybase的相关文档(technical documents#1324 entitled "segment remapping with load database when moving a database")。请注意,在执行buildmaster之前,要停止sql server的应用。
成功的关键在于,新建的sysusages系统表中每一行内容与旧的sysusages系统表内容相符。
对master库做dbcc检查,并后备master库。
执行select * from table_name命令,并保留其输出内容。其中,table_name包括:sysdevices、sysusages、sysdatabases。同样,可以使用bcp命令来实现。
执行sp_configure命令,并保留其输出内容。
拷贝$sybase/server_name.cfg文件,以做保留。
shut down sql/ase server。
执行以下命令,创建一个新的master设备:
unix:buildmaster -d -ssize
vms:buildmaster /disk= /size=size
(size以页为单位,1页=2k)
编辑run_server_name文件,-d(unix)或/device(vms)参数指向新建的设
备名。
单用户模式启动sql/ase server:
unix:startserver -f run_sever_name -m
vms:startserver /server=server_name /masterrecover
执行select * from sysdevices命令,并保留其输出内容。
确认新建的sysusages系统表中每一行内容与旧的sysusages系统表内容相符,而且在配置好server之后,没有做过alter database,那么系统表sysusages的内容是正确的。如果做过alter database,则要按原来的顺序执行这些脚本,如果没有脚本,就要到保存的sysusages系统表的信息中找到alter database的参数。
shutdown sql/ase server,并用单用户模式启动server,查看sysusages系统表内容是否正确。
如果所配置的backup server名称不是syb_backup,则要执行:
1> sp_configure "allow updates",1
2> go
1> update sysservers set srvnetname="name in interfaces file"
where srvname="syb_backup"
2> go
装载master库。如果新master设备的大小与旧设备大小不同,则server会shut down。请注意新的系统表将会被重写,而且你需要调整sysdevices系统表中master设备的大小。请执行以下两步:
用单用户模式启动server.
如果新设备大小与旧设备大小不同,请执行:
1> sp_configure "allow updates",1
2> go
1> update sysdevices set high=nnnn where name="master"
2> go
其中nnnn是以页(2k)为单位的master设备的大小,此值可以从保留的sysdevices系统表的信息中找到。如果所建的设备比旧设备大,请执行:1)创建一个与master设备差不多大的数据库,这样做的目的是重新初始化分配页,使得整个master设备可用。2)删除这个数据库。
重启server。
后备master数据库。
注意:
在装载master库之前要确定sql server此时的字符集和语言模块与后备master库时的字符集和语言模块相同。
在执行此任务之前和完成以后使用sp_helpsort查看字符集与语言模块是否相同。
|
 网络工程师到底该不该去考CCIE认证? |
|