問題タブ [filegroup]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - データベースの部分クローン
現在、LIMS (Laboratory Information Management System) を Oracle から MS-SQL に移行していますが、特定の領域で問題が発生しています。本番、開発、およびテストの 3 つの個別のインスタンスを実行します。Prod インスタンスは、ラボで使用されるライブ インスタンスです。dev インスタンスは、新機能の開発に取り掛かる場所です。test インスタンスは、これらの新機能を本番環境にデプロイする前にテストする場所です。そのため、運用データベースを定期的に (バックアップ/復元を使用して) 他の 2 つのインスタンスにコピーし、オペレーターと同じ構成で作業できるようにしています。ただし、実稼働 DB には、開発/テスト インスタンスでは必要のない大量のアーカイブ データが含まれているため、これらのテーブルをバックアップに含めません。これにより、プロセスで数十分の時間を節約できます。Oracle は、バックアップに含めるテーブルを指定できるため、これに適しています。ただし、これは MS-SQL では不可能ですが、実行できることは、アクティブ テーブルとアーカイブ テーブルを異なるファイル グループに配置することです。これらは個別にバックアップできます。
PRIMARY ファイル グループのバックアップは正常に作成されましたが、復元に非常に苦労しています。コマンドは完了してもデータベースにアクセスできない場合があり、復元が完了していないというメッセージが表示されることもあります。それ以外の場合は、コマンドの実行を拒否するだけです。これはトランザクション ログに関連しているようですが、これで私の知識が広がります。
私が使用しているバックアップコマンドは次のとおりです。
BACKUP DATABASE production FILEGROUP='PRIMARY' TO DISK='C:\Temp\db.bak' WITH FORMAT,COPY_ONLY
私が試している復元コマンドは次のとおりです。
RESTORE DATABASE development FROM DISK='C:\Temp\db.bak' WITH REPLACE,NORECOVERY
「バックアップセットには、既存の「開発」データベース以外のデータベースのバックアップが保持されています」と表示されます。
現時点では、ソースと宛先は SQL Server の同じインスタンスにありますが、将来的には完全に異なるマシン上にあり、直接接続されない可能性があります (そのため、何らかの種類のファイル転送を経由する必要があります)。どちらも完全復旧で構成されています。
同様の質問をいくつか見つけましたが、実際には役に立ちませんでした。これは、本番データベースのこの部分的なクローンを作成する合理的な方法ですか? 復元コマンドを必要に応じて機能させるにはどうすればよいですか?
sql-server - SQL リカバリ - 分割されたテーブル (ファイル グループ) - それぞれが別のディスク (およびディスク クラッシュの 1 つ) にある
巨大なテーブルの場合、ファイル グループを使用したパーティション分割の概念を使用し、各ファイル グループを個別のディスクに配置することを考えています。私の質問は -
- ファイル グループ ディスクの 1 つがクラッシュした場合、このインシデントはデータベース クラッシュとして扱われるべきですか? データベースが機能しなくなりますか?
- 復元操作 (完全バックアップが作成されていると仮定) によって、クラッシュ前に構成されたファイル グループが自動的に作成されますか?
sql-server - SQLサーバーでレコードのメロンを処理する方法
ファイルグループがいっぱいになるたびにSQLサーバーで実行タイムアウトが発生します。SQL データベースのスペースを解放するにはどうすればよいですか。
System.Data.SqlClient.SqlException: タイムアウトが発生しました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。System.Data.SqlClient.SqlConnection.OnError (SqlException 例外、ブール型 breakConnection) で System.Data.SqlClient.SqlInternalConnection.OnError (SqlException 例外、ブール型 breakConnection) で System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj) で.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior、SqlCommand cmdHandler、SqlDataReader dataStream、BulkCopySimpleResultSet bulkCopyHandler、TdsParserStateObject stateObj)
sql-server - SQL Serverでインデックスを作成する際にファイルグループを動的に追加する方法は?
いくつかのテーブルをプライマリ ファイル グループからデフォルトのプライム グループに移動する必要があります。3 つの異なる環境があり、それぞれの環境で既定のファイル グループの名前が異なります。したがって、デフォルトのファイル グループ名を次のように取得できます。
ここで、インデックスを再作成するときに、上記のクエリの出力を使用して、インデックスを作成するファイル グループを指定したいと考えています (デフォルトのファイル グループは環境によって名前が異なるため、1 つのクエリのみを昇格させたいと考えています)。 . 私は次のように試しました:
しかし、私は以下のエラーに直面しています:
メッセージ 1921、レベル 16、状態 1、行 19 無効なファイル グループ 'select name from sys.filegroups where is_default=1' が指定されました。
どんな助けでも大歓迎です。