社区
数据库相关
帖子详情
sqlserver中 与sysdatabases 有关的问题
terry_tj
2003-09-15 02:10:33
为何我在数据库备份时候,提示下面错误: (我的sqlserver数据库有密码)
"未能在 sysdatabases 中找到数据库 'gxnews
' 所对应的条目。没有找到具有该名称的条目。请确保正确地输入了名称" 请问,怎么解决这个数据备份出现的问题
...全文
169
回复
打赏
收藏
sqlserver中 与sysdatabases 有关的问题
为何我在数据库备份时候,提示下面错误: (我的sqlserver数据库有密码) "未能在 sysdatabases 中找到数据库 'gxnews ' 所对应的条目。没有找到具有该名称的条目。请确保正确地输入了名称" 请问,怎么解决这个数据备份出现的问题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
绿色 Sql Server 原理及全新管理工具
几天前在盒子看到绿色Sql server很高兴,现将本人对绿色SQL Server的现实思路作一说明,不正确的地方还请指教。1. Sqlservr.exe 运行参数。 Sql Server的启动可以为Windows服务方式(默认),也可以以应用程序方式启动。下面介绍sqlservr.exe以应用程序方式启动时的参数
问题
。sqlservr 应用程序用法:sqlservr [-sinstance_name] [-c] [-dmaster_path] [-f] [-eerror_log_path] [-lmaster_log_path] [-m] [-n] [-Ttrace#] [-v] [-x] [-g number] [-O] [-y number]-sinstance_name 指定要连接到的 SQL Server 实例。如果未指定命名实例,sqlservr 将启动 SQL Server 默认实例。重要 启动 SQL Server 实例时,必须从实例所在的适当目录使用 sqlservr 应用程序。对于默认实例,从 MSSQLBinn 目录运行 sqlservr。对于命名实例,在 MSSQL$instance_nameBinn 目录运行 sqlservr。-c 表示以独立于 Windows NT 服务控制管理器的方式启动 SQL Server 实例。当从命令提示符下启动
SQLServer
时,可使用该选项缩短启动 SQL Server 的时间。(注意:当使用该选项时,无法通过使用
SQLServer
服务管理器或 net stop 命令停止 SQL Server,而且如果已从 Microsoft Windows NT? 系统注销,则 SQL Server 将停止运行。)-dmaster_path指出 master 数据库文件的完全合法路径。在 -d 和 master_path 之间没有空格。-f以最小配置模式启动服务器。然后,系统管理员可对配置选项重新配置(使用 sp_configure 系统存储过程)。-eerror_log_path表示错误日志文件的完全合法路径。如果未指定路径,则默认实例的默认位置是 x:Program FilesMicrosoft SQL ServerMSSQLLogErrorlog,命名实例的默认位置是 x:Program FilesMicrosoft SQL ServerMSSQL$instance_nameLogErrorlog。在 -e 和 error_log_path 之间没有空格。-lmaster_log_path指示 master 数据库事务日志文件的完全合法路径。在 -l 和 master_log_path 之间没有空格。-m表示在单用户模式下启动 SQL Server 实例。如果 SQL Server 是以单用户模式启动的,则只能连接一个用户。CHECKPOINT 机制(它确保完成的事务定期从磁盘高速缓存写入数据库设备
中
)将不启动。(一般情况下,如果您遇到需要修复的系统数据库
问题
时,可使用此选项。)-n表示您不想使用 Windows NT 应用程序日志来记录 SQL Server 事件。如果用 -n 选项启动 SQL Server 实例,则最好也使用 -e 选项,否则将不会记录 SQL Server 事件。-Ttrace#表示应使用指定的有效跟踪标记 (trace#) 来启动 SQL Server 实例。跟踪标志用来启动具有非标准行为的服务器。有关可用跟踪标记 (trace#) 的更多信息,请参见跟踪标记。重要 当指定跟踪标志时,请使用 –T 来传递跟踪标志号。SQL Server 接受小写字母 t (-t);然而,-t 还设置 SQL Server 支持工程师所需的其它内部跟踪标记。-v显示服务器的版本号。-x禁用维护 CPU 统计。-g memory_to_reserve指定内存的兆字节整数,该内存被保留下来用于 SQL Server 2000 内部(进程内)运行的其它应用程序。-O指定不需要分布式 COM (DCOM),从而禁用异类查询。-y error_number如果 SQL Server 2000 遇到在该选项
中
指定的错误信息,它将把表象堆栈跟踪写入错误日志。可以使用多个 –y 参数指定多个错误。2. 系统数据库路径
问题
. 一般情况下,正常安装sql server之后,master等系统数据库的路径都是被设置为绝对路径,如果要改正数据库的路径为相对路径,可以使用以下SQl语句: sql:=format(' update
sys
altfiles set filename='%s' where filename='%s' ', ['...data'+extractfilename(MDFFile),MDFFile]); ADOQuery1.Close; ADOQuery1.SQL.Text:=sql; ADOQuery1.ExecSQL; sql:=format(' update
sys
altfiles set filename='%s' where filename='%s' ', ['...data'+extractfilename(LogFile),LogFile]); ADOQuery1.Close; ADOQuery1.SQL.Text:=sql; ADOQuery1.ExecSQL; sql:=Format('update
sys
database
s set filename='%s' where name='%s'', ['...data'+extractfilename(MDFFile),Edit1.text]); ADOQuery1.Close; ADOQuery1.SQL.Text:=sql; ADOQuery1.ExecSQL;大家打开
sys
altfiles 表和
sys
database
s 一看就知道了,不多说了。除了系统数据库,其它的数据库也可以使用这种方法修改为相对路径。 使用相对路径的好处是可以让你的绿色Sql server随时copy到任意目录或是任意其它机器上启动,并且原来的数据库全部可以使用,如果是绝对路径到了其它机器就不行了。3. 注册表
问题
: 大家可以看下面的注册表文件Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server$name][HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server$nameMS
SQLServer
]"AuditLevel"=dword:00000000"DefaultLogin"="guest""ListenOn"=hex(7):53,00,53,00,4d,00,53,00,53,00,48,00,37,00,30,00,00,00,53,00, 53,00,4e,00,45,00,54,00,4c,00,49,00,42,00,00,00,00,00"LoginMode"=dword:00000000"Map_"="""Map#"="-""Map$"="""SetHostName"=dword:00000000"Tapeloadwaittime"=dword:ffffffff"uptime_pid"=dword:00001044"uptime_time_utc"=hex:26,57,c8,b3,fb,bb,c5,01[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server$nameMS
SQLServer
CurrentVersion]"CurrentVersion"="8.00.194""RegisteredOwner"="""SerialNumber"="""CSDVersionNumber"=dword:00000300"CSDVersion"="8.00.761""Language"=dword:00000804"checksum"=hex:37,35,32,32,63,31,35,38,61,65,37,64,34,63,64,37,35,30,64,61,30, 33,34,62,37,64,63,32,30,61,36,36,39,37,62,34,61,35,65,36,63,66,62,61,38,37, 39,36,37,31,66,33,39,61,36,65,35,64,30,33,37,36,37,65,64,36,33,30,61,39,63, 36,66,37,36,30,35,65,32,66,34,66,31,33,63,39,33,63,34,66,62,66,34,66,64,38, 64,65,36,64,35,34,37,33,35,39,35,32,36,63,61,32,36,63,33,32,64,34,36,33,65, 36,39,34,30,65,61,37,64,35,30,61,66,34,64,32,66,38,37,36,30,61,39,64,30,61, 32,36,64,65,66,66,00[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server$nameMS
SQLServer
Parameters][HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server$nameMS
SQLServer
SuperSocketNetLib]"ProtocolList"=hex(7):74,00,63,00,70,00,00,00,6e,00,70,00,00,00,00,00[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server$nameMS
SQLServer
SuperSocketNetLibNp]"PipeName"="\.pipeMSSQL$$namesqlquery"[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server$nameMS
SQLServer
SuperSocketNetLibTcp]"TcpHideFlag"=dword:00000000"TcpDynamicPorts"="$port""TcpPort"="$port"[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server$nameSetup]"FeatureName"="SqlRun""FirstStart"=dword:00000000"ProductCode"="{E09B48B5-E141-427A-AB0C-D3605127224A}""SQLDataRoot"="$path""SQLPath"="$path"这是注册一个Sql Server实例所要使用的注册表,把里面的$name,$path,$port替换成你定义的实例名,当前程序所有路径,监听端口,然后导入注册表就可以了。4. 启动Sql Server iPath:=ExtractFilePath(Application.ExeName); CommandLine:=PChar(iPath+'binnsqlservr.exe -d...datamaster.mdf -l...datamastlog.ldf -e...Loglog.txt+Edit1.Text); CreateProcess( nil, CommandLine, nil, nil, true, CREATE_NO_WINDOW, nil, PChar(iPath+'binn'), StartupInfo, ProcessInformation )也可以直接写个.bat运行就ok了.5. 启动日志
问题
。 这个
问题
最简单,因为在执行sqlservr.exe时指定的有log文件,你只用用个定时器(50ms)读文件,就可以在程序
中
显示出来启动日志了,呵呵,这只是个思想,具体的自已想办法吧. 6. 停止服务 用CreateProcess可以得到进程ID,TerminateProcess就关了sql server进程,服务就停了,简单吧。根据上面的6个步骤,你就可以自已搞定一个绿色的Sql Server了.并且你可以根据不同的sql server版本,整理出所有版本的绿色sql server。绿色 sql server 企业版绿色 sql server 个人版绿色 MSDE... ...这样以后遇到什么操作系统都全部搞定。 最后说一句,只要你能把几个Sql server版本的数据整理好(主要是系统数据库的路径
问题
(好像现在盒子已经有绿色企业版的文件了),DLL全部copy就OK了),都可以使用我的管理工具进行管理,呵呵,当然你也可以作出自已的管理器。我的管理器,主要是为了我自已用,大家如果用着可以,请多提意见。由于sql server数据太大,并且盒子上已经有了,这次只上传了exe和目录结构。不知道说的是否正确,如果还有什么
问题
,我们一起交流. Email: 11826088@163.com
SQLServer
2000企业管理器
//附加数据库 sp_attach_db 当使用 sp_attach_db 系统存储过程附加数据库时。 sp_attach_db:将数据库附加到服务器。 语法 sp_attach_db [ @dbname = ] 'dbname' , [ @filename1 = ] 'filename_n' [ ,...16 ] 参数 [@dbname =] 'dbname' 要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为
sys
name,默认值为 NULL。 [@filename1 =] 'filename_n' 数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。 参数名称以 @filename1 开始,递增到 @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库
中
其它文件的系统表。 该列表还必须包括数据库分离后所有被移动的文件。 返回代码值:0(成功)或 1(失败) eg:下面的示例将 pubs
中
的两个文件附加到当前服务器。 EXEC sp_attach_db @dbname = N'pubs', @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf', @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf' EXEC sp_attach_db @dbname = N'Ty20051029101451aaa', @filename1 = N'd:\5屏幕\Ty20051029101451aaa_data.mdf', @filename2 = N'd:\5屏幕\Ty20051029101451aaa_log.ldf' ---解决
问题
了 //删除数据库 DROP
DATABASE
从Microsoft? SQL Server? 删除一个或多个数据库。删除数据库将删除数据库所使用的数据库文件和磁盘文件。 语法 :DROP
DATABASE
database
_name [ ,...n ] 参数 :
database
_name 指定要删除的数据库名称。从 master 数据库
中
执行 sp_helpdb 以查看数据库列表。 eg: exec sp_helpdb
database
_name exec Drpo
DataBase
[Ty20051029101451aaa] //分离数据库 可以使用 sp_detach_db 存储过程分离该数据库,然后使用带有 FOR ATTACH 子句的 CREATE
DATABASE
重新附加。 sp_detach_db Archive GO CREATE
DATABASE
Archive ON PRIMARY (FILENAME = 'c:\program files\microsoft
sqlserver
\mssql\data\archdat1.mdf') FOR ATTACH GO //显示当前数据库信息 --select * from Master..
sys
Database
s //新建---不行啊 CREATE
DATABASE
TestOA ALTER
DATABASE
TestOA SET OFFLINE WITH ROLLBACK IMMEDIATE RESTORE
DATABASE
TestOA From disk='C:\Documents and Settings\Administrator\桌面\帐套\data\Template.Dat' ALTER
DATABASE
TestOA SET OFFLINE WITH ROLLBACK IMMEDIATE exec sp_detach_db Km20051030011601 --分离数据库 exec sp_attach_single_file_db km20051030011601,'D:\Test
Database
\Km20051030011601.mdf'--只附加.mdf文件
SqlServer
系列:数据库组成及系统数据库.pdf
SqlServer
系列:数据库组成及系统数据库 系列:数据库组成及系统数据库 1. 数据库组成 数据库组成 数据库的存储结构分为逻辑存储结构和物理存储结构。 逻辑存储结构 :说明数据库是由哪些性质的信息所组成。SQL Server的数据库不仅仅只是数据的存储,所有与数据处理操作相关的信 息都存储在数据库
中
。 物理存储结构 :数据库在磁盘上是以⽂件为单位存储的,由数据库⽂件和事务⽇志⽂件组成,⼀个数据库⾄少应该包含⼀个数据库⽂ 件和⼀个事务⽇志⽂件。 SQL Server数据库系统
中
的数据库⽂件是由数据⽂件和⽇志⽂件组成的,数据⽂件以盘区为单位存储在存储器
中
。 1.1 数据⽂件 数据库⽂件是指数据库
中
⽤来存放数据库数据和数据库对象的⽂件, ⼀个数据库可以有⼀个或多个数据库⽂件,⼀个数据库⽂件只能属于⼀个数 据库。 当有多个数据库⽂件时,有⼀个⽂件被定为主数据⽂件,⽤来存储数据库的启动信息和部分或全部数据, ⼀个数据库只能有⼀个主数据 库⽂件 。数据⽂件则划分为不同的页⾯和区域,页是SQL Server存储数据的基本单位。 主数据⽂件 是数据库的起点,指向数据库⽂件的其他部分,每个数据库都有⼀个主要数据⽂件,扩展名为.mdf。 次数据⽂件 包含除主数据库⽂件之外的所有数据⽂件,⼀个数据库可以没有次数据⽂件,也可以有多个次数据⽂件,扩展名为.ndf。 1.2 ⽇志⽂件 SQL Server的⽇志是由⼀系列⽇志记录组成,⽇志⽂件
中
记录了存储数据库的更新情况等事务⽇志信息,⽤户对数据库进⾏的插⼊、删 除和更新等操作都会记录在⽇志⽂件
中
。当数据库损坏时,可以根据⽇志⽂件来分析出错的原因,或者数据丢失时,还可以使⽤事务⽇志恢 复数据库。每⼀个数据库⾄少必须拥有⼀个事务⽇志⽂件,⽽且允许拥有多个⽇志⽂件。 SQL Server2012不强制使⽤.mdf、.ndf或者.ldf作为⽂件的扩展名,但建议使⽤这些扩展名帮助标准⽂件的⽤途。数据库
中
的所有⽂件的 位置都记录在master数据库和该数据库在主数据⽂件
中
。 2. 系统数据库 系统数据库 2.1 master数据库 master是SQL Server
中
最重要的数据库,是整个数据库服务器的核⼼。⽤户不能直接修改master数据库,如果master数据库损坏了,那 么整个SQL Server服务器将不能⼯作。 master数据库
中
包含了以下的⼀些内容: 所有⽤户的登录信息 ⽤户所在的组 所有系统的配置选项 服务器
中
本地数据库的名称和信息 SQL Server的初始化⽅式等 master数据库保存系统表⽤于系统的总体控制。如在新建⼀个数据库时,在master数据库的
sys
database
s表
中
插⼊对应的记录。 作为⼀个数据库管理员,应该定期备份master数据库。 2.2 model数据库 model数据库是SQL Server
中
创建数据库的模板,如果⽤户 希望创建的数据库有相同的初始化⽂件⼤⼩,则可以在model数据库
中
保存⽂件⼤⼩的信息; 希望 所有的数据库
中
都有相同的⼀个或多个表,可以将该数据表保存在model数据库
中
。 新创建的数据库以model数据库
中
的数据作为模板,因此在修改model数据库之前要考虑到,任何对model数据库
中
数据的修改都要影响 到所有使⽤该模板创建的数据库。 由于model数据库作为其他任意数据库的模板,系统
中
必须保留,不能删除。 在更改model数据库时需要注意: 任意新建的数据库⾄少要⽐model数据库⼤ 。如果将model数据库⼤⼩更改为100MB,则不能创建⼩于 100MB的数据库。 2.3 msdb数据库 msdb提供了运⾏SQL Server Agent⼯作的信息。SQL Server Agent是SQL Server
中
的⼀个Windows服务,该服务⽤来运⾏制定的计划 任务。如在计划对⼀个数据库每夜进⾏备份时,则在msdb数据库
中
有⼀个相应的记录项。 2.4 tempdb数据库 tempdb是SQL Server
中
的⼀个临时数据库,⽤于存放临时对象或
中
间结果,只要创建临时表,则临时表会创建在tempdb数据库
中
。 SQL Server关闭后,该数据库
中
的内容被清空,每次重新启动服务器之后,tempdb数据库将被完全重建。
sql系统表详解
sys
altfiles 主数据库 保存数据库的文件
sys
charsets 主数据库字符集与排序顺序
sys
configures 主数据库 配置选项
sys
curconfigs 主数据库当前配置选项
sys
database
s 主数据库服务器
中
的数据库
sys
languages 主数据库语言
sys
logins 主数据库 登陆帐号信息
sys
oledbusers 主数据库 链接服务器登陆信息
sys
processes 主数据库进程
sys
remotelogins主数据库 远程登录帐号
sys
columns 每个数据库 列
sys
constrains 每个数据库 限制
sys
filegroups 每个数据库 文件组
sys
files 每个数据库 文件
sys
foreignkeys 每个数据库 外部关键字
sys
indexs 每个数据库 索引
sys
menbers 每个数据库角色成员
sys
objects 每个数据库所有数据库对象
sys
permissions 每个数据库 权限
sys
types 每个数据库 用户定义数据类型
sys
users 每个数据库 用户
sql 2000断电后数据库被标为置疑,然后用以下方法恢复:
企业管理器--右键suspect的数据库--所有任务--分离数据库 然后备份你的suspect数据库的文件,再按下面的步骤处理: 1.新建一个同名的数据库 2.再停掉sql server 3.用suspect数据库的文件覆盖掉这个新建的同名数据库 4.再重启sql server 5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,执行下面的语句(注意修改其
中
的数据库名) USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO UPDATE
SYS
DATABASE
S SET STATUS =32768 WHERE NAME='his222' Go sp_dboption 'test', 'single user', 'true' Go DBCC CHECKDB('test') Go update
sys
database
s set status =28 where name='test' Go sp_configure 'allow updates', 0 reconfigure with override Go sp_dboption 'test', 'single user', 'false' Go 6.完成后一般就可以访问数据库
中
的数据了,这时,数据库本身一般还要
问题
,解决办法是,利用 数据库的脚本创建一个新的数据库,并将数据导进去就行了. 如果这样改不加数据库状态,你就把数据库导成一个新库来代替旧库吧 企业管理器--右键你的数据库--所有任务--导出数据 --目标标数据库选择新建 --选择"在两个sql数据库之间复制对象和数据" --把"包含扩展属性"选上,其他的根据需要选择 --最后完成
问题
是恢复后数据的确是可以使用,但数据就少了许多,最近的数据也只有8.16日的数据。 求求各位有没有更好的方法恢复呢,不然我就好坎坷.
数据库相关
2,497
社区成员
88,445
社区内容
发帖
与我相关
我的任务
数据库相关
Delphi 数据库相关
复制链接
扫一扫
分享
社区描述
Delphi 数据库相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章