备份恢复实例
- 格式:doc
- 大小:712.10 KB
- 文档页数:20
select instance_name,status from v$instance;冷备份恢复对数据库进行物理备份(冷备份),并恢复被用户误删除的数据。
(1)以管理员身份登录connect / as sysdba;(2)确定数据库各种物理文件select name from v$controlfileunion allselect member from v$logfileunion allselect name from v$datafileunion allselect name from v$tempfile(3)关闭数据库shutdown immediate;(4)将数据库中所有文件拷贝到d:\backup复制所有文件进行保存注意两个控制文件互为镜像文件都需要进行备份否则恢复时出现不一致的情况(上课恢复出现问题的主要原因就是仅恢复一个控制文件出现不一致情况)(5)模拟误删除操作系统下将数据库中users01.dbf删除(6)以管理员身份登录,并启动数据库Startup(7)关闭数据库(8)将d:\backup目录中的所有文件拷回数据库目录(9)以管理员身份登录,并启动数据库归档模式下数据库的完全恢复数据库进行物理备份(热备份),并恢复被用户误删除的数据。
(1)以管理员身份登录数据库,并查看当前归档模式conn / as sysdba;archive log list;(2)如果当前数据库运行在非归档模式下,首先关闭数据库,把数据库启动到mount状态,然后将数据库修改为归档模式,并打开数据库shutdown immediate;startup mount;alter database archivelog;alter database open;3)备份users表空间alter tablespace users begin backup;4) 拷贝users表空间下的数据文件USERS01.DBF到d:\backup2。
5)结束users表空间的备份alter tablespace users end backup;6)归档当前重做日志文件alter system switch logfile;7)以SCOTT身份登录数据库,并创建student表(给出相应操作)8) 切换到管理员账户,归档当前重做日志文件alter system switch logfile;9)关闭数据库(给出相应操作)10)模拟误删除操作系统中删除USERS01.DBF11)以管理员身份登录,并启动数据库(给出错误信息)12)关闭数据库13)将d:\backup2目录中的文件拷回数据库目录14)以管理员身份登录,并将数据库启动到mount状态15)执行数据库恢复Recover database;16)将数据库打开17)切换到SCOTT账户,查看student表是否恢复归档模式下数据库的不完全恢复对数据库进行物理备份,并执行基于时间的不完全恢复,以恢复被用户误删除的数据。
(1)以管理员身份登录数据库,并查看当前归档模式(2)如果当前数据库运行在非归档模式下,首先关闭数据库,把数据库启动到mount状态,然后将数据库修改为归档模式,关闭数据库步骤同上,省略(3)备份数据库中的的所有数据文件,将其拷贝到d:\backup3。
(在进行数据库不完全恢复之前,首先确保对数据库进行了完全备份)(4)启动数据库(5)修改当前会话的时间格式alter session set nls_date_format='yyyy-mm-dd hh24:mi;ss';(6)查询当前时间Select sysdate from dual;(7)以SCOTT身份登录数据库,删除emp表(给出相应操作)(8)切换到管理员账户,归档当前重做日志文件alter system switch logfile;(9)关闭数据库(给出相应操作)(10) 将d:\backup3目录中的备份文件拷回数据库目录(11)以管理员身份登录,并将数据库启动到mount状态(12)执行数据库恢复Recover database until time ‘删除表之前的时间’;(13)将数据库打开Alter database open resetlogs;(14)切换到SCOTT账户,查看emp表是否恢复逻辑备份恢复ExpdpExpdp help=y;需要注意的是expdp工具只能将导出的转储文件存放在directory对象对应的os目录中,而不能直接指定转储文件所在的os路径。
因此在使用expdp工具前,必须首先建立directory 对象,并且为数据库用户授予使用directory对象的权限create directory dump_dir as 'd:\dump';grant read,write on directory dump_dir to scott;导出表expdp scott/oracle directory=dump_dir dumpfile=tab.dmp tables=emp,dept要在d盘建立相应的文件夹导出模式导出模式时要求用户必须具有DBA或exp_full_database角色expdp system/oracle directory = dump_dir dumpfile=schema.dmp schemas = scott导出表空间Select table_name from dba_data_files;expdp system/oracle directory = dump_dir dumpfile = tablespace.dmp tablespaces = users导出全数据库expdp system/oracle directory=dump_dir dumpfile=fulldatabase.dmp full=y时间很长要有心理准备EXPDP命令参数—— CONTENT该参数用于指定要导出的内容,默认值为ALL,语法如下:Content={all | data_only | metadata_only}all:将导出对象定义及其所有数据;data_only:只导出对象数据;metadata_only:只导出对象定义。
只导出scott模式下的对象数据expdp scott/oracle directory=dump_dir dumpfile=content.dmp content=data_only EXPDP命令参数—— QUERY该参数用于指定过滤导出数据的WHERE条件。
语法如下:query=[schema.] [table_name:] query_clauseschema:用于指定模式名;table_name:用于指定表名;query_clause:用于指定条件限制子句。
需要注意,query参数不能与connect=metadata_only、extimate_only、transprot_tablespaces 等参数同时使用。
expdp scott/oracle directory=dump_dir dumpfile=query.dmp tables=dept query='where deptno=10'EXPDP命令参数—— DIRECTORY该参数指定转储文件和日志文件所在的目录。
语法如下:directory=directory_object其中,directory_object用于指定目录对象的名称。
需要注意,目录对象是使用create directory语句建立的对象,而不是普通的磁盘目录。
EXPDP命令参数—— DUMPFILE该参数用于指定转储文件的名称,默认名称为expdat.dmp。
语法如下:dumpfile=[directory_object:]file_name[,…]director_object:用于指定目录对象名。
file_name:用于指定转储文件名。
EXPDP命令参数—— FULL该参数用于指定数据库模式导出,默认为N。
语法如下:full={y | n}当设置该选项为y时,表示执行数据库导出。
EXPDP命令参数—— LOGFILE该参数用于指定导出日志文件的名称,默认名称为export.log。
语法如下:logfile=[directory_object:]file_nameEXPDP命令参数—— STA TUS该参数用于指定显示导出作业进程的详细状态,默认值为0,语法如下:status=integerinteger用于指定显示导出作业状态的时间间隔,单位为秒。
指定该参数后,每隔特定时间间隔会显示作业完成的百分比。
EXPDP命令参数—— TABLES该参数用于指定表模式导出。
语法如下:Tables=[schema_name.]table_name[:partition_name][,…]schema_name:用于指定模式名,table_name:用于指定要导出的表名,partition_name:用于指定要导出的分区名。
EXPDP命令参数—— TABLESPACES该参数用于指定要导出表空间列表。
Impdp与EXPDP类似,调用IMPDP时只需要在命令提示符窗口中输入IMPDP命令即可。
同样,IMPDP也可以进行4种类型的导入操作:导入表、导入用户模式、导入表空间和导入全数据库。
导入表普通用户只能将表导入到自己的模式,若以其他用户身份导入表,要求该用户具有imp_full_database角色和dba角色。
导入表时,既可以将表导入到源模式中,也可以将表导入到其他模式中。
impdp system/oracle directory=dump_dir dumpfile=tab.dmp tables=scott.dept,scott.emp remap_schema=scott:newuser如果要将表导入到其他模式中,需要指定remap_schema参数新建用户newuserConnect,resourceNewuser用户登录Select table_name from user_tables;导入模式导入模式需要使用schemas参数impdp system/oracle directory=dump_dir dumpfile=schema.dmp schemas=scott remap_schema=scott:newuser;导入表空间将users表空间中所有对象导入到当前数据库中impdp system/oracle directory=dump_dir dumpfile=tablespace.dmp tablespaces=users导入全数据库将存放在转储文件中的所有数据对象及相关数据装载到数据库中,导入数据库是使用full参数设置impdp system/oracle directory=dump_dir dumpfile=fulldatabase.dmp full=yIMPDP命令参数——REMAP_SCHEMA该参数用于将源模式中的所有对象转载到目标模式中,如法如下:remap_schema=source_schema:target_schemasource_schema:源模式。