搞某一大專案的效能測試,將Oracle資料庫dmp檔案(211G)匯入效能測試環境。
因為Oracle部署方式為rac,資料儲存到共用磁碟。但由於對rac瞭解不足,這個過程中犯了兩個錯誤:
① 表空間、臨時表空間沒有建立到共用磁碟,而是建立到了資料庫服務本地磁碟;
② 發現應該建立到共用磁碟後,直接物理刪除了本地磁碟的表空間檔案(會導致資料庫奔潰),應該通過sql命令刪除。
以下應是規範的操作步驟:
1. 建立表空間前,先檢視表空間所在目錄
--檢視表空間目錄 select name from v$datafile;
--檢視所有臨時表空間名字及檔名 select f.file#,t.ts#,f.name "File",t.name "Tablespace" from v$tempfile f,V$tablespace t where f.ts# = t.ts#;
2. 建立使用者表空間、使用者及密碼
表空間、臨時表空間目錄應與上面查詢出的目錄一致。
--建立使用者 create tablespace cwy_XXX0608 datafile '+DATA/ORCL/DATAFILE/cwy_XXX0608.dbf' size 20480M autoextend on next 1024M maxsize unlimited extent management local; create temporary tablespace cwy_XXX0608temp tempfile '+DATA/ORCL/TEMPFILE/cwy_XXX0608temp.dbf' size 1024M autoextend on next 1024M maxsize unlimited extent management local; CREATE USER cwy_XXX0608 PROFILE DEFAULT IDENTIFIED BY XXX_0608 DEFAULT TABLESPACE cwy_XXX0608 TEMPORARY TABLESPACE cwy_XXX0608temp ACCOUNT UNLOCK; GRANT UNLIMITED TABLESPACE TO cwy_XXX0608 WITH ADMIN OPTION; GRANT "CONNECT" TO cwy_XXX0608 WITH ADMIN OPTION; grant connect,resource to cwy_XXX0608; grant create session, dba to cwy_XXX0608; --使用者名稱:cwy_XXX0608 --密碼:XXX_0608
3. 如果表空間不足,需建立足夠的表空間檔案
--擴充表空間 alter tablespace cwy_XXX0608 add datafile '+DATA/ORCL/DATAFILE/cwy_XXX0608_01.dbf' SIZE 20480M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED; alter tablespace cwy_XXX0608 add datafile '+DATA/ORCL/DATAFILE/cwy_XXX0608_02.dbf' SIZE 20480M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED; alter tablespace cwy_XXX0608 add datafile '+DATA/ORCL/DATAFILE/cwy_XXX0608_03.dbf' SIZE 20480M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED; alter tablespace cwy_XXX0608 add datafile '+DATA/ORCL/DATAFILE/cwy_XXX0608_04.dbf' SIZE 20480M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED; alter tablespace cwy_XXX0608 add datafile '+DATA/ORCL/DATAFILE/cwy_XXX0608_05.dbf' SIZE 20480M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED; alter tablespace cwy_XXX0608 add datafile '+DATA/ORCL/DATAFILE/cwy_XXX0608_06.dbf' SIZE 20480M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED; alter tablespace cwy_XXX0608 add datafile '+DATA/ORCL/DATAFILE/cwy_XXX0608_07.dbf' SIZE 20480M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED; alter tablespace cwy_XXX0608 add datafile '+DATA/ORCL/DATAFILE/cwy_XXX0608_08.dbf' SIZE 20480M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED; alter tablespace cwy_XXX0608 add datafile '+DATA/ORCL/DATAFILE/cwy_XXX0608_09.dbf' SIZE 20480M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED; alter tablespace cwy_XXX0608 add datafile '+DATA/ORCL/DATAFILE/cwy_XXX0608_10.dbf' SIZE 20480M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED;
4. 如果上述建立的表空間存在問題,執行刪除操作
注:如需備份,請先執行備份。
--刪除表空間
drop tablespace cwy_XXX0608 including contents and datafiles cascade constraint;
--刪除臨時表空間
drop tablespace cwy_XXX0608temp including contents and datafiles;
5.執行匯入操作
需要將匯入檔案放入DATA_PUMP_DIR目錄下 (select * from dba_directories t;)
--匯入資料庫
./impdp cwy_XXX0608/XXX_0608 directory=DATA_PUMP_DIR dumpfile=cwy_XXX832_1124_0109.dmp REMAP_SCHEMA=cwy_XXX832_1124:cwy_XXX0608 transform=segment_attributes:n logfile=imp_cwy_XXX832_1124_0109.log
6. 其他表空間操作
--檢視當前使用者預設臨時表空間 select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE'; --檢視所有使用者的預設表空間和預設臨時表空間 select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users; --oracle資料庫檢視表空間使用率 SELECT a.tablespace_name, total / (1024 * 1024 * 1024) "大小(G)", free / (1024 * 1024 * 1024) "剩餘大小(G)", (total - free) / (1024 * 1024 * 1024) "使用大小(G)", round((total - free) / total, 4) * 100 "使用率 %" FROM (SELECT tablespace_name, SUM(bytes) free FROM dba_free_space GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM(bytes) total FROM dba_data_files GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name; --檢視表空間物理檔案的名稱及大小 SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space FROM dba_data_files ORDER BY tablespace_name;
Oracle RAC介紹:
Oracle RAC(Real Application Cluster)是一種基於共用儲存和共用資料庫的叢集解決方案,可以將多個 Oracle 資料庫範例連線成一個邏輯上的單一資料庫,提供高可用性、靈活性和可伸縮性。通過 RAC 叢集,應用程式可以同時連線到所有節點上的資料庫範例,以實現負載均衡和故障轉移等特性。
RAC 叢集的主要組成部分包括以下內容:
1. 共用儲存:在 RAC 叢集中,所有節點都可以存取共用的物理儲存裝置,例如 SAN 或 NAS。共用儲存通常由三個或更多的儲存裝置組成,每個裝置都被稱為一個 ASM(Automatic Storage Management)磁碟組。
2. 共用資料庫:RAC 應用程式可以同時連線到所有節點上的資料庫範例,這些範例通過 Cache Fusion 技術實現資料共用和同步。Cache Fusion 是一種高效的記憶體共用技術,它可以確保在所有節點上的資料庫快取中都有相同的資料塊。
3. Clusterware:Clusterware 是一種叢集管理軟體,它負責協調和管理所有節點上的 Oracle 資料庫範例和應用程式。它可以監控節點和資源的狀態,並在發生故障時執行自動故障切換和恢復操作。
4. VIP:虛擬 IP(Virtual IP)是 RAC 叢集中的一個重要組成部分,它為應用程式提供了一個單一的網路入口點,並負責將請求路由到活動節點上的資料庫範例。VIP 可以確保在發生故障時使用者端不會看到任何中斷或延遲,並且可以快速地切換到備用節點。
RAC 叢集可以提供高可用性、靈活性和可伸縮性,同時也帶來了一些管理和設定上的挑戰。在使用 Oracle RAC 時,需要特別注意共用儲存和網路連線的穩定性,並採取適當的管理和監控措施來維護叢集的正常執行。
本文來自部落格園,作者:查拉圖斯特拉麵條,轉載請註明原文連結:https://www.cnblogs.com/silgen/p/17468557.html