存档
1、准备环境
首先确保sql.ini中包含主、备服务器名称;
创建master设备所在的目录;
主服务器和备份服务器的RUN_file文件;
2、使用命令初始化master设备
D:\ASE\sybase157\ASE-15_0\bin\sqlsrvr.exe -dD:\ASE\sybase157\data2\master.dat -b100M -Z80M -z2048 -eD:\ASE\sybase157\ASE-15_0\install\ASE157_2K.log -sASE157_2K -MD:\ASE\sybase157\ASE-15_0
3、使用RUN_file启动新创建的服务
在windows创建的主服务的默认字符集为:cp850;
默认包含以下系统数据库:
1> select dbid,name from sysdatabases order by dbid
2> go
dbid name
------ ------------------------------
1 master
2 tempdb
3 model
31513 sybsystemdb
(4 rows affected)
4、创建sybsystemprocs数据库
在用SQL Server 2005进行一项测试:如何一次删除所有用户数据库时,没注意到当前数据库是master,结果,把这里的一些表都给删除了,从而,数据库引擎可以正常使 用,但如果右击任一数据库,都会出现查找master里的一个表的操作(对象名 master.dbo.spt_values' 无效。 (Microsoft SQL Server,错误: 208)),而这个表被我删除了,所以就运行不成功了,想压缩数据库还行用SQL语句,很麻烦。
在网上找的大都是SQL Server 2000 master数据库重建帖子,关于SQL Server 2005 重建master的帖子基本上都是只有提问的,没有回答的,于是在国外网站上搜索了下,发现一个,但也很不好使,后来顺着他的关键词:rebuid sql Server 2005 master找到了微软的网站,没想到微软早就解决这问题了,按他说的做了一遍,OK,成功,在写这文章时又把他的MSDN地址改了下,看看有没有中文版 的,没想到还真有,可怜的搜索引擎呀,这么好的东西我怎么在baidu及google里都找不到呢。
虽然问题是解决了,不过还有一个问题,就是:重建后相当于数据库重新安装了一次,所有的登录用户,数据库都没了(听说数据都在master里,master被重建了里面的数据库相关信息当然没了。数据库文件还在,没被删除。),所以重建或者说修复好后,你还得把每个数据库都附加进来,并建相关用户。
微软官方解决方法:
start /wait <CD or DVD Drive>\setup.exe /qn INSTANCENAME=<InstanceName> REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=<NewStrongPassword>
举例:
start /wait L:\Servers\setup.exe /qn INSTANCENAME="MSSQLSERVER" REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=www_yongfa365_com
如果重装、重建或修复其它服务,详情参见:
英文版:http://msdn.microsoft.com/en-us/library/ms144259(SQL.90).aspx
中文版:http://msdn.microsoft.com/zh-cn/library/ms144259(SQL.90).aspx
引用本页地址:http://www.yongfa365.com/item/SQL-Server-2005-Rebuild-System-Databases.html