зеркало из https://github.com/microsoft/bobsql.git
ag demo scripts
This commit is contained in:
Родитель
7de3e2fb80
Коммит
764e40bf85
|
@ -0,0 +1,24 @@
|
||||||
|
SELECT ar.replica_server_name, ag.name, dhars.role_desc, dhars.operational_state, dhars.connected_state_desc,
|
||||||
|
synchronization_health_desc, last_connect_error_description
|
||||||
|
FROM sys.dm_hadr_availability_replica_states dhars
|
||||||
|
JOIN sys.availability_groups ag
|
||||||
|
ON ag.group_id = dhars.group_id
|
||||||
|
JOIN sys.availability_replicas ar
|
||||||
|
ON ar.replica_id = dhars.replica_id;
|
||||||
|
GO
|
||||||
|
|
||||||
|
SELECT ar.replica_server_name, ag.name, dhdrs.is_primary_replica, dhdrs.synchronization_state_desc,
|
||||||
|
dhdrs.synchronization_health_desc, dhdrs.is_commit_participant, dhdrs.suspend_reason_desc,
|
||||||
|
dhdrs.last_sent_lsn, dhdrs.last_sent_time, dhdrs.last_hardened_lsn, dhdrs.last_hardened_time,
|
||||||
|
dhdrs.last_commit_lsn, dhdrs.last_commit_time
|
||||||
|
FROM sys.dm_hadr_database_replica_states dhdrs
|
||||||
|
JOIN sys.availability_groups ag
|
||||||
|
ON ag.group_id = dhdrs.group_id
|
||||||
|
JOIN sys.availability_replicas ar
|
||||||
|
ON ar.replica_id = dhdrs.replica_id
|
||||||
|
GO
|
||||||
|
|
||||||
|
BACKUP LOG texasrangerswschamps TO DISK = 'texasrangerswschamps_log.bak' WITH INIT;
|
||||||
|
GO
|
||||||
|
SELECT name, log_reuse_wait_desc FROM sys.databases where name = 'texasrangerswschamps';
|
||||||
|
GO
|
|
@ -0,0 +1,11 @@
|
||||||
|
SELECT ag.name, replica_server_name, endpoint_url, availability_mode_desc, failover_mode_desc, session_timeout, create_date,
|
||||||
|
primary_role_allow_connections_desc, secondary_role_allow_connections_desc
|
||||||
|
FROM sys.availability_replicas ar
|
||||||
|
JOIN sys.availability_groups ag
|
||||||
|
ON ar.group_id = ag.group_id
|
||||||
|
GO
|
||||||
|
SELECT aglia.dns_name, aglipa.ip_address, aglipa.network_subnet_ip
|
||||||
|
FROM sys.availability_group_listeners aglia
|
||||||
|
JOIN sys.availability_group_listener_ip_addresses aglipa
|
||||||
|
ON aglia.listener_id = aglipa.listener_id;
|
||||||
|
GO
|
|
@ -0,0 +1,12 @@
|
||||||
|
SELECT * FROM sys.availability_databases_cluster;
|
||||||
|
GO
|
||||||
|
SELECT * FROM sys.availability_groups;
|
||||||
|
GO
|
||||||
|
SELECT * FROM sys.availability_groups_cluster;
|
||||||
|
GO
|
||||||
|
SELECT * FROM sys.availability_group_listeners;
|
||||||
|
GO
|
||||||
|
SELECT * FROM sys.availability_group_listener_ip_addresses;
|
||||||
|
GO
|
||||||
|
SELECT * FROM sys.availability_replicas;
|
||||||
|
GO
|
|
@ -0,0 +1,11 @@
|
||||||
|
DECLARE @x int;
|
||||||
|
DECLARE @y varchar(1000);
|
||||||
|
SET @x = 0;
|
||||||
|
WHILE (@x < 300)
|
||||||
|
BEGIN
|
||||||
|
SET @y = 'BACKUP DATABASE db'+convert(varchar(5), @x)+' TO DISK = '+''''+'db'+convert(varchar(5), @x)+'.bak'+'''';
|
||||||
|
SET @x = @x + 1;
|
||||||
|
EXEC (@y);
|
||||||
|
--PRINT @y;
|
||||||
|
END
|
||||||
|
GO
|
|
@ -0,0 +1,4 @@
|
||||||
|
ALTER AVAILABILITY GROUP texasrangersag SET (FAILURE_CONDITION_LEVEL = 5);
|
||||||
|
GO
|
||||||
|
ALTER AVAILABILITY GROUP texasrangersag SET (HEALTH_CHECK_TIMEOUT = 15000);
|
||||||
|
GO
|
|
@ -0,0 +1,11 @@
|
||||||
|
DECLARE @x int;
|
||||||
|
DECLARE @y varchar(1000);
|
||||||
|
SET @x = 0;
|
||||||
|
WHILE (@x < 300)
|
||||||
|
BEGIN
|
||||||
|
SET @y = 'CREATE DATABASE db'+convert(varchar(5), @x)+';'
|
||||||
|
SET @x = @x + 1;
|
||||||
|
EXEC (@y);
|
||||||
|
--PRINT @y;
|
||||||
|
END
|
||||||
|
GO
|
|
@ -0,0 +1,183 @@
|
||||||
|
--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.
|
||||||
|
:Connect SQLVM1
|
||||||
|
|
||||||
|
USE [master]
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE ENDPOINT [Hadr_endpoint]
|
||||||
|
AS TCP (LISTENER_PORT = 5022)
|
||||||
|
FOR DATA_MIRRORING (ROLE = ALL, ENCRYPTION = REQUIRED ALGORITHM AES)
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF (SELECT state FROM sys.endpoints WHERE name = N'Hadr_endpoint') <> 0
|
||||||
|
BEGIN
|
||||||
|
ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
use [master]
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
GRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [CORP\Install]
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
:Connect SQLVM1
|
||||||
|
|
||||||
|
IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health')
|
||||||
|
BEGIN
|
||||||
|
ALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON);
|
||||||
|
END
|
||||||
|
IF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health')
|
||||||
|
BEGIN
|
||||||
|
ALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START;
|
||||||
|
END
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
:Connect SQLVM2
|
||||||
|
|
||||||
|
USE [master]
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE ENDPOINT [Hadr_endpoint]
|
||||||
|
AS TCP (LISTENER_PORT = 5022)
|
||||||
|
FOR DATA_MIRRORING (ROLE = ALL, ENCRYPTION = REQUIRED ALGORITHM AES)
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF (SELECT state FROM sys.endpoints WHERE name = N'Hadr_endpoint') <> 0
|
||||||
|
BEGIN
|
||||||
|
ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
use [master]
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
GRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [CORP\Install]
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
:Connect SQLVM2
|
||||||
|
|
||||||
|
IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health')
|
||||||
|
BEGIN
|
||||||
|
ALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON);
|
||||||
|
END
|
||||||
|
IF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health')
|
||||||
|
BEGIN
|
||||||
|
ALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START;
|
||||||
|
END
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
:Connect SQLVM3
|
||||||
|
|
||||||
|
USE [master]
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE ENDPOINT [Hadr_endpoint]
|
||||||
|
AS TCP (LISTENER_PORT = 5022)
|
||||||
|
FOR DATA_MIRRORING (ROLE = ALL, ENCRYPTION = REQUIRED ALGORITHM AES)
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF (SELECT state FROM sys.endpoints WHERE name = N'Hadr_endpoint') <> 0
|
||||||
|
BEGIN
|
||||||
|
ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
use [master]
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
GRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [CORP\Install]
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
:Connect SQLVM3
|
||||||
|
|
||||||
|
IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health')
|
||||||
|
BEGIN
|
||||||
|
ALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON);
|
||||||
|
END
|
||||||
|
IF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health')
|
||||||
|
BEGIN
|
||||||
|
ALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START;
|
||||||
|
END
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
:Connect SQLVM1
|
||||||
|
|
||||||
|
USE [master]
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE AVAILABILITY GROUP [texasrangersag]
|
||||||
|
WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY,
|
||||||
|
DB_FAILOVER = ON,
|
||||||
|
DTC_SUPPORT = NONE,
|
||||||
|
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0)
|
||||||
|
FOR DATABASE [texasrangerswschamps]
|
||||||
|
REPLICA ON N'sqlvm1' WITH (ENDPOINT_URL = N'TCP://sqlvm1.corp.bwcorp.com:5022', FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SEEDING_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL)),
|
||||||
|
N'sqlvm2' WITH (ENDPOINT_URL = N'TCP://sqlvm2.corp.bwcorp.com:5022', FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SEEDING_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL)),
|
||||||
|
N'sqlvm3' WITH (ENDPOINT_URL = N'TCP://sqlvm3.corp.bwcorp.com:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SEEDING_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO));
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
:Connect SQLVM1
|
||||||
|
|
||||||
|
USE [master]
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER AVAILABILITY GROUP [texasrangersag]
|
||||||
|
ADD LISTENER N'trangerslisten' (
|
||||||
|
WITH IP
|
||||||
|
((N'10.0.1.11', N'255.255.255.0'),
|
||||||
|
(N'10.0.2.11', N'255.255.255.0'),
|
||||||
|
(N'10.0.3.11', N'255.255.255.0')
|
||||||
|
)
|
||||||
|
, PORT=1433);
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
:Connect SQLVM2
|
||||||
|
|
||||||
|
ALTER AVAILABILITY GROUP [texasrangersag] JOIN;
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER AVAILABILITY GROUP [texasrangersag] GRANT CREATE ANY DATABASE;
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
:Connect SQLVM3
|
||||||
|
|
||||||
|
ALTER AVAILABILITY GROUP [texasrangersag] JOIN;
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER AVAILABILITY GROUP [texasrangersag] GRANT CREATE ANY DATABASE;
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
USE texasrangerswschamps;
|
||||||
|
GO
|
||||||
|
DROP TABLE IF EXISTS wearethechampions;
|
||||||
|
GO
|
||||||
|
CREATE TABLE wearethechampions (col1 int, col2 varchar(5000));
|
||||||
|
GO
|
||||||
|
|
||||||
|
SELECT @@spid
|
||||||
|
|
||||||
|
INSERT INTO wearethechampions VALUES (1, '...of the world');
|
||||||
|
GO
|
|
@ -0,0 +1,14 @@
|
||||||
|
USE texasrangerswschamps;
|
||||||
|
GO
|
||||||
|
DROP TABLE IF EXISTS wearethechampions;
|
||||||
|
GO
|
||||||
|
CREATE TABLE wearethechampions (col1 int, col2 char(5000) not null);
|
||||||
|
GO
|
||||||
|
DECLARE @x int;
|
||||||
|
SET @x = 0;
|
||||||
|
WHILE (@x < 100000)
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO wearethechampions VALUES (1, '...of the world');
|
||||||
|
SET @x = @x + 1;
|
||||||
|
END
|
||||||
|
GO
|
|
@ -0,0 +1,4 @@
|
||||||
|
SELECT * FROM sys.dm_hadr_ag_threads;
|
||||||
|
GO
|
||||||
|
SELECT * FROM sys.dm_hadr_db_threads;
|
||||||
|
GO
|
|
@ -0,0 +1,11 @@
|
||||||
|
DECLARE @x int;
|
||||||
|
DECLARE @y varchar(1000);
|
||||||
|
SET @x = 0;
|
||||||
|
WHILE (@x < 300)
|
||||||
|
BEGIN
|
||||||
|
SET @y = 'ALTER AVAILABILITY GROUP texasrangersag REMOVE DATABASE db'+convert(varchar(5), @x)+';'
|
||||||
|
SET @x = @x + 1;
|
||||||
|
EXEC (@y);
|
||||||
|
--PRINT @y;
|
||||||
|
END
|
||||||
|
GO
|
|
@ -0,0 +1,27 @@
|
||||||
|
CREATE EVENT SESSION [trace_ag_log_block] ON SERVER
|
||||||
|
ADD EVENT sqlserver.hadr_capture_log_block(
|
||||||
|
ACTION(package0.callstack_rva,sqlserver.session_id)),
|
||||||
|
ADD EVENT sqlserver.hadr_db_commit_mgr_harden(
|
||||||
|
ACTION(package0.callstack_rva,sqlserver.session_id)),
|
||||||
|
ADD EVENT sqlserver.hadr_db_commit_mgr_update_harden(
|
||||||
|
ACTION(package0.callstack_rva,sqlserver.session_id)),
|
||||||
|
ADD EVENT sqlserver.hadr_log_block_group_commit(
|
||||||
|
ACTION(package0.callstack_rva,sqlserver.session_id)),
|
||||||
|
ADD EVENT sqlserver.hadr_log_block_send_complete(
|
||||||
|
ACTION(package0.callstack_rva,sqlserver.session_id)),
|
||||||
|
ADD EVENT sqlserver.hadr_receive_harden_lsn_message(
|
||||||
|
ACTION(package0.callstack_rva,sqlserver.session_id)),
|
||||||
|
ADD EVENT sqlserver.log_block_pushed_to_logpool(
|
||||||
|
ACTION(package0.callstack_rva,sqlserver.session_id)),
|
||||||
|
ADD EVENT sqlserver.log_flush_complete(
|
||||||
|
ACTION(package0.callstack_rva,sqlserver.session_id)),
|
||||||
|
ADD EVENT sqlserver.log_flush_start(
|
||||||
|
ACTION(package0.callstack_rva,sqlserver.session_id)),
|
||||||
|
ADD EVENT sqlserver.recovery_unit_harden_log_timestamps(
|
||||||
|
ACTION(package0.callstack_rva,package0.collect_current_thread_id,sqlos.scheduler_id,sqlos.system_thread_id,sqlos.worker_address,sqlserver.is_system,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text)),
|
||||||
|
ADD EVENT sqlserver.sql_batch_completed(SET collect_batch_text=(1)
|
||||||
|
ACTION(sqlserver.session_id))
|
||||||
|
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
SELECT er.request_id, er.command, er.wait_type, er.last_wait_type, er.wait_time
|
||||||
|
FROM sys.dm_exec_requests er
|
||||||
|
JOIN sys.dm_exec_sessions es
|
||||||
|
ON er.session_id = es.session_id
|
||||||
|
AND es.is_user_process = 1;
|
||||||
|
GO
|
|
@ -0,0 +1 @@
|
||||||
|
"C:\Program Files\Microsoft Corporation\RMLUtils\ostress" -dtexasrangerswschamps -E -Q"select * from wearethechampions" -r10 -n300 -q -T146 -l0
|
Загрузка…
Ссылка в новой задаче