問題描述:近日需要將測試資料庫中的資料全部匯出然後匯入本地安裝在linux虛擬機器中的Oracle中,由於當時劃給linux的磁碟空間只有8GB,現在剩餘空間不足500MB,而從測試庫匯出的dmp檔案有2GB多,這顯然磁碟空間是不夠的
解決辦法:在linux虛擬機器上再追加硬碟,分區格式化後,掛載到檔案系統,然後把資料表空間指定到新的檔案系統,再匯入就ok啦,具體步驟如下:
1. 追加硬碟
關閉VM中的Linux作業系統,然後點擊“編輯虛擬機器設定”,然後追加一塊硬碟(我試過了,好像追加的硬碟不能超過4GB,我追加了一塊3.5GB的)
2. 給追加的硬碟分區並格式化
a. 啟動VM中的Linux
b. 假定Linux中已經有一塊硬碟/dev/sda,那麼新增一塊硬碟就是/dev/sdb,再增加一塊就是/dev/sdc ...... 以此類推,
c. 以root使用者登入
d. 使用 fdisk 命令對硬碟進行分區
fdisk /dev/sdb
p 列印分區表
t 轉換分區表
w 寫進分區表
n 建立分區 (最多4個主要磁碟分割,第一個分區是/dev/sdb1,第二個是/dev/sdb2 ...... 以此類推)
d 刪除分區
v 檢查分區
e. 對建立的分區格式化
mkfs - 支援ext2,ext3,vfat,msdos,jfs,reiserfs等
用法1:mkfs -t
例:#mkfs -t ext3 /dev/sdb1
用法2:mkfs.
例:#mkfs.vfat /dev/sdb1
mke2fs-支援ext2/ext3檔案系統
用法:mke2fs [-j]
例:#mke2fs -j /dev/sdb1
註: mke2fs加上-j的話,意思是加日誌,就是ext3的分區。
3. 把追加的硬碟掛載到檔案系統
mount /dev/sdb1 /oracledata
註: /oracledata目錄要預先建好,如果前面的操作都成功了 df -am 命令就可以看到新掛載的硬碟了,這時候就可以正常使用了
4. 啟動Oracle,刪除原有資料表空間,假設資料表空間名是:TEST,sql如下:
drop tablespace TEST including contents and datafiles;
5. 在新硬碟上建立資料表空間
create tablespace TEST datafile '/oracledata/test.dbf' size 5m autoextend on next 10m maxsize unlimited;
6. 匯入資料
imp pcrs/pcrs@10.10.10.3:1521/pcrs full=y file=D:\pcrs0918.dmp ignore=y
注意:exp的來源資料庫的資料表空間應該和TEST一致