li
  当前位置:主页 > 配置管理 > 文章内容
li
oracle常见基本问题总结
来源: www.ixdba.net  作者: IXDBA.NET官方    时间:2008-05-19   阅读:27  

1、实例和 SID 的关系是什么?
经常有人问 SID 是什么?在 Oracle 系统中 SID 是一个经常出现的变量,如环境变量
ORACLE_SID, 初始化文件 initSID.ora,那究竟什么是 SID 呢?其实 SID 就是 Oracle 实
例的标识,不同的 SID 对应不同的内存缓冲(SGA)和不同的后台进程。这样一来我们就可以
得当在一台物理的服务器上可以有多个 SID 的数据库实例。

2、Oracle 数据库和实例的关系是什么?
数据库是由物理文件和存取数据文件的实例组成,当存取数据文件的实例是一个的时
候,数据库被称做单节点数据库。这是我们看到的最多的数据库形式。当然还有一种多节点数据库,就是一个以上的实例共同访问一个数据库(或者说共同访问一组数据文件), 更好的提供稳定性和并行处理能力。这在 8i 中被称为 OPS(Oracle Parallel Server ),在 Oracle9i  中被称为 RAC(real application cluster)。在这种数据库中。两个/多个实例分别在不同服务器上,所有 Oracle 数据文件在共享的磁盘阵列上,多个服务器上的实例可以同时工作,他们通过一个内部的网络进行通信。如果一台服务器不能提供服务的话,另一台会接管它的工作,特别是在关键的业务有很大的潜力。


3、在运行的数据库中数据文件中是不是可能存在没有被提交的数据?
这是可能存在的,因为用户数据文件的数据是由 DBWR 写入的,DBWR 是一个很底层
的后台进程,不负责与用户交互。用户的交互是由 LGWR 完成的。


4、在问题 3 中,如果存在没有写入的数据,那么机器突然断电,数据完整性会不会损坏?
不会的,因为数据库的完整性是 LGWR 来保证的,而且 ORACLE 保证了 DBWR 写入
数据文件的任何修改已经被记录在重做日志文件中。当系统再次启动的时候,通过读取重做
日志文件就可以知道那些数据没有被提交。这时候 ORACLE 会自动回滚那些数据。所以说
联机日志的损坏,特别是当前联机日志的损坏,对数据库的影响是巨大的,可能会导致数据
库的不完整。


5、数据文件损坏会丢失数据吗?
可以这么说,如果你有备份和归档,就不会。因为所有对数据修改的记录都在重做日志
中有记录,所以不会丢失数据,你只要恢复以前的备份再用归档日志文件恢复和当前的在线
重做日志就可以恢复所有数据。


6、在线重做日志损坏会丢失数据吗?
以上说了,在线日志对数据库的损坏是极大的,所以不仅可能丢失数据,还可能引起数
据库的不同步。在重做日志中的所有 commit 的记录都会丢失,这也是 Oracle 为什么要对在
线重做日志文件做镜像的原因。任何的数据丢失都是不允许的。


7、我在事务能不能指定不写回滚段?
不可以的,写回滚段是 ORACLE 保证一致性读和事务一致性的根本。回滚段是高写入
段,建议把它放到单独的设备上来。
对于 DDL 语句,如 DROP,TRUNCATE 却可以不写回滚段(没有 UNDO 信息),所以对
于整个表的删除,如果数据量比较大,建议用 Truncate Table 的方法。
不写联机日志也是不可能的,但可以在某些特定操作中,可以写很少的联机日志,如以
NOLOGGING 的方式通过 Create table tablename as select 创建表,或以 Append 的方式 Insert
数据到表,或直接载入等操作。




  上一篇: oracle数据库基本表空间介绍   下一篇: 怎么样生成日期格式的文件
li
 §相关评论  
 热点文章

·oracle Logfile的不同状态说明
·Oracle数据库的一些常用操作经
·Oracle10g(10.2) 在Redhat AS4
·oracle工具:浅谈LogMiner的使用
·RHAD AS4 上安装 Oracle 数据库
·oracle基础知识(物理结构)
·oracle基础:Oracle中null的使用
·Oracle常用基本语法操作集锦
·oracle数据库查询前台正在发出
·AIX+ORACLE10G安装手册
·oracle数据库9i升级到oracle10
li
 编辑推荐
·oracle Logfile的不同状态说明
·Oracle数据库的一些常用操作经
·Oracle10g(10.2) 在Redhat AS4
·oracle工具:浅谈LogMiner的使用
·RHAD AS4 上安装 Oracle 数据库
·oracle基础知识(物理结构)
·oracle基础:Oracle中null的使用
·Oracle常用基本语法操作集锦
·oracle数据库查询前台正在发出
·AIX+ORACLE10G安装手册
·oracle数据库9i升级到oracle10
li
 相关篇章
·oracle数据库基本表空间介绍
·如何将 EXP 出来的数据 IMP 进不...
·Linux下oracle启动脚本DBSTART和...
·Oracle数据库中的Kill session灵...
·修改了监听端口, 怎样保证 DB Co...
·怎样修改 DB Control 的服务端口
·如何使用"Automatic SGA Managem...
·查找引起死锁的操作解决死锁问题
·oracle 日志文件"alert log"过大...
·oracle dba与系统管理员的共同点...
·怎么样生成日期格式的文件
·sqlplus怎么与shell结合使用
·FTP怎么在脚本中自动上传/下载
·RHEL5下安装oracle 10g数据库
·Debian下安装Oracle10g数据库
·installing Oracle10g-x86_64 on...
·ORACLE的有那些数据类型
·我创建了数据库的所有用户,我可...
·怎么知道那些表没有建立主键
·如果发现表中有坏块,如何检索其...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接