如何给Sybase数据库中的物理设备更名
所以一般人员多选择重建数据库的方式,该方式要重建一大堆的设备,还要备份恢复一大堆数据,非常麻烦。Sybase系统管理员应该都会此方法,在此就不罗嗦了。 我们现在要探讨的是另一种捷径。 二、原理分析 我们知道在Sybase的SQL Server中数据库和事务日志存储在数据库设备上,数据库设备是用disk init创建被映射到一物理设备,可以是原始磁盘分区(裸设备)或一操作系统文件。 而这个映射关系就保存在master数据库的系统表sysdevices中。了解这种关系,我们就可通过修改sysdevices中的物理设备名来达到更名的目的且不破坏数据库,也不会造成数据丢失或不一致,非常方便。 ...全部
所以一般人员多选择重建数据库的方式,该方式要重建一大堆的设备,还要备份恢复一大堆数据,非常麻烦。Sybase系统管理员应该都会此方法,在此就不罗嗦了。 我们现在要探讨的是另一种捷径。 二、原理分析 我们知道在Sybase的SQL Server中数据库和事务日志存储在数据库设备上,数据库设备是用disk init创建被映射到一物理设备,可以是原始磁盘分区(裸设备)或一操作系统文件。
而这个映射关系就保存在master数据库的系统表sysdevices中。了解这种关系,我们就可通过修改sysdevices中的物理设备名来达到更名的目的且不破坏数据库,也不会造成数据丢失或不一致,非常方便。
下面就详细叙述其步骤。 三、详细步骤 有两种情形:master数据库和非master数据库。 因为master设备是在启动脚本RUN_servername中指定的,而其它数据库的数据库设备和物理设备的对应关系都记录在sysdevices表中。
为了便于说明,我们以UNIX系统上的Sybase为例,Wnndows 2000 Server上的可参照。 对于master库的物理设备需更名的: 1。 确认Sybase Server已关闭 2。
以root用户将master库的物理设备需更名。 对于裸设备: 如在RS/6000的AIX操作系统中,可用命令如: chlv -n'rNEW_master' master 如在SCO UNIX中,可用divvy命令,进入菜单操作对于文件:可mv master NEW_master 3。
修改更名后的物理设备的属主与权限 #cd /dev #chmod 660 rNEW_master #chown sybase:sybase rNEW_master 4。 修改启动脚本RUN_servername,将-d选项指定的物理设备该为新的物理设备,如:-d/dev/rNEW_master 5。
启动Server, startserver -f RUN_servername后一切正常 对于非master库的物理设备需更名的: 1。 确认Sybase Server已关闭 2。 修改启动脚本RUN_servername,增加-m选项,使其以单用户模式启动 3。
启动Server, startserver -f RUN_servername 4。 以sa用户登录数据库server后,执行如下命令: 1>sp_configure "allow updates", 12>go 1>begin tran2>go1>use master2>go1>update sysdevices set phyname="/dev/rNEWuserdb" --rNEWuserdb为新的物理设备2>where name="userdbdev"3>go 如果得到(1 row affected),则1>commit 2>go 否则1>rollback 2>go 5。
关闭Server 6。 以root用户将当前的物理设备改为新的物理设备,并修改更名后的物理设备的属主与权限。 如上一种情况的第2、3步。 7。 修改启动脚本RUN_servername,去掉-m选项,使其以多用户模式启动 8。
以sa用户登录数据库server后,执行如下命令:1>sp_configure "allow updates", 02>go 9。 dbcc更改物理设备的数据库,检查是否正常1>dbcc checkdb(userdb) 2>go 四、注意 为了安全起见,做该操作前请作好master库和其它数据库的备份,以防万一。
1。《Sybase原理、高级系统管理与性能调优》 王珊 主编 中国水利水电出版社出版 2。《Sybase 12 系统管理指南》 Sybase公司内部出版3。《Sybase 12 出错处理》 Sybase公司内部出版。
收起