- 数据库恢复
- 数据恢复前准备工作
- 数据库基础环境准备
数据恢复目的机器一台,安装ORACLE数据库,建立空数据库并将字符集配置为与待备份数据字符集一致(正常显示中文的字符集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
-
- 数据库备份文件准备
准备待备份数据文件(DMP文件,若有对应的日志文件更好),记录待备份数据文件放置位置全路径FilePath(待恢复数据在Oracle中的逻辑目录);
- 数据恢复
- 检查逻辑目录
检查逻辑目录是否存在:SQL语句:select * from dba_directories;
若逻辑目录不存在,则创建该逻辑目录:SQL语句:create directorty [逻辑目录名称] as ‘[待备份数据所在目录FilePath]’
-
- 创建表空间
使用oracle数据库管理员登录并创建新的空表空间(表空间名称要与待恢复数据的表空间名称一致)
Sql语句:create tablespace [表空间名] datafile ‘[表空间物理数据文件全路径]’ size 2000M autoextend on next 300M maxsize unlimited;
-
- 创建用户
使用oracle数据库管理员登录并创建新的用户名(如能与待恢复数据所属的用户名一致更好,不一致也可恢复数据)
Sql语句:create user [用户名] identified by [用户密码] default tablespace [新创建的表空间名];
-
- 用户授权
将逻辑目录的读写权限授权给新建用户。
SQL语句:grant read,write on directory [逻辑目录名] to [用户名];
给用户授予操作数据库更新表空间的权限。
SQL语句:grant dba,resource,unlimited tablespace to [用户名]
-
- 调用数据泵恢复文件
数据恢复命令是在cmd控制台输入,并非sql语句
若新建用户名与原用户名一致:
恢复SQL:impdp [用户名]/[密码]@ip地址/[实例名] directory=[逻辑目录] schames=[用户名] dumpfile=[待恢复数据dmp文件全程] logfile=[impdp操作日志名称]
1)导入模式(从模式username1导入到模式username1)
impdp username1/password@127.0.0.1/orcl dumpfile=expdp.dmp directory=dump_dir schemas=username1 logfile=impdp.log;
2)导入表(从username1中把表dept和emp导入到system用户中)
impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp tables=username1.dept, username1.emp remap_schema= username1:system logfile=impdp.log table_exists_action=replace (表空间已存在则替换);
3)导入表空间
impdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example logfile=impdp.log;
4)导入整个数据库
impdb system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y logfile=impdp.log;