日期:2014-05-19  浏览次数:20495 次

怎样自动把一台sql2000的数据备份到另一台sql2000?
如题

------解决方案--------------------
在一台机器的3个实例中进行数据库镜像

预备知识: 数据库镜像基本概念
http://msdn2.microsoft.com/zh-cn/library/ms177412.aspx
http://msdn2.microsoft.com/zh-cn/library/ms189852.aspx

--------一 准备工作----------
-------(一) 安装三个实例,分别为:-----
SZDXBAK\SQLSERVER(默认实例), 作为主体服务器
SZDXBAK\SQL2 作为镜像服务器
SZDXBAK\WITNESS 作为鉴证服务器
注: 所有实例服务使用SQLService账户启动

------(二) 数据库准备-------
--1 在主体服务上创建测试数据库 RecoveryDb
并创建一个完全备份
--2 在镜像服务上使用NORECOVERY选项恢复数据库,
恢复后数据库状态为 '正在还原 '


----- 二 创建数据库镜像端点----
--1 在主体数据库(SQLSERVER实例)上创建端点,用于伙伴通讯
CREATE ENDPOINT DbMirroring
STATE=STARTED
AS TCP(LISTENER_PORT=5022)
FOR DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED)
go

--2 在镜像数据库(SQL2实例)上创建端点,用于伙伴通讯
CREATE ENDPOINT DbMirroring
STATE=STARTED
AS TCP(LISTENER_PORT=5033)
FOR DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED)
go

--3 在鉴证服务器(WITNESS实例)上创建端点,用于鉴证通讯
CREATE ENDPOINT DbMirroring
STATE=STARTED
AS TCP(LISTENER_PORT=5022)
FOR DATABASE_MIRRORING(ROLE=WITNESS,ENCRYPTION=SUPPORTED)
go

ALTER ENDPOINT DbMirroring STATE=STARTED
go

--4 检查端点配置,可分别在不同服务器上运行以下查询
SELECT * FROM sys.database_mirroring_endpoints

----- 三 配置数据库镜像安全性--------

--1 主体数据库(SQLSERVER实例)
use master
go
GRANT CONNECT ON ENDPOINT:: "DbMirroring " TO "SZDXBAK\SQLService "
go

--2 镜像数据库(SQL2实例)
use master
go
GRANT CONNECT ON ENDPOINT:: "DbMirroring " TO "SZDXBAK\SQLService "
go

--3 鉴证服务器(WITNESS实例)
use master
go
GRANT CONNECT ON ENDPOINT:: "DbMirroring " TO "SZDXBAK\SQLService "
go


----- -四 启动数据库镜像-----
--注意配置顺序
--1 在镜像数据库(SQL2实例)上,指定到主体服务器(SQLSERVER实例)的伙伴端点
ALTER DATABASE RecoveryDb
SET PARTNER=N 'TCP://SZDXBAK:5022 '
go

--2 在主数据库(SQLSERVER实例)上,指定到镜像服务器(SQL2实例)的伙伴端点
ALTER DATABASE RecoveryDb
SET PARTNER=N 'TCP://SZDXBAK:5033 '
go

--注: 以上两步完成后,已经配置为高保护级别性模式
--3 如果要创建高可用性模式:在主数据库上(SQLSERVER实例),指定鉴证服务器端点
ALTER DATABASE RecoveryDb
SET WITNESS=N 'TCP://SZDXBAK:5044
go

------解决方案--------------------
用xp_cmdshell

use master
exec xp_cmdshell 'net use b: \\192.168.0.163\backup xlkjbyxls /user:192.168.0.1\backup '

backup database federal_8844 to disk= 'b:\federal_8844_100.bak '

exec xp_cmdshell 'net use b: /delete '
------解决方案--------------------
同步过程
一、准备工作,如果完成则可跳过。

1、内网DB服务器作为发布服务器,外网DB服务器作为订阅服务器。

发布服务器和订阅服务器上分别创建Windows用户jl,密码jl,隶属于administrators,注意要保持一致。

2、发布服务器上创建一个共享目录,作为发布快照文件的存放目录。例如:在D盘根目录下建文件夹名为SqlCopy,设置用户jl,权限为完全控制。

3、确定发布服务器和订阅服务器的数据库autoweb保持一致。

4、在发布服务器和订阅服务器的SQL Server中创建用户登陆名jl,作为发布数据库autoweb的拥有者(设置为dbo_owner和public)。用户名和密码都一致。