1.术语定义
Database
操作系统级别的物理文件,或者更彻底一点,一组磁盘文件((data files, temporary files, redo log files, and control file)。
Instance
一组进程/线程+共享内存。所以Instance是易失的。Instance的运行存在可以不依赖磁盘。
Database和Instance是多对一的关系,即一个Instance只打开一个Database,而一个Database可以被多个Instance打开。传统上,一个Database也只有一个Instance打开,被多个Instance打开的情况是在Oracle Real Application Clusters (RAC)下。
2. Instance在ps中显示的名字的命名规则为oracle$ORACLE_SID。 (ORACLE_SID指定了缺省的tnsname,即site identifier )
3. 启动Instance
3.1 必备条件
Windows下先需要运行oradim.exe简历服务在启动实例。
要有init.ora这个parameter file(参数文件,指定database block size, control file locations etc.)如Windows在E:/oracle/product/10.2.0/db_1/database/initora11gr2.ora,命名规则init$ORACLE_SID.ora
Unix在/home/ora11gr2/dbs/initora11gr2.ora。
3.2 流程
登录sqlplus
SQL> startup 或者 startup nomount 如果database不存在,那需要先指定nomount。
SQL> !ps -aef | grep ora11gr2
你可以看到后台进程就在运行了。pmon,lgwr
SQL> !ipcs -a
查看进程间的通信机制
SQL> create database;
创建数据库
还需要运行$ORACLE_HOME/rdbms/admin/catalog.sql来创建数据字典的view
SQL> select name from v$datafile;
SQL> select member from v$logfile;
SQL> select name from v$controlfile;
查看V$ view
我们可以关闭一个数据库
SQL> alter database close;
但是在这个instance中,想再打开数据库是不可以的
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-1619c6: database has been previously opened and closed
我们只能先shutdown该instance,然后再startup才能够再次mount该DB。
--------------------------------Unix Learn in this chapter------------------------------
ps -aef | grep ora11gr2
ipcs -a
show interprocess communication devices, such as shared memory, semaphores, etc
sqlplus / as sysdba
如果sqlplus命令不指定tnsname的话,缺省由ORACLE_SID指定(windows中在注册表中指定),所以可以指定tnsname: export ORACLE_SID=ora11g
登录为sysdba用户
在sqlplus中调用Unix命令需要在命令前加个感叹号。如SQL> !ps -aef | grep ora11gr2 ; SQL> !ipcs -a