收藏 分销(赏)

实验五-oracle安全管理及备份恢复.doc

上传人:天**** 文档编号:4133382 上传时间:2024-07-31 格式:DOC 页数:22 大小:159.04KB
下载 相关 举报
实验五-oracle安全管理及备份恢复.doc_第1页
第1页 / 共22页
实验五-oracle安全管理及备份恢复.doc_第2页
第2页 / 共22页
实验五-oracle安全管理及备份恢复.doc_第3页
第3页 / 共22页
实验五-oracle安全管理及备份恢复.doc_第4页
第4页 / 共22页
实验五-oracle安全管理及备份恢复.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

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或iSQLPlus,创建概要文件“ygbx+学号_pro_sql,其结构与“ygbx+学号_pro”一致.(2) 查看概要文件.利用企业管理器查看概要文件“ygbx+学号_pro”的信息。利用SQLPlus或iSQL*Plus,从DBA_PROFILES数据字典中查看“ygbx+学号_pro_sql”概要文件的资源名称和资源值等信息。利用SQL*Plus或iSQLPlus,从查看“ygbx+

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

4、Plus,将“ygbx+学号_pro”概要文件赋予 “ygbxuser+学号”用户。利用SQL*Plus或iSQLPlus,将“ygbx+学号_pro_sql”概要文件赋予 “ygbxuser+学号_sql用户。(5) 查看用户.利用企业管理器,查看“ygbxuser+学号”用户的信息。利用SQL*Plus或iSQLPlus,查看“ygbxuser+学号_sql用户的信息,并查看该用户验证的方式。利用SQL*Plus或iSQL*Plus,从DBA_USERS数据字典中查看“ygbxuser+学号_sql”用户的默认表空间和临时表空间的信息。(6) 修改用户。利用企业管理器,修改“ygbxuse

5、r+学号”用户,验证方式为外部。利用SQL*Plus或iSQLPlus,修改“ygbxuser+学号_sql用户,将该用户解锁,并将密码改为“sql+学号+user。(7) 权限管理。利用企业管理器,授予“ygbxuser+学号”用户“CREATE ANY TABLE”、“CREATE ANY INDEX”、“ALTER ANY TABLE”、“ALTER ANY INDEX”、“DROP ANY TABLE”和“DROP ANY INDEX”系统权限.利用SQLPlus或iSQLPlus,授予“ygbxuser+学号_sql”用户“SYSOPER”系统权限。利用企业管理器,将“ygbxuse

6、r+学号”用户增加到“SYSTEM”方案中对“help”表的查看、修改、删除等对象权限。利用SQL*Plus或iSQL*Plus,收回“ygbxuser+学号_sql用户在“SYSTEM方案中对“help”表的查看、修改、删除等对象权限。利用SQLPlus或iSQL*Plus,收回“ygbxuser+学号_sql”用户的“SYSOPER系统权限。(8) 创建角色.利用企业管理器,创建“ygbxrole+学号角色,赋予该角色能对表、索引、存储过程、序列、同义词进行基本操作的权限。利用SQLPlus或iSQL*Plus,创建“ygbxrole+学号_sql”角色,该角色具有 “SYSDBA”系统权

7、限,并将该角色赋予“ygbxuser+学号_sql用户.(9) 查看角色。利用企业管理器,查看“ygbxrole+学号”角色所具有的所有权限.利用SQLPlus或iSQL*Plus,查看“ygbxrole+学号_sql角色所具有的所有权限。(10) 修改角色。利用企业管理器,修改“ygbxrole+学号角色,增加对角色的基本操作,并收回存储过程和序列的操作权限。利用SQLPlus或iSQLPlus,修改“ygbxrole+学号_sql”角色,收回“SYSDBA系统,而授予“SELECT ANY TABLE”系统权限。(11) 删除角色。利用企业管理器,删除“ygbxrole+学号”角色。利用S

8、QLPlus或iSQL*Plus,删除“ygbxrole+学号_sql”角色.(12) 删除概要文件。利用企业管理器,删除“ygbx+学号_pro概要文件,查看“ygbxuser+学号”用户的概要文件。利用SQL*Plus或iSQLPlus,删除“ygbx+学号_pro_sql”概要文件,查看“ygbxuser+学号_sql”用户的概要文件。(13) 删除用户。利用企业管理器,删除“ygbxuser+学号”用户.利用SQLPlus或iSQLPlus,删除“ygbxuser+学号_sql用户。2、数据库备份与恢复1)Oracle物理备份与恢复.0准备工作:(1) 查看数据库是否运行于归档模式下:

9、请给出查询的结果:(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;注意:本实验中的很多命令路径参数需根据自己的实现环境作出修改!1实验1:数据库系统数据文件和回退段遭破坏的情况下的恢复。此时数据库的状态是关闭的。(1

10、) 先启动数据库,用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把oracle服务停掉,移除SYSTEM01.dbf和UNDOTBS01.DBF文件(即将这两个文件移到其他文件夹下).(3)启动服务,启动数据库,提

11、示如下错误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)用scott用户在users表空间建立test1表SQL create table scott。test1(id int)2tablespace u

12、sers;表已创建。(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到一个指定文件夹(备份)SQL alter tablespace users offline;表空间已更改.执行:SQL alter tablespace users

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

14、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 testspace offline;SQL select * from scott。test3;请给执行结果:(2)由于没有备份数据文件,需重新创建一

15、个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:模式的导入导出案例:将scott/tiger用户对应的模式导出,通过导出文件将其导入到Test用户(为一个空用户)对应的模式中,包括该模式中的所有对象的定义和数据

16、。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 into jobs values(IT_Test,software testing,3000);提交: commit;创建测试用表scott_test creat

17、e 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=test.dmp执行时,会要求输入system的口令,请根据实际情况输入。 (4)恢复数据库运行状态 conn as sysdba; alter system di

18、sable restricted session; (5)进行数据库的导入:以下是一示例:imp system/testdb fromuser=scott touser=test tables=(scott_test,jobs) file=test.dmp ignore=y;请给执行结果:3结果检验对导入的数据进行查询,以确定导入是否成功,给出结果截图:(1)以test身份登录到数据库(2)查询刚才导出(导入)表中的某个表(如Jobs):请给执行结果:第 22 页 共 22 页3)RMAN使用基础测试说明测试目的验证RMAN备份与恢复全过程。记录整个过程的操作细节。利用RMAN的备份与恢复可完

19、成如下工作:(1) 数据库备份/恢复;(2) 同一主机,不同磁盘阵列,相同数据存储路径(模式)的数据迁移;(在恢复过程中改变数据存储路径/模式过程待验证)(3) 不同主机,相同操作系统、同一数据库版本之间的的数据库迁移。(不同数据库版本之间是否可利用RMAN 备份与恢复进行数据迁移待验证。)测试环境说明 OS:Windows XP ORACLE VERSION: Oracle Database 10gEnterprise Edition Release 10。1。0.2。0 Prod ORACLE运行模式:归档模式ORACLE数据存储:文件系统,存储于D:oracleproduct10。1。0

20、oradataorcl数据备份过程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_full_Uinclude current controlfile;sql alter system archive log current;c

21、rosscheck 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状态,才能进行数据库备份3。数据库在数据全备份后继续操作(1)在RMAN全备份后继续数据库的操作.即在测试表中插入数据.SQL conn kfzjd/k

22、fzjd已连接。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行.(2)正常关闭数据库。并删除原数据库所有文件,包括:控制文件、数据文件、日志文件。以模拟更换磁盘阵列或者文件丢失的情况。SQL conn / as

23、sysdba已连接。SQL shutdown immediate数据库已经关闭.已经卸载数据库.ORACLE 例程已经关闭。SQL host move D:oracleproduct10。1。0oradataorcl D:oracleproduct10。1。0oradataorcl.bak【注意】l 删除文件过程,将以更目录名称的方式,用以模拟新盘阵上的文件存储路径与原系统不同.此时,重新启动数据库过程必然失败。SQL conn / as sysdba已连接。SQL startupORACLE instance started。Total System Global Area 17196646

24、4 bytesFixed Size 787988 bytesVariable Size 145750508 bytesDatabase Buffers 25165824 bytesRedo Buffers 262144 bytesORA-00205: ???????, ?????, ???【注意】此时由于实例存在,但是database全部丢失,则INSTANCE启动成功,但是database启动失败。即可,NOMOUNT状态(只启动INSTANCE)成功;进入MOUNT状态时,由于控制文件丢失,MOUNT 失败。数据库启动过程不能继续.数据库恢复过程当前情况下,所有的控制文件、数据库文件、联机

25、日志文件均全部丢失。按照数据库恢复/启动过程,应按照先恢复数据库控制文件,再恢复数据文件的步骤进行。1。 从RMAN备份中恢复控制文件在本例子中,RMAN备份脚本进行了控制文件的备份.所以,控制文件的恢复过程可以利用RMAN的备份完成.此时,也存在两种情况. RMAN设置了控制文件自动备份。 RMAN未设置控制文件自动备份,而由RMAN脚本进行控制文件备份。如本例所示.对于此两种情况,分别说明如下。(1) RMAN未设置控制文件自动备份C:rman nocatalog target /恢复管理器: 版本10.1。0。2。0 - ProductionCopyright (c) 1995, 200

26、4, 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 DISK; defaultCONFIGURE CONTROLFILE AUTOBACKUP OFF;CONFIGURE CON

27、TROLFILE 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 BACKUP COPIES FOR DEVICE TYPE DISK TO 1; defaultCONFIGURE MAXSETSIZE TO UNL

28、IMITED; defaultCONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # defaultCONFIGURE SNAPSHOT CONTROLFILE NAME TO D:ORACLEPRODUCT10.1。0DB_1DATABASESNCFORCL.ORA; default【注意】RMAN 未设置控制文件自动备份。此时如果RMAN 的直接恢复将不成功.如下所示。RMAN startup nomount;Oracle 例程已启动系统全局区域总计 171966464 字节Fixed Size 787988 字节Variable Size 1457

29、50508 字节Database Buffers 25165824 字节Redo Buffers 262144 字节RMAN restore controlfile from autobackup;(由于没有设置自动备份控制文件所以出错)启动 restore 于 158月 07分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=160 devtype=DISK恢复区域目标: D:oracleproduct10。1.0flash_recovery_area用于搜索的数据库名 (或锁定名称空间): ORCL通道 ORA_DISK_1: 在恢复区域中找到自动备份通道 ORA_DI

30、SK_1: 已找到的自动备份: D:ORACLEPRODUCT10。1.0FLASH_RECOVERY_AREAORCLAUTOBACKUP2007_08_14O1_MF_S_630614292_3D31JOHN_。BKPRMAN-00571: =RMAN00569: = ERROR MESSAGE STACK FOLLOWS =RMAN00571: =RMAN-03002: failure of restore command at 08/15/2007 09:54:16ORA19504: 无法创建文件”D:ORACLEPRODUCT10。1。0ORADATAORCLCONTROL01.CT

31、L”ORA-27040: 文件创建错误, 无法创建文件OSD-04002: 无法打开文件O/SError: (OS 3) 系统找不到指定的路径.RMAN restore controlfile;(语法就错误了)启动 restore 于 158月 -07使用通道 ORA_DISK_1RMAN00571: =RMAN00569: = ERROR MESSAGE STACK FOLLOWS =RMAN-00571: =RMAN-03002: failure of restore command at 08/15/2007 09:54:31RMAN-06563: controlfile or SPFI

32、LE must be restored using FROM AUTOBACKUPRMAN restore database;(数据库未到MOUNT状态,不能进行_)启动 restore 于 158月 07使用通道 ORA_DISK_1RMAN00571: =RMAN00569: = ERROR MESSAGE STACK FOLLOWS =RMAN00571: =RMAN03002: failure of restore command at 08/15/2007 09:56:57ORA01507: 未装载数据库RMAN recover database using backup contr

33、olfile;(曾经见过ITPUB上有人怎么写,但是无法通过)RMAN00571: =RMAN00569: = ERROR MESSAGE STACK FOLLOWS =RMAN-00571: =RMAN00558: error encountered while parsing input commandsRMAN01005: syntax error: found ”identifier”: expecting one of: ”archivelog, auxiliary, allow, check, delete, from, high, noredo, noparallel, para

34、llel, ;, skip, tablespace, test, untilRMAN01008: the bad identifier was: usingRMAN-01007: at line 1 column 18 file: standard inputRMAN restore database using backup controlfile; (数据库未到MOUNT状态,不能进行_)RMAN-00571: =RMAN00569: = ERROR MESSAGE STACK FOLLOWS =RMAN00571: =RMAN00558: error encountered while

35、parsing input commandsRMAN01005: syntax error: found ”identifier: expecting one of: archivelog, channel, check, controlfile, clone, database, datafile, device, from, force, high,(, preview, ;, skip, spfile, standby, tablespace, until, validate”RMAN01008: the bad identifier was: usingRMAN-01007: at l

36、ine 1 column 18 file: standard inputRMAN由于RMAN未设置控制文件自动备份。则可以利用程序包,从备份集中恢复。如下:SQL startup nomountORACLE 例程已经启动.Total System Global Area 171966464 bytesFixed Size 787988 bytesVariable Size 145750508 bytesDatabase Buffers 25165824 bytesRedo Buffers 262144 bytesSQL alter session set nls_language=americ

37、an;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。restorecontrolfileto(D:oracleproduct10。1。0oradataorclCONTROL01.CTL); 8 dbms_backup_restore。restorebac

38、kuppiece(c:DB_FULL_0JIPED0I_1_1,done = done); 9 end; 10 /declareERROR at line 1:ORA19624: operation failed, retry possibleORA19504: failed to create file”D:ORACLEPRODUCT10.1。0ORADATAORCLCONTROL01。CTL”ORA27040: file create error, unable to create fileOSD04002: ?????O/S-Error: (OS 3) ????????ORA06512:

39、 at SYS。XDBMS_BACKUP_RESTORE, line 4772ORA06512: at line 8【注意】由出错了!报告无法创建指定的控制文件,是过程有错误吗?不是,是由于文件目录并不存在。(此时是测试时,故意留下的问题。还记得前面采用修改目录名的方式启动删除所有文件的步骤吗?)创建D:oracleproduct10。1。0oradataorcl目录后继续。此时该目录下无任何文件.(再留下一个问题,文件存储采用裸设备呢?)SQL declare 2 devtype varchar2(256); 3 done boolean; 4 begin 5 devtype := dbms

40、_backup_restore.deviceallocate(NULL); 6 dbms_backup_restore。restoresetdatafile; 7 dbms_backup_restore。restorecontrolfileto(D:oracleproduct10.1。0oradataorclCONTROL01.CTL); 8 dbms_backup_restore。restorebackuppiece(c:DB_FULL_0JIPED0I_1_1,done = done); 9 end; 10 /PL/SQL 过程已成功完成。此时在D:oracleproduct10.1.0o

41、radataorcl目录中,可看到一个控制文件.D:oracleproduct10。1。0oradataorclCONTROL01。CTL。此时启动数据库试验一下。SQL startup nomountORACLE 例程已经启动。Total System Global Area 171966464 bytesFixed Size 787988 bytesVariable Size 145750508 bytesDatabase Buffers 25165824 bytesRedo Buffers 262144 bytesSQL alter database mount;alter databa

42、se mount*第 1 行出现错误:ORA00205: ???, ??, ???有出错了!看看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。Action: One of the following:Check that the proper control file name is referenced in the CONTROL_FILES i

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服