1. 程式人生 > >oracle建立表空間及使用者,匯出匯入資料備份

oracle建立表空間及使用者,匯出匯入資料備份

轉載:https://blog.csdn.net/ludongshun2016/article/details/52849784?utm_source=copy 

建立表空間及使用者

//建立臨時表空間  
create temporary tablespace salt_temp  
tempfile 'E:\oracle\product\10.2.0\oradata\test\salt_temp.dbf' 
size 50M  
autoextend on  
next 50M maxsize 20480M  
extent management local;
//建立表空間
create tablespace salt datafile 'E:\oracle\product\10.2.0\oradata\test\salt.dbf' 
size 500M 
autoextend on 
next 500M maxsize unlimited
extent management local;
alter database datafile 'E:\oracle\product\10.2.0\oradata\test\salt.dbf' autoextend on next 500M;
//建立使用者及許可權
create user salt identified by salt 
default tablespace salt  
temporary tablespace salt_temp;
grant all privileges to salt;  
grant dba to salt;
//刪除使用者、刪除表空間
drop user SALT cascade;
drop tablespace salt including contents and datafiles;
drop tablespace salt_temp including contents and datafiles;
//查詢當前表空間大小
select * from dba_data_files where tablespace_name=$TABLESPACE 

========================================================
oracle匯出匯入資料備份dmp

//兩種方式,SERVER_ORCL是在tnsnames.ora裡面配置好的本地域名,也可以不配置,直接用id地址加埠訪問
//本地域名
exp salt/[email protected]_ORCL file=e:\db_backup\salt20161018.dmp owner=salt
imp salt/[email protected] tablespaces=SALT  fromuser=salt touser=salt file=e:\db_backup\salt20161018.dmp 
//ip地址加埠號
exp gft_reform/

[email protected]:1521:orclfile=e:\db_backup\sites20161017.dmp owner=gft_reform
imp gft_reform/[email protected]:1521:orcl tablespaces=SITES  fromuser=gft_reform touser=gft_reform file=e:\db_backup\sites20161017.dmp 

===================================================================
oracle檢視使用者屬於哪個表空間 
select username,default_tablespace from dba_users where username=’使用者名稱’; 
檢視結果(如查詢scott使用者的所屬表空間): 
select username,default_tablespace from dba_users where username=’SCOTT’;–使用者名稱需要大寫 


問題描述: 
imp匯入資料時顯示某個欄位的值太大而拒絕匯入該行資料 
解決方案: 
經查詢,這個是由於字符集設定的不是gbk的,導致匯入時遇到中文字元出現的問題, 
解決方法: 如果可以的話就把資料庫的字符集修改成ZHS16GBK等中文字符集吧,此時不管中文字元還是英文字元都是2位元組了 
cmd命令 
SQL> sqlplus /nolog; 
SQL> conn /as sysdba 
SQL> shutdown immediate; 
SQL> startup mount 
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; 
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; 
SQL> alter database open; 
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; 
ORA-12712: new character set must be a superset of old character set 
提示我們的字符集:新字符集必須為舊字符集的超集,這時我們可以跳過超集的檢查做更改: 
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 
–我們看到這個過程和之前ALTER DATABASE CHARACTER SET操作的內部過程是完全相同的,也就是說INTERNAL_USE提供的幫助就是使Oracle資料庫繞過了子集與超集的校驗. 
SQL> shutdown immediate; 
SQL> startup 
SQL> select userenv(‘language’) from dual; Oracle檢視字符集 
如果資料庫打不開的話,用SQL>alter database open; 
我修改字符集時遇到了個新問題,conn /as sysdba; 連線不上,提示TNS的錯誤,以為是服務沒啟動呢 
,結果已經啟動了 還是不好使,後來找到原因,我建過兩個例項,後來把後鍵的那個給刪了,但是 安裝第二個例項時,他已經自動的把oracle的登錄檔cid改為新的例項的了,把原來的沖掉了,此時更改回原來的就ok了 
附解決問題的cmd視窗截圖 

轉載:https://blog.csdn.net/ludongshun2016/article/details/52849784?utm_source=copy