尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

WindowsOracle11g恢复DMP备份文件

WindowsOracle11g恢复DMP备份文件 关键提醒针对Windows Oracle 11g权限要求最前面的连接用户选项1最好拥有DBA角色否则可能会报权限不足。建议直接用system账户连接。用户必须先存在TOUSER本地目标用户必须在本地数据库中已提前创建好并且拥有足够的表空间配额否则导入会报错。如果忘记了源库用户名FROMUSER可以用我之前提到的imp ... showy查看日志日志开头会显示导出时的用户名。如果报错”IMP-00038无法转换为环境字符集句柄“,则说明.DMP文件是用数据泵expdp命令导出的即不能用imp命令进行导入先说最终命令impdp SYSTEM/密码orcl DIRECTORYDMP_DIR DUMPFILELIMS3_DATA_20260701_1150.DMP REMAP_SCHEMALIMS3_DATA:LIMS3_DATA REMAP_TABLESPACELIMS3_DATA:USERS --TABLE_EXISTS_ACTIONREPLACE LOGFILEimpdp_lims3.log前提条件问题一不知道用户名和密码 以及Oracle实例名称本地数据库环境你当前要导入数据的目标数据库的用户名和密码。绝对不是生成DMP文件那台数据库的用户名和密码那个用FROMUSER参数来指定以管理员身份打开“命令提示符CMD”用sysdba账号登入数据库sqlplus / as sysdba在SQL提示符下输入如下命令重置SYSTEM用户的密码ALTER USER SYSTEM IDENTIFIED BY NewPassword123;在 Oracle 中默认情况下对象名用户名、表名是不区分大小写的除非你用双引号强制指定问题二不知道DMP_DIR执行-- 创建一个名为 DMP_DIR 的目录指向你的DMP文件所在的文件夹 CREATE DIRECTORY DMP_DIR AS D:\Databack\20260701\limsbak; -- 将对该目录的读写权限授予你用来导入的用户这里是 lims3_data GRANT READ, WRITE ON DIRECTORY DMP_DIR TO lims3_data;如果出现ORA-00959: 表空间 LIMS3_DATA 不存在则表示需要在命令中声明REMAP_TABLESPACE把原属于 LIMS3_DATA 表空间的所有对象全部建在本地已有的 USERS表空间里如果你不确定本地有哪些表空间可以用sqlplus / as sysdba登录后执行SELECT TABLESPACE_NAME FROM DBA_TABLESPACES;查看。通常系统自带的有USERS、SYSAUX等任选一个非系统核心的即可。问题3如果导入过程中出现报告“ORA-39171: 作业出现可恢复的等待。ORA-01653: 表 LIMS3_DATA.LOG_MESSAGE 无法通过 8192 (在表空间 USERS 中) 扩展”那么说明需要为USERS表空间增加存储空间。由于导入作业已经超时失败需要先解决空间问题然后重新执行导入。步骤一为USERS表空间增加空间登录到数据库以具有ALTER TABLESPACE权限的用户如SYS或SYSTEM执行以下操作之一方法一为现有数据文件开启自动扩展此方法在现有数据文件空间用尽时会自动增加大小SELECT FILE_NAME FROM DBA_DATA_FILES WHERE TABLESPACE_NAME USERS; ALTER DATABASE DATAFILE 数据文件完整路径 AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;方法二添加新的数据文件推荐此方法为表空间增加一个全新的数据文件更为稳妥。ALTER TABLESPACE USERS ADD DATAFILE 新数据文件完整路径 SIZE 20480M AUTOEXTEND ON NEXT 20480M MAXSIZE UNLIMITED;我的环境最大是20480M.导入完后可以使用如下命令查看 各数据表有多少条数据SELECT table_name, num_rows FROM user_tables WHERE owner LIMS3_DATA ORDER BY table_name;也可以单独查看每个表有多少行数据SELECT COUNT(*) FROM your_table.;
返回列表