當前位置:首頁 » 數據倉庫 » oracle11g導出資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle11g導出資料庫

發布時間: 2022-06-05 13:26:02

㈠ 我想在linux下的oracle11g資料庫實行導入導出,具體應該怎麼做,用戶有syst

一、設置Linux電腦字元集,使其跟電腦上的Oracle資料庫字元集一致;
在Linux命令行界面,
查詢Oracle資料庫字元集:
select * from nls_database_parameters t where t.parameter=』NLS_CHARACTERSET』;
查詢結果:ZHS16CGB231280

然後vi /home/oracle/.bash_profile
export NLS_LANG=american_america.ZHS16CGB231280
source /home/oracle/.bash_profile

二、導出屬於wcall用戶的Oracle資料庫
exp wcall/wcall@eoss file=wcall.dmp owner=wcall; //導出資料庫

三、在Windows中安裝Oracle.10g.for.Windows,(示例中資料庫安裝在D盤,如果按照在其他磁碟,下面創建表空間的時候,需要做相應的修改)然後創建資料庫eoss,注意安裝的資料庫字元集要跟原來資料庫的相同。然後打開sqlPLUS,用system帳戶登陸後創建用戶wcall。

create user wcall identified by wcall; //創建用戶
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO wcall; //授予許可權
create tablespace CC_CALL
logging
datafile 'D:\oracle\proct\10.1.0\Db_1\cc.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local; //創建表空間CC_CALL
create tablespace CC_CALL_HIS
logging
datafile 'D:\oracle\proct\10.1.0\Db_1\cc_his.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local; //創建表空間CC_CALL_HIS

四、導入資料庫
IMP wcall/wcall@eoss fromuser=wcall touser=wcall file=wcall.dmp STATISTICS =none;

㈡ oracle11g導出資料庫時怎麼設置把空表也導出

1、Oracle11g默認對空表不分配segment,故使用exp導出Oracle11g資料庫時,空表不會導出。

2、設置deferred_segment_creation 參數為FALSE後,無論是空表還是非空表,都分配segment。

在sqlplus中,執行如下命令:

SQL>alter system set deferred_segment_creation=false;

查看:

SQL>show parameter deferred_segment_creation;

該值設置後只對後面新增的表產生作用,對之前建立的空表不起作用。

3、可以使用手工為空表分配Extent的方式,來解決導出之前建立的空表的問題。說明如下:

3.1 使用ALLOCATE EXTENT的說明

使用ALLOCATE EXTENT可以為資料庫對象分配Extent。其語法如下:

-----------

ALLOCATE EXTENT { SIZE integer [K | M] | DATAFILE 'filename' | INSTANCE integer }

-----------

可以針對數據表、索引、物化視圖等手工分配Extent。

ALLOCATE EXTENT使用樣例:

ALLOCATE EXTENT

ALLOCATE EXTENT(SIZE integer [K | M])

ALLOCATE EXTENT(DATAFILE 'filename')

ALLOCATE EXTENT(INSTANCE integer)

ALLOCATE EXTENT(SIZE integer [K | M] DATAFILE 'filename')

ALLOCATE EXTENT(SIZE integer [K | M] INSTANCE integer)

針對數據表操作的完整語法如下:

-----------

ALTER TABLE [schema.]table_name ALLOCATE EXTENT [({ SIZE integer [K | M] | DATAFILE 'filename' | INSTANCE integer})]

-----------

故,需要構建如下樣子簡單的SQL命令:

-----------

alter table aTabelName allocate extent

-----------

3.2 構建對空表分配空間的SQL命令,

查詢當前用戶下的所有空表(一個用戶最好對應一個默認表空間)。命令如下:

-----------

SQL>select table_name from user_tables where NUM_ROWS=0;

-----------

根據上述查詢,可以構建針對空表分配空間的命令語句,如下:

-----------

SQL>Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0

-----------

批量輸出上述生成的SQL語句,建立C:createsql.sql,其內容如下:

-----------

set heading off;

set echo off;

set feedback off;

set termout on;

spool C:allocate.sql;

Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

spool off;

-----------

執行C:createsql.sql,命令如下:

-----------

SQL>@ C:createsql.sql;

-----------

執行完畢後,得到C:allocate.sql文件。

打開該文件會看到,已經得到對所有空表分配空間的命令SQL語句。

3.4 執行SQL命令,對空表分配空間:

執行C:allocate.sql,命令如下:

-----------

SQL>@ C:allocate.sql;

-----------

執行完畢,表已更改。

3.4 此時執行exp命令,即可把包括空表在內的所有表,正常導出。

另外:Oracle11g中,對密碼是大小寫敏感的,即密碼中的字母是區分大小寫的。

在Oracle10g中及以前,密碼中的字母大小寫無所謂。

㈢ 如何實現oracle11g和oracle10g的數據互相導入導出

方法/步驟

  • 打開開始菜單中的運行

  • 7

    以上是導出的步驟,導入與導出的步驟基本一樣,有不清楚的可以聯系我。

㈣ 關於oracle11g,以用戶的方式導備份資料庫,,

Export/Import有三個級別: 表級, 用戶級和全資料庫級.
table model(按表處理的模式)
backupone user's table(備份一個用戶下的表)
exp test/test
rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0
file=exp_table_yyyymmdd.dmp log=exp_table_yyyymmdd.log
tables=test_table1,test_table2
recoverall table(導入全部備份的表)
imp test2/test2
fromuser=test touser=test2 rows=y indexes=n commit=y buffer=65536
feedback=100000 ignore=y volsize=0 file=exp_table_yyyymmdd.dmp
log=imp_table_yyyymmdd.log
recoversome table of all table(導入備份的部分表)
imp test2/test2
fromuser=test touser=test2 rows=y indexes=n commit=y buffer=65536
feedback=100000 ignore=y volsize=0 file=exp_table_yyyymmdd.dmp
log=imp_table_yyyymmdd.log tables=test_table1
user model(用戶模式)
backupall someone's object(備份一個用戶的所有的數據對象)
exp test/test
rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 owner=test file=exp_user_yyyymmdd.dmp
log=exp_user_yyyymmdd.log
recoverall someone's object
imp test2/test2
fromuser=test touser=test2 rows=y indexes=n commit=y buffer=65536
feedback=100000 ignore=y volsize=0 file=exp_user_yyyymmdd.dmp
log=imp_user_yyyymmdd.log
recoversome table of all someone's object
imp test2/test2
fromuser=test touser=test2 rows=y indexes=n commit=y buffer=65536
feedback=100000 ignore=y volsize=0 file=exp_user_yyyymmdd.dmp log=imp_user_yyyymmdd.log
tables=test_table1,test_table2,test_table3
full model
backupthe full db for all
exp system/manager
rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y
inctype=complete file=exp_fulldb_yyyymmdd.dmp log=exp_fulldb_yyyymmdd.log
backupthe full db for increment
exp system/manager
rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y
inctype=incremental file=exp_fulldb_zl_yyyymmdd.dmp
log=exp_fulldb_zl_yyyymmdd.log
注意:inctype是8i的9i已經不用了
recoverall date for full backup
imp system/manager
rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0
full=y file=exp_fulldb_yyyymmdd.dmp log=imp_fulldb_yyyymmdd.log
recoverall date for increment backup
imp system/managerrows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y vol
size=0
full=y inctype=restore file=exp_fulldb_zl_yyyymmdd.dmplog=imp_fulldb_zl_yyyymmdd.log