oracle 12c rac管理命令梳理

前端之家收集整理的这篇文章主要介绍了oracle 12c rac管理命令梳理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1、关闭数据库实例:

Srvctl stop instance -d tar -n rac2

只停一个节点上的数据库实例rac2

2、查看数据库实例状态:

Srvctl status database -d tar -f -v

我这边四节点集群,目前只起了节点1和节点2.

3、启动实例

Srvctl start instance -d tar -n rac2

指定启动节点2上的数据库实例

4、再次查看数据库实例状态:

Srvctl status database -d tar -f -v


二、数据库的启动和关闭

1、关闭之前查看一下数据库实例的情况

Srvctl status database -d tar -f -v

1、关闭数据库

Srvctl stop database -d tar

关闭数据库会把集群所有的实例都关掉

2、关闭后查看实例状态:

Srvctl status database -d tar -f -v

发现所有的实例都已经关闭了。

3、启动数据库

Srvctl start database -d tar

跟单节点的起库步骤差不多,不同的是会起集群所有的数据库实例。

4、启动后在次查看数据库实例状态

Srvctl status database -d tar -f -v

发现所有的节点上的实例都起来了。


三、参数文件pfilespfile)管理

1、当前数据初始化参数文件情况查询

Su - oracle

sqlplus / as sysdba

Show parameter spfile

2、可根据pfile创建spfile

create spfile=’+DG_ZERO/zerodb/spfilezerodb.ora’from

pfile=’/zerodb/11g/db_base/db_home/dbs/initzero.ora’;

同样,也可以通过spfile创建pfile:

3、值说明:

在参数前面是*号,表明对所有的节点都生效

*.parallel_max_servers =40

参数前面是实例名,表示该参数只对该特定的实例生效

tar2.parallel_max_servers=42

1、两种修改参数值方式:

A、直接修改pfile文件,然后通过pfile生成spfile

B、直接通过命令行,以alter system的方式改。

show parameter parallel_max_servers;

修改所有所有的实例:

alter system set parallel_max_servers=42 sid='*' scope=both;

节点1

节点2

修改所有的实例(同上面是一个意思):

alter system set parallel_max_servers=42 scope=both;

修改指定的实例(tar2):

alter system set parallel_max_servers=42 sid='tar2' scope=both;

show parameter parallel_max_servers;


四、会话管理

1、创建测试用户,节点1

Su - oracle

sqlplus / as sysdba

create user c##test identified by Xtyt2008;

grant dba to c##test;

2、节点2登陆数据库

Su - oracle

sqlplus / as sysdba

Conn c##test/Xtyt2008

节点2

3、节点1

查询所有的会话:

select inst_id,sid,serial#,USERNAME from gv$session;

节点1

可以杀掉刚才在节点2登陆的那个会话:

alter system kill session '39,6135,@2';

4、然后在节点2刚才登陆的地方执行一条sql,会产生报错(因为会话已经被杀掉了)

Select sysdate from dual;

节点2


五、回滚表空间的管理

1查询回滚表空间的情况:

column name format a20;

column value format a20;

select inst_id,name,value from gv$parameter where name like '%undo_tablespace%';

可以看到有两个回滚表空间,一个实例对应一个回滚表空间。

2、下面我们把实例二的回滚表空间换成新的undo表空间

3、新建一个undo表空间:

CREATE UNDO TABLESPACE UNDOTBS_TYT

DATAFILE '+data/tar/datafile/TYT.db' SIZE 10M AUTOEXTEND ON;

4修改undo表空间为新的undo表空间,实例指定为实例2(在节点1上做)

alter system set UNDO_TABLESPACE=UNDOTBS_TYT sid='tar2' scope=both;

5、我们在执行上面的查询语句:

select inst_id,value from gv$parameter where name like '%undo_tablespace%';

发现并没有变化。

节点1

节点2

6、想要变化,有两种方式

A、重启实例二。

B、把alter system set UNDO_TABLESPACE=UNDOTBS_TYT sid='tar2' scope=both;语句再在实例2上执行一遍。

节点2


六、联机重做日志文件的管理

1、查看当前数据库联机重做日志的情况

可以看到有几个日志组,每个组属于哪个实例:

select GROUP#,thread# from v$log;

2、可以看到每个组有几个日志文件(成员)

column MEMBER format a50;

select group#,status,member from v$logfile order by GROUP#;

可以看到一个日志组有两个成员。

不要使用gv$loggv$logfile,其列出的信息是冗余的,容易误导

select thread#,group# from gv$log;

select INST_ID,group#,member from gv$logfile;

3、新增一个组,组编号是5,这个组给实例1

ALTER DATABASE

ADD LOGFILE INSTANCE 'tar1'

GROUP 9

('+DATA/TAR/ONLINELOG/redo_z111','+DATA/TAR/ONLINELOG/redo_z222') SIZE 10M reuse;

4、新增完成后再次查看日志组的情况:

select GROUP#,thread# from v$log;

发现实例1多了一个组9.

4、还可以查看该新增的组的成员信息

column MEMBER format a50;

select group#,member from v$logfile order by GROUP#;

新增的组我们指定了两个成员。

6、可以drop掉新增的日志组:

ALTER DATABASE DROP LOGFILE GROUP 9;

猜你在找的Oracle相关文章