Como vejo o histórico de failovers do nó primário de um cluster? Estou tentando descobrir em que ponto o nó secundário começou a atuar como primário.
Estamos executando o Windows Server 2012 com SQL Server 2012 e grupos de disponibilidade.
Como vejo o histórico de failovers do nó primário de um cluster? Estou tentando descobrir em que ponto o nó secundário começou a atuar como primário.
Estamos executando o Windows Server 2012 com SQL Server 2012 e grupos de disponibilidade.
tenho uma consulta simples
WHILE ( @counter < 50 )
BEGIN
BEGIN TRANSACTION
PRINT 'Counter = ' + CONVERT(VARCHAR(4), @counter);
WITH CTE
AS (
SELECT TOP 50000 * FROM MyTable
)
DELETE FROM CTE OPTION ( MAXDOP 1 )
SET @counter += 1
COMMIT TRAN
END
Quando olho para as mensagens, o PRINT
comando não retorna linha a cada loop, mas aparece como várias linhas em uma. Eu adicionei uma linha e agora aparece 1 linha por vez e todo o processo é muito mais rápido.
WHILE ( @counter < 50 )
BEGIN
WAITFOR DELAY '00:00:00.5' --< This line
BEGIN TRANSACTION
PRINT 'Counter = ' + CONVERT(VARCHAR(4), @counter);
WITH CTE
AS (
SELECT TOP 50000 * FROM MyTable
)
DELETE FROM CTE OPTION ( MAXDOP 1 )
SET @counter += 1
COMMIT TRAN
END
então, por que quando eu adicionei 0,5 segundo de tempo de espera a cada iteração de loop, ele realmente funciona mais rápido e permite que a mensagem de impressão saia uma de cada vez?
Descida rápida:
O primeiro problema começou quando o administrador do sistema recebeu um erro que model
está se recuperando.
Algum tempo depois, o fornecedor tentou fazer algumas atualizações no banco de dados. Quando eles reiniciaram o SQL Server, ele falhou ao iniciar.
Olhando para o log de erros. encontrei o seguinte erro
Erro O 'modelo' do banco de dados está marcado como RESTORING e está em um estado que não permite a execução da recuperação. Erro: 927, Gravidade: 14, Estado: 2. O 'modelo' do banco de dados não pode ser aberto. Está no meio de uma restauração. Não foi possível criar o tempdb. Você pode não ter espaço em disco suficiente disponível. Libere espaço em disco adicional excluindo outros arquivos na unidade tempdb e reinicie o SQL Server. Verifique se há erros adicionais no log de eventos que podem indicar por que os arquivos tempdb não puderam ser inicializados.
depois de pesquisar na web encontrei este artigo no MSDN
usando as etapas do artigo iniciado sql server usando Sqlservr.exe -sInstanceName -T3608 -c -f -T3609
quando tentei executar, Use tempdb
recebi uma mensagem de erro. Seguindo o conselho do artigo, copiei tempdb.mdf e templog.ldf de outro servidor.
Agora recebo o seguinte erro:
Iniciando o banco de dados 'tempdb'. Erro: 3456, Gravidade: 21, Estado: 1. Não foi possível refazer o registro de log (19:45:366), para ID da transação (0:0), na página (1:16), banco de dados 'tempdb' (ID do banco de dados 2 ). Página: LSN = (18:72:8), digite = 1. Log: OpCode = 18, contexto 2, PrevPageLSN: (19:45:287). Restaure a partir de um backup do banco de dados ou repare o banco de dados.
Estou ajudando um amigo a configurar a criptografia de dados no SQL Server 2008 R2 Standard Edition. Após a pesquisa original, pensei que poderia usar o TDE , mas não percebi que ele estava disponível apenas para as versões Enterprise ou DataCenter de SQL Servers. Após pesquisas adicionais sobre os recursos do SQL Server 2008 R2 , vi que ele permite "criptografia de dados e gerenciamento de chaves", mas não tenho certeza do que isso significa ou como implementá-lo.
Qual é o método mais eficiente e de baixo custo para criptografia de dados? Devo fazer algo por meio do SQL Server ou apenas usar ferramentas de terceiros para criptografar todo o volume onde o banco de dados e os backups estão? Além disso, se alguém puder apontar uma maneira de usar "criptografia de dados" que vem como recurso na edição padrão, eu realmente aprecio. Toda vez que procuro criptografia no sql server fico terminando em como usar o TDE e no cenário atual não é viável para o tamanho da empresa adquirir o Enterprise Edition.
Motivo da criptografia - Conformidade HIPAA. Se o acesso for obtido ao sistema de arquivos para banco de dados ou backups, os dados são criptografados e não podem ser de nenhuma utilidade. Isso pode incluir acesso físico à máquina ou acesso por meio do administrador local.
Aqui está o meu cenário:
A aplicação "A" produz pontos de latitude e longitude que correspondem à rota planejada. Dependendo da distância da rota, pode ter vários milhares de pontos. Conheço os tipos de dados Geography e Geometry, mesmo que tenham saído com o SQL 2008, ainda não vi ninguém usá-los e não tenho certeza de qual seria um bom cenário para usá-los. Além dos pontos que o App "A" gera, preciso armazenar os pontos do App "B" que correspondem à rota real. Depois de tudo armazenado, preciso encontrar desvios da rota planejada.
Estou trabalhando em um aplicativo que usa consulta dinâmica para fazer uma instrução select com base na entrada do usuário, depois de discutir segurança com DBAs eles querem que eu converta minha instrução de seleção dinâmica em procedimento armazenado.
Eu construí sql dinâmico usando MSSQL, mas não consigo descobrir como convertê-lo para Oracle SQL.
CREATE PROCEDURE GetCustomer
@FirstN nvarchar(20) = NULL,
@LastN nvarchar(20) = NULL,
@CUserName nvarchar(10) = NULL,
@CID nvarchar(15) = NULL as
DECLARE @sql nvarchar(4000),
SELECT @sql = 'C_FirstName, C_LastName, C_UserName, C_UserID ' +
'FROM CUSTOMER ' +
'WHERE 1=1 ' +
IF @FirstN IS NOT NULL
SELECT @sql = @sql + ' AND C_FirstName like @FirstN '
IF @LastN IS NOT NULL
SELECT @sql = @sql + ' AND C_LastName like @LastN '
IF @CUserName IS NOT NULL
SELECT @sql = @sql + ' AND C_UserName like @CUserName '
IF @CID IS NOT NULL
SELECT @sql = @sql + ' AND C_UserID like @CID '
EXEC sp_executesql @sql, N'@C_FirstName nvarchar(20), @C_LastName nvarchar(20), @CUserName nvarchar(10), @CID nvarchar(15)',
@FirstN, @LastN, @CUserName, @CID
*por favor, note que eu quero evitar a injeção de SQL, não quero apenas adicionar strings
**criei uma classe separada para criar essa consulta dinâmica para meu aplicativo em .net, tenho quase 1000 linhas de código para lidar com tudo e evitar injeção de sql, mas os DBAs me disseram que querem procedimentos armazenados para que possam controlar entrada e resultado.