1、环境
数据库: 127.0.0.1:1521/PDBJN
用户名/密码 :ELEUSER/W4R8cwwO2Yu
数据库表空间:BUSINESS_HB
备份文件:jnhb_20211130.dmp
2、备份
-- 全表备份
exp ELEUSER/W4R8cwwO2Yu@127.0.0.1:1521/PDBJN file=jnhb_20211130.dmp full=y
-- 指定表备份
exp ELEUSER/W4R8cwwO2Yu@127.0.0.1:1521/PDBJN file=jnhb_20211130.dmp tables=NET_PORT,NET_CAP_PORT_2022_01,NET_CAP_PORT_2022_02
-- 如果密码中有@特殊符号,要加引号,例如
expdp 'idc_dbms/"Jlidc@2021"'@10.**.*.***:21521/orcl dumpfile=idc_dbms_20220210.dmp tables=NET_PORT,NET_CAP_PORT_2022_01,NET_CAP_PORT_2022_02
3、还原
-- 将刚刚备份的文件放在对应的位置,我这里放在/home/oracle/u01/app/oracle/admin/jnhbj/dpdump/D318100D28584959E055000000000001 -- 切换用户 su - oracle -- 进入备份文件的路径 cd /home/oracle/u01/app/oracle/admin/jnhbj/dpdump/D318100D28584959E055000000000001 -- 还原 imp ELEUSER/W4R8cwwO2Yu@127.0.0.1:1521/PDBJN file=jnhb_20211130.dmp fromuser=ELEUSER ignore=y
-- 如果库的用户和表空间不同,要指定表空间还原,例如
impdp 'idc_dbms_test/"Zxit@2018"'@192.168.0.***:1521/orcl dumpfile=idc_dbms_20220210.dmp ramap_schema=idc_dbms:jlidc_dbms_test remap_tablespace=idc_dbms:jlidc_dbms_test table_exists_action=replace
4、解决报错ORA-01950: no privileges on tablespace 'BUSINESS_HB'
-- 报错ORA-01950: no privileges on tablespace 'BUSINESS_HB',分析为表空间'BUSINESS_HB'的配额不足,我们将它设置为自动扩容 -- 进入到sql模式 sqlplus / as sysdba -- 查看实例 show pdbs; -- 进入实例 alter session set container=PDBJN; -- 查看表空间的文件为/home/oracle/u01/app/oracle/oradata/JNHBJ/business.dbf select tablespace_name,file_name,autoextensible from dba_data_files; -- 修改表空间BUSINESS_HB对应的文件为自动扩容 alter database datafile '/home/oracle/u01/app/oracle/oradata/JNHBJ/business.dbf' autoextend on;
-- 每个表空间文件最大扩容20G,没有了则需要新增
ALTER TABLESPACE IDC_DBMS ADD DATAFILE '/home/app/oracle/oradata/orcl/idc_dbms_0218.dbf' SIZE 1G AUTOEXTEND on next 1G maxsize unlimited;
5、验证
--重复步骤3