和
DELETE权限授予rolea;将CONNECT, RESOURCE角色授予roleba (9)将角色rolea, roleb授予用户usera_exero (10)屏蔽用户usera一exer的roleb角色。 (11)为用户usera_exer创建一个概要文件,限定该用户的最长会话时间为30分钟,如果
连续10分钟空闲,则结束会话。同时,限定其口令有效期为20天,连续登录4次失败后将锁
定账户,10天后自动解锁。
〔12)首先启动数据库的审计功能,然后对当前数据库的所有连接进行审计;对数据库中
所有的CREATE TABLE成功操作进行审计;对SCOTT模式中emp表的INSERT, UPDATE
和DELETE操作进行审计。 3.选择题
(1) The default tablespace clause in the create user command sets the location for
A. Database Objects created by the user B. Temporary Objects Created By the User C. System Objects Created by the user D. None of the above
(2) What does sessions_per_user in a resource limit set? A. No of Concurrent Sessions for the database. B. No of Sessions Per User. C. No of Processes Per User D. None of the above
(3) What value sets the no activity time before a user is disconnected? A. IDLE TIME B. DISCONNECT-TIME C. CONNECT-TIME D. None of the above
(4) Which of the following statements is incorrect when used with ALTER USER usera? A. ADD QUOTA 5M B. IDENTIFIED BY usera
C. DEFAULT TABLESPACE SYSTEM D. None of the above
(5) What view consists information about the resource usage parameters for each profile? A. DBA_PROFILE B. DBA PROFILES C. DBA USERS D. DBA_RESOURCES
(6) Which of the following is not a system privilege?
A. SELECT B. UPDATE ANY C. CREATE VIEW D. CREATE SESSION
(7) What keyword during the create user command, limits the space used by users objects in the database?
A. Size B. NEXT-EXTENT C. MAX EXTENTS D. QUOTA (8) What operations are limited by the Quota on a tablespace? A. UPDATE B. DELETE C. CREATE D. All of the above (9) Profiles cannot be used to restrict which of the following? A. CPU time used
B. Total time connected to the database C. Maximum time a session can be inactive D. Time spent reading blocks
(10) Which of the following is not a role?
A. CONNECT B. DBA C. RESOURCE D. CREATE SESSION
第13章 备份与恢复
例题
1、冷备份 P244
启动SQL*Plus,以SYSDBA身份登录数据库
查询当前数据库所有数据文件、控制文件、联机重做日志文件的位置。 SELECT file_name FROM dba_data_files; SELECT member FROM v$logfile; SELECT value FROM v$parameter WHERE name='control_files'; 关闭数据库
SHUTDOWN IMMEDIATE
复制所有数据文件、联机重做日志文件以及控制文件到备份磁盘。 重新启动数据库 STARTUP
2、热备份 P255 备份数据文件
查看当前数据库有哪些表空间,以及每个表空间中有哪些数据文件。 SELECT tablespace_name,file_name FROM dba_data_files ORDER BY tablespace_name;
分别对每个表空间中的数据文件进行备份,其方法为 将需要备份的表空间(如USERS)设置为备份状态。 ALTER TABLESPACE USERS BEGIN BACKUP; 将表空间中所有的数据文件复制到备份磁盘。 结束表空间的备份状态。
ALTER TABLESPACE USERS END BACKUP;
对数据库中所有表空间分别采用该步骤进行备份。 备份控制文件
当执行了下列操作时应该进行控制文件备份 ALTER DATABASE ADD LOGFILE
ALERT DATABASE ADD LOGFILE MEMBER ALTER DATABASE RENAME FILE
ALTER DATABASE DROP LOGFILE GROUP ALTER DATABASE DROP LOGFILE MEMBER CREATE TABLESPACE
ALTER TABLESPACE ADD DATAFILE
ALTER TABLESPACE RENAME DATAFILE
DROP TABLESPACE 控制文件备份方法
将控制文件备份为二进制文件。
ALTER DATABASE BACKUP CONTROLFILE TO 'D:\\ORACLE\\BACKUP\\CONTROL.BKP'; 将控制文件备份为文本文件。
ALTER DATABASE BACKUP CONTROLFILE TO TRACE; 其他文件的备份
归档当前的联机重做日志文件。
ALTER SYSTEM ARCHIVE LOG CURRENT;
3、非归档模式下数据库的恢复主要指利用非归档模式下的冷备份恢复数据库P247 关闭数据库。
SHUTDOWN IMMEDIATE
将备份的所有数据文件、控制文件、联机重做日志文件还原到原来所在的位置。 重新启动数据库。 STARTUP
4、数据库级完全恢复的步骤 P246
如果数据库没有关闭,则强制关闭数据库。 SHUTDOWN ABORT
利用备份的数据文件还原所有损坏的数据文件。 将数据库启动到MOUNT状态。 STARTUP MOUNT 执行数据库恢复命令。 RECOVER DATABASE 打开数据库。
ALTER DATABASE OPEN;
5、数据库处于装载状态下的恢复 P246 如果数据库没有关闭,则强制关闭数据库。 SHUTDOWN ABORT
利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。 将数据库启动到MOUNT状态。 STARTUP MOUNT 执行表空间恢复命令。
RECOVER TABLESPACE EXAMPLE 打开数据库。
ALTER DATABASE OPEN;
6、数据库处于打开状态下的恢复 P247
①如果数据库已经关闭,则将数据库启动到MOUNT状态。 STARTUP MOUNT
②将损坏的数据文件设置为脱机状态。 ALTER DATABASE DATAFILE 'D:\\oracle\\product\\10.2.0\\oradata\\orcl\\ EXAMPLE01.DBF' OFFLINE; ③打开数据库。
ALTER DATABASE OPEN;
④将损坏的数据文件所在的表空间脱机。
ALTER TABLESPACE EXAMPLE OFFLINE FOR RECOVER;
⑤ 利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。 ⑥ 执行表空间恢复命令。
RECOVER TABLESPACE EXAMPLE; ⑦ 将表空间联机。
ALTER TABLESPACE EXAMPLE ONLINE;
如果数据文件损坏时数据库正处于打开状态,则可以直接执行步骤(4)~(7)。
7、以数据文件D:\\oracle\\product\\10.2.0\\oradata\\orcl\\example01.dbf损坏为例模拟数据文件级的完全恢复。 P247
数据库处于装载状态下的恢复
(1)如果数据库没有关闭,则强制关闭数据库。 SHUTDOWN ABORT
利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。 将数据库启动到MOUNT状态。 STARTUP MOUNT
执行数据文件恢复命令。 RECOVER DATAFILE
'D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\ EXAMPLE01.DBF'; 将数据文件联机。
ALTER DATABASE DATAFILE 'D:\\oracle\\product\\10.2.0\\oradata\\orcl\\ EXAMPLE01.DBF' ONLINE 打开数据库。
ALTER DATABASE OPEN;
(2)数据库处于打开状态下的恢复
如果数据库已经关闭,则将数据库启动到MOUNT状态。 STARTUP MOUNT
将损坏的数据文件设置为脱机状态。 ALTER DATABASE DATAFILE 'D:\\oracle\\product\\10.2.0\\oradata\\orcl\\ EXAMPLE01.DBF' OFFLINE; 打开数据库。
ALTER DATABASE OPEN;
利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。 执行数据文件恢复命令。 RECOVER DATAFILE
'D:\\oracle\\product\\10.2.0\\oradata\\orcl\\EXAMPLE01.DBF'; 将数据文件联机。
ALTER DATABASE DATAFILE
'D:\\oracle\\product\\10.2.0\\oradata\\orcl\\EXAMPLE01.DBF' ONLINE;
如果数据文件损坏时数据库正处于打开状态,则可以直接执行步骤(2)、(4)~(6)。
8、以SYSTEM表空间的数据文件D:\\oracle\\product\\10.2.0\\oradata\\orcl\\system01.dbf 损坏为例演示归档模式下的完全恢复操作。P248 首先进行一次归档模式下的数据库完整备份。 以SYSDBA身份登录数据库进行下列操作。
CREATE TABLE test_rec(ID NUMBER PRIMARY KEY,NAME CHAR(20)) TABLESPACE SYSTEM;
INSERT INTO test_rec VALUES(1,'ZHANGSAN'); COMMIT;
INSERT INTO test_rec VALUES(2,'LISI'); COMMIT;
ALTER SYSTEM SWITCH LOGFILE; SELECT * FROM test_rec; SHUTDOWN ABORT;
删除SYSTEM表空间的数据文件D:\\oracle\\product\\10.2.0\\oradata\\orcl\\system01.dbf,以模拟数据文件损坏的情形。
用备份的数据文件D:\\oracle\\product\\10.2.0\\oradata\\orcl\\system01.dbf还原损坏(本文为被删除)的数据文件。
执行恢复操作。由于SYSTEM表空间不能在数据库打开后进行恢复,因此只能在数据库处于装载状态时进行恢复。 STARTUP MOUNT
RECOVER DATABASE; ALTER DATABASE OPEN; SELECT * FROM test_rec;
9、数据文件损坏的数据库不完全恢复的步骤 P249 如果数据库没有关闭,则强制关闭数据库。 SHUTDOWN ABORT
用备份的所有数据文件还原当前数据库的所有数据文件,即将数据库的所有数据文件恢复到备份时刻的状态。
将数据库启动到MOUNT状态。 STARTUP MOUNT
执行数据文件的不完全恢复命令。
RECOVER DATABASE UNTIL TIME time;(基于时间恢复) RECOVER DATABASE UNTIL CANCEL;(基于撤销恢复)
RECOVER DATABASE UNTIL CHANGE scn;(基于SCN恢复)
可以通过查询数据字典视图V$LOG_HISTORY获得时间和SCN的信息。 不完全恢复完成后,使用RESETLOGS选项启动数据库。 ALTER DATABASE OPEN RESETLOGS; 10、控制文件损坏的数据库不完全恢复 P251 如果数据库没有关闭,则强制关闭数据库。 SHUTDOWN ABORT
用备份的所有数据文件和控制文件还原当前数据库的所有数据文件、控制文件,即将数据库的所有数据文件、控制文件恢复到备份时刻的状态。 将数据库启动到MOUNT状态。