ログ配布SQL Server 2012


8

私はDBAがいない小さなショップの開発者で、SQL Server 2012を使用してログ配布を取得しようとしています。トランザクションシステムから新しいデータウェアハウスにレポートの負荷を軽減しようとしています。このデータベースをステージング領域として使用します。

ログ配布ウィザードを実行したところ、主要なバックアップジョブとファイルコピージョブが毎回機能しました。セカンダリリストアジョブがランダムに失敗するようです。

プライマリサーバーには、1つのトランザクションログジョブしかありません。差分バックアップは無効になっています(問題かどうかは不明です)が、完全バックアップがあります。

セカンダリサーバーは、メンテナンスプラン、バックアップ、またはアクティブユーザーのいないフレッシュインストールです。

バックアップを強制的に同期させる方法はありますか、または常に同期を維持することを保証しますか?

とても壊れやすいようです。お知らせ下さい。

以下の編集ログ:

*Starting transaction log copy. 
Secondary ID: 'b58d7ce8-2fd7-4cec-b5bd-f3c5e5d3c0f7'
Retrieving copy settings. 
Secondary ID: 'b58d7ce8-2fd7-4cec-b5bd-f3c5e5d3c0f7'
Retrieved copy settings. 
Primary Server: '', 
Primary Database: 'db', Backup Source Directory: '\\server\folder', 
Backup Destination Directory: '\\server\folder', 
Last Copied File: '\\server\folder\db_20160105070002.trn'
Starting transaction log restore. 
Secondary ID: 'b58d7ce8-2fd7-4cec-b5bd-f3c5e5d3c0f7'
Retrieving restore settings. 
Secondary ID: 'b58d7ce8-2fd7-4cec-b5bd-f3c5e5d3c0f7'
Copying log backup files. 
Primary Server: 'server', Primary Database: 'db', 
Backup Source Directory: '\\server\folder', 
Backup Destination Directory: '\\server\folder'
Retrieved common restore settings. 
Primary Server: 'server', 
Primary Database: 'db', 
Backup Destination Directory: '\\server\folder', 
File Retention Period: 14400 minute(s)
Retrieved database restore settings. 
Secondary Database: 'db', 
Restore Delay: 10, 
Restore All: True, 
Restore Mode: Standby, 
Disconnect Users: True, 
Last Restored File: \\server\folder\db_20160105060002.trn, 
Block Size: Not Specified, 
Buffer Count: Not Specified, 
Max Transfer Size: Not Specified
Disconnecting users. 
Secondary DB: 'db'
Copying log backup file to temporary work file.
 Source: '\\server\folder\db_20160105080001.trn', 
Destination: '\\server\folder\db_20160105080001.wrk'
Renamed temporary work file. 
Source: '\\server\folder\db_20160105080001.wrk',
Destination: '\\server\folder\db_20160105080001.trn'
Checking to see if any previously copied log backup files that are required by the restore operation are missing. 
Secondary ID: 'b58d7ce8-2fd7-4cec-b5bd-f3c5e5d3c0f7'
The copy operation was successful. 
Secondary ID: 'b58d7ce8-2fd7-4cec-b5bd-f3c5e5d3c0f7', 
Number of log backup files copied: 1
An error occurred restoring the database access mode. (Alter failed for Database 'db'. )
The file '\\server\folder\db_20160105070002.trn' is too recent to apply to the secondary database 'db'. 
(The log in this backup set begins at LSN 52498000002221000001, which is too recent to apply to the database. An earlier log backup that includes LSN 52498000002197900001 can be restored.
RESTORE LOG is terminating abnormally.)
Searching for an older log backup file. 
Secondary Database: 'db'
Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160105060002.trn'

Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160105050001.trn'

Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160105040001.trn'

Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160105030001.trn'

Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160105020000.trn'

Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160105010001.trn'

Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160105000001.trn'

Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160104230001.trn'

Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160104220001.trn'

Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160104210001.trn'

Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160104200001.trn'

Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160104190004.trn'

Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160104180000.trn'

Skipped log backup file. Secondary DB: 'EntRIS', File: '\\server\folder\db_20160104170002.trn'

Could not find a log backup file that could be applied to secondary database 'db'.
Deleting old log backup files. Primary Database: 'db'

The restore operation completed with errors. Secondary ID: 'b58d7ce8-2fd7-4cec-b5bd-f3c5e5d3c0f7'*

更新:クエリの下で実行すると、奇妙なトランザクションログのバックアップがあります(たぶん)

NULは表の内容です。なぜそれがNULLではないのか分かりません

これはバックアップ終了時間、デバイス、タイプです

2016-01-08 02:00:01.000 D:\ Folder \ DB_20160108090001.trnログ

2016-01-08 01:00:01.000 D:\ Folder \ DB_20160108080001.trnログ

2016-01-08 00:00:00.000 D:\ Folder \ DB_20160108070000.trnログ

2016-01-07 23:46:41.000 NULログ

2016-01-07 23:41:07.000 {51C661F9-2DC2-4424-913F-B9CFADA69FEE} 1データベース

2016-01-07 23:00:01.000 D:\ Folder \ DB_20160108060001.trnログ


私の答えを読んだら。サードパーティのソフトウェアに関するリンクが言及 -But what I did find was that BACKUP performed a log backup immediately after the snapshot database backup. And the log backup was taken to the file name “nul”.
キン・シャー

回答:


10

とても壊れやすいようです。

ログシッピングは、SQL Server 2000(およびそれよりも古い)日以降にテストおよび証明されています。壊れにくい。

エラーを見てください...

最終復元ファイル:\ server \ folder \ db_201601050 60002 .trn、

ログ配布は復元を試みています

宛先: '\ server \ folder \ db_201601050 80001 .trn'

これは、ログシーケンスにギャップがあることを意味します。ログチェーンを壊しているアドホックログバックアップが発生している可能性があります。

私の回答を参照してください- ログ配布は追跡する方法を知っていますか

ユーザーをコピーのみのログバックアップ制限して、アドホックログバックアップがログチェーンを壊さないようにすることもできます。また、

@Spörriは、SQL VSSライターサービスを無効にする有効なポイントを作成したため、サードパーティのバックアップツールはSQLと対話できません。サードパーティのソフトウェアは時々狂っているので、それを見つけるのは苦痛です!

ログバックアップのギャップを見つけるには、以下のクエリを使用できます

SELECT 
    s.database_name,s.backup_finish_date,y.physical_device_name
FROM 
    msdb..backupset AS s INNER JOIN
    msdb..backupfile AS f ON f.backup_set_id = s.backup_set_id INNER JOIN
    msdb..backupmediaset AS m ON s.media_set_id = m.media_set_id INNER JOIN
    msdb..backupmediafamily AS y ON m.media_set_id = y.media_set_id
WHERE 
    (s.database_name = 'databaseNamePrimaryServer')
ORDER BY 
    s.backup_finish_date DESC;

別の便利なクエリ:

-- http://sqlblog.com/blogs/tibor_karaszi/archive/2014/11/03/can-you-restore-from-your-backups-are-you-sure.aspx
-- modified by Kin to include backup start and finish dates
SELECT TOP(100)
database_name
,CASE bs.TYPE
   WHEN 'D' THEN 'Full'
   WHEN 'I' THEN 'Differential'
   WHEN 'L' THEN 'Log'
   WHEN 'F' THEN 'File or filegroup'
   WHEN 'G' THEN 'Differential file '
   WHEN 'P' THEN 'Partial'
   WHEN 'Q' THEN 'Differential partial'
END AS backup_type
,bs.is_copy_only
,bs.is_snapshot
,bs.backup_start_date
,bs.backup_finish_date
,DATEDIFF(SECOND, bs.backup_start_date, bs.backup_finish_date) AS backup_time_sec
,mf.physical_device_name
,bs.database_name
FROM msdb.dbo.backupset AS bs
  INNER JOIN msdb.dbo.backupmediafamily AS mf ON bs.media_set_id = mf.media_set_id  
  where database_name = 'master' -- change here for your database 
ORDER BY backup_finish_date DESC;

これらのクエリを使用すると、すべてのファイルがプライマリサーバーとセカンダリサーバーのファイルシステムに配置されます。VSSライターサービスをオフにし、ウィザードを再度実行して、機能するかどうかを確認します。
ウィリアム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.