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

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

 

三、参数文件(pfile、spfile)管理

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,name,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$log,gv$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#,status,member from v$logfile order by GROUP#;

 

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

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

ALTER DATABASE DROP LOGFILE GROUP 9;

 

转自:https://blog.csdn.net/kadwf123/article/details/78594410#commentBox

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值