如果需要在一台主机上做数据库配置,例如增加数据库设备,创建数据库,配置用户数据库的参数等等,这些配置信息保存在数据库服务器的MASTER数据库中,不同的主机有各自的MASTER数据库,所以必须保证两台主机的MASTER数据库完全一致。以创建数据库设备为例,可采用如下步骤完成:
1) 在当前运行的Sybase数据库服务器上创建设备,创建过程中要注意,设备文件一定要放在磁盘阵列所在的逻辑盘符下面,例如X盘或者Y盘。
2) 备份当前数据库服务器中的MASTER数据库,基本步骤同备份普通用户数据库一样,但是为了保证另一台主机也能访访问到这个备份文件,最好将备份出来的数据库放到磁盘阵列所在的逻辑盘下,单独建立目录保存,例如建立一个目录DBBack,保存的文件名为master_20040705.dump,这样的文件名可以明确的说明备份文件是哪个数据库以及备份日期。
3) 切换集群服务中的主机,把当前的服务节点移动到另一台主机上,但是不要使用集群服务管理器“移动组”的方式,而是拔掉当前主机的外网网线,同时拔掉心跳线,观察第二台主机,直到它变成活动节点,并且可以访问磁盘阵列。
4) 现在配置第二台主机。找到Sybase数据库的安装目录,一般是c:\sybase,进入该目录下的install子目录,根据数据库服务器名称找到批处理文件,例如,如果数据库服务器名称(在dsEdit中显示的名称)为sybase,则该目录下面应该存在一个run_sybase.bat文件,备份这个文件,修改备份文件,在文件名前面加上“m_”,上面的文件重命名后为m_run_sybase.bat。点击右键编辑该文件,在文件最后一行末尾加上一个 “-m”,例如c:\Sybase\bin\sqlsrvr.exe -dc:\Sybase\data\master_test.dat -sJKKF_AUTO3 -ec:\Sybase\install\errorlog -ic:\Sybase\ini -Md:\Sybase -m,保存文件。
5) 同样在第二台主机上,使用控制面板中的服务管理工具停止当前的sybase服务,注意不要关闭Sybase备份服务,如果备份服务没有启动,请启动该服务,该服务的名称为Sybase BCKServer开头,后缀为_BS。
6) 点击开始-运行,输入cmd,回车,进入dos提示符状态,进入sybase主目录,例如c:\sybase,然后进入install子目录,找到刚才建立好的批处理文件,例如m_run_sybase.bat,然后运行。此批处理如果正常运行,会在屏幕上显示很多内容,屏幕滚动,停止滚动以后批处理继续运行,并且不回到提示符,下图为正常运行后的结果。
7) 开始-运行,输入cmd,回车,再次进入dos提示符状态,在当前目录下使用sybae自带的数据库工具isql连接数据库,语法格式为 isql –S数据库服务名 –U用户名 –P密码,例如,如果数据库服务名称(dsEdit中显示的名称)叫sybase,用户名为sa,密码为空,则需要执行isql –Ssybase –Usa –P,然后回车,正常执行后,会进入isql提示符,如下图:
8) 输入命令恢复master数据库。语法格式为:load database master from “文件名”,其中的文件名就是在前面步骤中保存的master备份文件。例如输入命令load database master from “y:\dbBack\master_20040705.dump” 然后输入回车,在下面一行中输入go ,然后回车,执行结束后自动回到dos提示符下面,如下图所示。此时第六步中的窗口也自动退回到提示符下面。
9) 进入SybaseCentrol,启动sybase服务。
10) 恢复群集节点的心跳线,网线,设置完成。
注意事项:
同一时刻,只能有一台主机中的Sybase服务为已启动状态,同时该主机中的数据库存储程序也要保证在已启动状态,而另外一台主机中的上述两个服务都没有启动。
常见问题说明:
1) 运行isql后无法进入提示符界面,出现如下提示:
一般来说这是由于没有终止sybase服务器的服务,请进入控制面板,然后进入管理工具,选择“服务”,然后找到sybase数据库服务,选择停止。服务的名字以sybase sqlserver开头,后面加上数据库服务名称,例如sybase sqlserver _sybase。
2) 无法恢复master数据库,输入load database master from “文件名”,出现下图错误提示。该信息表示目前没有启动备份服务,请在控制面板,管理工具,服务中查找服务,名称以Sybase BCKServer 开头,后接数据库服务名称,加后缀“_BS”,例如“Sybase BCKServer _Sybase_BS”,启动该服务。
3) 进入SybaseCentrol后看不到任何数据库。可能原因,有些数据库设备无法访问,请确认集群是否切换到当前节点,检查能否访问磁盘阵列,例如能否访问X盘,Y盘。