建立研發庫
一、伺服器空間不足時需要清理無用表空間,需要先備份:
查詢占用磁盤空間:
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024*1024)), 0) ts_size
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;
注:需要清理的表空間一定要與相關研發負責人确認是否可以清理!
1、先導出檔案;
expdp zzbank/[email protected] TABLESPACES=ZZBANK directory=DUMPDIR dumpfile =zzbank_20210420.dmp logfile=expdp_test1.log;
2、壓縮檔案;
tar -czvf 70.168_zzbank_20210420_expdp.dmp.tar.gz zzbank_20210420.dmp
3、存放資料庫備份:
位址:192.168.70.202 root/joyin!2345 /home/backup
指令:scp 70.168_zzbank_20210420_expdp.dmp.tar.gz [email protected]:/home/backup
4、删除原有表空間及資料檔案,釋放磁盤空間;
DROP TABLESPACE ZZBANK INCLUDING CONTENTS AND DATAFILES;
二、複制測試庫建立研發庫
1、登入對應測試伺服器;
伺服器資訊:伺服器詳細資訊
2、查詢測試伺服器所需的導出檔案路徑:
(主要是用來存放expdp指令導出的資料檔案,需要用directory_name替換expdp指令裡的directory參數)
SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;
3、登入測試資料庫所在伺服器;
4、切換oracle 使用者;
su oracle
4、填寫下面資料泵導出指令并執行;
--按表空間導出
expdp qdabstest/[email protected] TABLESPACES=ABSTEST directory=ABSBANKNEW dumpfile =qdabstest_20210420.dmp logfile=expdp_test1.log;
注:如果報expdp指令不存在,執行
source ~/.bash_profile
5、expdp指令執行完畢,找到檔案存放位址(第2步裡的路徑);
6、從測試伺服器轉移檔案到目标研發伺服器;
scp /home/oracle/movedata/dmp/qdabstest_20210420.dmp [email protected]:/home/oracle/app/oracle/oradata/dump
注:過程中需要輸入研發庫使用者密碼
7、在PL/SQL、Navicat等資料庫聯接工具中,連接配接目标伺服器192.168.70.168建立使用者及表空間:
create tablespace qdabs_dev logging datafile '/home/oracle/app/oracle/oradata/orcl/qdabs_dev.DBF' size 200m autoextend on next 50m maxsize unlimited;
drop user qdabs_dev cascade;
create user qdabs_dev identified by qdabs_dev ;
alter user qdabs_dev identified by qdabs_dev default tablespace qdabs_dev ;
grant dba to qdabs_dev ;
--空間不夠,增加資料檔案
ALTER TABLESPACE qdabs_dev ADD DATAFILE
'/home/oracle/app/oracle/oradata/orcl/qdabs_dev02.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE unlimited;
或登入目标伺服器建立使用者及空間
教程:https://blog.csdn.net/guofanggang/article/details/106052440
8、登入目标伺服器192.168.70.168
9、root使用者下打開檔案存放位址(scp指令傳送的路徑),并修改檔案所屬使用者(防止執行impdp指令時,oracle使用者對檔案無權限)
chown oracle:oinstall /home/oracle/app/oracle/oradata/dump/qdabstest_20210420.dmp
10、切換oracle 使用者;
su oracle
11、在目标伺服器執行插入;
impdp qdabs_dev/qdabs_dev directory=DUMPDIR dumpfile=qdabstest_20210420.dmp remap_schema=qdabstest:qdabs_dev remap_tablespace=ABSTEST:qdabs_dev;
注:如果報impdp 指令不存在,執行
source ~/.bash_profile