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/
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