内容与要求
一、 内容与步骤
(注意这里许多步骤需要同学们查资料,理解并消化后才能完成)
1、数据库创建
(1) 安装Oralce11g;
1系统用户登陆
(2) 创建至少两个以上用户;用户统一为个人姓名拼音首字母加1或2,如张国强,ZGQ1、ZGQ2;
2创建用户表空间
4创建用户QC1和QC2
5grant权限给两个用户
(3) 每个用户下建立三个以上表(表名不能取table1/2/3之类),并插入30条以上记录;
6qc1创三个表
8qc1插入teacher表数据
7qc1插入student表数据
9qc1插入teacher2student表数据
12qc2创建三个表
13qc2每个表个插入30条数据
(4) 每个用户下创建至少一个存储过程,一个触发器(存储过程与触发器的名称不能是procedure1,trigger1之类)。
10qc1存储过程hello
11qc1创建触发器returnInsertMessage
11qc1创建触发器returnInsertMessage
14qc2创建存储过程和触发器
2、逻辑备份与恢复
(1)用exp或expdp 导出某个用户;
15qc1的exp
(2)删除该用户;
16删除qc1
(3)重新创建删除的用户(同名),并赋予相同的权限;
17重新创建qc1
18对qc1的重新授权
(5) 用imp或impdp导入该用户的数据,并查询数据表,存储过程,触发器等是否与之前相同;
19将备份文件backup_qc1导入给qc1
20qc1导入imp后,可见触发器,trigger一致
(6) 用imp或impdp将导出的数据导入另一个用户中,并查询数据表,存储过程,
21qc2导入另一个用户
(7) 触发器等是否在该用户下存在。
由题(6)可见,存储过程,触发器等存在与qc2
3、冷备份与恢复
(1)关闭数据库(SHUTDOWN IMMEDIATE);
(2)将所有数据文件、控制文件、联机重做日志文件拷贝到另一目录保存;
(3)重新启动数据库(STARTUP);
(4)进行数据库更新操作,如删除若干记录,新增若干记录;
(5)关闭数据库(SHUTDOWN IMMEDIATE);
(6)将之前保存的所有数据文件、控制文件、联机重做日志文件拷贝到原来位置,覆盖原来的文件;
(8) 重新启动数据库(STARTUP);
(9) 查询数据,看看更新后的数据是否存在。
后来我发现是另一个文件夹下的controller2.ctl没有复制下来,根据数据库原理,我将controller1.ctl重命名并覆盖。
数据没有保留
4、基于日志的备份与恢复(注意这里只是一个简单的示例,实际的可能会很复杂)
(1)将数据库设置为归档日志模式;
(2)关闭数据库(SHUTDOWN IMMEDIATE);
(3)冷备份数据库,将所有数据文件、控制文件、联机重做日志文件拷贝到另一目录保存;
(4)重新启动数据库(STARTUP);
(5)进行数据库更新操作,如删除若干记录,新增若干记录;
更新数据库数据
(6)SQL>ALTER DATABASEDATAFILE ‘d:\oracle\oracledata\orcl\users01.dbf’ OFFLINE;(将上述数据文件离线,注意路径取实际安装的数据库的路径)
(7)删除USERS.DBF数据文件;
(略)
(8)将之前保存的USERS.DBF数据文件拷贝到原来位置,覆盖原来的文件;
(9)执行数据库恢复命令
SQL>RECOVER DATAFILE ‘d:\oracle\oracledata\orcl\users01.dbf’;
(10)重新设置数据文件在线
SQL>ALTER DATABASEDATAFILE ‘d:\oracle\oracledata\orcl\users01.dbf’ ONLINE;;
(10)查询数据,看看更新后的数据是否存在。
可见后来插入的数据存在于数据库中