RECYCLE_SCHEMA_HISTORYは、現在のテナントに対して手動でスキーマのマルチバージョン履歴データの回収を実行し、期限切れの履歴レコードをクリーンアップするために使用されます。スキーマのマルチバージョン履歴データの有効期限は、テナントレベルの構成パラメータschema_history_expire_timeによって制御されます。
使用上の制限と注意事項
ユーザーテナントのみがスキーマのマルチバージョン履歴データの回収を手動で実行することをサポートしています。システムテナントはサポートしていません。
構文
DBMS_SCHEMA.RECYCLE_SCHEMA_HISTORY();
使用方法
システムには、期限切れのスキーマのマルチバージョン履歴データを定期的に回収するためのスケジュールタスクSCHEDULED_RECYCLE_SCHEMA_HISTORYが組み込まれており、デフォルトでは10分ごとに実行されます。スケジュールタスクの実行間隔はDBMS_SCHEDULER.SET_ATTRIBUTEサブプログラムのrepeat_interval属性を使用して設定できます。例えば、スケジュールタスクSCHEDULED_RECYCLE_SCHEMA_HISTORYの実行間隔を60分に変更します:
obclient(root@mysql001)[(none)]> CALL DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_RECYCLE_SCHEMA_HISTORY', 'repeat_interval', 'FREQ=MINUTELY; INTERVAL=60');
スケジュールタスクの実行時間に達する前に、ユーザーは手動でDBMS_SCHEMA.RECYCLE_SCHEMA_HISTORY()サブプログラムを呼び出して、迅速にスキーマのマルチバージョン履歴データの回収を1ラウンド実行できます。
例
ユーザーテナントが自身のテナントに対してスキーマのマルチバージョン履歴データの回収を1ラウンド実行します。
obclient(root@mysql001)[(none)]> CALL DBMS_SCHEMA.RECYCLE_SCHEMA_HISTORY();