1、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。
2、设置deferred_segment_creation参数为FALSE后,无论是空表还是非空表,都分配segment。
在sqlplus中,执行如下命令:
SQL>altersystemsetdeferred_segment_creation=false;
查看:
SQL>showparameterdeferred_segment_creation;
该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用。
3、可以使用手工为空表分配Extent的方式,来解决导出之前建立的空表的问题。说明如下:
31使用ALLOCATEEXTENT的说明
使用ALLOCATEEXTENT可以为数据库对象分配Extent。其语法如下:
-----------
ALLOCATEEXTENT{SIZEinteger[K|M]|DATAFILE'filename'|INSTANCEinteger}
-----------
可以针对数据表、索引、物化视图等手工分配Extent。
ALLOCATEEXTENT使用样例:
ALLOCATEEXTENT
ALLOCATEEXTENT(SIZEinteger[K|M])
ALLOCATEEXTENT(DATAFILE'filename')
ALLOCATEEXTENT(INSTANCEinteger)
ALLOCATEEXTENT(SIZEinteger[K|M] DATAFILE'filename')
ALLOCATEEXTENT(SIZEinteger[K|M] INSTANCEinteger)
针对数据表 *** 作的完整语法如下:
-----------
ALTERTABLE[schema]table_nameALLOCATEEXTENT[({SIZEinteger[K|M]|DATAFILE'filename'|INSTANCEinteger})]
-----------
故,需要构建如下样子简单的SQL命令:
-----------
altertableaTabelNameallocateextent
-----------
32构建对空表分配空间的SQL命令,
查询当前用户下的所有空表(一个用户最好对应一个默认表空间)。命令如下:
-----------
SQL>selecttable_namefromuser_tableswhereNUM_ROWS=0;
-----------
根据上述查询,可以构建针对空表分配空间的命令语句,如下:
-----------
SQL>Select'altertable'||table_name||'allocateextent;'fromuser_tableswherenum_rows=0
-----------
批量输出上述生成的SQL语句,建立C:\createsqlsql,其内容如下:
-----------
setheadingoff;
setechooff;
setfeedbackoff;
settermouton;
spoolC:\allocatesql;
Select'altertable'||table_name||'allocateextent;'fromuser_tableswherenum_rows=0;
spooloff;
-----------
执行C:\createsqlsql,命令如下:
-----------
SQL>@C:\createsqlsql;
-----------
执行完毕后,得到C:\allocatesql文件。
打开该文件会看到,已经得到对所有空表分配空间的命令SQL语句。
34执行SQL命令,对空表分配空间:
执行C:\allocatesql,命令如下:
-----------
SQL>@C:\allocatesql;
-----------
执行完毕,表已更改。
34此时执行exp命令,即可把包括空表在内的所有表,正常导出。
另外:Oracle11g中,对密码是大小写敏感的,即密码中的字母是区分大小写的。
在Oracle10g中及以前,密码中的字母大小写无所谓。
在linux上面配置 *** 作系统启动时,自动启动oracle数据库
>
1、按住键盘上Windows键,打开开始菜单,找到Database Configuration Assitant并打开;
2、打开数据库配置助手Database Configuration Assitant,单击“下一步”;
步骤1:选择“创建数据库”,单击“下一步”;
3、选择“一般用途或事务处理”,单击“下一步”;
4、设置数据库的名称和实例名,两者可设置相同,也可以不同,单击“下一步”;
5、管理选项配置,不勾选配置Enterprise Manager,单击“下一步”;
6、数据库身份z明,可以为不同的账户分别设置不同的管理口令,也可以为所有账户设置同一口令,单击“下一步”;
7、数据库文件所在位置,默认存储类型:文件系统,存储位置:使用模版中的数据库文件位置,也可以自己指定存储路径,单击“下一步”;
8、恢复配置,指定快速恢复区;
9、数据库内容,根据需要,选择是否添加示例方案,单击“下一步”;
10、初始化参数,设置内存、字符集等,单击“下一步”;
11、数据库存储,控制文件、数据文件、重做日志文件位置设置,单击“下一步”;
12、创建选项,创建数据库,生成脚本,单击“完成”,开始创建数据库。
监听启动不了是因为IP问题,10G和11G在安装的时候,监听的是安装环境下的IP,如果你换地方了或重启了,就有可能导致监听变了,这个时候,你只要把监听改成你本机计算机名就OK,具体方法如下:
找到oracle安装目录,在以下目录里配置(路径是我的本机目录,你根据你自己的目录):
D:\oracle\product\1020\db_1\NETWORK\ADMIN
在admin目录下,有2个文件,listenerora 和 tnsnamesora 你用记事本打开这2个文件,把 HOST = 后面的值都改成你的计算机名,然后保存,重启,就OK。
解决方式:
启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计算机名字或者ip,端口号还是1521,然后保存。
重启监听服务。
启动Database configuration Assistant “配置数据库选件”就可以重新配置em了,而不用删除数据库。再次创建数据库时也不会报如上的错误。
在控制面板里,管理工具--服务 里面有 oracle的监听服务。手动启动,或是打 lsnrctl start dos命令里。
oracle 11g在安装过程中出现监听程序未启动或数据库服务未注册到该监听程序
错误分析:
经过查看警告中给出的日志文件
F:\develop\oracle_data\app\Administrator\cfgtoollogs\dbca\test\emConfiglog有如下内容:
配置:connectDesc :(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=BUG-CLASS)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=test)))
但是在listenerora中是这样的:
(ADDRESS =(PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
显然计算机BUG-CLASS是不能够访问localhost(暂不理解)。
1/s/1gfa3e63;这里是我在Oracle官网下载好了Windows系统64位的安装包,有2个zip文件。不想去官网找下载地址的童鞋可以直接用这个百度云盘的下载链接。 1去下载最新的oracle11g安装包的压缩文件,有2个压缩文件,都需要下载,下载完成以后需要解压缩在同一个目录下。 在开始oracle数据安装之前建议:1关闭本机的病毒防火墙。2断开互联网。 这样可以避免解压缩丢失文件和安装失败。 2我在下载好2个zip文件后,都解压在了database目录中。 如下图: 3进入database双击 setupexe 开始安装,在如下图: 4出现如下选项,选择是,继续安装。 当然这是我机器出现了这个情况,可能你的满足要求了。。。 5取消勾,点击下一步: 6Oracle在进行安装的时候都会询问是否同时创建一个数据库出来,此处选择“创建和配置数据库”。 7每一个数据库可以想象为一个实例,所以此处表示只存在一个数据库的含义 8此处选择“高级安装”。 9语言现在选择支持“简体中文”和“英文”。 10选择“企业版”。 11此处设置Oracle的安装目录,将其安装到app目录下。 12选择一般事物 13此处输入数据库的名称,同时SID与数据库的名称相同。 14使用默认配置,如下图: 15Oracle本身提供了多个 *** 作用户,为了简单管理,所有的密码都统一设置为“oracleadmin”。随后将进行安装环境的检验,如果检验之中出现了错误,则会提示用户,或者由用户选择“忽略”。 16选择完成开始安装 17而后进入到了oracle的安装界面。此界面会运行一段时间,在此界面完成之后出现的任何界面都不要点任何的确定按钮,因为还需要进行后续的配置。 18安装完成之后会进入到配置用户口令界面,点击 用户口令 设置密码。此界面之中需要进行用户名及密码的配置,在使用Oracle数据库过程之中,主要使用三个用户(有三个用户的密码是public password,在实际中不可以使用):超级管理员:sys / change_on_install;普通管理员:system / manager;普通用户:scott / tiger,此用户需要配置解锁; 19完成之后选择“确定”那么再之后就可以进入到安装完成的界面,选择“关闭”即可。 20在Oracle安装完成之后,可以通过windows的服务找到所有与Oracle有关的服务选项。 21所有的服务建议将其全部修改为手工启动,这样电脑的启动速度可以快一些。但是有两个服务是必须启动的:OracleOraDb11g_home1TNSListener:数据库的监听服务,当使用任何的编程语言或者是前台工具连接数据库的时候,此服务必须启动,否则无法连接;OracleServiceSYNC:指的是数据库的实例服务,实例服务的命名规范“OracleServiceSID”,一般SID的名称都和数据库的名称保持一致,每一个数据库的服务都会创建一个sid。这里我的数据库的SID是sync。 2 使用sqlplus命令设置数据库 1当oracle安装完成之后,下面就需要对其进行使用,Oracle本身提供了一个“sqlplusexe”的 *** 作命令,直接运行此命令即可。 2此处输入用户名为scott,密码为tiger。 3在数据库之中会存在多张数据表,那么下面发出一个查询emp表的 *** 作命令,输入命令如下,默认的显示方式并不是特别的好,此处可以使用以下的命令更改显示方式 4在Oracle之中会存在多种用户,如果要想切换不同的用户,可以使用如下的命令完成,如果现在使用的是sys用户登录,那么就必须加上“AS SYSDBA”表示由管理员登录,其他用户不需要。 CONN 用户名/密码 [AS SYSDBA] ; 范例:使用sys登录 conn sys/change_on_install AS sysdba 如果要想查看当前用户输入“show user”命令即可查看。 show user 5如果说现在使用sys用户登录,并且发出同样的查询命令,会发现找不到emp表的错误提示: 6因为这张表属于scott用户,所以当使用scott用户登录的时候可以直接使用此表,但是如果换了一个用户,那么就必须使用这个表的完整名称“用户名表名称”,emp属于scott的,所以全名是“scottemp”。 以上所述是小编给大家带来的Oracle11g数据库win81系统安装配置图文教程,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
以上就是关于oracle11g导出数据库时怎么设置把空表也导出全部的内容,包括:oracle11g导出数据库时怎么设置把空表也导出、怎样在linux上配置oracle 11g 数据库开机自启动、怎么安装oracle数据库11g等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)