实验五 oracle安全管理及备份恢复_第1页
实验五 oracle安全管理及备份恢复_第2页
实验五 oracle安全管理及备份恢复_第3页
实验五 oracle安全管理及备份恢复_第4页
实验五 oracle安全管理及备份恢复_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验五 oracle安全管理及备份恢复一、实验目的及要求掌握oracle的安全管理方法。掌握oracle数据库常用的备份和恢复方法。二、实验主要内容(1) 概要文件的建立、修改、查看、删除操作。(2) 用户的建立、修改、查看、删除操作。(3) 权限的建立、修改、查看、删除操作。(4) 角色的建立、修改、查看、删除操作。(5)数据备份与恢复的方法(6)oracle备份方案的制定三、实验仪器设备在局域网环境下,有一台服务器和若干台客户机。服务器成功安装oracle 10g数据库服务器(企业版),客户机成功安装oracle 10g客户端软件,网络服务配置正确,数据库和客户端正常工作。四、实验步骤1、

2、安全管理 (1) 创建概要文件。 利用企业管理器创建概要文件“ygbx+学号_pro”,要求在此概要文件中cpu/会话为1000,读取数/会话为2000,登录失败次数为3,锁定天数为10。 利用sql*plus或isql*plus,创建概要文件“ygbx+学号_pro_sql”,其结构与“ygbx+学号_pro”一致。(2) 查看概要文件。 利用企业管理器查看概要文件“ygbx+学号_pro”的信息。 利用sql*plus或isql*plus,从dba_profiles数据字典中查看“ygbx+学号_pro_sql”概要文件的资源名称和资源值等信息。 利用sql*plus或isql*plus,

3、从查看“ygbx+学号_pro_sql”概要文件中锁定天数的值。(3) 修改概要文件。 利用企业管理器,修改“ygbx+学号_pro”概要文件,将cpu/会话改为4000,连接时间为60。 利用sql*plus或isql*plus,修改“ygbx+学号_pro_sql”概要文件,将并行会话设为20,读取数/会话设为default。(4) 创建用户。 利用企业管理器,创建“ygbxuser+学号”用户,密码为“user+学号”,默认表空间为“ygbx_tbs”。 利用sql*plus或isql*plus,创建“ygbxuser+学号_sql”用户,密码为“user+学号+sql”,该用户处于锁状

4、态。 利用sql*plus或isql*plus,将“ygbx+学号_pro”概要文件赋予 “ygbxuser+学号”用户。 利用sql*plus或isql*plus,将“ygbx+学号_pro_sql”概要文件赋予 “ygbxuser+学号_sql”用户。(5) 查看用户。 利用企业管理器,查看“ygbxuser+学号”用户的信息。 利用sql*plus或isql*plus,查看“ygbxuser+学号_sql”用户的信息,并查看该用户验证的方式。 利用sql*plus或isql*plus,从dba_users数据字典中查看“ygbxuser+学号_sql”用户的默认表空间和临时表空间的信息。

5、(6) 修改用户。 利用企业管理器,修改“ygbxuser+学号”用户,验证方式为外部。 利用sql*plus或isql*plus,修改“ygbxuser+学号_sql”用户,将该用户解锁,并将密码改为“sql+学号+user”。(7) 权限管理。 利用企业管理器,授予“ygbxuser+学号”用户“create any table”、“create any index”、“alter any table”、“alter any index”、“drop any table”和“drop any index”系统权限。 利用sql*plus或isql*plus,授予“ygbxuser+学号_s

6、ql”用户“sysoper”系统权限。 利用企业管理器,将“ygbxuser+学号”用户增加到“system”方案中对“help”表的查看、修改、删除等对象权限。 利用sql*plus或isql*plus,收回“ygbxuser+学号_sql”用户在“system”方案中对“help”表的查看、修改、删除等对象权限。 利用sql*plus或isql*plus,收回“ygbxuser+学号_sql”用户的“sysoper”系统权限。(8) 创建角色。 利用企业管理器,创建“ygbxrole+学号”角色,赋予该角色能对表、索引、存储过程、序列、同义词进行基本操作的权限。 利用sql*plus或is

7、ql*plus,创建“ygbxrole+学号_sql”角色,该角色具有 “sysdba”系统权限,并将该角色赋予“ygbxuser+学号_sql”用户。(9) 查看角色。 利用企业管理器,查看“ygbxrole+学号”角色所具有的所有权限。 利用sql*plus或isql*plus,查看“ygbxrole+学号_sql”角色所具有的所有权限。(10) 修改角色。 利用企业管理器,修改“ygbxrole+学号”角色,增加对角色的基本操作,并收回存储过程和序列的操作权限。 利用sql*plus或isql*plus,修改“ygbxrole+学号_sql”角色,收回“sysdba”系统,而授予“sel

8、ect any table”系统权限。(11) 删除角色。 利用企业管理器,删除“ygbxrole+学号”角色。 利用sql*plus或isql*plus,删除“ygbxrole+学号_sql”角色。(12) 删除概要文件。 利用企业管理器,删除“ygbx+学号_pro”概要文件,查看“ygbxuser+学号”用户的概要文件。 利用sql*plus或isql*plus,删除“ygbx+学号_pro_sql”概要文件,查看“ygbxuser+学号_sql”用户的概要文件。(13) 删除用户。 利用企业管理器,删除“ygbxuser+学号”用户。 利用sql*plus或isql*plus,删除“y

9、gbxuser+学号_sql”用户。2、数据库备份与恢复1)oracle物理备份与恢复.0准备工作:(1) 查看数据库是否运行于归档模式下:请给出查询的结果:(2) 干净的关闭数据库,做一个完全的冷备份。提示:a.使用showdown命令; b.复制数据文件、日志文件和控制文件到安全地方(3) 把数据库改为归档模式sql startup mountsql alter database archivelog;sql alter database open;设置成自动归档sql alter system set log_archive_start = true scope=spfile;注意:本实

10、验中的很多命令路径参数需根据自己的实现环境作出修改!1实验1:数据库系统数据文件和回退段遭破坏的情况下的恢复。此时数据库的状态是关闭的。(1) 先启动数据库,用scott用户建立test表,并插入两条数据。sql create table scott.test(id int);表已创建。sql insert into scott.test values(1);已创建 1 行。sql insert into scott.test values(2);已创建 1 行。sql commit;提交完成。(2)模拟数据库遭意外被迫关闭,并且系统数据文件丢失。sql shutdown abort把orac

11、le服务停掉,移除system01.dbf和undotbs01.dbf文件(即将这两个文件移到其他文件夹下)。(3)启动服务,启动数据库, 提示如下错误a. 启动服务b. 启动数据库sql startup请给执行结果:(4)把备份的system01.dbf和undotbs01.dbf文件复制回去a. 执行以下命令:请给执行结果:然后就可以打开数据库,查看scott用户的test表。sql alter database open;sql select * from scott.test; 请给执行结果:实验2:数据库是打开的,这时损坏的文件是用户的数据文件而不是system和undo文件。(1)

12、用scott用户在users表空间建立test1表sql create table scott.test1(id int)2tablespace users;表已创建。(2) 插入两条数据sql insert into scott.test1 values(1);已创建 1 行。sql insert into scott.test1 values(2);已创建 1 行。sql commit;提交完成。(3)当前日志归档sql alter system archive log current;系统已更改。(4)现在破坏users表空间,使其离线,然后移除users01.dbf到一个指定文件夹(备

13、份)sql alter tablespace users offline;表空间已更改。执行:sql alter tablespace users online;请给执行结果:此时出现错误,users表空间不能在线了。这时把备份的users01.dbf还原回去。然后,执行:sql recover tablespace users;(5)完成介质恢复。sql alter tablespace users online;表空间已更改。sql select * from scott.test1; 请给执行结果:实验3:数据文件没有备份(不能使system和undo文件)的恢复。(1)创建表空间tes

14、tspace在sql plus中依次执行以下语句,给出最后的执行结果:sql create tablespace testspace datafile c:oracleproduct10.1.0db_1testdbtestspace.dbf size 10m;sql create table scott.test3(id int) tablespace testspace;sql commit;sql alter system switch logfile;sql insert into scott.test3 values(1);sql commit;sql alter tablespace

15、 testspace offline;sql select * from scott.test3;请给执行结果:(2)由于没有备份数据文件,需重新创建一个sql alter database create datafile c:oracleproduct10.1.0db_1testdbtestspace.dbf;sql recover tablespace testspace;(3) 完成恢复sql alter tablespace testspace online;表空间已更改。sql select * from scott.test3;请给执行结果:2)逻辑备份:导入导出实验实验4:模式的

16、导入导出案例:将scott/tiger用户对应的模式导出,通过导出文件将其导入到test用户(为一个空用户)对应的模式中,包括该模式中的所有对象的定义和数据。1准备工作(1)创建用户:create user testidentified by test;(2)授权:注:这儿做了简化处理,实际工作中,尽量不要授dba权限给一般用户。2数据的导出与导入(1)数据准备以scott身份登录: conn scott/tiger创建测试用表:create table jobs( name varchar2(20),job varchar2(40), sales number);加入数据:insert in

17、to jobs values(it_test,software testing,3000);提交: commit;创建测试用表scott_test create table scott_test( name varchar2(10), age number);加入数据: insert into scott_test values(manager,40);(2)以管理员身份登录: conn as sysdba; alter system enable restricted session; (3)导出数据库: 在dos提示符下执行:exp system/ testdb full=y file=t

18、est.dmp执行时,会要求输入system的口令,请根据实际情况输入。 (4)恢复数据库运行状态 conn as sysdba; alter system disable restricted session; (5)进行数据库的导入:以下是一示例:imp system/testdb fromuser=scott touser=test tables=(scott_test,jobs) file=test.dmp ignore=y;请给执行结果:3结果检验对导入的数据进行查询,以确定导入是否成功,给出结果截图:(1)以test身份登录到数据库(2)查询刚才导出(导入)表中的某个表(如jobs

19、):请给执行结果:3)rman使用基础测试说明测试目的验证rman备份与恢复全过程。记录整个过程的操作细节。利用rman的备份与恢复可完成如下工作:(1) 数据库备份/恢复;(2) 同一主机,不同磁盘阵列,相同数据存储路径(模式)的数据迁移;(在恢复过程中改变数据存储路径/模式过程待验证)(3) 不同主机,相同操作系统、同一数据库版本之间的的数据库迁移。(不同数据库版本之间是否可利用rman 备份与恢复进行数据迁移待验证。)测试环境说明 os:windows xp oracle version: oracle database 10g enterprise edition release 10

20、.1.0.2.0 prod oracle运行模式:归档模式oracle数据存储:文件系统,存储于d:oracleproduct10.1.0oradataorcl 数据备份过程1.连接本地数据库: rman target /通过rman连接本地数据库非常简单,进入到命令提示符界面:2.rman 数据库全备份rman nocatalog target /run allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup database format c:db_fu

21、ll_%u include current controlfile;sql alter system archive log current;#crosscheck archivelog all;backup format c:arch_full_%u archivelog all delete input;release channel c1;release channel c2;release channel c3;【注意】l rman采用无恢复目录模式l 备份数据库过程包含当前控制文件备份l 数据库处于归档模式,备份过程包含所有归档日志的备份l 数据库必须处于mount或者open状态,

22、才能进行数据库备份3.数据库在数据全备份后继续操作(1)在rman全备份后继续数据库的操作。即在测试表中插入数据。sql conn kfzjd/kfzjd已连接。sql insert into t values(100);已创建 1 行。sql insert into t values(200);已创建 1 行。sql insert into t values(300);已创建 1 行。sql insert into t values(400);已创建 1 行。sql commit;提交完成。sql select * from t; id- 1 2 3 100 200 300 400已选择7行

23、。(2)正常关闭数据库。并删除原数据库所有文件,包括:控制文件、数据文件、日志文件。以模拟更换磁盘阵列或者文件丢失的情况。sql conn / as sysdba已连接。sql shutdown immediate数据库已经关闭。已经卸载数据库。oracle 例程已经关闭。sql host move d:oracleproduct10.1.0oradataorcl d:oracleproduct10.1.0oradataorcl.bak【注意】l 删除文件过程,将以更目录名称的方式,用以模拟新盘阵上的文件存储路径与原系统不同。此时,重新启动数据库过程必然失败。sql conn / as sys

24、dba已连接。sql startuporacle instance started.total system global area 171966464 bytesfixed size 787988 bytesvariable size 145750508 bytesdatabase buffers 25165824 bytesredo buffers 262144 bytesora-00205: ?, ?, ?【注意】此时由于实例存在,但是database全部丢失,则instance启动成功,但是database启动失败。即可,nomount状态(只启动instance)成功;进入mount

25、状态时,由于控制文件丢失,mount 失败。数据库启动过程不能继续。数据库恢复过程当前情况下,所有的控制文件、数据库文件、联机日志文件均全部丢失。按照数据库恢复/启动过程,应按照先恢复数据库控制文件,再恢复数据文件的步骤进行。1. 从rman备份中恢复控制文件在本例子中,rman备份脚本进行了控制文件的备份。所以,控制文件的恢复过程可以利用rman的备份完成。此时,也存在两种情况。 rman设置了控制文件自动备份。 rman未设置控制文件自动备份,而由rman脚本进行控制文件备份。如本例所示。对于此两种情况,分别说明如下。(1) rman未设置控制文件自动备份c:rman nocatalog

26、target /恢复管理器: 版本10.1.0.2.0 - productioncopyright (c) 1995, 2004, oracle. all rights reserved.连接到目标数据库: orcl (dbid=1158376346)正在使用目标数据库控制文件替代恢复目录rman show all;rman 配置参数为:configure retention policy to redundancy 1; # defaultconfigure backup optimization off; # defaultconfigure default device type to

27、disk; # defaultconfigure controlfile autobackup off;configure controlfile autobackup format for device type disk to %f; # defaultconfigure device type disk parallelism 1 backup type to backupset; # defaultconfigure datafile backup copies for device type disk to 1; # defaultconfigure archivelog backu

28、p copies for device type disk to 1; # defaultconfigure maxsetsize to unlimited; # defaultconfigure archivelog deletion policy to none; # defaultconfigure snapshot controlfile name to d:oracleproduct10.1.0db_1databasesncforcl.ora; # default【注意】rman 未设置控制文件自动备份。此时如果rman 的直接恢复将不成功。如下所示。rman startup nom

29、ount;oracle 例程已启动系统全局区域总计 171966464 字节fixed size 787988 字节variable size 145750508 字节database buffers 25165824 字节redo buffers 262144 字节rman restore controlfile from autobackup;(由于没有设置自动备份控制文件所以出错)启动 restore 于 15-8月 -07分配的通道: ora_disk_1通道 ora_disk_1: sid=160 devtype=disk恢复区域目标: d:oracleproduct10.1.0fl

30、ash_recovery_area用于搜索的数据库名 (或锁定名称空间): orcl通道 ora_disk_1: 在恢复区域中找到自动备份通道 ora_disk_1: 已找到的自动备份: d:oracleproduct10.1.0flash_recovery_areaorclautobackup2007_08_14o1_mf_s_630614292_3d31john_.bkprman-00571: =rman-00569: = error message stack follows =rman-00571: =rman-03002: failure of restore command at

31、08/15/2007 09:54:16ora-19504: 无法创建文件d:oracleproduct10.1.0oradataorclcontrol01.ctlora-27040: 文件创建错误, 无法创建文件osd-04002: 无法打开文件o/s-error: (os 3) 系统找不到指定的路径。rman restore controlfile;(语法就错误了)启动 restore 于 15-8月 -07使用通道 ora_disk_1rman-00571: =rman-00569: = error message stack follows =rman-00571: =rman-0300

32、2: failure of restore command at 08/15/2007 09:54:31rman-06563: controlfile or spfile must be restored using from autobackuprman restore database;(数据库未到mount状态,不能进行_)启动 restore 于 15-8月 -07使用通道 ora_disk_1rman-00571: =rman-00569: = error message stack follows =rman-00571: =rman-03002: failure of resto

33、re command at 08/15/2007 09:56:57ora-01507: 未装载数据库rman recover database using backup controlfile;(曾经见过itpub上有人怎么写,但是无法通过)rman-00571: =rman-00569: = error message stack follows =rman-00571: =rman-00558: error encountered while parsing input commandsrman-01005: syntax error: found identifier: expectin

34、g one of: archivelog, auxiliary, allow, check, delete, from, high, noredo, noparallel, parallel, ;, skip, tablespace, test, untilrman-01008: the bad identifier was: usingrman-01007: at line 1 column 18 file: standard inputrman restore database using backup controlfile; (数据库未到mount状态,不能进行_)rman-00571

35、: =rman-00569: = error message stack follows =rman-00571: =rman-00558: error encountered while parsing input commandsrman-01005: syntax error: found identifier: expecting one of: archivelog, channel, check, controlfile, clone, database, datafile, device, from, force, high,(, preview, ;, skip, spfile

36、, standby, tablespace, until, validaterman-01008: the bad identifier was: usingrman-01007: at line 1 column 18 file: standard inputrman由于rman未设置控制文件自动备份。则可以利用程序包,从备份集中恢复。如下:sql startup nomountoracle 例程已经启动。total system global area 171966464 bytesfixed size 787988 bytesvariable size 145750508 bytesda

37、tabase buffers 25165824 bytesredo buffers 262144 bytessql alter session set nls_language=american;session altered.sql declare 2 devtype varchar2(256); 3 done boolean; 4 begin 5 devtype := dbms_backup_restore.deviceallocate(null); 6 dbms_backup_restore.restoresetdatafile; 7 dbms_backup_restore.restor

38、econtrolfileto(d:oracleproduct10.1.0oradataorclcontrol01.ctl); 8 dbms_backup_restore.restorebackuppiece(c:db_full_0jiped0i_1_1,done = done); 9 end; 10 /declare*error at line 1:ora-19624: operation failed, retry possibleora-19504: failed to create filed:oracleproduct10.1.0oradataorclcontrol01.ctlora-

39、27040: file create error, unable to create fileosd-04002: ?o/s-error: (os 3) ?ora-06512: at sys.x$dbms_backup_restore, line 4772ora-06512: at line 8【注意】由出错了!报告无法创建指定的控制文件,是过程有错误吗?不是,是由于文件目录并不存在。(此时是测试时,故意留下的问题。还记得前面采用修改目录名的方式启动删除所有文件的步骤吗?)创建d:oracleproduct10.1.0oradataorcl目录后继续。此时该目录下无任何文件。(再留下一个问题,

40、文件存储采用裸设备呢?)sql declare 2 devtype varchar2(256); 3 done boolean; 4 begin 5 devtype := dbms_backup_restore.deviceallocate(null); 6 dbms_backup_restore.restoresetdatafile; 7 dbms_backup_restore.restorecontrolfileto(d:oracleproduct10.1.0oradataorclcontrol01.ctl); 8 dbms_backup_restore.restorebackuppiec

41、e(c:db_full_0jiped0i_1_1,done = done); 9 end; 10 /pl/sql 过程已成功完成。此时在d:oracleproduct10.1.0oradataorcl目录中,可看到一个控制文件。d:oracleproduct10.1.0oradataorclcontrol01.ctl。此时启动数据库试验一下。sql startup nomountoracle 例程已经启动。total system global area 171966464 bytesfixed size 787988 bytesvariable size 145750508 bytesdat

42、abase buffers 25165824 bytesredo buffers 262144 bytessql alter database mount;alter database mount*第 1 行出现错误:ora-00205: ?, ?, ?有出错了!看看ora-00205的说明ora-00205 error in identifying controlfile, check alert log for more infocause: the system could not find a control file of the specified name and size.ac

43、tion: one of the following:check that the proper control file name is referenced in the control_files initialization parameter in the initialization parameter file and try again. when using mirrored control files, that is, more than one control file is referenced in the initialization parameter file

44、, remove the control file name listed in the message from the initialization parameter file and restart the instance. if the message does not recur, remove the problem control file from the initialization parameter file and create another copy of the control file with a new file name in the initiali

45、zation parameter file.明白了!原来是缺少控制文件。检查一下spfile的设置。sql show parameter control_filesname type value-control_files string d:oracleproduct10.1.0oradataorclcontrol01.ctl, d:oracleproduct10.1.0oradataorclcontrol02.ctl, d:oracleproduct10.1.0oradataorclcontrol03.ctl果然如此。简单,复制controlfile即可。复制该名后继续。sql alter

46、database mount;数据库已更改。sql alter database open;alter database open*第 1 行出现错误:ora-01589: ? resetlogs ? noresetlogs ?ok!数据库可以mount了,但是不能open。和预期目标一样。此时d:oracleproduct10.1.0oradataorcl目录下文件如下。2007-08-15 10:45 .2007-08-15 10:45 .2007-08-15 10:37 2,867,200 control01.ctl2007-08-15 10:37 2,867,200 control02

47、.ctl2007-08-15 10:37 2,867,200 control03.ctl该目录下只有三个控制文件。和预计的一样。至此,控制文件恢复完成,可以进行下一步了。【注意】遗留一个问题。此时是由rman备份的控制文件中恢复。那么如果rman没有备份控制文件,同时rman没有设置自动备份控制文件,那么该如何恢复呢?当然,如果完全没有控制文件的备份,那么就彻底歇菜了!对于控制文件的手工备份,可以采用l alter database backup controlfile to trace;(此恢复有点难度)l alter database backup control to c:control

48、.bak;(此恢复简单)(2) rman设置了控制文件自动备份建议开启rman 自动备份控制文件选项。操作如下:rman show all;rman 配置参数为:configure retention policy to redundancy 1; # defaultconfigure backup optimization off; # defaultconfigure default device type to disk; # defaultconfigure controlfile autobackup off; (未开启控制文件自动备份)configure controlfile a

49、utobackup format for device type disk to %f; # defaultconfigure device type disk parallelism 1 backup type to backupset; # defaultconfigure datafile backup copies for device type disk to 1; # defaultconfigure archivelog backup copies for device type disk to 1; # defaultconfigure maxsetsize to unlimi

50、ted; # defaultconfigure archivelog deletion policy to none; # defaultconfigure snapshot controlfile name to d:oracleproduct10.1.0db_1databasesncforcl.ora; # defaultrman configure controlfile autobackup on; (设置控制文件自动备份)旧的 rman 配置参数:configure controlfile autobackup off;新的 rman 配置参数:configure controlfile autobackup on;已成功存储新的 rman 配置参数rman show all;rman 配置参数为:configure retention policy to redundancy 1; # defaultconfigure backup optimization off; # defaultconfigure default device type to disk; # default

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论