古いログ データを削除する前に、削除対象のデータセットのレコードを保存する必要があるかどうか判別します。例えば、Teradataでは最低でも90日から180日おきにログ データを除去することを推奨していますが、サイトによってはセキュリティ ポリシーによりアクセス ログ データの保存期間をより長くする必要が生じる場合があります。
30日経過していないデータを削除することはできません。
古いログ データをシステム テーブルから削除する際には、以下の手順を使用します。
- サイトでログ データの長期保存が必要な場合は、以下のようにします。
- CREATE TABLE文のCopy Table構文を使用して、重複ログ テーブルを別のデータベース内に作成します。
CT DBC.tablename AS databasename.tablename
Copy Table構文の使用法の詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>の「Create Table」を参照してください。
- サイトのバックアップ ポリシーに従って、テーブルをテープ記憶装置にバックアップします。ヒント: ログのバックアップ/削除のスケジュールが、システム テーブルにローカルに保持するログ データの量と一致するようにしてください。例えば、システム テーブルにログ データを90日保持するには、まず120日分バックアップしてから、ログ内の過去30日分のデータを削除するようにしてください。その後、30日おきにログ データをバックアップしてください。
- DROP TABLE文を使用して、重複テーブルを削除します。
- CREATE TABLE文のCopy Table構文を使用して、重複ログ テーブルを別のデータベース内に作成します。
- DBADMINか、データベースDBCに対するDELETE権限を持つ別の管理ユーザーとして、SQL Administratorにログオンします。
- クエリー ウィンドウで、SQL文を入力して、古いログ項目を除去します。
例:
DELETE FROM DBC.object_name WHERE (Date - LogDate) > number_of_days ;
- object_name
- データベース ログについてで示されている、ログの削除を許可するDBCオブジェクトの名前。例えば、DeleteAccessLogVはアクセス ログの削除オブジェクトです。
- Date
- 現在の日付に関するSQL構文要素。
- LogDate
- ログ ビューのLogDate列に入っている日付。現在の日付からnumber_of_daysに指定された日数を引いたものに基づく。
- number_of_days
- データをシステム テーブルに保存する日数。この日数は、現在の日付から最も古いLOGDATEまでの範囲の日数が保存されます。