oracle 增量备份恢复策略(基础知识)
EXP和IMP是Oracle提供的一种逻辑备份工具。逻辑备份创建数据库对象的逻辑拷贝并存入一
个二进制转储文件。这种逻辑备份需要在数据库启动的情况下使用,
其导出实质就是读取一个数据库记录集(甚至可以包括数据字典)并将这个记录集写入一个文件,这些记录的导出与其物理位置无关,导入实质就是读取转储文件并
执行其中的命令。此备份方式是通过Oracle的实用工具export和import来实施的,
export是把数据库中的数据导出,import是把export卸出的数据导入数据库中。通过此工具可以衍生出多种功能,
比如整个数据库的备份、表结构重建、数据的传输、用户的改变等等。
Oracle Export/Import工具提供了灵活多样的功能和导出/导入模式,最常使用的三种模式是User、table和full database。除此以外,还可以在导出/导入时决定是否包含与对象有关的数据字典信息,如索引、约束、权限等等。
注意:通过逻辑备份可以备份整个数据库, 或仅备份部分重要数据。因为是逻辑上的备份,故只能用于逻辑的恢复数据, 一旦数据库被物理损坏, 导致不能启动,逻辑备份的数据不能帮助恢复数据库。
1. Export/Import的使用举例:(以下操作均为在
(1). 将一个用户的对象导入到另一个用户模式中:
把数据库中原有的用户Export至一个dmp文件(如把用户olduser的对象导出到文件olduser0701.dmp中):
$ exp sys/password file= olduser0701 owner=olduser grant=N indexes=Y rows=Y
从dmp文件中把一个用户的对象import至一个用户的模式中(从olduser0701.dmp中,把用户olduser的对象导入到用户newuser中):
$imp sys/password file=olduser0701 fromuser=olduser touser=newuser indexes=Y rows=Y
(2). 导入时避免出现ORA-00942(表或是图不存在)错误:
因为,导出是按照在数据库中对象建立的顺序进行的,从而在导入时,数据库对象之间的依赖性会引起某些先导入对象找不到其依赖对象(如view、
procedure等等),就会引起ORA-00942(表或是图不存在)错误。通常解决这种问题的方法是,做两次导入工作,第一遍导入时设置如下:
$ imp sys/password file=demo0701 full=Y commit=y rows=Y
相关文档:
Inthirties Oracle论坛日独立IP连续一周突破200 http://www.inthirties.com
也许200根本就很少,但是对于inthirties来说,已经是一个很欣慰的事叻。 再接再厉,把Inthirties Oracle论坛办成实用的学习Oracle的论坛。 ......
ORACLE的锁机制
昨天去一个公司面试,问到Oracle的封锁机制,呵呵,理论上的问题好久都没有学习了,书本的东西也差不多都还给了大学的老师。回来翻了一下书本,找到了关于这部分知识的说明,贴出来供大学参考。(现在的公司, ......
* 如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约束,但如果某个约束作用于多个字段,
必须在表级定义约束
* 在定义约束时可以通过CONSTRAINT关键字为约束命名,如果没有指定,ORACLE将自动为约束建立默认的名称
定义primary key约束(单个字段)
create t ......
一次奇怪的数据库启动和关闭经历。
SQL> conn / as sysdba
Connected to an idle instance.
SQL> shutdown immediate
ORA-24324: service handle not initialized
ORA-24323: value not allowed
ORA-01089: immediate shutdown in progress - no operations are permitted
SQL> conn / as sysdba
Co ......