oracle 表空間問題

2021-08-25 06:22:39 字數 1316 閱讀 2343

自己覺得對oracle還掌握得不錯,不過昨天隔壁實驗室的同學問了我乙個問題讓我鬱悶了一把。她在乙個資料庫裡把乙個使用者a的在表空間aa上的錶用exp匯出到exp.dmp檔案中,再把它匯入到另一台機器上的資料庫裡,這時她用的是使用者b,預設表空間是bb,但是用imp匯入時我們發現表是匯入到了b使用者下,但是還是存在了aa表空間裡面,但是她需要匯入到bb裡,這時我們又試了好幾次,都是這樣。才發現自己以前都是複製過來的資料庫,沒有涉及到更改表空間,於是上網查了查,幸好有好心人有解決方案。

sql> create user myhuang identified by myhuang default tablespace myhuang;//先建立乙個使用者

sql> grant resource,connect to myhuang;

sql> grant dba to myhuang;//賦dba許可權

sql> revoke unlimited tablespace from myhuang;//撤銷此許可權

sql> alter user myhuang quota 0 on system;//將使用者在system表空間的配額置為0

sql> alter user myhuang quota unlimited on myhuang;//設定在使用者在myhuang表空間配額不受限。

經過上述設定後,就可以用imp匯入資料,資料將會進入指定的myhuang表空間:

c:\documents and settings\myhuang>imp system/123456@vdb fromuser=lnxh tous

er=myhuang file=g:\myhuang\lnxh.dmp ignore=y grants=n

順便說兩個小問題:

(1)imp-00003: 遇到 oracle 錯誤 1658

ora-01658: 無法為表空間 myhuang 中的段建立 initial 區

通常這個問題可以通過resize增加表空間資料檔案大小來解決。

(2)刪除表空間

sql> drop tablespace myhuang including contents and datafiles;

[個人補充]

如遇imp-00003: oracle error 1950 encountered.

ora-01950: no privileges on tablespace '******x'

說明你的表中有blob之類的字段,此類表無法匯入新的表空間

網上說9i中此問題沒有完美的解決方案,估計只能先建乙個同名的表空間,然後把這個表移到新的表空間中

不知道10g和11g中是怎麼樣的,沒有測試

oracle表空間增加問題

表空間在初始建立的時候最好設定成自動擴充套件的,如果沒有設定成擴充套件的,則有四種方法可以增加表空間的大小,其中增加資料檔案是經常用的一種。四種方法如下 meathod1 給表空間增加資料檔案 meathod2 新增資料檔案,並且允許資料檔案自動增長 autoextend on next 5m ma...

oracle的臨時表空間問題

如果temp被擴大 關於 temp空間大小 9i就是shutdown在startup也不能 空間 只能重建才能 空間 temporary 型別的temporary tablespace,是沒有 這個概念,用完了的temp extent,只是標誌為free,不 temp表空間為autoextend,所...

oracle匯入dmp表空間問題

折騰了一下午.原諒我這個oracle菜鳥 首先說一下oracle匯入 匯入前需先建立使用者,表空間,並賦予許可權 建立使用者 create user rc2 identified by 123 賦予許可權 grant resource,connect,dba to rc2 grant create ...