① 数据库重组是什么
数据库使用较长一段时间后,因为一些增,删,改等操作,使得数据的分布索引及相关数据会变得比较凌乱,从而影响数据贺滚信库的效率。数据库重组即是将数据库的相关信息重新组织.
数据库重组可分为:
①索引的重组.
②单备轮表的重组确.
③表空间的重组.
数据库重组是比较底层且禅轮比较费时的操作,在重组时会停止前端业务,把数据库里表的数据放到磁盘的空闲空间上.删除原有的表或索引,重建空的表或索引后,再把数据导入新表或索引中.这个过程无误即数据库重组成功.但也有导入数据失败的情况.所以数据库重组的风险也比较大。
② 数据库重组、重构。具体解释下,还有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