2.后续练习准备工作

1.创建PRACTICE数据库

如果未安装Oracle程序,可以按照上篇Oracle安装过程中创建PRACTICE数据库,并设置了sys、system的密码为system;如果已经安装Oracle程序,可以使用DBCA创建,具体过程略。

2.在USERS表空间下添加数据文件

数据库在安装的过程中将创建sys和system用户,其中sys为数据库的DBA用户。由于后续练习的需要,我们以sys账号DBA身份登录,使用ALTER TABLESPACE命令为用户表空间创建第二个数据文件(也可以利用EM进行创建)。

1 --增加用户表空间下的数据文件
2 SQL>ALTER TABLESPACE USERS ADD DATAFILE 'D:\oracle\PRACTICE\USERS02.DBF' SIZE 10M;

ALTER TABLESPACE USERS ADD DATAFILE表示需要对表空间USERS进行修改,后面是数据文件所在的文件夹,根据PRACTICE安装数据文件的位置进行修改。

3.新增TOOLS表空间

接下来我们用脚本创建TOOLS表空间,该表空间用于存放TINA用户的对象。

1 --增加TOOLS表空间以及数据文件
2 SQL>CREATE TABLESPACE TOOLS 
3     DATAFILE 'D:\oracle\PRACTICE\TOOLS01.DBF' SIZE 50M AUTOEXTEND ON NEXT 50M 
4              MAXSIZE 16000M 
5              EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

 CREATE TABLESPACE TOOLS表示创建TOOLS表空间,DATAFILE ‘D:\…’ SIZE 50M指明了该表空间数据文件所在路径并指定初始化大小为50M,AUTOEXTEND ON NEXT 50M MAXSIZE 16000M表示该数据文件自动增长,每次增长的大小为50M,最大容量为16000M

4.新增TS4DROP表空间

同创建TOOLS表空间类似,我们创建TS4DROP表空间,该表空间在后续的练习中用于删除。

1 --增加TS4DROP表空间以及数据文件
2 SQL>CREATE TABLESPACE TS4DROP
3     DATAFILE 'D:\oracle\PRACTICE\TS4DROP01.DBF' SIZE 50M AUTOEXTEND ON NEXT 50M 
4              MAXSIZE 16000M
5              EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

5.创建Scott用户

查找D:\oracle\product\10.1.0\Db_1\RDBMS\ADMIN\路径下的utlsampl.sql脚本,需要注意的是如果在电脑上有多个实例需要打开utlsample.sql进行修改,由CONNECT SCOTT/TIGER修改为CONNECT SCOTT/TIGER@PRACTICE

以DBA身份登录登录Sql Plus执行该脚本

执行完毕窗口会自动关闭,通过该脚本创建用户Scott,密码为Tiger,并插入相关测试数据。此时我们以Scott用户登录,可以查询emp表插入的测试数据

6.创建TINA用户

创建该用户TINA用来说明表空间时间点恢复,该用户拥有一个表DATE_LOG,该表用于跟踪一段时间内行为的若干记录,可以创建一个Oracle作业为这个时间表填充数据,完成数据库恢复后,我们可以检查该表来帮助证实恢复的结果。按照如下方法创建TINA用户并赋予权限:

1 --创建TINA用户以及对应的表空间
2 SQL>GRANT CONNECT, RESOURCE,UNLIMITED TABLESPACE TO TINA IDENTIFIED BY panda;
3 SQL>ALTER USER TINA DEFAULT TABLESPACE tools;
4 SQL>ALTER USER tina TEMPORARY TABLESPACE temp;

 GRANT CONNECT, RESOURCE,UNLIMITED TABLESPACE TO TINA表示把连接数据、访问资源等权限赋予TINA用户,IDENTIFIED BY panda设置了TINA的用户的密码为panda;ALTER USER TINA DEFAULT TABLESPACE tools 设定了TINA用户的默认表空间为tools,ALTER USER tina TEMPORARY TABLESPACE temp则表示该用户的临时表空间为temp。

7.创建TINA对象

PRACTICE数据库中,TINA的唯一作用是跟踪时间,TINA拥有一个表、一个过程和一个作业,其中数据表名为DATE_LOG,过程名为CREATE_DATE_LOG_ROW,以下为创建相关脚本:

1 --在TINA用户下建立表对象
2 SQL>CONN TINA/PANDA@PRACTICE
3 SQL>DROP TABLE DATE_LOG;
4 SQL>CREATE TABLE DATE_LOG (create_date date constraint create_date_pk PRIMARY KEY);

 

1 --在TINA用户下建立存储过程
2 SQL>CREATE OR REPLACE PROCEDURE create_date_log_row
3 IS
4 --目标是插入一笔当前时间点的数据
5 BEGIN
6       INSERT INTO DATE_LOG (create_date) VALUES (SYSDATE);
7 END;
8 /

 

8.产生数据库动作

在备份和恢复练习的过程中,需要一些正在进行的数据库行为来检查你的恢复操作是否正确完成,通过在TINA.DATE_LOG插入行来产生数据库行为。可以使用插入声明、过程调用或数据库作业来向表中插入行。

使用如下的INSERT命令向表总插入当前日期和时间:

1 SQL>INSERT INTO tina.date_log values (sysdate);

也可以使用刚创建的过程来完成同样的插入动作,具体如下:

1 SQL> execute tina.create_date_log_row;

这里我们创建一个作业,该作业不断向TINA.DATE_LOG表中插入行,使用如下的脚本进行创建:

1 SQL>CONN TINA/PANDA@PRACTICE
2 --创建该用户下的作业,用户定时往DATE_LOG插入数据
3 SQL>VARIABLE jobno number;
4 BEGIN
5 --该作业每10分钟运行一次
6       DBMS_JOB.SUBMIT(:jobno, 'create_date_log_row;', SYSDATE, '(SYSDATE + 1/(24*6))' );
7       commit;
8 END;
9 /

 

posted @ 2010-01-10 13:20  shishanyuan  阅读(1330)  评论(1)    收藏  举报