Oracle创建表空间、用户、分配权限、导出、导入数据
生活随笔
收集整理的這篇文章主要介紹了
Oracle创建表空间、用户、分配权限、导出、导入数据
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章轉(zhuǎn)載:https://segmentfault.com/a/1190000006704150 ? ? ?僅用于個人學習、收藏自查,謝謝原作者。
以系統(tǒng)管理員登錄,命令:sqlplus / as sysdba?#首先需要?su - oracle?進入到oracle用戶下
一、分為四步
/第1步:創(chuàng)建臨時表空間?/
create temporary tablespace User_Temp tempfile '/u01/app/oracle/oradata/orcl/user_temp.dbf' size 200m autoextend on next 100m maxsize 20480m extent management local;注:此步創(chuàng)建的是臨時表空間,可以多個數(shù)據(jù)公用一個臨時表空間,注意創(chuàng)建的大小即可,名稱隨意。/第2步:創(chuàng)建數(shù)據(jù)表空間?/
create tablespace User_Data logging datafile '/u01/app/oracle/oradata/orcl/user_data.dbf' size 200m autoextend on next 100m maxsize 20480m extent management local;注:此步注意數(shù)據(jù)表空間的名稱最好與導出的備份文件所用的表空間名稱一致,不一致容易報錯! 用UltraEdit打開dmp文件切換16進制編輯,搜索tablespace可以查看備份文件的表空間名稱。/第3步:創(chuàng)建用戶并指定表空間/
create user User_Name identified by "Passwd" default tablespace user_data temporary tablespace user_temp;注:用戶名最好與導出的備份文件的數(shù)據(jù)庫名保持一致!/第4步:給用戶授予權(quán)限?/
grant connect,resource,dba to User_Name;二、其他:
/修改用戶密碼?/
alter user [username] identified by [password];/刪除用戶?/
drop user User_Name cascade;/刪除表空間?/
DROP?TABLESPACE?表空間名?INCLUDING?CONTENTS?AND?DATAFILES;/清空某張表/
TRUNCATE TABLE tableName**tableName是要清空表的表名**/清空當前用戶下所有的表和數(shù)據(jù)的方法?/
使用場景:覆蓋一個已存在的庫,并且里邊有數(shù)據(jù),這時直接導入備份文件會報錯,只能清空里邊原有表和數(shù)據(jù)之后再導入;當然你也可以新建一個其他庫來導入。
$ su - oracle #切換到Oracle用戶 $ sqlplus / as sysdba #登錄數(shù)據(jù)庫控制臺 SQL>select 'Drop table '||table_name||';' from all_tables where owner='User_Name'; 注:`User_Name`英文一定要大寫;將會輸出一批刪除表的sql語句,這些SQL語句執(zhí)行一下就可以了(需要有drop table的權(quán)限)建議使用sqldeveloper圖形化客戶端連接Oracle數(shù)據(jù)庫執(zhí)行刪除語句。三、數(shù)據(jù)庫導入、導出
兩種方式:exp/imp方式、數(shù)據(jù)庫泵expdp/impdp方式,推薦用數(shù)據(jù)泵的方式,支持大數(shù)據(jù)量。
1、數(shù)據(jù)泵expdp/impdp
1)前期準備,dumpdir目錄創(chuàng)建
以Linux系統(tǒng)為例 $ mkdir /home/oracle/dumpdir #執(zhí)行該命令之前,要首先在硬盤上創(chuàng)建'/home/oracle/dumpdir'數(shù)據(jù)庫導入、導出所對應的文件夾 $ su - oracle #切換到Oracle用戶 $ sqlplus / as sysdba #登錄數(shù)據(jù)庫控制臺 SQL>create directory dumpdir as '/home/oracle/dumpdir'; #創(chuàng)建數(shù)據(jù)泵導入、導出目錄 SQL>select * from dba_directories; #查看一下是否已存在該目錄 ------------------------------------------------------------------------------- SYS DUMPDIR /home/oracle/dumpdirSQL>grant read,write on directory dumpdir to dbname; #授權(quán)給操作用戶這個dump目錄的權(quán)限【dbname是一個已經(jīng)存在的數(shù)據(jù)庫用戶】 SQl>exit2)expdp數(shù)據(jù)泵導出
expdp User_Name/Password@orcl directory=dumpdir dumpfile=User_Name.bak.2016.1.1.dmp logfile=User_Name.bak.2016.1.1.log注:幾個要點,用戶名密碼不用說,orcl是你配置的實例名;dumpdir是個變量,就是上邊那步創(chuàng)建的目錄,可以多個,名稱隨意; 備份完文件會存放在創(chuàng)建的/home/oracle/dumpdir目錄下。3)impdp數(shù)據(jù)泵導入
impdp User_Name/Password@orcl directory=dumpdir dumpfile=User_Name.bak.2016.1.1.dmp remap_schema=SOURCE_USER_Name:DEST_USER_Name注:前幾個參數(shù)跟導出時一樣,導入需要把備份文件放到dumpdir目錄下;多了一個remap_schema, 是填寫備份文件的數(shù)據(jù)庫用戶名`SOURCE`和本機創(chuàng)建的數(shù)據(jù)庫用戶名`DEST`,這個在本機創(chuàng)建的用戶名不一樣的情況下需要用到。 如果一樣寫成一樣的就行了。2)exp/imp方式
exp命令交互導出
$ su - oracle $ exp #Windows下cmd也是輸入這個命令執(zhí)行,下同。 1.用戶名:User_Name 回車 2.口令:輸入此用戶名的口令,回車; 3.輸入數(shù)組提取緩沖區(qū)大小:直接回車,選擇默認的4096; 4.導出文件: EXPDAT.DMP > 填寫導出生成的備份文件完整路徑、文件名,注意相應路徑要已存在,且要有足夠空間, 如:C:\backup\User_Name_2016.dmp ,回車; 5.選擇導出方式:直接回車,選擇默認的按用戶方式導出; 6.導出權(quán)限:直接回車,選擇默認的yes; 7.導出表數(shù)據(jù):直接回車,選擇默認的yes; 8.導出權(quán)限:直接回車,選擇默認的yes; 9.壓縮區(qū):直接回車,選擇默認的yes; 10.要導出的用戶:輸入剛開始的用戶名確認,注:一定要輸入,不然沒有數(shù)據(jù)導出! 11.再次出現(xiàn)“要導出的用戶”:此時直接回車即可; 12.導出完成,其中提示:導出成功終止, 但出現(xiàn)警告;這種輸入是正常的,說明導出操作成功完成;imp導入
imp User_Name/Password@127.0.0.1:/orcl fromuser=User_Name touser=User_Name_New file=C:\backup\User_Name_2016.dmp co總結(jié)
以上是生活随笔為你收集整理的Oracle创建表空间、用户、分配权限、导出、导入数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java calendar加减时间
- 下一篇: Cacls命令使用格式