Oracle数据库导出与导入
导出
含空表导出:
- 找出对应库的空表(数据库执行)
select ‘alter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0 - 执行这条SQL的结果集(全部)(数据库执行)
alter table SYS_ROLE_DATARULE allocate extent;
alter table TB_PROC_LOG allocate extent; … - 导出dmp文件(cmd执行)
exp 库名/密码@实例名 file=路径.dmp owner=库名 (full=y(完全导出))
导入
新建表空间以及用户,需与导出用户所在表空间以及用户名保持一致;
创建表空间:
--1. 创建指定大小的表空间
--create tablespace 表空间名称 datafile '表空间地址' size 2000M;
-- 如:
create tablespace TBS datafile 'D:\Oracle\OracleDatabase19c\oradata\ORCL\TBS.dbf' size 2000M;
--2. 创建可扩容的表空间
--create smallfile tablespace 表空间名称 datafile '表空间地址' size 100M autoextend on next 10m maxsize unlimited nologging extent management local segment space management auto default nocompress;
-- 如:
create smallfile tablespace TBS datafile 'D:\Oracle\OracleDatabase19c\oradata\ORCL\TBS.dbf' size 100M autoextend on next 10m maxsize unlimited nologging extent management local segment space management auto default nocompress;
创建用户并指定表空间、分配权限
-- Create the user
create user 用户名
identified by "密码"
default tablespace 表空间名称
temporary tablespace TEMP;
-- Grant/Revoke role privileges
grant dba to 用户名;
grant resource to 用户名;
grant connect to 用户名;
多个dmp文件导入
- 将多个dmp文件放入Oracle\admin\orcl\dpdump文件夹下;
- 执行:
impdp 库名/密码@实例名 dumpfile=*,* ignore=y(不同的dmp文件之间用逗号隔开);
单个dmp文件导入
- imp 库名/密码@实例名 file=路径.dmp full=y
注意:如果导入时,表已存在,可加上ignore=y忽略
踩坑记录
- oracle错误959:缺少对应的表空间;
- 由于 ORACLE 错误 12899 而拒绝行
提示字段太长:可能是由于数据库字符集不对
解决办法 - ORA-01658无法为表空间中的段创建INITIAL区,可能是因为表空间不足导致的
解决办法 - 导入成功后使用Hibernate链接时报错:
ORA-28040 没有匹配的验证协议
找到oracle安装包解压路径下的network\admin\sqlnet.ora,
添加
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
创建删除表空间SQL
--删除空的表空间,但是不包含物理文件
drop tablespace tablespace_name;
--删除非空表空间,但是不包含物理文件
drop tablespace tablespace_name including contents;
--删除空表空间,包含物理文件
drop tablespace tablespace_name including datafiles;
--删除非空表空间,包含物理文件
drop tablespace tablespace_name including contents and datafiles;
--如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTS
drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;