(注意这里许多步骤需要同学们查资料理解并消化后才能完成)
(3) 每个用户下建立三个以上表,并插入30条以上记录;
(4) 每个用户下创建至少一个存储过程一个触發器。
(1)用exp或expdp 导出某个用户;
(3)重新创建删除的用户(同名)并赋予相同的权限;
(4)用imp或impdp导入该用户的数据,并查询数据表存儲过程,触发器等是否与之前相同;
(5)用imp或impdp将导出的数据导入另一个用户中并查询数据表,存储过程触发器等是否在该用户下存在。
(2)将所有数据文件、控制文件、联机重做日志文件拷贝到另一目录保存;
(3)重新启动数据库(STARTUP);
(4)进行数据库更新操作如删除若干记录,新增若干记录;
(6)将之前保存的所有数据文件、控制文件、联机重做日志文件拷贝到原来位置覆盖原来的文件;
(7)重噺启动数据库(STARTUP);
(8)查询数据,看看更新后的数据是否存在
4、基于日志的备份与恢复(注意这里只是一个简单的示例,实际的可能會很复杂)
(1)将数据库设置为归档日志模式;
(3)冷备份数据库将所有数据文件、控制文件、联机重做日志文件拷贝到另一目录保存;
(4)重新启动数据库(STARTUP);
(5)进行数据库更新操作,如删除若干记录新增若干记录;
(8)将之前保存的USERS.DBF数据文件拷贝到原来位置,覆盖原来的文件;
(9)执行数据库恢复命令
(10)重新设置数据文件在线
(11)查询数据看看更新后的数据是否存在。
下边为大致过程(21M滴(*^__^*) 嘻嘻……图):
输入数据库名和sid默认两者相同
创建密码,也可选下边创建同一密码
根据需要选择是否添加示例方案
内存练习用的,默認就行了
这里可以看到数据库中的控制文件(默认两个)日志文件(3个)数据文件位置(6个),先记下来以后用得着,
点完成开始创建数据库数据库脚本大概是方便以后再创建同样数据库的吧。
可以看到会启动新的服务
创建完成,可以选择解锁账户当然以后也可鉯解锁,这里我们暂时不操作直接退出。
点左边有个加号的绿色图标创建连接连接名可以随便起,sid就是刚才上边创建数据库时我们输叺的那个密码也是,其他默认就行完了,可以点测试下能不能连接这里没问题,再连接。
输入密码和选择表空间
在SQL选项卡中可鉯看到我们选的操作变成了SQL语句,点应用就开始执行这些语句了
先新建几张表,可以在命令窗口中写SQL语句也可以在表文件夹上右键->新建…
插入数十条SQL语句,这里我一条一条的插入
编写一个简单的存储过程。
执行存储过程成功返回当前时间。
编写一个触发器在往student表Φ插入数据之前检测年龄是否合法,入不合法则拒绝插入数据
年龄合法,成功插入数据
可以在表中看到插入的数据。
年龄不合法插叺数据失败。
年龄不合法插入数据失败。
用exp命令导出用户myuser01的所有对象
exp命令,其中systemASD1244是system密码这里以system用户导出数据,owener表示要导出所有对象的用戶file参数表示导出的文件位置,当然以用户myuser01导出也可以已system用户导出的数据貌似后边只能以system用户身份导入了
删除用户及其数据,然后再创建同名用户授予相同权限,可以看到新创建的用户表文件夹中不存在表
用imp导入该用户的数据。可以看到数据表,存储过程触发器等是否与之前相同;
用imp或impdp将导出的数据导入另一个用户myuser02中。
imp命令google一下就知道了百度两下也可以
可以看到myuser01的数据表,存储过程触发器等茬该用户myuser02下存在。
将所有数据文件、控制文件(这里是控制文件1)、联机重做日志文件拷贝到另一目录保存为了方便后续试验,暂时放茬同一目录下不同文件夹里边
保存控制文件2在同一目录下,这里只是为了试验方便实际应该存在不同磁盘或者其他硬盘中。
重新启动數据库并把myuser01的所有表的大部分记录都删除只留下一条记录。
将之前保存的所有数据文件、控制文件、联机重做日志文件拷贝到原来位置覆盖原来的文件。
重新启动数据库后查看更新后的数据,发现回复都删除之前的状态了
这里插点小说明,之前的控制文件2没更改洏把其他数据文件,控制文件日志文件都更改,重新启动数据库时显示如下这里要特别注意下,因为控制文件2位置与其他文件位置不哃了不要忘了备份。
4、基于日志的备份与恢复
将数据库设置为归档日志模式
关闭数据库并冷备份数据库,重启数据库
把用户myuser01所有表嘚记录都删除得只剩下一条。
(其实再上边步骤之后应该再插入几条数据更好的看到效果)
删除USERS01.DBF数据文件,说正在使用中是不是是不是苐六七步反了
最后原来的数据不存在了,说明是恢复到最近的状态了(跟步骤三对比?)。
成(不一定是DBA(数据库管理员)来干,中尛公司可能没有DBA)
优点:封装了导入导出命令,无需每次都手动输入命令方便快捷,提高效率
缺点:长时间应用会对其产生依赖,降低对代码执行原理的理解
目标数据库:数据即将导入的数据库(一般是项目上正式数据库);
源数据库:数据导出的数据库(一般是项目上的测试数據库);
1.目标数据库要与源数据库有着名称相同的表空间。
2.目标数据在进行导入时用户名尽量相同(这样保证用户的权限级别相同)。
3.目标数据庫每次在进行数据导入前应做好数据备份,以防数据丢失
4.使用数据泵时,一定要现在服务器端建立可用的逻辑目录,并检查是否可用
5.弄清是导入导出到相同版本还是不同版本(oracle新建数据库10g版本与oracle新建数据库11g版本)。
6.目标数据导入前,弄清楚是数据覆盖(替换),还是仅插入新数据或替换部分数据表
7.确定目标数据库磁盘空间是否足够容纳新数据,是否需要扩充表空间
8.导入导出时注意字符集是否相同,一般oracle新建数据庫数据库的字符集只有一个并且固定,一般不改变
Sql格式:.sql格式的文件,可用文本编辑器查看通用性比较好,效率不如第一种
适合尛数据量导入导出。尤其注意的是表中不能有大字段 (blob,clob,long)如果有,会报错;
导入导出不能用文本编辑器查看;
四、二者的导入导出方法:
导出为sql格式,如下图:
导出为pde格式如下图:
或者导入完成就不要停止程序。
提示:创建数据库,表空间这里略过本文主要讨论数据嘚导入导出,如果对此感觉稍有遗漏尽请见谅。由于水平有限本文档仅提供参考。如代码有错误之处请见谅。如果有更好的开发经驗感谢回复。谢谢观看!!!;
或者是用RMAN备份1653备份的手段很多,甚至版存储过程都权可以辅助备份
如果是不能直接通过SQL*PLUS连接数据库。(本地客户端就没用了)
方法一:登录上 2008 的远程终端用oracle新建数据库客户端程序做 EXP导出,然后再通过FTP等方法传回本地或者放在WEB服务器的目录下,用HTTP下载(这个有安全风险)
方法二:自己写应用程序部署到服务器上,通过服务器应用程序访问数据库执行备份工作。
你对这个回答的评价是
LZ要好好学习一下oracle新建数据库数据库的备份与恢复
上面二位说得都对,可是如果伱都不晓得人家在讲什么,再对也白搭呵呵
你对这个回答的评价是?
本回答由上海菱威深信息技术有限公司提供
你对这个回答的评价是
下载百度知道APP,抢鲜体验
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。