1. 数据导出
1.1 使用exp命令导出dmp文件
exp 用户名/口令@数据库名 file=导出的文件存储路径
导出整个库:
exp username/password@localhost:1521/orcl file=D:\test.dmp
SID包括IP、端口和数据库名;
如果是本地导出,可以直接使用数据库名,如:
exp username/password@orcl file=D:\test.dmp
导出数据库中的某张表:
exp username/password@localhost:1521/orcl file=D:\test.dmp tables=(T_TICKET,T_TICKET_PRO)
1.2 使用expdp导出
创建输出目录
# dpdata1 创建的目录对应的名字(并不会创建实际目录)
SQL> create directory testdir as 'd:\testOracle';
# 查看是否创建成功
SQL> select * from dba_directories;
# 将这个目录指给用户(test)
SQL> grant read,write on directory testdir to test;
执行完成后手动创建d:\testOracle目录。
进行导出
# directory创建的目录对应名字 dumpfile dmp文件名 logfile 日志文件名 tables 导出的表名
expdp username/password@localhost:1521orcl directory=testdir dumpfile=test.dmp logfile=test.log tables=T_TICKET,T_TICKET_PRO
2. 数据导入
2.1 准备工作(新建用户)
默认表空间用“USERS”;临时表空间用“TEMP”;
成员选择“DBA”
服务器权限选择“UNLIMITED TABLESPACE”
2.2 使用imp导入
如果是exp导出的数据则使用imp进行导入!
使用sql查询DATA_PUMP_DIR目录
select * from dba_directories;
将备份好的dmp文件放入该目录下
使用imp进行导入:
imp username/password@localhost:1521/orcl fromuser=user1 touser=user2 file=C:\oracle2\admin\orcl\dpdump\test.dmp statistics=none
2.3 使用impdp导入
如果是expdp导出的数据则使用impdp进行导入!
impdp username/username@localhost:1521/orcl fromuser=user1 touser=user2 file=test.dmp statistics=none full=y
3. 问题排查
3.1 ORA-01017: 用户名/口令无效; 登录被拒绝
我使用的时19c这个版本,用户以C##开头,出现了这个问题。
解决办法:
使用PLSQL工具多次登录后出现账户被锁定,然后用一个有dba角色的账号登录进去:
解锁用户,并修改密码,然后保存:
再次登录,发现可以登录了。