– 将主角色转移到可用性组中的某个备份副本
ALTER AVAILABILITY GROUP [ag1] FORCE_FAILOVER_ALLOW_DATA_LOSS;
– 尝试进行优雅的故障转移,如果不能完成,则允许丢失数据
– ALTER AVAILABILITY GROUP [ag1] FAILOVER;
6.5测试
在主库上创建一个数据库,并加入到可用组AG中。
--创建数据库
CREATE DATABASE agtestdb;
GO
ALTER DATABASE agtestdb SET RECOVERY FULL;
GO
BACKUP DATABASE agtestdb TO DISK = '/var/opt/mssql/data/agtestdb.bak';
GO
ALTER AVAILABILITY GROUP [ag1] ADD DATABASE [agtestdb];
GO
-- 创建表
use agtestdb
CREATE TABLE ExampleTable (
ID INT PRIMARY KEY,
Name NVARCHAR(50),
Description NVARCHAR(100)
);
-- 插入数据
DECLARE @counter INT = 1;
WHILE @counter <= 100
BEGIN
INSERT INTO ExampleTable (ID, Name, Description)
VALUES (@counter, 'Name ' + CAST(@counter AS NVARCHAR(10)), 'Description for ' + CAST(@counter AS NVARCHAR(10)));
SET @counter = @counter + 1;
END;
GO
通过SSMS查看同步状态是否正常.
6.6监控 AG 状态
通过以下这些视图可以监控 AG 中各个部分的状态。
group的监控
select * from sys.availability_groups; select * from sys.availability_groups_cluster; select * from sys.dm_hadr_availability_group_states;
replica 的监控
select * from sys.availability_replicas; select * from sys.dm_hadr_availability_replica_states; select * from sys.dm_hadr_availability_replica_cluster_nodes; select * from sys.dm_hadr_availability_replica_cluster_state