数据库必须打sp2补丁
1).在主体的host里面加入镜像的ip,服务器名
2).在镜像的host里面加入主体的ip,服务器名
实现互通,ping 主机名和ip
主体ip 镜像计算机名
镜像ip 主体计算机名
3). sql 的启动方式,必须已相同的用户名和权限启动。必须启动5022端口
主库和镜像库创建相同的系统账号(账号和密码必须一样),加入Administrators组,sqlserver服务和agent服务都用这个账号启动
主库和镜像库都是这么做,
(在我的电脑右键管理添加新用户,隶属于Administrator(添加,高级,立即查找,Administrators,确定),然后在在我的电脑右键-管理-服务应用程序--服务--
sql server 服务--右键属性--登录--此账户--浏览--高级--立即查找--添加自定义帐户--确定,然后重启sql server 服务)
4)主库一定是完整类型的数据库(镜像基于日志)
备份一定要用脚本
数据库备份脚本(*注:一定要语句备份,生成单独的数据库以及日志备份*)
BACKUP database 库名 to disk = 'e:\库名.bak'
BACKUP log 库名 to disk = 'e:\库名log.bak'
还原手动还原
先还原数据库NORECOVERY状态,然后在还原事务日志, NORECOVERY状态。
restore database 库名
from disk = 'e:\库名.bak' with NORECOVERY,replace,
move '库名' to 'E:\data\MSSQL.1\MSSQL\DATA\库名.mdf',
move '库名_log' to 'E:\data\MSSQL.1\MSSQL\DATA\库名_log.ldf';
restore log 库名 from disk = 'e:\库名log.bak' with NORECOVERY;
5、主体 端点建立
检查是否存在端点:
SELECT * FROM sys.database_mirroring_endpoints
--删除镜像端点:DROP ENDPOINT 库名
Create endpoint 库名
AS TCP (listener_port = 5022)
for database_mirroring (role = partner,encryption = supported);
go
alter endpoint 库名 state = started
go
6、镜像 端点建立
SELECT * FROM sys.database_mirroring_endpoints
Create endpoint 库名
AS TCP (listener_port = 5022)
for database_mirroring (role = partner,encryption = supported);
go
alter endpoint 库名 state = started
go
先7后8
7、镜像启动数据库(注:执行7,8两步骤前必须在主服务器和镜像服务器中配置host主机名,如果host修改后仍无效,注意修改SQL启动方式,有两个:SQLSERVER以及SQLAGENT)
ALTER DATABASE 库名
set partner = N'TCP://主体计算机名:5022'
go
出错:默认情况下,数据库镜像是被禁用的
解决方法: 将数据库打到SP2 补丁
8、主体启动数据库
ALTER DATABASE 库名
set partner = N'TCP://镜像计算机名:5022'
go
9、事物安全性设置 (主体库中设置)
ALTER DATABASE 库名 set safety off
-- 3. 见证服务器上执行的操作
-- a. 删除端点
DROP ENDPOINT em_local_account
GO