万众海浪论坛  
温馨提示今天是:

当网络繁忙时请选择:https://bbs.838778.com(线路一)https://bbs.939138.com(线路二)进入本站论坛。


 
标题: SQL2000数据库【安装步骤】
万众海浪
管理员
Rank: 12Rank: 12Rank: 12



UID 915
精华 1
积分 48109
帖子 1098
威望 48109 点
金钱 50275 RMB
阅读权限 200
注册 2005-6-20
状态 离线
 
发表于 2011-3-6 22:50  资料  个人空间  短消息  加为好友 
SQL视频教程 如何导入导出数据表


顶部
万众海浪
管理员
Rank: 12Rank: 12Rank: 12



UID 915
精华 1
积分 48109
帖子 1098
威望 48109 点
金钱 50275 RMB
阅读权限 200
注册 2005-6-20
状态 离线
 
发表于 2012-1-21 19:08  资料  个人空间  短消息  加为好友 
定时将服务器中SQL SERVER 2000数据库备份到局域网中另一台电脑上

//soondy @Champway Data Base Backup 2007.10
本文尝试阐述如何实现定时将服务器中SQL SERVER 2000数据库备份到局域网中另一台电脑上。
下面分几个步骤进行说明.(为节约空间,本文不带图示)

1.在master数据库中创建存储过程名为Bakup_DataBase.
具体操作可以打开SQL 查询分析器,然后复制以下代码,运行(按F5)即可。
注意:需要填写一些配置的参数,请参考代码中的提示和例子。
存储过程代码如下:

--实现功能:定时将服务器中SQL SERVER 2000数据库备份到局域网中另一台电脑上
--Full BackUp
--Use Master
CREATE proc bakup_DataBase
as
Declare @strPsw varchar(50)
Declare @strUsr varchar(50)
Declare @strCmdShell varchar(300)
Declare @strDataBaseName varchar(20)
Declare @FullFileName Varchar(200)
Declare @FileFlag varchar(50)
Declare @ToFileName varchar(200)
Declare @SQLStr varchar(500)
Declare @SQLStr2 varchar(500)
Declare @FlagDel varchar(20)
Set @FileFlag=replace(replace(convert(char(20),getdate(),20),':','-'),' ','-')     --备份的文件命名规则:日期-时间.bak
Set @strUsr='Administrator\Administrator' --需填写域名\用户名(目标机器的Windows登陆名)
Set @strPsw='soondy'--需填写Windows登陆密码(如:Soondy)
Set @strCmdShell= 'net use \\192.168.2.178\c$ ' + @strPsw + ' /user:' +@strUsr --需填写IP(目标机器的IP地址,如:192.168.2.178)
Set @strDataBaseName='Soondy'--填写数据库名称(如:Soondy)
Set @FullFileName='E:\SoondyTest\'+@FileFlag+'.BAK'--需填写本地备份临时文件的目录,因为需要先备份到本地再copy到目标机器(如:保存目录为E:\SoondyTest\)
Set @ToFileName='\\192.168.2.178\c$\Test\' --需填写IP(目标机器的IP地址)以及保存的目录(如:\\192.168.2.178\c$\Test\)
Set @FlagDel='True'--填写True表示删除本地的备份临时文件,填写False或其他字符表示保留该文件
Set @SQLStr='copy '+@FullFileName+' '+@ToFileName
Set @SQLStr2='del ' +@FullFileName

BackUp DataBase  @strDataBaseName  To Disk=  @FullFileName   with init

exec master..xp_cmdshell  @strCmdShell--尝试连接到目标机器
exec Master..xp_cmdshell @SQLStr --拷贝到目标机器上
if (@FlagDel ='True') exec master.. xp_cmdshell @SQLStr2--删除本地的备份临时文件
GO


2.打开SQL Server 企业管理器,在指定需要备份的数据库上面,创建一个维护计划。可按需要设定将来运行这个维护计划的时间/周期.  
3.在SQL Server 企业管理器中,管理->SQL Server代理->作业,可以找到刚建立的维护计划这个作业。
4.双击这个作业,弹出属性对话框,在"步骤"页->点击"编辑"按钮,在弹出的编辑作业步骤对话框中,修改
"常规"页->"命令"的文本内容,改为: XECUTE master.dbo.bakup_DataBase

5.完成.

顶部
万众海浪
管理员
Rank: 12Rank: 12Rank: 12



UID 915
精华 1
积分 48109
帖子 1098
威望 48109 点
金钱 50275 RMB
阅读权限 200
注册 2005-6-20
状态 离线
 
发表于 2012-1-21 19:33  资料  个人空间  短消息  加为好友 
SQL数据库的备份、还原、压缩与数据转移的方法

当前,全国各级审计机关普遍应用AO系统进行现场审计,但由于被审计单位使用的财务软件种类太多,AO系统不可能提供全部财务软件数据导入模板,虽然AO现场审计实施系统2008版比2005版在模板数量上有所增加,但仍然不能完全解决各级审计机关在实际审计工作遇到的数据导入难题,只能通过后台备份数据库,然后还原到审计人员电脑中进行处理后,再一步一步导入AO中。由于审计人员大部分非计算机专业,对数据库的基本操作了解不是很多,无形中影响了计算机辅助审计的开展。为此,笔者分析了大量的被审计单位的财务系统后台数据库,其中大部分财务软件使用了SQL作为后台数据库,因此总结了SQL数据库的备份、压缩与SQL数据库数据处理的方法,供审计人员在审计工作中借鉴使用。

  一、备份数据库

  1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server

  2、SQL Server组——>双击打开你的服务器——>双击打开数据库目录

  3、选择你的数据库名称(如财务数据库cwdata)——>然后点上面菜单中的工具——>选择备份数据库

  4、备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点添加,如果原来没有路径和名称则直接选择添加,接着指定路径和文件名,指定后点确定返回备份窗口,接着点确定进行备份。

  二、还原数据库

  1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server;

  2、SQL Server组——>双击打开你的服务器——>点图标栏的新建数据库图标,新建数据库的名字自行取;

  3、点击新建好的数据库名称(如财务数据库cwdata)——>然后点上面菜单中的工具——>选择恢复数据库;

  4、在弹出来的窗口中的还原选项中选择从设备——>点选择设备——>点添加——>然后选择你的备份文件名——>添加后点确定返回,这时候设备栏应该出现您刚才选择的数据库备份文件名,备份号默认为1(如果您对同一个文件做过多次备份,可以点击备份号旁边的查看内容,在复选框中选择最新的一次备份后点确定)——>然后点击上方常规旁边的选项按钮;

  5、在出现的窗口中选择在现有数据库上强制还原,以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项。在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指定自己的目录),逻辑文件名不需要改动,移至物理文件名要根据你所恢复的机器情况做改动,如您的SQL数据库装在D:Program FilesMicrosoft SQL ServerMSSQLData,那么就按照您恢复机器的目录进行相关改动改动,并且最后的文件名最好改成您当前的数据库名(如原来是cw123_data.mdf,现在的数据库是cwdata,就改成cwdata_data.mdf),日志和数据文件都要按照这样的方式做相关的改动(日志的文件名是*_log.ldf结尾的),这里的恢复目录您可以自由设置,前提是该目录必须存在(如您可以指定d:sqldatacwdata_data.mdf或者d:sqldatacwdata_log.ldf),否则恢复将报错;

  6、修改完成后,点击下面的确定进行恢复,这时会出现一个进度条,提示恢复的进度,恢复完成后系统会自动提示成功,如中间提示报错,请记录下相关的错误内容并询问对SQL操作比较熟悉的人员,一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误,数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复操作,如果还提示正在使用的错误可以将SQL服务停止然后重起看看,至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复。

  三、收缩数据库

  一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大。

  1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server——>SQL Server组——>双击打开你的服务器——>双击打开数据库目录——>选择你的数据库名称(如财务数据库cwdata)——>然后点击右键选择属性——>选择选项——>在故障还原的模式中选择“简单”,然后按确定保存;

  2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定;

  3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据。

  四、数据的转移(新建数据库或转移服务器)

  一般情况下,最好使用备份和还原操作来进行转移数据,在特殊情况下,可以用导入导出的方式进行转移,这里介绍的就是导入导出方式,导入导出方式转移数据一个作用就是可以在收缩数据库无效的情况下用来减小(收缩)数据库的大小。

  1、将原数据库的所有表、存储过程导出成一个SQL文件,导出的时候注意在选项中选择编写索引脚本和编写主键、外键、默认值和检查约束脚本选项;

  2、新建数据库,对新建数据库执行第一步中所建立的SQL文件;

  3、用SQL的导入导出方式,对新数据库导入原数据库中的所有表内容。

  五、SQL数据库备份恢复的另一种方法

  1、将原来备份的C:Program FilesMicrosoft SQL ServerMSSQLData目录下的两个文件*_sql_Data.MDF 和 *_sql_Log.LDF 同时COPY 到您的SQL Server 2000的安装目录中,如: C:Program FilesMicrosoft SQL ServerMSSQLData ;

  2、打开 “企业管理器” -> “机器名” -> “数据库” ,右键点击 “所有任务” -> “附加数据库” ,然后再选择刚才COPY的文件 *_sql_Data.MDF ,点击附加,成功!

  3、做好其它设置,如登录身份、密码等即可。

顶部
万众海浪
管理员
Rank: 12Rank: 12Rank: 12



UID 915
精华 1
积分 48109
帖子 1098
威望 48109 点
金钱 50275 RMB
阅读权限 200
注册 2005-6-20
状态 离线
 
发表于 2012-1-21 20:48  资料  个人空间  短消息  加为好友 
错误21002:[SQL-DMO]用户"xxx"已经存在

MSSQL2000迁移数据库后,新建相同用户名的时候出现错误提示:“错误21002:[SQL-DMO]用户"xxx"已经存在”
产生原因:
这就是我们通常所说的“孤立用户”,所谓孤立帐户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数据库的syslogins中却没有对应的记录。

孤立帐户的产生一般是一下两种:
1.将备份的数据库在其它机器上还原;
2.重装系统或SQL SERVER之后只还原了用户库
解决方法:
在数据库的sysusers中删除xxx
使登录用户和数据库的孤立用户对应起来
       其实我们建立了同样名称的数据库登录用户后,数据库中的表我们照样不能使用时因为sid的不同,就是系统登录表和数据库用户表中的用户名相同,单是sid字段,数据库中的还是以前旧系统的sid值,所以我们就要把它对应成我们新建的,数据库靠sid来识别用户。
       这里可以使用存储过程sp_change_users_login。它有三种动作,分别是report,update_one和auto_fix。
       运行sp_change_users_login 'report',系统会列出当前数据库的孤立用户数。
       我们只需要选择当前数据库为testdb,然后运行
       sp_change_users_login 'update_one','test','test'
       系统就会提示修复了一个孤立用户。
       如果没有建立test的登录用户,还可以用
sp_change_users_login 'Auto_Fix', 'test', NULL, 'testpassword'
来创建一个登录用户名为test,密码为testpassword的用户与之对应。
      
好了,到这里通常情况下,数据库对象得到访问问题已经解决了。如果有多个数据库中有同一个用户的数据表,只需要选择不同的数据库,执行update_one的那个就行了。

转自:[url=]http://www.cnblogs.com/jamin/archive/2008/06/17/1223614.html[/url]
===================================================================================
1. 查看某个数据库的孤立用户:
    USE 库名
    EXEC sp_change_users_login 'Report'

2. 自动修复某个孤立用户:
    USE 库名
    EXEC sp_change_users_login 'Auto_Fix', '孤立用户名', NULL, '密码'

      --密码指用户对应的登录不存在时, 系统自动建立登录, 为登录分配的密码
    报错:
       服务器: 消息 8144,级别 16,状态 2,过程 sp_change_users_login,行 0
      为过程或函数 sp_change_users_login 指定的参数太多。
      --报错时候, 可删除“,'密码'”部分(版本或者补丁问题)
3.表已经恢复完毕,有孤立用户 user1, 在登录中已建立登录用户 user2

sp_change_users_login @Action = 'Update_One'
, @UserNamePattern = 'user1'
, @LoginName = 'user2'

可将 user1 与 user2(以user2用户名登录) 关联
翻译:
**************************************************************************************************
sp_change_users_login   
      新增信息   -   SQL   Server   2000   SP3。   
   
将数据库中现有的用户映射到   Microsoft®   SQL   Server™   登录。   
   
语法   
sp_change_users_login   [   @Action   =   ]   'action'     
          [   ,   [   @UserNamePattern   =   ]   'user'   ]     
          [   ,   [   @LoginName   =   ]   'login'   ]   
          [   ,   [   @Password   =   ]   'password'   ]   
   
参数   
[   @Action   =   ]   'action'   
   
描述此过程要执行的操作。action   的数据类型为   varchar(10),可以是下面的某个值。   
   
值   描述     
Auto_Fix   将当前数据库   sysusers   表中的用户条目链接到   sysxlogins   中同名的登录。应检查   Auto_Fix   语句的结果,确认实际中的链接正确。在对安全性较为敏感的情况下,要避免使用   Auto_Fix。     
使用   Auto_Fix   时,必须指定   user   和   password;login   必须为   NULL。user   必须是当前数据库中的有效用户。   
      
Report   列出当前数据库中未链接到任何登录的用户以及相应的安全标识符   (SID)。     
user、login   和   password   必须为   NULL   或不指定。   
      
Update_One   将当前数据库中指定的   user   链接到   login。login   必须已存在。必须指定   user   和   login。password   必须为   NULL   或不指定。     
   
   
[@UserNamePattern   =]   'user'   
   
是当前数据库中的   SQL   Server   用户的名称。user   的数据类型为   sysname,默认值为   NULL。     
   
[@LoginName   =]   'login'   
   
SQL   Server   登录的名称。login   的数据类型为   sysname,默认值为   NULL。     
   
[@Password   =]   'password'   
   
是指派给   Auto_Fix   创建的新   SQL   Server   登录的密码。如果已存在匹配的登录,将映射用户和登录并忽略   password。如果不存在匹配的登录,sp_change_users_login   将新建一个新的   SQL   Server   登录并将   password   指派为该新登录的密码。password   是   sysname,默认值为   NULL。   
   
返回代码值   
0(成功)或   1(失败)   
   
结果集   
列名   数据类型   描述     
UserName   sysname   登录名。     
UserSID   varbinary(85)   登录安全标识符。     
   
   
注释   
使用此过程将当前数据库中用户的安全帐户链接到登录。如果用户登录已更改,则使用   sp_change_users_login   将用户链接到新的登录,而不会丢失用户的权限。   
   
sp_change_users_login   只能用于   SQL   Server   登录;它不能用于   Windows   登录。   
   
login   不能为   sa,而   user   不能为   dbo、guest   或   INFORMATION_SCHEMA   用户。   
   
不能在用户定义的事务中执行   sp_change_users_login。   
   
权限   
任何   public   角色的成员均可执行带有   Report   选项的   sp_change_users_login。只有   sysadmin   固定服务器角色的成员才能指定   Auto_Fix   选项。只有   sysadmin   或   db_owner   角色的成员才能指定   Update_One   选项。   
   
示例   
A.   显示登录映射的当前用户的报告   
下面的示例生成当前数据库中的用户及其安全标识符的报告。   
   
EXEC   sp_change_users_login   'Report'   
   
B.   更改用户的登录   
下面的示例更改   pubs   数据库中的用户   Mary   与现有登录之间的链接,链接到新的登录   NewMary   上(使用   sp_addlogin   添加)。   
   
--Add   the   new   login.   
USE   master   
go   
EXEC   sp_addlogin   'NewMary'   
go   
   
--Change   the   user   account   to   link   with   the   'NewMary'   login.   
USE   pubs   
go   
EXEC   sp_change_users_login   'Update_One',   'Mary',   'NewMary'   
   
C.   自动将用户映射到登录(必要时新建一个新登录)   
下例显示如何使用   Auto_Fix   选项将现有的用户映射到同名的登录,或者如果不存在登录   Mary,则创建密码为   B3r12-36   的   SQL   Server   登录   Mary。   
   
USE   pubs   
go   
EXEC   sp_change_users_login   'Auto_Fix',   'Mary',   NULL,   'B3r12-36'   
go   

注:转自[url=]http://www.cnblogs.com/lanshh/archive/2007/04/23/724400.html[/url]

顶部
 

 

本站永久域名①:www.838668.com (点击加入您的收藏夹)

当前时区 GMT+8, 现在时间是 2024-11-21 17:43

     Powered by Discuz! 5.5.0  © 2001-2007, Skin by Cool
Clear Cookies - Contactus - 万众海浪论坛 - Archiver - wap