システム テーブルからの古いログ データの手動削除 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データベースの管理

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/rgu1556127906220.ditamap
dita:ditavalPath
ja-JP/rgu1556127906220.ditaval
dita:id
B035-1093
Product Category
Software
Teradata Vantage

古いログ データを削除する前に、削除対象のデータセットのレコードを保存する必要があるかどうか判別します。例えば、Teradataでは最低でも90日から180日おきにログ データを除去することを推奨していますが、サイトによってはセキュリティ ポリシーによりアクセス ログ データの保存期間をより長くする必要が生じる場合があります。

30日経過していないデータを削除することはできません。

古いログ データをシステム テーブルから削除する際には、以下の手順を使用します。

  1. サイトでログ データの長期保存が必要な場合は、以下のようにします。
    1. CREATE TABLE文のCopy Table構文を使用して、重複ログ テーブルを別のデータベース内に作成します。
      CT DBC.tablename AS databasename.tablename

      Copy Table構文の使用法の詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>の「Create Table」を参照してください。

    2. サイトのバックアップ ポリシーに従って、テーブルをテープ記憶装置にバックアップします。
      ヒント: ログのバックアップ/削除のスケジュールが、システム テーブルにローカルに保持するログ データの量と一致するようにしてください。例えば、システム テーブルにログ データを90日保持するには、まず120日分バックアップしてから、ログ内の過去30日分のデータを削除するようにしてください。その後、30日おきにログ データをバックアップしてください。
    3. DROP TABLE文を使用して、重複テーブルを削除します。
  2. DBADMINか、データベースDBCに対するDELETE権限を持つ別の管理ユーザーとして、SQL Administratorにログオンします。
  3. クエリー ウィンドウで、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までの範囲の日数が保存されます。