第九章:OCM考试练习实验

点击数:1803发布日期:2020-04-19 15:03:57 来源:老鹰

第九章:OCM考试练习实验

    OCMOracle Certified Master)是Oracle公司的最高认证考试。曾经受到不少技术爱好者的追捧,进入中国市场之后,经过几年的发展,已经量产。建议把以下的实验做熟练。考不考OCM认证,自己看着办吧,技术好的话,可以不用考。OCAOCP是背题库,考试的时候都是题库中的原题,背背题库就能考90分以上,和技术好坏没关系。OCM是比着题库做实验,比OCP有难度。

    9.1.00  手工建库

9.1 使用CREATE DATABASE命令,按下面的要求创建一个数据库。

    (1)、数据库(Database)的名字是PROD。

    (2)、实例(Instance)的名字是PROD。

    (3)、设置ORACLE_SID环境变量。//这里很变态,使用.bash_profile设置不成效。必须使用export ORACLE_SID=PROD。

    (4)、SYS和SYSTEM用户的密码都设置为ORACLE。

    (5)、在/home/oracle/scripts目录下面,有一个参数文件名为initPROD.ora。请你按需求修改它,便于手工建库时使用。

    (6)、创建一个本地管理的(Locally Managed) SYSTEM表空间。

    (7)、在目录/u01/app/oracle/oradata/PROD下,使用目录结构(disk1-disk5),模拟在不同的磁盘上分散物理文件。

    (8)、不要执行其它的数据库脚本文件,如catalog.sql,catproc.sql等。

    注:不要创建其它的数据库,保证数据库处于打开状态。

su - oracle

export ORACLE_SID=PROD                              //输出环境变量

--.bash_profile

alias ss="sqlplus '/as sysdba'"                     //设置SQLPLUS的别名

--mkdir                                             //建对应的目录

mkdir -p /u01/app/oracle/admin/PROD/adump

mkdir -p /u01/app/oracle/admin/PROD/bdump

mkdir -p /u01/app/oracle/admin/PROD/cdump

mkdir -p /u01/app/oracle/admin/PROD/udump

mkdir -p /u01/app/oracle/oradata/PROD/disk1

mkdir -p /u01/app/oracle/oradata/PROD/disk2

mkdir -p /u01/app/oracle/oradata/PROD/disk3

mkdir -p /u01/app/oracle/oradata/PROD/disk4

mkdir -p /u01/app/oracle/oradata/PROD/disk5


--initPROD.ora                                       //整理参数文件

cat init.ora | grep -v ^# | grep -v ^$ > initPROD.ora

add as flow

db_name=PROD

sga_max_size=280m

sga_target=280m

control_files = ("/u01/app/oracle/oradata/PROD/disk1/controlfile01.dbf",

                 "/u01/app/oracle/oradata/PROD/disk2/controlfile02.dbf",

                 "/u01/app/oracle/oradata/PROD/disk3/controlfile03.dbf")

*.compatible='10.2.0.1.0'

*.db_block_size=8192

*.db_domain=''

*.db_file_multiblock_read_count=16

*.log_archive_dest_1='location=/u01/app/oracle/oradata/arch'

*.log_archive_format='%t_%s_%r.dbf'

*.open_cursors=300

*.pga_aggregate_target=83886080

*.processes=500

*.remote_login_passwordfile='EXCLUSIVE'


--startup nomount                                //启动到nomount状态

startup nomount pfile='$ORACLE_HOME/dbs/initPROD.ora


--create spfile

create spfile from pfile;

startup nomount force;


--modify                                         //修改参数

alter system set background_dump_dest='/u01/app/oracle/admin/PROD/bdump' scope=spfile;

alter system set core_dump_dest='/u01/app/oracle/admin/PROD/cdump' scope=spfile;

alter system set user_dump_dest='/u01/app/oracle/admin/PROD/udump' scope=spfile;

alter system set audit_file_dest='/u01/app/oracle/admin/PROD/adump' scope=spfile;

alter system set db_create_file_dest='/u01/app/oracle/oradata/PROD/disk3' scope=spfile;

alter system set db_create_online_log_dest_1='/u01/app/oracle/oradata/PROD/disk1' scope=spfile;

alter system set undo_management=auto scope=spfile;

alter system set undo_tablespace=undotbs scope=spfile;

alter system set job_queue_processes=5 scope=spfile;


startup nomount force;


--password file                                      //建密码文件

orapwd file=orapwPROD password=oracle entries=5 force=y


--create database                                      //手工建库

create database prod

   user sys identified by oracle

   user system identified by oracle

   logfile group 1 ('/u01/app/oracle/oradata/PROD/disk1/redo01.log') size 100m,

           group 2 ('/u01/app/oracle/oradata/PROD/disk1/redo02.log') size 100m,

           group 3 ('/u01/app/oracle/oradata/PROD/disk1/redo03.log') size 100m

   maxlogfiles 30

   maxlogmembers 5

   maxloghistory 1

   maxdatafiles 500

   maxinstances 2

   character set utf8

   national character set utf8

   datafile '/u01/app/oracle/oradata/PROD/disk2/system01.dbf' size 325m reuse extent management local

   sysaux datafile '/u01/app/oracle/oradata/PROD/disk3/sysaux01.dbf' size 325m reuse

   default temporary tablespace tempts1

      tempfile '/u01/app/oracle/oradata/PROD/disk4/temp01.dbf' size 20m reuse

   undo tablespace undotbs

      datafile '/u01/app/oracle/oradata/PROD/disk5/undotbs01.dbf'

      size 200m reuse autoextend on maxsize unlimited;


@?/rdbms/admin/catalog.sql                              //创建数据字典

@?/rdbms/admin/catproc.sql                              //创建基本的过程和包

   

     9.1.1第1节。数据库设置和undo管理。

    (1)、在数据库PROD中,执行最少需求的脚本,完成最基本的配置需求。

    (2)、设置自动undo管理,支持下面的需求。

         2.1避免ORA-01555快照太旧错误,支持平均查询时间90分钟。

         2.1通常的业务时间段,并行的OLTP用户大约为120个。

         2.3在晚上和周末并行的批处理进程达到15个。

@?/rdbms/admin/catblock.sql                              //创建有关lock的视图

@?/rdbms/admin/catoctk.sql                               //关于安全的数据字典

@?/rdbms/admin/owminst.plb                               //定制数据库相关

conn system/oracle

@?/sqlplus/admin/pupbld.sql                              //创建product_user_profile table

@?/sqlplus/admin/help/hlpbld.sql helpus.sql              //安装sqlplus帮助


alter system set undo_retention=5400 scope = both;       //undo保留时间


--undo guarantee

alter tablespace undotbs retention guarantee;            //保护undo信息不被轻易读写  

alter tablespace undotbs retention noguarantee;

alter system set processes=200 scope=spfile;             //修改processes参数

alter system set transactions_per_rollback_segment=15 scope=spfile;

     9.1.22

    使用默认的listener名创建一个listener。

       (1)使用TCP/IP协议,使用主机名(不使用IP地址)。

       (2)这个listener监听默认的端口号。

       (3)数据库PROD和EMREP将由这个listener提供服务。

    增加第二个listener,名为LSNR2,使用1526端口,支持实例注册。

          3.1设置PROD实例自动注册到LSNR2监听程序中。

          3.2同时启动这两个listener。

--1.1 listener.ora

$ORACLE_HOME/network/admin下。手工编辑listener,静态监听prodemrep实例。

--listener.ora

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PROD)

      (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)

    )

    (SID_DESC =

      (SID_NAME = EMREP)

      (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)

    )

  )


创建两个listener,另一个listener名叫lsnr2

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = yingshu)(PORT = 1521))

    )

  )


LSNR2 =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = yingshu)(PORT = 1526))

    )

  )


将数据库的默认listener设置成lsnr2

alter system set local_listener='(address=(protocol=tcp)(host=yingshu)(port=1526))' scope=both;


alter system set local_listener='LSNR2' scope=spfile;

alter system register;

     9.1.33节 共享服务配置

   (1)配置PROD数据库支持300个会话,100个专有服务(Dedicated)连接。

   (2)配置PROD数据库支持如下要求:

        2.1默认为3个TCP调度器。

        2.2最大支持10个调度器。

    (3)配置PROD数据库支持如下要求:

        3.1最少10个共享服务进程。

        3.2最多30个共享服务进程。

--1.300 session,100 dedicated,修改sessions等参数。

alter system set sessions=300 scope = spfile;

alter system set shared_server_sessions = 200 scope = spfile;

alter system set processes=400 scope = spfile;

startup force;


修改调度器等参数。

--2.PROD,3tcp dispatchers, max 10 dispatchers

alter system set dispatchers = '(protocol = tcp)(dispatchers=3)(connection=100)' scope = both;

alter system set max_dispatchers = 10 scope = both;

修改共享服务模式的相关参数。

--3.PROD,10 shared processes,max 30

alter system set shared_servers = 10 scope = both;

alter system set max_shared_servers = 30 scope = both;

     9.1.44  客户端网络服务配置

(1)创建一个客户端的网络配置文件,可以使用本地命名方式和简单连接方式连接到数据库中。

     1.1实例PROD的别名为prod,使用默认的listener和专用服务模式连接数据库。

     1.2实例PROD的第2个别名prod_s,应使用LSNR2和使用共享服务模式连接数据库。

(2)别名racdb,应连接至数据库服务RACDB(稍后创建),使用专用服务模式。

     2.1这里的RACDB服务将运行在你的RAC集群中。

(3)别名emrep,应连接至EMREP实例(稍后创建),使用专用服务模式。

--1.sqlnet.ora  修改sqlnet.ora配置。

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)


--tnsname.ora   修改连接字符串。

prod =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = odd)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = prod)

    )

  )


prod_s =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = odd)(PORT = 1526))

    )

    (CONNECT_DATA =

      (SERVER = SHARED)

      (SERVICE_NAME = prod)

    )

  )


racdb =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = yingshu)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = racdb)

    )

  )


EMREP =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = odd)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = emrep)

    )

  )

###############################

--rac sample                                //RAC的连接字符串

ODSDB =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = odsdb1-vip)(PORT = 1521))

    (ADDRESS = (PROTOCOL = TCP)(HOST = odsdb2-vip)(PORT = 1521))

    (LOAD_BALANCE = yes)

    (FAILOVER=ON)

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = odsdb)

    )

  )

     9.1.55  表空间的创建和配置

(1)创建一组临时表空间,含有两个临时表空间,使其支持并发创建大索引,分析表等大操作,满足如下要求:

    1.1临时表空间的组名为TEMP_GRP,包含两个临时表空间分别为TEMP1和TMEP2。

    1.2设置TEMP_GRP为所有用户默认的临时表空间。

(2)创建一个永久表空间,存储测试数据,按照如下要求创建:

    2.1表空间名为EXAMPLE。

    2.2初始的数据文件为400MB,可以增长至4TB。

    2.3初始的区大小为1MB。

    2.4下一个区的大小为1MB。

(3)创建一个永久表空间存储索引,按照如下要求创建:

    3.1表空间名为INDX。

    3.2大小为40MB。

(4)创建一个永久表空间存储收集的各种Oracle工具,按照如下要求创建:

    4.1表空间名为:TOOLS。

    4.2数据文件大小为48MB。

    4.3初始的区大小为4MB。

    4.4下一个区的大小为4MB。

(5)创建一个默认的永久表空间,按照如下要求创建:

    5.1表空间名为USERS。

    5.2数据文件大小为48MB。

    5.3初始区的大小为4MB。

    5.4下一个区的大小为4MB。

(6)创建一个永久表空间,考虑到在线的进程需要大量的并发插入操作,应考虑到降低该表空间中表的维护成本,按照如下要求创建:

    6.1表空间名为OLTP。

    6.2文件大小为48MB。

    6.3初始区的大小为2MB。

    6.4下一个区的大小为2MB。

1创建临时表空间。

create temporary tablespace temp1 tempfile '/u01/app/oracle/oradata/PROD/disk4/temp1_01.dbf' size 100m tablespace group temp_grp;

create temporary tablespace temp2 tempfile '/u01/app/oracle/oradata/PROD/disk4/temp2_01.dbf' size 100m tablespace group temp_grp;

alter database default temporary tablespace temp_grp;


2创建大文件表空间example

create bigfile tablespace example datafile '/u01/app/oracle/oradata/PROD/disk5/example_01.dbf' size 400m reuse autoextend on extent management local uniform size 1m;


3创建索引表空间indx

create tablespace indx datafile '/u01/app/oracle/oradata/PROD/disk5/indx_01.dbf' size 40m reuse;


4创建工具表空间tools

create tablespace tools datafile '/u01/app/oracle/oradata/PROD/disk5/tools_01.dbf' size 10m reuse;


5创建users表空间

create tablespace users datafile '/u01/app/oracle/oradata/PROD/disk5/users_01.dbf' size 48m reuse

uniform size 4m;


6创建OLTP表空间

create tablespace oltp datafile '/u01/app/oracle/oradata/PROD/disk5/oltp_01.dbf' size 48m autoextend on extent management local uniform size 2m segment space management auto;


修改数据库默认表空间

alter database default tablespace tools;


删除表空间命令tablespace

--drop tablespace users including contents and datafiles cascade constraints;

     9.1.66节 日志文件管理

   (1)预计有很高的事务量,数据库日志应该按照如下配置。

        1.1至少需要配置5组日志。

        1.2每一组日志文件都需要冗余。

        1.3日志文件的大小为100MB。

        1.4日志文件的位置,应该考虑减少I/O压力,和降低单块磁盘损坏时的故障风险。

   (2)复用控制文件,减少因磁盘损坏导致的控制文件需要恢复的风险。

alter database add logfile group 4 ('/u01/app/oracle/oradata/PROD/disk1/redo04.log') size 100m reuse;

alter database add logfile group 5 ('/u01/app/oracle/oradata/PROD/disk1/redo05.log') size 100m reuse;

alter database add logfile member '/u01/app/oracle/oradata/PROD/disk2/redo011.log' to group 1;

alter database add logfile member '/u01/app/oracle/oradata/PROD/disk2/redo021.log' to group 2;

alter database add logfile member '/u01/app/oracle/oradata/PROD/disk2/redo031.log' to group 3;

alter database add logfile member '/u01/app/oracle/oradata/PROD/disk2/redo041.log' to group 4;

alter database add logfile member '/u01/app/oracle/oradata/PROD/disk2/redo051.log' to group 5;


复用控制文件

停止数据库

shutdown immediate;

controlfile拷贝两份;

修改spfile中的控制文件参数,指向两个控制文件。

     9.1.77节 创建模式(Schema)

    使用sys用户,执行脚本文件/home/oracle/scripts/create_bishhr.sql,忽略任何因为连接OE所致的创建错误,但不能忽略其它创建错误。

创建hr方案。

conn /as sysdba

@/home/oracle/scripts/create_bishhr.sql


创建hr用户。

create user hr

identified by hr

default tablespace example

quota unlimited on example;

grant connect,resource,dba to hr;

alter user hr quota unlimited on example;



创建sh用户。

create user sh

identified by sh

default tablespace example

temporary tablespace temp1

quota unlimited on example;

grant connect,resource,dba to sh;

alter user sh quota unlimited on example;

     9.1.88节  模式的统计信息和参数文件配置

    收集数据库中不同模式的统计信息,使基于代价的优化器选择正确的执行路径。观察参数文件中的每一个参数,使其设置合理。增加附加的参数,使数据库处于最优化的状态,并设置以下参数:utl_file_dir=('/home/oralce','/home/oracle/temp','/home/oracle/scripts')


--1开启自动收集统计信息。

begin

dbms_scheduler.enable('GATHER_STATS_JOB');

end;

/


select count(*) from dba_scheduler_jobs where job_name = 'GATHER_STATS_JOB';


手工执行收集全库的统计信息。

exec dbms_stats.gather_database_stats;


修改utl_file包可以操作的目录参数。

alter system set utl_file_dir='/home/oralce','/home/oracle/temp','/home/oracle/scripts' scope = spfile;



修改prod为归档模式。

alter system set log_archive_dest_1='/u01/app/oracle/arch_prod' scope=spfile;

shutdown immediate;

startup mount;

alter database archivelog;

alter database open;

alter system switch logfile;

     9.1.99    数据库的备份和高可用

(1)备份数据库,使数据库在任何状况下都可以完全恢复。

    打开数据库。

备份数据库。

run {

backup full tag 'PROD' database

include current controlfile format '/oracle/bak/orclfull_%d_%T_%s'

plus archivelog format '/oracle/bak/arch_%d_%T_%s' delete all input;

}


    

9.2.11  

(1)在你的数据库服务器中再创建一个数据库。

    1.1数据库名和实例名都为EMREP。

    1.2在EMREP数据库中,标签安全(Label Security)是唯一需要安装的选件。

(2)在你的管理服务器中安装Grid Control,安装介质在/oramed下。

(3)在你的数据库服务器中部署Oracle管理代理(Management Agent)服务。

(4)创建一个Grid Control控制台,超级管理员为EMADMIN,密码为EMADMIN。   

dbca创建一个EMREP数据库,选择label security功能。

use dbca create EMREP password EMREP

label security


修改EMREP数据库参数。

--EMREP parameter

alter system set sga_target=300m scope=spfile;

alter system set job_queue_processes=10 scope=spfile;

alter system set processes=300 scope=spfile;

alter system set open_cursors=1000 scope=spfile;

alter system set session_cached_cursors=200 scope=spfile;

alter system set aq_tm_processes=1 scope=spfile;

startup force;


创建DBMS_SHARED_POOL包。

@?/rdbms/admin/dbmspool.sql

select object_name, object_type, status, owner

from all_objects

where object_name='DBMS_SHARED_POOL';


安装grid control

groupadd dba                                           //建用户建组

groupadd oinstall

useradd -g oinstall -G dba oracle

passwd oracle


mkdir -p /u01/app/oracle/product/10.2.0                  //建安装用的文件夹

chmod -R 755 /u01

chown -R oracle.dba /u01


vi /etc/sysctl.conf

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

# semaphores: semmsl, semmns, semopm, semmni

kernel.sem = 1010 129280 1010 128

fs.file-max = 327679

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default=262144

net.core.rmem_max=262144

net.core.wmem_default=262144

net.core.wmem_max=262144


vi /etc/security/limits.conf

oracle soft nproc 16384

oracle hard nproc 16384

oracle soft nofile 327600

oracle hard nofile 327600


vi /etc/pam.d/login

session    required     /lib/security/pam_limits.so


--secure oms

./opmnctl stopall

./emctl secure oms


----secure agent

./emctl stop agent

./emctl secure agent

./emctl start agent

./emctl upload agent

./emctl secure status agent

./emctl status agent


--opmnctl oms

./opmnctl stopall

./opmnctl startall


--emctl oms

./emctl start oms

./emctl stop oms

./emctl status oms


--opmnctl web cache

./opmnctl startproc ias-component=WebCache

./opmnctl stopproc ias-component=WebCache

./opmnctl status


--emctl ias

./emctl start iasconsole

./emctl stop iasconsole

./emctl status iasconsole


--emctl dbconsole

./emctl start dbconsole

./emctl stop dbconsole


--start grid control                                  //开启grid control

./lsnrctl start

sqlplus "/as sysdba"

startup

./emctl start oms

./opmnctl startproc ias-component=WebCache

./emctl start agent

./emctl start iasconsole


--shutdown grid control

./emctl stop oms

./emctl stop iasconsole

./opmnctl stopall

./emctl stop agent

sqlplus "/as sysdba"

shutdown immediate

./lsnrctl stop


--gridcontrol configure

alter user dbsnmp identified by dbsnmp account unlock;


--create user EMADMIN passwd EMADMIN

SETUP--Administrator                           //使用gridcontrol创建用户


--agentDownload

1.# ln -s /usr/bin/wget /usr/local/bin/wget            --root

2.$ export PATH=$ORACLE_HOME/jdk/bin:$PATH             --oracle

3.http://even:4889/agent_download/10.2.0.1.0/linux

4.$ chmod 755 agentDownload.linux

  $ ./agentDownload.linux –b /u01/app/oracle/product 

 

--gridcontrol

1. sga_target=280m

2. aq_tm_processes>0

3. session_cached_cursors>200

4. dispatchers is nothing

5. /rdbms/admin/dbmspool.sql

6. mkdir


--

cd /oracle/OracleHomes/agent10g/sysman/emd/upload

rm -rf *

agentca -f

     9.2.22    使用Grid Control

(1)使用Grid Control,修改数据库PROD的参数pga_aggregate_target至500MB,然后重启数据库。

(2)使用Grid Control配置实例,使其可以在出现实例故障的情况下,5分钟之内启动成功。

(3)在数据库PROD中,配置一个警告阀值,当system表空间利用率90%时警告,95时严重警告。

(4)设置事件通知,将事件信息发至邮箱dba@ocm.com。

(5)使用Grid Control,在PROD数据库中创建一个新的表空间名为REGISTRATION。

    5.1包含一个数据文件,数据文件的大小为90MB。

    5.2如果空间不够用,这个数据文件可以增长至120MB。

    5.3设置这个表空间利用最优的块空间管理。

--grid console,prod 将sga修改为500m

--1.use gc to pga 500m,startup


--2.fast_start_mttr_target to 5 min 300 sec                //设置grid control参数。


--3.system 90% 95critical                                  //设置表空间报警门限

database--prod--administration--tablespaces--system--edit--thresholds

specify thresholds 95%critical ...


--4.dba@ocm.com                                           //设置警告日志发向哪个邮件

setup--notification methods--

outgoing Mail(SMTP) Server: mail.ocm.com

identify sender as :oracle

sender's e-mail address :dba@ocm.com


--5.PROD,create tbs REGISTRATION                        //创建表空间

database--prod--administration--tablespace--create

name:REGISTRATION --datafile--add--

    

9.2.33  实现调度器(Schedules)和定时任务(Jobs)

(1)、使用Grid Control,在数据库PROD中,创建一个Schedules。

          1.1这个调度器的名字叫DAILYREBUILD。

          1.2这个调度器每天下午2点执行。

(2)在数据库PROD中,创建一个程序(Program),名为EMP_IND_REBUILD,这个程序将重建表HR.EMPLOYEES上面所有的索引。

(3)利用调度器DAILYREBUILD和SYSTEM_PLAN资源管理计划,创建一个时间窗口(Window)。

(4)使用调度器DAILYREBUILD和程序EMP_IND_REBUILD创建一个名为REBUILD_JOB的定时任务(Job)。

建创一个调度器。

--1.gc,prod create schedule


begin

sys.dbms_scheduler.create_schedule(

repeat_interval => 'FREQ=DAILY;BYHOUR=14;BYMINUTE=0;BYSECOND=0',

start_date => systimestamp at time zone 'America/New_York',

schedule_name => '"SYS"."DAILYREBUILD"');

end;


创建一个程序,让这个程序重建一个表中的索引。

--2.create program in prod EMP_IND_REBUILD rebuilds all indexes on the hr.EMPLOYEES

select index_name from user_indexes where table_name='EMPLOYEES';


begin

dbms_scheduler.create_program(

program_name=>'"HR"."EMP_IND_REBUILD"',

program_action=>'alter index emp_email_uk rebuild online;

alter index emp_emp_id_pk rebuild online;

alter index emp_department_ix rebuild online;

alter index emp_job_ix rebuild online;

alter index emp_manager_ix rebuild online;

alter index emp_name_ix rebuild online;

',

program_type=>'PLSQL_BLOCK',

number_of_arguments=>0,

comments=>'',

enabled=>true);

end;


--3.create window use dailyrebuild and system_plan

创建一个时间窗口。

begin

dbms_scheduler.create_window(

window_name=>'"DAILYREBUILD WINDOW"',

resource_plan=>'SYSTEM_PLAN',

start_date=>systimestamp at time zone 'America/New_York',

duration=>numtodsinterval(60, 'MINUTE'),

repeat_interval=>null,

end_date=>null,

window_priority=>'LOW',

comments=>'');

end;


--4.create a job REBUILD_JOB use DAILYREBUILD schedule EMP_IND_REBUILD

创建一个job

begin

sys.dbms_scheduler.create_job(

job_name => '"HR"."REBUILD_JOB"',

program_name => '"HR"."EMP_IND_REBUILD"',

schedule_name => '"SYS"."DAILYREBUILD"',

job_class => '"DEFAULT_JOB_CLASS"',

auto_drop => FALSE,

enabled => TRUE);

end;


     9.3.11节 创建一个RMAN恢复目录(Catalog)

(1)在数据库EMREP中创建一个表空间名为RC_DATA。

  1.1此表空间为本地管理表空间。

  1.2此表空间包含一个数据文件大小为100MB。

(2)在数据库EMERP中,创建一个用户名为RC_ADMIN密码也是RC_ADMIN。

    2.1这个用户的默认表空间是RC_DATA。

    2.2授予此用户管理恢复目录的权限。

(3)创建一个恢复目录

    3.1在数据库EMREP中,创建一个恢复目录,所有者是RC_ADMIN。

    3.2将数据库PROD注册到这个恢复目录中。

--1.create tbs RC_DATA in EMREP。创建一个表空间在EMREP库中。

create tablespace rc_data datafile '/u01/app/oracle/oradata/EMREP/rc_data_01.dbf' size 100m;

创建一个用户。

--2.create user RC_ADMIN passwd RC_ADMIN EMREP

default tbs rc_data,grant recv cata owner

create user RC_ADMIN

identified by RC_ADMIN

default tablespace rc_data

quota unlimited on rc_data;

grant connect,resource,recovery_catalog_owner to rc_admin;


--3.create recovery catalog创建一个recovery catalog

rman

connect catalog rc_admin/rc_admin@EMREP

create catalog tablespace rc_data;


rman target sys/oracle@PROD catalog RC_ADMIN/RC_ADMIN@EMREP

register database;                               //将数据库注册到catalog中去。

--resync catalog;


     9.3.22   使用RMAN

(1)在数据库PROD中配置RMAN选项

    1.1开启最优备份模式。

    1.2设置默认通道写目录为/home/oracle/backup,你必须建好此目录。

    1.3开启控制文件自动备份,将备份路径设置为/home/oracle/backup/control目录。

    1.4配置保留策略为7天。

(2)执行一个备份

    2.1使用压缩功能,使用默认通道执行一个数据库备份。

    2.2包含所有的数据文件。

    2.3包含当前的控制文件和spfile。

    2.4包含所有的归档日志文件,并将已备份的归档日志删除。

--1.CONFIGURE RMAN OPTIONS prod  配置RMAN参数。

--mkdir backup

configure backup optimization on;

configure channel device type disk format '/home/oracle/backup/DB_%U';

configure controlfile autobackup on;

configure controlfile autobackup format for device type disk to '/home/oracle/backup/control/cf_%F';

configure retention policy to recovery window of 7 days;

configure default device type to disk;

configure device type disk backup type to compressed backupset;



--mkdir 创建备份目录。

/home/oracle/backup

/home/oracle/backup/control


备份数据库。

rman target sys/oracle@PROD catalog RC_ADMIN/RC_ADMIN@EMREP


--backup all

run {

backup database include current controlfile;

backup archivelog all delete all input;

}

恢复表空间system

--recover tablespace.

rman target sys/oracle@PROD catalog RC_ADMIN/RC_ADMIN@EMREP

startup mount;

restore tablespace system;

recover tablespace system;

alter database open;

     9.3.33节  回闪数据库

(1)打开数据库的回闪功能。

    1.1设置回闪恢复区的大小为4GB。

    1.2将回闪目录设置为/home/oracle/flash,你必须创建这个目录。

 

图文推荐