1. 首页 > 智能数码 >

oracle只有一个数据库 oracle有数据库的概念吗

听说oracle只有一个数据库 ?不能有多个?

Oracle中可以创建多个数据库。。。。

oracle只有一个数据库 oracle有数据库的概念吗oracle只有一个数据库 oracle有数据库的概念吗


呵呵。。希望对你有用。。

我的oracle是11g版本的。

比方说我的oracle中就有两个数据库(WANG和ORCL):就有这两个数据库的服务名。

OracleServiceWANG

OracleServiceORCL

Oracle中的“数据库”指的是什么?一个实例一次只能打开或使用一个数据库是什么意思?

这就是oracle和sqlserver之间的不同了。

一个sqlserver,同一个实例,可以建立多个数据库。

而在oracle中,同一个实例,只有一个数据库。

比如你开发系统的时候,会有数据库连接字符串,看下面的你就明白了

sqlserver :

Data Source=localhost\SQLEXPRESS;Initial Catalog=mydatabase;Integrated Security=True

Oracle :

Data Source=WFLPRD;Persist Security Info=True;User ID=oracleusername;Password=oraclepassword"

在sqlserver中,是要指定数据库的“mydatabase",而在oracle中,是不需要的。因为一个实例,只存在一个数据库。

substr(

string,

start_position,

[length

])

只有这三个参数,举个例子就明白了

substr('helloword',2,4)

结果是ello,就是说从helloword这个字符串中取值,从第二个开始取,一共取4个。不会有1个参数的,少2个,就是这样的substr(

string,

start_position

),意思是如果不给出取的长度的参数,就默认取到后的。

顺便说一句:[

]这个大括弧的意思就是可有可无,其他的是必须有的

数据库是 例程+数据库物理文件 构成的

例程可以打开多个数据库,但是同时刻只能打开一个数据库。

instance是一堆内存结构(SGA+后台进程)

database是一堆存放数据物理磁盘文件(datafile+redo log file+control file+archive log file+parameter file等)

一个instance在同一个时间,只能打开一个database

一个database在同一个时间,可以被多个instance打开,这个例子就是RAC。

Oracle=instance(实例)+database(数据库)

instance是一堆内存结构(SGA+后台进程)

database是一堆存放数据物理磁盘文件(datafile+redo log file+control file+archive log file+parameter file等)

oracle服务器上一般都有几个数据库?

首先明确数据库的概念:控制文件+数据文件+日志文件

那么,一台服务器上的数据库数量没有限制,但一次只能启动一个

如果说一般生产中使用,当然只有一个了,总不能创建几个动不动切换

如果你说的数据库指的是sqlserver中的库概念,对应的应该是oracle的表空间,同样没有限制,根据业务来规划,一般用来方便管理和平衡IO(如果数据文件放在不同的磁盘上)

oracle体系结构的两个基本概念:数据库和实例

要了解oracle体系结构必须先了解两个基本的概念: 数据库和实例.

一: 数据库

数据库(database)是一个数据.

无论数据库是采用关系结构还是面向对象结构, oracle数据库都将其数据存放在数据文件中. 在其内部, 数据库结构数据对文件的逻辑映射, 使不同的数据分开存储, 这些逻辑划分称为表空间.

表空间和文件介绍:

1: 表空间

表空间(tablespace)是数据库的逻辑划分, 每个数据库至少有一个表空间,叫做系统表空间(system 表空间). 一个表空间只能属于一个数据库.

每个表空间由同一个磁盘上的一个或多个文件组成, 这些文件称为数据文件. 表空间的特性:

1)控制数据库数据磁盘分配

2)限制用户在表空间中可以使用的磁盘空间大小

3)表空间具有 online, offline, readonly, readwrite属性

修改表空间的属性:

SQL alter tablespace 表空间名称 属性;

查询表空间状态:

SQL select tablespace_name, status from dba_tablespaces;

注意: system, undo, temp表空间不能设为offline属性.

4)完成部分数据库的备份与恢复

5)表空间通过数据文件来扩大, 表空间的大小等于构成该表空间的所以数据文件的大小只和.

查询表空间与数据文件对应关系:

SQL select tablespace_name, bytes, file_name from dba_data_files;

基于表空间的几个操作:

1)查询用户缺省表空间:

SQL select username, default_tablespace from dba_users;

2)查询表与存储该表的表空间:

SQL select table_name, tablespace_name from user_tables;

3)修改用户缺省表空间:

SQL alter user username default tablespace tablespace_name;

4)将数据从一个表空间移动到另一个表空间:

SQL alter table table_name move tablespace tablespace_name;

2: 数据文件

每个表空间由同一个磁盘上的一个或多个文件组成, 这些文件叫做数据文件(datafile),数据文件只能属于一个表空间. 数据文件创建后可以改变大小. 创建新的表空间需要创建新的数据文件. 数据文件一旦加入到表空间中, 就不能从表空间中移走, 也不能与其他表空间发生联系.数据库必须的三类文件是 data file, control file, redolog file. 其他文件 prameter file,password file, archived log files并不是数据库必须的, 他们只是辅助数据库的.

查看数据库的物理文件组成:

1)查看数据文件: SQL select from v$datafile;

2)查看控制文件: SQL select from v$controlfile;

3)查看日志文件: SQL select from v$logfile;

二: 实例

通俗的讲实例就是操作oracle数据库的一种手段.

数据库实例也称作服务器, 是用来访问数据库文件集的存储结构及后台进程的.

一个数据库可以被多个实例访问(称为真正的应用群集选项).

决定实例的大小及组成的各种参数或者存储在名称init.ora的初始化文件中, 或者隐藏在数据库内部的服务器参数文件中. 通过spfile引用该文件, spfile存储在spfile.ora文件中.

实例启动时读取初始化文件, 数据库系统管理员可以修改该文件, 对初始化文件的修改只有在下次启动时才有效.

Instance分为两部分:

1: memory structure(内存结构)

memory structure分为两部分:SGA(System Global Area)区是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,

它是在Oracle 服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。

包括:

.share pool

.datafase buffer cache

.redo log buffer

.other structures

PGA(Program Global Area)区包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收

2: background process(后台进程)

包括: .PMON 负责在一个Oracle 进程失败时清理资源

.SMON 检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复

.DBWR 负责将更改的数据从数据库缓冲区高速缓存写入数据文件

.LGWR 将重做日志缓冲区中的更改写入在线重做日志文件

.CKPT 负责在每当缓冲区高速缓存中的更改地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。

oracle数据库导出失败,在导出其他库失败,只有一个库失败,文件系统为NTFS,仅导出一个空表

1、导出的文件太大了吧,FAT32文件系统不支持大于4G的文件。看看你导出目录所在的磁盘的类型吧!

2、如果是FAT32文件系统的,将FAT32文件系统转换为NTFS格式就行了。或者换个磁盘路径用于导出

过程再详细点吧

看起来是写入文件的时候出错,可能是磁盘空间、文件位置问题。

可以提供exp的命令看看

正常来说,导出操作会忽略对空表的操作。有的时候工具也是有BUG的,你不防用命令行试试呢?1、linux环境,直接就exp2、windows环境,“开始”--“运行”--“cmd”---exp【例出几个例子,语法如下】(1)表方式,将指定表的数据导出/导入。导出一张或几张表:$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2 $ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2(2)用户方式,将指定用户的所有对象及数据导出/导入。$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=(xx, yy) $ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=(xx, yy)(3)只导出数据对象,不导出数据 (rows=n )$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=user rows=n(4)全库方式,将数据库中的所有对象导出/导入导出:代码 $ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=ycommit=y ignore=y $ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=ycommit=y ignore=y导入:代码 $ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2

权限不足,用sys登录导出。

linux下单机oracle数据库,有多个实例启动,只有一个实例可以生效?

你查的是监听,不是数据库。

原因:1521端口只有一个,被某一个数据库(实例)的监听程序占据以后,其他数据库(实例)将不能利用这个端口进行监听。

解决办法:用其他端口监听其他的数据库。比如1522,1523等等。具体写法也简单,只要将listener.ora文件的端口那行一下,然后几个,根据实例名改为相应端口。数据库实例的默认端口要不要改我忘了,好久没这么干了,你自己查查怎么修改监听端口就行。

请问oracle怎么从dmp文件只恢复一张表的数据,恢复到另一个用户中

1、安装Oracle数据库软件,并且用Oracle管理工具中的Database Configuration Assistant 根据对方提供的数据库名建立数据库。数据库版本则要和导出当前dmp文件的数据库版本一致。

2、透过脚本文件建立导入dmp文件所需的表空间、用户、规则以及相关的授权。

3、将dmp文件到新安装的Oracle数据库服务器中,准备导入这个数据库文件。

4、通过cmd调出运行窗口,用imp命令导入数据。

5、通过数据库管理工具连接数据库,就可以查询到dmp文件中的数据了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息