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