Oracle的自动维护任务
Oracle数据库里提供了自动维护任务,以保证Oracle数据库可以更高效的运行。在不同的Oracle版本中,自动任务的种类和执行方式也有区别。本文以10g和11g为主来认识Oracle里的自动任务。 1、种类 10g里的自动任务有两种:
11g里的自动任务有三种:
2、实现方式 10g里的自动任务是以SCHEDULER的JOB形式运行的,可以在dba_scheduler_jobs视图里查到相关的JOB。 SQL>setlinesize200 SQL>colownerfora30 SQL>coljob_namefora30 SQL>selectowner,job_namefromdba_scheduler_jobswherejob_class='AUTO_TASKS_JOB_CLASS'; OWNER JOB_NAME ------------------------------------------------------------ SYS AUTO_SPACE_ADVISOR_JOB SYS GATHER_STATS_JOB 11g里的自动任务使用的是11g的新特性AUTOTASK的方式实现的。可以从dba_autotask_client视图中查到相关信息。 sys@TEST>SELECTclient_name,statusFROMdba_autotask_client; CLIENT_NAME STATUS ---------------------------------------------------------------- autooptimizerstatscollection ENABLED autospaceadvisor ENABLED sqltuningadvisor ENABLED 3、维护窗口时间 两个版本中自动任务的执行时间是不同的。 10g中分为两个时间段WEEKNIGHT_WINDOW和WEEKEND_WINDOW,可以从dba_scheduler_windows视图中查到。它们分别的运行开始时间和持续时间为: WEEKNIGHT_WINDOW,每周一至周五晚22:00:00开始,持续8小时 WEEKEND_WINDOW,第周六00:00:00,持续2天 11g中维护窗口分得更细,分为7个,即第一天个维护窗口,可以针对不同的需求做出更细粒度的调整,dba_scheduler_windows视图中查到,分别为MONDAY_WINDOW,TUESDAY_WINDOW,WEDNESDAY_WINDOW,THURSDAY_WINDOW,FRIDAY_WINDOW,SATURDAY_WINDOW,SUNDAY_WINDOW。开始时间和持续时间分别为: 周一到周五晚22:00:00开始,持续4小时,周六和周日早6:00:00开始,执行20小时。 4、维护方式 由于10g和11g中实现方式的不同,维护方式自然就不一样了。 10g的维护方式与普通的SCHEDULER的JOB一样。 --停用JOB SQL>execdbms_scheduler.disable('AUTO_SPACE_ADVISOR_JOB'); PL/SQLproceduresuccessfullycompleted. SQL>selectenabledfromdba_scheduler_jobswherejob_name='AUTO_SPACE_ADVISOR_JOB'; ENABLED --------------- FALSE --启用JOB SQL>execdbms_scheduler.ENABLE('AUTO_SPACE_ADVISOR_JOB'); PL/SQLproceduresuccessfullycompleted. SQL>selectenabledfromdba_scheduler_jobswherejob_name='AUTO_SPACE_ADVISOR_JOB'; ENABLED --------------- TRUE 下面重点介绍11g里自动任务的维护。 1)停用和启用自动维护任务 --停用sqltuningadvisor sys@TEST>BEGIN 2dbms_auto_task_admin.disable( 3client_name=>'sqltuningadvisor',4operation=>NULL,5window_name=>NULL); 6END; 7/ PL/SQLproceduresuccessfullycompleted. sys@TEST>selectclient_name,statusfromdba_autotask_client; CLIENT_NAMESTATUS ---------------------------------------------------------------- autooptimizerstatscollectionENABLED autospaceadvisorENABLED sqltuningadvisorDISABLED --启用sqltuningadvisor sys@TEST>BEGIN 2dbms_auto_task_admin.enable( 3client_name=>'sqltuningadvisor',statusfromdba_autotask_client; CLIENT_NAMESTATUS ---------------------------------------------------------------- autooptimizerstatscollectionENABLED autospaceadvisorENABLED sqltuningadvisorENABLED --停用所有维护窗口下的所有的自动任务 sys@TEST>execdbms_auto_task_admin.disable; PL/SQLproceduresuccessfullycompleted. sys@TEST>selectwindow_name,autotask_statusfromdba_autotask_window_clients; WINDOW_NAMEAUTOTASK_STATUS ------------------------------------------------------ MONDAY_WINDOWDISABLED TUESDAY_WINDOWDISABLED WEDNESDAY_WINDOWDISABLED THURSDAY_WINDOWDISABLED FRIDAY_WINDOWDISABLED SATURDAY_WINDOWDISABLED SUNDAY_WINDOWDISABLED 7rowsselected. --启用所有维护窗口下的所有自动任务 sys@TEST>execdbms_auto_task_admin.enable; PL/SQLproceduresuccessfullycompleted. sys@TEST>selectwindow_name,autotask_statusfromdba_autotask_window_clients; WINDOW_NAMEAUTOTASK_STATUS ------------------------------------------------------ WEDNESDAY_WINDOWENABLED FRIDAY_WINDOWENABLED SATURDAY_WINDOWENABLED THURSDAY_WINDOWENABLED TUESDAY_WINDOWENABLED SUNDAY_WINDOWENABLED MONDAY_WINDOWENABLED 7rowsselected. --停用针对某个维护窗口的自动任务 sys@TEST>BEGIN 2dbms_auto_task_admin.disable( 3client_name=>'sqltuningadvisor',5window_name=>'MONDAY_WINDOW'); 6END; 7/ PL/SQLproceduresuccessfullycompleted. sys@TEST>selectwindow_name,autotask_status,sql_tune_advisorfromdba_autotask_window_clients; WINDOW_NAMEAUTOTASK_STATUSSQL_TUNE_ADVISOR ------------------------------------------------------------------------------ MONDAY_WINDOWENABLEDDISABLED TUESDAY_WINDOWENABLEDENABLED WEDNESDAY_WINDOWENABLEDENABLED THURSDAY_WINDOWENABLEDENABLED FRIDAY_WINDOWENABLEDENABLED SATURDAY_WINDOWENABLEDENABLED SUNDAY_WINDOWENABLEDENABLED 7rowsselected. 2、配置维护窗口 这个与10g的类似,都是使用dbms_scheduler包来操作 --修改维护窗口的属性,把SATURDAY_WINDOW的持续时间修改为4小时 sys@TEST>BEGIN 2dbms_scheduler.disable( 3name=>'SATURDAY_WINDOW'); 4dbms_scheduler.set_attribute( 5name=>'SATURDAY_WINDOW',6attribute=>'DURATION',7value=>numtodsinterval(4,'hour')); 8dbms_scheduler.enable( 9name=>'SATURDAY_WINDOW'); 10END; 11/ PL/SQLproceduresuccessfullycompleted. sys@TEST>SELECTdurationFROMdba_scheduler_windowsWHEREwindow_name='SATURDAY_WINDOW'; DURATION --------------------------------------------------------------------------- +00004:00:00 11g自动维护任务参考官方文档:http://docs.oracle.com/cd/E11882_01/server.112/e25494/tasks.htm#ADMIN12344 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Oracle 12.2新特性掌上手册 - 第七卷 Big Data and Data Wa
- UITableViewAutomaticDimension在Xcode 6.3中不起作用
- 让Robotlegs支持Starling框架
- ruby-on-rails-3.2 – rails-i18n翻译好像没有加载
- ruby-on-rails – Rails新手:如何将路由添加到rails 3引擎
- Nagative Lookahead
- 通过阅读刷机脚本flash-all.sh来学习shell脚本
- ruby-on-rails – 以百分比表示处理第三方付款(使用PayPal)
- swift之表格控件简单使用(UITableview)
- 可以在c#.NET中强制使用’this’关键字吗?
- ARM U-BOOT _armboot_start与_start
- flex4.5 TabNavigator自动加载于关闭子组件的实现
- flex中验证表单项目合法性并给予友好提示
- 在IBM AIX上安装Oracle RAC (RS/6000)
- c – QComboBox不调用Delegate方法
- ruby-on-rails – 如何在Ruby变量名中使用字符串
- 单元测试 – Clojure单元测试:检查函数是否被调
- Semantic-UI的React实现(四):基本元素组件的共
- iphone – 配置UIImagePickerController的帧大小
- Oracle-分析函数之排序后顺序号row_number()