oracle imp/exp導入導出數據
1.檢查服務端字符集
select userenv('language') from dual;
----
AMERICAN_AMERICA.AL32UTF8
2.若目標服務端字符集不一致需修改
SQL> conn /as sysdba
Connected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
System altered.
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
System altered.
SQL> alter database open;
Database altered.
SQL> ALTER DATABASE CHARACTER SET AL32UTF8;
ALTER DATABASE CHARACTER SET AL32UTF8
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
//提示我們的字符集:新字符集必須爲舊字符集的超集,這時我們可以跳過超集的檢查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8;
Database altered.
//重啓檢查是否更改完成:
SQL> shutdown immediate;
SQL> shartup;
3.導出數據文件
//語法 exp 用戶名/密碼@實例名 file=文件路徑 owner=用戶名 rows=n log=文件路徑;
//這條命令的意思是導出指定用戶的所有對象table、seq、pro...,但是不會導出數據
//Eg:
exp user/pwd@orcl file=/export/export001.dmp owner=user rows=n log=export001.log;
4.導入數據結構
//語法 imp 用戶名/密碼@實例名 file=文件路徑 log=文件路徑
//Eg:
imp user/pwd@orcl file=/export/export001.dmp log=import001.log;