002、初始化参数文件、启动三台阶

初始化参数文件

分为:文本的初始化参数文件init实例名.ora、二进制初始化参数文件spfile实例名.ora;
初始化参数文件
文本的参数文件init实例名.ora二进制的参数文件spfile实例名.ora
1、create pfile from spfile;1、动态修改的参数是否保留
2、9i的新特性
3、二进制可以不是文件,可以是设备raw,多个实例共享一个spfile
4、使用oracle命令修改参数,修改参数时自动校验合法性
5、create spfile from pfile;

查看当前实例使用的二进制参数文件:
SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      +DATA/ora10g/spfileora10g.ora
--若没有值,则使用的是文本的参数文件

启库三台阶

nomount

1、根据环境变量找到对应的参数文件,按顺序为专用的参数文件spfile实例名.ora、共有的二进制参数文件、专用的文本参数文件;若都没找到,则可以在RMAN下无参数文件启动;
以下是删除$ORACLE_HOME/dbs目录下所有文件之后的演示过程:

:恢复密码文件
:创建文本的初始化参数文件,文件内容可以从alert日志中查找:文件正常启动时的内容
:已恢复
2、按照参数文件中配置的大小分配内存
3、启动后台进程
4、初始化数据字典v$..
5、将启动过程写入到告警日志:alert实例名.log中
6、nomount状态:可以建立数据库,可以建立控制文件,可以修改参数文件内的参数。
查看状态:
SQL> select status from v$instance;

STATUS
------------
STARTED
实例是空壳,并没有加载数据库,只是连接数据库的工具。

mount

1、读参数control_files
2、找到对应的控制文件
3、读控制文件内容到内存中
4、完善数据字典
6、mount状态:可以修改文件位置,可以备份和恢复
查看状态:
SQL> alter database mount;
Database altered.

SQL> show parameter control
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time        integer     7
control_files                        string      +DATA/ora10g/controlfile/curre
                                                 nt.256.1043492187

SQL> select status from v$instance;
STATUS
------------
MOUNTED
mount之后,就是将一个没有意义的实例和一个数据库发生了联系。

open

1、读控制文件中描述的数据文件,如果不一致,使用日志文件自我恢复
2、打开数据库
3、只有open的数据库才对外开放,open以前只是维护数据库
查看状态:
SQL> alter database open;
Database altered.

SQL> select status from v$instance;
STATUS
------------
OPEN

SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
+DATA/ora10g/datafile/system.259.1043492191
+DATA/ora10g/datafile/undotbs1.260.1043492199
+DATA/ora10g/datafile/sysaux.261.1043492199
+DATA/ora10g/datafile/undotbs2.263.1043492205
+DATA/ora10g/datafile/users.264.1043492207
+DATA/ora10g/goldengate/goldengate01.dbf
6 rows selected.

停库四模式


查看停库的几种模式:
SQL> help shutdown

 SHUTDOWN
 --------

 Shuts down a currently running Oracle Database instance, optionally
 closing and dismounting a database.

 SHUTDOWN [ABORT|IMMEDIATE|NORMAL|TRANSACTIONAL [LOCAL]]
四种模式的区别:
停库模式新的会话空闲的会话新的和未完成的事务检查点停止数据库启动时是否需要恢复
NORMAL不允许连接不受影响不受影响正常执行等会话断开连接后一致停库,启动时不需要恢复
TRANSACTIONAL不允许连接断开连接不允许新事务;
未完成事务不受影响
正常执行等所有事务结束
IMMEDIATE不允许连接断开连接未完成事务回退正常执行关闭数据库
ABORT不允许连接断开连接未完成事务不回退不执行关闭数据库不一致停库,启动时需要自我恢复

NORMAL

实验,当前已连接的情况下,再连接二个会话。
会话1使用管理员用户:
[oracle@rac1 ~]$ sqlplus / as sysdba
……
SQL>
会话2使用scott用户:
[oracle@rac1 ~]$ sqlplus scott/tiger
……
SQL>
会话1使用normal模式停止数据库:
SQL> shutdown normal --发现一直卡着
会话3以普用户连接数据库:
[oracle@rac1 ~]$ sqlplus /nolog……
SQL> conn scott/tiger
ERROR:
ORA-01090: shutdown in progress - connection is not permitted --提示数据库正在关闭,不允许连接
会话2执行更新等操作:
SQL> update emp set sal=sal+1;
14 rows updated.

SQL> commit;
Commit complete.
--当前已连接用户可以正常执行事务
会话2断开连接:
SQL> disconn
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
观察会话1:
SQL> shutdown normal
Database closed.
Database dismounted.
ORACLE instance shut down.--数据库已停止

TRANSACTIONAL

会话1以管理员连接:
SQL> conn / as sysdba
Connected.
会话2以scott连接,执行更新,但不提交:
SQL> conn scott/tiger
Connected.
SQL> update emp set sal=sal+1 where empno=7900;
1 row updated.
会话3以scott连接,执行更新,但不提交:
SQL> conn scott/tiger
Connected.
SQL> update emp set sal=sal+1 where empno=7902;

1 row updated.
会话1以TRANSACTIONAL关闭数据库:
SQL> shutdown TRANSACTIONAL; --发现一直卡着
以普通用户进行新的连接:
[oracle@rac1 ~]$ sqlplus /nolog……
SQL> conn scott/tiger
ERROR:
ORA-01089: immediate shutdown in progress - no operations are permitted --提示数据库正在关闭,不允许连接
会话2提交,并开启新的事务:
SQL> commit;
Commit complete.

SQL> update emp set sal=sal+1 where empno=7900;
update emp set sal=sal+1 where empno=7900
       *
ERROR at line 1:
ORA-01089: immediate shutdown in progress - no operations are permitted --不允许开启新的事务

SQL> select * from emp;
ERROR:
ORA-03114: not connected to ORACLE
会话3不提交,继续更新:
SQL> update emp set sal=sal+1 where empno=7900;
1 row updated.
--不受影响
会话3回退,结束事务:
SQL> rollback;
Rollback complete.
观察会话1:
SQL> shutdown TRANSACTIONAL;
Database closed.
Database dismounted.
ORACLE instance shut down.





posted @ 2021-06-17 11:13  有点菜大人  阅读(85)  评论(0)    收藏  举报