Oracle数据库的启动过程和关闭模式
Oracle数据库的启动过程和关闭模式。一 启动数据库Oracle启动过程涉及几种模式,这些模式涉及不同的文件,每个状态下数据库做不同的事情,同时这些模式适用于不同的维护需求,主要的模式有三种:NOMOUNT、MOUNT、OPEN。
NOMOUNT:启动数据库实例, 此时读取参数文件,但是不加载数据库;
MOUNT:启动数据库实例,加载数据库,但是数据库处于关闭状态;
OPEN: 启动数据库实例,加载并打开数据库;
FORCE: 终止实例并重启数据库,这种模式在数据库关闭或者启动遇到问题时使用,这种方式不到万不得已时不要使用,会有数据丢失;
1 NOMOUNT 启动例程
在启动例程时,这些内存结构和服务进程得到分配、初始化和启动,以便Oracle能够管理数据库
此时的例程还没有与一个确定的数据库相联系,或者说数据库是否存在对例程的启动并没有影响,即还没有装载数据库
若初始化参数文件设置有误,则无法启动例程
这种模式只会创建实例(创建Oracle实例的各种内存结构与服务进程,其中有5个进程必须启动, DBWR、LGWR、SMON、PMON、CKPT),并不加载数据库,也不会打开 ...
C++连接Oracle
C++连接Oracle常见的几种连接Oracle的方式
ODAC,通过 COM 的形式调用 Oracle,缺点是需要装 ODAC 客户端,而且体积不小
OCCI,通过动态库调用 Oracle, 不需要安装客户端,只需要几个 DLL 即可,问题是 Oracle 12.2 开始支持 VS2015,但不支持 XP
OCI,C语言的 API,调用起来稍显复杂
ODPI-C,也是C语言的 API,在 OCI 基础上做了一层封装,对比前两者,仍然不够简洁
cx_Oracle,Python 的第三方库,各方面都满足要求,但是甲方禁止使用 Python
ODBC,效率估计最低了吧
Pro*C,个人比较反感这种方案,不多说了
OTL,基于模板和流的 C++ 库,依赖 OCI
而使用C/C++操作Oracle数据库的方法有以下几种种:
pro*C:易入门,但程序代码繁琐;
OCI:Oracle Call Interface,功能强大,性能卓越,但难以驾驭;
OCI是Oracle提供的C语言函数库,如果不对OCI进行封装,C程序员对Oracle的开发比较困难。
freecplu ...