我有一个数据库备份作业设置为每天使用一次带有仅复制选项的完整备份。仅复制是因为从我读过的内容来看,这是备份连接到可用性组的数据库的唯一方法。我在同一个 AG 上使用相同的选项每 20 分钟进行一次日志备份。在这些备份运行后截断事务日志的最佳做法是什么。完整备份不会被截断,因为它只使用与日志备份相同的副本。他们越来越失控。我知道我可以使用 DBCC SHRINKFILE,但我读的越多,它看起来就越危险。有没有其他方法或最佳实践?
任何建议表示赞赏。
backup sql-server-2012 transaction-log high-availability availability-groups
我什至不确定这个问题是否有必要,但我很想知道每个人的想法。我在同一台服务器上有两个数据库,dbFoo、dbBar。dbFoo 有下表,请注意这是一个简单的例子,语法可能不正确,因为我很匆忙,对潜在问题的答案更感兴趣,然后是代码......
CREATE TABLE dbo.CodeNumbers(
CodeNumbersID INT IDENTITY (1,1) NOT NULL PRIMARY KEY,
CodeValue VARCHAR(30) NOT NULL
IsUsed BIT NOT NULL DEFAULT(0)
);
Run Code Online (Sandbox Code Playgroud)
dbo.CodeNumbers
使用每月提供的 CSV 填充,您选择的导入方法已经写入以将它们放入那里。我们从来没有得到重复的代码。
为了论证,让我们假设表中有 10,000,000 行。导入时都遵循以下格式:
1, 'ajdirjfisofklrlfo039402', 0 all the way till
10000000, 'fkeiir9489', 0
Run Code Online (Sandbox Code Playgroud)
现在在 dbBar 我有 2 个存储过程,第一个应该访问 dbFoo 中第一个未使用的代码,将它返回到一个 out 变量中并将其标记为已使用。所以我有类似的东西:
CREATE PROCEDURE GetNextUseableCode
@CodeOut VARCHAR(30) OUTPUT,
@CID INT OUTPUT
AS
SELECT @CID = CodeNumbersID, @CodeOut = CodeValue
FROM dbFoo.dbo.CodeNumbers
WHERE IsUsed = 0
UPDATE dbFoo.dbo.CodeNumbers
SET IsUsed = 1
WHERE CodeNumbersID …
Run Code Online (Sandbox Code Playgroud) 我正在第一次设置始终在高可用性集群上的过程。任何人都可以在配置组并测试以确保它正常运行后从网络角度向我解释,SQL 如何知道何时进行故障转移,以及我的应用程序如何连接到 SQL 服务器知道它指向哪里?
例如,我有一个foo
连接到命名实例的应用程序DB01.FOO
。当foo
失败并转至 时DB02.FOO
,我的应用程序如何知道它应该与之交谈DB02.FOO
?
DB02.FOO
在同一个域中,但在不同的服务器中。在尝试之前,我只是想先了解一下这方面的所有方面。如果有任何链接,有人会推荐这也很棒。
clustering sql-server-2012 high-availability availability-groups
我有下表交易。该表如下所示:
CREATE TABLE [dbo].[Transactions](
[TransactionID] [bigint] IDENTITY(1,10) NOT NULL,
[PlayerID] [bigint] NOT NULL,
[BalanceTransactionTypeID] [int] NOT NULL,
[BalanceTransactionSubTypeID] [int] NULL,
[PointDelta] [money] NULL,
[TransactionDate] [datetime] NOT NULL,
Run Code Online (Sandbox Code Playgroud)
该表包含以下约束和索引。
CONSTRAINT [PK_Transactions] PRIMARY KEY CLUSTERED
(
[TransactionID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE NONCLUSTERED INDEX [IX_Transactions_PlayerID] ON [dbo].
[Transactions]
(
[PlayerID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF,
DROP_EXISTING = OFF, …
Run Code Online (Sandbox Code Playgroud)