① 資料庫重組是什麼
資料庫使用較長一段時間後,因為一些增,刪,改等操作,使得數據的分布索引及相關數據會變得比較凌亂,從而影響數據賀滾信庫的效率。資料庫重組即是將資料庫的相關信息重新組織.
資料庫重組可分為:
①索引的重組.
②單備輪表的重組確.
③表空間的重組.
資料庫重組是比較底層且禪輪比較費時的操作,在重組時會停止前端業務,把資料庫里表的數據放到磁碟的空閑空間上.刪除原有的表或索引,重建空的表或索引後,再把數據導入新表或索引中.這個過程無誤即資料庫重組成功.但也有導入數據失敗的情況.所以資料庫重組的風險也比較大。
② 資料庫重組、重構。具體解釋下,還有2個的區別
一、指代不同
1、資料庫重組:將資料庫的相關信息重新組織。
2、資料庫重構:對表結構、數據、存儲過程和觸發器的小小改動就能在很大程度上改進資料庫的設計,同時又不改變語義。
二、特點不同
1、資料庫重組:資料庫使用較長一段時間後,因為一些增,刪,改等操作,使得數據的分布索引及相關數據會變得比較凌亂,從而影響資料庫的效率。
2、資料庫重構:包括結構、數據質量、參照完整性、架構、方法的重構。
三、作用不同
1、資料庫重組:是比較底層且比較費時的操作,在重組時會停止前端業務,把資料庫里表的數據放到磁碟的空閑空間上。刪除原有的表或索引,重建空的表或索引後,再把數據導入新表或索引中。
2、資料庫重構:能幫助軟體專業人士改進系統設計及其可維護性、可擴展性和性能。
③ 資料庫中導入一個同名有數據的表,會有問題嗎
如果你一表包含一個lob類型的列如果存在一個與這個表同名的同義詞那麼在導入這個表的數據時會報ora-01403錯:
在oracle10g中的測試情況如下:
1.創建兩個用戶test和cs
idle> conn sys/zzh_2046@jy_1 as sysdba
已連接。
sys@JINGYONG> grant dba to test identified by test;
授權成行晌功。
sys@JINGYONG> grant dba to cs identified by cs;
授權成功。
2.在用戶test中創建一個有clob類型的列的表emp並向表中插入幾行記錄
sys@JINGYONG> conn test/test@jy_1
已連接。
test@JINGYONG> create table emp (col_a number, col_b varchar2(3), c_lob clob);
表已創建。
test@JINGYONG>
test@JINGYONG> INSERT INTO EMP VALUES (180, 'a', '01010101010101');
已創建 1 行。
test@JINGYONG> INSERT INTO EMP VALUES (181, 'a', '01010101010101');
已創建 1 行。
test@JINGYONG> INSERT INTO EMP VALUES (182, 'a', '01010101010101');
已創建 1 行。
test@JINGYONG> INSERT INTO EMP VALUES (183, 'a', '01010101010101');
已創建 1 行。
test@JINGYONG> INSERT INTO EMP VALUES (184, 'a', '01010101010101');
已創建 1 行。
test@JINGYONG> INSERT INTO EMP VALUES (185, 'a', '01010101010101');
已創建 1 行。
test@JINGYONG> commit;
提交完成。
連接到用戶cs並創建一個同義詞叫EMP
1.創建同義詞EMP是使用test.emp表來創建(也可以用任罩御意表來創建同義詞EMP,只要保證同義詞的名字與要導入表的名字相同就行檔悶鋒)
test@JINGYONG> conn cs/cs@jy_1
已連接。
cs@JINGYONG> create synonym EMP for test.EMP;
同義詞已創建。
cs@JINGYONG> commit;
提交完成。
cs@JINGYONG>
C:\Documents and Settings\Administrator>exp test/test@jy_1 file=f:\emp.dmp table
s=EMP
Export: Release 10.2.0.1.0 - Proction on 星期四 12月 19 22:00:15 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Proction
With the Partitioning, OLAP and Data Mining options
已導出 ZHS16GBK 字元集和 AL16UTF16 NCHAR 字元集
即將導出指定的表通過常規路徑...
. . 正在導出表 EMP導出了 6 行
成功終止導出, 沒有出現警告。
C:\Documents and Settings\Administrator>imp cs/cs@jy_1 file=f:\emp.dmp tables=EM
P ignore=y
Import: Release 10.2.0.1.0 - Proction on 星期四 12月 19 22:01:48 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Proction
With the Partitioning, OLAP and Data Mining options
經由常規路徑由 EXPORT:V10.02.01 創建的導出文件
警告: 這些對象由 TEST 導出, 而不是當前用戶
已經完成 ZHS16GBK 字元集和 AL16UTF16 NCHAR 字元集中的導入
. 正在將 TEST 的對象導入到 CS
. 正在將 TEST 的對象導入到 CS
. . 正在導入表 "EMP"
IMP-00058: 遇到 ORACLE 錯誤 1403
ORA-01403: no data found導入了 6 行
成功終止導入, 但出現警告。
2.使用表t1來創建同義詞EMP
cs@JINGYONG> create synonym EMP for sys.t1;
同義詞已創建。
cs@JINGYONG> drop table emp;
drop table emp
*
第 1 行出現錯誤:
ORA-00942: 表或視圖不存在
C:\Documents and Settings\Administrator>imp cs/cs@jy_201 file=f:\emp.dmp tables=
EMP ignore=y
Import: Release 10.2.0.1.0 - Proction on 星期五 12月 20 08:13:07 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Proction
With the Partitioning, OLAP, Data Mining and Real Application Testing options
經由常規路徑由 EXPORT:V10.02.01 創建的導出文件
警告: 這些對象由 TEST 導出, 而不是當前用戶
已經完成 ZHS16GBK 字元集和 AL16UTF16 NCHAR 字元集中的導入
. 正在將 TEST 的對象導入到 CS
. 正在將 TEST 的對象導入到 CS
. . 正在導入表 "EMP"
IMP-00058: 遇到 ORACLE 錯誤 1403
ORA-01403: 未找到任何數據
IMP-00058: 遇到 ORACLE 錯誤 904
ORA-00904: "C_LOB": 標識符無效
成功終止導入, 但出現警告。
11g的測試
1.創建兩個用戶test和cs
idle> conn sys/zzh_2046@jy_201 as sysdba
已連接。
sys@JINGYONG> grant dba to test identified by test;
授權成功。
sys@JINGYONG> grant dba to cs identified by cs;
2.在用戶test中創建一個有clob類型的列的表emp並向表中插入幾行記錄
sys@JINGYONG> conn test/test@jy_201
已連接。
test@JINGYONG> create table emp (col_a number, col_b varchar2(3), c_lob clob);
表已創建。
test@JINGYONG>
test@JINGYONG> INSERT INTO EMP VALUES (180, 'a', '01010101010101');
已創建 1 行。
test@JINGYONG> INSERT INTO EMP VALUES (181, 'a', '01010101010101');
已創建 1 行。
test@JINGYONG> INSERT INTO EMP VALUES (182, 'a', '01010101010101');
已創建 1 行。
test@JINGYONG> INSERT INTO EMP VALUES (183, 'a', '01010101010101');
已創建 1 行。
test@JINGYONG> INSERT INTO EMP VALUES (184, 'a', '01010101010101');
已創建 1 行。
test@JINGYONG> INSERT INTO EMP VALUES (185, 'a', '01010101010101');
已創建 1 行。
test@JINGYONG> commit;
提交完成。
連接到用戶cs並創建一個同義詞叫EMP
1.創建同義詞EMP是使用test.emp表來創建(也可以用任意表來創建同義詞EMP,只要保證同義詞的名字與要導入表的名字相同就行)
test@JINGYONG> conn cs/cs@jy_201
已連接。
cs@JINGYONG> create synonym EMP for test.EMP;
同義詞已創建。
cs@JINGYONG> commit;
提交完成。
cs@JINGYONG>
使用10g的客戶端連接到11g的資料庫進行導出操作
C:\Documents and Settings\Administrator>exp test/test@jy_201 file=f:\emp.dmp tab
les=EMP
Export: Release 10.2.0.1.0 - Proction on 星期四 12月 19 22:10:28 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Proction
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已導出 ZHS16GBK 字元集和 AL16UTF16 NCHAR 字元集
即將導出指定的表通過常規路徑...
. . 正在導出表 EMP導出了 6 行
成功終止導出, 沒有出現警告。
使用10g的客戶端連接到11g的資料庫進行導入操作也會報ora-01403錯誤
C:\Documents and Settings\Administrator>imp cs/cs@jy_201 file=f:\emp.dmp tables=
EMP ignore=y
Import: Release 10.2.0.1.0 - Proction on 星期四 12月 19 22:11:27 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Proction
With the Partitioning, OLAP, Data Mining and Real Application Testing options
經由常規路徑由 EXPORT:V10.02.01 創建的導出文件
警告: 這些對象由 TEST 導出, 而不是當前用戶
已經完成 ZHS16GBK 字元集和 AL16UTF16 NCHAR 字元集中的導入
. 正在將 TEST 的對象導入到 CS
. 正在將 TEST 的對象導入到 CS
. . 正在導入表 "EMP"
IMP-00058: 遇到 ORACLE 錯誤 1403
ORA-01403: 未找到任何數據導入了 6 行
成功終止導入, 但出現警告。
使用11g的客戶端連接到11g的資料庫進行導出操作
[oracle@jingyong ~]$ exp test/test file=/home/oracle/emp.dmp tables=EMP
Export: Release 11.2.0.1.0 - Proction on Sat Dec 7 01:41:44 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Proction
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
About to export specified tables via Conventional Path ...
. . exporting table EMP 12 rows exported
Export terminated successfully without warnings.
使用11g的客戶端連接到11g的資料庫進行導出操作在有與導入表同名的同義詞的情況下不會報ora-01403錯誤.
[oracle@jingyong ~]$ imp cs/cs file=/home/oracle/emp.dmp tables=EMP ignore=y
Import: Release 11.2.0.1.0 - Proction on Sat Dec 7 01:42:20 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Proction
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export file created by EXPORT:V11.02.00 via conventional path
Warning: the objects were exported by TEST, not by you
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
. importing TEST's objects into CS
. importing TEST's objects into CS
. . importing table "EMP" 12 rows imported
Import terminated successfully without warnings.
[oracle@jingyong ~]$
下面刪除與表同名的同義詞而且使用10g的客戶端連接11g資料庫進行導入操作也是不會報ora-01403錯誤的
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Proction on 星期五 12月 20 07:51:34 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
idle> conn cs/cs@jy_1
已連接。
cs@JINGYONG> drop synonym EMP;
同義詞已刪除。
C:\Documents and Settings\Administrator>imp cs/cs@jy_201 file=f:\emp.dmp tables=
EMP ignore=y
Import: Release 10.2.0.1.0 - Proction on 星期五 12月 20 09:02:40 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Proction
With the Partitioning, OLAP, Data Mining and Real Application Testing options
經由常規路徑由 EXPORT:V10.02.01 創建的導出文件
警告: 這些對象由 TEST 導出, 而不是當前用戶
已經完成 ZHS16GBK 字元集和 AL16UTF16 NCHAR 字元集中的導入
. 正在將 TEST 的對象導入到 CS
. 正在將 TEST 的對象導入到 CS
. . 正在導入表 "EMP"導入了 6 行
成功終止導入, 沒有出現警告。
出現這個問題的原因:
是因為bug 7422758 IMPORTING A TABLE WITH A BLOB OR CLOB USING A SYNONYM CAUSES ORA-1403, fixed with 11.2.
解決方法:
1. 升級到11.2.
2. 打7422758補釘
注意:
在oracle11gr2版本中如果在對某個用戶導入某個表時,而這個表有一個lob類型的列且這個用戶存一個與要導入表同名的同義詞,在這種情況下使用oracle11gr2版本的客戶端進行導出再導入是不會報ora-01403錯誤.如果使用oracle11gr2版本以下的客戶端進行導出和導入也是會報ora-01403錯誤的.
來自 「 ITPUB博客 」 ,鏈接:http://blog.itpub.net/26015009/viewspace-1063849/,如需轉載,請註明出處,否則將追究法律責任。
轉載於:http://blog.itpub.net/26015009/viewspace-1063849/
文章知識點與官方知識檔案匹配
MySQL入門技能樹資料庫組成表
29483 人正在系統學習中
點擊閱讀全文
打開CSDN,閱讀體驗更佳
最新發布 oracle觸發器ora01403,Oracle常見錯誤:ORA-01403 的根本原因和解決方案
Oracle常見錯誤:ORA-01403ORA-06512: 在 "MALL.PUB_YANG_LOGON_ORGAN", line 88ORA-06512: 在 line 1at com.yangcq.flow.processflow.ProcessflowFunction.execute(ProcessflowFunction.java:102)at com.opensymphony.work...
繼續訪問
oracle導入dmp文件數據不全,Oracle dmp文件損壞恢復案例
前一段時間幫一個朋友的朋友恢復了一個損壞的dmp文件,大概100多個G,記錄一下恢復過程並簡單總結一下一、描述這個dmp文件是從一個Oracle 9i的資料庫上exp出來的,在導入Oracle 11g版本的時候,可能會隨機出現兩類錯誤,如下(1)dmp文件導入的時候,一直停留在某張表上不動,兩三天都是這樣,導入操作無法進行,如下導入了 0 行. . 正在導入表 "D_xxxxxx". . 正在導入...
繼續訪問
熱門推薦 Oracle常見錯誤:ORA-01403 的根本原因和解決方案
Oracle常見錯誤:ORA-01403 的根本原因和解決方案 根本原因:SELECT語句查詢出來的結果為空,此時把查詢出來的空值賦給2個變數,就出現了上面這個錯誤。ORA-01403: 未找到任何數據,報這個錯誤 通常都是SELECT INTO 語句查詢結果為空的原因。這個報錯是我們在使用PL/SQL進行調試時,經常遇到的一個問題。 解決方案:查看一下是不是數據的問題,導致查詢結果為空。
繼續訪問
Oracle 導入 IMP-00058錯誤及其他
oracle cmd 下面 導入 exp 導出 imp 操作
繼續訪問
IMP-00058: 遇到 ORACLE 錯誤 12592 TNS包錯誤 解決辦法
問題描述: 伺服器A-DB、伺服器B-DB都是Redhat6.6+oracle11.2.0.4環境,應用中間件伺服器A-mid、A-mid是windows server2008 r2。 生產庫伺服器A-DB中導出test.dmp全庫文件,在B-mid上試圖通過imp命令向伺服器B-DB導入test.dmp文件。 報錯如下: IMP-00058: 遇到 ORACLE 錯誤 1
繼續訪問
oracle導入.DMP_IMP-00058.ORA-03135解決辦法
錯誤如下圖:
繼續訪問
oracle存儲過程中ORA-01403: 未找到數據 問題解決方法
錯誤提示:ORA-01403: 未找到數據產生原因:當查詢不到數據時,且把查詢結果注入到定義的變數裡面解決方法: 1.跳出此次存儲過程: 可以寫個錯誤提示: when not_data_found then --後面一般接錯誤的數據提示消息 2.不跳出存儲過程: 由於錯誤的根本原因是數據不存...
繼續訪問
oracle11G 導出,導入10G報錯信息
[code="log"] Import started on 2015/4/25 9:47:43 C:\oracle\proct\10.2.0\db_1\bin\imp.exe log=C:\Users\ADMINI~1\AppData\Local\Temp\plsimp.log file=G:\cms\xmdscms.dmp userid=cms/123456@ORCL buffer...
繼續訪問
EBS開發中,FORM上傳編譯運行,出現ORA-01403:未找到任何數據的錯誤提示!
EBS開發中,FORM上傳編譯運行,出現ORA-01403:未找到任何數據的錯誤提示! 錯誤界面如
繼續訪問
Oracle dmp文件損壞恢復案例
前一段時間幫一個朋友的朋友恢復了一個損壞的dmp文件,大概100多個G,記錄一下恢復過程並簡單總結一下
繼續訪問
2020-09-08
ES6的模塊化 (1) export 導出 {} {}不是對象,可以同時導出多次 let a = 1; let b = 2; export{a}; export{b}; 等價於 export{a,b} (2) export default {} {}內是對象,只能導出一次 let a = 1; let b = 2; export{a,b}; 不管export default導出的是什麼,導入的時候都可以使用任意一個變數 (3) import 導入 由於nodejs不支持E
繼續訪問
Oracle導入數據到指定用戶時遇到IMP-00058: 遇到 ORACLE 錯誤 12154 ORA-12154: TNS: 無法解析指定的連接標識符 IMP-00000: 未成功終止導入
在網上看見一個帖子說是導入本地數據不用加 @ ,試了一下果然有效。 修改後為: 最後輸入正確的用戶名、密碼,導入開始。
繼續訪問
Oracle Stream ORA-01403 錯誤的解決
Oracle stream 01403
繼續訪問
IMP-00058: 遇到 ORACLE 錯誤 12154
IMP-00058: 遇到 ORACLE 錯誤 12154 解決方法:開始以為是 file的路徑錯誤 後來在遠程桌面導入數據便可以了!
繼續訪問
ORACLE導入遇到ORACLE錯誤959解決方法
今天在導入資料庫文件時,有一張表未導入成功,報了如下錯誤: IMP-00003: 遇到 ORACLE 錯誤 959 ORA-00959: 表空間 'XXXXXXXXXXX' 不存在。查詢的確沒有對應的表空間:select * from dba_data_files where tablespace_name = 'XXXX'添加上對應的表空間,再重新導入:create tablespace ts_s
④ 如何用access資料庫建立產品重量表
建立一個材料表,表中含有材料名稱、數量、枝悔單位重量殲讓,然後在程序中利用單位重量與數量的關系最總對所含材猛改正料總重量求和就可以了
⑤ C# 如何對ACCESS資料庫里的表 重命名(請詳細,最好有代碼)
你好,這個屬於sql語句,按照下面就可以實現:
1.select * into t from 原表
2.drop table 原表
3.重建新表(原表的結構)
4.insert into 新表(欄位) select * from t
對陪野於這樣的SQL 語法:Alter Table OldTableName Rename to NewTableName
在Access 和SQL Server 2000中運行此語句均出錯,所以只蘆蠢喊有用先建後刪的方法間接改檔吵表名了。
⑥ 什麼是資料庫重組
資料庫在經過一段時間運行後,由於對表的插入、更新、刪除等操作而產生許多碎片,使性能下降,也使表空間內資料庫文件中可能找不到完整連續的區間分配給增長的表。資料庫重組就是消除這些不必要的碎片 重新構件資料庫的結構 優化資料庫的性能。
⑦ 指重表怎麼看
Sa 的賬號和密碼是不能修改的,可以給資料庫設置許可權,用戶是資料庫操作的用戶每個資料庫分別擁有一個資料庫用戶登陸用戶必須和資料庫用戶關聯,才能訪問資料庫對象如果沒有和資料庫用戶關聯,默認和guest關聯新建資料庫用戶<稿冊/p>sp_grantdbaccess '友輪sfz\administrator','aaa' <strong>用use databasename切換到相應資料庫</strong><strong>再創建鍵告宏databasename的資料庫用戶</strong> 許可權管理GRANT {ALL|sqlstatement} TO account_name grant all|select,update on ttt(id,name)|on procere_name to 表名 伺服器角色 Sysadmin 可作任何事</p>Serveradmin 管理伺服器配置</p>Setupadmin 增加刪除連接伺服器</p>Securityadmin 管理資料庫登陸</p>Processadmin 管理進程Dbcreator 創建、修改資料庫Diskadmin 管理磁碟文件資料庫固定角色 Db_owner Db_accessadmin Db_datareder Db_datawriter Db_addladmn Db_securityadmin Db_backupoperator Db_denydatareader Db_denydatawriter
⑧ MYSQL資料庫怎麼修改表名
renametable表名to新表名;
⑨ informix資料庫裡面一張表有重復數據怎麼解決
dbschema
-d
db_name
-ss
db_name為你要卸出表結構的資料庫名稱
如果保存到文件,輸出重定向一下即可:
dbschema
-d
db_name
-ss
>
db_name.sql