赞
踩
数据库启动经历如下三个状态:
nomount—mount—open。
启动实例:
1)查找参数文件,先查找spfile,如果没有,查找pfile;
2)启动后台进程;
3)分配内存;
4)打开告警日志文件和跟踪文件。
操作:使用startup nomount命令启动当前实例,启动到非挂载状态,即只启动Oracle实例,而不启动数据库,因此只需要参数文件即可
使用lsnrctl status命令查看实例状态:orcl实例启动状态为blocked。
启动实例后,orcale数据库会按照参数文件中control_file参数的设置,找到所有控制文件,再确定所存控制文件都完好,并且内容一致后,将控制文件的内容加载到内存,并且从控制文件中获取所有的数据文件和日志文件的名称及其位置,但不做一致性检查。
操作:使用alter database mount命令使得数据库启动到mount状态,此状态下表示创建实例并加载数据文件。
使用lsnrctl status命令查看实例状态:orcl实例状态为ready。
oracle需要检查所有的数据文件和日志文件的状态,如果这些文件的实际状态和控制文件的记录一致,则打开数据库,允许普通用户连接数据库,并执行各种操作。
操作:使用alter database open命令使得数据库处于打开状态。
startup相当于依次执行以下三个命令:
SQL>startup nomount;
SQL>alter database mount;
SQL>alter database open;
看windows中OracleServiceXXXX服务是否启动来判断实例启动的状态。
用lsnrctl status命令查看Oracle实例启动的情况。
windows中用环境变量ORACLE_SID表示当前实例。如果启动了多个实例,则默认实例为最后安装的实例。可以在注册表中查看ORACLE_SID的值,注册表位置(Oracle10g):
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraDb11g_home1
同一服务器有多个实例且均已启动,若登录时不指定数据库实例,一般采用环境变量ORACLE_SID,系统默认的ORACLE_SID值为最后安装的实例
sqlplus不指定数据库实例连接:sqlplus / as sysdba
上面的命令以操作系统认证的方式登录,即已经使用管理员身份登录到了操作系统,就可以使用sysdba身份登录到数据库中,因此不需要输入用户名和密码。该命令没有指定连接标识符,所以连接到当前实例(默认实例)
通过以下命令查看当前连接实例信息:
SQL>show parameter instance;
SQL>show parameter instance_name;
SQL>select * from v$instance;
要与一个非默认的实例建立连接,可以在命令行窗口中先设置ORACLE_SID变量的值,然后再用sqlplus建立连接。注意设置值只对当前命令行窗口有效:set ORACLE_SID=XXXX;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。