收藏 分销(赏)

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

上传人:天**** 文档编号:4133382 上传时间:2024-07-31 格式:DOC 页数:22 大小:159.04KB 下载积分:10 金币
下载 相关 举报
实验五-oracle安全管理及备份恢复.doc_第1页
第1页 / 共22页
实验五-oracle安全管理及备份恢复.doc_第2页
第2页 / 共22页


点击查看更多>>
资源描述
实验五 oracle安全管理及备份恢复 一、实验目的及要求 掌握Oracle的安全管理方法。掌握oracle数据库常用的备份和恢复方法。 二、实验主要内容 (1) 概要文件的建立、修改、查看、删除操作。 (2) 用户的建立、修改、查看、删除操作. (3) 权限的建立、修改、查看、删除操作。 (4) 角色的建立、修改、查看、删除操作。 (5)数据备份与恢复的方法 (6)Oracle备份方案的制定 三、实验仪器设备 在局域网环境下,有一台服务器和若干台客户机。服务器成功安装Oracle 10g数据库服务器(企业版),客户机成功安装Oracle 10g客户端软件,网络服务配置正确,数据库和客户端正常工作. 四、实验步骤 1、安全管理 (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,从查看“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",该用户处于锁状态. ③利用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”用户的默认表空间和临时表空间的信息。 (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+学号_sql”用户“SYSOPER”系统权限。 ③利用企业管理器,将“ygbxuser+学号”用户增加到“SYSTEM”方案中对“help”表的查看、修改、删除等对象权限。 ④利用SQL*Plus或iSQL*Plus,收回“ygbxuser+学号_sql"用户在“SYSTEM"方案中对“help”表的查看、修改、删除等对象权限。 ⑤利用SQL*Plus或iSQL*Plus,收回“ygbxuser+学号_sql”用户的“SYSOPER"系统权限。 (8) 创建角色. ①利用企业管理器,创建“ygbxrole+学号"角色,赋予该角色能对表、索引、存储过程、序列、同义词进行基本操作的权限。 ②利用SQL*Plus或iSQL*Plus,创建“ygbxrole+学号_sql”角色,该角色具有 “SYSDBA”系统权限,并将该角色赋予“ygbxuser+学号_sql"用户. (9) 查看角色。 ①利用企业管理器,查看“ygbxrole+学号”角色所具有的所有权限. ②利用SQL*Plus或iSQL*Plus,查看“ygbxrole+学号_sql"角色所具有的所有权限。 (10) 修改角色。 ①利用企业管理器,修改“ygbxrole+学号"角色,增加对角色的基本操作,并收回存储过程和序列的操作权限。 ②利用SQL*Plus或iSQL*Plus,修改“ygbxrole+学号_sql”角色,收回“SYSDBA"系统,而授予“SELECT 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,删除“ygbxuser+学号_sql"用户。 2、数据库备份与恢复 1)Oracle物理备份与恢复 .0.准备工作: (1) 查看数据库是否运行于归档模式下: 请给出查询的结果: (2) 干净的关闭数据库,做一个完全的冷备份。 提示:a。使用showdown命令; b.复制数据文件、日志文件和控制文件到安全地方 (3) 把数据库改为归档模式 SQL〉 startup mount SQL〉 alter database archivelog; SQL〉 alter database open; 设置成自动归档 SQL〉 alter system set log_archive_start = true scope=spfile; 注意:本实验中的很多命令路径参数需根据自己的实现环境作出修改!! 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 把oracle服务停掉,移除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)用scott用户在users表空间建立test1表 SQL〉 create table scott。test1(id int)   2  tablespace 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到一个指定文件夹(备份) 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)创建表空间testspace 在SQL Plus中依次执行以下语句,给出最后的执行结果: SQL〉 create tablespace testspace datafile 'C:\oracle\product\10。1。0\db_1\TestDB\testspace.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)由于没有备份数据文件,需重新创建一个 SQL〉 alter database create datafile      ’C:\oracle\product\10。1.0\db_1\TestDB\testspace.dbf’; SQL〉 recover tablespace testspace; (3) 完成恢复 SQL〉 alter tablespace testspace online; 表空间已更改. SQL> select * from scott.test3; 请给执行结果: 2)逻辑备份:导入导出实验 实验4:模式的导入导出 案例:将scott/tiger用户对应的模式导出,通过导出文件将其导入到Test用户(为一个空用户)对应的模式中,包括该模式中的所有对象的定义和数据。 1.准备工作 (1)创建用户: Create user test Identified 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 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=test.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): 请给执行结果: 第 22 页 共 22 页 3)RMAN使用基础 测试说明 测试目的 验证RMAN备份与恢复全过程。记录整个过程的操作细节。 利用RMAN的备份与恢复可完成如下工作: (1) 数据库备份/恢复; (2) 同一主机,不同磁盘阵列,相同数据存储路径(模式)的数据迁移;(在恢复过程中改变数据存储路径/模式过程待验证) (3) 不同主机,相同操作系统、同一数据库版本之间的的数据库迁移。(不同数据库版本之间是否可利用RMAN 备份与恢复进行数据迁移待验证。) 测试环境说明 · OS:Windows XP · ORACLE VERSION: Oracle Database 10gEnterprise Edition Release 10。1。0.2。0 – Prod · ORACLE运行模式:归档模式 ORACLE数据存储:文件系统,存储于D:\oracle\product\10。1。0\oradata\orcl 数据备份过程 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_%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状态,才能进行数据库备份 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行. (2)正常关闭数据库。并删除原数据库所有文件,包括:控制文件、数据文件、日志文件。以模拟更换磁盘阵列或者文件丢失的情况。 SQL> conn / as sysdba 已连接。 SQL〉 shutdown immediate 数据库已经关闭. 已经卸载数据库. ORACLE 例程已经关闭。 SQL> host move D:\oracle\product\10。1。0\oradata\orcl D:\oracle\product\10。1。0\oradata\orcl.bak 【注意】 l 删除文件过程,将以更目录名称的方式,用以模拟新盘阵上的文件存储路径与原系统不同. 此时,重新启动数据库过程必然失败。 SQL> conn / as sysdba 已连接。 SQL〉 startup ORACLE instance started。 Total System Global Area 171966464 bytes Fixed Size 787988 bytes Variable Size 145750508 bytes Database Buffers 25165824 bytes Redo Buffers 262144 bytes ORA-00205: ?????????, ??????, ??????? 【注意】此时由于实例存在,但是database全部丢失,则INSTANCE启动成功,但是database启动失败。即可,NOMOUNT状态(只启动INSTANCE)成功;进入MOUNT状态时,由于控制文件丢失,MOUNT 失败。数据库启动过程不能继续. 数据库恢复过程 当前情况下,所有的控制文件、数据库文件、联机日志文件均全部丢失。按照数据库恢复/启动过程,应按照先恢复数据库控制文件,再恢复数据文件的步骤进行。 1。 从RMAN备份中恢复控制文件 在本例子中,RMAN备份脚本进行了控制文件的备份.所以,控制文件的恢复过程可以利用RMAN的备份完成. 此时,也存在两种情况. · RMAN设置了控制文件自动备份。 · RMAN未设置控制文件自动备份,而由RMAN脚本进行控制文件备份。如本例所示. 对于此两种情况,分别说明如下。 (1) RMAN未设置控制文件自动备份 C:\>rman nocatalog target / 恢复管理器: 版本10.1。0。2。0 - Production Copyright (c) 1995, 2004, Oracle. All rights reserved. 连接到目标数据库: ORCL (DBID=1158376346) 正在使用目标数据库控制文件替代恢复目录 RMAN〉 show all; RMAN 配置参数为: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F’; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\PRODUCT\10.1。0\DB_1\DATABASE\S NCFORCL.ORA’; # default 【注意】RMAN 未设置控制文件自动备份。此时如果RMAN 的直接恢复将不成功.如下所示。 RMAN〉 startup nomount; 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:\oracle\product\10。1.0\flash_recovery_area 用于搜索的数据库名 (或锁定名称空间): ORCL 通道 ORA_DISK_1: 在恢复区域中找到自动备份 通道 ORA_DISK_1: 已找到的自动备份: D:\ORACLE\PRODUCT\10。1.0\FLASH_RECOVERY_AREA\ ORCL\AUTOBACKUP\2007_08_14\O1_MF_S_630614292_3D31JOHN_。BKP RMAN-00571: =========================================================== RMAN—00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN—00571: =========================================================== RMAN-03002: failure of restore command at 08/15/2007 09:54:16 ORA—19504: 无法创建文件”D:\ORACLE\PRODUCT\10。1。0\ORADATA\ORCL\CONTROL01.CTL” ORA-27040: 文件创建错误, 无法创建文件 OSD-04002: 无法打开文件 O/S—Error: (OS 3) 系统找不到指定的路径. RMAN〉 restore controlfile;(语法就错误了) 启动 restore 于 15—8月 -07 使用通道 ORA_DISK_1 RMAN—00571: =========================================================== RMAN—00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of restore command at 08/15/2007 09:54:31 RMAN-06563: controlfile or SPFILE must be restored using FROM AUTOBACKUP RMAN〉 restore database;(数据库未到MOUNT状态,不能进行^_^) 启动 restore 于 15—8月 —07 使用通道 ORA_DISK_1 RMAN—00571: =========================================================== RMAN—00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN—00571: =========================================================== RMAN—03002: failure of restore command at 08/15/2007 09:56:57 ORA—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 commands RMAN—01005: syntax error: found ”identifier”: expecting one of: ”archivelog, aux iliary, allow, check, delete, from, high, noredo, noparallel, parallel, ;, skip, tablespace, test, until" RMAN—01008: the bad identifier was: using RMAN-01007: at line 1 column 18 file: standard input RMAN> restore database using backup controlfile; (数据库未到MOUNT状态,不能进行^_^) RMAN-00571: =========================================================== RMAN—00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN—00571: =========================================================== RMAN—00558: error encountered while parsing input commands RMAN—01005: syntax error: found ”identifier": expecting one of: "archivelog, cha nnel, check, controlfile, clone, database, datafile, device, from, force, high, (, preview, ;, skip, spfile, standby, tablespace, until, validate” RMAN—01008: the bad identifier was: using RMAN-01007: at line 1 column 18 file: standard input RMAN〉 由于RMAN未设置控制文件自动备份。则可以利用程序包,从备份集中恢复。如下: SQL〉 startup nomount ORACLE 例程已经启动. Total System Global Area 171966464 bytes Fixed Size 787988 bytes Variable Size 145750508 bytes Database Buffers 25165824 bytes Redo Buffers 262144 bytes SQL〉 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。restorecontrolfileto(’D:\oracle\product\10。1。0\oradata\orcl\CONTROL01.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 possible ORA—19504: failed to create file ”D:\ORACLE\PRODUCT\10.1。0\ORADATA\ORCL\CONTROL01。CTL” ORA—27040: file create error, unable to create file OSD—04002: ???????????? O/S-Error: (OS 3) ?????????????????????? ORA—06512: at "SYS。X$DBMS_BACKUP_RESTORE", line 4772 ORA—06512: at line 8 【注意】由出错了!报告无法创建指定的控制文件,是过程有错误吗?不是,是由于文件目录并不存在。(此时是测试时,故意留下的问题。还记得前面采用修改目录名的方式启动删除所有文件的步骤吗?) 创建D:\oracle\product\10。1。0\oradata\orcl目录后继续。此时该目录下无任何文件.(再留下一个问题,文件存储采用裸设备呢?) 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:\oracle\product\10.1。0\oradata\orcl\CONTROL01.CTL’ ); 8 dbms_backup_restore。restorebackuppiece('c:\DB_FULL_0JIPED0I_1_1',done =〉 done); 9 end; 10 / PL/SQL 过程已成功完成。 此时在D:\oracle\product\10.1.0\oradata\orcl目录中,可看到一个控制文件.D:\oracle\product\10。1。0\oradata\orcl\CONTROL01。CTL。 此时启动数据库试验一下。 SQL〉 startup nomount ORACLE 例程已经启动。 Total System Global Area 171966464 bytes Fixed Size 787988 bytes Variable Size 145750508 bytes Database Buffers 25165824 bytes Redo Buffers 262144 bytes SQL> alter database mount; alter database mount * 第 1 行出现错误: ORA—00205: ?????????, ??????, ??????? 有出错了!看看ORA-00205的说明 ORA-00205 error in identifying controlfile, check alert log for more info Cause: 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
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

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

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服