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,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#,member from v$logfile order by GROUP#; 新增的组我们指定了两个成员。 6、可以drop掉新增的日志组: ALTER DATABASE DROP LOGFILE GROUP 9; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |