我以前发过一个关于这个的帖子  还有些 不明白   
我是在一家医药公司上班  我们单位最近要换服务器  以下是论坛一位大哥告诉我的   我这里有几个不明白的 还请大家帮帮忙 
   
新服务器-装系统-装sql-设置用户名和密码与原服务器一致-将原服务器的sql备份-拷贝备份到新服务器-新服务器上新建库与原服务器同名-还原数据库-新服务器装医药软件-设置软件与数据库的连接-ok在 这步  将原服务器的sql备份-拷贝备份到新服务器   小弟就不行了  请问 原服务器的 SQL需要备份的东西在哪个目录里面小弟刚接触SQL 不明白   还有 怎样在 新的服务器里去还原以前的备份呢    万分感谢还有一个重要的就是   怎样  设置软件与数据库的连接  安装完这个软件怎么能和 数据库连接呢? 谢谢了!

解决方案 »

  1.   

    backup database db_name to disk='文件路径' with format
    go恢复时
    restore database db_name from disk='文件路径' with replace
    go但要注意一下数据库版本.能向下兼容,不能向上兼容.
      

  2.   

    谢谢这位朋友 可有点看不明白 小弟 太浅了  不能直接进到服务起里 把以前的资料直接备份 出来吗  你方便吗 有MSN 吗
      

  3.   

    不能进服务器里?..
    那就不是SQLServer的问题了.
      

  4.   

    在联机帮助看看就明白了..
    --数据库不存在时
      --附加新的库   
      CREATE   DATABASE   你的新库名     
      ON   PRIMARY   (FILENAME   =   'c:\program   files\microsoft   sql   server\mssql\data\你的新库的文件.mdf')   
      FOR   ATTACH   
      GO
      

  5.   

    A. 还原完整数据库
    说明  MyNwind 数据库仅供举例说明。
    下例显示还原完整数据库备份。RESTORE DATABASE MyNwind 
       FROM MyNwind_1B. 还原完整数据库备份和差异备份
    下例还原完整数据库备份后还原差异备份。另外,下例还说明如何还原媒体上的另一个备份集。差异备份追加到包含完整数据库备份的备份设备上。RESTORE DATABASE MyNwind
       FROM MyNwind_1
       WITH NORECOVERY
    RESTORE DATABASE MyNwind
       FROM MyNwind_1
       WITH FILE = 2C. 使用 RESTART 语法还原数据库
    下例使用 RESTART 选项重新启动因服务器电源故障而中断的 RESTORE 操作。-- This database RESTORE halted prematurely due to power failure.
    RESTORE DATABASE MyNwind
       FROM MyNwind_1
    -- Here is the RESTORE RESTART operation.
    RESTORE DATABASE MyNwind 
       FROM MyNwind_1 WITH RESTARTD. 还原数据库并移动文件
    下例还原完整数据库和事务日志,并将已还原的数据库移动到 C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下。RESTORE DATABASE MyNwind
       FROM MyNwind_1
       WITH NORECOVERY, 
          MOVE 'MyNwind' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.mdf', 
          MOVE 'MyNwindLog1' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.ldf'
    RESTORE LOG MyNwind
       FROM MyNwindLog1
       WITH RECOVERY
      

  6.   

    以下代码简单地演示了如何进行文件组的备份及还原(在还原时,模拟了丢失第二次文件组备份文件的情况)。
    --创建测试数据库
    CREATE DATABASE db
    ON PRIMARY(
    NAME='db_data',
    FILENAME= 'c:\db_data.mdf'),
    FILEGROUP db_fg1(
    NAME = 'db_fg1_data',
    FILENAME = 'c:\db_fg1_data.ndf'),
    FILEGROUP db_fg2(
    NAME = 'db_fg2_data',
    FILENAME = 'c:\db_fg2_data.ndf')
    LOG ON(
    NAME='db_log',
    FILENAME ='c:\db.ldf')
    GO--在文件组db_fg1上创建表,并单独创建该文件组的备份
    CREATE TABLE db.dbo.tb(id int) ON db_fg1
    BACKUP DATABASE db FILEGROUP='db_fg1' TO DISK='c:\db_fg1.bak' WITH FORMAT
    GO在其他文件组上创建表 
    CREATE TABLE db.dbo.ta(id int) ON [PRIMARY]
    CREATE TABLE db.dbo.tc(id int) ON db_fg2
    INSERT db.dbo.tb SELECT id FROM sysobjects
    --备份每个文件组,并且备份事务日志
    BACKUP DATABASE db FILEGROUP='PRIMARY' TO DISK='c:\db_primary.bak' WITH FORMAT
    BACKUP DATABASE db FILEGROUP='db_fg1' TO DISK='c:\db_fg1_new.bak' WITH FORMAT
    BACKUP DATABASE db FILEGROUP='db_fg2' TO DISK='c:\db_fg2.bak' WITH FORMAT
    BACKUP LOG db TO DISK='c:\db_log.bak' WITH FORMAT
    GO--删除数据库
    DROP DATABASE db
    GO--从文件组备份中恢复数据
    RESTORE DATABASE db FILEGROUP='PRIMARY' FROM DISK='c:\db_primary.bak' WITH NORECOVERY,REPLACE
    RESTORE DATABASE db FILEGROUP='db_fg1' FROM DISK='c:\db_fg1.bak' WITH NORECOVERY
    RESTORE DATABASE db FILEGROUP='db_fg2' FROM DISK='c:\db_fg2.bak' WITH NORECOVERY
    RESTORE LOG db FROM DISK='c:\db_log.bak' WITH RECOVERY
    SELECT COUNT(*) FROM db.dbo.tb
    GO--删除测试数据库
    DROP DATABASE db
      

  7.   


    我是说 不能在服务器里直接 拷贝出来吗 不用输一些语法 
    还有 怎样 连接 医药软件和 SQL的数据库呢
      

  8.   

    直接拷贝..
    也可以..
    先把数据库服务给停掉.
    然后将xx.mdf,,xx.ldf(如果还有xx.ndf给一并拷贝.)..
    放到你的新服务器的指定目录里..
    再进入企业管理器.对数据库按右键.所有任务,附加数据库.然后把文件选择上.就可以.至于连接数据库..这个使用ado等方法去连接.就方便了.
      

  9.   


    大哥谢谢 指点  !  请问  如何使用ado等方法去连接. 新的医药软件呢!! T T  太感谢了
      

  10.   

    有SQL登陆和select权限就行了,花时间。
    ----------
    方法:建一个库,用--创建链接服务器
    exec sp_addlinkedserver  'ITSV','','SQLOLEDB','远程服务器名或ip地址'
    exec sp_addlinkedsrvlogin 'ITSV','false',null,'用户名','密码'--查询示例
    select * from ITSV.数据库名.dbo.表名--导入示例
    select * into 表 from ITSV.数据库名.dbo.表名--以后不再使用时删除链接服务器
    exec sp_dropserver 'ITSV','droplogins'--连接远程/局域网数据(openrowset/openquery/opendatasource)
    --1、openrowset--查询示例
    select * from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)--生成本地表
    select * into 表 from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)--把本地表导入远程表
    insert openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)
    select *from 本地表--更新本地表
    update b
    set b.列A=a.列A
     from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)as a inner join 本地表 b
    on a.column1=b.column1--openquery用法需要创建一个连接--首先创建一个连接创建链接服务器
    exec sp_addlinkedserver  'ITSV','','SQLOLEDB','远程服务器名或ip地址'
    --查询
    select *
    FROM openquery(ITSV, 'SELECT *  FROM 数据库.dbo.表名')
    --把本地表导入远程表
    insert openquery(ITSV, 'SELECT *  FROM 数据库.dbo.表名')
    select * from 本地表
    --更新本地表
    update b
    set b.列B=a.列B
    FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名') as a 
    inner join 本地表 b on a.列A=b.列A--3、opendatasource/openrowset
    SELECT   *
    FROM   opendatasource('SQLOLEDB', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码' ).test.dbo.roy_ta
    --把本地表导入远程表
    insert opendatasource('SQLOLEDB', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码').数据库.dbo.表名
    select * from 本地表 
      

  11.   


    大哥你有MSN 或 QQ吗 !
      

  12.   

    在 这步  将原服务器的sql备份-拷贝备份到新服务器   小弟就不行了  请问 原服务器的 SQL需要备份的东西在哪个目录里面小弟刚接触SQL 不明白   还有 怎样在 新的服务器里去还原以前的备份呢    万分感谢 -------------------------------------
    在哪个目录是你自己定的.
    数据是数据和日志文件,在C:\Program Files\Microsoft SQL Server\MSSQL$SQLSERVER2000\Data目录下.还有一个重要的就是   怎样  设置软件与数据库的连接  安装完这个软件怎么能和 数据库连接呢? 谢谢了!这个找软件的开放商来搞.
      

  13.   

    较简单的一个方法:
    将数据文件(扩展名为.mdf)和日志文件(扩展名为.ldf)拷备至新服务器存放数据的目录,使用企业管理器下附加数据库任务即可,也可用以下语名进行附加:
    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'
    这种方法操作较为简单,但附加后维护计划和作业都要重新做过.